トランジットAPI
This method is used by TSH to request the creation of a digital card account to the TES. This request can come with a payment order which comprises a payment instrument and either the identifier of wallet card used or the wallet account used for the payment In this case, the TES is responsible for returning an order confirmation in the form of a purchase identifier in all cases where the user may be deducted money. The TES shall also create a new card account associated to a unique identifier. In case of stored value account, the card account identifier shall be the card iedntifier.
HTTP header identifying the actor initiating the request.
The Card Issuer Identifier. Unique for each card issuer.
The Wallet Provider Identifier.For example:APPLE_PAYHUAWEI_PAYXIAOMI_PAY
The Product Identifier. Unique for each product. It is used by TSH to find the right metadata (e.g. card arts) associated to the product.
This object gives additional service provider data captured by the wallet provider during a payment.The structure of this object is opaque to TSH.
createCardAccount response payload
The Card Account Identifier. Unique for each card account.
Signature covering the concatenation of the UTF-8 encoded bytes of orderId followed by purchaseId. It is a ECDSA signature in PKCS7 format.
Internal Server Error
POST /tes/transitapi/1/0/createCardAccount HTTP/1.1
x-actor-id: text
Content-Type: application/json
Accept: */*
Content-Length: 463
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"issuerId": "text",
"walletProviderId": "text",
"productId": "text",
"order": {
"orderId": "text",
"amount": 1,
"currency": "text",
"paymentInstrument": {
"paymentData": "text",
"type": "IN-APP_CRYPTO",
"version": "EC_v1",
"signature": "text",
"header": {
"ephemeralPublicKey": "text",
"wrappedKey": "text",
"transactionId": "text",
"publicKeyHash": "text"
}
}
},
"opaqueServiceProviderData": {}
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
},
"cardAccountId": "text",
"purchaseId": "text",
"signature": "text"
}This method is used by TSH to check that a card account is eligible for provisioning.
HTTP header identifying the actor initiating the request.
The Card Issuer Identifier. Unique for each card issuer.
The Card Account Identifier. Unique for each card account.
The Wallet Provider Identifier.For example:APPLE_PAYHUAWEI_PAYXIAOMI_PAY
checkCardAccount response payload
The Product Identifier. Unique for each product. It is used by TSH to find the right metadata (e.g. card arts) associated to the product.
Array of asset identifiers required to build card arts. Both cardBackground and icon asset identifiers shall be provided.
Asset identifier can be up to 64 characters.
If this parameter is not specified, TSH will pick default assets linked to productId. Otherwise the specified assets will be retrieved using the getAsset API
Internal Server Error
POST /tes/transitapi/1/0/checkCardAccount HTTP/1.1
x-actor-id: text
Content-Type: application/json
Accept: */*
Content-Length: 314
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"issuerId": "text",
"cardAccountId": "text",
"walletProviderId": "text",
"device": {
"deviceId": "text",
"deviceType": "PHONE",
"language": "text",
"phoneNumberLastDigits": "text",
"deviceName": "text"
},
"cardSource": "ON-FILE"
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
},
"productId": "text",
"cardArtManifest": [
"text"
],
"mobileApplicationInfo": {
"associatedApplicationIdentifiers": [
"text"
],
"appLaunchURL": "text"
}
}This method is used by TSH to provision a digital card to user's device.
HTTP header identifying the actor initiating the request.
The Card Issuer Identifier. Unique for each card issuer.
The Card Account Identifier. Unique for each card account.
The Wallet Card Identifier. Unique for each wallet card.
The Wallet Card Account Identifier. Unique for each wallet card account.
The Wallet Account Identifier. Unique for each wallet account.
The Card last 4 or 5 digits.
provisionCard response payload
The Card Identifier. Unique for each card.
The card number to be displayed on the wallet.If it's not provided, the last 16 characters of cardAccountId will be used.
Array of asset identifiers required to build card arts. Both cardBackground and icon asset identifiers shall be provided.
Asset identifier can be up to 64 characters.
If this parameter is not specified, TSH will pick default assets linked to productId. Otherwise the specified assets will be retrieved using the getAsset API
Internal Server Error
POST /tes/transitapi/1/0/provisionCard HTTP/1.1
x-actor-id: text
Content-Type: application/json
Accept: */*
Content-Length: 540
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"issuerId": "text",
"cardAccountId": "text",
"walletCardId": "text",
"walletCardAccountId": "text",
"walletAccountId": "text",
"device": {
"deviceId": "text",
"deviceType": "PHONE",
"language": "text",
"phoneNumberLastDigits": "text",
"deviceName": "text"
},
"walletScoring": {
"color": "GREEN",
"deviceScore": 1,
"accountScore": 1,
"phoneNumberScore": 1,
"reasonCodes": [
"text"
]
},
"customerData": {
"dateOfBirth": "2026-01-01",
"customerId": "text"
},
"cardLastDigits": "text"
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
},
"cardId": "text",
"displayCardNumber": "text",
"cardholderName": [
{
"value": "text",
"language": "text"
}
],
"cardData": {
"balanceAmount": 1
},
"cardArtManifest": [
"text"
]
}This method is used by TSH to notify the result of an operation identified by a sessionId. It can be the result of a provisioning or a state update.
HTTP header identifying the actor initiating the request.
The Card Issuer Identifier. Unique for each card issuer.
The Card Account Identifier. Unique for each card account.
The Card Identifier. Unique for each card.
Flag indicating whether this notification is about provisioning or not.
This object gives additional information about the operation result. For Calypso, the following will be provided:
"resultData": {
"csn" : "1122334455667788"
}
For EMV, the following will be provided:
"resultData": {
"pan" : "$encrypted_value"
}
The status code.
Optional additional status message
notifyOperationResult response payload
Internal Server Error
POST /tes/transitapi/1/0/notifyOperationResult HTTP/1.1
x-actor-id: text
Content-Type: application/json
Accept: */*
Content-Length: 254
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"issuerId": "text",
"purchaseId": "text",
"cardAccountId": "text",
"cardId": "text",
"isProvisioning": true,
"resultData": {},
"statusCode": 1,
"statusMsg": "text"
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
}
}This method is used by TSH to request the top up of a card account to the TES. This request can come with a payment order which comprises a payment instrument. It is initiated from OEM Wallet. In this case, the TES is responsible for returning an order confirmation in the form of a purchase identifier in all cases where the user may be deducted money.
HTTP header identifying the actor initiating the request.
The Card Issuer Identifier. Unique for each card issuer.
The Card Account Identifier. Unique for each card account.
This object gives additional service provider data captured by the wallet provider during a payment.The structure of this object is opaque to TSH.
topUpCardAccount response payload
Signature covering the concatenation of the UTF-8 encoded bytes of orderId followed by purchaseId. It is a ECDSA signature in PKCS7 format.
Internal Server Error
POST /tes/transitapi/1/0/topUpCardAccount HTTP/1.1
x-actor-id: text
Content-Type: application/json
Accept: */*
Content-Length: 441
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"issuerId": "text",
"cardAccountId": "text",
"order": {
"orderId": "text",
"amount": 1,
"currency": "text",
"paymentInstrument": {
"paymentData": "text",
"type": "IN-APP_CRYPTO",
"version": "EC_v1",
"signature": "text",
"header": {
"ephemeralPublicKey": "text",
"wrappedKey": "text",
"transactionId": "text",
"publicKeyHash": "text"
}
}
},
"opaqueServiceProviderData": {}
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
},
"purchaseId": "text",
"signature": "text"
}This method is used by TSH to indicate the update of a digital card to the TES. It is usually initiated from OEM Wallet.
HTTP header identifying the actor initiating the request.
The Card Issuer Identifier. Unique for each card issuer.
The Card Identifier. Unique for each card.
The new state to apply on the card
updateCardState response payload
Internal Server Error
POST /tes/transitapi/1/0/updateCardState HTTP/1.1
x-actor-id: text
Content-Type: application/json
Accept: */*
Content-Length: 160
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"issuerId": "text",
"cardId": "text",
"newState": "DELETED"
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
}
}This method is used by TSH to request TES to return the metadata of card accounts for the given list of card account IDs.
The Card Issuer Identifier. Unique for each card issuer.
The list of card account identifiers
getCardAccountsMetadata response payload
Internal Server Error
POST /tes/transitapi/1/0/getCardAccountsMetadata HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 149
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"issuerId": "text",
"cardAccountIds": [
"text"
]
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
},
"cardAccounts": [
{
"cardAccountId": "text",
"cardAccountState": "text",
"productsList": [
{
"identifier": "text",
"value": 1,
"lastUpdatedDate": "2026-01-01T00:00:00.000Z",
"validFromDate": "2026-01-01T00:00:00.000Z",
"validUntilDate": "2026-01-01T00:00:00.000Z"
}
]
}
]
}This method is used by TSH to request TES to return the list of available actions for a given card.
The Card Issuer Identifier. Unique for each card issuer.
The Card Identifier. Unique for each card.
Data from device representing card image, for filtering allowed actions.Base64 encoded string.
Identifier for the plan to retrieve actions for.If not present, all valid actions shall be returned.
getCardActions response payload
Configuration valid until the specified time.RFC3339 format. Example 2018-12-24T17:32:28Z
Internal Server Error
POST /tes/transitapi/1/0/getCardActions HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 193
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"issuerId": "text",
"cardId": "text",
"appletData": "text",
"associatedPlanIdentifier": "text"
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
},
"cardActions": [
{
"identifier": "text",
"planIdentifier": "text",
"title": [
{
"label": "text",
"value": "text",
"language": "text"
}
],
"amount": 1,
"currency": "text",
"startDate": "2026-01-01T00:00:00.000Z",
"expirationDate": "2026-01-01T00:00:00.000Z"
}
],
"validUntil": "2026-01-01T00:00:00.000Z"
}This method is used by TSH to request asset to TES
Unique identifier of the asset
getAsset response payload
The asset type.Possible values are:iconcardBackgroundCombined
Internal Server Error
POST /tes/transitapi/1/0/getAsset HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 122
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"assetId": "text"
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
},
"contentType": "text",
"content": [
{
"mimeType": "text",
"encodedData": "text",
"width": 1,
"height": 1
}
]
}最終更新
役に立ちましたか?