API Implementation Guide - V2.1
API Implementation Guide - V2.1
To the maximum extent permitted by law, American Express does not make and hereby disclaims any and all
representations, warranties, and liabilities, whether express or implied, or arising by law or from a course of dealing or
usage of trade, including implied warranties of merchantability or fitness for a particular purpose or any warranty of
title or non-infringement. Each Participant must comply with laws and regulations applicable to the subject matter of
this document. These laws and regulations can differ from country to country, and each Participant is solely
responsible for being aware and adhering to them in all countries where applicable.
The policies, procedures, and rules in this manual are subject to change from time to time by American Express
Global Network Services.
All Rights Reserved. © 2021 American Express Travel Related Services Co., Inc.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 2
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Table of Contents
1 Introduction.......................................................................................................................................... 10
Purpose................................................................................................................................................... 10
How to Use this Document.......................................................................................................................... 10
Ref erence Documents................................................................................................................................ 10
2 Application Programming Interface Design Philosophy........................................................................... 11
Endpoint Structure ................................................................................................................................ 11
3 Application Programming Interface (API) Definitions ............................................................................... 12
Request Common Elements........................................................................................................................ 12
Response Common Elements ..................................................................................................................... 12
HTTP Status Codes for API Responses ........................................................................................................ 13
Service Level Agreements, Connection, Timeout, and Retries .......................................................................... 13
Additional Considerations and Requirements ................................................................................................. 13
4 Network Provisioning Application Programming Interfaces ..................................................................... 14
Communication Sequence ..................................................................................................................... 15
Account Eligibility Check API....................................................................................................................... 16
Endpoint .............................................................................................................................................. 16
Request Header ................................................................................................................................... 16
Request Body ...................................................................................................................................... 17
Plain Account Data JSON Fields ............................................................................................................. 17
Risk Assessment Data........................................................................................................................... 17
Device Data ......................................................................................................................................... 18
Response Header................................................................................................................................. 18
Response Body .................................................................................................................................... 18
Ineligibility Reason Codes ...................................................................................................................... 19
Account Metadata................................................................................................................................. 19
Market................................................................................................................................................. 20
Response Status Codes ........................................................................................................................ 20
Account Eligibility Check API Request and Response Example ........................................................................ 22
Risk Assessment API................................................................................................................................. 23
Endpoint .............................................................................................................................................. 23
Request Header ................................................................................................................................... 23
Request Body ...................................................................................................................................... 23
Plain Account Data JSON Fields ............................................................................................................. 24
Risk Assessment Data........................................................................................................................... 24
Response Header................................................................................................................................. 28
Response Body .................................................................................................................................... 28
Response Codes .................................................................................................................................. 29
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 3
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Account Metadata................................................................................................................................. 29
Risk Assessment API Request and Response Examples................................................................................. 30
5 One-Time Passcode Services ................................................................................................................ 32
One-Time Passcode Management Services .................................................................................................. 34
Get Tenured Channels API ......................................................................................................................... 34
Get Tenured Channels Network Validation .................................................................................................... 34
Endpoint .............................................................................................................................................. 34
Request Header ................................................................................................................................... 34
Request Body ...................................................................................................................................... 34
Plain Account Data JSON Fields ............................................................................................................. 35
Device Data ......................................................................................................................................... 35
Response Header................................................................................................................................. 35
Response Body .................................................................................................................................... 36
Communication Channels ...................................................................................................................... 36
Response Codes .................................................................................................................................. 36
Get Tenured Channels API Request and Response Example........................................................................... 37
Deliver Security Challenge API .................................................................................................................... 38
Endpoint .............................................................................................................................................. 38
Request Header ................................................................................................................................... 38
Request Body ...................................................................................................................................... 38
Plain Account Data JSON Fields ............................................................................................................. 38
Device Data ......................................................................................................................................... 39
Response Header................................................................................................................................. 39
Response Body .................................................................................................................................... 39
Response Codes .................................................................................................................................. 40
Deliver Security Challenge API Request and Response Example ..................................................................... 40
6 Issuer Notification Application Programming Interface ............................................................................ 41
Endpoint .............................................................................................................................................. 41
Request Header ................................................................................................................................... 41
Request Body ...................................................................................................................................... 41
Plain Account Data JSON Fields ............................................................................................................. 42
Token Data.......................................................................................................................................... 42
Device Data ......................................................................................................................................... 43
Event Data........................................................................................................................................... 44
Event Status Codes............................................................................................................................... 44
Response Header................................................................................................................................. 44
Response Status Codes ........................................................................................................................ 45
Issuer Notification API Request and Response Example ................................................................................. 46
7 Account Life Cycle Management Application Programming Interfaces ..................................................... 47
Account Update API .................................................................................................................................. 48
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 4
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Endpoint .............................................................................................................................................. 48
Request Header ................................................................................................................................... 48
Plain Account Data JSON Fields ............................................................................................................. 48
Metadata ............................................................................................................................................. 49
Response Header................................................................................................................................. 49
Response Body .................................................................................................................................... 49
Status Code and Status Code Type......................................................................................................... 49
Account Update API Request and Response Example .................................................................................... 50
Account Update API at GUID Level Request and Response Example ............................................................... 51
Account Unlock API ................................................................................................................................... 52
Endpoint .............................................................................................................................................. 52
Request Header ................................................................................................................................... 52
Request Body ...................................................................................................................................... 52
Plain Account Data JSON Fields ............................................................................................................. 53
Response Header................................................................................................................................. 53
Response Body .................................................................................................................................... 53
Status Code and Status Code Type......................................................................................................... 53
Account Unlock API Request and Response Example .................................................................................... 54
Account Suspend API ................................................................................................................................ 55
Endpoint .............................................................................................................................................. 55
Request Header ................................................................................................................................... 55
Request Body ...................................................................................................................................... 55
Plain Account Data JSON Fields ............................................................................................................. 55
Response Header................................................................................................................................. 56
Response Body .................................................................................................................................... 56
Status Code and Status Code Type......................................................................................................... 56
Account Suspend API Request and Response Example.................................................................................. 57
Account Resume API ................................................................................................................................. 58
Endpoint .............................................................................................................................................. 58
Request Header ................................................................................................................................... 58
Request Body ...................................................................................................................................... 58
Request Data ....................................................................................................................................... 58
Response Header................................................................................................................................. 59
Response Body .................................................................................................................................... 59
Status Code and Status Code Type......................................................................................................... 59
Account Resume API Request and Response Example .................................................................................. 60
Account Delete API.................................................................................................................................... 61
Endpoint .............................................................................................................................................. 61
Request Header ................................................................................................................................... 61
Request Body ...................................................................................................................................... 61
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 5
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Request Data ....................................................................................................................................... 61
Response Header................................................................................................................................. 62
Response Body .................................................................................................................................... 62
Status Code and Status Code Type......................................................................................................... 62
Account Delete API Request and Response Example ..................................................................................... 63
8 Token Life Cycle Management Application Programming Interfaces......................................................... 64
Token Suspend API................................................................................................................................... 64
Endpoint .............................................................................................................................................. 64
Request Header ................................................................................................................................... 64
Request Body ...................................................................................................................................... 64
Request Data ....................................................................................................................................... 64
Response Header................................................................................................................................. 65
Response Body .................................................................................................................................... 65
Status Code and Status Code Type......................................................................................................... 65
Token Suspend API Request and Response Example .................................................................................... 66
Token Resume API.................................................................................................................................... 67
Endpoint .............................................................................................................................................. 67
Request Header ................................................................................................................................... 67
Request Body ...................................................................................................................................... 67
Request Data ....................................................................................................................................... 67
Response Header................................................................................................................................. 67
Response Body .................................................................................................................................... 68
Status Code and Status Code Type......................................................................................................... 68
Token Resume API Request and Response Example ..................................................................................... 69
Token Delete API ...................................................................................................................................... 70
Endpoint .............................................................................................................................................. 70
Request Header ................................................................................................................................... 70
Request Body ...................................................................................................................................... 70
Request Data ....................................................................................................................................... 70
Response Header................................................................................................................................. 70
Response Body .................................................................................................................................... 71
Status Code and Status Code Type......................................................................................................... 71
Token Delete API Request and Response Example........................................................................................ 72
9 Servicing Application Programming Interfaces ....................................................................................... 73
Token History API ..................................................................................................................................... 73
Endpoint .............................................................................................................................................. 73
Time Outs............................................................................................................................................ 73
Request Header ................................................................................................................................... 73
Request Body ...................................................................................................................................... 73
Plain Account Data JSON Fields ............................................................................................................. 74
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 6
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Credit Card .......................................................................................................................................... 74
Search Criteria ..................................................................................................................................... 75
Response Header................................................................................................................................. 75
Common Attributes ............................................................................................................................... 75
Status Code and Status Code Type......................................................................................................... 75
Links ................................................................................................................................................... 76
Token History Scenarios ........................................................................................................................ 76
Response Body .................................................................................................................................... 77
Response Account Information ............................................................................................................... 77
Account References .............................................................................................................................. 77
Account Metadata................................................................................................................................. 78
Token Requester Information.................................................................................................................. 78
Token Information................................................................................................................................. 79
Status ................................................................................................................................................. 79
Token Metadata.................................................................................................................................... 80
Form Factor Data.................................................................................................................................. 80
Token Inquiry API using Card Key Identif ier Example Request and Response .................................................... 82
Event History API Request and Response Example........................................................................................ 85
10 Bank App Provisioning ........................................................................................................................ 88
IssuerData Generation ............................................................................................................................... 89
IssuerData ........................................................................................................................................... 89
AccountData ........................................................................................................................................ 89
IssuerSignatureData Scheme...................................................................................................................... 90
ContentInfo .......................................................................................................................................... 90
EnvelopeData ...................................................................................................................................... 90
SymmetricDataBean ............................................................................................................................. 91
EncryptedDataContentInfo ..................................................................................................................... 92
Java Code for IssuerData Generation Example.............................................................................................. 93
Example for JWE Encryption and JWE Decryption of IssuerData Object ............................................................ 96
11 Security and Encryption ...................................................................................................................... 97
Transport Layer Security ............................................................................................................................ 97
Two-way Transport Layer Security........................................................................................................... 97
Secure Socket Layer Certificate Exchange ............................................................................................... 97
Data Security ............................................................................................................................................ 97
Data Security for Bank App Provisioning................................................................................................... 97
JSON Web Encryption Key Exchange...................................................................................................... 98
Data Encryption.................................................................................................................................... 98
JSON Web Encryption Implementation Example ............................................................................................ 99
12 Glossary of Terms..............................................................................................................................100
13 Acronyms..........................................................................................................................................103
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 7
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Table of Figures
Figure 1: Communication Sequence............................................................................................................. 15
Figure 2: One-Time Passcode Flow ............................................................................................................. 33
Figure 3: Life Cycle Management Event Flows............................................................................................... 47
Figure 4: Bank App Provisioning Flow........................................................................................................... 88
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 8
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Version History
Version Description/Changes/Notes Date Submitted
1.0 First version of the API Issuer Implementation Guide November 2019
2.0 Updated version with corrections January 2021
2.1 March 2021
• Added new Bank App Provisioning chapter
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 9
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
1 Introduction
The Application Programming Interface (API) Implementation Guide provides Issuers with the information required to
enable payments using a mobile device over Near Field Communication (NFC) utilizing a Secure Element or Host
Card Emulation (HCE). In order to minimize the direct integration points, Wallet Providers will integrate with American
Express and American Express will act as an aggregator for Issuers.
This guide also outlines the requirements and guidelines to use the Issuer Bank App Provisioning feature in HCE
Android Pay Wallets. Issuers using this feature will be able to initiate a Tokenization request through their banking
mobile app. For more information on the components required to use this feature, see Bank App Provisioning chapter.
For inf ormation on Apple Pay In-App Provisioning feature, contact your American Express Global Network (AEGN)
representative.
Purpose
This document describes and defines the APIs used for communication between American Express and Issuers.
Words that are capitalized have specific meaning in the context of this document and the BOP. Refer to the
Def initions and Acronyms section in this document or the BOP for any word or term in question.
Additional information can be found in the reference documents listed in the following section.
Reference Documents
This document is intended to be used in conjunction with:
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 10
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
2 Application Programming Interface Design Philosophy
American Express has defined a set of Application Programming Interfaces to create a standard set of communication
protocols between Wallet Providers, American Express Network, Issuers, and Cardmembers.
• Services from the Issuer will be consumed as Representational State Transfer (REST) /Hyper Text Transfer
Protocol (HTTP) with 2-way Transport Layer Security (TLS).
• Web service requests will use JSON Web Encryption (JWE) for any Personally Identifiable Information (PII)
data elements. The related details are covered in the individual API specifications.
• All requests generated from the Network and sent to the Issuer will have unique tracking ID headers which
can be used for tracking errors.
• Nonf unctional requirements, including availability and response time, will be defined for each API interaction.
• Issuer services can maintain state and can retry different interactions with their downstream systems within
the agreed upon response time.
• API interactions between the Network and Issuer will be via HTTPS Communication protocol.
• Issuer Systems shall be highly available (99.9% uptime for Network interaction).
Endpoint Structure
The entire API outlined in the document can be accessed with the following URI structure.
protocol://host:port/context/version/apiname
• protocol – https
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 11
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
3 Application Programming Interface (API) Definitions
The tables shown below list the common elements across the APIs in this guide. These elements are included where
applicable for each API included in this document.
NOTE: Components defined in the Bank App Provisioning chapter do not follow this API definition.
token_requestor_id String (11) Yes Identif ier for the Token Requestor.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 12
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
HTTP Status Codes for API Responses
• The API version can be encoded in the URL to allow routing to the appropriate service version.
• UTF-8 encoding should be used for every string within the API.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 13
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
4 Network Provisioning Application Programming
Interfaces
As part of the provisioning process, the Wallet Provider will initiate a check eligibility call to the Network. This call will
contain a list of Primary Account Numbers (PAN) linked to a user. The Network will complete a status check for each
Issuer card in the Check Eligibility request. All cards with a negative status will be marked as ineligible. The Network
will send the list of ineligible/negative PANs along with the corresponding reason codes to the Wallet Provider.
Once eligibility is confirmed, Cardmembers enter requested card details including the 4-digit Card Security Code for
the card and accept the Issuer Terms and Conditions (T&Cs) to initiate provisioning.
NOTE: For Card-on-File Token provisioning, the wallet initiates the eligibility check behind the scenes with the details
of the card on file.
The Wallet Provider sends the Provisioning request along with the PAN and Card Security Code that the Cardmember
has added to the wallet. As part of the Provisioning request, the Network sends a Pseudo Auth to the Issuer with the
Card details (PAN, Name on Card, CSC, Expiry, Wallet Provider Score, etc.). The Issuer is expected to do a f raud/risk
assessment and provide a risk score for the Card as well as a decision. If the Issuer decision is positive, the Network
will allocate a Token for the PAN and generate the associated Personalization Script (Perso Script). The Network will
link/activate the Token and once the Perso Script is delivered to the Wallet Provider and the Token has been
provisioned onto the device, the Issuer will be sent a notification from the Network. The provisioning status notification
can be sent over ISO or API.
NOTE: The Issuer Notification API call is relevant only when the Issuer prefers Post Provisioning Notification (PPN)
over API.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 14
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Communication Sequence
The f ollowing diagram depicts the communication sequence for provisioning between the Wallet Provider, Network,
and Issuer.
Check Eligibility
Provisioning Request
(PAN, Auth Token, CID, Wallet Provider Score
Issuer
Verification
ISO 1100 Message (PAN, Issuer Score)
Allocate Token
Perso Script
Validate Provisioning
ISO Messages
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 15
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Account Eligibility Check API
The Account Eligibility Check API takes a single JWE encrypted Funding Primary Account Number (FPAN) in the
request. The purpose of the API is to determine FPAN eligibility and perform a fraud check to establish the eligibility of
all cards sent in the request. All parameters provided by the Wallet Provider as part of the check card Call will be
passed as part of this Call to the Issuer.
The Network validates the following business rules before sending the request to the Issuer.
• The Card has not been provisioned for the given device.
NOTE: The account eligibility check call to Issuer is optional. Based upon the Issuer preference, if opted, the Network
may complete account eligibility check as an On-Behalf-Of (OBO) service using exception data provided by the
Issuer.
Endpoint
Issuer to provide endpoint for Network to consume.
NOTE: Card-on-File does not utilize the Account Eligibility Check API. All information in this API is part of Risk
Assessment.
Request Header
token_requestor_id String (11) Yes Identif ier for the Token Requestor.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 16
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Request Body
account_data{}
risk_assessment_data{}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 17
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
• other – For f uture use cases
• blank
Device Data
device_data{}
Response Header
Response Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 18
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Indicates the market/region where the Card was
market{} Object Yes
issued.
ineligibility_reason()
106 Card has not been activated, replaced, or renewed card has not been activated.
Account Metadata
account_metadata{}
Possible options:
• Credit
• Prepaid
product_type String (64) Yes
• Loyalty
• Corporate
• Small Business
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 19
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Funding account PAN sequence.
pan_sequence String (2) Yes
EXAMPLES: 00 (Default Value), 01, 02, 03.
Market
market{}
status_code()
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 20
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
5211 Card_product_not_supported 200
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 21
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Account Eligibility Check API Request and Response Example
Request
Header
tracking_id : "uniqueconversationId1654"
Content-Type : application/json
Body
{"encrypted_account_data":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1
c2VySWQiOiJiMDhmODZhZi0zNWRhLTQ4ZjItOGZhYi1jZWYzOTA0NjYwYm QifQ. -
xN_h82PHVTCMA9vdoHrcZxH-x5mb11y1537t3rGzcM"}
Response
Header
tracking_id : "uniqueconversationId1654"
Body
{
"status_code" : 0000,
"status_message" : "Success",
"isEligible" : true,
"ineligibility_reason" : "",
"market" : {
"country_code" : "US",
"region_name" : "XYZ",
"locale" : "en_US" } ,
"account_metadata" : {
"expiry_date" : "2018-12-30",
"product_type" : "XYZ",
"product_name" : "XYZ",
“pan_sequence” : “01”
}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 22
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Risk Assessment API
The Risk Assessment API validates an eligible FPAN requesting to be Tokenized for transaction or wallet use. This
call will contain the 4CID entered by the Cardmember and will require Issuer verification and fraud/risk scoring.
The network will validate the following business rules before sending the request to the Issuer.
1. The Wallet status for the given device is active. The device has not been reported as stolen or fraudulent.
NOTE: Network verification of device fraud only occurs if Issuer opts for partial ISO provisioning chec k.
2. The Card has not been provisioned for the given device.
3. The Account Eligibility Check has been performed within six hours.
Endpoint
Issuer provides endpoint for Network to consume.
Request Header
token_requestor_id String (11) Yes Identif ier for the Token Requestor.
Request Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 23
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Plain Account Data JSON Fields
account_data{}
security_code String (4) Yes The 4-digit CSC for the account.
expiry_date String (4) Yes Expiry date of the Card in MMYY format.
risk_assessment_data{}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 24
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Risk Score from Wallet Provider.
Possible values per the provisioning decision
include:
• G (green) – Approval
provider_riskscore String (64) Optional • Y (yellow)– Additional authentication
required f rom the Cardmember. EXAMPLE:
One-Time Password (OTP)
• R (red) – Decline
provider_riskscore_version String (64) Optional Risk Score version from the Wallet Provider.
dpan_counts String (2) Optional The number of cards present on the device.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 25
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Version of the Terms and Conditions accepted by
terms_and_cond_version String (64) Optional
the Cardmember.
f irst_name String (64) Optional The f irst name of the wallet user.
middle_name String (64) Optional The middle name of the wallet user.
last_name String (64) Optional The last name of the wallet user.
address_region_cd String (64) Optional The region, state, or territory of the Cardmember.
address_iso_ctry_cd String (3) Optional The ISO country code of the Cardmember.
postal_cd String (64) Optional The postal code or zip code of the Cardmember.
email_tenure String (4) Optional The age of the user email address.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 26
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
This is the identifier of the Wallet initiating the
wallet_identifier String (64) Optional request. NOTE: This is only applicable for HCE
wallets.
os_platform String (64) Optional The Operating System (OS) platform / version.
country_on_accountId String (64) Optional The country code of the wallet account.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 27
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Response Header
Response Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 28
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Response Codes
Account Metadata
account_metadata{}
display_account_number String (5) Yes The last 5 digits of the account number.
expiry_date String (10) Yes The Card expiry date in yyyy-mm-dd format.
String
product_long_description Yes The product long description.
(128)
The Card product code used to identify card
product_name String (12) Yes
assets.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 29
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Risk Assessment API Request and Response Examples
Request
Header
tracking_id : "uniqueconversationId1654"
token_requestor_id : "30010030273"
Content-Type : application/json
Body
{"encrypted_account_data":"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOiJiMDhmODZhZi0
zNWRhLTQ4ZjItOGZhYi1jZWYzOTA0NjYwYmQifQ. -xN_h82PHVTCMA9vdoHrcZxH-
x5mb11y1537t3rGzcM",
"risk_assessment_data" : {
"provider_fpan_source" : "USERINPUT",
"expiry_date" : "1224",
"provider_riskscore" : "G",
"device_type" : "1",
"device_id_score" : "3",
"last_name" : "Test",
"device_name" : "iPhone",
"provider_riskscore_version" : "0001.0",
"source_ip" : "126.133.4.97",
"device_language_code" : "en",
"provider_risk_rsncds" : "03,04",
"phone_number" : "09043173104",
"device_latitude" : "+35.25",
"device_longitude" : "+140.27" }
}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 30
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Response – Green
Header
tracking_id : "uniqueconversationId1654"
Body
{ "status_code" : 0000,
"status_message" : "Success",
Response – Yellow
Header
tracking_id : "uniqueconversationId1654"
Body
{ "status_code" : 0000,
"status_message" : "Success",
Header
tracking_id : "uniqueconversationId1654"
Body
{ "status_code" : 0000,
"status_message" : "Success",
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 31
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
5 One-Time Passcode Services
As part of the Risk Assessment API request, the Issuer can set the Risk Score of a PAN to Pending Authentication.
The Network allocates a Token, but the Token will not be linked or activated. When the Cardmember selects to
activate the Token, the Wallet Provider sends a request to the Network to display the list of Tenured Channels for the
Cardmember.
The Network relays the request to the Issuer and the Issuer provides the list of registered communication channels
which will be displayed to the Cardmember. The Cardmember selects the preferred communication option. Upon
receiving the preferred Communication Channel, the Network generates the One-Time Passcode (OTP) and sends
the generated OTP and the preferred Communication Channel to the Issuer. The Issuer delivers the OTP to the
Cardmember, and the Cardmember enters the OTP into the Wallet. If the Cardmember enters the wrong OTP three
times, the account will be locked and the Cardmember cannot enter the password for the fourth time and will be
directed to contact Issuer’s customer support. The Wallet Provider sends the OTP to the Network for verification.
NOTE: There is no OTP f or Card-on-File Tokenization.
If an OTP is generated to the Cardmember more than ten times within the 24-hour period, they will be directed to
contact Issuer’s customer support upon the eleventh time and the Issuer should not send the SMS tenure channel.
Once the OTP is verified by the Network, the Network activates the Token and sends a notification to the Issuer upon
successful activation.
The Issuer also has the ability to request an OTP override to the Network after having completed the user verification.
In this scenario, the Token will be activated and linked without OTP verification.
NOTE: If more than six hours passes between the initial Issuer Risk Scoring (Provisioning) and the OTP flow, the
Network re-runs the Card Eligibility check. If the Card has been included in the Exception File, then OTP verification
will not proceed. The OTP validity is 10 mins and number of OTP retries is 3.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 32
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Figure 2: One-Time Passcode Flow
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 33
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
One-Time Passcode Management Services
The One-Time Passcode service is consumed by the American Express Network. It is used to fetch various registered
communication channels for a PAN from an Issuer and return a One-Time Passcode security challenge to the Issuer.
Endpoint
Issuer to provide endpoint for Network to consume.
This API retrieves the list of all Tenured Channels linked to an account.
Request Header
token_requestor_id String (11) Yes Identif ier for the Token Requestor.
Request Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 34
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Plain Account Data JSON Fields
account_data{}
Device Data
device_data{}
Response Header
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 35
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Response Body
Communication Channels
communication_channels{}
display_value String (64) Yes The channel value displayed to the Cardmember.
Response Codes
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 36
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
7511 no_tenured_channels_available 200
Header
tracking_id : "uniqueconversationId1654"
token_requestor_id : "12324343"
Content-Type : application/json
Body
{
"encrypted_account_data" : "eyJraWQiOiIwMSIsImVuYyI6IkEyNTZHQ00iLCJhbGciOiJBMjU2S1cifQ.YITq
nQ9aXnunzriU89vAS882uqJx-
VnRDT0Gjrx3dKSHN9z9s2CNw.dArkM2uU7ZMAnwcL.zd9Xo6HgExW9fjFhDKtSqWS6 975U-
XZKcw.27Fn16MnF8LSEECAdCsj4A"
}
Response
Header
tracking_id : "uniqueconversationId1654"
Body
{
"status_code" : "0000",
"status_message" : "Success",
"communication_channels" : [
{ "identifier" : "+GFBydpLsU+hC7Hr389Uuw==",
"type" : "SMS",
"display_value" : "xxx-xx9-5103" },
{ "identifier" : "YGFBydpLsU+hC7Hr389Uuw==",
"type" : "EMAIL",
"display_value" : "d***********[email protected]"
}
] }
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 37
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Deliver Security Challenge API
This API delivers the One-Time Passcode generated by the Network to the Communication Channel selected by the
Cardmember.
Endpoint
Issuer to provide endpoint for Network to consume.
Request Header
token_requestor_id String (11) Yes Identif ier for the Token Requestor.
Request Body
account_data{}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 38
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Device Data
device_data{}
Response Header
Response Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 39
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Response Codes
Header
tracking_id : "uniqueconversationId1654"
token_requestor_id : "12324343"
Content-Type : application/json
Body
{
"encrypted_account_data" : "eyJraWQiOiIwMSIsImVuYyI6IkEyNTZHQ00iLCJhbGciOiJBMjU2S1cifQ.YITq
nQ9aXnunzriU89vAS882uqJx-
VnRDT0Gjrx3dKSHN9z9s2CNw.dArkM2uU7ZMAnwcL.zd9Xo6HgExW9fjFhDKtSqWS6 975U-
XZKcw.27Fn16MnF8LSEECAdCsj4A" "verification_code" : "123456""
}
Response
Header
tracking_id : "uniqueconversationId1654"
Body
{
"status_code" : 0000,
"status_message" : "Success"
}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 40
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
6 Issuer Notification Application Programming Interface
During the Check Eligibility Call and after the Network performs the Exception File check, the Network will send a
notif ication with the list of negative PANs along with the reason code, provided.
NOTE: This is applicable only if the Issuer opts for On-Behalf-Of (OBO) account eligibility check service.
Once the Card is added in the Wallet for provisioning, a change of status notification is sent to the Issuer through the
notif ication service.
NOTE: The Network will notify the Issuer of all Token status changes. These changes can include Wallet Provider
initiated Life Cycle Management (LCM) events (e.g., Token suspend, resume, unlink).
The Issuer Notification API notifies the Issuer of Token provisioning and LCM events.
Endpoint
POST /tokens/notification
Request Header
token_requestor_id String (11) Yes Identif ier for the Token Requestor.
Request Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 41
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
The possible values include:
• provision – Provisioning Event (Not applicable
f or provisioning over ISO)
• pendingauth – Yellow Flow notification
NOTE: Not an available notification for Card-
notif ication_type String (128) Yes
on-File Tokenization.
• suspend – Suspend Event
• resume – Resume Event
• delete – Cancel / Delete Event
• accountupdate - Account Update Event
Field containing details of the event for which
event_data{} String (1024) Yes
notif ication is initiated.
account_data{}
Token Data
token_data{}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 42
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Token Metadata
token_metadata{}
expiry_date String (10) Yes The Token expiry date in yyyy-mm-dd format.
Device Data
device_data{}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 43
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
device_manufacturer String (128) Optional The name of the device manufacturer.
Event Data
event_data{}
Response Header
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 44
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Response Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 45
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Issuer Notification API Request and Response Example
Request
Header
tracking_id : "uniqueconversationId1654"
Content-Type : application/json
Body
{"encrypted_account_data" : "eyJraWQiOiIwMSIsImVuYyI6IkEyNTZHQ00iLCJhbGciOiJBMjU2S1cifQ.YITq
nQ9aXnunzriU89vAS882uqJx-
VnRDT0Gjrx3dKSHN9z9s2CNw.dArkM2uU7ZMAnwcL.zd9Xo6HgExW9fjFhDKtSqWS6 975U-
XZKcw.27Fn16MnF8LSEECAdCsj4A",
"token_metadata" : {
"expiry_date" : "2025-10-01",
"status" : "Active" },
"notification_type" : "delete",
"device_data" : {
"device_id" : "04B1D0FD61C25F02B74628A89C78BE7DCB7AFFFFFFFFFFFC",
"device_type" : "phone"
},
"event_data" : {
"event_time" : "2018-06-29T09:43:58",
"event_originator" : "Wallet",
"status" : "0000"
}}
Response
{
"status_code" : 0000,
"status_message" : "Success"
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 46
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
7 Account Life Cycle Management Application
Programming Interfaces
The American Express Network exposes operations that can be consumed by the Issuer to communicate account
related lif e cycle events of virtual or plastic cards. The life cycle events can be initiated by an Issuer or the
Cardmember and include events that affects the virtual card state. The account life cycle events include update,
cancel, resume, and suspend.
The lif e cycle events for an account or token can be triggered by an Issuer in two different ways:
• Direct access of the “endpoint URL” of the API included in the individual APIs.
• Issuer triggers the Token History API and then uses the HATOES link. Examples can be found in the Token
History Scenarios section.
NOTE: When a HATOES link is used to trigger any LCM event API, the body in the API message could be left blank.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 47
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Account Update API
The Account Update API updates account details in the event the plastic card is replaced or there is a product
transf er.
Endpoint
PUT /payments/digital/{version}/provisionings/accounts/
Request Header
Request Body
account_data{}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 48
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Metadata
metadata_update{}
Response Header
Response Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 49
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Account Update API Request and Response Example
Request
URL: https://dplcmupdatedev.aexp.com/payments/digital/v1/provisionings/accounts
Method: PUT
Header:
trackingId: 214214
developer_app_name XXXXX5750GlobalAmexMYCA
SSL_CN: WSP.E1.Signing.aexp.com
org_id: "001"
body
{
"encrypted_account_data": "eyJraWQiOiJ0ZXN0X2Flc19rZXkiLCJlbmMiOiJBMjU2R0NNIiwiYWx
nIjoiQTI1NktXIn0._3SMrdNyAa1AjGtGqfOWTMxQG73vrAZSqUMk
ob6aAfkhOI1VCGkg1g.6XYwKePwMFGg3w6m.sAYe349_HDsrduOXRBNqRRnTSZGqpu1Wy0c4x_V709bvqTG_1
7uU CBsOE7JxC89rTRL5H6_2DPDg9LnhG81V_Jm8JfirgKnWOoBiwIO0iz ROGw.VzClxIlXztzWdGDPF62FxA",
"encrypted_account_data_update":"eyJraWQiOiJ0ZXN0X2Flc19rZ
XkiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.LFNGmVWy
PIr0y_7Kh67BIIpAF6cGfDnBl9scUT3VcjQkOYLOyEHaUg.t8PixGX5D QmJOpVA.BzR3c-qgebd8LH0_gheLzsOc8-
4mV8p73TlFAXwsycqclgahFTLZbJBrCdG0AuxOtbrfwywQ5zmo1KjGwZS1YojKYoisBZwg6GEIp12Zosk4I.UeNZ9B
bvcBr---PMi-vLgA",
"metadata_update": null
Response:
{
“status_code_type”:“UpdateSoftcard in progress”,“
status_code”:“success”
}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 50
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Account Update API at GUID Level Request and Response Example
GUID is returned in the response to Token History API as HATEOAS links for account level operations. For details,
ref er to the Token History Scenarios in the Token History API section of this guide.
Request
Method: PUT
Header:
tracking_id Test0001
Content-Type application/json
body:
{
"encrypted_account_data_update": "eyJraWQiOiJ0ZXN0X2Flc19rZXkiLCJlbmMiOiJBMjU2R0NNIiwiYWx
nIjoiQTI1NktXIn0._3SMrdNyAa1AjGtGqfOWTMxQG73vrAZSqUMkob6aAfkhOI1VCGkg1g.6XYwKePwMFGg3w6m.
sAYe349_HDsrduOXRBNqRRnTSZGqpu1Wy0c4x_V709bvqTG_17uU
CBsOE7JxC89rTRL5H6_2DPDg9LnhG81V_Jm8JfirgKnWOoBiwIO0iz ROGw.VzClxIlXztzWdGDPF62FxA"
Response:
“status_code_type”:“UpdateSoftcard in progress”,
“status_code”:“success”
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 51
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Account Unlock API
The Account Unlock API is used to remove an account level lock established as a result of a provisioning activity.
Endpoint
DELETE /payments/digital/{version}/provisionings/accounts/{GUID}/freeze?unlock=true
Request Header
org_ID String (64) Conditional This is not required for GNS issuers.
Request Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 52
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Plain Account Data JSON Fields
account_data{}
Response Header
Response Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 53
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Account Unlock API Request and Response Example
Request
URL: /payments/digital/{version}/provisionings/accounts/freeze?unlock=true
Method: DELETE
Header:
trackingId: 214214
org_id: "XXX"
body:
"encrypted_account_data": "eyJraWQiOiJ0ZXN0X2Flc19rZXkiLCJlbmMiOiJBMjU2R0NNIiwiYWx
nIjoiQTI1NktXIn0._3SMrdNyAa1AjGtGqfOWTMxQG73vrAZSqUMk
ob6aAfkhOI1VCGkg1g.6XYwKePwMFGg3w6m.sAYe349_HDsrduOXRBNqRRnTSZGqpu1Wy0c4x_V709bvqTG_1
7uU CBsOE7JxC89rTRL5H6_2DPDg9LnhG81V_Jm8JfirgKnWOoBiwIO0iz ROGw.VzClxIlXztzWdGDPF62FxA"
Response:
{
"status_code_type":"",
"status_code":""
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 54
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Account Suspend API
The Account Suspend API is used by an Issuer when all Tokens linked to an account are required to be suspended.
This might happen if fraud is suspected on the account and the Issuer wants to suspend all the Tokens linked to that
account.
Endpoint
POST /payments/digital/{version]/provisionings/accounts/freeze
Request Header
Request Body
account_data{}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 55
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Response Header
Response Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 56
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Account Suspend API Request and Response Example
Request
Method: PUT
Header:
tracking_id Test0001
Content-Type application/json
body:
"encrypted_account_data_update": "eyJraWQiOiJ0ZXN0X2Flc19rZXkiLCJlbmMiOiJBMjU2R0NNIiwiYWx
nIjoiQTI1NktXIn0._3SMrdNyAa1AjGtGqfOWTMxQG73vrAZSqUMkob6aAfkhOI1VCGkg1g.6XYwKePwMFGg3w6m.
sAYe349_HDsrduOXRBNqRRnTSZGqpu1Wy0c4x_V709bvqTG_17uU
CBsOE7JxC89rTRL5H6_2DPDg9LnhG81V_Jm8JfirgKnWOoBiwIO0iz ROGw.VzClxIlXztzWdGDPF62FxA"
Response:
“status_code_type”:“UpdateSoftcard in progress”,
“status_code”:“success”
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 57
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Account Resume API
The Account Resume API reactivates a suspended Token at the account level. This API is used by Issuers to
reactivate previously suspended Tokens as needed.
Endpoint
DELETE /payments/digital/{version}/provisionings/accounts/freeze
Request Header
Request Body
Request Data
Plain Account Data JSON Fields
account_data{}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 58
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Response Header
Response Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 59
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Account Resume API Request and Response Example
Request
Method: PUT
Header:
tracking_id Test0001
Content-Type application/json
body:
{
"encrypted_account_data_update": "eyJraWQiOiJ0ZXN0X2Flc19rZXkiLCJlbmMiOiJBMjU2R0NNIiwiYWx
nIjoiQTI1NktXIn0._3SMrdNyAa1AjGtGqfOWTMxQG73vrAZSqUMkob6aAfkhOI1VCGkg1g.6XYwKePwMFGg3w6m.
sAYe349_HDsrduOXRBNqRRnTSZGqpu1Wy0c4x_V709bvqTG_17uU
CBsOE7JxC89rTRL5H6_2DPDg9LnhG81V_Jm8JfirgKnWOoBiwIO0iz ROGw.VzClxIlXztzWdGDPF62FxA"
}
Response:
“status_code_type”:“UpdateSoftcard in progress”,
“status_code”:“success”
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 60
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Account Delete API
The Account Delete API deletes all linked Tokens at an account level.
Endpoint
DELETE /payments/digital/{version}/provisionings/accounts/
Request Header
Request Body
Request Data
Plain Account Data JSON Fields
account_data{}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 61
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Response Header
Response Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 62
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Account Delete API Request and Response Example
Request
Method: PUT
Header:
tracking_id Test0001
Content-Type application/json
body:
{
"encrypted_account_data_update": "eyJraWQiOiJ0ZXN0X2Flc19rZXkiLCJlbmMiOiJBMjU2R0NNIiwiYWx
nIjoiQTI1NktXIn0._3SMrdNyAa1AjGtGqfOWTMxQG73vrAZSqUMkob6aAfkhOI1VCGkg1g.6XYwKePwMFGg3w6m.
sAYe349_HDsrduOXRBNqRRnTSZGqpu1Wy0c4x_V709bvqTG_17uU
CBsOE7JxC89rTRL5H6_2DPDg9LnhG81V_Jm8JfirgKnWOoBiwIO0iz ROGw.VzClxIlXztzWdGDPF62FxA"
}
Response:
“status_code_type”:“UpdateSoftcard in progress”,
“status_code”:“success”
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 63
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
8 Token Life Cycle Management Application Programming
Interfaces
The American Express Network exposes operations that can be consumed by the Issuer to communicate Token
related lif e cycle events. The lif e cycle events can be initiated by an Issuer and include events that affects the status of
a Token. The Token lif e cycle events include suspend, resume, and delete.
Endpoint
POST /payments/digital/{version]/provisionings/tokens/freeze
Request Header
Name
Type Mandatory Description
Request Body
Request Data
token_data{}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 64
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Response Header
Response Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 65
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Token Suspend API Request and Response Example
Sample Request Token:
POST
/payments/digital/v1/provisionings/tokens/freeze?sandbox=true HTTP/1.1
Host: dpsandboxupdate-dev.aexp.com
Header:
tracking_id: ConversationID12344
Content-Type: application/json
Body:
{ "encrypted_token_data" : "eyJraWQiOiJ0ZXN0X2Flc19rZXkiLCJlbmMiOiJBMjU2R0NNIiwiYWx
nIjoiQTI1NktXIn0.SNcxYHiv1uOGr77- yXXqcZ7AN697r0N2f2SpIsGedXwX05pu1S_hw.qhX_xvFXgmCMX_
V8.NFmxQ5m7xjXpyG9Y35pYUgnXvniqSsTabgp4_13CQatM_A.a63 Kp0-icnRmGgpjVVXwRA" }
Response:
{“status_code_type”:“suspension in progress”,
“status_code”:“success”
}
POST
/payments/digital/v1/provisionings/tokens/DAPLAB0013e004669ee8547 6a876df4a29f9cfa34/freeze?sandbox=true
HTTP/1.1
Host: dpsandboxupdate-dev.aexp.com
tracking_id: conversarionID
Content-Type: application/json
Response:
{“status_code_type”:“suspension in progress”,“
status_code”:“success”}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 66
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Token Resume API
The Token Resume API reactivates the Token by a CCP/Issuer.
Endpoint
DELETE /payments/digital/{version}/provisionings/tokens/freeze
Request Header
Request Body
Request Data
token_data{}
Response Header
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 67
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Response Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 68
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Token Resume API Request and Response Example
Sample Request Token:
DELETE /payments/digital/v1/provisionings/tokens/freeze?sandbox=true
HTTP/1.1
Host: dpsandboxupdate-dev.aexp.com
Header:
tracking_id: ConversationID12344
Content-Type: application/json
Body:
{"encrypted_token_data" : "eyJraWQiOiJ0ZXN0X2Flc19rZXkiLCJlbmMiOiJBMjU2R0NNIiwiYWx
nIjoiQTI1NktXIn0.SNcxYHiv1uOGr77-
yXXqcZ7AN697r0N2f2SpIsGedXwX05pu1S_hw.qhX_xvFXgmCMX_V8.NFmxQ5m7xjXpyG9Y35pYUgnXvniqSsTa
bgp4_13CQatM_A.a63 Kp0-icnRmGgpjVVXwRA" } }
Response:
{“status_code_type”:“Resumption in progress”,
“status_code”:“success”
DELETE
/payments/digital/v1/provisionings/tokens/DAPLAB0013e004669ee8547
6a876df 4a29f9cfa34/freeze?sandbox=true
HTTP/1.1
Host: dpsandboxupdate-dev.aexp.com
Header:
tracking_id: conversarionID
Content-Type: application/json
Response:
{“status_code_type”:“Resumption in progress”,“
status_code”:“success”}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 69
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Token Delete API
The Token Delete API cancels a Token.
Endpoint
DELETE /payments/digital/{version}/provisionings/tokens/freeze
Request Header
Request Body
Request Data
token_data{}
Response Header
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 70
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Response Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 71
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Token Delete API Request and Response Example
Sample Request Token:
Method:
DELETE /payments/digital/v1/provisionings/tokens?sandbox=true
HTTP/1.1
Host: dpsandboxupdate-dev.aexp.com
Header:
tracking_id: ConversationID12344
Content-Type: application/json
Body:
{"encrypted_token_data" : "eyJraWQiOiJ0ZXN0X2Flc19rZXkiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjo
iQTI1NktXIn0.SNcxYHiv1uOGr77- yXXqcZ7AN697r0N2f2SpIsGedXwX05pu1S_hw.qhX_xvFXgmCMX_V8.
NFmxQ5m7xjXpyG9Y35pYUgnXvniqSsTabgp4_13CQatM_A.a63Kp0- icnRmGgpjVVXwRA"} }
Response:
{“status_code_type”:“Cancellation in progress”,
“status_code”:“success”
Method: DELETE
/payments/digital/v1/provisionings/tokens/DAPLAB0013e004669ee85476a8 76df4a29f9cfa34?sandbox=true
HTTP/1.1
Host: dpsandboxupdate-dev.aexp.com
Header:
tracking_id: conversarionID
Content-Type: application/json
Response:
{“status_code_type”:“Cancellation in progress”,“
status_code”:“success”}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 72
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
9 Servicing Application Programming Interfaces
Network Servicing APIs provide Issuers with information on Card provisioning status. These APIs will be consumed by
Issuers to derive information regarding Cardmember’s Card provisioning state, Token history, and event history status
inf ormation.
Endpoint
POST / payments/digital/{version}/provisionings/tokens/history/inquiry_result
Time Outs
9 seconds
Request Header
Request Body
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 73
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
numbers. This field is only applicable for
internal American Express client.
NOTE: Not applicable for GNS issuers.
Issuer identifier which is optional for MYCA
org_id String (3) Conditional and required for all others.
NOTE: Not applicable for GNS issuers.
This f ield carries the token_requester_name
search_criteria Object Optional
f ilter. It is the only filter currently supported.
account_data{}[]
Credit Card
credit_card{}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 74
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Search Criteria
search_criteria{}
Response Header
session_id String (64) Conditional The provided identifier from the request.
Common Attributes
400
invalid_request_error invalid_{attribute_name}
Bad request
500
system_error Internal_api_error Something went wrong on Provider’s
end.
404
No data Found No data f ound
No data f ound
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 75
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Links
Method String (8) Yes HTTP method required for this link.
Scenario Link
NOTE: To use the above HATOES links for each scenario, the requestor must trigger the “Token History API” first and
then use the HATOES links mentioned above for each LCM API events.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 76
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
EXAMPLE: To Unlock Account triggered from the response of the “Token History API”, use the HATOES link: href:
/payments/digital/{version}/provisionings/accounts/{GUID}/lock.
Response Body
account_information{}
client_account_ref_id String (64) Conditional This is the identifier, if provided in the request.
Account References
account_references{}[]
token_requester_id String (11) Optional Identif ier for the Token Requestor.
account_ref_id String (64) Optional Proxy for the Card account number.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 77
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Account Metadata
account_metadata{}
display_account_number String (5) Optional Last f our digits of the Card account number.
tr_inf ormation{}[]
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 78
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Token Information
token_information{}[]
Status
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 79
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Token Metadata
token_metadata{}
f orm_factor_data{}
Possible Values:
• Phone
• Tablet
• Watch
device_type String Optional • Card - Currently not supported, this value is
reserved f or future use cases.
• Wearable
• Laptop
• Other
Possible Values:
• 01 - Phone
device_type_code String Optional
• 02 - Tablet
• 03 - Watch
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 80
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
• 04 - Card - Currently not supported, this value
is reserved for future use cases.
• 05 - Wearable
• 06 - Laptop
• 99 - Other
Provided by the Token requestor to identify the
device_nickname String Optional Cardmember’s personalized name for the form
f actor.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 81
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Token Inquiry API using Card Key Identifier Example Request and
Response
Header:
Content - Type: application / json
Accept – Language: sv
trackingId: 214214
developer_app_name XXXXX5750GlobalAmexMYCA
body
{
"card_key": ["LUX6LSTMBI6DFE3"," P1Y27LAV1KNRCX6"],
"search_criteria":
{
"token_requester_name": "ApplePay"
}
}
Using credit_card with search criteria
Header: Content - Type: application / json
Accept - Language: sv
trackingId: 214214
developer_app_name XXXXX2814NAP
Body
{
"encrypted_account_data": "eyJraWQiOiJ0ZXN0X2Flc19rZXkiLCJlbmM
iOiJBMjU2R0NNIiwiYWxnIjoiQTI1NktXIn0.bVAOBPna0zMGcrWHSYa4 NbJQELSC6xTbz0WJE_JU-
1qk32jWEEPSw.HxirlWR7Sx3TWN6y.oQCMyJVLG2LUHljWDFE1KAUvyx3Rxy4cw
A13sCMU0gQZpUX9beiS0uyaBUa0q_rfCUocbZQ2wAHlmwGQOqDb_p
nmSdkLIHSHNzh33sjjwOdy4QPVFFv6EuQFMs6aZccYLGnotrH0T6tUqz
g6dyr-lovbxe2u171HdcecuCA_- 9QZgvslq7eubXJaX2cf2zswy6VqwSLXCtyeBUY15DLq5Snn8ao6e3CRDC
oiVl61QEGyz_4r6uatTzTjyGO1Pn7p7Y9gfal0M9G_Gr7DJWaJZYYivX0aoK9UKMfaqSWP_1ygRb8QQ.cf8GfLQEzt
pCr0RMZ6wqVg",
"org_id":"001",
"search_criteria":
{
"token_requester_name": "ApplePay"
}
}
Token Inquiry Sample response: [
{
"tr_inf ormation":
[{ "token_information":
[{ "token_ref_id": "TSGPAB0013b410d72d0ad4cbf8737187d4201d191",
"token_number": "3XXXXXXXXXXXXX ",
"token_metadata":
{
"display_token_number": "2606",
"activation_ts": "2018-01-29T06:04:07.548-07:00",
"account_source": "USERINPUT" },
"f orm_factor_data":
{
"device_type": "Phone",
"device_nickname": "Galaxy Note9",
"device_id": "D798A22506ED996A130027A4678D93F4",
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 82
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
"wallet_id": "4b314267753641555147534553543235755643496951 ",
"visible_id": "4282",
"device_model": "SM-N960U",
"device_manufacturer": "samsung" },
},
"status":
{ "state": "Active"
}, "links":
[{ "method": "DELETE",
"href ": "/payments/digital/v1/provisionings/tokens/TSGPAB0013b4 10d72d0ad4cbf8737187d4201d191", "rel":
"cancel_token"
}, { "method": "POST",
"href ": "/payments/digital/v1/provisionings/tokens/TSGPAB0013b4 10d72d0ad4cbf8737187d4201d191/freeze",
"rel": "suspend_token"
}
]
}
],
"trid": "30000000025",
"token_requester_name": "SamsungPay"
},
{ "token_information":
[{ "token_ref_id": "DAPLAB00109e84371ea254f569dc3657f05617281",
"token_number": "3XXXXXXXXXXXXXX",
"token_metadata":
{
"display_token_number": "3605",
"activation_ts": null,
"account_source": "USERINPUT"
},
{
"display_token_number": "3605",
"activation_ts": null,
"account_source":
"USERINPUT"
},
"f orm_factor_data":
{
"device_type": "Phone",
"device_id": "794d9b769990b1b79403",
"visible_id": "6026026026"
},
"status":
{
"state": "Pending Activate",
"reason_code": ""
},
"links"
: [{
"method": "DELETE",
"href ": "/payments/digital/v1/provisionings/tokens/DAPLAB00109e 84371ea254f569dc3657f05617281", "rel":
"cancel_token" }, { "method": "DELETE", "href": "/payments/digital/v1/provisionings/tokens/DAPLAB00109e
84371ea254f 569dc3657f05617281/freeze",
"rel": "resume_token"
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 83
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
}] },
{ "token_ref_id": "DAPLAB0010ed1ac31ad884b41b62100d63bb94821", "token_number": " 3XXXXXXXXXXXXXX ",
"token_metadata": { "display_token_number": "3308", "activation_ts": null,
"account_source": "USERINPUT"
},
"f orm_factor_data":
{ "device_type": "Phone",
"device_id": "46612358dae510aa726b",
"wallet_id": "4b314267753641555147534553543235755643496951",
"visible_id": "6026026026"
},
"status":
{
"state": "Pending Activate",
"reason_code": ""
},
"links":
[{ "method": "DELETE",
"href ": "/payments/digital/v1/provisionings/tokens/DAPLAB0010ed 1ac31ad884b41b62100d63bb94821",
"rel": "cancel_token"
}, { "method": "DELETE",
"href ": "/payments/digital/v1/provisionings/tokens/DAPLAB0010ed 1ac31ad884b41b62100d63bb94821/freeze",
"rel": "resume_token"
}] }],
"trid": "30010030273",
"token_requester_name": "ApplePay" }],
"account_information":
{ "client_account_ref_id": "6009", "account_references": [{ "token_requester_id": "30010030273",
"token_requester_name": "ApplePay", "account_reference_id": "FAPLAB0015c50c2479ae042fd829fd9866c97
3668" }, { "token_requester_id": "30000000025", "token_requester_name": "SamsungPay", "account_reference_id":
"ASGPAB0012554ec3635dc4efeb894c25cb20 1722c" }], "account_metadata": { "display_account_number":
"6009", "expiry_month": "04",
"expiry_year": "2020",
"pan_sequence": "00",
"verif ication_failed_attempts": "0",
"locked_on_ts" : "2018-12-25T10:00:29.481-07:00"
},
"links":
[{ "method": "PUT",
"href ": "/payments/digital/v1/provisionings/accounts/bd4194f5-5089- 463b-b0ad-8ba156b0c412",
"rel": "update_account"
},
{
"method": "POST",
"href ": "/payments/digital/v1/provisionings/accounts/bd4194f5-5089- 463b-b0ad-8ba156b0c412/freeze", "rel":
"suspend_all_tokens"
},
{ "method": "DELETE", "
href ": "/payments/digital/v1/provisionings/accounts/bd4194f5-5089- 463b-b0ad-8ba156b0c412",
"rel": "cancel_all_tokens" }
,{ "method" : "DELETE",
"href " : "/payments/digital/v1/provisionings/accounts/ecd8d401- 386d-4cbf-8e03-d9f0e03d834/freeze?unlock=true",
"rel" : "unlock_account"
}] } }]
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 84
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Event History API Request and Response Example
Sample Request:
URL : https://dplcminquirydev.aexp.com/payments/digital/v1/provisionings/tokens/events/inquiry_ results
Method: POST
Header
Content-Type application/json
tracking_id AMEXTESTConv11110012
developer_app_name XXXXX2814NAP
SSL_CN
Body
{
"encrypted_account_data": "eyJraWQiOiJ0ZXN0X2Flc19rZXkiLCJlbmMiOiJBMjU2R0NNIiwiYWxnIjoiQTI
1NktXIn0.8iju2jq- qs0mzf0MK9vF4h31Qu79e4ppVE3Cz_ZTcbCLvV4CmQlU Sg.0gGkQM8-0-
4FOP2G.ZUPEIRDC4xptdBh8Gyt7YOKfTHVdQQsNPoYBW k5LBOJkLGgSQ7T3cFMZpSRYccxm-PTUz8J6p-
7IPcAJO5-7CU23J0- UiMOzgd54Is2pZitLmIE.CEVF_Nn7e3pn_GhSqO4o_A", "org_id": "744"
}
Sample Response:
{ "events":
[{ "client_account_ref_id":"00001", "event_id": "00128763973891543217407267", "event_name":
"ELIGIBILITY_CHECK", "event_conversation_id": "convbb341629a6696128e2c0", "event_bts": "2018-11-
330T12:30:06.854-07:00", "event_ets": "2018-11-330T12:30:07.272-07:00", "event_origin": "YK",
"event_origin_type": "WALLET", "event_status": "SCS", "event_process": "PROVISIONING", "device_id":
"c144bc6d484a122e534a", "wallet_provider": "YK" }, { "client_account_ref_id":"00001", "event_id":
"00118989260641543217409147", "event_name": "CARD_UPDATION", "event_conversation_id":
"convbb341629a6696128e2c0", "event_bts": "2018-11-330T12:30:09.145-07:00", "event_ets": "2018-11-
330T12:30:09.200-07:00", "event_origin": "YK", "event_origin_type": "WALLET", "event_status": "SCS",
"event_process": "PROVISIONING", "device_id": "c144bc6d484a122e534a", "device_type": "Phone",
"wallet_provider": "YK" }, { "client_account_ref_id":"00001"
"event_id": "00185282590471543217409370",
"event_name": "CARD_VERIFICATION",
"event_conversation_id": "convbb341629a6696128e2c0",
"event_bts": "2018-11-330T12:30:09.432-07:00",
"event_ets": "2018-11-330T12:30:10.329-07:00",
"event_origin": "YK",
"event_origin_type": "WALLET",
"event_reason": "",
"event_status": "SCS",
"event_process": "PROVISIONING",
"device_id": "c144bc6d484a122e534a",
"device_type": "Phone",
"wallet_provider": "YK" },
{ "client_account_ref_id":"00001",
"event_id": "00186656794991543217410429",
"event_name": "DPAN_ALLOCATION",
"event_conversation_id": "convbb341629a6696128e2c0",
"event_bts": "2018-11-330T12:30:10.429-07:00",
"event_ets": "2018-11-330T12:30:10.709-07:00",
"event_origin": "YK",
"event_origin_type": "WALLET",
"event_reason": "", "event_status": "SCS", "event_process": "PROVISIONING", "device_id":
"c144bc6d484a122e534a", "device_type": "Phone", "wallet_provider": "YK" },
{
"client_account_ref_id":"00001", "event_id": "00154271620001543217411064",
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 85
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
"event_name": "SCRIPTING_INITIATION",
"event_conversation_id":
"convbb341629a6696128e2c0", "event_bts": "2018-11-330T12:30:11.066-07:00", "event_ets": "2018-11-
330T12:30:11.085-07:00", "event_origin": "YK", "event_origin_type": "WALLET", "event_reason": "", "event_status":
"SCS", "event_process": "PROVISIONING", "device_id": "c144bc6d484a122e534a", "device_type": "Phone",
"token_number": "3XXXXXXXXXXXXXX ",
"token_ref_id": "DAPLAB001c49e0a149d414e7a89654d68b459a41b ", "token_feature": "YK-US-001-EN-1.2.6.03-
01-CREDIT:WIP", "wallet_provider": "YK" }, { "client_account_ref_id":"00001", "event_id":
"00166734785961543217412358", "event_name": "SCRIPTING_COMPLETION", "event_conversation_id":
"convbb341629a6696128e2c0", "event_bts": "2018-11-330T12:30:11.066-07:00", "event_ets": "2018-11-
330T12:30:12.361-07:00", "event_origin": "YK", "event_origin_type": "WALLET", "event_reason": "", "event_status":
"SCS", "event_process": "PROVISIONING", "device_id": "c144bc6d484a122e534a", "device_type": "Phone",
"token_number": "3XXXXXXXXXXXXXX ", "token_ref_id": "DAPLAB001c49e0a149d414e7a89654d68b459a41b ",
"token_feature": "YK-US-001-EN-1.2.6.03-01-CREDIT:WIP", "token_status":"Pending Provision", "wallet_provider":
"YK" }, { "client_account_ref_id":"00001", "event_id": "00169673427191543217412406", "event_name":
"ACTIVATION", "event_conversation_id": "convbb341629a6696128e2c0", "event_bts": "2018-11-
330T12:30:12.408-07:00", "event_ets": "2018-11-330T12:30:17.783-07:00", "event_origin": "YK",
"event_origin_type": "WALLET", "event_reason": "", "event_status": "SCS", "event_prSampocess":
"PROVISIONING", "device_id": "c144bc6d484a122e534a", "device_type": "Phone", "token_number":
"3XXXXXXXXXXXXXX ", "token_ref_id": "DAPLAB001c49e0a149d414e7a89654d68b459a41b ", "token_feature":
"YK-US-001-EN-1.2.6.03-01-CREDIT:WIP", "token_status":"Active",
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 86
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
"SCS", "event_process": "PROVISIONING", "device_id": "c144bc6d484a122e534a", "device_type": "Phone",
"token_number": "3XXXXXXXXXXXXXX ", Issuer Onboarding: Servicing APIs (Sam
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 87
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
10 Bank App Provisioning
Bank App Provisioning allows Cardmembers to add their Card from the banking mobile app to the Digital Wallet
application available on the device, such as HCE Android Pay Wallets.
NOTE: To utilize this provisioning feature, Issuers must work with the HCE Android Pay Wallet Provider to request the
documentation for Bank App provisioning client-side integration. Once the client-side integration is successfully
completed at the Issuer’s end, Issuer banking mobile app will be able to interact with the HCE Android Pay Wallet app
and can initiate the Tokenization request through the Token Requestor Server for Card provisioning.
Cardmember logs into the Issuer mobile banking app and selects the Card to provision. The Issuer will generate the
IssuerData object and pass it to the HCE Android Pay Wallet app available on the device for provisioning of the Card.
The IssuerData object contains the account details (PAN, Expiry, Account Input Method, Source of initiating the
provisioning journey, etc.) of the Card and the IssuerSignatureData which is used by Network/Token Service Provider
(TSP) to verif y if the Tokenization request is initiated by the authorized Issuer bank via the HCE Android Pay wallets.
NOTE: Issuers must follow the IssuerSignatureData Scheme defined in this chapter to generate the cryptogram
signature and sign it. Network validates this cryptogram once provisioning is initiated by HCE Android Pay Wallet app.
Once the HCE Android Pay Wallet app receives the IssuerData object from the Issuer banking mobile app, it sends
the Bank App Provisioning notification to the Token Requestor (TR) server to initiate the Tokenization request for the
eligible PAN/Card. TR server will start the Provisioning API request with Network/Token Service Provider (TSP) and
TSP will verif y the cryptogram signature received in the Bank App Provisioning notification before generating and
allocating a Token for the PAN/Card. TSP/Network will follow the provisioning process to generate and allocate a
Token. Once the Token is generated and allocated to the Card, TSP/Network will send the Token to the TR server
and the TR server will push the Token to the HCE Android Pay Wallet.
Verifies IssuerSignatureData
and allocates Token
TR Server will push the Token to TSP sends the allocated Token to TR
HCE Android Pay Wallet Server
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 88
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
IssuerData Generation
This object is generated by the Issuer and passed to the HCE Android Pay Wallet app to initiate the Tokenization
request.
IssuerData
issuerData{}
AccountData
AccountData{}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 89
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
IssuerSignatureData Scheme
Issuers will generate their own Issuer Signature (Non-OBO) for the Bank App Provisioning use cases of Issuer Cards.
ContentInfo
contentInfo{}
contentType String (4) Yes Identif ies the content format. EXAMPLE : JSON
EnvelopeData
EnvelopeData{}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 90
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
SymmetricDataBean
SymmetricDataBean{}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 91
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
EncryptedDataContentInfo
encryptedDataContentInfo{}
The data should be a multiple of 128-bits, appended using Hex encoded 00’s.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 92
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
• False
• sessionKeyDerivationAlgorithm: 01
• encryptionContentAlgorithm: 01
• macContentAlgorithm: 01
package issuer.sample;
import org.apache.commons.codec.binary.Base64;
import org.bouncycastle.util.encoders.Hex;
import javax.crypto.Cipher;
import javax.crypto.Mac;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
System.out.println("sessionEncAESKey: "+Hex.toHexString(sessionEncAESKey));
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 93
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
System.out.println("sessionMacAESKey: "+Hex.toHexString(sessionMacAESKey));
private static byte[] encrypt(String algorithm, Key key, byte[] initializationVector, byte[]
data) throws Exception {
Cipher cipher = Cipher.getInstance(algorithm, "BC");
if(initializationVector ==null){
cipher.init(Cipher.ENCRYPT_MODE, key);
}else{
cipher.init(Cipher.ENCRYPT_MODE, key, new IvParameterSpec( initializationVector));
}
return cipher.doFinal(data);
private static byte[] decrypt(String algorithm, Key key, byte[] initializationVector, byte[]
data) throws Exception {
Cipher cipher = Cipher.getInstance(algorithm, "BC");
if(initializationVector ==null){
cipher.init(Cipher.DECRYPT_MODE, key);
}else{
cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec( initializationVector));
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 94
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
}
return cipher.doFinal(data);
return paddedData;
}
return output.toString();
}
return Hex.toHexString(kcv);
}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 95
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Example for JWE Encryption and JWE Decryption of IssuerData Object
//keyId OR kid value, for identifying the payload via JWEHeader values will be shared Amex.
String keyId = "BankApp_prov_issuer_kid_from_amex";
//encryptionKeyInPlainText will be shared by Amex and this need to be converted into AES key
for encrypting the //payload while creating the IssuerData source.
String encryptionKeyInPlainText =
"plaintext_key_value_for_generating_the_AES_provided_by_amex";
final byte[] actualKey = Hex.decode(encryptionKeyInPlainText);
String jsonInput =
"{\"account_data\":{\"account_type\":\"credit_card\",\"client_account_keyref\":\"1599280283\",
\"credit_card\":{\"account_holder_name\":\"JOHN-
DOE\",\"account_number\":\"xxxx73044562001\",\"country_cd\":\"US\",\"expiry\":\"2024-04-
14\",\"language_cd\":\"en\",\"pan_sequence\":\"00\",\"product_cd\":\"NLT\",\"product_type_cd\"
:\"CREDIT\"}}}";
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 96
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
11 Security and Encryption
The security section outlines the Transport Layer and Data Layer security specifications that the Issuer and American
Express Network must adhere to for a secure data exchange and communications over APIs.
Data Security
All Personally Identifiable Information (PII) elements in the request and response will be encrypted with direct JSON
Web Encryption (JWE) with a shared symmetric key.
• JSON compact serialize the JWE object to generate the encrypted PII data in the request.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 97
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
JSON Web Encryption Key Exchange
American Express generates an AES 256 bit Key and KID and shares with the Issuer off -line. This is used for key
wrap. The KID can be used for identifying the AES Key.
NOTE: For Issuer Bank App Provisioning feature, Issuer Bank App should pass the encrypted IssuerData object to the
HCE Android Pay Wallet SDK.
Data Encryption
The originating entity (Issuer or American Express) will perform the following steps for all PII elements (example:
account_data) before and request or response is sent.
• Create the plain PII data object populated with required data.
• Generate the JWE header with the required JWE algorithm and EncryptionMethod.
• JSON Web Encrypt the payload using the pre-shared AES 256 bit key to generate the JWE object.
• JSON compact serialize the JWE object to generate the encrypted PII data in the request / response.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 98
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
JSON Web Encryption Implementation Example
Nimbus Jose is a popular and robust java library that can be used to implement JWE.
import com.nimbusds.jose.*;
import com.nimbusds.jose.crypto.AESDecrypter;
import com.nimbusds.jose.crypto.AESEncrypter;
import org.apache.commons.codec.binary.Hex;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
//
// Encrypt JWE Token
//
Payload = new Payload(accountData);
JWEHeader = new JWEHeader.Builder(JWEAlgorithm.A256KW,
EncryptionMethod.A256GCM).keyID(AES_KEY_ID).build();
JWEObject = new JWEObject(jweHeader, payload);
jweObject.encrypt(new AESEncrypter(actualKey));
String encryptedPayload = jweObject.serialize();
//
// Decrypt JWE Token
//
JWEObject jweDecryptObj = JWEObject.parse(encryptedPayload);
String kid = jweDecryptObj.getHeader().getKeyID();
SecretKey secretKey = getSecretKeyWithKID(kid);
jweDecryptObj.decrypt(new AESDecrypter(secretKey));
String decryptedPayload =
jweDecryptObj.getPayload().toBase64URL().decodeToString();
}
}
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 99
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
12 Glossary of Terms
Term Explanation
Card-on-File The process of collecting and storing payment credentials for future use.
The process of replacing a primary account number (PAN) with a unique payment
Card-on-File Tokenization
token that is restricted in its usage.
(COFT)
EXAMPLES: Restricted to a specific device, merchant, transaction type or channel.
Card Security Code (CSC) Any of several values printed or encoded on the Card and used for fraud prevention.
A Person who has entered into an agreement and established a Card Account with
Cardmember
any Issuer, or whose name appears on a Card.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 100
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
The physical characteristics of a device, including its size and shape. The most typical
Form f actor f orm factor is the plastic card; however, a mobile phone is an example of a non-
traditional Form Factor.
Funding Primary Account
A representation of the plastic card issued by the issuer.
Number (FPAN)
Globally Unique Identifier A GUID is a 128-bit (16 byte) number used by software programs to uniquely identify
(GUID) the location of a data object.
A term used to describe the capability of a Mobile Device to provide NFC Card
Host Card Emulation
emulation by routing NFC messages to the operating system of the Mobile Device.
The underlying protocol used by the World Wide Web. This protocol defines how
Hyper Text Transf er
messages are formatted and transmitted and what actions Web servers and browsers
Protocol (HTTP)
take in response to various commands.
The primary communications protocol in the internet protocol suite for relaying
Internet Protocol (IP)
inf ormation across network boundaries.
International Organization An international standard-setting body composed of representatives from various
f or Standardization (ISO) national standards organizations.
Any entity (including, without limitation, American Express and American Express
Issuer Entities) authorized by American Express or an American Express Entity to issue a
Card and to engage in the Card Issuing Business.
Java Script Object A method of formatting data so that it can be transmitted from one place to another.
Notation (JSON) The most common use is between a server and a Web application.
JSON Web Encryption
A standardized syntax for the exchange of encrypted data.
(JWE)
Master Key A Cryptographic Key used to derive all other Encryption keys or a group of keys.
On-Behalf -Of (OBO) Services offered by Network on behalf of and for the purpose of Issuers.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 101
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
Post Provisioning
An event triggered by Network to Issuer after provisioning is complete.
Notif ication (PPN)
The process of preparing and equipping a Network to allow it to provide new service to
Provisioning
users.
Representational State An architecture style for designing networked applications. It relies on a stateless,
Transf er (REST) client-server, cacheable communications protocol.
It is a process where an eligible Card that requests to be tokenized for Digital wallet
Risk Assessment
transaction is verified by the Issuer for fraud/risk scoring.
Risk Scoring The outcome of a fraud/risk assessment performed on a Card by the Issuer.
Service Level Agreement An agreed upon commitment between a service provider and a client.
Short Message Service The most widely used type of text messaging.
Tenured Channels A list of communication channels trusted for identification and verification.
A payment element which serves as the logical link between a device and a physical
Token
card PAN.
Tokenization The process by which the PAN is replaced by a surrogate value called Token.
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 102
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
13 Acronyms
Acronym Term
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 103
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
IP Internet Protocol
OS Operating System
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 104
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.
REST Representational State Transfer
MARCH 2021 This document contains sensitive, confidential, and trade secret information, and may 105
not be disclosed to third parties without written consent of American Express Travel
Related Services Company, Inc.