On This Page
Merchant-Initiated Incremental Transaction with Token Management
Token Management
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. Incremental transactions are limited to certain merchant
categories, such as rental, lodging, transit, amusement parks, restaurants, and
bars.
This section describes how to process a merchant-initiated incremental transaction using
these
Token Management
token types:- Customer
- Customer tokens store one or more customer payment instrument tokens and shipping address tokens.
- Including a customer token eliminates the need to include billing information, card information, and the previous transaction's ID.
- "paymentInformation": { "customer": { "id": "07C9CA98022DA498E063A2598D0AA400" } }
- Payment Instrument
- Payment instrument tokens store an instrument identifier token, card information, and billing information. Payment instruments are not linked to a customer token.
- Including a payment instrument eliminates the need to include billing information, card information, and the previous transaction's ID.
- "paymentInformation": { "paymentInstrument": { "id": "07CA24EF20F9E2C9E063A2598D0A8565" } }
- Instrument Identifier
- Instrument identifier tokens store only a PAN. Including an instrument identifier eliminates the need to include a PAN and the previous transaction's ID.
- "paymentInformation": { "instrumentIdentifier": { "id": "7010000000016241111" } }
To create an incremental transaction
using the
BA360
, choose one of these options: - Account Top Up
- No Show
Supported Card Types
These are the supported card types for processing credentialed transactions:
- American Express
- Carta Si
- Cartes Bancaires
- Dankort
- Delta
- Eurocard
- JCB
- Maestro (UK Domestic)
- Mastercard
- Visa
- Visa Electron
Limitations
You can request up to 100 incremental authorizations for each transaction, in
addition to the original authorization.
Interchange optimization and split shipments are not supported.
American Express Requirements
When you are processing a payment with an American Express credit card, you are
required to reverse any remaining authorized funds that are not captured. For
example, if the total of the initial authorization and all of the incremental
authorizations is $100, and the amount that you capture is $80, then you must
reverse the difference of $20.
To reverse funds from incremental authorizations, send a partial authorization
reversal request. For more information, see Partial Authorization Reversal.
Endpoint
Production:
POST
https://api.merchant-services.bankofamerica.com
/pts/v2/paymentsTest:
POST
https://apitest.merchant-services.bankofamerica.com
/pts/v2/paymentsTime-Out Authorization Reversals for Incremental Transactions
When you do not receive a response message after sending an incremental transaction
request, you can reverse the incremental transaction. When processing a time-out
authorization reversal for an incremental transaction, include the
clientReferenceInformation.transactionId
request field and
set it to the clientReferenceInformation.code
field value that
your payment terminal assigned to it in the incremental transaction. For more information about how to process a time-out authorization reversal, see
Time-Out Authorization Reversal.
After successfully processing a time-out authorization reversal, you can resend the
incremental authorization with a new unique field value in the
clientReferenceInformation.code
request field.Required Fields for MIT Incremental Transaction with Token Management
Token Management
Include these Required Fields
- orderInformation.amountDetails.currency
- orderInformation.amountDetails.totalAmount
- paymentInformation.[tokentype].id
- Where[tokentype]is theToken Managementtoken type you are using:
- customer
- instrumentIdentifier
- paymentInstrument
- processingInformation. authorizationOptions.initiator. merchantInitiatedTransaction. reason
- Set the value to5.
- Required only for Discover and Visa.
Instrument Identifier Required Fields
If you are using the
paymentInformation.instrumentIdentifier.id
token, include these required fields in addition to the required fields listed
above.- orderInformation.billTo.address1
- orderInformation.billTo.administrativeArea
- orderInformation.billTo.buildingNumber
- Required forRedecard customer validation.
- 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
Card-Specific Required Fields
Include these fields when processing an authorization with these card types.
The listed card type requires an additional field.
- Diners Club
- processorInformation.cardReferenceData:
- Required only for token transactions. Set this field to theprocessorInformation.cardReferenceDatafield that was in the response message when you obtained the customer's credentials.
- issuerInformation.transactionInformation:
- Required only for token transactions. Set this field to theprocessorInformation.transactionIDfield that was in the response message when you obtained the customer's credentials.
- Discover
- processingInformation.authorizationOptions.initiator. merchantInitiatedTransaction.originalAuthorizedAmount
- Set to the original transaction amount.
- processorInformation.cardReferenceData
- Required only for token transactions. Set this field to theprocessorInformation.cardReferenceDatafield that was in the response message when you obtained the customer's credentials.
- issuerInformation.transactionInformation
- Required only for token transactions. Set this field to theprocessorInformation.transactionIDfield that was in the response message when you obtained the customer's credentials.
Example: MIT Incremental Transaction with a Token Management Instrument
Identifier
Token Management
Instrument
IdentifierRequest
{ "processingInformation": { "authorizationOptions": { "initiator": { "merchantInitiatedTransaction": { "reason": "5" } } } }, "paymentInformation": { "card": { "expirationMonth": "12", "expirationYear": "2031" }, "instrumentIdentifier": { "id": "7010000000016241111" } }, "orderInformation": { "amountDetails": { "totalAmount": "102.21", "currency": "USD" }, "billTo": { "firstName": "John", "lastName": "Doe", "address1": "1 Market St", "locality": "san francisco", "administrativeArea": "CA", "postalCode": "94105", "country": "US", "email": "test@bankofamerica.com", "phoneNumber": "4158880000" } } }
Response to a Successful Request
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6976922830456934003954/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6976922830456934003954" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6976922830456934003954/captures" } }, "clientReferenceInformation": { "code": "1697692283160" }, "id": "6976922830456934003954", "orderInformation": { "amountDetails": { "authorizedAmount": "102.21", "currency": "USD" } }, "paymentAccountInformation": { "card": { "type": "001" } }, "paymentInformation": { "tokenizedCard": { "type": "001" }, "instrumentIdentifier": { "id": "7010000000016241111", "state": "ACTIVE" }, "card": { "type": "001" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processingInformation": { "paymentSolution": "015" }, "processorInformation": { "paymentAccountReferenceNumber": "V0010013022298169667504231315", "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "62700184NNMR6XFK", "status": "AUTHORIZED", "submitTimeUtc": "2023-10-19T05:11:23Z" }
Example: MIT Incremental Transaction with a Token Management Payment
Instrument
Token Management
Payment
InstrumentRequest
{ "processingInformation": { "authorizationOptions": { "initiator": { "merchantInitiatedTransaction": { "reason": "5" } } } }, "paymentInformation": { "paymentInstrument": { "id": "080AE120369A7947E063A2598D0A718F" } }, "orderInformation": { "amountDetails": { "totalAmount": "102.21", "currency": "USD" } } }
Response to a Successful Request
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6976917718796256603955/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6976917718796256603955" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6976917718796256603955/captures" } }, "clientReferenceInformation": { "code": "1697691771976" }, "id": "6976917718796256603955", "orderInformation": { "amountDetails": { "authorizedAmount": "102.21", "currency": "USD" } }, "paymentAccountInformation": { "card": { "type": "001" } }, "paymentInformation": { "tokenizedCard": { "type": "001" }, "instrumentIdentifier": { "id": "7010000000016241111", "state": "ACTIVE" }, "paymentInstrument": { "id": "080AE120369A7947E063A2598D0A718F" }, "card": { "type": "001" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processingInformation": { "paymentSolution": "015" }, "processorInformation": { "paymentAccountReferenceNumber": "V0010013022298169667504231315", "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "62700629BNN13VGW", "status": "AUTHORIZED", "submitTimeUtc": "2023-10-19T05:02:52Z" }
Example: MIT Incremental Transaction with a Token Management Customer
token
Token Management
Customer
tokenRequest
{ "processingInformation": { "authorizationOptions": { "initiator": { "merchantInitiatedTransaction": { "reason": "5" } } } }, "paymentInformation": { "customer": { "id": "080AC9AB60C92AA2E063A2598D0A0C74" } }, "orderInformation": { "amountDetails": { "totalAmount": "102.21", "currency": "USD" } } }
Response to a Successful Request
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/6976916433716228003955/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/6976916433716228003955" }, "capture": { "method": "POST", "href": "/pts/v2/payments/6976916433716228003955/captures" } }, "clientReferenceInformation": { "code": "1697691643458" }, "id": "6976916433716228003955", "orderInformation": { "amountDetails": { "authorizedAmount": "102.21", "currency": "USD" } }, "paymentAccountInformation": { "card": { "type": "001" } }, "paymentInformation": { "tokenizedCard": { "type": "001" }, "instrumentIdentifier": { "id": "7010000000016241111", "state": "ACTIVE" }, "paymentInstrument": { "id": "080AE6DB37B09557E063A2598D0AA4C9" }, "card": { "type": "001" }, "customer": { "id": "080AC9AB60C92AA2E063A2598D0A0C74" } }, "pointOfSaleInformation": { "terminalId": "111111" }, "processingInformation": { "paymentSolution": "015" }, "processorInformation": { "paymentAccountReferenceNumber": "V0010013022298169667504231315", "approvalCode": "888888", "networkTransactionId": "123456789619999", "transactionId": "123456789619999", "responseCode": "100", "avs": { "code": "X", "codeRaw": "I1" } }, "reconciliationId": "62700435FNN143RY", "status": "AUTHORIZED", "submitTimeUtc": "2023-10-19T05:00:43Z" }