Industry practice transactions are follow-on transactions to a previous
customer-initiated transaction. There are six types of Industry Practice
transactions:
- Delayed charges
- Incremental charges
- Partial authorizations or partial shipments
- Reauthorizations
- Resubmissions
- No-shows
Merchant-Initiated Delayed Transaction
Delayed charge transaction is performed to process a supplemental account charge after original services have been rendered and respective payment has been processed.
Fields Specific to this Use Case
The following information is required with a standard authorization request:
- processingInformation.authorizationOptions.initiator.type–Indicate that this transaction is a merchant-initiated follow-on transaction. Set the field tomerchant.
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.reason–Include the reason for the transaction. Set the field to2.
Endpoint
POST
https://api.cybersource.com
/pts/v2/paymentsRequired Fields
- 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.phoneNumber
- orderInformation.billTo.postalCode
- paymentInformation.card.expirationMonth
- paymentInformation.card.expirationYear
- paymentInformation.card.number
- processingInformation.authorizationOptions.initiator. merchantInitiatedTransaction.previousTransactionId
- For Discover and American Express cards, use the transaction ID from the original transaction. For Visa, use the last successful transaction ID.
- processingInformation.authorizationOptions.initiator. merchantInitiatedTransaction.reason
- Set to2.
- processingInformation.authorizationOptions.initiator.type
- Set tomerchant.
Card-Specific Required Fields
Discover
The listed card requires additional field:
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.originalAuthorizedAmount
- Provide the original transaction amount.
REST Example: Merchant-Initiated Delayed Authorization Transaction
Request
Endpoint:
POST
https://api.cybersource.com
/pts/v2/payments{ "orderInformation": { "billTo" : { "country" : "US", "lastName" : "Kim", "address1" : "201 S. Division St.", "postalCode" : "48104-2201", "locality" : "Ann Arbor", "administrativeArea" : "MI", "firstName" : "Kyong-Jin", "phoneNumber": "6504327113", "email" : "test@cybs.com" }, "amountDetails": { "totalAmount": "120.00", "currency": "USD" } }, "paymentInformation": { "card": { "expirationYear": "2031", "number": "4111xxxxxxxxxxxx", "expirationMonth": "12" } }, "processingInformation": { "authorizationOptions": { "initiator": { "type": "merchant", "merchantInitiatedTransaction": { "originalAuthorizedAmount": "100", // Discover only "previousTransactionId": "123456789619999", "reason": "2" } } } } }
This example shows a sample response for a merchant-initiated delayed
transaction.
Response
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6534213653516599003001/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6534213653516599003001" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6534213653516599003001/captures" } }, "clientReferenceInformation": { "code": "1653421365327" }, "id": "6534213653516599003001", "orderInformation": { "amountDetails": { "authorizedAmount": "120.00", "currency": "USD" } }, "paymentAccountInformation": { "card": { "type": "002" } }, "paymentInformation": { "tokenizedCard": { "type": "002" }, "card": { "type": "002" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processorInformation": { "approvalCode": "888888", "authIndicator": "1", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "64365475T3K10Q1D", "status": "AUTHORIZED", "submitTimeUtc": "2022-05-24T19:42:45Z" }
Merchant-Initiated Incremental Transaction
An incremental authorization is used to increase the total amount authorized for a
payment if the initial authorization does not cover the total cost of goods and
services. An incremental transaction is an additional amount to the original
authorization. The final authorized total includes amounts for both the initial and the
incremental authorizations.
Fields Specific to this Use Case
Include these fields with a standard authorization request:
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction. type–Set the field tomerchantto indicate this transaction is a merchant-initiated follow-on transaction.
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.reason–Set the reason field to5.
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction. previousTransactionID– Provide the original transaction ID.
Endpoint
Send a
PATCH
request to this endpoint:pts/v2/payments/{id}
where id
is the original authorization ID.Required Fields
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.reason
- Set to5.
- processingInformation.authorizationOptions.initiator.type
- Set tomerchant.
Card-Specific Required Fields
Discover
The listed card requires additional field:
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.originalAuthorizedAmount
- Provide the original transaction amount.
REST Example: Merchant-Initiated Incremental Transaction
Send a
PATCH
request to this endpoint:pts/v2/payments/{id}
where id
is
the original authorization ID.Request
{ "orderInformation": { "billTo" : { "country" : "US", "lastName" : "Kim", "address1" : "201 S. Division St.", "postalCode" : "48104-2201", "locality" : "Ann Arbor", "administrativeArea" : "MI", "firstName" : "Kyong-Jin", "phoneNumber": "6504327113", "email" : "test@cybs.com" }, "amountDetails": { "totalAmount": "120.00", "currency": "USD" } }, "paymentInformation": { "card": { "expirationYear": "2031", "number": "4111xxxxxxxxxxxx", "expirationMonth": "12" } }, "processingInformation": { "authorizationOptions": { "initiator": { "type": "merchant", "merchantInitiatedTransaction": { "originalAuthorizedAmount": "100", // Required for Discover "previousTransactionId": "123456789619999", "reason": "5" } } } } }
This example shows a sample response for a merchant-initiated
incremental transaction.
Example: Response
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6533225006556860003002/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6533225006556860003002" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6533225006556860003002/captures" } }, "clientReferenceInformation": { "code": "1653322500637" }, "id": "6533225006556860003002", "orderInformation": { "amountDetails": { "authorizedAmount": "100.00", "currency": "USD" } }, "paymentAccountInformation": { "card": { "type": "001" } }, "paymentInformation": { "tokenizedCard": { "type": "001" }, "card": { "type": "001" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processorInformation": { "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "64143477A3AJ4P2Z", "status": "AUTHORIZED", "submitTimeUtc": "2022-05-23T16:15:00Z" }
Merchant-Initiated Reauthorization Transactions
A reauthorization occurs when the completion or fulfillment of the original order or
service extends beyond the authorized amount time limit. There are two common
reauthorization scenarios:
- Split or delayed shipments by a retailer
- Extended car rentals, hotel stays, or cruise line bookings
Fields Specific to this Use Case
Include these fields with a standard authorization request:
- processingInformation.authorizationOptions.initiator.type–Set the field tomerchantto indicate this transaction is a merchant-initiated follow-on transaction.
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.reason–Set the reason field to3.
Endpoint
POST
https://api.cybersource.com
/pts/v2/paymentsRequired Fields
- 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.phoneNumber
- orderInformation.billTo.postalCode
- paymentInformation.card.expirationMonth
- paymentInformation.card.expirationYear
- paymentInformation.card.number
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction. previousTransactionId
- For Discover and American Express cards, use the transaction ID from the original transaction. For Visa, use the last successful transaction ID.
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.reason
- Set to3.
- processingInformation.authorizationOptions.initiator.type
- Set tomerchant.
Card-Specific Required Fields
Discover
The listed card requires additional field:
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.originalAuthorizedAmount
- Provide the original transaction amount.
REST Example: Merchant-Initiated Reauthorization Transactions
Request
Endpoint:
POST
https://api.cybersource.com
/pts/v2/payments{ "processingInformation": { "authorizationOptions": { "initiator": { "type": "merchant", "merchantInitiatedTransaction": { "originalAuthorizedAmount": "100", // Discover Only "previousTransactionId": "123456789619999", "reason": "3" } } } }, "orderInformation": { "billTo" : { "country" : "US", "lastName" : "Kim", "address1" : "201 S. Division St.", "postalCode" : "48104-2201", "locality" : "Ann Arbor", "administrativeArea" : "MI", "firstName" : "Kyong-Jin", "phoneNumber": "6504327113", "email" : "test@cybs.com" }, "amountDetails": { "totalAmount": "130.00", "currency": "USD" } }, "paymentInformation": { "card": { "expirationYear": "2031", "number": "4111xxxxxxxxxxxx", "expirationMonth": "12" } } }
Response
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6541178668686490403003/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6541178668686490403003" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6541178668686490403003/captures" } }, "clientReferenceInformation": { "code": "1654117866849" }, "id": "6541178668686490403003", "orderInformation": { "amountDetails": { "authorizedAmount": "130.00", "currency": "USD" } }, "paymentAccountInformation": { "card": { "type": "001" } }, "paymentInformation": { "tokenizedCard": { "type": "001" }, "card": { "type": "001" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processorInformation": { "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "65313868D3TXXC05", "status": "AUTHORIZED", "submitTimeUtc": "2022-06-01T21:11:06Z" }
Merchant-Initiated Resubmission Transaction
A resubmission transaction is used when a merchant resubmits an authorization to recover
an outstanding debt from the customer. A common scenario is when a card was initially
declined due to insufficient funds, but the goods or services were already delivered to
the customer.
Specific Fields for this Use Case
Include
these fields with a standard authorization request:- processingInformation.authorizationOptions.initiator.type–
- Set the field tomerchantto indicate this transaction is a merchant-initiated follow-on transaction.
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.reason–Set the reason field to1.
Required Fields
- 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.phoneNumber
- orderInformation.billTo.postalCode
- paymentInformation.card.expirationMonth
- paymentInformation.card.expirationYear
- paymentInformation.card.number
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction. previousTransactionId
- For Discover and American Express cards, use the transaction ID from the original transaction. For Visa, use the last successful transaction ID.
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.reaso
- Set to1.
- processingInformation.authorizationOptions.initiator.type
- Set tomerchant.
Card-Specific Required Fields
Discover
The listed card requires additional field:
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.originalAuthorizedAmount
- Provide the original transaction amount.
REST Example: Merchant-Initiated Resubmitted Authorization Transactions
Request
Endpoint:
POST
https://api.cybersource.com
/pts/v2/payments{ "processingInformation": { "authorizationOptions": { "initiator": { "type": "merchant", "merchantInitiatedTransaction": { "originalAuthorizedAmount": "100", // Discover Only "previousTransactionId": "123456789619999", "reason": "1" } } } }, "orderInformation": { "billTo" : { "country" : "US", "lastName" : "Kim", "address1" : "201 S. Division St.", "postalCode" : "48104-2201", "locality" : "Ann Arbor", "administrativeArea" : "MI", "firstName" : "Kyong-Jin", "phoneNumber": "6504327113", "email" : "test@cybs.com" }, "amountDetails": { "totalAmount": "100.00", "currency": "USD" } }, "paymentInformation": { "card": { "expirationYear": "2031", "number": "4111xxxxxxxxxxxx", "expirationMonth": "12" } } }
This example shows a sample response for a resubmitted merchant-initiated
authorization transaction.
Response
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6534232293716260503006/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6534232293716260503006" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6534232293716260503006/captures" } }, "clientReferenceInformation": { "code": "1653423229353" }, "id": "6534232293716260503006", "orderInformation": { "amountDetails": { "authorizedAmount": "100.00", "currency": "USD" } }, "paymentAccountInformation": { "card": { "type": "004" } }, "paymentInformation": { "tokenizedCard": { "type": "004" }, "card": { "type": "004" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processorInformation": { "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "64365912G3K7HFDJ", "status": "AUTHORIZED", "submitTimeUtc": "2022-05-24T20:13:49Z" }
Merchant-Initiated No-Show Transactions
A no-show authorization occurs when a merchant charges a customer after the customer
makes a reservation, and does not show up to claim the reservation. In this situation,
the customer is charged an agreed upon fee for not showing up as expected.
Fields Specific to this Use Case
Include these fields with a standard authorization request:
- processingInformation.authorizationOptions.initiator.type–Set the field tomerchantto indicate this transaction is a merchant-initiated follow on transaction.
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.reason–Set the reason field to4.
Required Fields
- 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.phoneNumber
- orderInformation.billTo.postalCode
- paymentInformation.card.expirationMonth
- paymentInformation.card.expirationYear
- paymentInformation.card.number
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction. previousTransactionId
- For Discover and American Express cards, use the transaction ID from the original transaction. For Visa, use the last successful transaction ID.
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.reason
- Set to4.
- processingInformation.authorizationOptions.initiator.type
- Set tomerchant.
Card-Specific Required Fields
Discover
The listed card requires additional field:
- processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.originalAuthorizedAmount
- Provide the original transaction amount.
REST Example: Merchant-Initiated No-Show Transaction
Request
Endpoint:
POST
https://api.cybersource.com
/pts/v2/payments{ "processingInformation": { "authorizationOptions": { "initiator": { "type": "merchant", "merchantInitiatedTransaction": { "originalAuthorizedAmount": "100", //Discover only "previousTransactionId": "123456789619999", "reason": "4" } } } }, "orderInformation": { "billTo" : { "country" : "US", "lastName" : "Kim", "address1" : "201 S. Division St.", "postalCode" : "48104-2201", "locality" : "Ann Arbor", "administrativeArea" : "MI", "firstName" : "Kyong-Jin", "phoneNumber": "6504327113", "email" : "test@cybs.com" }, "amountDetails": { "totalAmount": "150.00", "currency": "USD" } }, "paymentInformation": { "card": { "expirationYear": "2031", "number": "4111xxxxxxxxxxxx", "expirationMonth": "12" } } }
Response
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6534214295466223903006/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6534214295466223903006" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6534214295466223903006/captures" } }, "clientReferenceInformation": { "code": "1653421429522" }, "id": "6534214295466223903006", "orderInformation": { "amountDetails": { "authorizedAmount": "150.00", "currency": "USD" } }, "paymentAccountInformation": { "card": { "type": "001" } }, "paymentInformation": { "tokenizedCard": { "type": "001" }, "card": { "type": "001" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processorInformation": { "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "64365823G3K7HFAM", "status": "AUTHORIZED", "submitTimeUtc": "2022-05-24T19:43:49Z" }