Wallet Verify Callback 1: Wallet Verify Result
Where should I integrate
Expiration reference
The create-verify API returns two expiration timestamps:
qrcodeExpiredAt: the current QR code session expiration time. When this one expires, the samerequestIdmay still be used to re-issue another QR code ifverifyExpiredAtis not reached yet.verifyExpiredAt: the hard expiration time for the wallet verification request. After this timestamp, the samerequestIdis no longer valid for issuing a new QR code. A new request must be initiated with a newrequestId.
About address screening result
For Wallet Verify callback, screeningResult is only included in the success callback.
- If wallet verification succeeds, GTR may include
screeningResultin the callback payload. - If wallet verification fails or expires, GTR will not include
screeningResult.
Case 1: Success
If Unhosted Wallet Owner successfully completed message signing, you can expect to receive below callback from GTR with callbackType:18 and verifyStatus:100000.
Once you receive this callback from GTR, you can continue the transfer.
If address screening is available, it will be included in this success callback only.
{
"requestId": "[REQUEST-ID]",
"invokeVaspCode": "YOUR_VASP_CODE",
"originatorVasp": "ORIGINATOR_VASP_CODE",
"beneficiaryVasp": "BENEFICIARY_VASP_CODE",
"callbackType": 18,
"callbackData": {
"notifyResult": {
"verifyMessage": "Verify Success",
"verifyStage": "WALLET_OWNER_VERIFICATION",
"verifyStatus": 100000
},
"screeningResult": {
"screeningStatus": "COMPLETED",
"message": "screening result present",
"vaspEntityName": "Axchange UK",
"vaspEntityId": "axchange-uk",
"vaspCode": "axchangeukadjk",
"riskTags": [
"Exchange & Trading Platforms",
"Centralized Exchange",
"Unknown Wallet"
],
"riskScore": 4.0
}
}
}
Case 2: Fail
If Unhosted Wallet Owner never scanned the QR Code with the right wallet or never completed message signing, you can expect to receive below callback from GTR with callbackType:18 and verifyStatus:100001.
Once you receive this callback from GTR, you should stop the process or ask your user to retry.
In this fail callback, screeningResult will not be included.
{
"requestId": "[REQUEST-ID]",
"invokeVaspCode": "YOUR_VASP_CODE",
"originatorVasp": "ORIGINATOR_VASP_CODE",
"beneficiaryVasp": "BENEFICIARY_VASP_CODE",
"callbackType": 18,
"callbackData": {
"notifyResult": {
"verifyMessage": "Verify Failed",
"verifyStage": "WALLET_OWNER_VERIFICATION",
"verifyStatus": 100001
}
}
}
Case 3: Expired
If Unhosted Wallet Owner never performed any operations, this request will be auto expired. After GTR mark this request as expired, you can expect to receive below callback from GTR with callbackType:18 and verifyStatus:100031.
Once you receive this callback from GTR, you should cancel the process from your end.
In this expired callback, screeningResult will not be included.
{
"requestId": "[REQUEST-ID]",
"invokeVaspCode": "YOUR_VASP_CODE",
"originatorVasp": "ORIGINATOR_VASP_CODE",
"beneficiaryVasp": "BENEFICIARY_VASP_CODE",
"callbackType": 18,
"callbackData": {
"notifyResult": {
"verifyMessage": "Verification Timeout",
"verifyStage": "WALLET_OWNER_VERIFICATION",
"verifyStatus": 100031
}
}
}