Pay by Bank App
Pay by Bank App is a payment method available to payers in the United Kingdom that allows them to use their banking app on their smartphone to pay for goods and services without them having to download any applications. Payers have complete visibility to their bank balance during transactions and the peace of mind that their transaction(s) will be authorized and completed in a secure and trusted environment of their mobile banking app. By utilizing the Faster Payment Service, Pay by Bank App offers almost real-time payments and settlement along with the following benefits:
- Reduced friction and abandonment that may help increase revenue
- Reduced customer disputes that could lead to reduction in costs
- Potential to reduce fraud
- Ready for PSD2, SCS, and other regulatory requirements
Pay by Bank App currently supports transactions and settlements in GBP currency only.
Prerequisites
Before you begin integrating Pay by Bank App in your environment, ensure that you have:
- Registered your merchant account with your local payment method aggregator.
- Linked a bank account in GBP currency with your merchant account that is registered with your local payment aggregator.
- Configured your gateway merchant profile using the account details provided by your local payment method aggregator.
Pay by Bank App Integration
In addition to the standard fields required in a browser payment request, you need to provide the following fields in the Initiate Browser Payment
request for the processing of Pay By Bank App payments.
sourceOfFunds.type
= pbbaapioperation
= PAY (the Authorize operation is not supported by Pay by Bank App)sourceOfFunds.provided.pbba.returnUrl
= The URL of the merchant app to which the payer is redirected from their mobile app
To integrate to the gateway to use Pay by Bank App, initiate a Pay
request and provide the following fields:
Request field | Required | Type | Description |
---|---|---|---|
sourceOfFunds.type |
No | String | Set the value to Pay by Bank App . |
sourceOfFunds.provided.pbba |
No | String | Additional details for Pay by Bank App payment method. |
sourceOfFunds.provided.pbba.returnUrl |
No | String | The URL of your app to which the payer is redirected from their mobile banking app. |
{ "apiOperation": "PAY", "order": { "amount": "45.46", "currency": "GBP" }, "sourceOfFunds": { "provided": { "pbba": { "returnUrl": "<URL_of_merchant_app>" } }, "type": "PBBA" }, "transaction": { "source": "INTERNET" } }
Response Parameters
Response parameter | Description |
---|---|
sourceOfFunds.provided.pbba.paymentRequestId |
A unique 18 character payment request identifier, which is also known as the Pay by Bank app secure token. It is used when the payer's banking app is invoked on their mobile device during the shopping experience. |
sourceOfFunds.provided.pbba.paymentRequestInputCode |
A one-time 6 character code that identifies the payment request, which is also known as the Pay by Bank app Basket Reference Number. This code may be used by the payer to confirm the payment within their mobile banking app. |
{ "gatewayEntryPoint": "WEB_SERVICES_API", "merchant": "PBBA_MER_2", "order": { "amount": 45.46, "chargeback": { "amount": 0, "currency": "GBP" }, "creationTime": "2019-09-17T11:19:34.813Z", "currency": "GBP", "fundingStatus": "IN_PROGRESS", "id": "13347", "status": "INITIATED", "totalAuthorizedAmount": 0, "totalCapturedAmount": 0, "totalRefundedAmount": 0 }, "response": { "acquirerCode": "PENDING", "gatewayCode": "SUBMITTED" }, "result": "SUCCESS", "sourceOfFunds": { "provided": { "pbba": { "paymentRequestId": "120191291357676444", "paymentRequestInputCode": "PLJGLW" } }, "type": "PBBA" }, "timeOfRecord": "2019-09-17T11:19:34.813Z", "transaction": { "acquirer": { "id": "PBBA_PPRO", "merchantId": "MPGTESTCONTRACT", "timeZone": "+0000", "transactionId": "509260333" }, "amount": 45.46, "currency": "GBP", "funding": { "status": "IN_PROGRESS" }, "id": "1", "source": "INTERNET", "type": "PAYMENT" }, "version": "54" }
Transaction Response Codes
The table below shows the transaction response codes for the possible scenarios you may encounter after initiating a Pay By Bank App payment.
Initiate Browser Payment response | What this means... |
---|---|
response.gatewayCode=SUBMITTED result=SUCCESS
|
Redirect the payer using the URL provided in the response. |
Retrieve transaction response | What this means... |
response.gatewayCode=APPROVED result=SUCCESS
|
The payment is successful. |
response.gatewayCode= PENDING result=PENDING
|
The gateway is waiting for a notification from the acquirer about the payment result. Try RETRIEVE_TRANSACTION again later or listen to notifications from the gateway. |
response.gatewayCode= DECLINED or ACQUIRER_SYSTEM_ERROR result=FAILURE
|
The payment was declined. Offer the payer the option to try another payment method. In the case of an |
response.gatewayCode=TIMED_OUT result=FAILURE |
Treat this as a declined payment. The gateway will make any attempt to ensure the transaction was not successful or will revert the transaction. |
Refunds
Pay by Bank App supports full or partial refund payments. You must be configured for refunds on the Mastercard Gateway and on your merchant account with your local payment method aggregator.
Test your Pay by Bank App integration
To test Pay by Bank App integration, you must have access to the Bank3App which is a demo application used for testing purpose.
Follow these steps to get access and install Bank3App.
-
Send an email to integrations@ppro.com to request access for Bank3App which is the Pay by Bank App's demo application.
The email address that you use for registration must be the email address of your company. Personal email addresses are not allowed for security reasons. The VL customer support from the Zapp customer support team shares the application installation details through an email. If your organization has blocked this email ID check your spam folder.
- Follow the instructions provided in the email to install the Bank3App.
- Register with your email ID, preferably corporate ID and sign into your application.
- Open the Pay by Bank application and enter your login PIN.
Test your Pay by Bank App integration from the same mobile
You can test your Pay by Bank App integration when both, the Bank3App and your app are on the same mobile device.
Follow these steps to test your Pay by Bank App integration from the same mobile.
- Tap the zapp://paymentRequestId URL either on the mobile browser or within the mobile application.
- Follow the prompts to log in to the Bank3App using your PIN or TouchID.
-
Select a dummy account to complete the payment.
You are redirected to the
merchantredirecturl
in a browser.
Test your Pay by Bank App integration from different mobile
You can test your Pay by Bank App integration even if the Bank3App and your app are on different mobile devices.
Follow these steps to test your Pay by Bank App integration from different mobile.
- In the Bank3App, tap the Pay by Bank App logo in the lower-right corner of your screen and enter the six-character code returned in paymentRequestInputCode.
-
Select a dummy bank account, and then tap Confirm payment.
The local payment method aggregator hosted page redirects to the URL set in
merchantredirecturl
.