Processing Apple Pay Transactions
On This Page
This section provides information about the different kinds of Apple Pay transactions
that you can submit:
- Authorizing a Payment UsingCybersourceDecryption or Merchant Decryption
- You can request the authorization service using these decryption methods:
- Cybersourcedecryption: Within this integration,Cybersourcefacilitates all of the encryption key generation and decryption processes associated with implementing Apple Pay. This method reduces the exposure of the sensitive payment data to your system.
- Merchant decryption: Within this integration, you manage all aspects of the Apple Pay integration, from generation of the payment encryption keys to decryption of the Apple Pay payload response. As a merchant, you submit the Apple Pay payment token and other payment information toCybersourcefor processing.
- Reversing an Authorization
- This service uses the request ID returned from the previous authorization. An authorization reversal releases the hold that the authorization placed on the customer’s credit card funds. Use this service to reverse an unnecessary or undesired authorization.
- Capturing a Payment
- This service uses the request ID returned from the previous authorization. The request ID links the capture to the authorization. Use this service to transfer funds from the customer’s account to your bank. The transaction typically completes in two to four days.
- Authorizing and Capturing a Payment
- A bundled authorization and capture is called asale. Request the authorization and capture services at the same time.Cybersourceprocesses the capture immediately.
Follow-on Services
This section provides information about and procedures for requesting these follow-on
services:
- Authorization Reversal:A follow-on service that uses the request ID returned from the previous authorization. An authorization reversal releases the hold that the authorization placed on the customer’s credit card funds. Use this service to reverse an unnecessary or undesired authorization.
- Capture:A follow-on service that uses the request ID returned from the previous authorization. The request ID links the capture to the authorization. This service transfers funds from the customer’s account to your bank and usually takes two to four days to complete.
- Sale:A sale is a bundled authorization and capture. Request the authorization and capture services at the same time.Cybersourceprocesses the capture immediately.
Authorization Reversals
Use this service to reverse an unnecessary or undesired authorization.
Processor-Specific Information
This section provides processor-specific information about authorization reversals.
Payment Processor | Authorization Reversal Information |
---|---|
SIX | Card types supported for full authorization reversals: Visa, Mastercard,
Discover, Diners Club, JCB, Maestro (International), Maestro (UK Domestic), China
UnionPay, Visa Electron. |
Overview
The full authorization reversal service releases the hold that the authorization placed on
the customer’s payment card funds.
Each card-issuing financial institution has its own rules for deciding whether a full
authorization reversal succeeds or fails. When a reversal fails, contact the card-issuing
financial institution to learn whether there is a different way to reverse the
authorization.
If your processor supports authorization reversal after void (ARAV), you can reverse an
authorization after you void the associated capture. If your processor does not support ARAV,
you can use the full authorization reversal service only for an authorization that has not
been captured and settled.
A full authorization reversal is a follow-on transaction that uses the request ID returned
from an authorization. The main purpose of a follow-on transaction is to link two
transactions. The request ID links the follow-on transaction to the original transaction. The
authorization request ID is used to look up the customer’s billing and account information in
the
Cybersource
database. You are not required to include those fields in the
full authorization reversal request. The original transaction and follow-on transaction are
linked in the database and in the Business Center
.For processors that support debit cards and prepaid cards, the full authorization reversal
service works for debit cards and prepaid cards in addition to credit cards.
Required Fields for an Authorization Reversal
These fields are required in a request for an authorization reversal:
- id
- Set theidURL parameter to the request ID that was included in the authorization response message.
- clientReferenceInformation.code
- reversalInformation.amountDetails.currency
- reversalInformation.amountDetails.totalAmount
- EitherorderInformation.amountDetails.totalAmountororderInformation.lineItems[].unitPricemust be included in the request.
- The amount of the reversal must be the same as the amount that was authorized:
- You can reverse an authorization only for its full amount.
- When you use a debit card or prepaid card and only a partial amount was approved, the amount of the reversal must be the amount that was authorized, not the amount that was requested.
Reversing an Authorization
- Send the service request to:
ADDITIONAL INFORMATION
POST https://<url_prefix>/v2/payments/{id}/reversalsUse one of these URL prefixes:- Test:apitest.cybersource.com
- Production:api.cybersource.com
- Production in India:api.in.cybersource.com
Whereidis the authorization ID returned in the authorization response.{ "id": "6481692924466004003001" }The URL with theidvalue is included in the authorization response:{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6481692924466004003001/reversals" }, - Check the response message to make sure that the request was successful. A 200-level HTTP response code indicates success. For information about response codes, see Transaction Response Codes.
Example: Authorization Reversal
Request
{ "clientReferenceInformation": { "code": "482046C3A7E94F5BD1FE3C66C" }, "reversalInformation": { "amountDetails": { "totalAmount": "49.95" "currency": "USD" }, "reason": "testing" } }
Response
{ "_links" : { "void" : { "method" : "POST", "href" : "/pts/v2/credits/1019827520348290570293/voids" }, "self" : { "method" : "GET", "href" : "/pts/v2/credits/1019827520348290570293" } }, "clientReferenceInformation": { "code": "482046C3A7E94F5BD1FE3C66C" }, "id": "1019827520348290570293", "creditAmountDetails" : { "currency" : "USD", "creditAmount" : "49.95" }, "orderInformation": { "amountDetails": { "totalAmount": "49.95", "currency": "USD" } }, "reconciliationId": "02850840187309570", "status" : "REVERSED", "submitTimeUtc" : "2021-07-20T21:06:59Z" }
Sales
Sales are supported for all processors and acquirers.
Overview
A sale is a bundled authorization and capture. Some processors and acquirers require a sale transaction instead of separate authorization and capture requests. For other processors and acquirers, you can request a sale instead of a separate authorization and capture when you ship a customer’s goods immediately after taking the order. A sale is typically used for electronic goods and for services that you can turn on immediately.
Dual-Message Processing
Dual-message processing is supported for all processors and acquirers.
To perform a sale, request the authorization and capture services at the same time. When the authorization is successful, the capture is processed immediately and the response message includes results for the authorization and for the capture. When the authorization is declined, the capture is not processed and the response message includes results only for the authorization.
For debit cards and prepaid cards, the issuing bank can approve a partial amount when the balance on the card is less than the requested authorization amount and when the transaction is enabled for partial authorization. When this happens, the capture is not processed. However, you can submit a capture request for the approved amount. For a limited number of processors and card types, partial authorizations are supported for credit cards in addition to debit cards and prepaid cards.
Required Fields for a Sale
The following fields are required in a request for a sale:
- clientReferenceInformation.code
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- EitherorderInformation.amountDetails.totalAmountororderInformation.lineItems[]andorderInformation.lineItems[].unitPricemust be included in the request.
- orderInformation.billTo.address1
- Required except when your account is configured for relaxed requirements for address data and expiration date.IMPORTANTIt is your responsibility to determine whether a field is required for the transaction that you are requesting.
- orderInformation.billTo.administrativeArea
- Required when the billing country is the U.S. or Canada except when your account is configured for relaxed requirements for address data and expiration date.IMPORTANTIt is your responsibility to determine whether a field is required for the transaction that you are requesting.
- orderInformation.billTo.country
- Required except when your account is configured for relaxed requirements for address data and expiration date.IMPORTANTIt is your responsibility to determine whether a field is required for the transaction that you are requesting.
- orderInformation.billTo.email
- Required except when your account is configured for relaxed requirements for address data and expiration date.IMPORTANTIt is your responsibility to determine whether a field is required for the transaction that you are requesting.
- orderInformation.billTo.firstName
- Required except when your account is configured for relaxed requirements for address data and expiration date.IMPORTANTIt is your responsibility to determine whether a field is required for the transaction that you are requesting.
- orderInformation.billTo.LastName
- Required except when your account is configured for relaxed requirements for address data and expiration date.IMPORTANTIt is your responsibility to determine whether a field is required for the transaction that you are requesting.
- orderInformation.billTo.locality
- Required except when your account is configured for relaxed requirements for address data and expiration date.IMPORTANTIt is your responsibility to determine whether a field is required for the transaction that you are requesting.
- orderInformation.billTo.postalCode
- Required when the billing country is the U.S. or Canada except when your account is configured for relaxed requirements for address data and expiration date.IMPORTANTIt is your responsibility to determine whether a field is required for the transaction that you are requesting.
- orderInformation.lineItems[].productName
- Required when the product code is notdefaultor one of the values for shipping or handling. Otherwise, this field is optional.
- orderInformation.lineItems[].quantity
- Required when the product code is notdefaultor one of the values for shipping or handling. Otherwise, this field is optional.
- orderInformation.lineItems[].productSku
- Required when the product code is notdefaultor one of the values for shipping or handling. Otherwise, this field is optional.
- orderInformation.shipTo.address1
- Required when any shipping address information is included in the request. Otherwise, this field is optional.
- orderInformation.shipTo.administrativeArea
- Required when any shipping address information is included in the request and shipping to the U.S. or Canada. Otherwise, this field is optional.
- orderInformation.shipTo.country
- Required when any shipping address information is included in the request. Otherwise, this field is optional.
- orderInformation.shipTo.locality
- Required when any shipping address information is included in the request and shipping to the U.S. or Canada. Otherwise, this field is optional.
- orderInformation.shipTo.postalCode
- Required when any shipping address information is included in the request and shipping to the U.S. or Canada. Otherwise, this field is optional.
- paymentInformation.card.expirationMonth
- Required except when your account is configured for relaxed requirements for address data and expiration date.IMPORTANTIt is your responsibility to determine whether a field is required for the transaction that you are requesting.
- paymentInformation.card.expirationYear
- Required except when your account is configured for relaxed requirements for address data and expiration date.IMPORTANTIt is your responsibility to determine whether a field is required for the transaction that you are requesting.
- paymentInformation.card.number
- paymentInformation.card.type
- Required onVisa Platform Connectfor all card types. On other processors, required for certain card types. It is strongly recommended that you send the card type even if it is optional for your processor. Omitting the card type can cause the transaction to be processed with the wrong card type.
- processingInformation.commerceIndicator
- Required for requests that include payer authentication data. Otherwise, it is optional.
Performing a Sale
- Send the service request to:
ADDITIONAL INFORMATION
https://api.cybersource.com/pts/v2/payments - Check the response message to make sure that the request was successful. A 200-level HTTP response code indicates success. For information about response codes, see Transaction Response Codes.
Example: Sale
Request
{ "clientReferenceInformation": { "code": "482046C3A7E94F5BD1FE3C66C" }, "processingInformation": { "capture": true }, "paymentInformation": { "card": { "number": "4111111111111111", "expirationMonth": "12", "expirationYear": "2031", "type": "001", "securityCode": "999" <!-- Required only for Visa Platform ConnectChina UnionPayChina UnionPay. --> "useAs": "DB", <!-- Required only for Visa Platform ConnectChina UnionPayChina UnionPay. --> "typeSelectionIndicator": "1" <!-- Required only for Visa Platform ConnectChina UnionPayChina UnionPay. --> } }, "orderInformation": { "amountDetails": { "totalAmount": "49.95", "currency": "USD" }, "lineItems": [ { "quantity": "1", "unitPrice": "49.95", "totalAmount": "49.94" } ], "billTo": { "firstName": "John", "lastName": "Doe", "address1": "1295 Charleston Rd.", "locality": "Mountain View", "administrativeArea": "CA", "postalCode": "94043", "country": "US", "email": "jdoe@example.com", "phoneNumber": "650-965-6000" } } }
Response
Most processors do not return all of the fields in this example.
{ "_links": { "void": { "method": "POST", "href": "/pts/v2/payments/030578265000016790508/voids" }, "self": { "method": "GET", "href": "/pts/v2/payments/030578265000016790508" } }, "clientReferenceInformation": { "code": "482046C3A7E94F5BD1FE3C66C" }, "id": "030578265000016790508", "orderInformation": { "amountDetails": { "totalAmount": "49.95", "authorizedAmount": "49.95", "currency": "USD" } }, "paymentAccountInformation": { "card": { "type": "001" } }, "paymentInformation": { "card": { "type": "001" }, "accountFeatures": { "category": "CN", "group": "0" } }, "processingInformation": { "reconciliationId": "02850840187309570" }, "processorInformation": { "approvalCode": "123456", "networkTransactionId": "3312345", "transactionId": "123456789619999", "responseCode": "A", "avs": { "code": "Y", "codeRaw": "YYY" } }, "reconciliationId": "ABCDE12345FGHIJ67890", "status": "AUTHORIZED", "submitTimeUtc": "2021-07-30T15:07:53Z" }
Authorization Reversals
Reversing an authorization releases the hold on the customer’s payment card funds that the
issuing bank placed when processing the authorization.
Each card-issuing financial institution has its own rules for deciding whether an
authorization reversal succeeds or fails. When a reversal fails, contact the card-issuing
financial institution to learn whether there is a different way to reverse the
authorization.
If your processor supports authorization reversal after void (ARAV), you can reverse an
authorization after you void the associated capture. If your processor does not support ARAV,
you can use the full authorization reversal service only for an authorization that has not
been captured and settled.
An authorization reversal is a follow-on transaction that uses the request ID returned from
an authorization transaction to link the transactions together. The authorization request ID
is used to look up the customer’s billing and account information in the
Cybersource
database. You are not required to include those fields in the full
authorization reversal request. The original transaction and follow-on transaction are linked
in the database and in the
Business Center
.For processors that support debit cards and prepaid cards, the full authorization reversal
service works for debit cards and prepaid cards in addition to credit cards.
Endpoint
Production:
POST
https://api.cybersource.com
/pts/v2/payments/{id}/reversalsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}/reversalsThe
{id}
is the transaction ID
returned in the authorization response.Required Fields for Processing Authorization Reversals Using the REST API
REST API
These fields are required in a request for an authorization reversal:
- id
- Set theidURL parameter to the request ID that was included in the authorization response message.
- reversalInformation.amountDetails.totalAmount
- The amount of the reversal must be the same as the authorization amount that was included in the authorization response message. Do not use the amount that was requested in the authorization request message.
REST Example: Processing an Authorization Reversal
Endpoint:
POST
https://api.cybersource.com
/pts/v2/payments/{id}/reversalsRequest
{ "reversalInformation" : { "amountDetails" : { "totalAmount" : "100.00" } } }
Response
{ "_links" : { "self" : { "method" : "GET", "href" : "/pts/v2/reversals/6522010713906068903093" } }, "authorizationInformation" : { "approvalCode" : "100" }, "clientReferenceInformation" : { "code" : "1652201071257" }, "id" : "6522010713906068903093", "orderInformation" : { "amountDetails" : { "currency" : "USD" } }, "processorInformation" : { "responseCode" : "0" }, "reversalAmountDetails" : { "reversedAmount" : "100.00", "currency" : "USD" }, "status" : "REVERSED", "submitTimeUtc" : "2022-05-10T16:44:31Z" }
Captures
This section shows you how to capture an authorized transaction.
Endpoint
Production:
POST
https://api.cybersource.com
/pts/v2/payments/{id}
/capturesTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/capturesThe
{id}
is the transaction ID
returned in the authorization response.Required Fields for Capturing a Payment Using the REST API
REST API
REST Interactive Example: Capturing a Payment
Live Console URL:
REST Example: Capturing an Authorization
Endpoint:
POST
https://api.cybersource.com
/pts/v2/payments/{id}
/capturesRequest
{ "orderInformation": { "amountDetails": { "totalAmount": "100.00" } }
Response
{ "_links": { "void": { "method": "POST", "href": "/pts/v2/captures/6662994431376681303954/voids" }, "self": { "method": "GET", "href": "/pts/v2/captures/6662994431376681303954" } }, "clientReferenceInformation": { "code": "1666299443215" }, "id": "6662994431376681303954", "orderInformation": { "amountDetails": { "totalAmount": "100.00", "currency": "EUR" } }, "reconciliationId": "66535942B9CGT52U", "status": "PENDING", "submitTimeUtc": "2022-10-20T20:57:23Z" }
Sales
This section shows you how to process a sale transaction.
A sale transaction combines an authorization and a capture into a single transaction.
Endpoint
Production:
POST
https://api.cybersource.com
/pts/v2/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsRequired Fields for Processing a Sale Using the REST API
REST API
The following fields are required in a request for a sale:
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- orderInformation.billTo.address1
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.country
- orderInformation.billTo.email
- orderInformation.billTo.firstName
- orderInformation.billTo.LastName
- orderInformation.billTo.locality
- orderInformation.billTo.postalCode
- paymentInformation.card.expirationMonth
- paymentInformation.card.expirationYear
- paymentInformation.card.number
- paymentInformation.card.type
- processingInformation.capture
- Set totrue.
REST Example: Requesting a Sale
Endpoint:
POST
https://api.cybersource.com
/pts/v2/paymentsRequest
{ "processingInformation": { "capture": true }, "orderInformation" : { "billTo" : { "country" : "US", "lastName" : "VDP", "address1" : "201 S. Division St.", "postalCode" : "48104-2201", "locality" : "Ann Arbor", "administrativeArea" : "MI", "firstName" : "RTS", "email" : "test@cybs.com" }, "amountDetails" : { "totalAmount" : "100.00", "currency" : "usd" } }, "paymentInformation" : { "card" : { "expirationYear" : "2031", "number" : "4111111111111111", "expirationMonth" : "12", "type" : "001" } } }
Response
Most processors do not return all of the fields shown in this example.
{ "_links" : { "void" : { "method" : "POST", "href" : "/pts/v2/payments/6485004068966546103093/voids" }, "self" : { "method" : "GET", "href" : "/pts/v2/payments/6485004068966546103093" } }, "clientReferenceInformation" : { "code" : "RTS-Auth" }, "id" : "6485004068966546103093", "orderInformation" : { "amountDetails" : { "totalAmount" : "100.00", "authorizedAmount" : "100.00", "currency" : "usd" } }, "paymentAccountInformation" : { "card" : { "type" : "001" } }, "paymentInformation" : { "tokenizedCard" : { "type" : "001" }, "card" : { "type" : "001" } }, "processorInformation" : { "systemTraceAuditNumber" : "841109", "approvalCode" : "831000", "merchantAdvice" : { "code" : "01", "codeRaw" : "M001" }, "responseDetails" : "ABC", "networkTransactionId" : "016153570198200", "retrievalReferenceNumber" : "208720841109", "consumerAuthenticationResponse" : { "code" : "2", "codeRaw" : "2" }, "transactionId" : "016153570198200", "responseCode" : "00", "avs" : { "code" : "Y", "codeRaw" : "Y" } }, "reconciliationId" : "6485004068966546103093", "status" : "AUTHORIZED", "submitTimeUtc" : "2022-03-28T20:46:47Z" }
Authorization Service
This section provides the information that you need for requesting the authorization
service using these methods which determine the request fields that are required to
request the authorization service. In addition, different request fields are required in
order to request the authorization service. The type of card used to process the
transaction determines which request fields are used.
After you send the request, verify the response messages to make sure that the request was
successful.
A 200-level HTTP response code indicates
success.
For information about response codes, see
Transaction Response Codes
.Endpoint
Production:
POST
https://api.cybersource.com
/pts/v2/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsRequired Fields for Authorizing a Payment Using Cybersource Decryption
for Mastercard
Cybersource
Decryption
for Mastercard- clientReferenceInformation.code
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- orderInformation.billTo.address1
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.country
- orderInformation.billTo.email
- orderInformation.billTo.firstName
- orderInformation.billTo.lastName
- orderInformation.billTo.locality
- orderInformation.billTo.postalCode
- paymentInformation.card.expirationMonth
- paymentInformation.card.expirationYear
- paymentInformation.card.number
- paymentInformation.card.type
- paymentInformation.fluidData.descriptor
- Set this field toRklEPUNPTU1PTi5BUFBMRS5JTkFQUC5QQVlNRU5U.
- paymentInformaton.fluidData.value
- Set this field to the Base64-encoded value obtained from thepaymentDataproperty of thePKPaymentTokenobject.
- processingInformation.paymentSolution
- Set this field to001
Authorizing a Payment Using Cybersource Decryption for Mastercard
Cybersource
Decryption for MastercardFollow these steps to authorize a payment using
Cybersource
decryption for Mastercard:- Send the service request to:
ADDITIONAL INFORMATION
https://api.cybersource.com/pts/v2/payments - Check the response message to make sure that the request was successful. A 200-level HTTP response code indicates success. For information about response codes, see Transaction Response Codes.
Example: Cybersource Decryption and
Mastercard
Cybersource
Decryption and
MastercardRequest
{ "clientReferenceInformation": { "code": "1234567890" }, "processingInformation": { "paymentSolution": "001" }, "paymentInformation": { "fluidData": { "value"="eyJkYXRhW5FINWZqVjfkak1NdVNSaE96dWF2ZGVyb2c9PSJ9", "descriptor": "RklEPUNPTU1PTi5BUFBMRS5JTkFQUC5QQVlNRU5U", "encoding": "Base64", }, "tokenizedCard": { "type": "002", "transactionType": "1", } }, "orderInformation": { "amountDetails": { "totalAmount": "100.00", "currency": "USD" }, "billTo": { "firstName": "Maya", "lastName": "Lee", "address1": "123 Main St", "locality": "SomeCity", "administrativeArea": "CA", "postalCode": "94404", "country": "US", "email": "maya.lee@email.world", "phoneNumber": "6504327113" } } }
Response
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6234236182176225003004" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/captures" } }, "clientReferenceInformation": { "code": "1234567890" }, "id": "6234236182176225003004", "orderInformation": { "amountDetails": { "authorizedAmount": "100.00", "currency": "USD" } }, "paymentInformation": { "tokenizedCard": { "expirationYear": "2031", "prefix": "128945", "expirationMonth": "12", "suffix": "2398", "type": "002" }, "card": { "type": "002" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processingInformation": { "paymentSolution": "001" }, "processorInformation": { "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "75729760OPN67ZFV", "status": "AUTHORIZED", "submitTimeUtc": "2021-06-11T15:00:18Z" }
Required Fields for Authorizing a Payment Using Cybersource Decryption
for Visa
Cybersource
Decryption
for Visa- clientReferenceInformation.code
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- orderInformation.billTo.address1
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.country
- orderInformation.billTo.email
- orderInformation.billTo.firstName
- orderInformation.billTo.lastName
- orderInformation.billTo.locality
- orderInformation.billTo.postalCode
- paymentInformation.card.expirationMonth
- paymentInformation.card.expirationYear
- paymentInformation.card.number
- paymentInformation.card.type
- paymentInformation.fluidData.descriptor
- Set this field toRklEPUNPTU1PTi5BUFBMRS5JTkFQUC5QQVlNRU5U.
- paymentInformaton.fluidData.value
- Set this field to the Base64-encoded value obtained from thepaymentDataproperty of thePKPaymentTokenobject.
- processingInformation.paymentSolution
- Set this field to001
Authorizing a Payment Using Cybersource Decryption for Visa
Cybersource
Decryption for Visa Follow these steps to authorize a payment using
Cybersource
decryption for Visa:- Send the service request to:
ADDITIONAL INFORMATION
https://api.cybersource.com/pts/v2/payments - Check the response message to make sure that the request was successful. A 200-level HTTP response code indicates success. For information about response codes, see Transaction Response Codes.
Example: Cybersource Decryption and
Visa
Cybersource
Decryption and
VisaRequest
{ "clientReferenceInformation": { "code": "1234567890" }, "processingInformation": { "paymentSolution": "001" }, "paymentInformation": { "fluidData": { "value"="eyJkYXRhW5FINWZqVjfkak1NdVNSaE96dWF2ZGVyb2c9PSJ9", "descriptor": "RklEPUNPTU1PTi5BUFBMRS5JTkFQUC5QQVlNRU5U", "encoding": "Base64", }, "tokenizedCard": { "type": "001", "transactionType": "1", } }, "orderInformation": { "amountDetails": { "totalAmount": "100.00", "currency": "USD" }, "billTo": { "firstName": "Maya", "lastName": "Lee", "address1": "123 Main St", "locality": "SomeCity", "administrativeArea": "CA", "postalCode": "94404", "country": "US", "email": "maya.lee@email.world", "phoneNumber": "6504327113" } } }
Response
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6234236182176225003004" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/captures" } }, "clientReferenceInformation": { "code": "1234567890" }, "id": "6234236182176225003004", "orderInformation": { "amountDetails": { "authorizedAmount": "100.00", "currency": "USD" } }, "paymentInformation": { "tokenizedCard": { "expirationYear": "2031", "prefix": "411111", "expirationMonth": "12", "suffix": "1111", "type": "001" }, "card": { "type": "001" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processingInformation": { "paymentSolution": "001" }, "processorInformation": { "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "75729760OPN67ZFV", "status": "AUTHORIZED", "submitTimeUtc": "2021-06-11T15:00:18Z" }
Required Fields for Authorizing a Payment Using Merchant Decryption for
Mastercard
- clientReferenceInformation.code
- consumerAuthenticationInformation.ecommerceIndicator
- For a transaction that does not use 3-D Secure, set this field tointernet.
- For a transaction that uses 3-D Secure, set this field tospa.
- consumerAuthenticationInformation.ucafAuthenticationData
- For a transaction that uses 3-D Secure, set this field to the 3-D Secure cryptogram.
- consumerAuthenticationInformation.ucafCollectionIndicator
- Set this field to2.
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- orderInformation.billTo.address1
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.country
- orderInformation.billTo.email
- orderInformation.billTo.firstName
- orderInformation.billTo.lastName
- orderInformation.billTo.locality
- orderInformation.billTo.postalCode
- paymentInformation.tokenizedCard.cryptogram
- Set this field to the network token cryptogram.
- paymentInformation.tokenizedCard.expirationMonth
- Set this field to the value from the payment network token expiration month.
- paymentInformation.tokenizedCard.expirationYear
- Set this field to the value from the payment network token expiration year.
- paymentInformation.tokenizedCard.number
- Set this field to the payment network token value.
- paymentInformation.tokenizedCard.transactionType
- Set this field to1.
- processingInformation.paymentSolution
- Set this field to001.
Authorizing a Payment Using Merchant Decryption for Mastercard
Follow these steps to authorize a payment using merchant
decryption for Mastercard:
- Send the service request to:
ADDITIONAL INFORMATION
https://api.cybersource.com/pts/v2/payments - Check the response message to make sure that the request was successful. A 200-level HTTP response code indicates success. For information about response codes, see Transaction Response Codes.
Example: Merchant Decryption and Mastercard
Request
{ "clientReferenceInformation": { "code": "1234567890" }, "processingInformation": { "paymentSolution": "001", "commerceIndicator": "spa" }, "paymentInformation": { "tokenizedCard": { "number": "5432543254325432", "expirationMonth": "12", "expirationYear": "2031", "cryptogram": "ABCDEFabcdefABCDEFabcdef0987654321234567", "transactionType": "1" "type": "002" } }, "orderInformation": { "amountDetails": { "totalAmount": "100.00", "currency": "USD" }, "billTo": { "firstName": "Maya", "lastName": "Lee", "address1": "123 Main St", "locality": "SomeCity", "administrativeArea": "CA", "postalCode": "94404", "country": "US", "email": "maya.lee@email.world", "phoneNumber": "6504327113" } }, "consumerAuthenticationInformation": { "ucafAuthenticationData": "ABCDEFabcdefABCDEFabcdef0987654321234567", "ucafCollectionIndicator": "2" } }
Response
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6234236182176225003004" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/captures" } }, "clientReferenceInformation": { "code": "1234567890" }, "id": "6234236182176225003004", "orderInformation": { "amountDetails": { "authorizedAmount": "100.00", "currency": "USD" } }, "paymentInformation": { "tokenizedCard": { "expirationYear": "2031", "prefix": "543254", "expirationMonth": "12", "suffix": "5432", "type": "002" }, "card": { "type": "002" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processingInformation": { "paymentSolution": "001" }, "processorInformation": { "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "75729760OPN67ZFV", "status": "AUTHORIZED", "submitTimeUtc": "2021-06-11T15:00:18Z" }
Required Fields for Authorizing a Payment Using Merchant Decryption for Visa
- clientReferenceInformation.code
- consumerAuthenticationInformation.cavv
- For a transaction that uses 3-D Secure, set this field to the 3-D Secure cryptogram.
- consumerAuthenticationInformation.ecommerceIndicator
- For a transaction that does not use 3-D Secure, set this field to the ECI value contained in the Apple Pay response payload.
- For a transaction that uses 3-D Secure, set this field to5(vbv).
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- orderInformation.billTo.address1
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.country
- orderInformation.billTo.email
- orderInformation.billTo.firstName
- orderInformation.billTo.lastName
- orderInformation.billTo.locality
- orderInformation.billTo.postalCode
- paymentInformation.tokenizedCard.cryptogram
- Set this field to the network token cryptogram.
- paymentInformation.tokenizedCard.expirationMonth
- Set this field to the value from the payment network token expiration month.
- paymentInformation.tokenizedCard.expirationYear
- Set this field to the value from the payment network token expiration year.
- paymentInformation.tokenizedCard.number
- Set this field to the payment network token value.
- paymentInformation.tokenizedCard.transactionType
- Set this field to1.
- processingInformation.paymentSolution
- Set this field to001.
Authorizing a Payment Using Merchant Decryption for Visa
Follow these steps to authorize a payment using merchant
decryption for Visa:
- Send the service request to:
ADDITIONAL INFORMATION
https://api.cybersource.com/pts/v2/payments - Check the response message to make sure that the request was successful. A 200-level HTTP response code indicates success. For information about response codes, see Transaction Response Codes.
Example: Merchant Decryption and Visa
Request
{ "clientReferenceInformation": { "code": "1234567890" }, "processingInformation": { "paymentSolution": "001", "commerceIndicator": "internet" }, "paymentInformation": { "tokenizedCard": { "number": "4111111111111111", "expirationMonth": "12", "expirationYear": "2031", "cryptogram": "AceY+igABPs3jdwNaDg3MAACAAA=", "transactionType": "1" "type": "001" } }, "orderInformation": { "amountDetails": { "totalAmount": "100.00", "currency": "USD" }, "billTo": { "firstName": "Maya", "lastName": "Lee", "address1": "123 Main St", "locality": "SomeCity", "administrativeArea": "CA", "postalCode": "94404", "country": "US", "email": "maya.lee@email.world", "phoneNumber": "6504327113" } }, "consumerAuthenticationInformation": { "cavv": "AceY+igABPs3jdwNaDg3MAACAAA=" } }
Response
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6234236182176225003004" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/captures" } }, "clientReferenceInformation": { "code": "1234567890" }, "id": "6234236182176225003004", "orderInformation": { "amountDetails": { "authorizedAmount": "100.00", "currency": "USD" } }, "paymentInformation": { "tokenizedCard": { "expirationYear": "2031", "prefix": "411111", "expirationMonth": "12", "suffix": "1111", "type": "001" }, "card": { "type": "001" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processingInformation": { "paymentSolution": "001" }, "processorInformation": { "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "75729760OPN67ZFV", "status": "AUTHORIZED", "submitTimeUtc": "2021-06-11T15:00:18Z" }
Required Fields for Authorizing a Payment Using Cybersource Decryption for Mastercard
Cybersource
Decryption for Mastercard- clientReferenceInformation.code
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- orderInformation.billTo.address1
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.country
- orderInformation.billTo.email
- orderInformation.billTo.firstName
- orderInformation.billTo.lastName
- orderInformation.billTo.locality
- orderInformation.billTo.postalCode
- paymentInformation.card.type
- paymentInformation.fluidData.descriptor
- Set this field toRklEPUNPTU1PTi5BUFBMRS5JTkFQUC5QQVlNRU5U.
- paymentInformaton.fluidData.value
- Set this field to the Base64-encoded value obtained from thepaymentDataproperty of thePKPaymentTokenobject.
- paymentInformation.tokenizedCard.transactionType
- Set this field to1.
- processingInformation.paymentSolution
- Set this field to001.
Example: Cybersource Decryption and
Mastercard
Cybersource
Decryption and
MastercardRequest
Endpoint:
POST
https://api.cybersource.com
/pts/v2/payments{ "clientReferenceInformation": { "code": "1234567890" }, "processingInformation": { "paymentSolution": "001" }, "paymentInformation": { "fluidData": { "value"="eyJkYXRhW5FINWZqVjfkak1NdVNSaE96dWF2ZGVyb2c9PSJ9", "descriptor": "RklEPUNPTU1PTi5BUFBMRS5JTkFQUC5QQVlNRU5U", "encoding": "Base64", }, "tokenizedCard": { "type": "002", "transactionType": "1", } }, "orderInformation": { "amountDetails": { "totalAmount": "100.00", "currency": "USD" }, "billTo": { "firstName": "Maya", "lastName": "Lee", "address1": "123 Main St", "locality": "SomeCity", "administrativeArea": "CA", "postalCode": "94404", "country": "US", "email": "maya.lee@email.world" } } }
Response
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6234236182176225003004" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/captures" } }, "clientReferenceInformation": { "code": "1234567890" }, "id": "6234236182176225003004", "orderInformation": { "amountDetails": { "authorizedAmount": "100.00", "currency": "USD" } }, "paymentInformation": { "tokenizedCard": { "expirationYear": "2031", "prefix": "128945", "expirationMonth": "12", "suffix": "2398", "type": "002" }, "card": { "type": "002" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processingInformation": { "paymentSolution": "001" }, "processorInformation": { "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "75729760OPN67ZFV", "status": "AUTHORIZED", "submitTimeUtc": "2021-06-11T15:00:18Z" }
Required Fields for Authorizing a Payment Using Cybersource Decryption for Visa
Cybersource
Decryption for Visa- clientReferenceInformation.code
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- orderInformation.billTo.address1
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.country
- orderInformation.billTo.email
- orderInformation.billTo.firstName
- orderInformation.billTo.lastName
- orderInformation.billTo.locality
- orderInformation.billTo.postalCode
- paymentInformation.card.type
- paymentInformation.fluidData.descriptor
- Set this field toRklEPUNPTU1PTi5BUFBMRS5JTkFQUC5QQVlNRU5U.
- paymentInformaton.fluidData.value
- Set this field to the Base64-encoded value obtained from thepaymentDataproperty of thePKPaymentTokenobject.
- paymentInformation.tokenizedCard.transactionType
- Set this field to1.
- processingInformation.paymentSolution
- Set this field to001.
Example: Cybersource Decryption for Visa
Cybersource
Decryption for VisaRequest
Endpoint:
POST
https://api.cybersource.com
/pts/v2/payments{ "clientReferenceInformation": { "code": "1234567890" }, "processingInformation": { "paymentSolution": "001" }, "paymentInformation": { "fluidData": { "value"="eyJkYXRhW5FINWZqVjfkak1NdVNSaE96dWF2ZGVyb2c9PSJ9", "descriptor": "RklEPUNPTU1PTi5BUFBMRS5JTkFQUC5QQVlNRU5U", "encoding": "Base64", }, "tokenizedCard": { "type": "001", "transactionType": "1", } }, "orderInformation": { "amountDetails": { "totalAmount": "100.00", "currency": "USD" }, "billTo": { "firstName": "Maya", "lastName": "Lee", "address1": "123 Main St", "locality": "SomeCity", "administrativeArea": "CA", "postalCode": "94404", "country": "US", "email": "maya.lee@email.world" } } }
Response
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6234236182176225003004" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/captures" } }, "clientReferenceInformation": { "code": "1234567890" }, "id": "6234236182176225003004", "orderInformation": { "amountDetails": { "authorizedAmount": "100.00", "currency": "USD" } }, "paymentInformation": { "tokenizedCard": { "expirationYear": "2031", "prefix": "411111", "expirationMonth": "12", "suffix": "1111", "type": "001" }, "card": { "type": "001" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processingInformation": { "paymentSolution": "001" }, "processorInformation": { "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "75729760OPN67ZFV", "status": "AUTHORIZED", "submitTimeUtc": "2021-06-11T15:00:18Z" }
Required Fields for Authorizing a Payment Using Merchant Decryption for
Mastercard
- clientReferenceInformation.code
- consumerAuthenticationInformation.ecommerceIndicator
- For a transaction that does not use 3-D Secure, set this field tointernet.
- For a transaction that uses 3-D Secure, set this field tospa.
- consumerAuthenticationInformation.ucafAuthenticationData
- For a transaction that uses 3-D Secure, set this field to the 3-D Secure cryptogram.
- consumerAuthenticationInformation.ucafCollectionIndicator
- Set this field to2.
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- orderInformation.billTo.address1
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.country
- orderInformation.billTo.email
- orderInformation.billTo.firstName
- orderInformation.billTo.lastName
- orderInformation.billTo.locality
- orderInformation.billTo.postalCode
- paymentInformation.tokenizedCard.cryptogram
- Set this field to the network token cryptogram.
- paymentInformation.tokenizedCard.expirationMonth
- Set this field to the value from the payment network token expiration month.
- paymentInformation.tokenizedCard.expirationYear
- Set this field to the value from the payment network token expiration year.
- paymentInformation.tokenizedCard.number
- Set this field to the payment network token value.
- paymentInformation.tokenizedCard.transactionType
- Set this field to1.
- processingInformation.paymentSolution
- Set this field to001.
Example: Merchant Decryption and Mastercard
Request
Endpoint:
POST
https://api.cybersource.com
/pts/v2/payments{ "clientReferenceInformation": { "code": "1234567890" }, "processingInformation": { "paymentSolution": "001", "commerceIndicator": "spa" }, "paymentInformation": { "tokenizedCard": { "number": "5432543254325432", "expirationMonth": "12", "expirationYear": "2031", "cryptogram": "ABCDEFabcdefABCDEFabcdef0987654321234567", "transactionType": "1" "type": "002" } }, "orderInformation": { "amountDetails": { "totalAmount": "100.00", "currency": "USD" }, "billTo": { "firstName": "Maya", "lastName": "Lee", "address1": "123 Main St", "locality": "SomeCity", "administrativeArea": "CA", "postalCode": "94404", "country": "US", "email": "maya.lee@email.world" } }, "consumerAuthenticationInformation": { "ucafAuthenticationData": "ABCDEFabcdefABCDEFabcdef0987654321234567", "ucafCollectionIndicator": "2" } }
Response
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6234236182176225003004" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/captures" } }, "clientReferenceInformation": { "code": "1234567890" }, "id": "6234236182176225003004", "orderInformation": { "amountDetails": { "authorizedAmount": "100.00", "currency": "USD" } }, "paymentInformation": { "tokenizedCard": { "expirationYear": "2031", "prefix": "543254", "expirationMonth": "12", "suffix": "5432", "type": "002" }, "card": { "type": "002" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processingInformation": { "paymentSolution": "001" }, "processorInformation": { "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "75729760OPN67ZFV", "status": "AUTHORIZED", "submitTimeUtc": "2021-06-11T15:00:18Z" }
Required Fields for Authorizing a Payment Using Merchant Decryption for Visa
- clientReferenceInformation.code
- consumerAuthenticationInformation.cavv
- For a transaction that uses 3-D Secure, set this field to the 3-D Secure cryptogram.
- consumerAuthenticationInformation.ecommerceIndicator
- For a transaction that does not use 3-D Secure, set this field to the ECI value contained in the Apple Pay response payload.
- For a transaction that uses 3-D Secure, set this field to5(vbv).
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- orderInformation.billTo.address1
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.country
- orderInformation.billTo.email
- orderInformation.billTo.firstName
- orderInformation.billTo.lastName
- orderInformation.billTo.locality
- orderInformation.billTo.postalCode
- paymentInformation.tokenizedCard.cryptogram
- Set this field to the network token cryptogram.
- paymentInformation.tokenizedCard.expirationMonth
- Set this field to the value from the payment network token expiration month.
- paymentInformation.tokenizedCard.expirationYear
- Set this field to the value from the payment network token expiration year.
- paymentInformation.tokenizedCard.number
- Set this field to the payment network token value.
- paymentInformation.tokenizedCard.transactionType
- Set this field to1.
- processingInformation.paymentSolution
- Set this field to001.
Example: Merchant Decryption and Visa
Request
Endpoint:
POST
https://api.cybersource.com
/pts/v2/payments{ "clientReferenceInformation": { "code": "1234567890" }, "processingInformation": { "paymentSolution": "001", "commerceIndicator": "internet" }, "paymentInformation": { "tokenizedCard": { "number": "4111111111111111", "expirationMonth": "12", "expirationYear": "2031", "cryptogram": "AceY+igABPs3jdwNaDg3MAACAAA=", "transactionType": "1" "type": "001" } }, "orderInformation": { "amountDetails": { "totalAmount": "100.00", "currency": "USD" }, "billTo": { "firstName": "Maya", "lastName": "Lee", "address1": "123 Main St", "locality": "SomeCity", "administrativeArea": "CA", "postalCode": "94404", "country": "US", "email": "maya.lee@email.world" } }, "consumerAuthenticationInformation": { "cavv": "AceY+igABPs3jdwNaDg3MAACAAA=" } }
Response
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6234236182176225003004" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/captures" } }, "clientReferenceInformation": { "code": "1234567890" }, "id": "6234236182176225003004", "orderInformation": { "amountDetails": { "authorizedAmount": "100.00", "currency": "USD" } }, "paymentInformation": { "tokenizedCard": { "expirationYear": "2031", "prefix": "411111", "expirationMonth": "12", "suffix": "1111", "type": "001" }, "card": { "type": "001" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processingInformation": { "paymentSolution": "001" }, "processorInformation": { "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "75729760OPN67ZFV", "status": "AUTHORIZED", "submitTimeUtc": "2021-06-11T15:00:18Z" }
Authorizations Using Cybersource Decryption for Mastercard
Cybersource
Decryption for MastercardThis section provides the information you need in order to process an authorization using
Cybersource
decryption for Mastercard.Required Fields for Authorizing a Payment Using Cybersource Decryption for Mastercard
Cybersource
Decryption for Mastercard- clientReferenceInformation.code
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- orderInformation.billTo.address1
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.country
- orderInformation.billTo.email
- orderInformation.billTo.firstName
- orderInformation.billTo.lastName
- orderInformation.billTo.locality
- orderInformation.billTo.postalCode
- paymentInformation.card.type
- paymentInformation.fluidData.descriptor
- Set this field toRklEPUNPTU1PTi5BUFBMRS5JTkFQUC5QQVlNRU5U.
- paymentInformaton.fluidData.value
- Set this field to the Base64-encoded value obtained from thepaymentDataproperty of thePKPaymentTokenobject.
- paymentInformation.tokenizedCard.transactionType
- Set this field to1.
- processingInformation.paymentSolution
- Set this field to001.
Related Information
REST Example: Cybersource Decryption and Mastercard
Cybersource
Decryption and MastercardAuthorizations Using Cybersource Decryption for Visa
Cybersource
Decryption for VisaThis section provides the information you need in order to process an authorization using
Cybersource
decryption for Visa.Required Fields for Authorizing a Payment Using Cybersource Decryption for Visa
Cybersource
Decryption for Visa- clientReferenceInformation.code
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- orderInformation.billTo.address1
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.country
- orderInformation.billTo.email
- orderInformation.billTo.firstName
- orderInformation.billTo.lastName
- orderInformation.billTo.locality
- orderInformation.billTo.postalCode
- paymentInformation.card.type
- paymentInformation.fluidData.descriptor
- Set this field toRklEPUNPTU1PTi5BUFBMRS5JTkFQUC5QQVlNRU5U.
- paymentInformaton.fluidData.value
- Set this field to the Base64-encoded value obtained from thepaymentDataproperty of thePKPaymentTokenobject.
- paymentInformation.tokenizedCard.transactionType
- Set this field to1.
- processingInformation.paymentSolution
- Set this field to001.
Related Information
REST Example: Cybersource Decryption for Visa
Cybersource
Decryption for VisaAuthorizations Using Merchant Decryption for Mastercard
This section provides the information you need in order to process an authorization using
merchant decryption for Mastercard.
Required Fields for Authorizing a Payment Using Merchant Decryption for
Mastercard
- clientReferenceInformation.code
- consumerAuthenticationInformation.ecommerceIndicator
- Set this field tointernet.
- consumerAuthenticationInformation.ucafAuthenticationData
- Set this field to the network token cryptogram.
- consumerAuthenticationInformation.ucafCollectionIndicator
- Set this field to2.
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- orderInformation.billTo.address1
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.country
- orderInformation.billTo.email
- orderInformation.billTo.firstName
- orderInformation.billTo.lastName
- orderInformation.billTo.locality
- orderInformation.billTo.postalCode
- paymentInformation.tokenizedCard.cryptogram
- Set this field to the network token cryptogram.
- paymentInformation.tokenizedCard.expirationMonth
- Set this field to the value from the payment network token expiration month.
- paymentInformation.tokenizedCard.expirationYear
- Set this field to the value from the payment network token expiration year.
- paymentInformation.tokenizedCard.number
- Set this field to the payment network token value.
- paymentInformation.tokenizedCard.transactionType
- Set this field to1.
- processingInformation.paymentSolution
- Set this field to001.
Related Information
REST Example: Merchant Decryption and Mastercard
Authorizations Using Merchant Decryption for Visa
This section provides the information you need in order to process an authorization using
merchant decryption for Visa.
Required Fields for Authorizing a Payment Using Merchant Decryption for Visa
- clientReferenceInformation.code
- consumerAuthenticationInformation.cavv
- Set this field to the network token cryptogram.
- consumerAuthenticationInformation.ecommerceIndicator
- Set this field to the ECI value contained in the Apple Pay response payload.
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- orderInformation.billTo.address1
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.country
- orderInformation.billTo.email
- orderInformation.billTo.firstName
- orderInformation.billTo.lastName
- orderInformation.billTo.locality
- orderInformation.billTo.postalCode
- paymentInformation.tokenizedCard.cryptogram
- Set this field to the network token cryptogram.
- paymentInformation.tokenizedCard.expirationMonth
- Set this field to the value from the payment network token expiration month.
- paymentInformation.tokenizedCard.expirationYear
- Set this field to the value from the payment network token expiration year.
- paymentInformation.tokenizedCard.number
- Set this field to the payment network token value.
- paymentInformation.tokenizedCard.transactionType
- Set this field to1.
- processingInformation.paymentSolution
- Set this field to001.
Related Information
REST Example: Merchant Decryption and Visa
Authorization Reversals
This section provides the information you need in order to process an authorization reversal.
Reversing an authorization releases the hold on the customer’s payment card funds that the
issuing bank placed when processing the authorization.
Endpoint
Production:
POST
https://api.cybersource.com
/pts/v2/payments/{id}
/reversalsTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}
/reversalsThe is the transaction ID returned in the
authorization response.
{id}
Required Fields for Processing an Authorization Reversal
- Cybersourceprovides the value for this field.
- Set theidURL parameter to the transaction ID that was included in the authorization response message.
- The amount of the reversal must be the same as the authorization amount that was included in the authorization response message. Do not use the amount that was requested in the authorization request message.
REST Example: Processing an Authorization Reversal
Captures
This section provides the information you need in order to capture an authorized
transaction.
Endpoint
Production:
POST
https://api.cybersource.com
/pts/v2/payments/{id}/capturesTest:
POST
https://apitest.cybersource.com
/pts/v2/payments/{id}/capturesThe
{id}
is the transaction
ID returned in the authorization response.Required Fields for Capturing an Authorization
Use these required fields for capturing an authorization.
- This field value maps from the original authorization, sale, or credit transaction.
- Cybersourceprovides the value for this field.
REST Example: Capturing an Authorization
Sales
This section provides the information you need in order to process a sale
transactions.
A sale combines an authorization and a capture into a single transaction.
Endpoint
Production:
POST
https://api.cybersource.com
/pts/v2/paymentsTest:
POST
https://apitest.cybersource.com
/pts/v2/paymentsRequired Fields for Processing a Sale
Use these required fields for processing a sale.
- Set the value totrue.
Related Information
REST Example: Processing a Sale
Request
1234567891011121314151617181920212223242526272829303132333435{ "clientReferenceInformation": { "code": "1234567890" }, "processingInformation": { "paymentSolution": "001" }, "paymentInformation": { "fluidData": { "value"="eyJkYXRhW5FINWZqVjfkak1NdVNSaE96dWF2ZGVyb2c9PSJ9", "descriptor": "RklEPUNPTU1PTi5BUFBMRS5JTkFQUC5QQVlNRU5U", "encoding": "Base64", }, "tokenizedCard": { "type": "002", "transactionType": "1" } }, "orderInformation": { "amountDetails": { "totalAmount": "100.00", "currency": "USD" }, "billTo": { "firstName": "Maya", "lastName": "Lee", "address1": "123 Main St", "locality": "SomeCity", "administrativeArea": "CA", "postalCode": "94404", "country": "US", "email": "maya.lee@email.world" } } }
Response to a Successful Request
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6234236182176225003004" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/captures" } }, "clientReferenceInformation": { "code": "1234567890" }, "id": "6234236182176225003004", "orderInformation": { "amountDetails": { "authorizedAmount": "100.00", "currency": "USD" } }, "paymentInformation": { "tokenizedCard": { "expirationYear": "2031", "prefix": "128945", "expirationMonth": "12", "suffix": "2398", "type": "002" }, "card": { "type": "002" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processingInformation": { "paymentSolution": "001" }, "processorInformation": { "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "75729760OPN67ZFV", "status": "AUTHORIZED", "submitTimeUtc": "2021-06-11T15:00:18Z" }
Request
1234567891011121314151617181920212223242526272829303132333435{ "clientReferenceInformation": { "code": "1234567890" }, "processingInformation": { "paymentSolution": "001" }, "paymentInformation": { "fluidData": { "value"="eyJkYXRhW5FINWZqVjfkak1NdVNSaE96dWF2ZGVyb2c9PSJ9", "descriptor": "RklEPUNPTU1PTi5BUFBMRS5JTkFQUC5QQVlNRU5U", "encoding": "Base64", }, "tokenizedCard": { "type": "001", "transactionType": "1" } }, "orderInformation": { "amountDetails": { "totalAmount": "100.00", "currency": "USD" }, "billTo": { "firstName": "Maya", "lastName": "Lee", "address1": "123 Main St", "locality": "SomeCity", "administrativeArea": "CA", "postalCode": "94404", "country": "US", "email": "maya.lee@email.world" } } }
Response to a Successful Request
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6234236182176225003004" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/captures" } }, "clientReferenceInformation": { "code": "1234567890" }, "id": "6234236182176225003004", "orderInformation": { "amountDetails": { "authorizedAmount": "100.00", "currency": "USD" } }, "paymentInformation": { "tokenizedCard": { "expirationYear": "2031", "prefix": "411111", "expirationMonth": "12", "suffix": "1111", "type": "001" }, "card": { "type": "001" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processingInformation": { "paymentSolution": "001" }, "processorInformation": { "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "75729760OPN67ZFV", "status": "AUTHORIZED", "submitTimeUtc": "2021-06-11T15:00:18Z" }
Request
12345678910111213141516171819202122232425262728293031323334353637383940{ "clientReferenceInformation": { "code": "1234567890" }, "processingInformation": { "paymentSolution": "001", "commerceIndicator": "spa" }, "paymentInformation": { "tokenizedCard": { "number": "5432543254325432", "expirationMonth": "12", "expirationYear": "2031", "cryptogram": "ABCDEFabcdefABCDEFabcdef0987654321234567", "transactionType": "1", "type": "002" } }, "orderInformation": { "amountDetails": { "totalAmount": "100.00", "currency": "USD" }, "billTo": { "firstName": "Maya", "lastName": "Lee", "address1": "123 Main St", "locality": "SomeCity", "administrativeArea": "CA", "postalCode": "94404", "country": "US", "email": "maya.lee@email.world" } }, "consumerAuthenticationInformation": { "ucafAuthenticationData": "ABCDEFabcdefABCDEFabcdef0987654321234567", "ucafCollectionIndicator": "2" } }
Response to a Successful Request
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6234236182176225003004" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/captures" } }, "clientReferenceInformation": { "code": "1234567890" }, "id": "6234236182176225003004", "orderInformation": { "amountDetails": { "authorizedAmount": "100.00", "currency": "USD" } }, "paymentInformation": { "tokenizedCard": { "expirationYear": "2031", "prefix": "543254", "expirationMonth": "12", "suffix": "5432", "type": "002" }, "card": { "type": "002" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processingInformation": { "paymentSolution": "001" }, "processorInformation": { "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "75729760OPN67ZFV", "status": "AUTHORIZED", "submitTimeUtc": "2021-06-11T15:00:18Z" }
Request
1234567891011121314151617181920212223242526272829303132333435363738{ "clientReferenceInformation": { "code": "1234567890" }, "processingInformation": { "paymentSolution": "001", "commerceIndicator": "internet" }, "paymentInformation": { "tokenizedCard": { "number": "4111111111111111", "expirationMonth": "12", "expirationYear": "2031", "cryptogram": "AceY+igABPs3jdwNaDg3MAACAAA=", "transactionType": "1" "type": "001" } }, "orderInformation": { "amountDetails": { "totalAmount": "100.00", "currency": "USD" }, "billTo": { "firstName": "Maya", "lastName": "Lee", "address1": "123 Main St", "locality": "SomeCity", "administrativeArea": "CA", "postalCode": "94404", "country": "US", "email": "maya.lee@email.world" } }, "consumerAuthenticationInformation": { "cavv": "AceY+igABPs3jdwNaDg3MAACAAA=" } }
Response to a Successful Request
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6234236182176225003004" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6234236182176225003004/captures" } }, "clientReferenceInformation": { "code": "1234567890" }, "id": "6234236182176225003004", "orderInformation": { "amountDetails": { "authorizedAmount": "100.00", "currency": "USD" } }, "paymentInformation": { "tokenizedCard": { "expirationYear": "2031", "prefix": "411111", "expirationMonth": "12", "suffix": "1111", "type": "001" }, "card": { "type": "001" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processingInformation": { "paymentSolution": "001" }, "processorInformation": { "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "75729760OPN67ZFV", "status": "AUTHORIZED", "submitTimeUtc": "2021-06-11T15:00:18Z" }
Request
123456789101112131415{ "clientReferenceInformation": { "code": "test123" } "orderInformation" : { "amountDetails" : { "currency" : "USD" } }, "reversalInformation" : { "amountDetails" : { "totalAmount" : "100.00" } } }
Response to a Successful Request
123456789101112131415161718192021222324252627{ "_links" : { "self" : { "method" : "GET", "href" : "/pts/v2/reversals/6869460219566537303955" } }, "clientReferenceInformation" : { "code" : "RTS-Auth-Reversal" }, "id" : "6869460219566537303955", "orderInformation" : { "amountDetails" : { "currency" : "USD" } }, "processorInformation" : { "responseCode" : "200" }, "reconciliationId" : "82kBK3qDNtls", "reversalAmountDetails" : { "reversedAmount" : "100.00", "currency" : "USD" }, "status" : "REVERSED", "submitTimeUtc" : "2023-06-16T20:07:02Z" }
Request
12345678910111213{ "clientReferenceInformation": { "code": "ABC123", "partner": { "thirdPartyCertificationNumber": "123456789012" } }, "orderInformation": { "amountDetails": { "totalAmount": "100.00", "currency": "EUR" } }
Response to a Successful Request
12345678910111213141516171819202122232425{ "_links": { "void": { "method": "POST", "href": "/pts/v2/captures/6662994431376681303954/voids" }, "self": { "method": "GET", "href": "/pts/v2/captures/6662994431376681303954" } }, "clientReferenceInformation": { "code": "1666299443215" }, "id": "6662994431376681303954", "orderInformation": { "amountDetails": { "totalAmount": "100.00", "currency": "EUR" } }, "reconciliationId": "66535942B9CGT52U", "status": "PENDING", "submitTimeUtc": "2022-10-20T20:57:23Z" }
Request
1234567891011121314151617181920212223242526272829{ "processingInformation": { "capture": true }, "orderInformation" : { "billTo" : { "country" : "US", "lastName" : "VDP", "address1" : "201 S. Division St.", "postalCode" : "48104-2201", "locality" : "Ann Arbor", "administrativeArea" : "MI", "firstName" : "RTS", "email" : "test@cybs.com" }, "amountDetails" : { "totalAmount" : "100.00", "currency" : "usd" } }, "paymentInformation" : { "card" : { "expirationYear" : "2031", "number" : "4111111111111111", "expirationMonth" : "12", "type" : "001 } } }
Response to a Successful Request
Most processors do not return all of the fields that are shown
in this example.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960{ "_links" : { "void" : { "method" : "POST", "href" : "/pts/v2/payments/6485004068966546103093/voids" }, "self" : { "method" : "GET", "href" : "/pts/v2/payments/6485004068966546103093" } }, "clientReferenceInformation" : { "code" : "RTS-Auth" }, "id" : "6485004068966546103093", "orderInformation" : { "amountDetails" : { "totalAmount" : "100.00", "authorizedAmount" : "100.00", "currency" : "usd" } }, "paymentAccountInformation" : { "card" : { "type" : "001" } }, "paymentInformation" : { "tokenizedCard" : { "type" : "001" }, "card" : { "type" : "001" } }, "processorInformation" : { "systemTraceAuditNumber" : "841109", "approvalCode" : "831000", "merchantAdvice" : { "code" : "01", "codeRaw" : "M001" }, "responseDetails" : "ABC", "networkTransactionId" : "016153570198200", "retrievalReferenceNumber" : "208720841109", "consumerAuthenticationResponse" : { "code" : "2", "codeRaw" : "2" }, "transactionId" : "016153570198200", "responseCode" : "00", "avs" : { "code" : "Y", "codeRaw" : "Y" } }, "reconciliationId" : "6485004068966546103093", "status" : "AUTHORIZED", "submitTimeUtc" : "2022-03-28T20:46:47Z" }