Transaction webhook

Every time a travel rule transaction is created, received, or changes its status, Notabene can notify the originator and beneficiary VASP (when applicable) via a Webhook.

The payload that is pushed by the webhook is the full transaction object (the same object that is returned after txCreate.

When you create a travel rule message, the webhook will push the full details:

{"id":"131c5ccb-dc36-49b7-8373-a98397d8f589","status":"NEW","transactionType":"TRAVELRULE","transactionAsset":"BTC","transactionAmount":"92000000000","chargedQuantity":19895920,"originatorDid":"did:ethr:0x3a26df3e7db0de90123cf441c496892ebf59ee8c","beneficiaryDid":"did:ethr:0xa37740dc2e5d069232bfe7629c4dd7f5ecf21250","showToBeneficiary":false,"originatorVASPdid":"did:ethr:0xd4bd902ec78578f33a20ff601504d2ab324cfab9","beneficiaryVASPdid":"did:ethr:0x270d4f239359471f1d1c80781a53cf8105f7d08f","transactionBlockchainInfo":{"txHash":"","origin":"bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wl4","destination":"bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh"},"ivms101":{"originatingVASP":{"originatingVASP":{"legalPerson":{"name":{"nameIdentifier":[{"legalPersonName":"Notabene VASP SG","legalPersonNameIdentifierType":"LEGL"}]}}}},"originator":{"accountNumber":["0xa40dfee99e1c85dc97fdc594b16a460717838703"],"originatorPersons":[{"naturalPerson":{"name":[{"nameIdentifier":[{"primaryIdentifier":"Frodo","secondaryIdentifier":"Baggins","nameIdentifierType":"LEGL"}]}],"nationalIdentification":{"countryOfIssue":"IT","nationalIdentifier":"123EE22","nationalIdentifierType":"DRLC"},"dateAndPlaceOfBirth":{"dateOfBirth":"1999-01-01","placeOfBirth":"NO"},"geographicAddress":[{"addressType":"HOME","streetName":"132 Test Street","city":"Milan","country":"IT","buildingNumber":"231","postCode":"M4R1V2"}]}}]},"beneficiaryVASP":{"beneficiaryVASP":{"legalPerson":{"name":{"nameIdentifier":[{"legalPersonName":"Mik Company","legalPersonNameIdentifierType":"LEGL"}]}}}},"beneficiary":{"accountNumber":["0x00000000219ab540356cbb839cbe05303d7705fa"],"beneficiaryPersons":[{"naturalPerson":{"name":[{"nameIdentifier":[{"primaryIdentifier":"Bilbo","secondaryIdentifier":"Bolson","nameIdentifierType":"LEGL"}]}]}}]}},"ivms101Encrypted":null,"originatorProof":null,"beneficiaryProof":null,"createdBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","updatedBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","protocol":"TRLight","protocolData":{"trLightData":{"notificationEmails":[],"accessLinks":[]}},"isTest":null,"originatorPIIref":null,"beneficiaryPIIref":null,"createdAt":"2022-06-15T03:56:36.837Z","updatedAt":"2022-06-15T03:56:36.837Z"}

When you have an incoming travel rule message, it will have the status "SENT" and you get information about the transaction itself and the beneficiary person:

{"id":"79c341c1-348f-4665-82cc-f2df9d59abe8","status":"SENT","transactionType":"TRAVELRULE","transactionAsset":"BTC","transactionAmount":"9485393","chargedQuantity":1963,"originatorDid":"did:ethr:0x3219da1ba623dfb42b3e9255c50828e79fc69761","beneficiaryDid":"did:ethr:0x31a56875cc422caf174b56eb4b0712b1552cf91b","isTest":null,"originatorVASPdid":"did:ethr:0x940a4b2a0932733b842e4aa906761bb3d3bd8148","beneficiaryVASPdid":"did:ethr:0xd4bd902ec78578f33a20ff601504d2ab324cfab9","transactionBlockchainInfo":{"txHash":"","origin":"1Fur2ogyri2wU3viAiLXPqBE2qoYdMXvp7","destination":"12MqTv1GwQaRYEqQzVneVYiWR"},"ivms101":{"originatingVASP":{"originatingVASP":{"legalPerson":{"name":{"nameIdentifier":[{"legalPersonName":"GoodbyeFiat","legalPersonNameIdentifierType":"LEGL"}]}}}},"beneficiaryVASP":{"beneficiaryVASP":{"legalPerson":{"name":{"nameIdentifier":[{"legalPersonName":"Notabene VASP SG","legalPersonNameIdentifierType":"LEGL"}]}}}},"beneficiary":{"accountNumber":["28731018"],"beneficiaryPersons":[{"naturalPerson":{"name":[{"nameIdentifier":[{"primaryIdentifier":"Amber","secondaryIdentifier":"Collins","nameIdentifierType":"LEGL"}]}]}}]}},"ivms101Encrypted":null,"protocol":"TRLight","protocolData":{"trLightData":{"notificationEmails":[],"accessLinks":[]}},"originatorProof":null,"beneficiaryProof":null,"createdAt":"2022-06-23T10:37:01.697Z","createdBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","updatedAt":"2022-06-23T10:41:10.961Z","updatedBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","originatorPIIref":null,"beneficiaryPIIref":null,"actions":[{"hash":"16ba023e927b8e1cb269dd985764541181b0e35b9742b7d0b36d4ca73f75421a81435b1c9897e8dfa27a9e0a70b624229f9676f34ac4045996ad33eb60fc9457","issuerDID":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","action":"create","createdAt":"2022-06-23T10:37:01.719Z","createdBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf"},{"hash":"84b633121bb4469bec9ffe8a4354d38d94bb9af39e35de3b556417fa09bc46bb1a936c88b8e4cd132dbb1959d30debc6bcaabb2216ae80d5584b782ddb9ffa98","issuerDID":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","action":"approve","actionData":null,"createdAt":"2022-06-23T10:41:11.131Z","createdBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf"}]}

Once you acknowledge that you own the destination address, the status will change to ACK and you receive the originator information (if you do not control the address and you reject it, the status will change to REJECTED):

{"id":"79c341c1-348f-4665-82cc-f2df9d59abe8","status":"ACK","transactionType":"TRAVELRULE","transactionAsset":"BTC","transactionAmount":"9485393","chargedQuantity":1963,"originatorDid":"did:ethr:0x3219da1ba623dfb42b3e9255c50828e79fc69761","beneficiaryDid":"did:ethr:0x31a56875cc422caf174b56eb4b0712b1552cf91b","isTest":null,"originatorVASPdid":"did:ethr:0x940a4b2a0932733b842e4aa906761bb3d3bd8148","beneficiaryVASPdid":"did:ethr:0xd4bd902ec78578f33a20ff601504d2ab324cfab9","transactionBlockchainInfo":{"txHash":"","origin":"1Fur2ogyri2wU3viAiLXPqBE2qoYdMXvp7","destination":"12MqTv1GwQaRYEqQzVneVYiWR"},"ivms101":{"originatingVASP":{"originatingVASP":{"legalPerson":{"name":{"nameIdentifier":[{"legalPersonName":"GoodbyeFiat","legalPersonNameIdentifierType":"LEGL"}]}}}},"originator":{"accountNumber":["52778760"],"originatorPersons":[{"naturalPerson":{"name":[{"nameIdentifier":[{"primaryIdentifier":"Demetrius","secondaryIdentifier":"Parisian","nameIdentifierType":"LEGL"}]}],"nationalIdentification":{"countryOfIssue":"TR","nationalIdentifier":"471","nationalIdentifierType":"DRLC"},"geographicAddress":[{"addressType":"HOME","streetName":"Micaela Plains","city":"Keelingborough","country":"LU","buildingNumber":"797","postCode":"994"}]}}]},"beneficiaryVASP":{"beneficiaryVASP":{"legalPerson":{"name":{"nameIdentifier":[{"legalPersonName":"Notabene VASP SG","legalPersonNameIdentifierType":"LEGL"}]}}}},"beneficiary":{"accountNumber":["28731018"],"beneficiaryPersons":[{"naturalPerson":{"name":[{"nameIdentifier":[{"primaryIdentifier":"Amber","secondaryIdentifier":"Collins","nameIdentifierType":"LEGL"}]}]}}]}},"ivms101Encrypted":null,"protocol":"TRLight","protocolData":{"trLightData":{"notificationEmails":[],"accessLinks":[]}},"originatorProof":null,"beneficiaryProof":null,"createdAt":"2022-06-23T10:37:01.697Z","createdBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","updatedAt":"2022-06-23T10:43:44.562Z","updatedBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","originatorPIIref":null,"beneficiaryPIIref":null,"actions":[{"hash":"16ba023e927b8e1cb269dd985764541181b0e35b9742b7d0b36d4ca73f75421a81435b1c9897e8dfa27a9e0a70b624229f9676f34ac4045996ad33eb60fc9457","issuerDID":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","action":"create","actionData":"{\"transactionAsset\":\"BTC\",\"transactionAmount\":\"9485393\",\"originatorVASPdid\":\"did:ethr:0x940a4b2a0932733b842e4aa906761bb3d3bd8148\",\"beneficiaryVASPdid\":\"did:ethr:0xd4bd902ec78578f33a20ff601504d2ab324cfab9\",\"transactionBlockchainInfo\":{\"txHash\":\"\",\"origin\":\"1Fur2ogyri2wU3viAiLXPqBE2qoYdMXvp7\",\"destination\":\"12MqTv1GwQaRYEqQzVneVYiWR\"},\"originatorDid\":\"did:ethr:0x3219da1ba623dfb42b3e9255c50828e79fc69761\",\"beneficiaryDid\":\"did:ethr:0x31a56875cc422caf174b56eb4b0712b1552cf91b\",\"beneficiary\":{\"accountNumber\":[\"28731018\"],\"beneficiaryPersons\":[{\"naturalPerson\":{\"name\":[{\"nameIdentifier\":[{\"primaryIdentifier\":\"Amber\",\"secondaryIdentifier\":\"Collins\",\"nameIdentifierType\":\"LEGL\"}]}]}}]},\"originator\":{\"accountNumber\":[\"52778760\"],\"originatorPersons\":[{\"naturalPerson\":{\"name\":[{\"nameIdentifier\":[{\"primaryIdentifier\":\"Demetrius\",\"secondaryIdentifier\":\"Parisian\",\"nameIdentifierType\":\"LEGL\"}]}],\"nationalIdentification\":{\"countryOfIssue\":\"TR\",\"nationalIdentifier\":\"471\",\"nationalIdentifierType\":\"DRLC\"},\"geographicAddress\":[{\"addressType\":\"HOME\",\"streetName\":\"Micaela Plains\",\"city\":\"Keelingborough\",\"country\":\"LU\",\"buildingNumber\":\"797\",\"postCode\":\"994\"}]}}]}}","createdAt":"2022-06-23T10:37:01.719Z","createdBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf"},{"hash":"84b633121bb4469bec9ffe8a4354d38d94bb9af39e35de3b556417fa09bc46bb1a936c88b8e4cd132dbb1959d30debc6bcaabb2216ae80d5584b782ddb9ffa98","issuerDID":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","action":"approve","actionData":null,"createdAt":"2022-06-23T10:41:11.131Z","createdBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf"},{"hash":"355f114599eafdb17e5389a2446c7bd3fb99db79a7527e78d8701a8052b0bf4f593544586359dd856c07421f8e471c99597c14e16e6fb38d01f42fc040feb434","issuerDID":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","action":"confirm","actionData":null,"createdAt":"2022-06-23T10:43:40.795Z","createdBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf"},{"hash":"046cd50e8e376a37fcd09ed070b7e96756c21687a3f8ecd053d0e9d56f47ae4d798fe382fcc344f554848335bc2b0907ed7976522f8d6ff765cd4cd132bc588c","issuerDID":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","action":"accept","actionData":null,"createdAt":"2022-06-23T10:43:44.609Z","createdBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf"}]}

After sanction screening the originator person and screening the origin address through blockchain analytics, the travel rule is then either ACCEPTED or REJECTED:

{"id":"79c341c1-348f-4665-82cc-f2df9d59abe8","status":"ACCEPTED","transactionType":"TRAVELRULE","transactionAsset":"BTC","transactionAmount":"9485393","chargedQuantity":1963,"originatorDid":"did:ethr:0x3219da1ba623dfb42b3e9255c50828e79fc69761","beneficiaryDid":"did:ethr:0x31a56875cc422caf174b56eb4b0712b1552cf91b","isTest":null,"originatorVASPdid":"did:ethr:0x940a4b2a0932733b842e4aa906761bb3d3bd8148","beneficiaryVASPdid":"did:ethr:0xd4bd902ec78578f33a20ff601504d2ab324cfab9","transactionBlockchainInfo":{"txHash":"","origin":"1Fur2ogyri2wU3viAiLXPqBE2qoYdMXvp7","destination":"12MqTv1GwQaRYEqQzVneVYiWR"},"ivms101":{"originatingVASP":{"originatingVASP":{"legalPerson":{"name":{"nameIdentifier":[{"legalPersonName":"GoodbyeFiat","legalPersonNameIdentifierType":"LEGL"}]}}}},"originator":{"accountNumber":["52778760"],"originatorPersons":[{"naturalPerson":{"name":[{"nameIdentifier":[{"primaryIdentifier":"Demetrius","secondaryIdentifier":"Parisian","nameIdentifierType":"LEGL"}]}],"nationalIdentification":{"countryOfIssue":"TR","nationalIdentifier":"471","nationalIdentifierType":"DRLC"},"geographicAddress":[{"addressType":"HOME","streetName":"Micaela Plains","city":"Keelingborough","country":"LU","buildingNumber":"797","postCode":"994"}]}}]},"beneficiaryVASP":{"beneficiaryVASP":{"legalPerson":{"name":{"nameIdentifier":[{"legalPersonName":"Notabene VASP SG","legalPersonNameIdentifierType":"LEGL"}]}}}},"beneficiary":{"accountNumber":["28731018"],"beneficiaryPersons":[{"naturalPerson":{"name":[{"nameIdentifier":[{"primaryIdentifier":"Amber","secondaryIdentifier":"Collins","nameIdentifierType":"LEGL"}]}]}}]}},"ivms101Encrypted":null,"protocol":"TRLight","protocolData":{"trLightData":{"notificationEmails":[],"accessLinks":[]}},"originatorProof":null,"beneficiaryProof":null,"createdAt":"2022-06-23T10:37:01.697Z","createdBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","updatedAt":"2022-06-23T10:43:44.562Z","updatedBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","originatorPIIref":null,"beneficiaryPIIref":null,"actions":[{"hash":"16ba023e927b8e1cb269dd985764541181b0e35b9742b7d0b36d4ca73f75421a81435b1c9897e8dfa27a9e0a70b624229f9676f34ac4045996ad33eb60fc9457","issuerDID":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","action":"create","actionData":"{\"transactionAsset\":\"BTC\",\"transactionAmount\":\"9485393\",\"originatorVASPdid\":\"did:ethr:0x940a4b2a0932733b842e4aa906761bb3d3bd8148\",\"beneficiaryVASPdid\":\"did:ethr:0xd4bd902ec78578f33a20ff601504d2ab324cfab9\",\"transactionBlockchainInfo\":{\"txHash\":\"\",\"origin\":\"1Fur2ogyri2wU3viAiLXPqBE2qoYdMXvp7\",\"destination\":\"12MqTv1GwQaRYEqQzVneVYiWR\"},\"originatorDid\":\"did:ethr:0x3219da1ba623dfb42b3e9255c50828e79fc69761\",\"beneficiaryDid\":\"did:ethr:0x31a56875cc422caf174b56eb4b0712b1552cf91b\",\"beneficiary\":{\"accountNumber\":[\"28731018\"],\"beneficiaryPersons\":[{\"naturalPerson\":{\"name\":[{\"nameIdentifier\":[{\"primaryIdentifier\":\"Amber\",\"secondaryIdentifier\":\"Collins\",\"nameIdentifierType\":\"LEGL\"}]}]}}]},\"originator\":{\"accountNumber\":[\"52778760\"],\"originatorPersons\":[{\"naturalPerson\":{\"name\":[{\"nameIdentifier\":[{\"primaryIdentifier\":\"Demetrius\",\"secondaryIdentifier\":\"Parisian\",\"nameIdentifierType\":\"LEGL\"}]}],\"nationalIdentification\":{\"countryOfIssue\":\"TR\",\"nationalIdentifier\":\"471\",\"nationalIdentifierType\":\"DRLC\"},\"geographicAddress\":[{\"addressType\":\"HOME\",\"streetName\":\"Micaela Plains\",\"city\":\"Keelingborough\",\"country\":\"LU\",\"buildingNumber\":\"797\",\"postCode\":\"994\"}]}}]}}","createdAt":"2022-06-23T10:37:01.719Z","createdBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf"},{"hash":"84b633121bb4469bec9ffe8a4354d38d94bb9af39e35de3b556417fa09bc46bb1a936c88b8e4cd132dbb1959d30debc6bcaabb2216ae80d5584b782ddb9ffa98","issuerDID":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","action":"approve","actionData":null,"createdAt":"2022-06-23T10:41:11.131Z","createdBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf"},{"hash":"355f114599eafdb17e5389a2446c7bd3fb99db79a7527e78d8701a8052b0bf4f593544586359dd856c07421f8e471c99597c14e16e6fb38d01f42fc040feb434","issuerDID":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","action":"confirm","actionData":null,"createdAt":"2022-06-23T10:43:40.795Z","createdBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf"},{"hash":"046cd50e8e376a37fcd09ed070b7e96756c21687a3f8ecd053d0e9d56f47ae4d798fe382fcc344f554848335bc2b0907ed7976522f8d6ff765cd4cd132bc588c","issuerDID":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf","action":"accept","actionData":null,"createdAt":"2022-06-23T10:43:44.609Z","createdBy":"did:ethr:0xefbb14b73473ccfd610543af4b1c8fda027c57bf"}]}

📘

Requirements

Notabene expects the callback URL to return an HTTP code 2xx and it needs to accept a POST HTTP method.

You can register your webhook callback URL by calling the txNotification API with the details:

🚧

Token

This call uses the accessToken

{
"vaspDID": "{{vaspDID}}",
"callbackUrl": "https://requestbin.io/s7iyivs7"
}

In the response, you will get a "1" if it was successfully registered.


Example

📘

Retry mechanism

In case the callback endpoint is down (not getting 2xx a response), we have implemented a retry mechanism for the webhook with the following characteristics:

  • jobs have an exponential retry strategy: 10s, 20s, 40, 80s, ..., 91hrs;
  • jobs have a timeout set to 120s (webhook http request will abort);
  • max 15 retries per job.

IP address

If you want to set up security controls or need to whitelist, the webhook notifications will only be sent from the following IPs:

📘

IP addresses

PROD:
3.120.79.24

TEST:
3.78.87.87