> ## Documentation Index
> Fetch the complete documentation index at: https://developers.orchestrasolutions.com/llms.txt
> Use this file to discover all available pages before exploring further.

# BankPay

> Accept direct bank transfers via Open Banking or ACH.

<Info>
  This page is part of **Supported Payment Methods**. [View all payment methods →](/guides/library/supported-payment-methods)
</Info>

BankPay enables customers to pay directly from their bank account using Open Banking in Europe or ACH in North America. Customers authenticate with their bank to authorize the payment.

## Availability

BankPay is available on all browsers and devices, but requires bank support in the payer's region. [Contact our team](https://orchestrasolutions.com/contact/) to confirm if your target region is supported.

| Platform         | Availability |
| ---------------- | ------------ |
| Desktop browsers | Yes          |
| Mobile browsers  | Yes          |
| iOS apps         | Yes          |
| Android apps     | Yes          |

```javascript theme={null}
const available = await engine.checkAvailability();
if (available.includes('BankPay')) {
  // Show BankPay button
}
```

## Requirements

BankPay requires:

* An Open Banking or ACH provider account (see [Bank Pay Setup](/guides/library/bankpay-setup)), configured as a BankPay eWallet account in [Orchestra Portal](https://portal.orchestrasolutions.com/#/resource/eWalletAccount)

```javascript theme={null}
// Server-side session creation
const session = {
  operation: 'CHARGE',
  paymentGatewayAccountId: 'yourPspAccount',
  allowedeWalletAccountIds: ['your-bankpay-account'],
  amount: 25.00,
  currencyCode: 'USD',
  countryCode: 'US',
  mode: 'LIVE'
};
```

## Button Setup

```html theme={null}
<div id="bankpay-button"></div>
```

```javascript theme={null}
engine.payBy(
  [{ name: 'BankPay', domEntitySelector: '#bankpay-button' }],
  handleResult,
  { color: 'Dark', text: 'Pay' }
);
```

## How It Works

1. Customer clicks the BankPay button
2. Customer selects their bank from a list
3. Customer is redirected to their bank's authentication page
4. Customer logs in and authorizes the payment
5. Bank redirects back to complete the flow
6. On completion, results are returned to the client, ready to be sent to your server for validation

## Supported Operations

| Operation             | Supported | Description                 |
| --------------------- | --------- | --------------------------- |
| `CHARGE`              | Yes       | Process payment immediately |
| `TOKENIZE`            | No        | Not supported               |
| `CHARGE_AND_TOKENIZE` | No        | Not supported               |

<Warning>
  BankPay only supports immediate charges. Tokenization is not available for bank transfers.
</Warning>

## Settlement Time

Bank transfers may take longer to settle than card payments:

* **Open Banking (Europe)**: Usually instant or same-day
* **ACH (US)**: Typically 1-3 business days

## Related

<CardGroup cols={2}>
  <Card title="Bank Pay Setup" icon="building-columns" href="/guides/library/bankpay-setup">
    Configure Bank Pay credentials
  </Card>

  <Card title="Result Handling" icon="check" href="/guides/library/result-handling">
    Parse payment results
  </Card>
</CardGroup>
