How network tokens work in Kushki's Card Payments API: bring your own token, or let Kushki create one during the charge.A network token is a card number issued directly by the card network (Visa or Mastercard) that replaces the real card number (PAN) in a transaction. It is tied to the original card and updates automatically if the card expires or is reissued, so the merchant does not need to ask the cardholder for a new number when that happens.Kushki supports network tokens in Colombia, Chile, Peru, and Mexico in two independent ways, and a single integration can use one, both, or neither on a given transaction. Both paths apply to Kushki's acquiring model.
BETAIf your integration already obtains network tokens on its own, for example from a digital wallet such as Apple Pay, you can hand that token to Kushki so the transaction is processed with it instead of a traditional PAN. This feature is in BETA: contact your Kushki account manager before enabling it.
1
Send the network token when requesting a Kushki token
It is sent in the Create a card token request (POST /card/v1/tokens), with card.number set to the network token number, card.cryptogram set to the cryptogram, isNetworkToken: true, and a networkToken object with the wallet and device metadata:
Indicates that card.number is a network token and not a traditional PAN.
card.cryptogram
Dynamic cryptogram of the network token, 20 to 28 alphanumeric characters. It is a separate field from the CVV.
deviceType
Type of device originating the tokenized transaction.
requestorId
Unique ID that the card network assigns to the token requestor.
source
Source of the token.
walletId
Digital wallet identifier: 01 for Apple Pay, 04 for other wallets.
authenticationLevel
Authentication level performed during token provisioning.
mvv
10-digit Merchant Verification Value (Visa transactions only).
You can also send these fields directly in a tokenless charge (POST /card/v2/charges).
2
Continue the normal flow
Use the returned token to call Charge (POST /card/v1/charges) or Pre-authorization (POST /card/v1/preAuthorization). The rest of the flow does not change.
Cryptogram and CVV
The cryptogram is sent in card.cryptogram and does not replace the CVV. We recommend also sending card.cvv: if you send only the cryptogram, the acceptance rate may vary. Check with your wallet or token provider whether they include a cryptogram.
If instead you are tokenizing a regular card with Kushki, without bringing an already tokenized number, you can ask Kushki to also tokenize that card with a network token during the charge, using Kushki's own tokenizer.
Network token creation is enabled on demand through a commercial agreement. Not every transaction is tokenized this way even with the agreement active: check the network object in each response to see whether that particular transaction was.
Transport and Creation answer different questions:
Transport controls what you send: whether the card number in the request is a traditional PAN or a network token you already obtained on your own.
Creation controls what you get back: whether Kushki reports network token information for that transaction in the response, using its own tokenizer.
They are independent: using one neither requires nor excludes the other. The network object in the charge or pre-authorization response reflects what you requested in capabilities and what actually happened to that transaction, regardless of which path the underlying token came from.