Customer-Initiated Recurring Payment with Enrollable Network Tokens

A recurring payment is a credentials-on-file (COF) transaction in a series of payments that you bill to a customer at a fixed amount, at regular intervals that do not exceed one year between transactions. The series of recurring payments is the result of an agreement between you and the customer for the purchase of goods or services that are provided at regular intervals.
Mastercard uses standing order and subscription payments instead of recurring payments. See Mastercard Standing Order Payments and Mastercard Subscription Payments.

Recurring Billing Service for Recurring Payments

IMPORTANT
Do not use this document for the Recurring Billing service.
Use the
Recurring Billing Developer Guide
. When you use the Recurring Billing service,
Cybersource
saves and stores payment credentials for recurring transactions, ensuring compliance with COF best practices.

Using Enrollable Network Tokens

The
Token Management Service
can enroll certain
network tokens
, known as device tokens, into an instrument identifier token for future payments.
Device tokens
store and encrypt card-on-file information which enables customers to make quick and easy purchases using their mobile device. When authorizing a credentialed payment with a device token, you must create and store the device token in a
TMS
instrument identifier token. To do this, include the device token information in the
paymentInformation.tokenizedCard
fields and set the token creation fields to create an instrument identifier token.
Follow-on merchant-initiated transactions are performed using the created instrument identifier as the payment information. For more information about how to request a merchant-initiated transaction, see Merchant-Initiated Recurring Payments with TMS.
Device tokens are also known as
digital payments
,
digital wallets
, and
tokenized cards
.

Network Token Types

In your request, include the
processingInformation.paymentSolution
field to identify the device token type you are using, and set it to one of these possible values:
  • 001
    : Apple Pay
  • 004
    :
    Cybersource
    In-App Solution
  • 005
    : Masterpass
  • 006
    : Android Pay
  • 007
    : Chase Pay
  • 008
    : Samsung Pay
  • 012
    : Google Pay
  • 014
    : Mastercard credential-on-file (COF) payment network token
  • 015
    : Visa credential-on-file (COF) payment network token
  • 027
    : Click to Pay
  • visacheckout
    :
    Visa Click to Pay
    .

Endpoint

Production:
POST
https://api.cybersource.com
/pts/v2/payments
Test:
POST
https://apitest.cybersource.com
/pts/v2/payments

Required Fields for Authorizing a Customer-Initiated Recurring Payments with Enrollable Network Tokens

paymentInformation.tokenizedCard.number
Set the value to
1
.
Set the value to
TOKEN_CREATE
.
Set the value to
instrumentIdentifier
.
Set the value to
internet
,
MOTO
, or a payer authentication value.
processingInformation.paymentSolution
Set to one of these possible values:
  • 001
    : Apple Pay
  • 004
    :
    Cybersource
    In-App Solution
  • 005
    : Masterpass
  • 006
    : Android Pay
  • 007
    : Chase Pay
  • 008
    : Samsung Pay
  • 012
    : Google Pay
  • 014
    : Mastercard credential-on-file (COF) payment network token
  • 015
    : Visa credential-on-file (COF) payment network token
  • 027
    : Click to Pay
  • visacheckout
    :
    Visa Click to Pay
    .
IMPORTANT
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.

REST Example: Authorizing a Customer-Initiated Recurring Payment with Enrollable Network Tokens

Request
{ "processingInformation": { "actionList": [ "TOKEN_CREATE" ], "actionTokenTypes": [ "instrumentIdentifier" ], "commerceIndicator": "internet", "paymentSolution": "001" }, "paymentInformation": { "tokenizedCard": { "number": "4111111111111111", "expirationMonth": "02", "expirationYear": "2025", "transactionType": "1" } }, "orderInformation": { "amountDetails": { "totalAmount": "102.21", "currency": "USD" }, "billTo": { "firstName": "John", "lastName": "Smith", "address1": "123 Happy St", "locality": "Austin", "administrativeArea": "TX", "postalCode": "78757", "country": "US", "email": "", "phoneNumber": "444-4444-4444" } } }
Response to a Successful Request
{ "_links": { "authReversal": { "method": "POST", "href": "/pts/v2/payments/7094060020036241803954/reversals" }, "self": { "method": "GET", "href": "/pts/v2/payments/7094060020036241803954" }, "capture": { "method": "POST", "href": "/pts/v2/payments/7094060020036241803954/captures" } }, "clientReferenceInformation": { "code": "1709406002076" }, "id": "7094060020036241803954", "orderInformation": { "amountDetails": { "authorizedAmount": "102.21", "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": "60616704ST7Q27K2", "status": "AUTHORIZED", "submitTimeUtc": "2024-03-02T19:00:02Z", "tokenInformation": { "instrumentidentifierNew": false, "instrumentIdentifier": { "state": "ACTIVE", "id": "7010000000016241111" } } }