RoboVASPs

To test that you support each of the possible responses you can get to your outgoing travel rule messages, we have configured a few VASPs that will always respond with a specific answer for every message they receive.

For example; if you send to "Notabene RoboVASP ACCEPT", it will first confirm that it controls the destination address (txConfirm/ACK) and then it will accept it (txAccept/ACCEPTED).

You can also simulate what happens when you receive a travel rule message that is sent to a specific destination address or with specific content.

You can find the postman examples of these calls here.

If you want to see the status flow diagram for additional details, click here.


Notabene RoboVASP SEND

did:ethr:0x71680c90ef37497d58c3dbbc24693f9b561c7611

By sending the below request to the endpoint, our RoboVASP SEND will create and send a travel rule message to that vaspDID using the provided destination address.

POST https://eo13g7i3ce504ik.m.pipedream.net

{
    "vaspDID": "{{vaspDID}}",
    "destination":"3rB3phxKUCVAFdxmqefcpWZe52XNHb",
    "asset":"ETH",
    "amount": 1234567891233456789,
    "txHash":"3dd54ad111f3d942323a8202de1596b66e651a9d5666c757d8623e325ef490fa"
}

You can use this to test the address confirmation step on your side, to see if you are able to automatically recognize an address that is yours and execute the next steps to complete the travel rule flow.

If you are successfully confirming the address, the travel rule message will go from SENT to ACK (and then potentially ACCEPTED/DECLINED depending on your rules).


Notabene RoboVASP COPY

did:ethr:0x33518c244979ff4208e5c4bed115f617227000da

This VASP will copy whatever you send in a travel rule message and send it back to you.

You can use this to for example simulate what happens if someone sends you a travel rule message where the originator name is that of a sanctioned individual.

If you send this:

{
    "id": "49cd09c8-0e2a-43b1-8738-28ef901e8998",
    "status": "SENT",
    "transactionType": "TRAVELRULE",
    "transactionAsset": "ETH",
    "transactionAmount": "1700000000000000000",
    "chargedQuantity": 2849,
    "amountInLocalCurrency": {
        "currency": "SGD",
        "amountInLocalCurrency": 3776.261
    },
    "beneficiaryAmountInLocalCurrency": {
        "currency": "EUR",
        "amountInLocalCurrency": 2654.635
    },
    "originatorDid": "did:ethr:0xc21ce63002cae43f5e02a708007a6e9e41c5294a",
    "beneficiaryDid": "did:ethr:0xc7a5e75ce32050424a4ccf473c4d7f8fc2609b54",
    "isTest": null,
    "originatorVASPdid": "did:ethr:0xd4bd902ec78578f33a20ff601504d2ab324cfab9",
    "beneficiaryVASPdid": "did:ethr:0x33518c244979ff4208e5c4bed115f617227000da",
    "transactionBlockchainInfo": {
        "origin": "1zbhnosCNqaYto7H9hdfMe5MTv",
        "destination": "3rB3phxKUCVAFdxmqefcpWZe52XNHb"
    },
    "ivms101": {
        "originator": {
          ... John Smith, etc.

🚧

Payload

Because RoboVASP COPY expects a particular set of fields in the travel rule message, you cannot send more or less fields than in the postman example. Only edit the content it already has.

It will send the same back by switching the originator/beneficiaryVASPdid:

{
    "transactionAsset": "ETH",
    "transactionAmount": "1700000000000000000",
    "originatorVASPdid": "did:ethr:0x33518c244979ff4208e5c4bed115f617227000da",
    "beneficiaryVASPdid": "did:ethr:0xd4bd902ec78578f33a20ff601504d2ab324cfab9",
    "transactionBlockchainInfo": {
        "origin": "1zbhnosCNqaYto7H9hdfMe5MTv",
        "destination": "3rB3phxKUCVAFdxmqefcpWZe52XNHb"
    },
    "ivms101": {
        "originator": {
           ... John Smith, etc.
         

Notabene RoboVASP ACKNOWLEDGE

did:ethr:0x46979730b82d6c97e4cd6d9a3ea0f7147efe9c35

If you send a travel rule message to this VASP, it will only confirm that the address is theirs.

You can use this to test what happens if the beneficiaryVASP automatically confirms the address, but there might be something wrong with the content and therefore no final decision is made.

The reason why this can happen is: a) maybe the beneficiary name doesn't match their customers name, b) the originator name has a potential sanctions hit or c), the originating wallet has some risk flags. It can also be that they haven't configured the rules engine and make decisions manually.

{
    "id": "cbb5f569-adcd-440f-b233-91d2018f1923",
    "status": "ACK",
    "transactionType": "TRAVELRULE",
    "transactionAsset": "ETH",
    "transactionAmount": "1700000000000000000",
    "chargedQuantity": 2849,
    "amountInLocalCurrency": {
        "currency": "SGD",
        "amountInLocalCurrency": 3776.261
    },

Notabene RoboVASP ACCEPT

did:ethr:0x5cb7821acae54a5a94939fd35db91f4b11d8cd85

This VASP will confirm that the address belong to them and then reply back with an accepted response.

{
    "id": "31a8156b-a580-4da9-920b-53850a5d0dd6",
    "status": "ACCEPTED",
    "transactionType": "TRAVELRULE",
    "transactionAsset": "ETH",
    "transactionAmount": "1700000000000000000",
    "chargedQuantity": 2675,
    "amountInLocalCurrency": {
        "currency": "SGD",
        "amountInLocalCurrency": 3511.877
    },

Notabene RoboVASP DECLINE

did:ethr:0x5ff3bfa887ce0ae8785fd43a24a379f926df0e8f

This VASP will confirm that the address belong to them and then reply back with an declined response.

{
    "id": "cb046aa8-4094-4aee-a0ce-568d80c81c89",
    "status": "DECLINED",
    "transactionType": "TRAVELRULE",
    "transactionAsset": "ETH",
    "transactionAmount": "1700000000000000000",
    "chargedQuantity": 2675,
    "amountInLocalCurrency": {
        "currency": "SGD",
        "amountInLocalCurrency": 3511.877
    },

Notabene RoboVASP NOT READY

did:ethr:0x1233d50473fc842484b3c65f02b21b746e33336d

This VASP will reply back that they are not ready to respond to travel rule messages.

{
    "id": "9cdf6c77-e6f8-4ba0-b7dd-573603c5aae4",
    "status": "NOT_READY",
    "transactionType": "TRAVELRULE",
    "transactionAsset": "ETH",
    "transactionAmount": "1700000000000000000",
    "chargedQuantity": 2701,
    "amountInLocalCurrency": {
        "currency": "USD",
        "amountInLocalCurrency": 2701.589
    },

Notabene RoboVASP REJECT

did:ethr:0xb7eb0c82216dcc6b2ec5a82f3896e9823bfeb206

This VASP will reply back that the destination wallet address is not theirs.

{
    "id": "d32bf5dd-c700-44a8-8565-1a673f946a5d",
    "status": "REJECTED",
    "transactionType": "TRAVELRULE",
    "transactionAsset": "ETH",
    "transactionAmount": "1700000000000000000",
    "chargedQuantity": 2756,
    "amountInLocalCurrency": {
        "currency": "USD",
        "amountInLocalCurrency": 2756.584
    },

This can be because blockchain analytics has identified the wrong exchange as the owner, or the wrong selection has been made by the user requesting the withdrawal.


Notabene RoboVASP WAITING

did:ethr:0x27b4ab8663ce8471fb375eabf8207d707261557c

This VASP will reply back that no one has claimed the account yet.

{
    "id": "652cfa83-3c34-4c05-9ae5-ce5a9b806a1b",
    "status": "WAITING_FOR_INFORMATION",
    "transactionType": "TRAVELRULE",
    "transactionAsset": "BTC",
    "transactionAmount": "72000000000",
    "chargedQuantity": 18781200,
    "amountInLocalCurrency": {
        "currency": "SGD",
        "amountInLocalCurrency": 25478640
    },