Skip to main content
Optimization Protection

Safetech tokenization

Safetech tokenization is an acquirer-level token, separate from other types of tokens in the payment industry such as network tokens (issued by the card networks) and mobile wallets that use tokens for mobile payments. Safetech tokenization replaces the consumer’s card and account information stored in your system with a value (or token).

Tip

Safetech Page Encryption is not a prerequisite for you to use Safetech tokenization.

How Safetech tokenization works

  1. The consumer enters their payment card information into your system. 
  2. You send a request to tokenize the credentials using the Tokenization API. 
  3. J.P. Morgan sends the Safetech token back to you. 
  4. You store the token in your database for future use. 
  5. When the consumer checks out, you send the Safetech token to J.P. Morgan.
  6. J.P. Morgan translates the token to a PAN. 
  7. J.P. Morgan sends the transaction to the Payment Network with the message transport layer security (TLS)-encrypted. 
  8. The payment network sends the transaction to the card issuer. 
  9. The card issuer sends the authorization response back to the payment network.
  10. The payment network sends the authorization response to J.P. Morgan with the message TLS-encrypted.

The following is a sample request to request a Safetech token:

HTTP Method: POST

Endpoint: /acquirertoken

{
    "accountInformation": {
        "cardNumber": "379296848452209002",
        "cardSource": "KEY_ENTERED"
    }
}

Response:  

{
    "identifier": "5bc5f837-b772-48f3-ad29-32fcdfe368ff",
    "tokenInformation": {
        "acquirerTokenNumber": "379296576034739002"
    },
    "responseStatus": "SUCCESS",
    "responseCode": "ACCEPTED",
    "responseMessage": "Request Accepted"
}

HTTP Method: POST

Endpoint: /payments

The following is a sample request on how to use the Safetech token for a payment:

{
    "amount": 1234,
    "currency": "USD",
    "initiatorType": "CARDHOLDER",
    "accountOnFile": "TO_BE_STORED",
    "merchant": {
        "merchantSoftware": {
            "companyName": "Shipping UAT",
            "productName": "Application Name",
            "version": 1.235
        },
        "merchantCategoryCode": 4899
    },
    "paymentMethodType": {
        "card": {
            "accountNumberType": "SAFETECH_TOKEN",
            "accountNumber": 4112340803104113,
            "expiry": {
                "month": 5,
                "year": 2022
            }
        }
    }
}

Response:

{
    "transactionId": "f9b9a1ec-8842-4a07-952f-21dad4364183",
    "requestId": "274ab31c-55c7-4388-a65c-83c82b20e949",
    "transactionState": "CLOSED",
    "responseStatus": "SUCCESS",
    "responseCode": "APPROVED",
    "responseMessage": "Transaction approved by Issuer",
    "paymentMethodType": {
        "card": {
            "accountNumberType": "SAFETECH_TOKEN",
            "cardType": "VI",
            "cardTypeName": "VISA",
            "maskedAccountNumber": "411234XXXXXX4113",
            "networkResponse": {
                "addressVerificationResult": "NOT_REQUESTED",
                "networkTransactionId": "013291692160631",
                "paymentAccountReference": "Q1J4Z28RKA1EBL470G9XYG90R5D3E",
                "networkResponseCode": "00"
            }
        }
    }
}

Safetech token format

You can tokenize MOD 10 (Luhn) and non-MOD 10 account numbers as a standalone request or as part of a transaction using Safetech Secure Stateless Tokenization (SST2) formats. Contact your account representative or relationship manager to set up this feature.

A few things to keep in mind.

  • The token format is set as transaction division by default during a one-time setup.
    • It cannot be changed dynamically in the transaction message.
    • If you wish to change it, contact your account representative or relationship manager.
  • MOD 10 shows the computed check digit value using Luhn algorithm.

The following table shows what the SST2 formats mean:

SST2 format
SST2 format Description
NI Numeric, Ignore
NP Numeric, Preserve
NC Numeric, Change
AI Alphanumeric, Ignore

The following table lists the various SST2 tokenization formats, along with examples:

SST2 token formats

PAN Digits to Preserve

Alpha Token Indicator

MOD 10 Checksum

SST2 Format

Example Token

First 6 and Last 4

None

Ignore MOD 10

NI64

5454541002111234

First 6

None

Ignore MOD 10

NI60

5454541002112001

Last 4

None

Ignore MOD 10

NI04

1806551002111234

None

None

Ignore MOD 10

NI00

1806551002112001

First 6 and Last 4

None

Preserve MOD 10

NP64

545454******1234

First 6

None

Preserve MOD 10

NP60

545454******2001

Last 4

None

Preserve MOD 10

NP04

1806551001011234

None

None

Preserve MOD 10

NP00

1806551004312001

First 6 and Last 4

None

Change MOD 10

NC64

545454******1234

First 6

None

Change MOD 10

NC60

545454******2001

Last 4

None

Change MOD 10

NC04

1806551002671234

None

None

Change MOD 10

NC00

1806551008782001

First 6 and Last 4

Alpha Token

Ignore MOD 10

AI64

5454541wrtp11234

First 6

Alpha Token

Ignore MOD 10

AI60

5454541wrtp12001

Last 4

Alpha Token

Ignore MOD 10

AI04

1806551wrtp11234

None

Alpha Token

Ignore MOD 10

AI00

1806551wrtp12001

How to request a token
How to manage token state change