This section describes how to use this guide and where to find further information.
Audience and Purpose
This guide is written for merchants who want to offer Pay by Bank services to
customers. It describes tasks that a merchant must complete in order to make a
payment, request the status of a payment, or refund a payment. It is intended to
help the merchant provide a seamless customer payment experience.
Conventions
This statement appears in this document:
IMPORTANT
An
Important
statement contains information essential to
successfully completing a task or learning a concept.
Added REST examples for sale, refund, and check status services.
24.02
Updated the possible webhook notification response statuses. See Webhook Subscriptions.
24.01
Initial release.
Introduction to Pay by Bank
Pay by Bank is a solution that enables you to offer your e-commerce customers the ability
to pay directly from their bank account in real time without providing payment card
information. When a payment is processed, your customer's bank transfers the funds
directly to your merchant bank account.
In the UK, Pay by Bank follows the open banking regulations for bank-to-bank transfers.
Benefits of Using Pay by Bank
Pay by Bank makes processing e-commerce transactions simpler, faster, and more secure
by:
Reducing customer data storage because card data is no longer needed.
Streamlining reconciliation data into an easy-to-read report.
Using a customer's bank authentication network to securely process
payments.
Avoiding card processing fees.
Providing an easy connection to Pay by Bank through an API integration.
Supported Services
Sale, refund, and check status services are available with Pay by Bank. For more
information, see these sections:
You can also subscribe to webhook notifications. With webhook subscriptions,
Cybersource
automatically notifies you when a sale or a refund is
complete. See Webhook Subscriptions.
Requirements
You must have a merchant ID for each country in which you process transactions.
Contact your
Cybersource
account manager for more information.
Supported Currencies
This table lists the currencies supported by the Pay by Bank services.
Supported Currencies
Currency
Currency Code
British pound sterling
GBP
Euro
EUR
*
*Refunds are not currently supported for EUR.
Payment Workflow
This workflow describes the sequence of events that comprises a successful Pay by
Bank payment.
Figure:
Processing Payment Workflow
The customer chooses the Pay by Bank payment option and their bank while
checking out on the merchant's website.
The merchant sends
Cybersource
a sale API request. For more
information, see Sale.
Cybersource
responds to the merchant with a
PENDING
status and a redirect URL.
The merchant redirects the customer to the URL.
The customer completes checkout using their account credentials and is then
redirected to the merchant website.
Cybersource
sends a
SETTLED
sale status
webhook notification to the merchant.
The merchant displays a payment completion confirmation to the customer.
To check the status of a sale, the merchant sends a check status API request if
they did not receive a webhook notification. For more information, see Check Status.
Cybersource
sends the merchant one of these statuses:
ABANDONED
: The customer did not complete checkout
within the allotted time, and the redirect URL has expired.
PENDING
: The customer did not complete checkout.
SETTLED
: The sale request is settled for the requested
amount.
The merchant confirms the completed checkout to the customer when the sale
status updates to
SETTLED
.
Refund Workflow
This workflow describes the sequence of events that comprises a successful Pay by Bank refund.
Figure:
Issuing a Refund Workflow
The customer returns a purchased item to the merchant.
response status if the merchant
sent a refund API request.
By displaying a pending refund in the
Business Center
if the
merchant used the
Business Center
to issue the refund.
Cybersource
sends an updated status when the refund has
completed processing in one of two ways:
Sending a
REFUNDED
webhook notification if the merchant
sent a refund API request.
Displaying a completed refund if the merchant used the
Business Center
to issue the refund.
The merchant displays a confirmation of the refund to the customer.
To check the status of a refund, the merchant sends a check status API request
if they did not receive either a webhook notification or an updated status in
the
: The refund request failed. A failed request can
be due to Pay by Bank rejecting the transaction or due to a technical
error.
PENDING
: The refund request is accepted but is not
completed. Request the check status service to retrieve status updates.
REFUNDED
: The refund amount is successfully
refunded.
The merchant confirms the completed refund to the customer when the status
updates to
REFUNDED
.
Transaction Statuses Workflow
This workflow describes the sequence of possible statuses you can receive when
processing a Pay by Bank transaction.
Figure:
Transaction Statuses Workflow
The merchant sends a sale API request to
Cybersource
and
receives one of these possible statuses:
PENDING
: The sale request is accepted but the customer has
not completed checkout. A webhook notification informs you when the customer
completes checking out and the sale settles. See Webhook Subscriptions. If you do not receive a webhook
notification, send a check status request. See Check Status.
REJECT
: The sale is not successful. Send a new sale
request.
The merchant sends a check status API request to
Cybersource
to
verify the status of the sale and receives one of these statuses:
ABANDONED
: The customer did not complete checkout before
the redirect URL expired.
COMPLETED
: The customer completed the checkout process and
the sale is currently under review. You can send the check status request in
60-minute intervals to retrieve the current status.
PENDING
: The sale request is accepted but is not complete.
You can send the check status request in 60-minute intervals until the
status updates.
REJECT
: The sale request is not successful. An unsuccessful
request can be due to either Pay by Bank rejecting the transaction or a
technical error.
SETTLED
: The sale is complete for the requested
amount.
If the customer decides to return the purchase, the merchant sends a refund API
request to
Cybersource
and receives one of these statuses:
PENDING
: The refund request is accepted and is processing.
A webhook notification informs you when the refund is complete. See Webhook Subscriptions. If you do not receive a webhook
notification, send a check status request. See Check Status.
REJECT
: The refund request is not successful. Send a new
refund request.
The merchant sends a check status API request to
Cybersource
to
verify the refund status and receives one of these statuses:
PENDING
: The refund request is accepted but is not
complete. Continue to request the check status service in 60-minute
intervals until the status updates.
REFUNDED
: The settled amount is successfully refunded back
to the customer's account.
REJECT
: The refund request is not successful. An
unsuccessful request can be due to either Pay by Bank rejecting the
transaction or a technical error.
Pay by Bank Services
This section describes how to successfully request the sale, refund, and check status
services.
You can also subscribe to receive webhook notifications to know when a sale or refund
status updates. For more information, see Webhook Subscriptions.
Sale
Send a sale request to begin processing a payment. A response to a successful
request includes a
PENDING
status and a URL in the
processorInformation.paymentURL
field. Redirect the customer to the URL
to allow the customer to complete the payment on their bank's website.
After sending a successful request, you can send a follow-on check status request
or a refund request. These follow-on services require the request ID from the sale
response, which is the
id
field value.
Pay by Bank requires that you include line items in your sale request. Line
items are used to include information about the goods and services that your
customers purchase, such as product name, quantity, and price.
Endpoints
Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments
Response Statuses
Cybersource
responds to your sale request with one of these statuses
in the
status
field:
PENDING
: The sale request is accepted but the customer has
not completed checkout. A webhook notification informs you when the customer
completes checking out and the sale settles. See Webhook Subscriptions. If you do not receive a webhook
notification, send a check status request. See Check Status.
REJECT
: The sale is not successful. Send a new sale
request.
If you send a check status request to retrieve the current sale status, these are the
possible responses:
ABANDONED
: The customer did not complete checkout before
the redirect URL expired.
COMPLETED
: The customer completed the checkout process and
the sale is currently under review. You can send the check status request in
60-minute intervals to retrieve the current status.
PENDING
: The sale request is accepted but is not complete.
You can send the check status request in 60-minute intervals until the
status updates.
REJECT
: The sale request is not successful. An unsuccessful
request can be due to either Pay by Bank rejecting the transaction or a
technical error.
SETTLED
: The sale is complete for the requested
amount.
Processing a Sale
You redirect the customer to a website in order to complete the checkout. Follow
these steps to process a sale.
Send a
POST
request to the
https://api.cybersource.com
/pts/v2/payments
endpoint
and include these required fields:
ADDITIONAL INFORMATION
clientReferenceInformation.code
merchantInformation.merchantDescriptor.name
orderInformation.amountDetails.currency
Set to
GBP
.
orderInformation.amountDetails.totalAmount
orderInformation.billTo.email
orderInformation.billTo.firstName
orderInformation.billTo.lastName
orderInformation.lineItems.productName
orderInformation.lineItems.quantity
orderInformation.lineItems.totalAmount
orderInformation.lineItems.unitPrice
paymentInformation.paymentType.method.name
Set to
bofaPayByBank
.
paymentInformation.paymentType.name
Set to
bankTransfer
.
processingInformation.actionList
Set to
AP_SALE
.
If needed, include any of these optional line item fields in
the request:
Send a refund request to issue a full or partial refund to the customer's bank account.
Refunds can be requested only when the sale is settled. A refund request requires the
request ID from the sale response.
IMPORTANT
You can only refund payments processed with GBP currency.
Endpoints
Production:
POST
https://api.cybersource.com
/pts/v2/payments/
{id}
/refunds
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments/
{id}
/refunds
The
{id}
is the request ID
contained in the original transaction request.
Response Statuses
Cybersource
responds to your refund request with one of these
statuses in the
status
field:
PENDING
: The refund request is accepted and is processing.
A webhook notification informs you when the refund is complete. See Webhook Subscriptions. If you do not receive a webhook
notification, send a check status request. See Check Status.
REJECT
: The refund request is not successful. Send a new
refund request.
Send a check status request to retrieve status updates for either a pending sale or
refund. A check status request requires the request ID from the sale response or the
refund response, which is the
id
field value.
Cybersource
recommends
using the check status service only when you do not receive a webhook notification. To
set up a webhook subscription, see Webhook Subscriptions.
Endpoints
Production:
POST
https://api.cybersource.com
/pts/v2/refresh-payment-status/
{id}
Test:
POST
https://apitest.cybersource.com
/pts/v2/refresh-payment-status/
{id}
Set the
{id}
to the request ID of the API service you are retrieving.
Response Statuses
Cybersource
responds to your check sale status request with one of
these statuses in the
status
field:
Check Status for a Sale
ABANDONED
: The customer did not complete
checkout within the allotted time, and the redirect URL has
expired.
COMPLETED
: The customer completed the checkout
process.
PENDING
: The sale request is accepted but is
not complete. Request the check status service to retrieve
status updates.
REJECT
: The sale request failed. A failed
request can be due to either Pay by Bank rejecting the
transaction or due to a technical error.
SETTLED
: The sale request is settled for the
requested amount.
Check Status for a Refund
PENDING
: The refund request is accepted but is
not complete. Request the check status service to retrieve
status updates.
REFUNDED
: The settled amount is successfully
refunded.
REJECT
: The refund request failed. A failed
request can be due to either Pay by Bank rejecting the
transaction or due to a technical error.
The check status service also responds with a reason code in the
Webhooks are automated notifications generated by system events that occur in your
organization. You can enroll in a sale or refund event and designate a URL to receive
notifications when the event updates. You set up your webhook subscriptions only
once.
Notifications that contain sensitive, personally identifiable information such as account
numbers are sent using message-level encryption.
Transport Layer Security is required in order to ensure data integrity.
Endpoints
Production
:
https://api.cybersource.com
/notification-subscriptions/v2/webhooks
Test
:
https://apitest.cybersource.com
/notification-subscriptions/v1/webhooks
Notification Statuses
Webhook subscriptions send these status notifications:
ABANDONED
: The customer did not complete the transaction.
CANCELLED
: The customer did not complete the checkout using the
redirect URL.
COMPLETED
: The transaction is complete.
FAILED
: The payment failed.
PENDING
: The payment was initiated.
REFUNDED
: The settled amount is successfully refunded.
SETTLED
: The sale request is settled for the requested
amount.
Additional Requirements
Webhooks Implementation Guide
There are additional requirements for implementing webhooks
that are not discussed in this guide. For more information, see the
This table describes some of the reason codes and Pay by Bank response codes that you
receive when you request a Pay by Bank service. Use the values listed in the table
to determine the transaction result.
For additional reason codes and descriptions, see the
Follow these steps to configure alternative payment methods
in
the
Business Center
:
In the left navigation panel, click the
Available
Products
icon. The Available Products page appears.
In the Alternative Payment Methods section, click
Enable
.
Check the box next to each alternative payment method you want to enable and
configure. You can choose alternative payment methods from these
categories:
Bank Transfer
Buy Now Pay Later (BNPL)
Card Payment
Direct Debit
eWallet
Gift Card
Local Card
Post Pay Reference
QR
Click
Continue
. The Product Configuration page
appears.
Enter the required details for each alternative payment method you want to
configure.
Click
Copy to other sections
to populate the
information to any other alternative payment methods that you selected.
IMPORTANT
You must select
I have read and agree to
the Terms and Conditions
for each alternative payment
method you want to enable.
Click
Continue
to return to the Available Products
page.
Configure the Transacting Organization and Products
Follow these steps to modify the transacting organization details, or to enable and
configure products for the transacting organization:
Click
Start
in the Transacting Organization and Products
section. The Transacting Organization and Products page is displayed.
Optional: modify the name and ID of the organization by using the text fields in the
Transacting Organization Details section. By default, the name is the merchant name with
001 added to the end of the name. If you accept this default, additional transacting
organizations will have default names that iterate the numbers at the end of their names,
beginning with 002.
Optional: to edit the organization information, Click
Edit
in
the Transacting Organization Information section. After editing, click
Apply
.
To enable a product in the Product Enablement section, click the Enablement drop-down
menu and select
Enabled
.
To modify the configuration, click the
Edit
or
configure
button (depending on the product). Some products are
not configurable.
To confirm the configuration, click
Apply
.
To save all product configurations, click
Save
. You are returned
to the Add Merchant page.
To continue working with this organization, click
Continue working with this
merchant
. To finish and return to Merchant Management, click
Return to merchant management
.
Add Merchant Account Information
Follow these steps to add merchant account information:
In Basic Information, enter the merchant account name and the organization ID in the
provided text fields.
ADDITIONAL INFORMATION
The merchant account name is the name of the business.
The organization ID is the name or identifier of the account that you are creating.
It must be unique, not just in the portfolio or account, but in the system.
Enter the merchant information in the provided text fields. Required fields are noted
with an asterisk (*).
Click
Save
. You are returned to the Add Merchant page. You can
skip the optional hierarchy step by clicking
Skip
.
Set Up the Transacting Organization and Products
The transacting organization is the entity that processes transactions. Follow these
steps to create a transacting organization and configure products for it:
Click
Start
in the Transacting Organization and Products
section. The Transacting Organization and Products page is displayed.
Optional: modify the name and ID of the organization by using the text fields in the
Transacting Organization Details section. The ID must be unique, not just in the portfolio
or account, but across the system. By default, the name is the merchant name with 001
added to the end of the name. If you accept this default, additional transacting
organizations will have default names that iterate the numbers at the end of their names,
beginning with 002.
Optional: By default, the organization information is inherited from the parent
organization. To edit the organization information, click
Edit
in
the Transacting Organization Information section. After editing, click
Apply
.
To enable a product in the Product Enablement section, click the Enablement drop-down
menu and select
Enabled
.
To modify the configuration, click the
Edit
or
Configure
button (depending on the product). Some products are
not configurable.
To confirm the configuration, click
Apply
.
To save all product configurations, click
Save
. You are returned
to the Add Merchant page.
To continue working with this organization, click
Continue working with this
merchant
. To finish and return to Merchant Management or to add another
merchant, click
Return to merchant management
.
ADDITIONAL INFORMATION
The image below shows the Transacting Organization and Products page.