API de Aprovisionamiento y Gestión
This method is used by wallet server to check that a card account is eligible for provisioning.
HTTP header identifying the pod and corresponding DNS hostname of the load balancer from which traffic is coming. Subsequent API calls should be sent to this pod.
The Card Issuer Identifier. Unique for each card issuer.
The Card Account Descriptor.Depending on cardSource, it shall be formatted as follows:
- For ON-FILE:"cardAccountDescriptor" : {"walletCardAccountId" : "1234"}
- For USER-INPUT, CLIENT-SDK and READER-MODE:"cardAccountDescriptor" : {"opaqueCardAccountData" : "data returned by Issuer backend to Wallet"}
checkCardAccount response payload
Unique identifier of the T&C to be presented to the end user. If T&Cs are not required, all 0's should be returned. getAsset API will be used to retrieve the T&Cs content.
Array of GUIDs required to build card art. Each cart art can be retrieved using getAsset API with corresponding GUID.
Internal Server Error
POST /checkCardAccount HTTP/1.1
x-pod: text
Content-Type: application/json
Accept: */*
Content-Length: 288
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"issuerId": "text",
"cardAccountDescriptor": {},
"device": {
"seId": "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"
},
"termsAndConditionsId": "text",
"cardArtManifest": [
"text"
]
}This method is used by Wallet Server to fetch the content of an asset.
HTTP header identifying the pod and corresponding DNS hostname of the load balancer from which traffic is coming. Subsequent API calls should be sent to this pod.
getAsset response payload
Internal Server Error
POST /getAsset HTTP/1.1
x-pod: text
Content-Type: application/json
Accept: */*
Content-Length: 119
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"guid": "text"
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
},
"contentType": "icon",
"content": {
"mimeType": "image/pdf",
"encodedData": "text",
"width": "text",
"height": "text"
}
}This method is used by wallet server to provision a digital card to user's device.
HTTP header identifying the pod and corresponding DNS hostname of the load balancer from which traffic is coming. Subsequent API calls should be sent to this pod.
The Card Issuer Identifier. Unique for each card issuer.
The Card Account Descriptor.Depending on cardSource, it shall be formatted as follows:
- For ON-FILE:"cardAccountDescriptor" : {"walletCardAccountId" : "1234"}
- For USER-INPUT, CLIENT-SDK and READER-MODE:"cardAccountDescriptor" : {"opaqueCardAccountData" : "data returned by Issuer backend to Wallet"}
The Wallet Account Identifier. Unique for each wallet account.
The Card last 4 or 5 digits.
Cryptographic OTP computed by Issuer backend and returned to the wallet during enrolment. It will be checked by TSH if it's provided.
provisionCard response payload
The Wallet Card Identifier. Unique for each wallet card.
The Wallet Card Account Identifier. Unique for each wallet card account.
Internal Server Error
POST /provisionCard HTTP/1.1
x-pod: text
Content-Type: application/json
Accept: */*
Content-Length: 667
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"issuerId": "text",
"cardAccountDescriptor": {},
"ssdDescriptor": {
"aid": "text",
"appletInstanceAid": "text",
"apduResponse": "text",
"counter": "text",
"casdCertificate": "text",
"spsdCertificateSerialNumber": "text"
},
"walletAccountId": "text",
"device": {
"seId": "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",
"cryptoOTP": "text"
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
},
"walletCardId": "text",
"walletCardAccountId": "text",
"cardDescriptor": {
"appletCurrencyCode": "text",
"displayCardNumber": "text",
"cardholderName": "text",
"cardArtManifest": [
"text"
],
"labelColor": "text",
"shortDescription": "text",
"longDescription": "text",
"privacyPolicyURL": "text",
"termsAndConditionsURL": "text",
"contactWebsite": "text",
"contactEmail": "text",
"contactNumber": "text",
"contactName": "text",
"cardActions": {
"minLoadedBalance": 1,
"maxLoadedBalance": 1,
"minLoadAmount": 1,
"maxLoadAmount": 1
},
"commutePlans": [
{
"identifier": "text",
"title": [
{
"label": "text",
"value": "text",
"language": "text"
}
],
"usage": {
"label": "Usage",
"value": [
{
"text": "text",
"language": "text"
}
]
},
"validityPeriod": {
"startDate": "2026-01-01T00:00:00.000Z",
"expiryDate": "2026-01-01T00:00:00.000Z",
"dateStyle": "SHORT",
"timeStyle": "SHORT"
}
}
],
"mobileApp": {
"identifier": "text",
"action": "text",
"intentExtraText": "text"
}
}
}This method is used by Wallet Server to request a suspend, resume or park/delete a virtual card.
HTTP header identifying the pod and corresponding DNS hostname of the load balancer from which traffic is coming. Subsequent API calls should be sent to this pod.
The Card Issuer Identifier. Unique for each card issuer.
The Wallet Card Identifier. Unique for each wallet card.
The operation to perform on the card. Note: - PARK is to be used for an already provisioned card. - Whereas DELETE is to be used for failed provisioning.
manageCard response payload
Internal Server Error
POST /manageCard HTTP/1.1
x-pod: text
Content-Type: application/json
Accept: */*
Content-Length: 167
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"issuerId": "text",
"walletCardId": "text",
"operation": "SUSPEND"
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
}
}This method is used by Wallet server to provide a callback to a previous sendScript sent by TSH.
HTTP header identifying the pod and corresponding DNS hostname of the load balancer from which traffic is coming. Subsequent API calls should be sent to this pod.
Unique task identifier used to correlate a callback to a request.
sendScriptCallback response payload
Internal Server Error
POST /sendScriptCallback HTTP/1.1
x-pod: text
Content-Type: application/json
Accept: */*
Content-Length: 196
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"taskId": "text",
"apduResponses": [
{
"rApdu": "text",
"messageId": "text",
"messageName": "text"
}
]
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
}
}This method is used by Wallet server to provide a callback to a previous updateCard sent by TSH.
HTTP header identifying the pod and corresponding DNS hostname of the load balancer from which traffic is coming. Subsequent API calls should be sent to this pod.
Unique task identifier used to correlate a callback to a request.
Status code to the request
| Status code | Description |
|---|---|
| 0 | OK |
| 911 | Operation failed |
| 921 | Unexpected server error |
Textual status message
updateCardCallback response payload
Internal Server Error
POST /updateCardCallback HTTP/1.1
x-pod: text
Content-Type: application/json
Accept: */*
Content-Length: 159
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"taskId": "text",
"statusCode": 1,
"statusMessage": "text"
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
}
}This method is used by Wallet Server to the current status of a digital card.
HTTP header identifying the pod and corresponding DNS hostname of the load balancer from which traffic is coming. Subsequent API calls should be sent to this pod.
The Wallet Card Identifier. Unique for each wallet card.
getCardStatus response payload
Internal Server Error
POST /getCardStatus HTTP/1.1
x-pod: text
Content-Type: application/json
Accept: */*
Content-Length: 127
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"walletCardId": "text"
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
},
"state": "CREATED"
}This method is used by Wallet Server to the current status of a card account.
HTTP header identifying the pod and corresponding DNS hostname of the load balancer from which traffic is coming. Subsequent API calls should be sent to this pod.
The Wallet Card Account Identifier. Unique for each wallet card account.
getCardAccountStatus response payload
The card account state
Internal Server Error
POST /getCardAccountStatus HTTP/1.1
x-pod: text
Content-Type: application/json
Accept: */*
Content-Length: 134
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"walletCardAccountId": "text"
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
},
"state": "ACTIVE",
"accountBalance": {
"balanceAmount": 1,
"balanceCurrencyCode": "text",
"balanceDate": "2026-01-01T00:00:00.000Z"
}
}This method is used to request the pending commands to be executed for a specific card. Device should keep coming back when: - HTTP 200 is returned with statusCode=0 and APDU commands are provided
or HTTP 500 is returned (until max number of retries is reached)
or TSH is not accessible (until max number of retries is reached)
HTTP header identifying the pod and corresponding DNS hostname of the load balancer from which traffic is coming. Subsequent API calls should be sent to this pod.
It is needed in the first request only.
The Wallet Card Identifier. Unique for each wallet card.
getCardCommands response payload
Internal Server Error
POST /getCardCommands HTTP/1.1
x-pod: text
Content-Type: application/json
Accept: */*
Content-Length: 216
{
"requestHeader": {
"requestId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z"
},
"mode": "PARK",
"walletCardId": "text",
"apduResponses": [
{
"rApdu": "text",
"messageId": "text",
"messageName": "text"
}
]
}{
"responseHeader": {
"responseId": "text",
"sessionId": "text",
"generationDateTime": "2026-01-01T00:00:00.000Z",
"statusCode": 1,
"statusMessage": "text"
},
"apduCommands": [
{
"cApdu": "text",
"messageId": "text",
"messageName": "text"
}
]
}Última actualización
¿Te fue útil?