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:
An
Important
statement contains information essential to
successfully completing a task or learning a concept.
Pay by Bank is a Bank of America 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 your amount of 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:
This workflow describes the sequence of events that comprises a successful Pay by Bank
sale.
Figure:
Processing Sale 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. For more information, see these sections:
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
apSaleReply_merchantURL
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
requestID
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.
responds to your sale request with one of these statuses in
the
apSaleReply_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.
Line Items
Line items are represented as the
item_#_
fields,
starting with
item_0_
and increasing in numerical order.
These fields are required for each line item that you use:
Processing a sale requires you to use information from the API
response message to redirect the customer to their bank's website to complete the
checkout. Follow these steps to process a sale.
webhook notification. For information about how to set
up webhook subscriptions, see Webhook Subscriptions. If you do not
receive a webhook notification, send a check status request. For information about how
to send a check status request, see Check Status.
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.
You can only refund payments processed with GBP currency.
responds to your refund request with one of these statuses in
the
apRefundReply_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
requestID
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.
Webhooks are automated notifications generated by system events that occur in your
organizations. 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.
Webhooks are supported only with the
REST
API. If you are integrating with the Pay by Bank
Simple Order
API, consider the APIs when integrating webhooks.
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 API Developer 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