Skip to main content
Search

05-Wrong Address Verification

  • This test case intentionally submits an incorrect or non-existent beneficiary address to verify that the system properly handles address verification failures.
  • The purpose is to test error handling scenarios and ensure your application correctly processes address verification errors in the Travel Rule workflow.

Expected Request (VASP → GTR)

  • Method: POST
  • Base URL: https://uat-platform.globaltravelrule.com
  • Endpoint: /api/verify/v2/one_step
  • Authentication:
    • mTLS (Mutual Transport Layer Security) when sending the API
    • JWT Bearer Token or App Token authentication via Authorization header
  • Header:
    • Content-Type: application/json
    • Authorization: Bearer [JWT_TOKEN] or X-Authorization: [APP_TOKEN]
  • Body:
{
"requestId": "[REQUEST_ID]",
"network": "[NETWORK]",
"address": "INVALID_WRONG_ADDRESS_123456789",
"tag": "[TAG]",
"txId": null,
"verifyDirection": 2,
"targetVaspCode": "[TARGET_VASP_CODE]",
"ticker": "[TICKER]",
"amount": "[AMOUNT]",
"fiatName": "USD",
"fiatPrice": "[FIAT_PRICE]",
"sourceVaspCode": "",
"expectVerifyFields": ["110026","110025","110045"],
"piiSecuredInfo": {
"initiatorKeyInfo": {
"publicKey": "[MY_PUBLIC_KEY]"
},
"piiSecretFormatType": "FULL_JSON_OBJECT_ENCRYPT",
"piiSpecVersion": "ivms101-2020",
"receiverKeyInfo": {
"publicKey": "[THEIR_PUBLIC_KEY]"
},
"secretAlgorithm": "ed25519_curve25519",
"securedPayload": "[ENCRYPTED_PII]"
}
}
set -e

export CURL_SSL_BACKEND="openssl"
randomRequestId="test-"$(openssl rand -base64 48 | tr -dc 'a-zA-Z0-9' | head -c "12")"-"$(date '+%Y%m%d%H%M%S')

curl -v --silent --location --request POST 'https://uat-platform.globaltravelrule.com/api/verify/v2/one_step' \
-k --cert ./certificate.pem --key ./privateKey.pem \
--header 'Content-Type: application/json' \
--header 'ignore-detect: true' \
# Please use one of Authorization or X-Authorization
--header 'Authorization: Bearer [JWT_TOKEN]' \
--header 'X-Authorization: [APP_TOKEN]' \
--data-raw "{
\"requestId\": \"$randomRequestId\",
\"network\": \"[NETWORK]\",
\"address\": \"INVALID_WRONG_ADDRESS_123456789\",
\"tag\": \"[TAG]\",
\"txId\": null,
\"verifyDirection\": 2,
\"targetVaspCode\": \"[TARGET_VASP_CODE]\",
\"ticker\": \"[TICKER]\",
\"amount\": \"[AMOUNT]\",
\"fiatName\": \"USD\",
\"fiatPrice\": \"[FIAT_PRICE]\",
\"sourceVaspCode\": \"\",
\"expectVerifyFields\": [\"110026\",\"110025\",\"110045\"],
\"piiSecuredInfo\": {
\"initiatorKeyInfo\": {
\"publicKey\": \"[MY_PUBLIC_KEY]\"
},
\"piiSecretFormatType\": \"FULL_JSON_OBJECT_ENCRYPT\",
\"piiSpecVersion\": \"ivms101-2020\",
\"receiverKeyInfo\": {
\"publicKey\": \"[THEIR_PUBLIC_KEY]\"
},
\"secretAlgorithm\": \"ed25519_curve25519\",
\"securedPayload\": \"[ENCRYPTED_PII]\"
}
}"

Hint:

  • address field is intentionally set to an invalid/non-existent address for testing
  • verifyDirection is set to 2 for Pre-Transaction Travel Rule
  • txId is null for Pre-Transaction scenario
  • Use targetVaspCode: gdummy to ensure you get the expected test result
  • This test verifies that your error handling logic works correctly

Materials:


Expected Response (GTR → VASP)

{
"verifyMessage": "Address Not Found",
"verifyStatus": 200001,
"verifyStage": "ADDRESS_VERIFICATION"
}

When the beneficiary address does not exist or cannot be verified by the target VASP, the system returns:

  • HTTP Status Code: 200
  • verifyStatus: 200001 (Address Not Found)
  • verifyStage: ADDRESS_VERIFICATION
  • No PII verification will be performed (first stage failure)

⚠️ Verify your application properly handles this error by:

  • Detecting verifyStatus 200001 as an address verification failure
  • Not proceeding with blockchain transaction when address verification fails
  • Prompting user to verify and correct the beneficiary address
  • Implementing proper error logging and user notification

⚠️ Expected Behavior After This Error:

  • Cancel withdrawal process
  • Ask user to re-verify beneficiary address
  • Do not execute asset transfer to blockchain
  • Log error for compliance and debugging purposes