Skip to main content
Search

02-Address Routing (Pre-Transaction)

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

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": "[TESTER_VASP_CODE]",
"beneficiaryVasp": "[YOUR_VASP_CODE]",
"callbackType": 10,
"callbackData": {
"requestId": "test-[RANDOM_ID]",
"verifyTargetType": 1,
"transactionInfo": {
"network": "[NETWORK_SYMBOL]",
"txId": null
},
"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": "[TESTER_VASP_CODE]",
"beneficiaryVasp": "[YOUR_VASP_CODE]",
"callbackType": 10,
"callbackData": {
"requestId": "test-abc123def456",
"verifyTargetType": 1,
"transactionInfo": {
"network": "[NETWORK_SYMBOL]",
"txId": null
},
"beneficiaryAddress": {
"address": "[TEST_ADDRESS]",
"tag": "[ADDRESS_TAG]"
},
"initiatorVasp": "[TESTER_VASP_CODE]"
}
}'

Hint:

  • callbackType: 10 indicates address routing detection
  • verifyTargetType: 1 indicates Pre-Transaction scenario (no TXID)
  • txId is null in Pre-Transaction address routing
  • Your server should respond within 2 seconds
  • Only beneficiaryAddress needs to be checked

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": 200007,
"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 1 (Pre-Transaction without TXID)
  • ⚠️ TXID handling: txId is null for Pre-Transaction scenarios
  • ⚠️ Incorrect routing logic: Ensure proper entity routing within corporate group