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 to
    merchant
    .
  • processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.reason
    –Include the reason for the transaction. Set the field to
    2
    .

Endpoint

POST
https://api.cybersource.com
/pts/v2/payments

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 to
2
.
processingInformation.authorizationOptions.initiator.type
Set to
merchant
.

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 to
    merchant
    to indicate this transaction is a merchant-initiated follow-on transaction.
  • processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.reason
    –Set the reason field to
    5
    .
  • 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 to
5
.
processingInformation.authorizationOptions.initiator.type
Set to
merchant
.

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 to
    merchant
    to indicate this transaction is a merchant-initiated follow-on transaction.
  • processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.reason
    –Set the reason field to
    3
    .

Endpoint

POST
https://api.cybersource.com
/pts/v2/payments

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 to
3
.
processingInformation.authorizationOptions.initiator.type
Set to
merchant
.

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 to
    merchant
    to indicate this transaction is a merchant-initiated follow-on transaction.
  • processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.reason
    –Set the reason field to
    1
    .

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 to
1
.
processingInformation.authorizationOptions.initiator.type
Set to
merchant
.

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 to
    merchant
    to indicate this transaction is a merchant-initiated follow on transaction.
  • processingInformation.authorizationOptions.initiator.merchantInitiatedTransaction.reason
    –Set the reason field to
    4
    .

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 to
4
.
processingInformation.authorizationOptions.initiator.type
Set to
merchant
.

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" }