LCM
Tokenization Lifecycle Management (LCM) are the processes used when the card is already digitized/tokenized by the TSP or I-TSP.
We summarize token management into three methods:
- Automated LCM
- Scheme initiated LCM
- Issuer (client) initiated LCM
MeaWallet clients
Automated
This is the process of token lifecycle management syncing with card management. When the status of a card changes, the corresponding token(s) state is automatically updated.
Clients change the status of cards via the Set Card Status API endpoint.
Further information on card status can be found here.
Examples:
- When a card is permanently made void on Banking.Live, this automatically updates MeaWallet, who will in turn notify the scheme with Delete Token.
- When a card is suspended on Banking.Live, this automatically updates MeaWallet, who will in turn notify the scheme with Suspend Token.
Automated LCM includes renewal and replacement of cards as this can also affect card status.
When a card is replaced, MeaWallet is automatically updated of the new PAN.
Endpoint integration
In order for a client to utilize automated LCM, integration to the Set Card Status endpoint(s) is required.
Automated LCM endpoints behavior differs between API endpoint versions.
V1 Set Card Status
V1 - status of the token will always reflect card status.
API schema available here.
{
"api_call_unique_identifier": "43851234567890485",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"status_nwk": "1199",
"token": 123456789,
"action": 1,
"note": "string"
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {
"status_nwk": 1199
}
}V2 Set Card Status
V2 - status of the token will reflect card status IF update_digital_token is set to true. This is built for example use cases where cardholder wants to continue transacting with their Apple Pay token whilst their card is suspended (due to stolen/lost etc.).
API schema available here.
{
"api_call_unique_identifier": "438574123456789085",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"status_nwk": "1199",
"token": 123456789,
"action": 1,
"note": "string",
"update_digital_token": true
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {
"status_nwk": 1199
}
}V1 Renew Card
V1 - status of the token will always reflect card status.
API schema available here.
{
"api_call_unique_identifier": "438574123456789005",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"status_nwk": 1000,
"image_fields": "11111",
"xml_fields": "11111",
"image_delivery": 1,
"image_name": "paymentology",
"tok_flags": "00000000000000000000000000000000",
"token": 123456789,
"card_action": 1,
"inherit_rules": 0,
"reason": "Lost my card",
"crd_prdct_id": 111,
"exp_date": "2022-02-14 12:12:12",
"3ds_lang": "en",
"3ds_challenge_methods": [
{
"ids": "123f6eca-1234-1234-bfeb-53cffffa6f08"
}
],
"3ds_challenge_profile": "123c123e-8eba-1234-1234-d22110d269f8"
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {
"cvv": "***",
"image_base64": "ZSBzaG9ydCB2ZWhlbWJuY2Ugb2YgYW11IGNhcm5hbCBwbGVhc3VyZS4=",
"epan": "***********",
"emboss_name": "BRUCE MCLAREN",
"expiry": "03/27",
"token": 123456789
}
}V2 Card Renew/Replace
V2 - status of the token will reflect card status IF update_digital_token is set to true in the request.
API schema available here.
{
"api_call_unique_identifier": "438574812345678905",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"status_nwk": 1000,
"image_fields": "11111",
"xml_fields": "11111",
"image_delivery": 1,
"image_name": "paymentology",
"tok_flags": "00000000000000000000000000000000",
"token": 123456789,
"card_action": 1,
"card_type": 2,
"reason": "Lost my card",
"crd_prdct_id": 111,
"exp_date": "2027-02-14 12:12:12",
"emboss_name": "Oscar Piastri",
"ch_ref": "Mr",
"del_title": "Mr",
"del_fname": "Oscar",
"del_sname": "Piastri",
"del_addr1": "1 Oxford St",
"del_addr2": "Nadipur",
"del_pcode": "SW1",
"del_city": "London",
"del_country": "Australia",
"del_email": "[email protected]",
"del_mobile": "12131415161",
"del_pass_code": "0001",
"del_method": 1,
"del_account": 1234567,
"del_region": "ENG",
"pur_title": "Mr",
"pur_fname": "Oscar",
"pur_sname": "Piastri",
"pur_addr1": "1 Oxford St",
"pur_addr2": "Nadipur",
"pur_pcode": "SW1",
"pur_city": "London",
"pur_country": "Australia",
"pur_email": "[email protected]",
"pur_mobile": "12131415161",
"pur_account": 1234567,
"pur_pass_code": "pass code",
"pur_region": "ENG",
"pur_cust_type": 0,
"bulk_delv_add_code": 0,
"del_code": 0,
"card_manuf_id": 1,
"carrier_type": "1",
"carrier_insrt1": 1,
"carrier_insrt2": 1,
"carrier_lang": "ENG",
"envelope_ref": 1,
"ext_line1": "ALD07",
"ext_line2": "ALD07",
"custom_1": "custom1",
"emboss_line4": "string",
"track_3": "track3",
"fulfil1": "fulfil1",
"fulfil2": "fulfil2",
"product_ref": "string",
"client_card_ref": "client choice",
"inherit_rules": 0,
"update_digital_token": true,
"3ds_lang": "en",
"3ds_challenge_methods": [
{
"ids": "497f6eca-1234-1234-bfeb-53chhhhh7f08"
}
],
"3ds_challenge_profile": "950c887e-8yua-1234-1234-d22f90d269f8"
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {
"cvv": "***",
"image_base64": "ZSBzaF0ydJK2ZWhlbWVuY2Igb2YgJK99IGNhcm5hbCBwbGVhc3VyZS4=",
"epan": "***********",
"emboss_name": "OSCAR PIASTRI",
"expiry": "03/27",
"token": 123456780,
"cu_id": 565656567,
"cu_ref": "454545456"
}
}When the card status is changed, MeaWallet is automatically updated based on the following logic:
| Card status_nwk | Token status |
|---|---|
| = 1000: Fully operational DE39=00 | Unsuspends all linked tokens |
| = 1199: Void card - report DE39=05 | Deletes all linked tokens |
| ≠ 1000 or 1199: | Suspends all linked tokens |
Scheme initiated
This is the process of token lifecycle management where the client manages the token through the Scheme's portal or MSP.
Example:
- Client logs in to VTS or MDES portal to suspend a token. VTS/MDES will notify our MeaWallet's system , which notifies Banking.Live. Banking.Live then sends client a TNR with Token state = SUSPENDED.
Any changes to the token or card status results in TNR. These notifications are useful to update cardholders on token events. More on TNR specifications here.
Client initiated
This is the process of token lifecycle management where the client integrates to the Banking.Live Tokenization Customer Service APIs directly.
Example:
- Client has their own UI/portal intended to manage tokens. With this integration, when a token is updated in the clients UI/portal, the Tokenization Customer Service APIs will trigger the token management by notifying MeaWallet, who in turn updates the scheme.
Endpoint integration
In order for a client to utilize Client initiated LCM, clients are required to integrate with the Tokenization Customer Service APIs below.
Token activate
Used to activate a token for digitization that has been approved and provisioned but requires additional cardholder authentication prior to activation. May be used for call center and Issuer application activation methods.
API schema available here.
{
"api_call_unique_identifier": "438123456789057485",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"token": 123456789,
"commentText": "Customer found a device.",
"reasonCode": "A",
"activationCode": "654321",
"tspToken": "DWSPMC12345678123456nvc7fetlv5huicghbhg6xpetgcq123"
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {
"responseId": "string",
"tokenUniqueReference": "string",
"commentId": "string",
"errors": [
{
"category": "string",
"code": "string",
"description": "string",
"emitter": "string"
}
]
}
}Update token account
Used to update PAN. The PAN can be renewed, updated and closed/voided.
API schema available here.
{
"api_call_unique_identifier": "438574812345678905",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"token": 123456789,
"replacement_token": 123456788,
"commentText": "Cardholder change.",
"reasonCode": "AU"
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {}
}Search V3
Retrieves all tokens and their details by means of PAN, token unique reference, token, payment app instance ID etc.
API schema available here.
{
"api_call_unique_identifier": "438574123456789085",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"token": 123456789
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {
"responseId": "string",
"accounts": [
{
"accountPanSuffix": "string",
"financialAccountSuffix": "string",
"countryCode": "string",
"interbankCardAssociationId": "string",
"institutionName": "string",
"expirationDate": {
"month": "string",
"year": "string",
"expiry": "string"
},
"Tokens": [
{
"panReferenceId": "string",
"tokenReferenceId": "string",
"tokenRequestorId": "string",
"tokenRequestorName": "string",
"issuerPanReferenceId": "string",
"correlationId": "string",
"walletAccountId": "string",
"accountIdHash": "string",
"tokenAssuranceLevel": "string",
"tokenExpiry": {
"month": "string",
"year": "string",
"expiry": "string"
},
"tokenStatus": "string",
"tokenType": "string",
"deactivationDate": "string",
"lastTokenStatusUpdatedTimestamp": "string",
"entityOfLastAction": "string",
"operatorId": "string",
"riskInfo": {
"walletProviderRiskAssessment": "string",
"walletProviderRiskAssessmentVersion": "string",
"walletProviderAccountScore": "string",
"walletProviderDeviceScore": "string",
"walletProviderReasonCodes": "string",
"deviceBluetoothMac": "string",
"deviceIMEI": "string",
"deviceSerialNumber": "string",
"deviceTimeZone": "string",
"deviceTimeZoneSetting": "string",
"osID": "string",
"simSerialNumber": "string",
"deviceLostMode": "string",
"daysSinceConsumerDataLastAccountChange": "string",
"accountHolderName": "string",
"walletProviderPANAge": "string",
"walletAccountHolderCardNameMatch": "string",
"accountToDeviceBindingAge": "string",
"userAccountFirstCreated": "string",
"provisioningAttemptsOnDeviceIn24Hours": "string",
"distinctCardholderNames": "string",
"deviceCountry": "string",
"walletAccountCountry": "string",
"suspendedCardsInAccount": "string",
"daysSinceLastAccountActivity": "string",
"numberOfTransactionsInLast12months": "string",
"numberOfActiveTokens": "string",
"deviceWithActiveTokens": "string",
"activeTokensOnAllDeviceForAccount": "string",
"visaTokenScore": "string",
"visaTokenDecisioning": "string",
"riskAssessmentScore": "string"
},
"deviceInfo": {
"deviceName": "string",
"serialNumber": "string",
"formFactor": "string",
"isoDeviceType": "string",
"osName": "string",
"osVersion": "string",
"imei": "string",
"msisdn": "string",
"paymentTypes": [
{}
],
"storageTechnology": "string",
"cardCaptureTechnology": "string"
},
"otpCodeIndicator": "string",
"otpCodeExpiration": "string",
"otpVerificationAttempts": 0,
"otpVerificationRetryCounts": 0,
"last4ofPAN": "string",
"last4ofPrevPAN": "string",
"provisioningTime": "string",
"lastReplenishTime": "string",
"issuerCardholderId": "string",
"walletProviderId": "string",
"currentStatusDescription": "string",
"digitizationRequestDateTime": "string",
"finalTokenizationDecision": "string",
"lastCommentId": "string",
"paymentAppInstanceId": "string",
"provisioningStatusCode": "string",
"provisioningStatusDescription": "string",
"storageTechnology": "string",
"suspenders": [
"string"
],
"tokenActivatedDateTime": "string",
"walletId": "string",
"tokenDeletedFromConsumerApp": "string",
"tokenSuffix": "string",
"Token": "string"
}
]
}
],
"errors": [
{
"category": "string",
"code": "string",
"description": "string",
"emitter": "string"
}
]
}
}Token delete
Used to delete a token so that it can not initiate any new transactions. A deleted token can not be returned to an active state.
API schema available here.
{
"api_call_unique_identifier": "438574123456789085",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"token": 123456789,
"commentText": "Customer found a device.",
"reasonCode": "T",
"tspToken": "DWSPMC12345678912345nvc7fetlv5ghyhgygfgg6xpetgcq123"
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {}
}Token suspend
Used to suspend an active token so that it can not initiate any new transactions. A suspended token can be returned to an active state.
API schema available here.
{
"api_call_unique_identifier": "43857412345678985",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"token": 123456789,
"commentText": "Customer misplaced device.",
"tspToken": "DWSPMC12345678909734nvc7fetlv5ghytghytgu6xpetgcq123",
"reasonCode": "Z"
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {
"responseId": "string",
"tokenUniqueReference": "string",
"commentId": "string",
"errors": [
{
"category": "string",
"code": "string",
"description": "string",
"emitter": "string"
}
]
}
}Token unsuspend
Used to resume a token in a suspended state.
API schema available here.
{
"api_call_unique_identifier": "43857123456789085",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"token": 123456789,
"commentText": "Customer found device.",
"reasonCode": "T",
"tspToken": "DWSPMC1234567890981nvc7fetlv5hyghyghygg6xpetgcq123"
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {
"responseId": "string",
"tokenUniqueReference": "string",
"commentId": "string",
"errors": [
{
"category": "string",
"code": "string",
"description": "string",
"emitter": "string"
}
]
}
}Token update
Updates token to account PAN mapping information or Issuer configuration ID associated to an already provisioned token.
API schema available here.
{
"api_call_unique_identifier": "438574123456789085",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"token": 123456789,
"commentText": "Activated card."
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {
"errorCode": "00",
"tokens": [
{
"tokenReferenceId": "string",
"commentId": "string",
"taskID": "string",
"tokenRequestorID": "string",
"panReferenceID": "string",
"statusCode": "PENDING",
"errorCode": "00"
}
],
"keyValues": {
"key": "A",
"value": "Value 1"
}
}
}Token approve device binding
Binds a device to an already provisioned token.
API schema available here.
{
"api_call_unique_identifier": "438574841234567895",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"token": 123456789,
"tspToken": "DWSPMC00012345678904nvc7fetlv5hghygftgyhu6xpetgcq123",
"deviceId": "kikitxjvoycqxqeqwpyovghyghyuhgyuhgyuhyulosbzfb",
"deviceIndex": "1",
"commentText": "Customer has new device."
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {
"responseId": "string",
"tokenUniqueReference": "string",
"commentId": "string",
"errors": [
{
"category": "string",
"code": "string",
"description": "string",
"emitter": "string"
}
]
}
}Token remove device binding
Unbinds a device from an already provisioned token.
API schema available here.
{
"api_call_unique_identifier": "438574123456789085",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"token": 123456789,
"tspToken": "DWSPMC00123456789098nvc7fetlv5huicghyghy6xpetgcq123",
"deviceId": "kikitxjvoycqxghtyghujijvsyfksldbxpghtgyhgtygzfb",
"deviceIndex": "1",
"commentText": "Customer has new device."
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {
"responseId": "string",
"tokenUniqueReference": "string",
"commentId": "string",
"errors": [
{
"category": "string",
"code": "string",
"description": "string",
"emitter": "string"
}
]
}
}Update token product configuration
Product Configuration ID is the metadata of the card linked to token. This endpoint offers clients the functionality to change the card metadata throughout the lifecycle of the token linked to a card.
Example:
Cardholder has an existing Apple Pay token, and the cardholder is upgraded to a premium cardholder. This endpoint offers changed to how the premium card will look in the Apple Pay digital wallet.
API schema available here.
{
"api_call_unique_identifier": "438574812345678905",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"token": 123456789,
"productConfigurationId": "PLATINUM201",
"tokenUniqueReference": "DNITHEgx1ZI57H5eGHGpoFpppFnoy10",
"commentText": "Lorem ipsum."
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {
"tokens": [
{
"responseId": "1234",
"isSuccessful": true,
"tokenUniqueReference": "DWSPMC12345678901206a349d9ca4eb1a4d53e3c90a11d9c",
"tokenRequestorId": "string",
"commentId": "string"
}
]
}
}Mada Pay clients
Automated
For clients subscribed to Mada Pay, Paymentology will automatically notify Mada of the card status when it has been updated in Banking.Live.
Clients use the Set Card Status API endpoint to update the card status, and Paymentology will update the DPAN status with Mada accordingly.
Example flow:
- Client calls Set Card Status endpoint
- Paymentology updates the card status in the backend
- Paymentology checks if card is tokenized with Mada
- If card is tokenized with Mada, Paymentology calls Mada's token lcm API to update card status.
Endpoint integration
Mada clients are required to integrate with the Set Card Status endpoint.
V1 Set Card Status
V1 - status of the token will always reflect card status.
API schema available here.
{
"api_call_unique_identifier": "43851234567890485",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"status_nwk": "1199",
"token": 123456789,
"action": 1,
"note": "string"
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {
"status_nwk": 1199
}
}When the card status is changed, Mada is automatically updated based on the following logic:
| Description | Mada operationReason | Mada operationType |
|---|---|---|---|
| Fully operational | USER_DECISION | ACTIVATE/RESUME |
| Refer to issuer | ISSUER_DECISION | SUSPEND |
| Capture card | USER_DECISION | SUSPEND |
| Decline all txns | USER_DECISION | SUSPEND |
| Honour with ID | USER_DECISION | SUSPEND |
| Lost card - capture | DEVICE_LOST | SUSPEND |
| Stolen card - capture | DEVICE_STOLEN | SUSPEND |
| Expired card - report | ISSUER_DECISION | SUSPEND |
| Expire card - don't inform | ISSUER_DECISION | SUSPEND |
| Restricted card | ISSUER_DECISION | SUSPEND |
| Void card - report | ACCOUNT_CLOSED | DELETE |
Scheme initiated
When scheme initiated LCM occurs, Paymentology will inform client of token updates via TNR
Any changes to the token or card status results in TNR. These notifications are useful to update cardholders on token events. More on TNR specifications here.
Client initiated
Mada Pay clients are required to integrate with the following endpoints:
Mada token inquiry
API schema available here.
{
"api_call_unique_identifier": "438574812345678905",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"token": 0,
"tokenReferenceID": "string"
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {
"panReferenceID": "string",
"operatorID": "string",
"entityOfLastAction": "string",
"walletAccountEmailAddressHash": "string",
"clientWalletAccountID": "string",
"panSource": "string",
"consumerEntryMode": "string",
"cardMetadataProfileID": "string",
"lastFourOfPAN": 0,
"lastFourOfPreviousPAN": 0,
"otpInfo": {
"otpCodeIndicator": "string",
"otpCodeExpiration": "string",
"otpVerificationAttempts": 0,
"otpVerificationRetryCounts": 0
},
"issuerDiscretionaryData": {
"fileControlInformation": "string",
"issuerApplicationDiscretionaryData": "string"
},
"deviceBindingInfoList": [
{
"deviceIndex": 0,
"deviceID": "string",
"deviceName": "string",
"deviceBindingStatus": "string"
}
],
"decryptedData": {
"tokenInfo": {
"token": "string",
"tokenType": "SECURE_ELEMENT",
"tokenStatus": "ACTIVE",
"tokenExpirationDate": {
"month": "string",
"year": "string",
"expiry": "string"
},
"tokenAssuranceLevel": "string",
"numberOfActiveTokensForPAN": 0,
"numberOfInactiveTokensForPAN": 0,
"numberOfSuspendedTokensForPAN": 0,
"originalToken": "string",
"originalTokenAssuranceLevel": "string",
"originalTokenRequestorID": "string",
"originalTokenReferenceID": "string",
"tokenActivationDate": "string",
"lastTokenStatusUpdatedTime": "string",
"tokenAssuranceMethod": "string"
},
"deviceInfo": {
"deviceName": "string",
"serialNumber": "string",
"formFactor": "string",
"isoDeviceType": "string",
"osName": "string",
"osVersion": "string",
"imei": "string",
"msisdn": "string",
"paymentTypes": [
{}
],
"storageTechnology": "string",
"cardCaptureTechnology": "string"
},
"riskInfo": {
"walletProviderRiskAssessment": "string",
"walletProviderRiskAssessmentVersion": "string",
"walletProviderAccountScore": "string",
"walletProviderDeviceScore": "string",
"walletProviderReasonCodes": "string",
"deviceBluetoothMac": "string",
"deviceIMEI": "string",
"deviceSerialNumber": "string",
"deviceTimeZone": "string",
"deviceTimeZoneSetting": "string",
"osID": "string",
"simSerialNumber": "string",
"deviceLostMode": "string",
"daysSinceConsumerDataLastAccountChange": "string",
"accountHolderName": "string",
"walletProviderPANAge": "string",
"walletAccountHolderCardNameMatch": "string",
"accountToDeviceBindingAge": "string",
"userAccountFirstCreated": "string",
"provisioningAttemptsOnDeviceIn24Hours": "string",
"distinctCardholderNames": "string",
"deviceCountry": "string",
"walletAccountCountry": "string",
"suspendedCardsInAccount": "string",
"daysSinceLastAccountActivity": "string",
"numberOfTransactionsInLast12months": "string",
"numberOfActiveTokens": "string",
"deviceWithActiveTokens": "string",
"activeTokensOnAllDeviceForAccount": "string",
"visaTokenScore": "string",
"visaTokenDecisioning": "string",
"riskAssessmentScore": "string"
}
}
}
}Mada token lcm
API schema available here.
{
"api_call_unique_identifier": "438574812345678905",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"token": 0,
"operationReason": "USER_DECISION",
"operationType": "DELETE",
"commentText": "string"
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {
"errorCode": "00",
"tokens": [
{
"tokenReferenceId": "string",
"commentId": "string",
"taskID": "string",
"tokenRequestorID": "string",
"panReferenceID": "string",
"statusCode": "PENDING",
"errorCode": "00"
}
]
}
}Mada token update
API schema available here.
{
"api_call_unique_identifier": "438599999999997485",
"client_id": 123456,
"user_id": "string",
"remarks": "string",
"old_token": 0,
"new_token": 0,
"operationReasonCode": "PAN_REPLACE",
"operationReason": "Lost token",
"commentText": "string",
"deviceInfo": {
"deviceId": "string",
"serialNumber": "string",
"imei": "string",
"msisdn": "string",
"deviceLanguageCode": "string",
"deviceName": "string",
"isoDeviceType": "string",
"deviceManufacturer": "string",
"deviceBrand": "string",
"deviceModel": "string",
"formFactor": "PHONE",
"storageTechnology": "string",
"paymentTypes": [
"string"
],
"osName": "string",
"osVersion": "string",
"osBuildId": "string",
"deviceLocation": "string",
"deviceIPAddressV4": "string",
"locationSource": "string",
"tokenProtectionMethod": "string",
"deviceNumber": "string",
"fourLastDigitPhoneNumber": "string",
"deviceBluetoothMac": "string",
"timeZone": "string",
"timeZoneSettings": "string",
"deviceIndex": "string"
}
}{
"header": {
"error_id": 0,
"error_desc": "success"
},
"body": {
"errorCode": "00",
"tokens": [
{
"tokenReferenceId": "string",
"commentId": "string",
"taskID": "string",
"tokenRequestorID": "string",
"panReferenceID": "string",
"statusCode": "PENDING",
"errorCode": "00"
}
],
"keyValues": {
"key": "A",
"value": "Value 1"
}
}
}Updated 7 months ago
