One-Stop Cross-Border Shopping — Shop the World
UnionPay Content & Service Platform (UCSP) for Channel Partner
UnionPay Content & Service Platform (UCSP) for Service Provider
UnionPay Transportation Solutions
Cardholders do not need to link cards on the digital wallet or on-line (Card-On-File) merchants. Based on Token technology, under the premise of ensuring cardholders' information security, token will be pushed to these merchants and be managed direclty in Issuer App, greatly improving cardholder's payment experience. The functions mainly include: (1) TR List Inquiry; (2) TOKEN_CREATION_NOTIFICATION; (3) Token Lifecycle Management.
• Simplify binding card by initiating this process from issuers' App
• Avoid card information exposure and keep account confidential
• Encourage payment participation by extensive and convenient access to more third party apps
Applicable to Issuers who want to integrate UPI Cardholder Account Management Service and provide account management service to their customers.
1. The App or website shall be provided by issuer for cardholders to initiate the token push and management.
2. Token Requestor (TR) indicates the party which stores the cardholder's token and initiates transaction with cardholder's token, such as e-wallet。
3. There are typically two types of TR, digital wallet and online merchant. The former one connects to UnionPay Mobile Payment System (UMPS), the latter one connects to UnionPay Online Payment Platform (UPOP).
4. UPI CAMS supports 3 scenarios of Issuer-TR interaction: App to App, App to Web, Web to Web. All these 3 scenarios are realized through URI method. When issuer gets the TR list from UnionPay, each TR will have 3 URI address, for iOS, Android and Web respectively. The url scheme shall be complex enough to avoid confliction with other App.
5. To ensure use experience, UnionPay recommends Issuer App to skip android/iOS scheme address first. Skip to website url happens only if the TR App is not installed on the device.
6. Sensitive information (such as Primary Account Number, PAN) is required to encrypt before transmitting it in the message.
1. Cardholder select token requestor or merchant
2. Issuer send token push provisioning to TR
3. TR send token request with authorization to UPI
4. UPI respond token
5. UPI return token creation notification to issuer
Field name | Identifier | Type | Length | Request | Default value | Note | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Message Type | msgType | string | 1-64 | M:Mandatory | provisionRequest | provisionRequest | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Message ID | msgID | string | 1-128 | M:Mandatory | 1201805140834000000 | Message ID | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Encrypted Data | encryptedData | string | 1-2048 | C:Conditional | Example in plain text: {“pan”:”6250948200000004”,”expiryDate”:”12/22”} | The encrypted ciphertext of pan and expiry date which are encrypted by the encryption certificate assigned by UMPS to the Issuer. Either encryptedData or parentToken appears, and the parentToken is plaintext when it appears. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Parent Token | parentToken | string | 16-19 | C:Conditional | Token from Issuer which will be used by TR to apply for a token. Either encryptedData or parentToken appears, and parentToken appears in plaintext when it appears. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Jump URI | jumpUri | string | 1-256 | M:Mandatory | Jump URI. Provided when the APP is registered as TR to access UnionPay network (scheme or H5 address) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Issuer ID | issuerid | string | M:Mandatory | 47090344 | Issuer IIN assigned by UnionPay | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Card Type | cardtype | string | 1 | M:Mandatory | 1 | Bank card account type. 1 credit card, 2 debit card | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Masked Pan | maskedPan | string | 16 | M:Mandatory | 62111111****8588 | Card tail number, used to show the user the card information to be bound. Format: first 8 digits+****+last 4 digits | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
User Name | userName | string | 1-32 | C:Conditional | 张*三, T*m, *伟 | The cardholder's name (some characters are hidden), used to show the cardholder the information of card to be bound. Mandatory if the initiatorCountrycode is 156 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
User Phone Number | userPhoneNumber | string | 1-32 | C:Conditional | 139******11 | The cardholder's mobile phone number (some numbers are hidden), used to show the cardholder the information of card to be bound. Mandatory if the initiatorCountrycode is 156 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
User Information Hash Value | userInfoHash | JSON Object | M:Mandatory | User information hash value, including ID, name and mobile phone number | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Callback URL | callBackUrl | string | 1-128 | M:Mandatory | Bank APP callback notification address, used to return the result after the TR token application succeeds | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Initiator Information | initiatorInfo | JSON Object | M:Mandatory | Initiator app information, in the doc, it refer to Issuer APP | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Selected App Information | selectedAppInfo | JSON object | M:Mandatory | Third-party app information | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Signature Information | signatureInfo | JSON object | M:Mandatory | Third-party app signature and encrypted information | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
UMPS Encryption Certification ID | umpsEncCertID | string | 1-128 | C:Conditional | The encryption certification ID assigned by umps to initiator app, must appear when encryptedInfo appears |
Filed name | Identifier | Type | Length | Request | Default value | Note | |
---|---|---|---|---|---|---|---|
Message Type | msgType | string | 1-64 | M:Mandatory | provisionRequest | provisionRequest | |
Message ID | msgID | string | 1-128 | M:Mandatory | 1201805140834000000 | Message ID | |
Response Code | respCode | string | 2 | M:Mandatory | 0 | Response code | |
Response Message | respMsg | string | 1-128 | M:Mandatory | Response information |
Field name | Identifier | Type | Length | Request | Default value | Note | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Message Information | msgInfo | Object | M:Mandatory | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Transaction Information | trxInfo | Object | M:Mandatory | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Certificate and Signature | certificateSignature | Object | M:Mandatory | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Filed name | Identifier | Type | Length | Request | Default value | Note | |||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Message Information | msgInfo | Object | M:Mandatory | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Message Response | msgResponse | Object | M:Mandatory | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
Certificate and Signature | certificateSignature | Object | M:Mandatory | |||||||||||||||||||||||||||||||||||||||||||||||||||
|
Field name | Identifier | Type | Length | Request | Default value | Note | |||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Message Information | msgInfo | Object | M:Mandatory | ||||||||||||||||||||||||||||||||||||||||||||
|
Transaction Information | trxInfo | Object | M:Mandatory | |||||||||||||||||||||||||||||||||||||||||||
|
Certificate and Signature | certificateSignature | Object | M:Mandatory | |||||||||||||||||||||||||||||||||||||||||||
|
Filed name | Identifier | Type | Length | Request | Default value | Note | |||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Message Information | msgInfo | Object | M:Mandatory | ||||||||||||||||||||||||||||||||||||||||||||
|
Transaction Information | trxInfo | Object | M:Mandatory | |||||||||||||||||||||||||||||||||||||||||||
|
Message Response | msgResponse | M:Mandatory | ||||||||||||||||||||||||||||||||||||||||||||
|
Certificate and Signature | certificateSignature | Object | M:Mandatory | |||||||||||||||||||||||||||||||||||||||||||
|
The method declaration is as follows:
public void persodataDownload(
String inAppProvision,
String firebasedInstanceID,
StatusCallback<String, String> statusCallback)
Parameter 1 (String inAppProvision)
This element contains information to finish card provisioning.
Parameter 2 (String firebaseInstanceID)
Mobile application is required to get the firebase instance ID. This ID is required for MPP server to push notifications to the mobile phone via Google Firebase Notifications framework (refer to google documentation or the reference implementation on how to obtain this ID)
Parameter 3 (StatusCallback<String, String> callback)
Mobile application is to provide an object implementing the StatusCallback interface. The interface has 2 methods to be implemented.
public void success(String o)
public void failure(String o)
The first method success() will be called when the persodata download request is successful. The number of LUKs provisioned will be passed via the parameter in the success() method. If the persodata download request is not successful, the method failure() will be called passing in the error string.
Issuers and Token Requestors shall fill in the UPI Cardholder Account Management Service Application Form.
Please submit order in Support Center to contact us.