Skip to content

Instantly share code, notes, and snippets.

@bbengfort
Created August 16, 2024 14:46
Show Gist options
  • Save bbengfort/df942958a156f1212de4dcfb9592e3d4 to your computer and use it in GitHub Desktop.
Save bbengfort/df942958a156f1212de4dcfb9592e3d4 to your computer and use it in GitHub Desktop.
Envoy data workflows for travel rule exchanges using pyenvoy
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"id": "21e879be-f21e-4f0d-8518-5ca211e0be7a",
"metadata": {},
"source": [
"# Envoy Workflows\n",
"\n",
"This notebook is setup to help test the Envoy node using procedural steps representing each step.\n",
"\n",
"## Setup\n",
"\n",
"Make sure that you have PyEnvoy installed:\n",
"\n",
"```\n",
"$ pip install pyenvoy\n",
"```\n",
"\n",
"Create a credentials.json file with the URL, ClientID and ClientSecret for both of the Envoy nodes you'll be working with (e.g. envoy.local:8000 and counterparty.local:9000 or your TestNet endpoint and the Charlie rVASP). That file should look like:\n",
"\n",
"```json\n",
"{\n",
" \"originator\": {\n",
" \"url\": \"\",\n",
" \"client_id\": \"\",\n",
" \"client_secret\": \"\"\n",
" },\n",
" \"beneficiary\": {\n",
" \"url\": \"\",\n",
" \"client_id\": \"\",\n",
" \"client_secret\": \"\"\n",
" }\n",
"}\n",
"```\n",
"\n",
"## Credentials Loading and Connection"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "0a36161e-477e-4d80-bb91-efea37cc7fe3",
"metadata": {},
"outputs": [],
"source": [
"import json\n",
"import base64\n",
"import random\n",
"\n",
"from envoy import connect"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "d6190802-4c49-40d9-a204-6f4082bc388b",
"metadata": {},
"outputs": [],
"source": [
"# Change this to the path of the credentials.json you created during setup!\n",
"CREDENTIALS_PATH = \"./pyenvoy/.secret/credentials.json\"\n",
"\n",
"\n",
"def load_credentials(name, path=CREDENTIALS_PATH):\n",
" with open(path, 'r') as f:\n",
" creds = json.load(f)\n",
" return creds.get(name)\n",
"\n",
"\n",
"def connect_to(name, path=CREDENTIALS_PATH):\n",
" creds = load_credentials(name, path)\n",
" return connect(**creds)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "d9d876c9-ffa8-4c44-9a4d-e1a696dd79c5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'status': 'ok', 'uptime': '13h49m44.804211417s', 'version': '0.24.0-beta.28'}"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Connect to the originator\n",
"originator = connect_to(\"envoy.local\")\n",
"originator.status()"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "39c011ee-8484-4e1e-b30a-d80660ee68b5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'status': 'ok', 'uptime': '13h50m10.817179959s', 'version': '0.24.0-beta.28'}"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Connect to beneficiary\n",
"beneficiary = connect_to(\"counterparty.local\")\n",
"beneficiary.status()"
]
},
{
"cell_type": "markdown",
"id": "d3e5f28f-e730-4fe4-ab48-a59968000570",
"metadata": {},
"source": [
"## Creating a Transaction\n",
"\n",
"In this step we'll use the prepare and send prepared API endpoints to have the Envoy node help us create valid IVMS 101 formatted data."
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "e2bc32d7-195a-4e49-a4dc-f04cb69dcd50",
"metadata": {},
"outputs": [],
"source": [
"# Change these variables to the ULIDs for your node(s)\n",
"# You can use originator.accounts.list() to list the accounts and when you retrieve an account\n",
"# use account.crypto_addresses.list() to return all the associated wallet addresses\n",
"ORIGINATOR_ACCOUNT_ID = \"01J02D5YP4VAPVPC7Z9KS1PA3B\"\n",
"BENEFICIARY_ACCOUNT_ID = \"01J02D46KC1E485G5M060X8NF3\"\n",
"ORIGINATOR_WALLET_ID = \"01J02D5YP6163RW22BHCXX9YKY\"\n",
"BENEFICIARY_WALLET_ID = \"01J02D46KE3W8WNJ5W820GPZAN\"\n",
"\n",
"\n",
"def prepare():\n",
" originatorAccount = originator.accounts.detail(ORIGINATOR_ACCOUNT_ID)\n",
" beneficiaryAccount = beneficiary.accounts.detail(BENEFICIARY_ACCOUNT_ID)\n",
"\n",
" originatorWallet = originatorAccount.crypto_addresses.detail(ORIGINATOR_WALLET_ID)\n",
" beneficiaryWallet = beneficiaryAccount.crypto_addresses.detail(BENEFICIARY_WALLET_ID)\n",
"\n",
" return {\n",
" \"travel_address\": beneficiaryAccount[\"travel_address\"],\n",
" \"originator\": {\n",
" \"first_name\": originatorAccount[\"first_name\"],\n",
" \"last_name\": originatorAccount[\"last_name\"],\n",
" \"customer_id\": originatorAccount[\"customer_id\"],\n",
" \"crypto_address\": originatorWallet[\"crypto_address\"],\n",
" \"country\": \"US\",\n",
" },\n",
" \"beneficiary\": {\n",
" \"first_name\": beneficiaryAccount[\"first_name\"],\n",
" \"last_name\": beneficiaryAccount[\"last_name\"],\n",
" \"crypto_address\": beneficiaryWallet[\"crypto_address\"],\n",
" \"country\": \"DE\",\n",
" },\n",
" \"transfer\": {\"amount\": random.random(), \"network\": \"BTC\"},\n",
" }\n",
"\n",
"\n",
"def pprint(d):\n",
" \"\"\"\n",
" Helper function to pretty print JSON responses\n",
" \"\"\"\n",
" print(json.dumps(d, indent=2))"
]
},
{
"cell_type": "markdown",
"id": "3cb84ac8-c4a2-4266-9f27-da9e407028d3",
"metadata": {},
"source": [
"### Step 1: Create Prepared Data"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "b0c38aa9-cc79-4e2d-aab2-6aff367b65c9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"travel_address\": \"ta4E6vubFqJmFMeEEKZzaLWG8MkXYjKCc2uwajN2FH3TFXZ61fWmJ73buTsJ5vc35yJDx8fGtwaGZzkjN6rCn8fM4xud1MWfYH9ctkw9rKbKt\",\n",
" \"identity\": {\n",
" \"originator\": {\n",
" \"originatorPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Tripp\",\n",
" \"secondaryIdentifier\": \"Michael\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"customerIdentification\": \"62120997\",\n",
" \"dateAndPlaceOfBirth\": {},\n",
" \"countryOfResidence\": \"US\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\"\n",
" ]\n",
" },\n",
" \"beneficiary\": {\n",
" \"beneficiaryPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Kirsch\",\n",
" \"secondaryIdentifier\": \"Monika\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"dateAndPlaceOfBirth\": {},\n",
" \"countryOfResidence\": \"DE\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\"\n",
" ]\n",
" },\n",
" \"originatingVASP\": {\n",
" \"originatingVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Development\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"1803 Welsh Bush Rd\",\n",
" \"Utica, MN 55104\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"376128278645689\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"0FOH00SEASDBQDSGOI84\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"US\"\n",
" }\n",
" }\n",
" },\n",
" \"beneficiaryVASP\": {\n",
" \"beneficiaryVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Counterparty\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"Markische Strasse 75\",\n",
" \"Dortmund 44141\",\n",
" \"North Rhine-Westphalia\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"2149535420055041\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"2T3800PLME5FJEPUKZ74\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"DE\"\n",
" }\n",
" }\n",
" }\n",
" },\n",
" \"transaction\": {\n",
" \"originator\": \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\",\n",
" \"beneficiary\": \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\",\n",
" \"amount\": 0.7718436011065057,\n",
" \"network\": \"BTC\"\n",
" }\n",
"}\n"
]
}
],
"source": [
"prepared = originator.transactions.prepare(prepare())\n",
"pprint(prepared.data)"
]
},
{
"cell_type": "markdown",
"id": "009b89af-370a-416d-99f5-399f947a25f9",
"metadata": {},
"source": [
"### Step 2: Send Prepared Data to Create a Transaction"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "88bb1099-7ee9-4316-80f5-896b4f80185f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"source\": \"local\",\n",
" \"status\": \"pending\",\n",
" \"counterparty\": \"Localhost Counterparty\",\n",
" \"counterparty_id\": \"01J02CN8HD8KJK3H919M0N7ASG\",\n",
" \"originator\": \"Michael Tripp\",\n",
" \"originator_address\": \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\",\n",
" \"beneficiary\": \"Monika Kirsch\",\n",
" \"beneficiary_address\": \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\",\n",
" \"virtual_asset\": \"BTC\",\n",
" \"amount\": 0.7718436011065057,\n",
" \"last_update\": \"2024-08-16T14:21:22.834404Z\",\n",
" \"created\": \"2024-08-16T09:21:22.804186-05:00\",\n",
" \"modified\": \"2024-08-16T09:21:22.835153-05:00\"\n",
"}\n"
]
}
],
"source": [
"txn = originator.transactions.send_prepared(prepared.data)\n",
"pprint(txn.data)"
]
},
{
"cell_type": "markdown",
"id": "50e63ee8-454c-4cef-ac96-17c6fb95a8b9",
"metadata": {},
"source": [
"## Review the Incoming Transaction on the Beneficiary VASP "
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "d8eaefc9-e036-43bc-b4ef-5b02087ea250",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"source\": \"remote\",\n",
" \"status\": \"review\",\n",
" \"counterparty\": \"Localhost Development\",\n",
" \"counterparty_id\": \"01J02CNA91ENKD6TPFTBH33RVJ\",\n",
" \"originator\": \"Michael Tripp\",\n",
" \"originator_address\": \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\",\n",
" \"beneficiary\": \"Monika Kirsch\",\n",
" \"beneficiary_address\": \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\",\n",
" \"virtual_asset\": \"BTC\",\n",
" \"amount\": 0.7718436011065057,\n",
" \"last_update\": \"2024-08-16T14:21:22.820462Z\",\n",
" \"envelope_count\": 2,\n",
" \"created\": \"2024-08-16T09:21:22.807639-05:00\",\n",
" \"modified\": \"2024-08-16T09:21:22.821307-05:00\"\n",
"}\n"
]
}
],
"source": [
"# Use the transaction ID from the above txn to fetch it from the benficiary side instead.\n",
"txn = beneficiary.transactions.detail(txn[\"id\"])\n",
"pprint(txn.data)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "1a0ad041-6c62-4861-bce1-306711287f4b",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"id\": \"01J5DS10G5TEM2RQRQ0ZG9S4VJ\",\n",
" \"envelope_id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"direction\": \"out\",\n",
" \"remote\": \"envoy.local\",\n",
" \"reply_to\": \"01J5DS10G4KF0J5M8SN2MAC9R1\",\n",
" \"is_error\": false,\n",
" \"identity\": {\n",
" \"originator\": {\n",
" \"originatorPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Tripp\",\n",
" \"secondaryIdentifier\": \"Michael\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"customerIdentification\": \"62120997\",\n",
" \"dateAndPlaceOfBirth\": {},\n",
" \"countryOfResidence\": \"US\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\"\n",
" ]\n",
" },\n",
" \"beneficiary\": {\n",
" \"beneficiaryPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Kirsch\",\n",
" \"secondaryIdentifier\": \"Monika\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"dateAndPlaceOfBirth\": {},\n",
" \"countryOfResidence\": \"DE\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\"\n",
" ]\n",
" },\n",
" \"originatingVASP\": {\n",
" \"originatingVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Development\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"1803 Welsh Bush Rd\",\n",
" \"Utica, MN 55104\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"376128278645689\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"0FOH00SEASDBQDSGOI84\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"US\"\n",
" }\n",
" }\n",
" },\n",
" \"beneficiaryVASP\": {\n",
" \"beneficiaryVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Counterparty\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"Markische Strasse 75\",\n",
" \"Dortmund 44141\",\n",
" \"North Rhine-Westphalia\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"2149535420055041\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"2T3800PLME5FJEPUKZ74\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"DE\"\n",
" }\n",
" }\n",
" }\n",
" },\n",
" \"pending\": {\n",
" \"envelope_id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"received_by\": \"TRISA Envoy Node\",\n",
" \"received_at\": \"2024-08-16T14:21:22Z\",\n",
" \"message\": \"We are reviewing your travel rule exchange request and will reply once we have completed our internal compliance checks\",\n",
" \"reply_not_after\": \"2024-08-17T14:21:22Z\",\n",
" \"reply_not_before\": \"2024-08-16T14:26:22Z\",\n",
" \"transaction\": {\n",
" \"originator\": \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\",\n",
" \"beneficiary\": \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\",\n",
" \"amount\": 0.7718436011065057,\n",
" \"network\": \"BTC\"\n",
" }\n",
" },\n",
" \"sent_at\": \"2024-08-16T14:21:22Z\",\n",
" \"received_at\": \"2024-08-16T14:21:22Z\",\n",
" \"timestamp\": \"2024-08-16T14:21:22.820462Z\",\n",
" \"public_key_signature\": \"SHA256:n/iTnE9b0sP1DQkaDMricHqPKYj0n00IjiaJ7lUmcAs\",\n",
" \"transfer_state\": \"PENDING\",\n",
" \"original\": \"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\"\n",
"}\n"
]
}
],
"source": [
"review = txn.accept_preview()\n",
"pprint(review.data)"
]
},
{
"cell_type": "markdown",
"id": "33042a66-32af-429c-8ff3-d651886a0924",
"metadata": {},
"source": [
"### Repair Workflow\n",
"\n",
"At this point you could accept this transaction, but to show a full workflow, we're going to send a repair back to the originator to request changes."
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "9a2b31a1-7e12-4dc5-9bbd-f822d7656c4c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"id\": \"01J5DS9PPWNBKJG3N5C4A29S5Q\",\n",
" \"envelope_id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"direction\": \"in\",\n",
" \"remote\": \"envoy.local\",\n",
" \"reply_to\": \"01J5DS9PPV93CV7Z69AHDZHH3M\",\n",
" \"is_error\": true,\n",
" \"error\": {\n",
" \"code\": 153,\n",
" \"message\": \"please supply date and place of birth\",\n",
" \"retry\": true\n",
" },\n",
" \"sent_at\": null,\n",
" \"timestamp\": \"2024-08-16T14:26:07.698946Z\",\n",
" \"transfer_state\": \"PENDING\",\n",
" \"original\": \"CiQ4MzEzZGNlMy0yMjNiLTQ5ZjYtYWY2YS1jOGE4ODFiYjVkZDhKLAiZARIlcGxlYXNlIHN1cHBseSBkYXRlIGFuZCBwbGFjZSBvZiBiaXJ0aBgBUhsyMDI0LTA4LTE2VDE0OjI2OjA3LjY5ODk0NlpoAg==\"\n",
"}\n"
]
}
],
"source": [
"# Note: \"repair\" --> \"request_retry\" depending on version of Envoy node\n",
"rep = txn.reject({\"code\": \"MISSING_FIELDS\", \"message\": \"please supply date and place of birth\", \"repair\": True})\n",
"pprint(rep.data)"
]
},
{
"cell_type": "markdown",
"id": "54d2c90a-19d1-45c6-9f23-a6eae7f47bce",
"metadata": {},
"source": [
"## Repair the Payload "
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "c85aaf37-1bc9-432b-a34a-3f6cb4e5507f",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"source\": \"local\",\n",
" \"status\": \"repair\",\n",
" \"counterparty\": \"Localhost Counterparty\",\n",
" \"counterparty_id\": \"01J02CN8HD8KJK3H919M0N7ASG\",\n",
" \"originator\": \"Michael Tripp\",\n",
" \"originator_address\": \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\",\n",
" \"beneficiary\": \"Monika Kirsch\",\n",
" \"beneficiary_address\": \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\",\n",
" \"virtual_asset\": \"BTC\",\n",
" \"amount\": 0.7718436011065057,\n",
" \"last_update\": \"2024-08-16T14:26:07.698946Z\",\n",
" \"envelope_count\": 6,\n",
" \"created\": \"2024-08-16T09:21:22.804186-05:00\",\n",
" \"modified\": \"2024-08-16T09:26:07.699361-05:00\"\n",
"}\n"
]
}
],
"source": [
"# Fetch the transaction from the originator side again \n",
"txn = originator.transactions.detail(txn[\"id\"])\n",
"pprint(txn.data)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "ef3408f2-cb0e-48dc-894c-d994fbaef862",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"error\": {\n",
" \"code\": \"MISSING_FIELDS\",\n",
" \"message\": \"please supply date and place of birth\",\n",
" \"repair\": true\n",
" },\n",
" \"envelope\": {\n",
" \"id\": \"01J5DS10GJ9S6MCBYB7Z51BNSR\",\n",
" \"envelope_id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"direction\": \"in\",\n",
" \"remote\": \"counterparty.local\",\n",
" \"reply_to\": \"01J5DS10GJ9S6MCBYB7XEK8S4J\",\n",
" \"is_error\": false,\n",
" \"identity\": {\n",
" \"originator\": {\n",
" \"originatorPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Tripp\",\n",
" \"secondaryIdentifier\": \"Michael\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"customerIdentification\": \"62120997\",\n",
" \"dateAndPlaceOfBirth\": {},\n",
" \"countryOfResidence\": \"US\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\"\n",
" ]\n",
" },\n",
" \"beneficiary\": {\n",
" \"beneficiaryPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Kirsch\",\n",
" \"secondaryIdentifier\": \"Monika\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"dateAndPlaceOfBirth\": {},\n",
" \"countryOfResidence\": \"DE\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\"\n",
" ]\n",
" },\n",
" \"originatingVASP\": {\n",
" \"originatingVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Development\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"1803 Welsh Bush Rd\",\n",
" \"Utica, MN 55104\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"376128278645689\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"0FOH00SEASDBQDSGOI84\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"US\"\n",
" }\n",
" }\n",
" },\n",
" \"beneficiaryVASP\": {\n",
" \"beneficiaryVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Counterparty\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"Markische Strasse 75\",\n",
" \"Dortmund 44141\",\n",
" \"North Rhine-Westphalia\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"2149535420055041\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"2T3800PLME5FJEPUKZ74\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"DE\"\n",
" }\n",
" }\n",
" }\n",
" },\n",
" \"pending\": {\n",
" \"envelope_id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"received_by\": \"TRISA Envoy Node\",\n",
" \"received_at\": \"2024-08-16T14:21:22Z\",\n",
" \"message\": \"We are reviewing your travel rule exchange request and will reply once we have completed our internal compliance checks\",\n",
" \"reply_not_after\": \"2024-08-17T14:21:22Z\",\n",
" \"reply_not_before\": \"2024-08-16T14:26:22Z\",\n",
" \"transaction\": {\n",
" \"originator\": \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\",\n",
" \"beneficiary\": \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\",\n",
" \"amount\": 0.7718436011065057,\n",
" \"network\": \"BTC\"\n",
" }\n",
" },\n",
" \"sent_at\": \"2024-08-16T14:21:22Z\",\n",
" \"received_at\": \"2024-08-16T14:21:22Z\",\n",
" \"timestamp\": \"2024-08-16T14:21:22.834404Z\",\n",
" \"public_key_signature\": \"SHA256:1b1/Bx6dSDLyAB9jfySn0tryKlR+u/Snjom3ihnliSc\",\n",
" \"transfer_state\": \"PENDING\",\n",
" \"original\": \"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\"\n",
" }\n",
"}\n"
]
}
],
"source": [
"# Get the repair preview to make changes \n",
"repair = txn.repair_preview()\n",
"pprint(repair.data)"
]
},
{
"cell_type": "code",
"execution_count": 28,
"id": "368cc1f8-7936-490f-897d-ab41d04d8aa5",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"envelope_id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"identity\": {\n",
" \"originator\": {\n",
" \"originatorPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Tripp\",\n",
" \"secondaryIdentifier\": \"Michael\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"customerIdentification\": \"62120997\",\n",
" \"dateAndPlaceOfBirth\": {\n",
" \"dateOfBirth\": \"1972-11-21\",\n",
" \"placeOfBirth\": \"Smallville, KA, USA\"\n",
" },\n",
" \"countryOfResidence\": \"US\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\"\n",
" ]\n",
" },\n",
" \"beneficiary\": {\n",
" \"beneficiaryPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Kirsch\",\n",
" \"secondaryIdentifier\": \"Monika\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"dateAndPlaceOfBirth\": {},\n",
" \"countryOfResidence\": \"DE\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\"\n",
" ]\n",
" },\n",
" \"originatingVASP\": {\n",
" \"originatingVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Development\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"1803 Welsh Bush Rd\",\n",
" \"Utica, MN 55104\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"376128278645689\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"0FOH00SEASDBQDSGOI84\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"US\"\n",
" }\n",
" }\n",
" },\n",
" \"beneficiaryVASP\": {\n",
" \"beneficiaryVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Counterparty\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"Markische Strasse 75\",\n",
" \"Dortmund 44141\",\n",
" \"North Rhine-Westphalia\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"2149535420055041\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"2T3800PLME5FJEPUKZ74\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"DE\"\n",
" }\n",
" }\n",
" }\n",
" },\n",
" \"transaction\": {\n",
" \"originator\": \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\",\n",
" \"beneficiary\": \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\",\n",
" \"amount\": 0.7718436011065057,\n",
" \"network\": \"BTC\"\n",
" },\n",
" \"sent_at\": \"2024-08-16T14:21:22Z\",\n",
" \"received_at\": \"2024-08-16T14:21:22Z\"\n",
"}\n"
]
}
],
"source": [
"# Create a response to make the repair\n",
"repaired = {\n",
" \"envelope_id\": repair[\"envelope\"][\"envelope_id\"],\n",
" \"identity\": repair[\"envelope\"][\"identity\"].data,\n",
" \"transaction\": repair[\"envelope\"][\"pending\"][\"transaction\"].data,\n",
" \"sent_at\": repair[\"envelope\"][\"sent_at\"],\n",
" \"received_at\": repair[\"envelope\"][\"received_at\"],\n",
"}\n",
"\n",
"repaired[\"identity\"][\"originator\"][\"originatorPersons\"][0][\"naturalPerson\"][\"dateAndPlaceOfBirth\"] = {\n",
" \"dateOfBirth\": \"1972-11-21\",\n",
" \"placeOfBirth\": \"Smallville, KA, USA\",\n",
"}\n",
"\n",
"pprint(repaired)"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "6919c2e4-24f7-4558-9904-abf0be9abe7e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"id\": \"01J5DSM2VNW91KYGHPWJ9210DH\",\n",
" \"envelope_id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"direction\": \"in\",\n",
" \"remote\": \"counterparty.local\",\n",
" \"reply_to\": \"01J5DSM2VNW91KYGHPWFGDBXA9\",\n",
" \"is_error\": false,\n",
" \"identity\": {\n",
" \"originator\": {\n",
" \"originatorPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Tripp\",\n",
" \"secondaryIdentifier\": \"Michael\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"customerIdentification\": \"62120997\",\n",
" \"dateAndPlaceOfBirth\": {\n",
" \"dateOfBirth\": \"1972-11-21\",\n",
" \"placeOfBirth\": \"Smallville, KA, USA\"\n",
" },\n",
" \"countryOfResidence\": \"US\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\"\n",
" ]\n",
" },\n",
" \"beneficiary\": {\n",
" \"beneficiaryPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Kirsch\",\n",
" \"secondaryIdentifier\": \"Monika\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"dateAndPlaceOfBirth\": {},\n",
" \"countryOfResidence\": \"DE\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\"\n",
" ]\n",
" },\n",
" \"originatingVASP\": {\n",
" \"originatingVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Development\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"1803 Welsh Bush Rd\",\n",
" \"Utica, MN 55104\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"376128278645689\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"0FOH00SEASDBQDSGOI84\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"US\"\n",
" }\n",
" }\n",
" },\n",
" \"beneficiaryVASP\": {\n",
" \"beneficiaryVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Counterparty\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"Markische Strasse 75\",\n",
" \"Dortmund 44141\",\n",
" \"North Rhine-Westphalia\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"2149535420055041\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"2T3800PLME5FJEPUKZ74\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"DE\"\n",
" }\n",
" }\n",
" }\n",
" },\n",
" \"pending\": {\n",
" \"envelope_id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"received_by\": \"TRISA Envoy Node\",\n",
" \"received_at\": \"2024-08-16T14:31:47Z\",\n",
" \"message\": \"We are reviewing your travel rule exchange request and will reply once we have completed our internal compliance checks\",\n",
" \"reply_not_after\": \"2024-08-17T14:31:47Z\",\n",
" \"reply_not_before\": \"2024-08-16T14:36:47Z\",\n",
" \"transaction\": {\n",
" \"originator\": \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\",\n",
" \"beneficiary\": \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\",\n",
" \"amount\": 0.7718436011065057,\n",
" \"network\": \"BTC\"\n",
" }\n",
" },\n",
" \"sent_at\": \"2024-08-16T14:21:22Z\",\n",
" \"received_at\": \"2024-08-16T14:31:47Z\",\n",
" \"timestamp\": \"2024-08-16T14:31:47.828637Z\",\n",
" \"public_key_signature\": \"SHA256:1b1/Bx6dSDLyAB9jfySn0tryKlR+u/Snjom3ihnliSc\",\n",
" \"transfer_state\": \"PENDING\",\n",
" \"original\": \"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\"\n",
"}\n"
]
}
],
"source": [
"rep = txn.repair(repaired)\n",
"pprint(rep.data)"
]
},
{
"cell_type": "markdown",
"id": "139c7633-e885-47e5-8f55-77a5ebd5c4c3",
"metadata": {},
"source": [
"## Accept with Modifications"
]
},
{
"cell_type": "code",
"execution_count": 30,
"id": "a924bff4-372c-4942-8a03-a40a9519419e",
"metadata": {},
"outputs": [],
"source": [
"txn = beneficiary.transactions.detail(txn[\"id\"])"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "906224f3-3911-4b08-98cc-967e026926bb",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"id\": \"01J5DSM2V5ZTXAPDPR3TJTNNJV\",\n",
" \"envelope_id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"direction\": \"out\",\n",
" \"remote\": \"envoy.local\",\n",
" \"reply_to\": \"01J5DSM2V5ZTXAPDPR3RDZKZV8\",\n",
" \"is_error\": false,\n",
" \"identity\": {\n",
" \"originator\": {\n",
" \"originatorPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Tripp\",\n",
" \"secondaryIdentifier\": \"Michael\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"customerIdentification\": \"62120997\",\n",
" \"dateAndPlaceOfBirth\": {\n",
" \"dateOfBirth\": \"1972-11-21\",\n",
" \"placeOfBirth\": \"Smallville, KA, USA\"\n",
" },\n",
" \"countryOfResidence\": \"US\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\"\n",
" ]\n",
" },\n",
" \"beneficiary\": {\n",
" \"beneficiaryPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Kirsch\",\n",
" \"secondaryIdentifier\": \"Monika\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"dateAndPlaceOfBirth\": {},\n",
" \"countryOfResidence\": \"DE\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\"\n",
" ]\n",
" },\n",
" \"originatingVASP\": {\n",
" \"originatingVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Development\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"1803 Welsh Bush Rd\",\n",
" \"Utica, MN 55104\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"376128278645689\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"0FOH00SEASDBQDSGOI84\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"US\"\n",
" }\n",
" }\n",
" },\n",
" \"beneficiaryVASP\": {\n",
" \"beneficiaryVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Counterparty\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"Markische Strasse 75\",\n",
" \"Dortmund 44141\",\n",
" \"North Rhine-Westphalia\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"2149535420055041\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"2T3800PLME5FJEPUKZ74\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"DE\"\n",
" }\n",
" }\n",
" }\n",
" },\n",
" \"pending\": {\n",
" \"envelope_id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"received_by\": \"TRISA Envoy Node\",\n",
" \"received_at\": \"2024-08-16T14:31:47Z\",\n",
" \"message\": \"We are reviewing your travel rule exchange request and will reply once we have completed our internal compliance checks\",\n",
" \"reply_not_after\": \"2024-08-17T14:31:47Z\",\n",
" \"reply_not_before\": \"2024-08-16T14:36:47Z\",\n",
" \"transaction\": {\n",
" \"originator\": \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\",\n",
" \"beneficiary\": \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\",\n",
" \"amount\": 0.7718436011065057,\n",
" \"network\": \"BTC\"\n",
" }\n",
" },\n",
" \"sent_at\": \"2024-08-16T14:21:22Z\",\n",
" \"received_at\": \"2024-08-16T14:31:47Z\",\n",
" \"timestamp\": \"2024-08-16T14:31:47.813019Z\",\n",
" \"public_key_signature\": \"SHA256:n/iTnE9b0sP1DQkaDMricHqPKYj0n00IjiaJ7lUmcAs\",\n",
" \"transfer_state\": \"PENDING\",\n",
" \"original\": \"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\"\n",
"}\n"
]
}
],
"source": [
"preview = txn.accept_preview()\n",
"pprint(preview.data)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "8a5425a6-05ff-4133-b30f-45d952a68fd0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"id\": \"01J5DSW0M52CE4H5WE9AC965T6\",\n",
" \"envelope_id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"direction\": \"in\",\n",
" \"remote\": \"envoy.local\",\n",
" \"reply_to\": \"01J5DSW0M52CE4H5WE991W9E2Z\",\n",
" \"is_error\": false,\n",
" \"identity\": {\n",
" \"originator\": {\n",
" \"originatorPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Tripp\",\n",
" \"secondaryIdentifier\": \"Michael\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"customerIdentification\": \"62120997\",\n",
" \"dateAndPlaceOfBirth\": {\n",
" \"dateOfBirth\": \"1972-11-21\",\n",
" \"placeOfBirth\": \"Smallville, KA, USA\"\n",
" },\n",
" \"countryOfResidence\": \"US\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\"\n",
" ]\n",
" },\n",
" \"beneficiary\": {\n",
" \"beneficiaryPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Kirsch\",\n",
" \"secondaryIdentifier\": \"Monika\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"dateAndPlaceOfBirth\": {\n",
" \"dateOfBirth\": \"1993-02-06\",\n",
" \"placeOfBirth\": \"Hamburg, DE\"\n",
" },\n",
" \"countryOfResidence\": \"DE\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\"\n",
" ]\n",
" },\n",
" \"originatingVASP\": {\n",
" \"originatingVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Development\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"1803 Welsh Bush Rd\",\n",
" \"Utica, MN 55104\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"376128278645689\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"0FOH00SEASDBQDSGOI84\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"US\"\n",
" }\n",
" }\n",
" },\n",
" \"beneficiaryVASP\": {\n",
" \"beneficiaryVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Counterparty\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"Markische Strasse 75\",\n",
" \"Dortmund 44141\",\n",
" \"North Rhine-Westphalia\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"2149535420055041\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"2T3800PLME5FJEPUKZ74\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"DE\"\n",
" }\n",
" }\n",
" }\n",
" },\n",
" \"transaction\": {\n",
" \"originator\": \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\",\n",
" \"beneficiary\": \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\",\n",
" \"amount\": 0.7718436011065057,\n",
" \"network\": \"BTC\"\n",
" },\n",
" \"sent_at\": \"2024-08-16T14:21:22Z\",\n",
" \"received_at\": \"2024-08-16T14:31:47Z\",\n",
" \"timestamp\": \"2024-08-16T14:36:07.685388Z\",\n",
" \"public_key_signature\": \"SHA256:n/iTnE9b0sP1DQkaDMricHqPKYj0n00IjiaJ7lUmcAs\",\n",
" \"transfer_state\": \"ACCEPTED\",\n",
" \"original\": \"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\"\n",
"}\n"
]
}
],
"source": [
"accepted = {\n",
" \"envelope_id\": preview[\"envelope_id\"],\n",
" \"identity\": preview[\"identity\"].data,\n",
" \"transaction\": preview[\"pending\"][\"transaction\"].data,\n",
" \"sent_at\": preview[\"sent_at\"],\n",
" \"received_at\": preview[\"received_at\"],\n",
"}\n",
"\n",
"accepted[\"identity\"][\"beneficiary\"][\"beneficiaryPersons\"][0][\"naturalPerson\"][\"dateAndPlaceOfBirth\"] = {\n",
" \"dateOfBirth\": \"1993-02-06\",\n",
" \"placeOfBirth\": \"Hamburg, DE\",\n",
"}\n",
"\n",
"rep = txn.accept(accepted)\n",
"pprint(rep.data)"
]
},
{
"cell_type": "markdown",
"id": "5fe2f416-a973-48ed-9797-07c52d61e569",
"metadata": {},
"source": [
"## Complete the Transaction\n",
"\n",
"Now that the travel rule PII exchange has been accepted, perform the on-chain transaction and send back the txnid for record locating on the chain."
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "0241e7f1-4d80-4345-903b-02f9508431b3",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"source\": \"local\",\n",
" \"status\": \"accepted\",\n",
" \"counterparty\": \"Localhost Counterparty\",\n",
" \"counterparty_id\": \"01J02CN8HD8KJK3H919M0N7ASG\",\n",
" \"originator\": \"Michael Tripp\",\n",
" \"originator_address\": \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\",\n",
" \"beneficiary\": \"Monika Kirsch\",\n",
" \"beneficiary_address\": \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\",\n",
" \"virtual_asset\": \"BTC\",\n",
" \"amount\": 0.7718436011065057,\n",
" \"last_update\": \"2024-08-16T14:36:07.666512Z\",\n",
" \"envelope_count\": 10,\n",
" \"created\": \"2024-08-16T09:21:22.804186-05:00\",\n",
" \"modified\": \"2024-08-16T09:36:07.667441-05:00\"\n",
"}\n"
]
}
],
"source": [
"txn = originator.transactions.detail(txn[\"id\"])\n",
"pprint(txn.data)"
]
},
{
"cell_type": "code",
"execution_count": 38,
"id": "dedc08d1-fd51-46e3-9a86-7870e97d9918",
"metadata": {},
"outputs": [],
"source": [
"def generate_bitcoin_hash():\n",
" h = bytes([random.randrange(0, 256) for _ in range(0, 64)])\n",
" return base64.b64encode(h)"
]
},
{
"cell_type": "code",
"execution_count": 39,
"id": "3a6033e8-b3ab-4264-98f6-9badef21f2f0",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"id\": \"01J5DSW0KKWQ9JEQQHTQKV0CB4\",\n",
" \"envelope_id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"direction\": \"out\",\n",
" \"remote\": \"counterparty.local\",\n",
" \"reply_to\": \"01J5DSW0KJNGMHDZDTNVKN8N45\",\n",
" \"is_error\": false,\n",
" \"identity\": {\n",
" \"originator\": {\n",
" \"originatorPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Tripp\",\n",
" \"secondaryIdentifier\": \"Michael\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"customerIdentification\": \"62120997\",\n",
" \"dateAndPlaceOfBirth\": {\n",
" \"dateOfBirth\": \"1972-11-21\",\n",
" \"placeOfBirth\": \"Smallville, KA, USA\"\n",
" },\n",
" \"countryOfResidence\": \"US\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\"\n",
" ]\n",
" },\n",
" \"beneficiary\": {\n",
" \"beneficiaryPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Kirsch\",\n",
" \"secondaryIdentifier\": \"Monika\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"dateAndPlaceOfBirth\": {\n",
" \"dateOfBirth\": \"1993-02-06\",\n",
" \"placeOfBirth\": \"Hamburg, DE\"\n",
" },\n",
" \"countryOfResidence\": \"DE\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\"\n",
" ]\n",
" },\n",
" \"originatingVASP\": {\n",
" \"originatingVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Development\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"1803 Welsh Bush Rd\",\n",
" \"Utica, MN 55104\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"376128278645689\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"0FOH00SEASDBQDSGOI84\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"US\"\n",
" }\n",
" }\n",
" },\n",
" \"beneficiaryVASP\": {\n",
" \"beneficiaryVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Counterparty\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"Markische Strasse 75\",\n",
" \"Dortmund 44141\",\n",
" \"North Rhine-Westphalia\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"2149535420055041\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"2T3800PLME5FJEPUKZ74\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"DE\"\n",
" }\n",
" }\n",
" }\n",
" },\n",
" \"transaction\": {\n",
" \"originator\": \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\",\n",
" \"beneficiary\": \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\",\n",
" \"amount\": 0.7718436011065057,\n",
" \"network\": \"BTC\"\n",
" },\n",
" \"sent_at\": \"2024-08-16T14:21:22Z\",\n",
" \"received_at\": \"2024-08-16T14:31:47Z\",\n",
" \"timestamp\": \"2024-08-16T14:36:07.666512Z\",\n",
" \"public_key_signature\": \"SHA256:1b1/Bx6dSDLyAB9jfySn0tryKlR+u/Snjom3ihnliSc\",\n",
" \"transfer_state\": \"ACCEPTED\",\n",
" \"original\": \"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\"\n",
"}\n"
]
}
],
"source": [
"latest = txn.latest_payload()\n",
"pprint(latest.data)"
]
},
{
"cell_type": "code",
"execution_count": 42,
"id": "73beb804-a829-488f-bcf9-4375d3be9bdc",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{\n",
" \"id\": \"01J5DTA16PPPFACP9R3W7T5MTT\",\n",
" \"envelope_id\": \"8313dce3-223b-49f6-af6a-c8a881bb5dd8\",\n",
" \"direction\": \"in\",\n",
" \"remote\": \"counterparty.local\",\n",
" \"reply_to\": \"01J5DTA16PPPFACP9R3VXVZ7MH\",\n",
" \"is_error\": false,\n",
" \"identity\": {\n",
" \"originator\": {\n",
" \"originatorPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Tripp\",\n",
" \"secondaryIdentifier\": \"Michael\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"customerIdentification\": \"62120997\",\n",
" \"dateAndPlaceOfBirth\": {\n",
" \"dateOfBirth\": \"1972-11-21\",\n",
" \"placeOfBirth\": \"Smallville, KA, USA\"\n",
" },\n",
" \"countryOfResidence\": \"US\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\"\n",
" ]\n",
" },\n",
" \"beneficiary\": {\n",
" \"beneficiaryPersons\": [\n",
" {\n",
" \"naturalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"primaryIdentifier\": \"Kirsch\",\n",
" \"secondaryIdentifier\": \"Monika\",\n",
" \"nameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"HOME\",\n",
" \"addressLine\": [\n",
" \"\",\n",
" \"\",\n",
" \", ,\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"nationalIdentification\": {},\n",
" \"dateAndPlaceOfBirth\": {\n",
" \"dateOfBirth\": \"1993-02-06\",\n",
" \"placeOfBirth\": \"Hamburg, DE\"\n",
" },\n",
" \"countryOfResidence\": \"DE\"\n",
" }\n",
" }\n",
" ],\n",
" \"accountNumber\": [\n",
" \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\"\n",
" ]\n",
" },\n",
" \"originatingVASP\": {\n",
" \"originatingVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Development\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"1803 Welsh Bush Rd\",\n",
" \"Utica, MN 55104\"\n",
" ],\n",
" \"country\": \"US\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"376128278645689\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"0FOH00SEASDBQDSGOI84\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"US\"\n",
" }\n",
" }\n",
" },\n",
" \"beneficiaryVASP\": {\n",
" \"beneficiaryVASP\": {\n",
" \"legalPerson\": {\n",
" \"name\": {\n",
" \"nameIdentifier\": [\n",
" {\n",
" \"legalPersonName\": \"Localhost Counterparty\",\n",
" \"legalPersonNameIdentifierType\": \"LEGL\"\n",
" }\n",
" ]\n",
" },\n",
" \"geographicAddress\": [\n",
" {\n",
" \"addressType\": \"BIZZ\",\n",
" \"addressLine\": [\n",
" \"Markische Strasse 75\",\n",
" \"Dortmund 44141\",\n",
" \"North Rhine-Westphalia\"\n",
" ],\n",
" \"country\": \"DE\"\n",
" }\n",
" ],\n",
" \"customerNumber\": \"2149535420055041\",\n",
" \"nationalIdentification\": {\n",
" \"nationalIdentifier\": \"2T3800PLME5FJEPUKZ74\",\n",
" \"nationalIdentifierType\": \"LEIX\"\n",
" },\n",
" \"countryOfRegistration\": \"DE\"\n",
" }\n",
" }\n",
" }\n",
" },\n",
" \"transaction\": {\n",
" \"txid\": \"1yrP8EUm8X7Ff+sAs5C0aQILnC2asygoPX8ANb15vnY7z/CVeyIX17d59+DIUVozSVBKzlWkZbtws4Ac42OilQ==\",\n",
" \"originator\": \"n4mtuB4jtyNnPqznDcUfVMq4F8V3qRmVg3\",\n",
" \"beneficiary\": \"moL3rxQKoZj8zh8SmuKcCLHf2ifH15LhrP\",\n",
" \"amount\": 0.7718436011065057,\n",
" \"network\": \"BTC\"\n",
" },\n",
" \"sent_at\": \"2024-08-16T14:21:22Z\",\n",
" \"received_at\": \"2024-08-16T14:31:47Z\",\n",
" \"timestamp\": \"2024-08-16T14:43:47.030397Z\",\n",
" \"public_key_signature\": \"SHA256:1b1/Bx6dSDLyAB9jfySn0tryKlR+u/Snjom3ihnliSc\",\n",
" \"transfer_state\": \"COMPLETED\",\n",
" \"original\": \"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\"\n",
"}\n"
]
}
],
"source": [
"complete = {\n",
" \"envelope_id\": latest[\"envelope_id\"],\n",
" \"identity\": latest[\"identity\"].data,\n",
" \"transaction\": latest[\"transaction\"].data,\n",
" \"sent_at\": latest[\"sent_at\"],\n",
" \"received_at\": latest[\"received_at\"],\n",
" \"transfer_state\": \"COMPLETED\",\n",
"}\n",
"\n",
"complete[\"transaction\"][\"txid\"] = generate_bitcoin_hash().decode(\"utf-8\")\n",
"\n",
"rep = txn.send(complete)\n",
"pprint(rep.data)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.12.0"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment