PII Verification Callback
Method
POST
Url
https://{YOUR_SERVICE_URL}/(pii verify: 4)
This callback API endpoint is for PII verification. Initiator will send you encrypted PII via GTR and you will need to decrypt the payload with your own private key and verify the received PII with your KYC/KYB datasource from multiple perspectives.
Authentication
No authentication
Path Parameters
No path parameters
Query Parameters
No query parameters
Request Body (Optional)
- Schema
- Example
{
"beneficiaryVasp": "string",
"initiatorExpectVerifyFields": [
"string"
],
"originatorExpectVerifyFields": [
"string"
],
"verifyMessage": "string",
"emptyPiiSchema": "string",
"travelruleId": "string",
"txId": "string",
"originatorVasp": "string",
"piiSecuredInfo": {
"piiSpecVersion": "ivms101-2020",
"secretAlgorithm": "ecies_secp256r1",
"receiverKeyInfo": "(Refer to inner structure)",
"initiatorKeyInfo": "(Refer to inner structure)",
"securedPayload": "(base64 or other format's encrypted raw text)",
"encryptionParams": "(Refer to inner structure)",
"piiSecretFormatType": "FULL_JSON_OBJECT_ENCRYPT"
},
"receiverPublicKey": "string",
"network": "string",
"hashSalt": "string",
"fiatName": "string",
"verifyStatus": 0,
"requestId": "string",
"beneficiaryVaspName": "string",
"fiatPrice": "string",
"tag": "string",
"beneficiaryPublicKey": "string",
"verificationDirection": 0,
"initiatorVasp": "string",
"amount": "string",
"encryptedPayload": "string",
"ticker": "string",
"address": "string",
"addressType": 0,
"receiverVasp": "string",
"originatorPublicKey": "string",
"secretType": 0,
"originatorVaspName": "string",
"initiatorPublicKey": "string"
}
Responses
Status 200
OK
JSON Content
- Schema
- Example
{
"data": {
"encryptedPayload": "string",
"verifyFields": [
{
"message": "string",
"type": "110026",
"status": 1
}
],
"requestId": "string",
"initiatorPublicKey": "string",
"piiSecuredInfo": {
"piiSpecVersion": "ivms101-2020",
"secretAlgorithm": "ecies_secp256r1",
"receiverKeyInfo": "(Refer to inner structure)",
"initiatorKeyInfo": "(Refer to inner structure)",
"securedPayload": "(base64 or other format's encrypted raw text)",
"encryptionParams": "(Refer to inner structure)",
"piiSecretFormatType": "FULL_JSON_OBJECT_ENCRYPT"
},
"preflightCheckStatus": "string",
"receiverPublicKey": "string",
"preflightCheckMessage": "string"
},
"verifyStatus": 0,
"verifyMessage": "string"
}
Status HTTP Status: 200, VerifyStatus: 100000
JSON Content
- Schema
- Example
{
"data": {},
"verifyStatus": 0,
"verifyMessage": "string"
}
-
If your VASP is in the deposit side(it is an inbound transaction to you), the
verificationDirectionwill be 2:- you need to check
beneficiary_address+tagin the request to identify your customer.
- you need to check
-
If your VASP is in the withdrawal side(it is an outbound transaction to you), the
verificationDirectionwill be 1:- you need to match the Originator info in the PII payload you received with your owned KYC data.
Before you respond:
- You are required fill in your VASP info into PII's
BeneficiaryVASP(If you're in the deposit side) orOriginatingVASP(If you're in the withdrawal side) - You are required to fill in
verifyFieldsto let the Travel Rule initiator knows the matching/mismatching status of each specific PII fields. - You can also include
prefightCheckstatus to let initiator know whether you will accept this transaction or not (Only suitable when your VASP is the Beneficiary VASP in a pre-transaction situation).
Response Example 1: Success
HTTP Status: 200, VerifyStatus: 100000
{"verifyStatus": 100000,"verifyMessage": "Verify Success"}
This response indicates that the PII verification was successful.
Response Example 2: Decryption Fail
HTTP Status: 200, VerifyStatus: 200002
{"verifyStatus": 200002,"verifyMessage": "Decrypt failed"}
This response indicates that the PII decryption failed using your private key.
Response Example 3: PII Verification Fail
HTTP Status: 200, VerifyStatus: 200003
{"verifyStatus": 200003,"verifyMessage": "PII Verification Failed"}