Skip to main content
Search

03-Address Routing (Post-Transaction)

  • This test case validates your callback server's ability to handle address routing detection for Post-Transaction scenarios.
  • GTR will send a callback request (callbackType=10, verifyTargetType=2) to check if a specific address belongs to your system and potentially redirect to another local entity within your corporate group.
  • Post-Transaction scenario: your server should check both beneficiaryAddress and transactionInfo.txId.

GTR Request (GTR → VASP)

  • Method: POST
  • Your Callback Endpoint: https://[YOUR_CALLBACK_URL]
  • Authentication:
    • mTLS (Mutual Transport Layer Security) - GTR will authenticate using client certificates
  • Header:
    • Content-Type: application/json
  • Body:
{
"requestId": "test-[RANDOM_ID]",
"invokeVaspCode": "[YOUR_VASP_CODE]",
"originatorVasp": "[YOUR_VASP_CODE]",
"beneficiaryVasp": "[TESTER_VASP_CODE]",
"callbackType": 10,
"callbackData": {
"requestId": "test-[RANDOM_ID]",
"verifyTargetType": 2,
"transactionInfo": {
"network": "[NETWORK_SYMBOL]",
"txId": "[TX_ID]"
},
"beneficiaryAddress": {
"address": "[TEST_ADDRESS]",
"tag": "[ADDRESS_TAG]"
},
"initiatorVasp": "[TESTER_VASP_CODE]"
}
}
curl -v --location --request POST 'https://[YOUR_CALLBACK_URL]' \
-k \
--header 'Content-Type: application/json' \
--data-raw '{
"requestId": "test-abc123def456",
"invokeVaspCode": "[YOUR_VASP_CODE]",
"originatorVasp": "[YOUR_VASP_CODE]",
"beneficiaryVasp": "[TESTER_VASP_CODE]",
"callbackType": 10,
"callbackData": {
"requestId": "test-abc123def456",
"verifyTargetType": 2,
"transactionInfo": {
"network": "[NETWORK_SYMBOL]",
"txId": "[TX_ID]"
},
"beneficiaryAddress": {
"address": "[TEST_ADDRESS]",
"tag": "[ADDRESS_TAG]"
},
"initiatorVasp": "[TESTER_VASP_CODE]"
}
}'

Hint:

  • callbackType: 10 indicates address routing detection
  • verifyTargetType: 2 indicates Post-Transaction scenario (with TXID)
  • Your server should respond within 2 seconds
  • Check both beneficiaryAddress AND transactionInfo.txId

Materials:


Expected Response (VASP → GTR)

Your server should return one of the following responses depending on the address lookup result:

Response A: Address Found (belongs to this VASP)

{
"verifyStatus": 100000,
"verifyMessage": "",
"data": {
"redirectVaspCode": null
}
}

Response B: Address Found but Wrong VASP (redirect needed)

{
"verifyStatus": 200017,
"verifyMessage": "address/tx exists, but wrong VASP",
"data": {
"redirectVaspCode": "[CORRECTED_VASP_CODE]"
}
}

Response C: Address Not Found

{
"verifyStatus": 200001,
"verifyMessage": "address is not found"
}

Test Validation

Success Criteria:

  • ✅ Your callback server responds within 2 seconds
  • ✅ HTTP status code 200 returned
  • ✅ Correct verifyStatus for the found/redirect/not found scenarios
  • ✅ Proper routing to correct entity (if applicable)

Common Issues:

  • ⚠️ Timeout: Ensure address lookup completes within 2 seconds
  • ⚠️ Wrong verifyTargetType: This test uses type 2 (Post-Transaction with TXID)
  • ⚠️ Missing TXID validation: Check both address AND transaction ID
  • ⚠️ Incorrect routing logic: Ensure proper entity routing within corporate group