15-PII Verify Success (Legal Person / Post-Transaction)
- Post-Transaction Approval - PII Verification for Legal Person originator.
- This test case verifies a correct TXID along with accurate legal person PII data placed in the Originator field, sent to
targetVaspCode: gdummy, and successfully obtains Legal Person verification results. - In the received verification result, all items in
verifyFieldsshould have status 1 (matched).
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/jsonAuthorization: Bearer [JWT_TOKEN]orX-Authorization: [APP_TOKEN]
- Body:
{
"requestId": "[YOUR_REQUEST_ID]",
"network": "[NETWORK_NAME]",
"address": "[ORIGINATOR_ADDRESS]",
"tag": "[TAG]",
"txId": "[VALID_TX_ID]",
"verifyDirection": 1,
"targetVaspCode": "gdummy",
"ticker": "[TICKER_NAME]",
"amount": "[CRYPTO_TRANSFER_AMOUNT]",
"fiatName": "USD",
"fiatPrice": "[FIAT_RATIO_PRICE]",
"sourceVaspCode": "",
"expectVerifyFields": [
"101001",
"101022",
"101003"
],
"piiSecuredInfo": {
"initiatorKeyInfo": {
"publicKey": "[YOUR_PUBLIC_KEY]"
},
"piiSecretFormatType": "FULL_JSON_OBJECT_ENCRYPT",
"piiSpecVersion": "ivms101-2020",
"receiverKeyInfo": {
"publicKey": "[THEIR_PUBLIC_KEY]"
},
"secretAlgorithm": "ed25519_curve25519",
"securedPayload": "[PII_ENCRYPTED_PAYLOAD]"
}
}
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' \
# Please use one of Authorization or X-Authorization
--header 'Authorization: Bearer [JWT_TOKEN]' \
--header 'X-Authorization: [APP_TOKEN]' \
--data-raw "{
\"requestId\": \"$randomRequestId\",
\"network\": \"[NETWORK_NAME]\",
\"address\": \"[ORIGINATOR_ADDRESS]\",
\"tag\": \"[TAG]\",
\"txId\": \"[VALID_TX_ID]\",
\"verifyDirection\": 1,
\"targetVaspCode\": \"gdummy\",
\"ticker\": \"[TICKER_NAME]\",
\"amount\": \"[CRYPTO_TRANSFER_AMOUNT]\",
\"fiatName\": \"USD\",
\"fiatPrice\": \"[FIAT_RATIO_PRICE]\",
\"sourceVaspCode\": \"\",
\"expectVerifyFields\": [
\"101001\",
\"101022\",
\"101003\"
],
\"piiSecuredInfo\": {
\"initiatorKeyInfo\": {
\"publicKey\": \"[YOUR_PUBLIC_KEY]\"
},
\"piiSecretFormatType\": \"FULL_JSON_OBJECT_ENCRYPT\",
\"piiSpecVersion\": \"ivms101-2020\",
\"receiverKeyInfo\": {
\"publicKey\": \"[THEIR_PUBLIC_KEY]\"
},
\"secretAlgorithm\": \"ed25519_curve25519\",
\"securedPayload\": \"[PII_ENCRYPTED_PAYLOAD]\"
}
}"
Hint:
targetVaspCodeis fixed asgdummyfor testing verification resultsverifyDirectionis set to 1 for Post-Transaction ApprovaltxIdis required and must be a valid blockchain transaction ID for Post-Transaction scenariosaddressis the originator address (FROM address) in Post-Transaction scenarios- Important: PII information should be placed in the Originator field in the IVMS payload, not Beneficiary
expectVerifyFieldsmust include correct Originator Legal Person verification field codes101001: Originator Legal Person Name101022: Originator Legal Person Country of Registration101003: Originator Legal Person National Identifier ID
Materials:
Expected Response (GTR → VASP)
When the PII is successfully verified by the target VASP, you will receive:
- HTTP Status Code: 200
verifyStatus: 100000 (success)verifyStage: PII_VERIFICATION (indicates prior stage TRANSACTION_VERIFICATION has already passed)- All
verifyFieldshavestatus1 (matched).
{
"data": {
"targetVaspCode": "gdummy",
"requestId": "[YOUR_REQUEST_ID]",
"verifyFields": [
{
"message": "matched",
"status": 1,
"type": "101001"
},
{
"message": "matched",
"status": 1,
"type": "101022"
},
{
"message": "matched",
"status": 1,
"type": "101003"
}
],
"piiSecuredInfo": {
"initiatorKeyInfo": {
"publicKey": "[YOUR_PUBLIC_KEY]"
},
"piiSecretFormatType": "FULL_JSON_OBJECT_ENCRYPT",
"piiSpecVersion": "ivms101-2020",
"receiverKeyInfo": {
"publicKey": "[THEIR_PUBLIC_KEY]"
},
"secretAlgorithm": "ed25519_curve25519",
"securedPayload": "[PII_FROM_ORIGINATOR]"
}
},
"verifyMessage": "Verification Success",
"verifyStatus": 100000,
"verifyStage": "PII_VERIFICATION"
}