On This Page
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsResponse 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.
Cybersource
also responds with a reason code in the processorInformation.responseCode
field. For more information about
reason codes, see Reason Codes and Pay by Bank Response Codes.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 aPOSTrequest to theendpoint and include these required fields:https://api.cybersource.com/pts/v2/payments
ADDITIONAL INFORMATION
- clientReferenceInformation.code
- merchantInformation.merchantDescriptor.name
- orderInformation.amountDetails.currency
- Set toGBP.
- 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 tobofaPayByBank.
- paymentInformation.paymentType.name
- Set tobankTransfer.
- processingInformation.actionList
- Set toAP_SALE.
- If needed, include any of these optional line item fields in the request:
ADDITIONAL INFORMATION
- merchantInformation.merchantDescriptor.administrativeArea
- merchantInformation.merchantDescriptor.country
- orderInformation.amountDetails.discountAmount
- orderInformation.amountDetails.dutyAmount
- orderInformation.amountDetails.exchangeRate
- orderInformation.amountDetails.taxAmount
- orderInformation.billTo.address1
- orderInformation.billTo.address2
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.company.name
- orderInformation.billTo.country
- orderInformation.billTo.county
- orderInformation.billTo.district
- orderInformation.billTo.locality
- orderInformation.billTo.middleName
- orderInformation.billTo.phoneNumber
- orderInformation.billTo.postalCode
- orderInformation.billTo.title
- orderInformation.invoiceDetails.productDescription
- orderInformation.lineItems.discountAmount
- orderInformation.lineItems.discountRate
- orderInformation.lineItems.taxAmount
- orderInformation.lineItems.taxRate
- orderInformation.shippingDetails.shippingMethod
- orderInformation.shipTo.address1
- orderInformation.shipTo.address2
- orderInformation.shipTo.administrativeArea
- orderInformation.shipTo.company
- orderInformation.shipTo.country
- orderInformation.shipTo.county
- orderInformation.shipTo.district
- orderInformation.shipTo.email
- orderInformation.shipTo.firstName
- orderInformation.shipTo.lastName
- orderInformation.shipTo.locality
- orderInformation.shipTo.middleName
- orderInformation.shipTo.phoneNumber
- orderInformation.shipTo.postalCode
- Direct the customer to the URL in theprocessorInformation.paymentURLresponse field.
ADDITIONAL INFORMATION
"paymentUrl": "https://checkout.b.banked.com/eu/527057ed-d48c-4333-a252-03c36d2132db?token=eyJhbGciOiJIUz" - When the customer validates the purchase on their bank's website, they are redirected to the merchant's website that you provided in theprocessorInformation.completeUrlrequest field.
ADDITIONAL INFORMATION
"completeUrl": "https://www.merchant.redirect.url.from.request.html?actionsuccess"
AFTER COMPLETING THE TASK
When the sale amount is successfully processed,
Cybersource
sends a
SETTLED
webhook notification. See Webhook Subscriptions. If you do not receive a webhook notification,
send a check status request. See Check Status. REST Example: Processing a
Sale
REST
Example: Processing a
SaleRequest
{ "clientReferenceInformation": { "code": "TC84100-1" }, "processingInformation": { "actionList": [ "AP_SALE" ] }, "orderInformation": { "lineItems": [ { "unitPrice": "14.16", "totalAmount": "70.80", "quantity": 5, "productName": "Skirt on the sky" } ], "billTo": { "lastName": "Bowditch", "firstName": "Comet", "email": "srbuyeroffice@cybs.com" }, "amountDetails": { "totalAmount": "1999.99", "currency": "GBP" } }, "merchantInformation": { "merchantDescriptor": { "name": "BofA Merchant" } }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "bofaPayByBank" } } } }
Response to a Successful Request
{ "orderInformation": { "amountDetails": { "totalAmount": "70.80", "currency": "GBP" } }, "processorInformation": { "transactionId": "527057ed-d48c-4333-a252-03c36d2132db", "paymentUrl": "https://checkout.b.banked.com/eu/527057ed-d48c-4333-a252-03c36d2132db?token=eyJhbGciOiJIUz", "responseCode": "00001", "completeUrl": "https://www.merchant.redirect.url.from.request.html?actionsuccess" }, "message": "Request was processed successfully.", "clientReferenceInformation": { "code": "TC84100-1" }, "reconciliationId": "KOZX0DMQKX17", "status": "PENDING", "id": "7545074870976150504806", "submitTimeUtc": "2025-08-06T19:11:27Z" }