Open banking payments
Accept open banking payments in your online store.
Open Banking is a payment method that enables direct bank-to-bank transfers in supported regions. It allows customers to share financial data securely with authorised third-party providers through APIs. This lets customers access additional services and make payments directly through these providers. With the emerchantpay API, you can easily integrate Open Banking payments into your online store.
Payment Method | Countries/Regions Supported | Currencies Supported |
---|---|---|
Open Banking | United Kingdom, Ireland, Germany, France, Belgium, Finland, Italy, Spain (beta) | GBP, EUR, SEK, CHF, NOK, PLN, HUF, CZK |
Prerequisites
Before you begin, ensure the following:
- You have an emerchantpay merchant account. If not, apply for one here.
- An emerchantpay Account Manager has provided your API credentials and support.
- Your development team is familiar with:
- Web programming languages.
- HTTP methods in XML and JSON formats.
- UTF8 encoding.
- For simpler integration, you can use the emerchantpay Web Payment Form (WPF). Contact your Account Manager to set up Open Banking payments via WPF.
Create a payment request
Submit a payment request to the emerchantpay Genesis payment gateway. Specify the transaction type based on the type of payment:
online_banking
– For pay-ins.bank_payout
– For payouts.async_refund
– For refunds.
Here’s an example of an XML request for an Open Banking transaction:
<payment_transaction>
<transaction_type>online_banking</transaction_type>
<transaction_id>119643250547501c79d8295</transaction_id>
<usage>Online purchase</usage>
<remote_ip>245.253.2.12</remote_ip>
<amount>100</amount>
<currency>GBP</currency>
<iban>GB09100100101234567891</iban>
<bic>PBNKDEFFXXX</bic>
<billing_address>
<first_name>John</first_name>
<last_name>Doe</last_name>
<country>GB</country>
</billing_address>
</payment_transaction>
Use your staging environment credentials to test your integration before moving to production.
Receive a payment response
You will receive a Success
or Error
response to your payment request.
Example of a Success response:
<payment_response>
<transaction_type>online_banking</transaction_type>
<status>approved</status>
<mode>live</mode>
<transaction_id>119643250547501c79d8295</transaction_id>
<unique_id>44177a21403427eb96664a6d7e5d5d48</unique_id>
<technical_message>Transaction successful!</technical_message>
<message>Transaction successful!</message>
<timestamp>2024-04-01T16:33:10Z</timestamp>
<descriptor>Payment successful</descriptor>
<amount>100</amount>
<currency>GBP</currency>
<sent_to_acquirer>true</sent_to_acquirer>
</payment_response>
Use the returned redirect_url
to redirect your customer to their bank for authorisation.
Handle asynchronous notification
Open Banking payments are processed asynchronously. After the payment is authorised, the gateway sends the transaction result via HTTP POST to the notification_url
you provided.
Example of a notification for Open Banking:
{
“transaction_id”: “tm_api_1678195297”,
“terminal_token”: “e4de7c9d4ea4bccea3cac90190e2ea0be8ad7610”,
“unique_id”: “52775aed3ee5776c906aeba74da69612”,
“transaction_type”: “online_banking”,
“status”: “error”,
“signature”: “3bbdb69c48739a41eabf7acb6d95d23a1135d558”,
“amount”: “100”,
“iban”: “GB86100000001234400013”,
“customer_email”: “test@test.co.uk”,
“bank_identifier_code”: “PBNKDEFFXXX”
}
To verify the authenticity of the notification, validate the signature field using the Genesis gateway’s signature verification process.
Test your integration
Before going live, test your integration in the staging environment:
- Add an item to your cart on your online store.
- Proceed to the checkout page and select Open Banking as the payment method.
- Follow the redirect link in the response to simulate a transaction.
- Complete the transaction and verify that you are redirected to the order confirmation page.
- Log in to Genesis.
- In the navigation menu, go to Payment transactions and confirm that the transaction status is
successful
.
Accept live payments
After testing your Open Banking integration, you’re ready to move to the production environment. To start accepting live payments:
- Contact your emerchantpay Account Manager for your production login credentials.
- Use your production API credentials and URLs to create payment requests in your live environment.
- Now, you’re ready to accept live payments using Open Banking.
Troubleshooting and FAQs
What happens if the redirect URL fails?
The customer’s payment will not be authorised. Ensure your integration correctly handles redirect failures by notifying the customer and offering alternative payment methods.
How can I verify notifications?
Use the signature field in the notification to validate the authenticity of the message.
What if I encounter “invalid IBAN”?
Ensure the IBAN format is correct and meets the requirements for the customer’s region.