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:
Pay by Bank App currently supports transactions and settlements in GBP currency only.
Before you begin integrating Pay by Bank App in your environment, ensure that you have:
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 appTo 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. |
PAY
example{ "apiOperation": "PAY", "order": { "amount": "45.46", "currency": "GBP" }, "sourceOfFunds": { "provided": { "pbba": { "returnUrl": "<URL_of_merchant_app>" } }, "type": "PBBA" }, "transaction": { "source": "INTERNET" } }
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" }
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 Payement 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 ACQUIRER_SYSTEM_ERROR you may want to inquire with the acquirer the reason for payment failure, or you can try RETRIEVE_TRANSACTION again. |
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. |
Pay by Bank App supports full or partial refund payments. You must be configured for refunds on the Mastercard Payment Gateway and on your merchant account with your local payment method aggregator.
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.
Ensure that the email address that you use for registration must be the email address of your company. Your personal email addresses are not allowed for the 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.
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.
You are redirected to the merchantredirecturl
in a browser.
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.
The local payment method aggregator hosted page redirects to the URL set in merchantredirecturl
.
Copyright © 2022 Mastercard