Initiates a travel rule transaction, preparing it for execution. This step is crucial before sending the actual transaction to the Notabene provider for compliance with regulatory requirements.
Sample request example use-cases
- Create a Transaction by Native Coin for Withdrawal
- Create a Transaction by token for Withdrawal
- Create a Transaction by Native Token (UTXO) for Deposit
- Create a Transaction by Token (Non-UTXO) for Deposit
- Create a Transaction by Native Coin (Non-UTXO) for Deposit
Create a Transaction by Native Coin for Withdrawal
Example request body
{
"wallet":{
"coin": "eth",
"walletId":1
},
"transaction":{
"recipientsData":{
"recipients":[
{
"address":"0xa5946470206572eC729DA064fDe6a044CCfbE537",
"amount":0.008
}
],
"sequenceId":"e6d677e9-d66a-4c7f-aeb6-73a02f0657e2"
}
},
"travelRule":{
"travelRuleTransactionOptions":{
"sequenceId":"e6d677e9-d66a-4c7f-aeb6-73a02f0657e2",
"comment":"Test Comment",
"outputs":[{
"custodial": false,
"data":null,
"vasp" : {
"id": "did:ethr:0x645fa50712c17cbeff5a52f4199b9a5e283cdea6"
},
"beneficiary": {
"type": "natural",
"name": "Microsoft",
"address": {
"address1": "1st main",
"address2": "M G road",
"city": "Bengalure",
"country": "IN"
}
},
"originator":{
"type":"natural",
"accountNumber": null,
"referenceNumber": "12345",
"name": "Bruce",
"dob": "2020-04-02",
"pob": "London",
"address": {
"address1": "main streat 101",
"address2": "address line 2",
"city": "London",
"country": "GB"
},
"identification": {
"type": "ARNU",
"number": "12345Number",
"country": "IN",
"authority": "Govt of Italy"
}
}
}]
}
}
}
Warning
Pre-Transaction Validation for Compliance with the Travel Rule
- To ensure compliance with the Travel Rule, it is necessary to validate crucial transaction details such as the target
address,amount, andsequenceIdbefore executing the transaction. This validation is achieved by sending therecipientsData[]object to Notabene transactions. This step is pivotal as it verifies the provided data against the Travel Rule requirements.- Please note that the same
recipientsData[]that is validated against the Travel Rule must be used when executing the actual transaction. Any discrepancy in theaddress,amount, orsequenceIdmay result in the transaction not being broadcast on the blockchain. This process helps maintain regulatory compliance and ensures accurate adherence to the Travel Rule requirements.
Response Example
In the event of a transaction failure, the system will generate the following response:
{
"success": true,
"data": [
"SequenceId: 05aa3ab6-66af-484d-8803-e0cae74ea0bf - Message: validation fail"
]
}
If the response indicates success as true, it signifies that the Travel Rule transaction has been successfully created. The system will display the following response :
{
"success": true,
"data": [
{
"travelRuleTransactionResponse": [
{
"appId": 12,
"walletId": 6361,
"asset": "ETH",
"origin": "0x5dce8dc7ae6eeca7abb378406db5965c1a4684cd",
"destination": "0x371b6bc5FcA76d6044E273fe82CcE8c5Fbf47121",
"amount": 0.006,
"amountInUnit": "6000000000000000",
"reqJson": {
"sequenceId": "05aa3ab6-66af-484d-8803-e0cae74ea0bf",
"transaction": {
"asset": "ETH",
"amount": 0.006,
"origin": "0x5dce8dc7ae6eeca7abb378406db5965c1a4684cd",
"amountInUnit": "6000000000000000",
"destination": "0x371b6bc5FcA76d6044E273fe82CcE8c5Fbf47121",
"data": null,
"comment": "Test Comment"
},
"custodial": false,
"vasp": {
"id": "did:ethr:0x645fa50712c17cbeff5a52f4199b9a5e283cdea6"
},
"originator": {
"type": "natural",
"accountNumber": null,
"referenceNumber": "12345",
"name": "Bruce",
"dob": "2020-04-02",
"pob": "London",
"address": {
"address1": "main streat 101",
"address2": "address line 2",
"city": "London",
"country": "GB"
},
"identification": {
"type": "ARNU",
"number": "12345Number",
"country": "IN",
"authority": "Govt of Italy"
}
},
"beneficiary": {
"type": "natural",
"name": "Microsoft",
"address": {
"address1": "1st main",
"address2": "M G road",
"city": "Bengalure",
"country": "IN"
}
}
},
"status": 2,
"byPassCreate": false,
"orgId": 943,
"createdBy": 1565,
"data": null,
"comment": "Test Comment",
"sequenceId": "05aa3ab6-66af-484d-8803-e0cae74ea0bf",
"type": "send",
"trTxnId": "679d1cfe-722c-43a4-af18-6b0e1ed24bd4",
"link": "https://app.notabene.dev/dashboard/transactions/all?transactionQuery=679d1cfe-722c-43a4-af18-6b0e1ed24bd4",
"travelStatus": "SENT",
"resJson": {
"id": "679d1cfe-722c-43a4-af18-6b0e1ed24bd4",
"status": "SENT",
"transactionType": "TRAVELRULE",
"transactionAsset": "ETH",
"transactionAmount": "6000000000000000",
"chargedQuantity": 11.35248,
"amountInLocalCurrency": {
"currency": "SGD",
"amountInLocalCurrency": 15.38742
},
"beneficiaryAmountInLocalCurrency": {
"currency": "SGD",
"amountInLocalCurrency": 15.38742
},
"originatorDid": "did:ethr:0x8e3790643419b330152671d871a5113d5e2d39ae",
"beneficiaryDid": "did:ethr:0x1ce54decdf299dbab406ec192ec1e676cf5e2f45",
"isTest": null,
"originatorVASPdid": "did:ethr:0x1d4eb41bf400506fc5b77defd5ea9171652b3464",
"beneficiaryVASPdid": "did:ethr:0x645fa50712c17cbeff5a52f4199b9a5e283cdea6",
"transactionBlockchainInfo": {
"origin": "0x5dce8dc7ae6eeca7abb378406db5965c1a4684cd",
"destination": "0x371b6bc5FcA76d6044E273fe82CcE8c5Fbf47121"
},
"ivms101": {
"originator": {
"originatorPersons": [
{
"naturalPerson": {
"name": [
{
"nameIdentifier": [
{
"primaryIdentifier": "Bruce"
}
]
}
],
"geographicAddress": [
{
"addressLine": [
"main streat 101",
"address line 2"
],
"countrySubdivision": [
"London"
],
"country": "GB"
}
],
"nationalIdentification": {
"nationalIdentifier": "12345Number",
"nationalIdentifierType": "ARNU",
"countryOfIssue": "IN",
"registrationAuthority": "Govt of Italy"
},
"dateAndPlaceOfBirth": {
"dateOfBirth": "2020-04-02",
"placeOfBirth": "London"
},
"countryOfResidence": "GB",
"customerIdentification": "12345"
}
}
],
"accountNumber": [
"0x5dce8dc7ae6eeca7abb378406db5965c1a4684cd"
]
},
"beneficiary": {
"beneficiaryPersons": [
{
"naturalPerson": {
"name": [
{
"nameIdentifier": [
{
"primaryIdentifier": "Microsoft"
}
]
}
],
"geographicAddress": [
{
"addressLine": [
"1st main",
"M G road"
],
"countrySubdivision": [
"Bengalure"
],
"country": "IN"
}
],
"countryOfResidence": "IN"
}
}
],
"accountNumber": [
"0x371b6bc5FcA76d6044E273fe82CcE8c5Fbf47121"
]
},
"originatingVASP": {
"originatingVASP": {
"legalPerson": {
"name": {
"nameIdentifier": [
{
"legalPersonName": "Lmnl 1 (Originator)",
"legalPersonNameIdentifierType": "LEGL"
}
]
}
}
}
},
"beneficiaryVASP": {
"beneficiaryVASP": {
"legalPerson": {
"name": {
"nameIdentifier": [
{
"legalPersonName": "Lmnl",
"legalPersonNameIdentifierType": "LEGL"
}
]
}
}
}
}
},
"ivms101Encrypted": null,
"protocol": "TRLight",
"protocolData": {
"trLightData": {
"notificationEmails": [],
"accessLinks": []
}
},
"originatorProof": null,
"beneficiaryProof": null,
"actions": [
{
"hash": "2d619b08dcffb65e8f8a5f734bb03c51ac08da77135fe9e85c8bd979b5b408eb65711edc11ff94b0e7b2724e20fd4f0f41b0c680051d3c26358346be7642a94c",
"issuerDID": "did:ethr:0xafc2bd1c51888fc758e5c7a0dd49e6a82fdaac59",
"action": "approve",
"actionData": null,
"transactionId": "679d1cfe-722c-43a4-af18-6b0e1ed24bd4",
"createdAt": "2023-06-30T05:39:44.151Z",
"createdBy": "did:ethr:0xafc2bd1c51888fc758e5c7a0dd49e6a82fdaac59"
},
{
"hash": "2cd5eb67c0c33e8beecf0cd128fa2f145a535e8c9e448585fe3313518f2842a153f73e131f6eb17e76bace2b5f473879a421c3405f03864e5457acd088f60a7b",
"issuerDID": "did:ethr:0xafc2bd1c51888fc758e5c7a0dd49e6a82fdaac59",
"action": "create",
"actionData": "{\"travelRuleBehavior\":false,\"transactionAsset\":\"ETH\",\"transactionAmount\":\"6000000000000000\",\"originatorVASPdid\":\"did:ethr:0x1d4eb41bf400506fc5b77defd5ea9171652b3464\",\"transactionBlockchainInfo\":{\"origin\":\"0x5dce8dc7ae6eeca7abb378406db5965c1a4684cd\",\"destination\":\"0x371b6bc5FcA76d6044E273fe82CcE8c5Fbf47121\"},\"beneficiaryVASPdid\":\"did:ethr:0x645fa50712c17cbeff5a52f4199b9a5e283cdea6\",\"originatorDid\":\"did:ethr:0x8e3790643419b330152671d871a5113d5e2d39ae\",\"beneficiaryDid\":\"did:ethr:0x1ce54decdf299dbab406ec192ec1e676cf5e2f45\"}",
"transactionId": "679d1cfe-722c-43a4-af18-6b0e1ed24bd4",
"createdAt": "2023-06-30T05:39:43.731Z",
"createdBy": "did:ethr:0xafc2bd1c51888fc758e5c7a0dd49e6a82fdaac59"
}
],
"createdAt": "2023-06-30T05:39:43.464Z",
"createdBy": "did:ethr:0xafc2bd1c51888fc758e5c7a0dd49e6a82fdaac59",
"updatedAt": "2023-06-30T05:39:43.701Z",
"updatedBy": "did:ethr:0xafc2bd1c51888fc758e5c7a0dd49e6a82fdaac59",
"pii": {
"originator": {
"accountNumber": [
"QmNzKmJx9kh3L9DD17GNe3DSzSXxZQMeoWynxZMGTMV457"
],
"originatorPersons": [
{
"naturalPerson": {
"name": [
{
"nameIdentifier": [
{
"primaryIdentifier": "QmNrEBNXTY9Mgn1ocFnps8ux6tENdJ3S28acstGcpHPyXT"
}
]
}
],
"geographicAddress": [
{
"country": "QmbFW7RUTw9fMcALJGKJvdqX1BGoJk6E6iGhuK8yoopJTw",
"addressLine": [
"QmaMxwFwNyx1UDBb9mZnW782hyD9eSN4FeLLzb4m3w7AH5",
"QmQV9V7NbqJLMVURhfGSTYRncg6x8uTxR8CjDb5eCYhQkw"
],
"countrySubdivision": [
"QmUJTBS62LARJXuzxPP5V6Mt1CasVNmeC36KsxBwdhKy1S"
]
}
],
"countryOfResidence": "QmQbhd6MA1QB6jYM92nMFgy3fsw41DUggZrjTpNEtM2ekJ",
"dateAndPlaceOfBirth": {
"dateOfBirth": "QmSLYxXvNfLUzAnJREYKGM98nLpphU5Qi2Ky9oJ8ut9k3C",
"placeOfBirth": "QmeBGKxjPfwHEoxvfEqjUWEQxcEu7HtLaveFFzKF5x9YzB"
},
"customerIdentification": "QmV4noD4nKNqqNZ1SMfKFQtxTqzsBGB1dYXKu9JFEtw3G5",
"nationalIdentification": {
"countryOfIssue": "Qma2ELbb5AR6w6m9uaKZfsSbZhmLPhSnsMYKi3gxAsLcML",
"nationalIdentifier": "QmRt2aXnEfdQ2nWDMutHKVYB8y9SA3mzoEnqQLF1t1BxNS",
"registrationAuthority": "QmbgjTf7P5vFX9hFywm5Un5tGqycZwaUVAZDR8EarJwssy",
"nationalIdentifierType": "QmUiWdV2HRzcj9LC7y6vFZaLEVM57HtdPpMrd52kYmZdiz"
}
}
}
]
},
"beneficiary": {
"accountNumber": [
"QmNWmknXsr9Axx2tgnT7THLbCyADXSE4obDtNgv9Nqh7zA"
],
"beneficiaryPersons": [
{
"naturalPerson": {
"name": [
{
"nameIdentifier": [
{
"primaryIdentifier": "QmUyBPtV9M2KNFR4YThY39uciMY1T3Yp5s7ycTt7v2jsLG"
}
]
}
],
"geographicAddress": [
{
"country": "QmWCpNGSj3jezyQUdS8DLmBYtTFzKLPfLMfMbBWUswe1J8",
"addressLine": [
"QmYzjNDdGXbgqp8RsbRcfT2Vw8cH5fACiV71JsHF8jiamZ",
"QmbWUAQVt49fkk2HZBWLZsbKnP9zfVFwoYAZxAdf7y4Jt5"
],
"countrySubdivision": [
"QmeAXFYc26GPDYVUCpkT8cDtzQpFE8dRqdHQNqT9mdU1B1"
]
}
],
"countryOfResidence": "QmcvGp8nL1ih5w15orZcMGpTiwBJp4UYvgUZsYvu7DZPnG"
}
}
]
}
},
"pii_url": "https://pii.notabene.dev/",
"tracked_billing": false
},
"id": 171,
"createdAt": "2023-06-30T05:39:44.000Z",
"updatedAt": "2023-06-30T05:39:44.000Z"
}
]
}
]
}
Transaction approval can be managed in two ways: through manual or automatic approval. With manual approval, the customer is tasked with manually setting the transaction's approval status. After the transaction receives approval via the Notabene portal, the customer must retain the recipient data for future use. If the transaction approval is set to auto, the following steps should be followed:
- Create Travel Transaction
Initiate the creation of a Travel Transaction using the appropriate API or method. This step involves providing the necessary transaction details, including the recipient data, such as
address,amount, andsequenceId. - Send Many Transactions Proceed with sending the transaction using the "Send Many" method or API. This step triggers the actual transaction to be executed and broadcast. It is important to ensure that the recipient data matches the previously validated travel rule transaction to maintain consistency.
Note Applicability of Transaction Approval Steps for Both Hot Withdrawal and Deposit Wallets
It's important to highlight that these procedures apply to both the Hot Withdrawal wallet and the Deposit wallet. By adhering to these steps, you can maintain a structured process for transaction approval, whether manual or automated, and correctly carry out travel rule transactions in compliance with the set protocols and requirements for preserving recipient data.
Create Transaction by Token for Withdrawal
Example request body
{
"wallet":{
"coin": "eth",
"walletId":1,
"allToken":true,
"tokenOptions":{
"tokenName":"USDC",
"tokenAddress":"0xD87Ba7A50B2E7E660f678A895E4B72E7CB4CCd9C"
}
},
"transaction":{
"recipientsData":{
"recipients":[
{
"address":"0xa5946470206572eC729DA064fDe6a044CCfbE537",
"amount":0.008
}
],
"sequenceId":"e6d677e9-d66a-4c7f-aeb6-73a02f0657e2"
}
},
"travelRule":{
"travelRuleTransactionOptions":{
"sequenceId":"e6d677e9-d66a-4c7f-aeb6-73a02f0657e2",
"comment":"Test Comment",
"outputs":[{
"custodial": false,
"data":null,
"vasp" : {
"id": "did:ethr:0x645fa50712c17cbeff5a52f4199b9a5e283cdea6"
},
"beneficiary": {
"type": "natural",
"name": "Microsoft",
"address": {
"address1": "1st main",
"address2": "M G road",
"city": "Bengalure",
"country": "IN"
}
},
"originator":{
"type":"natural",
"accountNumber": null,
"referenceNumber": "12345",
"name": "Bruce",
"dob": "2020-04-02",
"pob": "London",
"address": {
"address1": "main streat 101",
"address2": "address line 2",
"city": "London",
"country": "GB"
},
"identification": {
"type": "ARNU",
"number": "12345Number",
"country": "IN",
"authority": "Govt of Italy"
}
}
}]
}
}
}
Create a Transaction by Native Token (UTXO) for Deposit
Example request body
{
"wallet":{
"coin": "btc",
"walletId":2
},
"transaction":{
"consolidateTransactionResult":["BIND GET CONSLODATION TRANSACTION RESPONSE"]
},
"travelRule":{
"travelRuleTransactionOptions":{
"sequenceId":"07eac7bf-8ca4-48a8-b008-3a4949713dcd",
"comment":"Test Comment",
"outputs":[{
"custodial": false,
"data":null,
"vasp" : {
"id": "did:ethr:0x645fa50712c17cbeff5a52f4199b9a5e283cdea6"
},
"beneficiary": {
"type": "natural",
"name": "Microsoft",
"address": {
"address1": "1st main",
"address2": "M G road",
"city": "Bengalure",
"country": "IN"
}
},
"originator":{
"type":"natural",
"accountNumber": null,
"referenceNumber": "12345",
"name": "Bruce",
"dob": "2020-04-02",
"pob": "London",
"address": {
"address1": "main streat 101",
"address2": "address line 2",
"city": "London",
"country": "GB"
},
"identification": {
"type": "ARNU",
"number": "12345Number",
"country": "IN",
"authority": "Govt of Italy"
}
}
}]
}
}
}
Create a Transaction by Token (Non-UTXO) for Deposit
Example request body
{
"wallet":{
"coin": "eth",
"walletId":1,
"allToken":true,
"tokenOptions":{
"tokenName":"USDC",
"tokenAddress":"0xD87Ba7A50B2E7E660f678A895E4B72E7CB4CCd9C"
}
},
"transaction":{
"consolidateTransactionResult":["BIND GET CONSLODATION TRANSACTION RESPONSE"]
},
"travelRule":{
"travelRuleTransactionOptions":{
"comment":"Test Comment",
"outputs":[{
"custodial": false,
"data":null,
"vasp" : {
"id": "did:ethr:0x645fa50712c17cbeff5a52f4199b9a5e283cdea6"
},
"beneficiary": {
"type": "natural",
"name": "Microsoft",
"address": {
"address1": "1st main",
"address2": "M G road",
"city": "Bengalure",
"country": "IN"
}
},
"originator":{
"type":"natural",
"accountNumber": null,
"referenceNumber": "12345",
"name": "Bruce",
"dob": "2020-04-02",
"pob": "London",
"address": {
"address1": "main streat 101",
"address2": "address line 2",
"city": "London",
"country": "GB"
},
"identification": {
"type": "ARNU",
"number": "12345Number",
"country": "IN",
"authority": "Govt of Italy"
}
}
}]
}
}
}
Create Transaction by Native Coin (Non-UTXO) for Deposit
Example request body
{
"wallet":{
"coin": "eth",
"walletId":1,
"allToken":true,
"tokenOptions":{
"tokenName":"USDC",
"tokenAddress":"0xD87Ba7A50B2E7E660f678A895E4B72E7CB4CCd9C"
}
},
"transaction":{
"consolidateTransactionResult":["BIND GET CONSLODATION TRANSACTION RESPONSE"]
},
"travelRule":{
"travelRuleTransactionOptions":{
"comment":"Test Comment",
"outputs":[{
"custodial": false,
"data":null,
"vasp" : {
"id": "did:ethr:0x645fa50712c17cbeff5a52f4199b9a5e283cdea6"
},
"beneficiary": {
"type": "natural",
"name": "Microsoft",
"address": {
"address1": "1st main",
"address2": "M G road",
"city": "Bengalure",
"country": "IN"
}
},
"originator":{
"type":"natural",
"accountNumber": null,
"referenceNumber": "12345",
"name": "Bruce",
"dob": "2020-04-02",
"pob": "London",
"address": {
"address1": "main streat 101",
"address2": "address line 2",
"city": "London",
"country": "GB"
},
"identification": {
"type": "ARNU",
"number": "12345Number",
"country": "IN",
"authority": "Govt of Italy"
}
}
}]
}
}
}
