Authorizations with Payment Network Tokens

This section shows you how to successfully process an authorization with payment network tokens.
Due to mandates from the Reserve Bank of India, Indian merchants cannot store personal account numbers (PAN). Use network tokens instead. For more information on network tokens, see Network Tokenization in the
Token Management Service
Developer Guide
.

Endpoint

Set the
ccAuthService_run
field to
true
.
Send the request to
https://ics2ws.ic3.com/commerce/1.x/transactionProcessor
.

Required Fields for Authorizations with Payment Network Tokens

Use these required fields for processing an authorization with payment network tokens.
When relaxed requirements for address data and the expiration date are being used, not all fields in this list are required. It is your responsibility to determine whether your account is enabled to use this feature and which fields are required. For details about relaxed requirements, see Relaxed Requirements for Address Data and Expiration Date in Payment Transactions.
billTo.email
billTo.firstName
billTo.lastName
billTo.street1
ccAuthService.networkTokenCryptogram
paymentNetworkToken.transactionType
purchaseTotals.currency
purchaseTotals.grandTotalAmount
token.expirationMonth
token.expirationYear

Optional Fields for Authorizations with Payment Network Tokens

billTo.city
billTo.country
billTo.email
billTo.firstName
billTo.lastName
billTo.postalCode
Required only for transactions in the U.S. and Canada.
billTo.state
Required only for transactions in the U.S. and Canada.
billTo.street1
card.accountNumber
Set to the token value that you received from the token service provider.
card.cardType
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.
card.expirationMonth
Set to the token expiration month that you received from the token service provider.
card.expirationYear
Set to the token expiration year that you received from the token service provider.
ccAuthService.cavv
For 3-D Secure in-app transactions for Visa and JCB, set to the 3-D Secure cryptogram. Otherwise, set to the network token cryptogram.
ccAuthService.commerceIndicator
ccAuthService.networkTokenCryptogram
ccAuthService.run
Set the value to
true
.
merchantID
merchantReferenceCode
purchaseTotals.currency
purchaseTotals.grandTotalAmount or item_#.unitPrice
paymentNetworkToken.transactionType
paymentNetworkToken.requestorID
Required on
Visa Platform Connect
ucaf.authenticationData
For Mastercard requests, set this field to the Identity Check cryptogram.
ucaf.collectionIndicator
For Mastercard requests, set the value to
2
.

Simple Order API Example: Authorizations with Payment Network Tokens

Request
<requestMessage> <purchaseTotals> <currency>USD</currency> <grandTotalAmount>16.00</grandTotalAmount> </purchaseTotals> <card> <accountNumber>4111111111111111</accountNumber> <expirationMonth>12</expirationMonth> <expirationYear>2031</expirationYear> </card> <ccAuthService run="true"> <networkTokenCryptogram>qE5juRwDzAUFBAkEHuWW9PiBkWv=</networkTokenCryptogram> </ccAuthService> <paymentNetworkToken> <transactionType>1</transactionType> </paymentNetworkToken> </requestMessage>
Successful Response
<soap:Body> <c:replyMessage> <c:merchantReferenceCode>Postman-1684858432</c:merchantReferenceCode> <c:requestID>6848584316126969103007</c:requestID> <c:decision>ACCEPT</c:decision> <c:reasonCode>100</c:reasonCode> <c:purchaseTotals> <c:currency>USD</c:currency> </c:purchaseTotals> <c:ccAuthReply> <c:reasonCode>100</c:reasonCode> <c:amount>16.00</c:amount> <c:authorizationCode>888888</c:authorizationCode> <c:avsCode>X</c:avsCode> <c:avsCodeRaw>I1</c:avsCodeRaw> <c:authorizedDateTime>2023-05-23T16:13:51Z</c:authorizedDateTime> <c:processorResponse>100</c:processorResponse> <c:reconciliationID>78849228NHPFQCKD</c:reconciliationID> <c:paymentNetworkTransactionID>123456789619999</c:paymentNetworkTransactionID> </c:ccAuthReply> <c:card> <c:cardType>001</c:cardType> </c:card> </c:replyMessage> </soap:Body>