PPRO

This section describes the audience and purpose of this developer guide as well as conventions and related documentation.
Audience and Purpose
This guide is written for application developers who want to use the
REST
API to integrate PPRO with their payment system.
Convention
The following special statement is used in this document:
IMPORTANT
An
Important
statement contains information essential to successfully completing a task or learning a concept.
Related Documentation
For additional documentation, visit these documentation sites:

Recent Revisions

25.03.01

This revision contains only editorial changes and no technical updates.

25.01.01

Update and added new workflow processes. See:
Updated all possible response statuses and their descriptions. See Response Statuses Workflow.

24.01.03

Removed support for the Giropay service.

24.01.02

The guide has undergone a major reorganization.
Updated the iDEAL request examples for a sale, retrieve a transaction, refund and options. For more information, see:
Added the sale and refund workflows. For information, see Processing a Sale Using a Bank ID Workflow and Refunding a Payment Workflow.

24.01.01

Updated the listed endpoints in the Supported Services section. See Endpoints for the REST API.
Updated the link to the
REST API Field Reference Guide
in the Related information sections.

VISA Platform Connect: Specifications and Conditions for Resellers/Partners

The following are specifications and conditions that apply to a Reseller/Partner enabling its merchants through
Cybersource for Visa Platform Connect (“VPC”) processing
. Failure to meet any of the specifications and conditions below is subject to the liability provisions and indemnification obligations under Reseller/Partner’s contract with Visa/Cybersource.
  1. Before boarding merchants for payment processing on a VPC acquirer’s connection, Reseller/Partner and the VPC acquirer must have a contract or other legal agreement that permits Reseller/Partner to enable its merchants to process payments with the acquirer through the dedicated VPC connection and/or traditional connection with such VPC acquirer.
  2. Reseller/Partner is responsible for boarding and enabling its merchants in accordance with the terms of the contract or other legal agreement with the relevant VPC acquirer.
  3. Reseller/Partner acknowledges and agrees that all considerations and fees associated with chargebacks, interchange downgrades, settlement issues, funding delays, and other processing related activities are strictly between Reseller and the relevant VPC acquirer.
  4. Reseller/Partner acknowledges and agrees that the relevant VPC acquirer is responsible for payment processing issues, including but not limited to, transaction declines by network/issuer, decline rates, and interchange qualification, as may be agreed to or outlined in the contract or other legal agreement between Reseller/Partner and such VPC acquirer.
DISCLAIMER: NEITHER VISA NOR CYBERSOURCE WILL BE RESPONSIBLE OR LIABLE FOR ANY ERRORS OR OMISSIONS BY THE VISA PLATFORM CONNECT ACQUIRER IN PROCESSING TRANSACTIONS. NEITHER VISA NOR CYBERSOURCE WILL BE RESPONSIBLE OR LIABLE FOR RESELLER/PARTNER BOARDING MERCHANTS OR ENABLING MERCHANT PROCESSING IN VIOLATION OF THE TERMS AND CONDITIONS IMPOSED BY THE RELEVANT VISA PLATFORM CONNECT ACQUIRER.

Introduction to PPRO Integration

PPRO enables merchants to offer customers from all over the world their preferred local payment method. Payment service providers (PSPs) can access a global selection of alternative payment methods using PPRO's proprietary processing platform.
PPRO is easy to integrate to and use through the REST API, making it scalable and reliable, while providing PSPs with critical value-added features.

Funding Types

There are two types of processing methods for securing the funds for a payment:
  • Guaranteed funds
  • Not guaranteed funds
Payment methods that are guaranteed funds enable merchants to know immediately

Endpoints for the REST API

Cybersource
supports these API requests and their corresponding endpoints:
Sale (
TRANSACTION
)
  • Production:
    POST
    https://api.cybersource.com
    /pts/v2/payments
  • Test:
    POST
    https://apitest.cybersource.com
    /pts/v2/payments
Retrieve a Transaction (
GETSTATUS
)
  • Production:
    GET
    https://api.cybersource.com
    /tss/v2/transactions/
    {id}
  • Test:
    GET
    https://apitest.cybersource.com
    /tss/v2/transactions/
    {id}
For more information about the retrieve a transaction request, see:
Refund (
REFUND
)
  • Production:
    POST
    https://api.cybersource.com
    /pts/v2/payments/
    {id}
    /refunds
  • Test:
    POST
    https://apitest.cybersource.com
    /pts/v2/payments/
    {id}
    /refunds
Options
  • Production:
    POST
    https://api.cybersource.com
    /pts/v2/payments-options
  • Test:
    POST
    https://apitest.cybersource.com
    /pts/v2/payments-options

Processing a Sale Workflow

This workflow describes the sequence of events that comprises a successful PPRO payment.

Figure:

Sale Workflow
  1. The customer begins to check out on the merchant's website and chooses the PPRO payment method.
  2. The merchant sends a sale API request to
    Cybersource
    .
  3. Cybersource
    responds with one of these possible statuses:
    • COMPLETED
    • PENDING
    • SUCCEEDED_PENDING_FUNDS
    IMPORTANT
    There are transactions that do not use redirect URLs because the payment process does not require customer interaction. For these transactions, you will receive a status response after the initial sale request.
  4. If the sale status is
    PENDING
    or
    SUCCEEDED_PENDING_FUNDS
    , the merchant redirects the customer to the payment method's checkout URL included in the sale response.
    If the sale status is
    COMPLETED
    , see step 8.
  5. The customer completes the payment using the payment method's website and is then redirected to the merchant's website.
  6. The merchant sends a retrieve a transaction API request to
    Cybersource
    .

    ADDITIONAL INFORMATION

    You can send the retrieve a transaction request any time after a pending sale or refund request.
    Cybersource
    recommends sending a retrieve a transaction API request every 60-minutes for e-commerce transactions and every 3-minutes for in-store transactions until the payment is complete.
  7. Cybersource
    responds with a
    COMPLETED
    status.
  8. The merchant displays a confirmation of payment to the customer.

Processing a Sale Using a Bank ID Workflow

This workflow describes the sequence of events that comprises a successful payment with the options API request. The bank options API request is optional and is only supported by some PPRO payment methods.

Figure:

Sale with Bank Options Workflow
  1. The merchant sends a bank options API request to
    Cybersource
    at the beginning of the business day.
  2. Cybersource
    responds to merchant with a
    SUCCESS
    status and a list of supported banks.
  3. The merchant caches the retrieved bank list.
  4. The customer begins to check out on the merchant's website and chooses the PPRO payment method.
  5. The merchant displays the list of supported banks to the customer.
  6. The customer selects a supported bank.
  7. The merchant sends a sale API request to
    Cybersource
    .
  8. Cybersource
    responds with one of these possible statuses:
    • COMPLETED
    • PENDING
    • SUCCEEDED_PENDING_FUNDS
    IMPORTANT
    There are transactions that do not use redirect URLs because the payment process does not require customer interaction. For these transactions, you will receive a status response after the initial sale request.
  9. If the sale status is
    PENDING
    or
    SUCCEEDED_PENDING_FUNDS
    , the merchant redirects the customer to the bank URL included in the sale response.
    If the sale status is
    COMPLETED
    , see step 13.
  10. The customer completes the payment on the bank's website and is then redirected to the merchant's website.
  11. The merchant sends a retrieve a transaction API request to
    Cybersource
    .

    ADDITIONAL INFORMATION

    You can send the retrieve a transaction request any time after a pending sale or refund request.
    Cybersource
    recommends sending a retrieve a transaction API request every 60-minutes for e-commerce transactions and every 3-minutes for in-store transactions until the payment is complete.
  12. Cybersource
    responds with a
    COMPLETED
    status.
  13. The merchant displays a confirmation of payment to the customer.

Refunding a Payment Workflow

This workflow describes the sequence of events that comprises a successful refund.

Figure:

Refund Workflow
  1. The customer returns purchase to the merchant.
  2. The merchant sends a refund API request to
    Cybersource
    .
  3. Cybersource
    responds to the merchant with a
    REFUNDED
    status.
  4. The merchant sends a retrieve a transaction API request to
    Cybersource
    .

    ADDITIONAL INFORMATION

    You can send the retrieve a transaction request any time after a pending sale or refund request.
    Cybersource
    recommends sending a retrieve a transaction API request every 60-minutes for e-commerce transactions and every 3-minutes for in-store transactions until the refund is complete.
  5. Cybersource
    responds to the merchant with a
    REFUNDED
    status.
  6. The merchant displays the refund confirmation to the customer.

Response Statuses Workflow

This workflow describes the sequence of possible statuses you can receive when processing a payment and refund.

Figure:

Response Statuses Workflow
  1. (Optiona) When the customer is ready to make a purchase, you send a sale API request to
    Cybersource
    and receive one of these possible statuses:
  2. When the customer is ready to make a purchase, you send a sale API request to
    Cybersource
    and receive one of these possible statuses:
    • COMPLETED
      : The request is successful and the sale is complete. No further action is needed.
    • FAILED
      : The request is not successful due to the PPRO supported payment method declining the request. Send a new sale request.
    • INVALID_REQUEST
      : The request is not successful due to invalid information in the request. Send a new sale request.
    • PENDING
      : The request is successful and is currently processing. Redirect the customer to the payment method's URL in the response in order for the customer to complete the payment. Send periodic retrieve a transaction requests until the status updates.
    • SERVER_ERROR
      : The request is not successful due to a system timeout error. Resend the sale request.
    • SUCCEEDED_PENDING_FUNDS
      : The request is successful. PPRO is reviewing the request before releasing the funds. Send periodic retrieve a transaction requests until the status updates.
  3. To verify that the sale is complete, you send a retrieve a transaction API request to
    Cybersource
    and receive one of these possible statuses:
    • COMPLETED
      : The customer has completed the checkout using the redirect URL and the sale is complete. No further action is needed.
    • FAILED
      : The request is not successful due to the PPRO supported payment method declining the request. Send a new request.
    • PENDING
      : The customer has not yet completed checking out using the redirect URL. Continue sending periodic retrieve a transaction requests until the status updates.
    • SERVER_ERROR
      : The request is not successful due to a system timeout error. Resend the request.
    • SUCCEEDED_PENDING_FUNDS
      : The request is successful. PPRO is reviewing the request before releasing the funds. Continue sending periodic retrieve a transaction requests until the status updates.
  4. When the customer returns a purchase, you send a refund API request to
    Cybersource
    and receive one of these possible statuses:
    • FAILED
      : The request is not successful due to the PPRO supported payment method declining the request. Send a new refund request.
    • INVALID_REQUEST
      : The request is not successful due to invalid information in the request. Send a new sale request.
    • PENDING_FUNDS
      : The request is not successful due to either a financial limitation, legal restriction, or operational reason, such as money-holding regulations or anti-money laundering (AML) regulations. Send a new refund request.
    • REFUNDED
      : The request is successful and the refund is complete. No further action is needed.
    • SERVER_ERROR
      : The request is not successful due to a system timeout error. Resend the refund request.

Alfamart

This section describes how to integrate APIs that perform these functions:

Alfamart Sales

This section describes how to process a sale.
Cybersource
enables customers to make general purchases and purchases using Kredivo.
For all general purchases, use the required fields and any optional field you may want. If you are making a purchase using Kredivo, you must use the required fields and the additional relevant fields.

Airline Sales

For all airline related purchases, set the industry type to airline:
processingInformation.industryDataType
Set to
airline
.
If the purchase is airline related but not for a flight ticket, set the field value to
No
.
If the purchase is for a flight ticket, set the field value to
Yes
, and include the additional airline fields.

Kredivo Sales

For all purchases using Kredivo, set the payment type to
kredivo
:
paymentInformation.paymentType.method.type
You will also need to include the address and locality fields when using Kredivo as the payment type.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Alfamart Required Fields for a Sale Using the REST API

Airline Fields

This field is required for all airline transactions.
These fields are required if
processingInformation.industryDataType=airline
is set to
Yes
.
travelInformation.transit.airline.flightType
travelInformation.transit.airline.reservationSystemCode
travelInformation.transit.airline.passengerType
travelInformation.transit.airline.legs[].departTaxAmount
travelInformation.transit.airline.totalInsuranceAmount
travelInformation.transit.airline.ticketIssuer.code
travelInformation.transit.airline.frequentFlyerNumber
Set to
AG
.

Alfamart Optional Field

paymentInformation.paymentType.method.type

Example: Requesting an Alfamart Sale Using the REST API

Request
{ "clientReferenceInformation": { "reconciliationId": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "888888888800", "currency": "IDR", "taxAmount": "5", "surcharge": { "amount": "12000" } }, "billTo": { "firstName": "John", "lastName": "abc", "country": "ID", "address1": "xyz street 13 14", "phoneNumber": "12628123456", "email": "abc@email.com" }, "shipTo": { "country": "ID", "address1": "Sudirman", "address2" :"test", "locality": "Jakarta", "postalCode": "12190" }, "lineItems": [ { "productName": "mobile", "quantity": "9", "unitPrice": "32.4", "totalAmount": "70000" }, { "productName": "table", "quantity": "9", "unitPrice": "32.4", "totalAmount": "30000" } ] }, "paymentInformation": { "paymentType": { "name": "offline", "method": { "name": "alfamart", "type":"alfaVa" } }, "customer": { "customerid": "abcd" } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "test-merchant-descriptor" } }, "recipientInformation": { "beneficiaryAddress": "13735 SE 184th PL RN 98058", "beneficiaryId": "ben_id", "beneficiaryName": "John Doe" }, "deviceInformation": { "ipAddress": "127.0.0.1" }, "buyerInformation": { "personalIdentification": [ { "id": "personal_Identification" } ], "merchantCustomerId": "143456789700" }, "consumerAuthenticationInformation": { "customerCardAlias": "hishriva" } ] } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1177494712", "rawStatus": "PENDING", "paymentUrl": "https://r2.paygate.de/doku/S1150/I?tx=1177494712&rs=LNWNzQnylSg25Pd4RdEftLK5ilXDOeWg&cs=5430e64522b04fa7d8b27c2125a977efdc56f67a00ca9cdd3e5ab1e0ce5167ac" }, "reconciliationId": "sale1077", "message": "Successful", "status": "PENDING", "id": "6523329019126743604765", "submitTimeUtc": "2022-06-15T02:54:23Z" }

Example: Requesting an Alfamart Kredivo Sale Using the REST API

Request
{ "clientReferenceInformation": { "reconciliation": "sale5623", "code":"alfaKred123" }, "orderInformation": { "amountDetails": { "totalAmount": "1000000", "currency": "IDR", "taxAmount": "5", "surcharge": { "amount": "1200" } }, "billTo": { "firstName": "John", "lastName": "abc", "country": "ID", "address1": "xyz street 13 14", "phoneNumber": "12628123456", "email": "abc@email.com" }, "shipTo": { "country": "ID", "address1": "Sudirman", "address2" :"test", "locality": "Jakarta", "postalCode": "12190" }, "lineItems": [ { "productName": "mobile", "quantity": "9", "unitPrice": "32.4", "totalAmount": "70000" }, { "productName": "table", "quantity": "9", "unitPrice": "32.4", "totalAmount": "30000" } ] }, "paymentInformation": { "paymentType": { "name": "offline", "method": { "name": "alfamart", "type":"kredivo" } }, "customer": { "customerid": "1278" } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "test-merchant-descriptor" } }, "recipientInformation": { "beneficiaryAddress": "13735 SE 184th PL RN 98058", "beneficiaryId": "ben_id", "beneficiaryName": "John Doe" }, "deviceInformation": { "ipAddress": "127.0.0.1" }, "buyerInformation": { "personalIdentification": [ { "id": "personal_Identification" } ], "merchantCustomerId": "143456789700" }, "consumerAuthenticationInformation": { "customerCardAlias": "hishriva" } ] } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1175659126", "rawStatus": "PENDING", "paymentUrl": "https://r2.paygate.de/doku/S1150/I?tx=1175659126&rs=v0hSSuo0LOX0YfRgJ4lO0heL1QqHb8RQ&cs=610832f0d173f918673117622895715a2015fbbdcf173dc1937ffeb1dc6c6c57" }, "message": "Successful", "status": "PENDING", "id": "6523329019126743604781", "submitTimeUtc": "2022-06-13T04:44:26Z" }

Alfamart Retrieve a Transaction

This section describes how to retrieve the status of a pending payment or refund.

Alfamart Fields

These fields are required for all get status requests.

Example: Requesting an Alfamart Status Using the REST API

Request
{ ""orderInformation"": { ""amountDetails"": { ""totalAmount"": ""1"", ""currency"": ""IDR"" } }, ""clientReferenceInformation"": { ""reconciliationId"": ""sale1077"", ""originalTransactionId"": ""1177494712"" }, ""paymentInformation"": { ""paymentType"": { ""name"": ""offline"", ""method"": { ""name"": ""alfamart"", ""type"":""alfaVa"" } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "144491809" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031944", "submitTimeUtc": "2022-06-15T02:55:39Z" }

Example: Requesting an Alfamart Retrieve a Transaction Kredivo Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "IDR" } }, "clientReferenceInformation": { "reconciliationId": "sale5623", "originalTransactionId": "838944272" }, "paymentInformation": { "paymentType": { "name": "offline", "method": { "name": "alfamart", "type":"kredivo" } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "128349377" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031957", "submitTimeUtc": "2022-06-13T05:09:17Z" }

Alfamart Refunds

This section describes how to issue a refund.

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.

Example: Requesting an Alfamart Refund Using the REST API

Request
{ ""orderInformation"": { ""amountDetails"": { ""totalAmount"": ""1"", ""currency"": ""IDR"" } }, ""clientReferenceInformation"": { ""reconciliationId"": ""sale1077"", ""originalTransactionId"": ""1177494712"" }, ""paymentInformation"": { ""paymentType"": { ""name"": ""offline"", ""method"": { ""name"": ""alfamart"" } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "144491809" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031944", "submitTimeUtc": "2022-06-15T02:55:39Z" }

Bancontact

This section describes how to integrate APIs that perform these functions:

Bancontact Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Example: Requesting an Bancontact Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "100000", "currency": "EUR", "taxAmount": "9080" }, "billTo":{ "country":"BE", "firstName":"John", "lastName":"Doe" } }, "paymentInformation": { "paymentType": { "name": "localCard", "method": { "name": "bcmc" } } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "DynDescriptor" } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1165805002", "rawStatus": "PENDING", "paymentUrl": "https%3A%2F%2Fr3%2Epaygate%2Ede%2Fti%2Fsimbcmc%3Ftx%3D1165805002%26rs%3DLH3m1gjyyzue63noDu1TsUMgAlPU7YFS%26cs%3D7050f6a1ff2624c12bb26bc0a45e4c24eb748f97aaab4f5f6b5efc7ec949f26e" }, "reconciliationId": "sale1077", "paymentInformation": { "binCountry": "BE" }, "message": "Successful", "status": "PENDING", "id": "65233290191267436032912", "submitTimeUtc": "2022-06-02T14:14:54Z" }

Retrieve a Transaction

This section describes how to retrieve the status of a pending transaction.

Endpoints

Production:
GET
https://api.cybersource.com
/tss/v2/transactions/
{id}
Test:
GET
https://apitest.cybersource.com
/tss/v2/transactions/
{id}
Set the
{id}
to the request ID of the original transaction.

Bancontact Retrieve a Transaction

These fields are required for all get status requests.

Example: Requesting an Bancontact Status Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "EUR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "1165805002" }, "paymentInformation": { "paymentType": { "name": "localCard", "method": { "name": "bcmc" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "143875117" }, "message": "Successful", "status": "REFUNDED", "id": "65233290191267436031868", "submitTimeUtc": "2022-06-02T14:38:40Z" }

Example: Requesting an Bancontact Refund Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "EUR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "1165805002" }, "paymentInformation": { "paymentType": { "name": "localCard", "method": { "name": "bcmc" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "143875117" }, "message": "Successful", "status": "REFUNDED", "id": "65233290191267436031868", "submitTimeUtc": "2022-06-02T14:38:40Z" }

DOKU

This section describes how to integrate APIs that perform these functions:

DOKU Sales

Cybersource
enables customers to make general purchases and purchases using Kredivo.
For all general purchases, use the required fields and any optional field you may want. If you are making a purchase using Kredivo, you must use the required fields and the additional relevant fields.

Airline Sales

For all airline related purchases, set the industry type to airline:
processingInformation.industryDataType
Set to
airline
.
If the purchase is airline related but not for a flight ticket, set the field value to
No
.
If the purchase is for a flight ticket, set the field value to
Yes
, and include the additional airline fields.

Kredivo Sales

For all purchases using Kredivo, set the payment type to
kredivo
:
paymentInformation.paymentType.method.type
You will also need to include the address and locality fields when using Kredivo as the payment type.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

DOKU Required Fields

Airline Fields

This field is required for all airline transactions.
These fields are required if
processingInformation.industryDataType=airline
is set to
Yes
.
travelInformation.transit.airline.flightType
travelInformation.transit.airline.reservationSystemCode
travelInformation.transit.airline.passengerType
travelInformation.transit.airline.legs[].departTaxAmount
travelInformation.transit.airline.totalInsuranceAmount
travelInformation.transit.airline.ticketIssuer.code
travelInformation.transit.airline.frequentFlyerNumber
Set to
AG
.

DOKU Optional Field

paymentInformation.paymentType.method.type

Example: Requesting an DOKU Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1000000", "currency": "IDR", "taxAmount": "5", "surcharge": { "amount": "1200" } }, "billTo": { "firstName": "John", "lastName": "abc", "country": "ID", "address1": "xyz street 13 14", "phoneNumber": "12628123456", "email": "abc@email.com" }, "shipTo": { "country": "ID", "address1": "Sudirman", "address2" :"test", "locality": "Jakarta", "postalCode": "12190" }, "lineItems": [ { "productName": "mobile", "quantity": "9", "unitPrice": "32.4", "totalAmount": "70000" }, { "productName": "table", "quantity": "9", "unitPrice": "32.4", "totalAmount": "30000" } ] }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "doku", "type":"dokuWallet" } }, "customer": { "customerid": "1234" } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "test-merchant-descriptor" } }, "recipientInformation": { "beneficiaryAddress": "13735 SE 184th PL RN 98058", "beneficiaryId": "ben_id", "beneficiaryName": "John Doe" }, "deviceInformation": { "ipAddress": "127.0.0.1" }, "buyerInformation": { "personalIdentification": [ { "id": "personal_Identification" } ], "merchantCustomerId": "143456789700" }, "consumerAuthenticationInformation": { "customerCardAlias": "hishriva" } ] } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1169585326", "rawStatus": "PENDING", "paymentUrl": "https://r2.paygate.de/doku/S1150/I?tx=1169585326&rs=KsDe6CmsEhILcRdYHIwTq6WuiplX1nHJ&cs=2a6c47283e3caac6890d5e1a18fff56579cedd80a7091b529426bad627093430" }, "message": "Successful", "status": "PENDING", "id": "6523329019126743603331", "submitTimeUtc": "2022-06-06T14:24:14Z" }

DOKU Retrieve a Transaction

This section describes how to retrieve the status of a pending payment or refund.

DOKU Required Fields

These fields are required for all get status requests.

Example: Requesting an DOKU Retrieve a Transaction Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "IDR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "1169585326" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "doku", "type":"dokuWallet" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "144051805" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031908", "submitTimeUtc": "2022-06-06T14:26:35Z" }

DOKU Refunds

This section describes how to issue a refund.

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.

Example: Requesting an DOKU Refund Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "IDR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "1169585326" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "doku" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "144051805" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031908", "submitTimeUtc": "2022-06-06T14:26:35Z" }

Dragonpay

This section describes how to integrate APIs that perform these functions:

Dragonpay Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Example: Requesting an Dragonpay Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "5001", "currency": "PHP", "taxAmount": "900" }, "billTo":{ "country":"PH", "firstName":"John", "lastName":"Doe", "email":"hishriva@visa.com", "phoneNumber":"987654321" } }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "dragonPay" } } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "DynDescriptor" } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1169511625", "rawStatus": "PENDING", "paymentUrl": "https://r2.paygate.de/molpay/S1321/I?tx=1169511625&rs=YkLYEOCpK0WUHQH3RUC76a0yMm7LkLfQ&cs=c9aa7308ba57f4790fb2eaf9421964d7980318023884f35055804d44ceefd5cc" }, "message": "Successful", "status": "PENDING", "id": "6523329019126743603310", "submitTimeUtc": "2022-06-06T13:07:11Z" }

Retrieve a Transaction

This section describes how to retrieve the status of a pending transaction.

Endpoints

Production:
GET
https://api.cybersource.com
/tss/v2/transactions/
{id}
Test:
GET
https://apitest.cybersource.com
/tss/v2/transactions/
{id}
Set the
{id}
to the request ID of the original transaction.

Required Fields for a Retrieve a Transaction

These fields are required for all get status requests.

Example: Requesting an Dragonpay Retrieve a Transaction Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "PHP" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "1169511625" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "dragonPay" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "144048964" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031901", "submitTimeUtc": "2022-06-06T13:11:15Z" }

Dragonpay Refunds

This section describes how to issue a refund.

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.

Example: Requesting an Dragonpay Refund Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "PHP" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "1169511625" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "dragonPay" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "144048964" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031901", "submitTimeUtc": "2022-06-06T13:11:15Z" }

eNets

This section describes how to process eNets transactions.

eNets Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Example: Requesting an eNets Sale Using the REST API

Request
{ "clientReferenceInformation": { "reconciliationId": "sale1002" }, "orderInformation": { "amountDetails": { "totalAmount": "600", "currency": "SGD", "taxAmount": "5" }, "billTo": { "firstName": "Tester", "lastName": "Doe", "country": "SG", "email": "hishriva12345@visa.com", "phoneNumber": "1234567891" } }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "eNets" } } }, "merchantInformation": { "returnUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "testdescription" } }, "recipientInformation": { "beneficiaryAddress": "13735 SE 184th PL RN 98058", "beneficiaryId": "ben_id", "beneficiaryName": "John Doe" }, "deviceInformation": { "ipAddress": "127.0.0.1" }, "buyerInformation": { "personalIdentification": [ { "id": "personal_Identification" } ], "mobilePhone": "8095803465" }, "consumerAuthenticationInformation": { "customerCardAlias": "hishriva" } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1176624208", "rawStatus": "PENDING", "paymentUrl": "https://r2.paygate.de/molpayhpp/S1364/I?tx=1176624208&rs=9t8qB403zKAshn97CCkhfnMiVCmVAUmn&cs=2a3b6182a1bde0a2d5a8a8be36f71a54c63a2e4478bbf216f19a6af372ceaa5e" }, "reconciliationId": "sale1002", "message": "Successful", "status": "PENDING", "id": "6523329019126743604852", "submitTimeUtc": "2022-06-14T06:24:54Z" }

EPS

This section describes how to integrate APIs that perform these functions:

EPS Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Example: Requesting an EPS Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1055", "currency": "EUR", "taxAmount": "900" }, "billTo":{ "country":"AT", "firstName":"John", "lastName":"Doe" } }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "eps" } } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "DynDescriptor" } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "832620566", "rawStatus": "PENDING", "paymentUrl": "https://r3.paygate.de/ti/simeps?tx=832620566&rs=PM6XKpSDAJJAAxcmITZcY2MerNcGGvkf&cs=6ea7d1e4be1d8d674b9a1758cd8841d27de842ad783077b5e32ca8d406418201" }, "paymentInformation": { "binCountry": "AT" }, "message": "Successful", "status": "PENDING", "id": "65233290191267436032979", "submitTimeUtc": "2022-06-06T10:43:32Z" }

EPS Refunds

This section describes how to issue a refund.

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.

Example: Requesting an EPS Refund Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "EUR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "832620566" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "eps" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "128011817" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031896", "submitTimeUtc": "2022-06-06T10:47:04Z" }

Estonia Banks

This section describes how to integrate APIs that perform these functions:

Retrieve Bank Options

This section describes how to send an options request in order to retrieve a list of participating banks for the day.
Perform the options request to receive the latest updates for participating banks' redirect URLs, IDs, and any additional data.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments-options
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments-options

Required Fields for Options Using the REST API

These fields are required for setting options.
paymentInformation.paymentType.method.type

Example: Retrieving Bank Options

Request
{ "clientReferenceInformation" : { "code" : "123456" }, "paymentInformation" : { "paymentType" : { "method" : { "name" : "estoniabanks" }, "name" : "bankTransfer" } } }
Response to a Successful Request
{ "submitTimeUtc": "Wed Nov 13 21:26:33 UTC 2024", "paymentOptions": { "resources": [ { "name": "BLIK - PSP", "id": "154" }, { "id": "94", "name": "Euro Bank" }, { "id": "25", "name": "mBank - mTransfer" }, { "id": "135", "name": "Płac ̨e z IKO" }, { "name": "Płac ̨e z Orange", "id": "146" }, { "name": "Przekaz tradycyjny", "id": "178" }, { "id": "102", "name": "Raiffeisen Bank PBL" }, { "id": "177", "name": "U ̇zyj przedpłaty" }, { "id": "1000", "name": "Przekaz/Przelew tradycyjny" } ], "type": "p24methods" }, "paymentInformation": { "paymentType": { "method": { "name": "p24" }, "name": "bankTransfer" } }, "id": "7315331927636272003955", "message": "Successful", "status": "SUCCEEDED" }

Estonia Banks Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Estonia Banks Optional Field

paymentOptions.resources[].id

Example: Requesting an Estonia Banks Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "zZx5WZ3dkbMp" }, "deviceInformation": { "ipAddress": "127.0.0.1" }, "orderInformation": { "billTo": { "country": "EE", "firstName": "firstName", "lastName": "lastName", "address1": "ABC city, XYZ street", "email": "abc@estoniabanks.com" }, "amountDetails": { "totalAmount": "1000", "currency": "EUR" } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "test-merchant-descriptor" } }, "paymentInformation": { "customer": { "customerid": "12345" }, "paymentType": { "method": { "name": "estonianbanks" }, "name": "bankTransfer" } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "829605119", "rawStatus": "PENDING", "paymentUrl": "https%3A%2F%2Fr3%2Epaygate%2Ede%2Fti%2Fsimestonianbanks%3Ftx%3D829605119%26rs%3DzaphIHohw9wVXcI7SRHIvK52o5FUwbGy%26cs%3Db326db7ec24d01fb318bb6ce0a4f495b8d32f19f7a4e90451077ef9ca91a8a53" }, "reconciliationId": "zZx5WZ3dkbMp", "paymentInformation": { "binCountry": "EE" }, "message": "Successful", "status": "PENDING", "id": "65233290191267436032918", "submitTimeUtc": "2022-06-03T05:14:54Z" }

Retrieve a Transaction

This section describes how to retrieve the status of a pending transaction.

Endpoints

Production:
GET
https://api.cybersource.com
/tss/v2/transactions/
{id}
Test:
GET
https://apitest.cybersource.com
/tss/v2/transactions/
{id}
Set the
{id}
to the request ID of the original transaction.

Required Fields for a Retrieve a Transaction

These fields are required for all get status requests.

Example: Requesting an Estonia Banks Retrieve a Transaction Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "EUR" } }, "clientReferenceInformation": { "code": "zZx5WZ3dkbMp", "originalTransactionId": "829605119" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "estonianbanks" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "zZx5WZ3dkbMp" }, "processorInformation": { "transactionId": "128019965" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031906", "submitTimeUtc": "2022-06-06T14:10:47Z" }

Estonia Banks Refunds

This section describes how to issue a refund.

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.

Example: Requesting an Estonia Banks Refund Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "EUR" } }, "clientReferenceInformation": { "code": "zZx5WZ3dkbMp", "originalTransactionId": "829605119" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "estonianbanks" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "zZx5WZ3dkbMp" }, "processorInformation": { "transactionId": "128019965" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031906", "submitTimeUtc": "2022-06-06T14:10:47Z" }

FPX Online Banking

This section describes how to integrate APIs that perform these functions:

FPX Online Banking Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

FPX Online Banking Optional Field

paymentInformation.bank.name

Example: Requesting an FPX Online Banking Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1055", "currency": "MYR", "taxAmount": "900" }, "billTo":{ "country":"MY", "firstName":"Jane", "lastName":"Doe", "phoneNumber":"909090909", "email":"abc@email.com" } }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "fpx" } }, "bank":{ "name":"publicbank" } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "DynDescriptor" } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "832651358", "rawStatus": "PENDING", "paymentUrl": "https://r2.paygate.de/molpay/T1418/I?tx=832651358&rs=VW9b6b9GdsVDe2oGhFyBSXd0n5OfeOeJ&cs=0edfbcae22459c249680b83939d993ef72107cdb854c91b309d46787ec5107f7" }, "message": "Successful", "status": "PENDING", "id": "65233290191267436032980", "submitTimeUtc": "2022-06-06T11:15:01Z" }

FPX Refunds

This section describes how to issue a refund.

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.

Example: Requesting an FPX Refund Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "MYR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "832620566" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "fpx" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "144051805" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031908", "submitTimeUtc": "2022-06-06T14:26:35Z" }

GrabPay

This section describes how to process a GrabPay transaction using the
REST API
.

GrabPay Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Example: Requesting an GrabPay Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1055", "currency": "SGD", "taxAmount": "9080" }, "billTo":{ "country":"SG", "firstName":"Jane", "lastName":"Doe", "email":"abc@email.com" } }, "paymentInformation": { "paymentType": { "name": "eWallet", "method": { "name": "grabpayotp" } } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "DynDescriptor" } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "829098179", "rawStatus": "PENDING", "paymentUrl": "https%3A%2F%2Fr2%2Epaygate%2Ede%2Fgrabpay%2FT1108%2FI%3Ftx%3D829098179%26rs%3DAq1IRTX1j5EavdyqFjbyNmwTyC0DS3Bj%26cs%3D4cc542fcaf38c695bfd2b039f086c8a921a819848bdc244c301ac539c43bffd4" }, "reconciliationId": "sale1077", "message": "Successful", "status": "PENDING", "id": "65233290191267436032914", "submitTimeUtc": "2022-06-02T14:56:37Z" }

iDEAL

This section describes how to process an iDEAL payment, refund a payment, and retrieve the current status of a payment or refund using the
REST API
.

Process a Sale

This section describes how to process an iDEAL sale.
A successful sale request includes an iDEAL redirect URL in the response. You must redirect the customer to this URL in order for the customer to complete the payment using their iDEAL account. If the customer does not complete the payment within 60 minutes of the URL being generated, the URL will expire and the sale's status updates to
FAILED
. If the URL expires, send a new sale request to complete the payment.

Shipping Information

Cybersource
recommends that you do not ship purchased items until the sale is in the completed status.

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 request with one of these possible statuses in the
status
response field.
  • PENDING
    : The request is successful and is currently processing. Redirect the customer to the payment method's URL in the response in order for the customer to complete the payment. Send periodic retrieve a transaction requests until the status updates.
  • FAILED
    : The request is not successful due to the PPRO supported payment method declining the request. Send a new sale request.
  • INVALID_REQUEST
    : The request is not successful due to invalid information in the request. Send a new sale request.
  • SERVER_ERROR
    : The request is not successful due to a system timeout error. Resend the sale request.

Example: Requesting an iDEAL Sale

Request
{ "orderInformation": { "billTo": { "country": "NL", "firstName": "Test", "lastName": "Tester" }, "amountDetails": { "totalAmount": "100.00", "currency": "EUR" } }, "merchantInformation": { "returnUrl": "https://www.test-merchant-return-url.com" }, "paymentInformation": { "paymentType": { "method": { "name": "ideal" }, "name": "bankTransfer" } } }
Response to a Successful Request
{ "paymentInformation": { "purposeOfPayment": "68EISVZ ", "binCountry": "NL" }, "processorInformation": { "transactionId": "140340904161", "rawStatus": "PENDING", "paymentUrl": "https://r3.girogate.de/ti/simideal?tx=140340904161&rs=dwnkeySIlrsvFT4iu2SGVQoyaFNxJ17j&cs=c67fb2057becdd9212b3896f8c3558beee576b249dc21d8682634dd8b64bdec4" }, "message": "Successful", "status": "PENDING", "id": "7395648657446662204807", "submitTimeUtc": "2025-02-14T20:27:45Z" }

Retrieve a Transaction

This section describes how to retrieve the current status of a sale or refund.
You can send the retrieve a transaction request any time after sending sale or refund request. When you send a retrieve a transaction,
Cybersource
responds with the transaction's current status in the
applicationInformation.status
response field.
Cybersource
recommends sending a retrieve a transaction request every 60-minutes for e-commerce transactions and every 3-minutes for in-store transactions until the payment is complete.

Shipping Information

Cybersource
recommends that you do not ship purchased items until the sale is in the completed status.

Endpoints

Production:
GET
https://api.cybersource.com
/tss/v2/transactions/
{id}
Test:
GET
https://apitest.cybersource.com
/tss/v2/transactions/
{id}
Set the
{id}
to the request ID of the original transaction.

Response Statuses

Cybersource
responds to your request with one of these possible statuses in the
status
response field.
  • COMPLETED
    : The customer has completed the checkout using the redirect URL and the sale is complete. No further action is needed.
  • FAILED
    : The request is not successful due to the PPRO supported payment method declining the request. Send a new request.
  • PENDING
    : The customer has not yet completed checking out using the redirect URL. Continue sending periodic retrieve a transaction requests until the status updates.
  • SERVER_ERROR
    : The request is not successful due to a system timeout error. Resend the request.

Example: Requesting an iDEAL Retrieve a Transaction

Request
{}
Response to a Successful Request
{ "id": "7395648657446662204807", "rootId": "7395648657446662204807", "status": "PENDING", "submitTimeUTC": "2025-02-14T20:27:45Z", "merchantId": "test_merchant", "applicationInformation": { "status": "PENDING", "reasonCode": 201, "applications": [ { "name": "altpay_transaction", "status": "PENDING", "reasonCode": "201", "rMessage": "Successful" } ] }, "buyerInformation": {}, "clientReferenceInformation": { "partner": {} }, "consumerAuthenticationInformation": { "transactionId": "140340904161", "strongAuthentication": {} }, "deviceInformation": {}, "errorInformation": { "message": "Successful" }, "installmentInformation": {}, "fraudMarkingInformation": {}, "merchantInformation": { "merchantDescriptor": { "name": "test_merchant" } }, "orderInformation": { "billTo": { "firstName": "Test", "lastName": "Testerson", "country": "NL" }, "shipTo": {}, "amountDetails": { "totalAmount": "100", "currency": "EUR", "taxAmount": "0", "authorizedAmount": "100" }, "shippingDetails": {}, "invoiceDetails": {} }, "paymentInformation": { "customer": {}, "paymentInstrument": {}, "instrumentIdentifier": {}, "shippingAddress": {}, "paymentType": { "name": "ppro", "type": "bankTransfer", "method": "IDLPP" }, "card": { "type": "IDLPP" }, "invoice": {}, "accountFeatures": {}, "fluidData": {}, "issuerInformation": {}, "paymentAccountInformation": { "card": {}, "features": {}, "network": {} } }, "paymentInsightsInformation": { "responseInsights": {}, "ruleResults": {} }, "payoutInformation": { "pushFunds": {}, "pullFunds": {} }, "payoutOptions": {}, "processingInformation": { "paymentSolution": "BankTransfer Payment Ideal", "authorizationOptions": { "initiator": { "merchantInitiatedTransaction": {} }, "cardVerificationIndicator": false }, "bankTransferOptions": {}, "japanPaymentOptions": {}, "fundingOptions": { "firstRecurringPayment": false }, "captureOptions": {} }, "processorInformation": { "processor": { "name": "ppro" }, "transactionId": "140340904161", "responseCode": "201", "avs": {}, "cardVerification": {}, "achVerification": { "resultCodeRaw": "201" }, "electronicVerificationResults": {}, "eventStatus": "Pending" }, "pointOfSaleInformation": {}, "riskInformation": { "score": {} }, "recipientInformation": {}, "senderInformation": { "account": {}, "paymentInformation": { "customer": {}, "paymentType": { "name": "ppro", "type": "bankTransfer", "method": "IDLPP" }, "card": { "type": "IDLPP" }, "invoice": {}, "accountFeatures": {}, "fluidData": {}, "issuerInformation": {}, "paymentAccountInformation": {} } }, "tokenInformation": {}, "_links": { "self": { "href": "https://apitest.cybersource.com/tss/v2/transactions/7395648657446662204807", "method": "GET" } }, "recurringPaymentInformation": {}, "unscheduledPaymentInformation": {} }

Refund a Payment

This section describes how to issue a refund.

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 request with one of these possible statuses in the
status
response field.
  • FAILED
    : The request is not successful due to the PPRO supported payment method declining the request. Send a new refund request.
  • INVALID_REQUEST
    : The request is not successful due to invalid information in the request. Send a new sale request.
  • PENDING_FUNDS
    : The request is not successful due to either a financial limitation, legal restriction, or operational reason, such as money-holding regulations or anti-money laundering (AML) regulations. Send a new refund request.
  • REFUNDED
    : The request is successful and the refund is complete. No further action is needed.
  • SERVER_ERROR
    : The request is not successful due to a system timeout error. Resend the refund request.

Example: Requesting an iDEAL Refund

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "45.00", "currency": "EUR" } }, "clientReferenceInformation": { "originalTransactionId": "2376538903" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "ideal" } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1319551320" }, "message": "Successful", "status": "REFUNDED", "id": "7395660749286003504805", "submitTimeUtc": "2025-02-14T20:47:55Z" }

Indomaret

This section describes how to integrate APIs that perform this function:

Indomaret Sales

Cybersource
enables customers to make general purchases and purchases using Kredivo.
For all general purchases, use the required fields and any optional field you may want. If you are making a purchase using Kredivo, you must use the required fields and the additional relevant fields.

Airline Sales

For all airline related purchases, set the industry type to airline:
processingInformation.industryDataType
Set to
airline
.
If the purchase is airline related but not for a flight ticket, set the field value to
No
.
If the purchase is for a flight ticket, set the field value to
Yes
, and include the additional airline fields.

Kredivo Sales

For all purchases using Kredivo, set the payment type to
kredivo
:
paymentInformation.paymentType.method.type
You will also need to include the address and locality fields when using Kredivo as the payment type.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Indomaret Fields

Airline Fields

This field is required for all airline transactions.
These fields are required if
processingInformation.industryDataType=airline
is set to
Yes
.
travelInformation.transit.airline.flightType
travelInformation.transit.airline.reservationSystemCode
travelInformation.transit.airline.passengerType
travelInformation.transit.airline.legs[].departTaxAmount
travelInformation.transit.airline.totalInsuranceAmount
travelInformation.transit.airline.ticketIssuer.code
travelInformation.transit.airline.frequentFlyerNumber
Set to
AG
.

Indomaret Optional Field

paymentInformation.paymentType.method.type

Example: Requesting an Indomaret Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1000000", "currency": "IDR", "taxAmount": "5", "surcharge": { "amount": 1200 } }, "billTo": { "firstName": "John", "lastName": "abc", "country": "ID", "address1": "xyz street 13 14", "phoneNumber": "12628123456", "email": "abc@email.com" }, "shipTo": { "country": "ID", "address1": "Sudirman", "address2" :"test", "locality": "Jakarta", "postalCode": "12190" } }, "paymentInformation": { "paymentType": { "name": "offline", "method": { "name": "indomaret", "type":"alfaVa" } }, "customer": { "customerid": "abcd" } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "test-merchant-descriptor" } }, "deviceInformation": { "ipAddress": "127.0.0.1" }, "buyerInformation": { "personalIdentification": [ { "id": "personal_Identification" } ], "merchantCustomerId": "143456789700" }, ] } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1166616607", "rawStatus": "PENDING", "paymentUrl": "https%3A%2F%2Fr2%2Epaygate%2Ede%2Fdoku%2FS1150%2FI%3Ftx%3D1166616607%26rs%3DE85JYxrmL2kbtET79vRYCfYijdhrQLbe%26cs%3D27a86537adeed14853ca13c56d3140fafa9c9d3b62cdc192cded9964348bcebd" }, "reconciliationId": "sale1077", "message": "Successful", "status": "PENDING", "id": "65233290191267436032944", "submitTimeUtc": "2022-06-03T11:06:01Z" }

Indonesia Banks

This section describes how to integrate APIs that perform these functions:

Indonesia Banks Sales

Cybersource
enables customers to make general purchases and purchases using Kredivo.
For all general purchases, use the required fields and any optional field you may want. If you are making a purchase using Kredivo, you must use the required fields and the additional relevant fields.

Airline Sales

For all airline related purchases, set the industry type to airline:
processingInformation.industryDataType
Set to
airline
.
If the purchase is airline related but not for a flight ticket, set the field value to
No
.
If the purchase is for a flight ticket, set the field value to
Yes
, and include the additional airline fields.

Kredivo Sales

For all purchases using Kredivo, set the payment type to
kredivo
:
paymentInformation.paymentType.method.type
You will also need to include the address and locality fields when using Kredivo as the payment type.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Indonesia Banks Fields

Airline Fields

This field is required for all airline transactions.
These fields are required if
processingInformation.industryDataType=airline
is set to
Yes
.
travelInformation.transit.airline.flightType
travelInformation.transit.airline.reservationSystemCode
travelInformation.transit.airline.passengerType
travelInformation.transit.airline.legs[].departTaxAmount
travelInformation.transit.airline.totalInsuranceAmount
travelInformation.transit.airline.ticketIssuer.code
travelInformation.transit.airline.frequentFlyerNumber
Set to
AG
.

Indonesia Optional Field

paymentInformation.paymentType.method.type

Example: Requesting an Indonesia Banks Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1000000", "currency": "IDR", "taxAmount": "5", "surcharge": { "amount": "1200" } }, "billTo": { "firstName": "Jane", "lastName": "abc", "country": "ID", "address1": "xyz street 13 14", "phoneNumber": "12628123456", "email": "abc@email.com" }, "shipTo": { "country": "ID", "address1": "Sudirman", "address2" :"test", "locality": "Jakarta", "postalCode": "12190" }, "lineItems": [ { "productName": "mobile", "quantity": "9", "unitPrice": "32.4", "totalAmount": "70000" }, { "productName": "table", "quantity": "9", "unitPrice": "32.4", "totalAmount": "30000" } ] }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "indonesiaBank", "type":"bankMandiri" } }, "customer": { "customerid": "1234" } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "test-merchant-descriptor" } }, "recipientInformation": { "beneficiaryAddress": "13735 SE 184th PL RN 98058", "beneficiaryId": "ben_id", "beneficiaryName": "John Doe" }, "deviceInformation": { "ipAddress": "127.0.0.1" }, "buyerInformation": { "personalIdentification": [ { "id": "personal_Identification" } ], "merchantCustomerId": "143456789700" }, "consumerAuthenticationInformation": { "customerCardAlias": "hishriva" } ] } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1169545123", "rawStatus": "PENDING", "paymentUrl": "https://r2.paygate.de/doku/S1150/I?tx=1169545123&rs=VfcxWb4wfxeZoayPogIz9cGE7LAzU33j&cs=06f532201a8075d3ba3d7e4abd3fe02974f6a21fd2f38dabffdd122187a8c5f4" }, "message": "Successful", "status": "PENDING", "id": "6523329019126743603320", "submitTimeUtc": "2022-06-06T13:42:08Z" }

Indonesia Banks Retrieve a Transaction

This section describes how to retrieve a transaction status.

Indonesia Banks Fields

These fields are required for all get status requests.

Example: Requesting an Indonesia Banks Retrieve a Transaction Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "IDR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "832812116" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "indonesiaBank", "type":"briVa" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "128019431" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031902", "submitTimeUtc": "2022-06-06T14:00:25Z" }

Indonesia Banks Refunds

This section describes how to issue a refund.

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.

Example: Requesting an Indonesia Banks Refund Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "IDR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "832812116" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "indonesiaBank" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "128019431" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031902", "submitTimeUtc": "2022-06-06T14:00:25Z" }

Jenius Pay

This section describes how to integrate APIs that perform these functions:

Jenius Pay Sales

Cybersource
enables customers to make general purchases and purchases using Kredivo.
For all general purchases, use the required fields and any optional field you may want. If you are making a purchase using Kredivo, you must use the required fields and the additional relevant fields.

Airline Sales

For all airline related purchases, set the industry type to airline:
processingInformation.industryDataType
Set to
airline
.
If the purchase is airline related but not for a flight ticket, set the field value to
No
.
If the purchase is for a flight ticket, set the field value to
Yes
, and include the additional airline fields.

Kredivo Sales

For all purchases using Kredivo, set the payment type to
kredivo
:
paymentInformation.paymentType.method.type
You will also need to include the address and locality fields when using Kredivo as the payment type.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Jenius Pay Fields

Airline Fields

This field is required for all airline transactions.
These fields are required if
processingInformation.industryDataType=airline
is set to
Yes
.
travelInformation.transit.airline.flightType
travelInformation.transit.airline.reservationSystemCode
travelInformation.transit.airline.passengerType
travelInformation.transit.airline.legs[].departTaxAmount
travelInformation.transit.airline.totalInsuranceAmount
travelInformation.transit.airline.ticketIssuer.code
travelInformation.transit.airline.frequentFlyerNumber
Set to
AG
.

Jenius Pay Optional Field

paymentInformation.paymentType.method.type

Example: Requesting an Jenius Pay Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1000000", "currency": "IDR", "taxAmount": "5", "surcharge": { "amount": "1200" } }, "billTo": { "firstName": "John", "lastName": "abc", "country": "ID", "address1": "xyz street 13 14", "phoneNumber": "12628123456", "email": "abc@email.com" }, "shipTo": { "country": "ID", "address1": "Sudirman", "address2" :"test", "locality": "Jakarta", "postalCode": "12190" }, "lineItems": [ { "productName": "mobile", "quantity": "9", "unitPrice": "32.4", "totalAmount": "70000" }, { "productName": "table", "quantity": "9", "unitPrice": "32.4", "totalAmount": "30000" } ] }, "paymentInformation": { "paymentType": { "name": "eWallet", "method": { "name": "jeniusPay", "type":"jeniusPayWallet" } }, "customer": { "customerid": "abcd" } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "test-merchant-descriptor" } }, "recipientInformation": { "beneficiaryAddress": "13735 SE 184th PL RN 98058", "beneficiaryId": "ben_id", "beneficiaryName": "John Doe" }, "deviceInformation": { "ipAddress": "127.0.0.1" }, "buyerInformation": { "personalIdentification": [ { "id": "personal_Identification" } ], "merchantCustomerId": "143456789700" }, "consumerAuthenticationInformation": { "customerCardAlias": "hishriva" } ] } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1169264974", "rawStatus": "PENDING", "paymentUrl": "https://r2.paygate.de/doku/S1150/I?tx=1169264974&rs=Q9WGk75aBVbznsyzS1T8u9pELeoqRB5R&cs=f2b678e730cb4bd53008a7c234d8e2d395bd97013d4bbe31aa961248c405654e" }, "reconciliationId": "sale1077", "message": "Successful", "status": "PENDING", "id": "65233290191267436032971", "submitTimeUtc": "2022-06-06T09:01:52Z" }

Retrieve a Transaction

This section describes how to retrieve the status of a pending transaction.

Endpoints

Production:
GET
https://api.cybersource.com
/tss/v2/transactions/
{id}
Test:
GET
https://apitest.cybersource.com
/tss/v2/transactions/
{id}
Set the
{id}
to the request ID of the original transaction.

Jenius Pay Fields

These fields are required for all get status requests.

Example: Requesting an Jenius Pay Retrieve a Transaction Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "IDR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "1169264974" }, "paymentInformation": { "paymentType": { "name": "eWallet", "method": { "name": "jeniusPay", "type":"jeniusPayWallet" } } } }
Response to a Successful Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "IDR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "1169264974" }, "paymentInformation": { "paymentType": { "name": "eWallet", "method": { "name": "jeniusPay", "type":"jeniusPayWallet" } } } }

Jenius Pay Refunds

This section describes how to issue a refund.

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.

Example: Requesting an Jenius Pay Refund Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "IDR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "1169264974" }, "paymentInformation": { "paymentType": { "name": "eWallet", "method": { "name": "jeniusPay" } } } }
Response to a Successful Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "IDR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "1169264974" }, "paymentInformation": { "paymentType": { "name": "eWallet", "method": { "name": "jeniusPay", "type":"jeniusPayWallet" } } } }

Konbini

This section describes how to integrate APIs that perform this function:

Konbini Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Example: Requesting an Konbini Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1055", "currency": "JPY", "taxAmount": "900" }, "billTo":{ "country":"JP", "firstName":"John", "lastName":"Doe", "email":"hishriva@visa.com", "phoneNumber":"1234567890" }, "lineItems":[ { "productName":"laptop" }, { "productName":"mobile" }] }, "paymentInformation": { "paymentType": { "name": "offline", "method": { "name": "konbini" } } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "DynDescriptor" } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1165857820", "rawStatus": "PENDING", "paymentUrl": "https%3A%2F%2Fr2%2Epaygate%2Ede%2Fecontext%2FS1124%2FI%3Ftx%3D1165857820%26rs%3DRxJvDBtl4wQISKXcJliBJgZlWMAbFT15%26cs%3Df32d07e6bc266f83d5b920ab0a8d56a74214bafd5cf0dd6e7bdfedf649945277" }, "paymentInformation": { "paymentType": { "method": { "name": "Convenience+Store+via+Lawson", "type": "654321" } } }, "reconciliationId": "sale1077", "message": "Successful", "status": "PENDING", "id": "65233290191267436032916", "submitTimeUtc": "2022-06-02T15:13:27Z" }

Retrieve a Transaction

This section describes how to retrieve the status of a pending transaction.

Endpoints

Production:
GET
https://api.cybersource.com
/tss/v2/transactions/
{id}
Test:
GET
https://apitest.cybersource.com
/tss/v2/transactions/
{id}
Set the
{id}
to the request ID of the original transaction.

Konbini Required Fields

These fields are required for all get status requests.

Example: Requesting an Konbini Retrieve a Transaction Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1055", "currency": "JPY", "taxAmount": "900" }, "billTo":{ "country":"JP", "firstName":"John", "lastName":"Doe", "email":"hishriva@visa.com", "phoneNumber":"1234567890" }, "lineItems":[ { "productName":"laptop" }, { "productName":"mobile" }] }, "paymentInformation": { "paymentType": { "name": "offline", "method": { "name": "konbini" } } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "DynDescriptor" } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1165857820", "rawStatus": "PENDING", "paymentUrl": "https%3A%2F%2Fr2%2Epaygate%2Ede%2Fecontext%2FS1124%2FI%3Ftx%3D1165857820%26rs%3DRxJvDBtl4wQISKXcJliBJgZlWMAbFT15%26cs%3Df32d07e6bc266f83d5b920ab0a8d56a74214bafd5cf0dd6e7bdfedf649945277" }, "paymentInformation": { "paymentType": { "method": { "name": "Convenience+Store+via+Lawson", "type": "654321" } } }, "reconciliationId": "sale1077", "message": "Successful", "status": "PENDING", "id": "65233290191267436032916", "submitTimeUtc": "2022-06-02T15:13:27Z" }

Latvia Banks

This section describes how to integrate APIs that perform these functions:

Retrieve Bank Options

This section describes how to send an options request in order to retrieve a list of participating banks for the day.
Perform the options request to receive the latest updates for participating banks' redirect URLs, IDs, and any additional data.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments-options
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments-options

Required Fields for Options Using the REST API

These fields are required for setting options.
paymentInformation.paymentType.method.type

Example: Retrieving Bank Options

Request
{ "clientReferenceInformation" : { "code" : "123456" }, "paymentInformation" : { "paymentType" : { "method" : { "name" : "latviabanks" }, "name" : "bankTransfer" } } }
Response to a Successful Request
{ "submitTimeUtc": "Wed Nov 13 21:26:33 UTC 2024", "paymentOptions": { "resources": [ { "name": "BLIK - PSP", "id": "154" }, { "id": "94", "name": "Euro Bank" }, { "id": "25", "name": "mBank - mTransfer" }, { "id": "135", "name": "Płac ̨e z IKO" }, { "name": "Płac ̨e z Orange", "id": "146" }, { "name": "Przekaz tradycyjny", "id": "178" }, { "id": "102", "name": "Raiffeisen Bank PBL" }, { "id": "177", "name": "U ̇zyj przedpłaty" }, { "id": "1000", "name": "Przekaz/Przelew tradycyjny" } ], "type": "p24methods" }, "paymentInformation": { "paymentType": { "method": { "name": "p24" }, "name": "bankTransfer" } }, "id": "7315331927636272003955", "message": "Successful", "status": "SUCCEEDED" }

Latvia Banks Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Latvia Banks Optional Field

paymentOptions.resources[].id

Example: Requesting an Latvia Banks Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1055", "currency": "EUR", "taxAmount": "900" }, "billTo":{ "country":"LV", "firstName":"John", "lastName":"Doe", "email":"hishriva@visa.com" } }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "latvianbanks" } } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "DynDescriptor" } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1171091725", "rawStatus": "PENDING", "paymentUrl": "https://r3.paygate.de/ti/simlatvianbanks?tx=1171091725&rs=Fni7aQNdjESNFExW5o2KYd4LDrDvb62I&cs=26551daa033efee844ddee1fa6d0dc8eaccab89984d124608ff461064cb8caed" }, "paymentInformation": { "binCountry": "LV" }, "message": "Successful", "status": "PENDING", "id": "652332901912674360406", "submitTimeUtc": "2022-06-08T03:42:28Z" }

Retrieve a Transaction

This section describes how to retrieve the status of a pending transaction.

Endpoints

Production:
GET
https://api.cybersource.com
/tss/v2/transactions/
{id}
Test:
GET
https://apitest.cybersource.com
/tss/v2/transactions/
{id}
Set the
{id}
to the request ID of the original transaction.

Latvia Banks Required Fields

These fields are required for all get status requests.

Example: Requesting an Latvia Banks Retrieve a Transaction Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "EUR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "1171091725" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "latvianbanks" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "144133396" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031954", "submitTimeUtc": "2022-06-08T03:48:01Z" }

Latvia Banks Refunds

This section describes how to issue a refund.

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.

Example: Requesting an Latvia Banks Refund Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "EUR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "1171091725" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "latvianbanks" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "144133396" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031954", "submitTimeUtc": "2022-06-08T03:48:01Z" }

LinkAja

This section describes how to integrate APIs that perform these functions:

LinkAja Sales

Cybersource
enables customers to make general purchases and purchases using Kredivo.
For all general purchases, use the required fields and any optional field you may want. If you are making a purchase using Kredivo, you must use the required fields and the additional relevant fields.

Airline Sales

For all airline related purchases, set the industry type to airline:
processingInformation.industryDataType
Set to
airline
.
If the purchase is airline related but not for a flight ticket, set the field value to
No
.
If the purchase is for a flight ticket, set the field value to
Yes
, and include the additional airline fields.

Kredivo Sales

For all purchases using Kredivo, set the payment type to
kredivo
:
paymentInformation.paymentType.method.type
You will also need to include the address and locality fields when using Kredivo as the payment type.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

LinkAja Fields

Airline Fields

This field is required for all airline transactions.
These fields are required if
processingInformation.industryDataType=airline
is set to
Yes
.
travelInformation.transit.airline.flightType
travelInformation.transit.airline.reservationSystemCode
travelInformation.transit.airline.passengerType
travelInformation.transit.airline.legs[].departTaxAmount
travelInformation.transit.airline.totalInsuranceAmount
travelInformation.transit.airline.ticketIssuer.code
travelInformation.transit.airline.frequentFlyerNumber
Set to
AG
.

LinkAja Optional Field

paymentInformation.paymentType.method.type

Example: Requesting a LinkAja Sale Using the REST API

Request
{ "clientReferenceInformation": { "reconciliationId": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "888888888800", "currency": "IDR", "taxAmount": "5", "surcharge": { "amount": "12000" } }, "billTo": { "firstName": "John", "lastName": "abc", "country": "ID", "address1": "xyz street 13 14", "phoneNumber": "12628123456", "email": "abc@email.com" }, "shipTo": { "country": "ID", "address1": "Sudirman", "address2" :"test", "locality": "Jakarta", "postalCode": "12190" }, "lineItems": [ { "productName": "mobile", "quantity": "9", "unitPrice": "32.4", "totalAmount": "70000" }, { "productName": "table", "quantity": "9", "unitPrice": "32.4", "totalAmount": "30000" } ] }, "paymentInformation": { "paymentType": { "name": "offline", "method": { "name": "linkAja", "type":"linkAjaWallet" } }, "customer": { "customerid": "abcd" } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "test-merchant-descriptor" } }, "recipientInformation": { "beneficiaryAddress": "13735 SE 184th PL RN 98058", "beneficiaryId": "ben_id", "beneficiaryName": "John Doe" }, "deviceInformation": { "ipAddress": "127.0.0.1" }, "buyerInformation": { "personalIdentification": [ { "id": "personal_Identification" } ], "merchantCustomerId": "143456789700" }, "consumerAuthenticationInformation": { "customerCardAlias": "JohnDoe" } ] } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1169297041", "rawStatus": "PENDING", "paymentUrl": "https://r2.paygate.de/doku/S1150/I?tx=1169297041&rs=11eWulFck8iFKfESciVBg45avTZvxSw7&cs=a9b6b62cf675771adafb20b8d63f4b35acc22e2be0073edbf30d7d2216511545" }, "reconciliationId": "sale1077", "message": "Successful", "status": "PENDING", "id": "65233290191267436032973", "submitTimeUtc": "2022-06-06T09:33:02Z" }

Example: Requesting an LinkAja Airline Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1000000", "currency": "IDR", "taxAmount": "5", "surcharge": { "amount": "1200" } }, "billTo": { "firstName": "John", "lastName": "abc", "country": "ID", "address1": "xyz street 13 14", "phoneNumber": "12628123456", "email": "abc@email.com" }, "shipTo": { "country": "ID", "address1": "Sudirman", "address2" :"test", "locality": "Jakarta", "postalCode": "12190" }, "lineItems": [ { "productName": "mobile", "quantity": "9", "unitPrice": "32.4", "totalAmount": "70000" }, { "productName": "table", "quantity": "9", "unitPrice": "32.4", "totalAmount": "30000" } ] }, "paymentInformation": { "paymentType": { "name": "eWallet", "method": { "name": "linkAja", "type":"linkAjaWallet" } }, "customer": { "customerid": "abcd" } }, "processingInformation": { "industryDataType": "airline" }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "test-merchant-descriptor" } }, "recipientInformation": { "beneficiaryAddress": "13735 SE 184th PL RN 98058", "beneficiaryId": "ben_id", "beneficiaryName": "John Doe" }, "deviceInformation": { "ipAddress": "127.0.0.1" }, "buyerInformation": { "personalIdentification": [ { "id": "personal_Identification" } ], "merchantCustomerId": "143456789700" }, "consumerAuthenticationInformation": { "customerCardAlias": "hishriva" } ] } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1169297041", "rawStatus": "PENDING", "paymentUrl": "https://r2.paygate.de/doku/S1150/I?tx=1169297041&rs=11eWulFck8iFKfESciVBg45avTZvxSw7&cs=a9b6b62cf675771adafb20b8d63f4b35acc22e2be0073edbf30d7d2216511545" }, "reconciliationId": "sale1077", "message": "Successful", "status": "PENDING", "id": "65233290191267436032973", "submitTimeUtc": "2022-06-06T09:33:02Z" }

Example: Requesting an LinkAja Kredivo Sale Using the REST API

Request
{ "clientReferenceInformation": { "reconciliationId": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "888888888800", "currency": "IDR", "taxAmount": "5", "surcharge": { "amount": "12000" } }, "billTo": { "firstName": "John", "lastName": "abc", "country": "ID", "address1": "xyz street 13 14", "phoneNumber": "12628123456", "email": "abc@email.com" }, "shipTo": { "country": "ID", "address1": "Sudirman", "address2" :"test", "locality": "Jakarta", "postalCode": "12190" }, "lineItems": [ { "productName": "mobile", "quantity": "9", "unitPrice": "32.4", "totalAmount": "70000" }, { "productName": "table", "quantity": "9", "unitPrice": "32.4", "totalAmount": "30000" } ] }, "paymentInformation": { "paymentType": { "name": "eWallet", "method": { "name": "linkAja", "type":"linkAjaWallet" } }, "customer": { "customerid": "abcd" } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "test-merchant-descriptor" } }, "recipientInformation": { "beneficiaryAddress": "13735 SE 184th PL RN 98058", "beneficiaryId": "ben_id", "beneficiaryName": "John Doe" }, "deviceInformation": { "ipAddress": "127.0.0.1" }, "buyerInformation": { "personalIdentification": [ { "id": "personal_Identification" } ], "merchantCustomerId": "143456789700" }, "consumerAuthenticationInformation": { "customerCardAlias": "hishriva" } ] } } } } Sample code still being tested as of 06/14/22 per teamResponse { "processorInformation": { "transactionId": "1177494712", "rawStatus": "PENDING", "paymentUrl": "https://r2.paygate.de/doku/S1150/I?tx=1177494712&rs=LNWNzQnylSg25Pd4RdEftLK5ilXDOeWg&cs=5430e64522b04fa7d8b27c2125a977efdc56f67a00ca9cdd3e5ab1e0ce5167ac" }, "reconciliationId": "sale1077",
Response to a Successful Request
{ "processorInformation": { "transactionId": "1169297041", "rawStatus": "PENDING", "paymentUrl": "https://r2.paygate.de/doku/S1150/I?tx=1169297041&rs=11eWulFck8iFKfESciVBg45avTZvxSw7&cs=a9b6b62cf675771adafb20b8d63f4b35acc22e2be0073edbf30d7d2216511545" }, "reconciliationId": "sale1077", "message": "Successful", "status": "PENDING", "id": "65233290191267436032973", "submitTimeUtc": "2022-06-06T09:33:02Z" }

Retrieve a Transaction

This section describes how to retrieve the status of a pending transaction.

Endpoints

Production:
GET
https://api.cybersource.com
/tss/v2/transactions/
{id}
Test:
GET
https://apitest.cybersource.com
/tss/v2/transactions/
{id}
Set the
{id}
to the request ID of the original transaction.

LinkAja Fields

These fields are required for all get status requests.

Example: Requesting an LinkAja Kredivo Retrieve a Transaction Using the REST API

Request
Response to a Successful Request

Example: Requesting an LinkAja Retrieve a Transaction Using the REST API

Request
Response to a Successful Request

LinkAja Refunds

This section describes how to issue a refund.

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.

Example: Requesting a LinkAja Refund Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "IDR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "1169297041" }, "paymentInformation": { "paymentType": { "name": "eWallet", "method": { "name": "linkAja" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "144040825" }, "message": "Successful", "status": "REFUNDED", "id": "65233290191267436031894", "submitTimeUtc": "2022-06-06T09:43:20Z" }

Lithuania Banks

This section describes how to integrate APIs that perform these functions:

Retrieve Bank Options

This section describes how to send an options request in order to retrieve a list of participating banks for the day.
Perform the options request to receive the latest updates for participating banks' redirect URLs, IDs, and any additional data.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments-options
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments-options

Required Fields for Options Using the REST API

These fields are required for setting options.
paymentInformation.paymentType.method.type

Example: Retrieving Bank Options

Request
{ "clientReferenceInformation" : { "code" : "123456" }, "paymentInformation" : { "paymentType" : { "method" : { "name" : "lithuanianbanks" }, "name" : "bankTransfer" } } }
Response to a Successful Request
{ "submitTimeUtc": "Wed Nov 13 21:26:33 UTC 2024", "paymentOptions": { "resources": [ { "name": "BLIK - PSP", "id": "154" }, { "id": "94", "name": "Euro Bank" }, { "id": "25", "name": "mBank - mTransfer" }, { "id": "135", "name": "Płac ̨e z IKO" }, { "name": "Płac ̨e z Orange", "id": "146" }, { "name": "Przekaz tradycyjny", "id": "178" }, { "id": "102", "name": "Raiffeisen Bank PBL" }, { "id": "177", "name": "U ̇zyj przedpłaty" }, { "id": "1000", "name": "Przekaz/Przelew tradycyjny" } ], "type": "p24methods" }, "paymentInformation": { "paymentType": { "method": { "name": "p24" }, "name": "bankTransfer" } }, "id": "7315331927636272003955", "message": "Successful", "status": "SUCCEEDED" }

Lithuania Banks Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Lithuania Banks Optional Field

paymentOptions.resources[].id

Example: Retrieving Bank Options

Request
{ "clientReferenceInformation" : { "code" : "123456" }, "paymentInformation" : { "paymentType" : { "method" : { "name" : "lithuanianbanks" }, "name" : "bankTransfer" } } }
Response to a Successful Request
{ "submitTimeUtc": "Wed Nov 13 21:26:33 UTC 2024", "paymentOptions": { "resources": [ { "name": "BLIK - PSP", "id": "154" }, { "id": "94", "name": "Euro Bank" }, { "id": "25", "name": "mBank - mTransfer" }, { "id": "135", "name": "Płac ̨e z IKO" }, { "name": "Płac ̨e z Orange", "id": "146" }, { "name": "Przekaz tradycyjny", "id": "178" }, { "id": "102", "name": "Raiffeisen Bank PBL" }, { "id": "177", "name": "U ̇zyj przedpłaty" }, { "id": "1000", "name": "Przekaz/Przelew tradycyjny" } ], "type": "p24methods" }, "paymentInformation": { "paymentType": { "method": { "name": "p24" }, "name": "bankTransfer" } }, "id": "7315331927636272003955", "message": "Successful", "status": "SUCCEEDED" }

Retrieve a Transaction

This section describes how to retrieve the status of a pending transaction.

Endpoints

Production:
GET
https://api.cybersource.com
/tss/v2/transactions/
{id}
Test:
GET
https://apitest.cybersource.com
/tss/v2/transactions/
{id}
Set the
{id}
to the request ID of the original transaction.

Lithuania Banks Required Fields

These fields are required for all get status requests.

Example: Requesting an Lithuania Banks Retrieve a Transaction Using the REST API

Request
{ ""processingInformation"": { ""reconciliationId"": ""sale1077"" }, ""clientReferenceInformation"": { ""transactionId"": ""833388407"" }, ""paymentInformation"": { ""paymentType"": { ""name"": ""bankTransfer"", ""method"": { ""name"": ""lithuanianbanks"" } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "833388407" }, "id": "64550699923879152", "message": "Successful", "status": "COMPLETED", "submitTimeUtc": "2022-04-07T07:03:39Z" }

Lithuania Banks Refunds

This section describes how to issue a refund.

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.

Example: Requesting an Lithuania Banks Refund Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "EUR" } }, "clientReferenceInformation": { "reconciliationId": "sale1077", "originalTransactionId": "1172295556" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "lithuanianbanks" } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "144202318" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031956", "submitTimeUtc": "2022-06-09T09:49:25Z" }

Multibanco

This section describes how to integrate APIs that perform these functions:

Multibanco Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Example: Requesting an Multibanco Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1055", "currency": "EUR", "taxAmount": "900" }, "billTo":{ "country":"PT", "firstName":"John", "lastName":"Doe" } }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "multibanco" } } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "DynDescriptor" } } }
Response to a Successful Request

Multibanco Refunds

This section describes how to issue a refund.

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.

Example: Requesting an Multibanco Refund Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1055", "currency": "EUR", "taxAmount": "900" }, "billTo":{ "country":"PT", "firstName":"John", "lastName":"Doe" } }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "multibanco" } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1166518486", "rawStatus": "PENDING", "paymentUrl": "https%3A%2F%2Fr3%2Epaygate%2Ede%2Fti%2Fsimmultibanco%3Ftx%3D1166518486%26rs%3D4HNKar16wqSfYwhurWVN75CmPilk3Fsq%26cs%3De0bba833440757be432205062a29fb663cd70b485c7fa5a65f49cd87fc846359" }, "reconciliationId": "sale1077", "paymentInformation": { "binCountry": "PT" }, "message": "Successful", "status": "PENDING", "id": "65233290191267436032932", "submitTimeUtc": "2022-06-03T09:16:09Z" }

MyBank

This section describes how to integrate APIs that perform these functions:

MyBank Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Example: Requesting an MyBank Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1055", "currency": "EUR", "taxAmount": "900" }, "billTo":{ "country":"IT", "firstName":"John", "lastName":"Doe" } }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "mybank" } } }, "processingInformation":{ "transactionTimeout" :"6" }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "DynDescriptor" } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1169468614", "rawStatus": "PENDING", "paymentUrl": "https://r3.paygate.de/ti/simmybank?tx=1169468614&rs=qPoVWoAobZDyD94gDpxAi0HoXvn2sgjl&cs=892d439ffd5e7ab6a916127339c3fbb333a53cfb0152d73c6270d9dc3cf3f92e" }, "paymentInformation": { "binCountry": "IT" }, "message": "Successful", "status": "PENDING", "id": "6523329019126743603301", "submitTimeUtc": "2022-06-06T12:23:01Z" }

Retrieve a Transaction

This section describes how to retrieve the status of a pending transaction.

Endpoints

Production:
GET
https://api.cybersource.com
/tss/v2/transactions/
{id}
Test:
GET
https://apitest.cybersource.com
/tss/v2/transactions/
{id}
Set the
{id}
to the request ID of the original transaction.

MyBank Retrieve a Transaction

These fields are required for all get status requests.

Example: Requesting an MyBank Retrieve a Transaction Using the REST API

Request
{ "processingInformation": { "reconciliationId": "sale1077" }, "clientReferenceInformation": { "transactionId": "1169468614" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "mybank" } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1169468614" }, "id": "64550699923879139", "message": "Successful", "status": "COMPLETED", "submitTimeUtc": "2022-04-07T07:03:39Z" }

MyBank Refunds

This section describes how to issue a refund.

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.

Example: Requesting an MyBank Refund Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "EUR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "1169468614" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "mybank" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "144047341" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031899", "submitTimeUtc": "2022-06-06T12:32:41Z" }

OVO

This section describes how to integrate APIs that perform this function:

OVO Sales

Cybersource
enables customers to make general purchases and purchases using Kredivo.
For all general purchases, use the required fields and any optional field you may want. If you are making a purchase using Kredivo, you must use the required fields and the additional relevant fields.

Airline Sales

For all airline related purchases, set the industry type to airline:
processingInformation.industryDataType
Set to
airline
.
If the purchase is airline related but not for a flight ticket, set the field value to
No
.
If the purchase is for a flight ticket, set the field value to
Yes
, and include the additional airline fields.

Kredivo Sales

For all purchases using Kredivo, set the payment type to
kredivo
:
paymentInformation.paymentType.method.type
You will also need to include the address and locality fields when using Kredivo as the payment type.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

OVO Fields

Airline Fields

This field is required for all airline transactions.
These fields are required if
processingInformation.industryDataType=airline
is set to
Yes
.
travelInformation.transit.airline.flightType
travelInformation.transit.airline.reservationSystemCode
travelInformation.transit.airline.passengerType
travelInformation.transit.airline.legs[].departTaxAmount
travelInformation.transit.airline.totalInsuranceAmount
travelInformation.transit.airline.ticketIssuer.code
travelInformation.transit.airline.frequentFlyerNumber
Set to
AG
.

OVO Optional Field

paymentInformation.paymentType.method.type

Example: Requesting an OVO Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1055", "currency": "EUR", "taxAmount": "900" }, "billTo":{ "country":"BE", "firstName":"Jane", "lastName":"Doe" } }, "paymentInformation": { "paymentType": { "name": "eWallet", "method": { "name": "payconiq" } } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "DynDescriptor" } } }
Response to a Successful Request
{ "processorInformation": { "appUrl": "HTTPS://PAYCONIQ.COM/PAY/2/E072C100432F7985B1U39D39", "transactionId": "1169164990", "rawStatus": "PENDING", "paymentUrl": "https://r2.paygate.de/payconiq/S1147/I?tx=1169164990&rs=aFT6rrxK2NtgRR0IPSusq538I7Mn60v0&cs=a2347e6802ac046a256305544ac97dff3295e399b933fe084090c0530cf60ade" }, "paymentInformation": { "bank": { "iban": "LU9999999999" } }, "reconciliationId": "sale1077", "message": "Successful", "status": "PENDING", "id": "65233290191267436032965", "submitTimeUtc": "2022-06-06T06:55:11Z" }

Retrieve a Transaction

This section describes how to retrieve the status of a pending transaction.

Endpoints

Production:
GET
https://api.cybersource.com
/tss/v2/transactions/
{id}
Test:
GET
https://apitest.cybersource.com
/tss/v2/transactions/
{id}
Set the
{id}
to the request ID of the original transaction.

OVO Retrieve a Transaction

These fields are required for all get status requests.

Example: Requesting an OVO Retrieve Transaction Using the REST API

Request
{ "processingInformation": { "reconciliationId": "sale1077" }, "clientReferenceInformation": { "transactionId": "832491410" }, "paymentInformation": { "paymentType": { "name": "eWallet", "method": { "name": "ovo", "type":"ovoWallet" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "832491410" }, "id": "64550699923879124", "message": "Successful", "status": "COMPLETED", "submitTimeUtc": "2022-04-07T07:03:39Z" }

Payconiq

This section describes how to integrate APIs that perform these functions:

Payconiq Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Example: Requesting an Payconiq Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1055", "currency": "EUR", "taxAmount": "900" }, "billTo":{ "country":"BE", "firstName":"Jane", "lastName":"Doe" } }, "paymentInformation": { "paymentType": { "name": "eWallet", "method": { "name": "payconiq" } } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "DynDescriptor" } } }
Response to a Successful Request
{ "processorInformation": { "appUrl": "HTTPS://PAYCONIQ.COM/PAY/2/E072C100432F7985B1U39D39", "transactionId": "1169164990", "rawStatus": "PENDING", "paymentUrl": "https://r2.paygate.de/payconiq/S1147/I?tx=1169164990&rs=aFT6rrxK2NtgRR0IPSusq538I7Mn60v0&cs=a2347e6802ac046a256305544ac97dff3295e399b933fe084090c0530cf60ade" }, "paymentInformation": { "bank": { "iban": "LU9999999999" } }, "reconciliationId": "sale1077", "message": "Successful", "status": "PENDING", "id": "65233290191267436032965", "submitTimeUtc": "2022-06-06T06:55:11Z" }

Payconiq Refunds

This section describes how to issue a refund.

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.

Example: Requesting an Payconiq Refund Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "EUR" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "1169226568" }, "paymentInformation": { "paymentType": { "name": "eWallet", "method": { "name": "payconiq" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "144037945" }, "message": "Successful", "status": "REFUNDED", "id": "65233290191267436031879", "submitTimeUtc": "2022-06-06T08:24:14Z" }

Pay-easy

This section describes how to integrate an API that performs this function:

Pay-easy Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Example: Requesting an Pay-easy Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077", "reconciliationId":"payeasy123" }, "orderInformation": { "amountDetails": { "totalAmount": "600", "currency": "JPY", "taxAmount": "5" }, "billTo": { "firstName": "Tester", "lastName": "Doe", "country": "JP", "email": "hishriva12345@visa.com", "phoneNumber": "1234567891" }, "lineItems":[ { "productName" :"sega" }, { "productName" :"saturn" }, { "productName":"Console" } ] }, "paymentInformation": { "paymentType": { "name": "offline", "method": { "name": "payeasy" } } }, "merchantInformation": { "returnUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "testdescription" } }, "recipientInformation": { "beneficiaryAddress": "13735 SE 184th PL RN 98058", "beneficiaryId": "ben_id", "beneficiaryName": "John Doe" }, "deviceInformation": { "ipAddress": "127.0.0.1" }, "buyerInformation": { "personalIdentification": [ { "id": "personal_Identification" } ], "mobilePhone": "8095803465", "language":"en" }, "consumerAuthenticationInformation": { "customerCardAlias": "hishriva" } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "840012782", "rawStatus": "PENDING", "paymentUrl": "https://r2.paygate.de/econtext/S1125/I?tx=840012782&rs=YkcK0f8OKd836atFSL88KEuTCMMXtvjl&cs=3d244f6306310786500c1fa5257e4bfdf2a2b93bcd49614ebc6e10c1f4ac2e81" }, "reconciliationId": "payeasy123", "message": "Successful", "status": "PENDING", "id": "6523329019126743604730", "submitTimeUtc": "2022-06-14T08:54:17Z" }

Pay-easy Retrieve a Transaction

These fields are required for all get status requests.

Example: Requesting an Pay-easy Retrieve a Transaction Using the REST API

Request
{ "processingInformation": { "reconciliationId": "sale1077" }, "clientReferenceInformation": { "transactionId": "1170808336" }, "paymentInformation": { "paymentType": { "name": "offline", "method": { "name": "payeasy" } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1170808336" }, "id": "645506999238791558", "message": "Successful", "status": "COMPLETED", "submitTimeUtc": "2022-04-07T07:03:39Z" }

PayU

This section describes how to integrate APIs that perform these functions:

PayU Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Example: Requesting an PayU Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1055", "currency": "PLN", "taxAmount": "900" }, "billTo":{ "country":"PL", "firstName":"Jane", "lastName":"Doe", "email":"abc@email.com" } }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "payu" } } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "DynDescriptor" } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "832762292", "rawStatus": "PENDING", "paymentUrl": "https://r3.paygate.de/ti/simpayu?tx=832762292&rs=Yw1Ar6yi7G4HE57Gi1aT8npSHFdFPiHm&cs=7f08fe44c9344cf45e7fd9e6a18541181c3f4a8748c50e6f2cd9873c670d7b24" }, "paymentInformation": { "binCountry": "PL" }, "message": "Successful", "status": "PENDING", "id": "6523329019126743603307", "submitTimeUtc": "2022-06-06T13:02:42Z" }

Retrieve a Transaction

This section describes how to retrieve the status of a pending transaction.

Endpoints

Production:
GET
https://api.cybersource.com
/tss/v2/transactions/
{id}
Test:
GET
https://apitest.cybersource.com
/tss/v2/transactions/
{id}
Set the
{id}
to the request ID of the original transaction.

PayU Retrieve a Transaction

These fields are required for all get status requests.

Example: Requesting an PayU Retrieve a Transaction Using the REST API

Request
{ "processingInformation": { "reconciliationId": "sale1077" }, "clientReferenceInformation": { "transactionId": "832762292" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "payu" } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "832762292" }, "id": "64550699923879143", "message": "Successful", "status": "COMPLETED", "submitTimeUtc": "2022-04-07T07:03:39Z" }

PayU Refunds

This section describes how to issue a refund.

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.

Example: Requesting an PayU Refund Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "PLN" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "832762292" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "payu" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "128017136" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031900", "submitTimeUtc": "2022-06-06T13:03:57Z" }

Przelewy24

This section describes how to integrate APIs that perform these functions:

Retrieve Bank Options

This section describes how to send an options request in order to retrieve a list of participating banks for the day.
Perform the options request to receive the latest updates for participating banks' redirect URLs, IDs, and any additional data.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments-options
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments-options

Required Fields for Options Using the REST API

These fields are required for setting options.
paymentInformation.paymentType.method.type

Example: Retrieving Bank Options

Request
{ "clientReferenceInformation" : { "code" : "123456" }, "paymentInformation" : { "paymentType" : { "method" : { "name" : "estoniabanks" }, "name" : "bankTransfer" } } }
Response to a Successful Request
{ "submitTimeUtc": "Wed Nov 13 21:26:33 UTC 2024", "paymentOptions": { "resources": [ { "name": "BLIK - PSP", "id": "154" }, { "id": "94", "name": "Euro Bank" }, { "id": "25", "name": "mBank - mTransfer" }, { "id": "135", "name": "Płac ̨e z IKO" }, { "name": "Płac ̨e z Orange", "id": "146" }, { "name": "Przekaz tradycyjny", "id": "178" }, { "id": "102", "name": "Raiffeisen Bank PBL" }, { "id": "177", "name": "U ̇zyj przedpłaty" }, { "id": "1000", "name": "Przekaz/Przelew tradycyjny" } ], "type": "p24methods" }, "paymentInformation": { "paymentType": { "method": { "name": "p24" }, "name": "bankTransfer" } }, "id": "7315331927636272003955", "message": "Successful", "status": "SUCCEEDED" }

Przelewy24 Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Przelewy24 Optional Fields

paymentInformation.options.optionDetails[].name

Example: Requesting an Przelewy24 Sale Using the REST API

Request
{ "clientReferenceInformation": { "reconciliationId": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1400", "currency": "EUR", "taxAmount": "5" }, "billTo": { "firstName": "Jane", "lastName": "Doe", "country": "PL", "address1": "xyz street 13 14", "email": "abc@email.com" }, "shipTo": { "country": "DE" } }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "p24" } }, "customer": { "customerid": "abcd" } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "test-merchant-descriptor" } }, "recipientInformation": { "beneficiaryAddress": "13735 SE 184th PL RN 98058", "beneficiaryId": "ben_id", "beneficiaryName": "Vamseekrishna Puchakayala" }, "deviceInformation": { "ipAddress": "127.0.0.1" }, "buyerInformation": { "personalIdentification": [ { "id": "personal_Identification" } ], "mobilePhone": "8095803465" }, "consumerAuthenticationInformation": { "customerCardAlias": "SonaliShetty" } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "839959787", "rawStatus": "PENDING", "paymentUrl": "https://r3.paygate.de/ti/simp24?tx=839959787&rs=aZV0Fxr00Jq8cymqHqAZADf3gc6NzZtu&cs=5c7489ff097b879ac3004eefbc9c09fad766f9a8e195505d8146d0014f2ce35f" }, "reconciliationId": "sale1077", "paymentInformation": { "binCountry": "PL" }, "message": "Successful", "status": "PENDING", "id": "6523329019126743604721", "submitTimeUtc": "2022-06-14T07:46:31Z" }

Przelewy24 Refunds

This section describes how to issue a refund.

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.

Example: Requesting an Przelewy24 Refund Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "EUR" } }, "clientReferenceInformation": { "code":"3798_sale01", "originalTransactionId": "1193033287" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "p24" } } } }
Response to a Successful Request
{ "paymentOptions": { "type": "p24method", "resources":[ { "id":"94", "name":"Euro Bank", "url": "", "type": "", "data": [] }, { "id":"25", "name":"mBank - mTransfer", "url": "", "type": "", "data": [] } ] } }

7-Eleven

This section describes how to integrate an API that performs this function:

7-Eleven Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Example: Requesting an 7-Eleven Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1055", "currency": "SGD", "taxAmount": "9080" }, "billTo":{ "country":"SG", "firstName":"John", "lastName":"Doe", "email":"hishriva@visa.com", "phoneNumber":"90909090909" } }, "paymentInformation": { "paymentType": { "name": "offline", "method": { "name": "7eleven" } } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "DynDescriptor" } } }
Response to a Successful Request
{ "reason": "INVALID_DATA", "processorInformation": { "transactionId": "1169581027", "rawStatus": "FAILED" }, "message": "Channel tag not found", "status": "FAILED", "submitTimeUtc": "2022-06-06T14:19:37Z" }

Thailand Bank

This section describes how to integrate an API that performs this function:

Thailand Banks Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Thailand Banks Optional Field

paymentInformation.bank.name

Example: Requesting an Thailand Banks Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "zZx5WZ3dkbMp" }, "deviceInformation": { "ipAddress": "127.0.0.1" }, "orderInformation": { "billTo": { "country": "EE", "firstName": "firstName", "lastName": "lastName", "address1": "ABC city, XYZ street", "email": "abc@estoniabanks.com" }, "amountDetails": { "totalAmount": "1000", "currency": "THB" } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "test-merchant-descriptor" } }, "paymentInformation": { "customer": { "customerid": "12345" }, "paymentType": { "method": { "name": "thailandbanks" }, "name": "bankTransfer" } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "829605119", "rawStatus": "PENDING", "paymentUrl": "https%3A%2F%2Fr3%2Epaygate%2Ede%2Fti%2Fsimestonianbanks%3Ftx%3D829605119%26rs%3DzaphIHohw9wVXcI7SRHIvK52o5FUwbGy%26cs%3Db326db7ec24d01fb318bb6ce0a4f495b8d32f19f7a4e90451077ef9ca91a8a53" }, "reconciliationId": "zZx5WZ3dkbMp", "paymentInformation": { "binCountry": "EE" }, "message": "Successful", "status": "PENDING", "id": "65233290191267436032918", "submitTimeUtc": "2022-06-03T05:14:54Z" }

Trustly

This section describes how to integrate APIs that perform these functions:

Trustly Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Trusty Optional Fields

deviceInformation.ipAddress
buyerInformation.personalIdentification.id

Example: Requesting an Trustly Banks Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1400", "currency": "PLN", "taxAmount": "5" }, "billTo": { "firstName": "Jane", "lastName": "abc", "country": "PL", "address1": "xyz street 13 14", "address2": "abc street 13 14", "email": "abc@email.com" }, "shipTo": { "country": "DE" } }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "trustly" } }, "customer": { "customerid": "abcd" } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "test-merchant-descriptor" } }, "recipientInformation": { "beneficiaryAddress": "13735 SE 184th PL RN 98058", "beneficiaryId": "ben_id", "beneficiaryName": "John Doe" }, "deviceInformation": { "ipAddress": "64.78.88.63", "userAgentBrowserValue": "google" }, "buyerInformation": { "personalIdentification": [ { "id": "personal_Identification" } ], "mobilePhone": "8095803465", "merchantCustomerId":"123abc" }, "consumerAuthenticationInformation": { "customerCardAlias": "hishriva" } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "833406500", "rawStatus": "PENDING", "paymentUrl": "https://r3.paygate.de/ti/pprotrustly?tx=833406500&rs=Il0taHJJ66Hz7UicGb68M869vgmQ0bvo&cs=eed56688165a9567818885d956a695453ba421931a04d13e54d754d31564ed8d" }, "paymentInformation": { "binCountry": "PL" }, "message": "Successful", "status": "PENDING", "id": "652332901912674360347", "submitTimeUtc": "2022-06-07T06:08:08Z" }

Retrieve a Transaction

This section describes how to retrieve the status of a pending transaction.

Endpoints

Production:
GET
https://api.cybersource.com
/tss/v2/transactions/
{id}
Test:
GET
https://apitest.cybersource.com
/tss/v2/transactions/
{id}
Set the
{id}
to the request ID of the original transaction.

Trustly Retrieve a Transaction

These fields are required for all get status requests.

Example: Requesting an Trustly Retrieve a Transaction Using the REST API

Request
{ "processingInformation": { "reconciliationId": "sale1077" }, "clientReferenceInformation": { "transactionId": "1170772579" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "trustly" } } } }
Response to a Successful Request
{ "processorInformation": { "transactionId": "1170772579" }, "id": "645506999238791550", "message": "Successful", "status": "SUCCEEDED_PENDING_FUNDS", "submitTimeUtc": "2022-04-07T07:03:39Z" }

Trustly Refunds

This section describes how to issue a refund.

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.

Example: Requesting an Trustly Refund Using the REST API

Request
{ "orderInformation": { "amountDetails": { "totalAmount": "1", "currency": "PLN" } }, "clientReferenceInformation": { "code": "sale1077", "originalTransactionId": "833406500" }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "trustly" } } } }
Response to a Successful Request
{ "clientReferenceInformation": { "transactionid": "sale1077" }, "processorInformation": { "transactionId": "128053355" }, "message": "Successful", "status": "REFUNDED", "id": "6523329019126746031916", "submitTimeUtc": "2022-06-07T06:14:01Z" }

TrustPay

This section describes how to integrate an API that performs this function:

TrustPay Sales

This section describes how to process a sale.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Example: Requesting an TrustPay Sale Using the REST API

Request
{ "clientReferenceInformation": { "code": "sale1077" }, "orderInformation": { "amountDetails": { "totalAmount": "1055", "currency": "EUR", "taxAmount": "900" }, "billTo":{ "country":"SK", "firstName":"Jane", "lastName":"Doe" } }, "paymentInformation": { "paymentType": { "name": "bankTransfer", "method": { "name": "trustpay" } } }, "merchantInformation": { "successUrl": "https://www.example.org/feedback.php", "merchantDescriptor": { "name": "DynDescriptor" } } }
Response to a Successful Request
{ "processorInformation": { "appUrl": "HTTPS://PAYCONIQ.COM/PAY/2/E072C100432F7985B1U39D39", "transactionId": "1169164990", "rawStatus": "PENDING", "paymentUrl": "https://r2.paygate.de/payconiq/S1147/I?tx=1169164990&rs=aFT6rrxK2NtgRR0IPSusq538I7Mn60v0&cs=a2347e6802ac046a256305544ac97dff3295e399b933fe084090c0530cf60ade" }, "paymentInformation": { "bank": { "iban": "LU9999999999" } }, "reconciliationId": "sale1077", "message": "Successful", "status": "PENDING", "id": "65233290191267436032965", "submitTimeUtc": "2022-06-06T06:55:11Z" }

REST
API Field Reference Section

This section describes the
REST
API Fields required to perform services using the alternative payment methods.

merchantinformation.successURL

Custom app URL for redirecting the costumer back to the app after making payment.

Services

  • Sale:
    Required

Specifications

  • Field Type:
    Request
  • Data Type:
    ascii
  • Data Length:
    xx

Mapping Information

  • REST API Field:
    merchantinformation.successURL
  • SCMP API Field:
    No corresponding field
  • Simple Order API Field:
    No corresponding field

paymentInformation.bank.account.name

Name of the account holder.
Only ASCII characters are supported.

Services

  • Sales:
    Required

Specifications

  • Field Type:
    Request
  • Data Type:
    String
  • Data Length:
    150

Mapping Information

  • REST API Field:
    paymentInformation.bank.account.name
  • SCMP API Field:
    No corresponding field
  • Simple Order API Field:
    No corresponding field

paymentinformation.bank.account.number

Customer's bank account number.
Only ASCII characters are supported.

Services

  • Sale:
    Required

Specifications

  • Field Type:
    Request
  • Data Type:
    xxxx
  • Data Length:
    xx

Mapping Information

  • REST API Field:
    field_name
  • SCMP API Field:
    No corresponding field
  • Simple Order API Field:
    No corresponding field

Processor Field Names

If you are documenting a Level II/III field, see the DITA API field template for Level II/III fields.

paymentinformation.bank.code

Bank code for the customer's account.
Only ASCII characters are supported.

Services

  • Authorization:
    Required

Specifications

  • Field Type:
    Request
  • Data Type:
    String
  • Data Length:
    50

Mapping Information

  • REST API Field:
    paymentInformation.bank.code
  • SCMP API Field:
    No corresponding field
  • Simple Order API Field:
    No corresponding field

paymentinformation.bank.iban

Costumer's account IBAN.
Only ASCII characters are supported.

Services

  • Authorization:
    Required

Specifications

  • Field Type:
    Request
  • Data Type:
    String
  • Data Length:
    xx

Mapping Information

  • REST API Field:
    field_name
  • SCMP API Field:
    No corresponding field
  • Simple Order API Field:
    No corresponding field

Processor Field Names

If you are documenting a Level II/III field, see the DITA API field template for Level II/III fields.

paymentinformation.bank.name

Simple Description Text
KeyRef for Processor Name
Processor-specific information.

Services

  • Authorization:
    Required
  • Credit:
    Optional

Specifications

  • Field Type:
    Request
  • Data Type:
    xxxx
  • Data Length:
    xx

Mapping Information

  • REST API Field:
    field_name
  • SCMP API Field:
    No corresponding field
  • Simple Order API Field:
    No corresponding field

paymentinformation.bank.swiftcode

Valid iDEAL issuer's BIC.
Can only contain 8 or 11 alphanumeric characters.

Services

  • Authorization:
    Required

Specifications

  • Field Type:
    Request
  • Data Type:
    String
  • Data Length:
    11

Mapping Information

  • REST API Field:
    paymentInformation.bank.swiftCode
  • SCMP API Field:
    No corresponding field
  • Simple Order API Field:
    No corresponding field

paymentOptions.resources[].id

Specifies a valid bank identifier to bypass PPRO's bank selection page.
Only ASCII characters are supported.

Services

  • Authorization:
    Required
  • Credit:
    Optional

Specifications

  • Field Type:
    Request

Mapping Information

  • REST API Field:
    paymentOptions.resources[].id
  • SCMP API Field:
    No corresponding field
  • Simple Order API Field:
    No corresponding field

paymentInformation.paymentType.method.type

Indicates the channel used for the transaction. Channel options must be listed on merchant's site and the payment channel known.
If value is not given, the customer is redirected to the alternative payment's hosted payment selection page.

Services

  • Authorization:
    Required
  • Credit:
    Optional

Specifications

  • Field Type:
    Request
  • Data Type:
    String
  • Data Length:
    35

Mapping Information

  • REST API Field:
    paymentInformation.paymentType.method.type
  • SCMP API Field:
    No corresponding field
  • Simple Order API Field:
    No corresponding field

paymentInformation.purposeOfPayment

Simple Description Text
Provide additional information about the field here.
KeyRef for Processor Name
Processor-specific information.

Services

  • Authorization:
    Required
  • Credit:
    Optional

Specifications

  • Field Type:
    Request
  • Data Type:
    xxxx
  • Data Length:
    xx

Mapping Information

  • REST API Field:
    field_name
  • SCMP API Field:
    No corresponding field
  • Simple Order API Field:
    No corresponding field

Processor Field Names

If you are documenting a Level II/III field, see the DITA API field template for Level II/III fields.

processingInformation.transactionTimeout

Minutes until a pending transaction times out.
Default value is 5.

Services

  • Authorization:
    Required

Specifications

  • Field Type:
    Request
  • Data Type:
    String
  • Data Length:
    30

Mapping Information

  • REST API Field:
    processingInformation.transactionTimeout
  • SCMP API Field:
    No corresponding field
  • Simple Order API Field:
    No corresponding field

Sofort

This section describes how to integrate an API that performs this function:

Retrieve Bank Options

This section describes how to send an options request in order to retrieve a list of participating banks for the day.
Perform the options request to receive the latest updates for participating banks' redirect URLs, IDs, and any additional data.

Endpoints

Production:
POST
https://api.cybersource.com
/pts/v2/payments-options
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments-options

Example: Requesting Options Using the REST API

Request
{ "clientReferenceInformation" : { "code" : "123456" }, "paymentInformation" : { "paymentType" : { "method" : { "name" : "lithuanianbanks" }, "name" : "bankTransfer" } } }
Response to a Successful Request
{ "paymentOptions": { "type": "lithuanianbanks", "resources":[ { "id":"94", "name":"ABN AMRO", "url": "", "type": "", "data": [] }, { "id":"25", "name":"ASN BANK", "url": "", "type": "", "data": [] } ] } }