On This Page
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 theRESTAPI to integrate PPRO with their payment system.
- Convention
- The following special statement is used in this document:IMPORTANTAnImportantstatement contains information essential to successfully completing a task or learning a concept.
- Related Documentation
- For additional documentation, visit these documentation sites:
- CybersourceDeveloper Center/Developer Guides: developer-guides.html
- CybersourceSupport Center/Technical Documentation: technical-documentation.html
- CybersourceTechnical Documentation Portal: index.html
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.- 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.
- 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.
- 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.
- 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
Supported Payment Methods
These are the supported payment methods offered by PPRO.
Endpoints for the REST API
Cybersource
supports these API requests and their corresponding
endpoints:- Sale ()TRANSACTION
- Production:POSThttps://api.cybersource.com/pts/v2/payments
- Test:POSThttps://apitest.cybersource.com/pts/v2/payments
- Retrieve a Transaction ()GETSTATUS
- Production:GEThttps://api.cybersource.com/tss/v2/transactions/{id}
- Test:GEThttps://apitest.cybersource.com/tss/v2/transactions/{id}
- For more information about the retrieve a transaction request, see:
- Refund ()REFUND
- Production:POSThttps://api.cybersource.com/pts/v2/payments/{id}/refunds
- Test:POSThttps://apitest.cybersource.com/pts/v2/payments/{id}/refunds
- Options
- Production:POSThttps://api.cybersource.com/pts/v2/payments-options
- Test:POSThttps://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
- The customer begins to check out on the merchant's website and chooses the PPRO payment method.
- The merchant sends a sale API request toCybersource.
- Cybersourceresponds with one of these possible statuses:
- COMPLETED
- PENDING
- SUCCEEDED_PENDING_FUNDS
IMPORTANTThere 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. - If the sale status isPENDINGorSUCCEEDED_PENDING_FUNDS, the merchant redirects the customer to the payment method's checkout URL included in the sale response.If the sale status isCOMPLETED, see step 8.
- The customer completes the payment using the payment method's website and is then redirected to the merchant's website.
- The merchant sends a retrieve a transaction API request toCybersource.
ADDITIONAL INFORMATION
You can send the retrieve a transaction request any time after a pending sale or refund request.Cybersourcerecommends 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. - Cybersourceresponds with aCOMPLETEDstatus.
- 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
- The merchant sends a bank options API request toCybersourceat the beginning of the business day.
- Cybersourceresponds to merchant with aSUCCESSstatus and a list of supported banks.
- The merchant caches the retrieved bank list.
- The customer begins to check out on the merchant's website and chooses the PPRO payment method.
- The merchant displays the list of supported banks to the customer.
- The customer selects a supported bank.
- The merchant sends a sale API request toCybersource.
- Cybersourceresponds with one of these possible statuses:
- COMPLETED
- PENDING
- SUCCEEDED_PENDING_FUNDS
IMPORTANTThere 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. - If the sale status isPENDINGorSUCCEEDED_PENDING_FUNDS, the merchant redirects the customer to the bank URL included in the sale response.If the sale status isCOMPLETED, see step 13.
- The customer completes the payment on the bank's website and is then redirected to the merchant's website.
- The merchant sends a retrieve a transaction API request toCybersource.
ADDITIONAL INFORMATION
You can send the retrieve a transaction request any time after a pending sale or refund request.Cybersourcerecommends 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. - Cybersourceresponds with aCOMPLETEDstatus.
- 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
- The customer returns purchase to the merchant.
- The merchant sends a refund API request toCybersource.
- Cybersourceresponds to the merchant with aREFUNDEDstatus.
- The merchant sends a retrieve a transaction API request toCybersource.
ADDITIONAL INFORMATION
You can send the retrieve a transaction request any time after a pending sale or refund request.Cybersourcerecommends 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. - Cybersourceresponds to the merchant with aREFUNDEDstatus.
- 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
- (Optiona) When the customer is ready to make a purchase, you send a sale API request toCybersourceand receive one of these possible statuses:
- When the customer is ready to make a purchase, you send a sale API request toCybersourceand 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.
- To verify that the sale is complete, you send a retrieve a transaction API request toCybersourceand 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.
- When the customer returns a purchase, you send a refund API request toCybersourceand 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 toairline.
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsAlfamart Required Fields for a Sale Using the REST API
Airline Fields
This field is required for all airline transactions.
- Set toairline.
These fields are required if
is set
to
processingInformation.industryDataType=airline
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 toAG.
Kredivo Fields
These fields are required if
is set to
paymentInformation.paymentType.method.type
kredivo
.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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
Alfamart Required Fields
- clientReferenceInformation.originalTransactionId
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsBancontact Required Fields
- merchantInformation.successUrl
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 to the request ID of
the original transaction.
{id}
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" }
Bancontact Refunds
- clientReferenceInformation.originalTransactionId
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 toairline.
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsDOKU Required Fields
Airline Fields
This field is required for all airline transactions.
- Set toairline.
These fields are required if
is set
to
processingInformation.industryDataType=airline
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 toAG.
Kredivo Fields
These fields are required if
is set to
paymentInformation.paymentType.method.type
kredivo
.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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
DOKU Fields
- clientReferenceInformation.originalTransactionId
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsDragonpay Required Fields
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 to the request ID of
the original transaction.
{id}
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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
Dragonpay Required Fields
- clientReferenceInformation.originalTransactionId
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentseNETS Required Fields
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsEPS Required Fields
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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
EPS Fields
- clientReferenceInformation.originalTransactionId
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-optionsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments-optionsRequired Fields for Options Using the REST API
These fields are required for setting options.
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsEstonia Banks Required Fields
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 to the request ID of
the original transaction.
{id}
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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
Estonia Banks Required Fields
- clientReferenceInformation.originalTransactionId
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsFPX Online Banking Required Fields
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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
FPX Fields
- clientReferenceInformation.originalTransactionId
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsGrabPay Required Fields
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsResponse 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.
Required Fields for Processing a Sale
Optional Fields for Processing a Sale
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 to the request ID of
the original transaction.
{id}
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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
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.
Required Fields for Refunding a Payment
- clientReferenceInformation.originalTransactionId
Optional Fields for Refunding a Payment
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 toairline.
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsIndomaret Fields
Airline Fields
This field is required for all airline transactions.
- Set toairline.
These fields are required if
is set
to
processingInformation.industryDataType=airline
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 toAG.
Kredivo Fields
These fields are required if
is set to
paymentInformation.paymentType.method.type
kredivo
.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 toairline.
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsIndonesia Banks Fields
Airline Fields
This field is required for all airline transactions.
- Set toairline.
These fields are required if
is set
to
processingInformation.industryDataType=airline
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 toAG.
Kredivo Fields
These fields are required if
is set to
paymentInformation.paymentType.method.type
kredivo
.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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
Indonesia Banks Fields
- clientReferenceInformation.originalTransactionId
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 toairline.
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsJenius Pay Fields
Airline Fields
This field is required for all airline transactions.
- Set toairline.
These fields are required if
is set
to
processingInformation.industryDataType=airline
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 toAG.
Kredivo Fields
These fields are required if
is set to
paymentInformation.paymentType.method.type
kredivo
.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 to the request ID of
the original transaction.
{id}
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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
Jenius Pay Fields
- clientReferenceInformation.originalTransactionId
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsKonbini Required Fields
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 to the request ID of
the original transaction.
{id}
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-optionsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments-optionsRequired Fields for Options Using the REST API
These fields are required for setting options.
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsLatvia Banks Required Fields
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 to the request ID of
the original transaction.
{id}
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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
Latvia Banks Required Fields
- clientReferenceInformation.originalTransactionId
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 toairline.
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsLinkAja Fields
Airline Fields
This field is required for all airline transactions.
- Set toairline.
These fields are required if
is set
to
processingInformation.industryDataType=airline
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 toAG.
Kredivo Fields
These fields are required if
is set to
paymentInformation.paymentType.method.type
kredivo
.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 to the request ID of
the original transaction.
{id}
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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
LinkAja Fields
- clientReferenceInformation.originalTransactionId
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-optionsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments-optionsRequired Fields for Options Using the REST API
These fields are required for setting options.
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsLithuania Banks Required Fields
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 to the request ID of
the original transaction.
{id}
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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
Lithuania Banks Required Fields
- clientReferenceInformation.originalTransactionId
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsMultibanco Required Fields
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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
Multibanco Required Fields
- clientReferenceInformation.originalTransactionId
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsMyBank Required Fields
MyBank Optional Fields
- processingInformation.transactionTimeout
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 to the request ID of
the original transaction.
{id}
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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
MyBank Required Fields
- clientReferenceInformation.originalTransactionId
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 toairline.
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsOVO Fields
Airline Fields
This field is required for all airline transactions.
- Set toairline.
These fields are required if
is set
to
processingInformation.industryDataType=airline
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 toAG.
Kredivo Fields
These fields are required if
is set to
paymentInformation.paymentType.method.type
kredivo
.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 to the request ID of
the original transaction.
{id}
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsPayconiq Required Fields
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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
Payconiq Required Fields
- clientReferenceInformation.originalTransactionId
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsPay-easy Required Fields
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsPayU Required Fields
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 to the request ID of
the original transaction.
{id}
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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
PayU Required Fields
- clientReferenceInformation.originalTransactionId
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-optionsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments-optionsRequired Fields for Options Using the REST API
These fields are required for setting options.
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsPrzelewy24 Required Fields
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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
Przelewy24 Required Fields
- clientReferenceInformation.originalTransactionId
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments7-Eleven Malaysia Cash Required Fields
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsThailand Banks Required Fields
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsTrustly Required Fields
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 to the request ID of
the original transaction.
{id}
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}
/refundsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/refundsThe is the request ID
contained in the original transaction request.
{id}
Trustly Required Fields
- clientReferenceInformation.originalTransactionId
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/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsTrustPay Required Fields
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
REST
API Field Reference SectionThis 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-optionsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments-optionsExample: 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": [] } ] } }