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:

  1. Add an item to your cart on your online store.
  2. Proceed to the checkout page and select Open Banking as the payment method.
  3. Follow the redirect link in the response to simulate a transaction.
  4. Complete the transaction and verify that you are redirected to the order confirmation page.
  5. Log in to Genesis.
  6. 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:

  1. Contact your emerchantpay Account Manager for your production login credentials.
  2. Use your production API credentials and URLs to create payment requests in your live environment.
  3. 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.