Pay By Bank
Pay By Bank is a secure Open Banking solution that enables instant account-to-account (A2A) payments directly through a consumer’s existing banking interface. It removes the need for manual data entry, providing a streamlined and high-conversion checkout experience via direct bank authentication.
Payment method properties
| Markets (consumer) | DE AT BE FR IE IT LT NL PT FI |
| Processing currencies | EUR |
| Consumer currencies | EUR |
| Authentication methods | REDIRECT |
| Authentication timeout | 15 minutes |
| Minimum payment amount | 0.01 EUR |
| Maximum payment amount | Subject to consumer banks |
| Payment instrument | BANK_ACCOUNT |
| Recurring payments | No |
| Separate captures | No |
| Refund | Full - Partial - Multiple |
| Refund validity | 180 days |
| Disputes | No |
| Settlement risk | No |
Make a Pay By Bank payment
Pay By Bank payments follow our standardized REDIRECT payment flow. However, we recommend including all relevant settings for any authentication methods you support.
To make a Pay By Bank payment, you'll need to provide the following data at minimum when calling our /v1/payment-charges endpoint:
| Field | Description |
|---|---|
paymentMethod | PAYBYBANK |
amount.value | The amount to be paid in the smallest units of the currency used. |
amount.currency | EUR |
consumer.name | Full name of the consumer |
consumer.country | The country of residence of the consumer. |
consumer.email | The email of the consumer. |
authenticationSettings: REDIRECT settings.returnUrl | Specify the URL to which the consumer should be redirected after completing the payment. This is required for the REDIRECT payment flow. |
Request
POST /v1/payment-charges
{
"paymentMethod": "PAYBYBANK",
"amount": {
"value": 1000,
"currency": "EUR"
},
"consumer": {
"name": "John Smith",
"country": "DE",
"email": "[email protected]"
},
"authenticationSettings": [
{
"type": "REDIRECT",
"settings": {
"returnUrl": "https://www.webshop.com/order-results-page"
}
}
]
}Response
You'll receive our standard payment charge response with the available authentication methods:
{
"id": "charge_0Z6Rb3aXZLowbpdCRgbue",
"paymentMethod": "PAYBYBANK",
"paymentMedium": "ECOMMERCE",
"scheduleType": "UNSCHEDULED",
"instrumentId": "instr_KJgFGueIskdsylo3kbnYv",
"currency": "EUR",
"country": "DE",
"paymentDescriptor": "Payment Descriptor",
"status": "AUTHENTICATION_PENDING",
"consumer": {
"name": "John Smith",
"email": "[email protected]",
"country": "DE",
"billingAddress": {
"firstName": "John",
"lastName": "Smith",
"phoneNumber": "",
"street": "Somestraße 65",
"postalCode": "10666",
"city": "Berlin",
"region": "Berlin",
"country": "DE"
}
},
"order": {
"orderItems": [
{
"name": "Product Name 1",
"quantity": 1,
"amount": 100
}
],
"industryData": []
},
"authenticationMethods": [
{
"details": {
"requestUrl":"https://redirection-target.com",
"requestMethod": "GET"
},
"type": "REDIRECT"
}
],
"authorizations": [
{
"id": "authz_NaYyFjUJpYPHKVwnte9lI",
"amount": 100,
"status": "AUTHENTICATION_PENDING",
"merchantPaymentChargeReference": "ic9dJqzDYLfC6wi",
"createdAt": "2025-02-28T10:26:03.358Z",
"updatedAt": "2025-02-28T10:26:03.358Z"
}
],
"captures": [],
"refunds": [],
"voids": [],
"createdAt": "2025-02-28T10:26:02.890Z",
"updatedAt": "2025-02-28T10:26:03.358Z"
}
Pick the desired authentication method
REDIRECT
Redirect your consumer to the returned $.authenticationMethods[?(@.type == "REDIRECT")].details.requestUrl.
For example, with the value of https://redirection-target.ppro.com/ using the returned $.authenticationMethods[?(@.type == "REDIRECT")].details.requestMethod HTTP method.
Handling the payment result
REDIRECT
- After the consumer completes the payment, they are redirected to the
returnUrlspecified in the payment charge creation request. - Upon redirect back to your site, retrieve the latest payment status by performing a GET /v1/payment-charges/{paymentChargeId}. Use the returned
statusfield to determine and display the final payment outcome to the consumer. - Additionally, webhooks are triggered to notify you of the payment result. This ensures you receive the outcome even if the consumer closes their browser or fails to return to your website.
Payment instrument
An instrument of type BANK_ACCOUNT will be created for Pay By Bank payments.
Request
GET /v1/payment-instruments/{instrument-id}
Response
{
"id": "instr_Asu0ig2PXXZSiNrhY44A5",
"type": "BANK_ACCOUNT"
}Sandbox testing
Contact your account manager for test credentials.
Updated about 2 hours ago