{"metadata":{"image":[],"title":"","description":""},"api":{"url":"","auth":"required","settings":"","results":{"codes":[]},"params":[]},"next":{"description":"","pages":[]},"title":"Building a Compliant Swap Service","type":"basic","slug":"building-a-compliant-swap-service","excerpt":"Use Wyre to build a crypto swap service","body":"You can quickly create a compliant crypto swap service using Wyre's Wallet and Transfers APIs. This service will be able swap between any of the [cryptocurrency pairs](docs:supported-currencies-1) offered by Wyre.\n[block:callout]\n{\n  \"type\": \"info\",\n  \"title\": \"Contents:\",\n  \"body\": \"1. [Business Account Setup](#1-business-account-setup)\\n3. [Creating Wallets](#2-creating-wallets)\\n4. [Swap Transfer](#3-crypto-swap-transfers)\\n5. [Deposit External Funds](#4-how-to-get-external-funds-into-wyre-wallets)\\n6. [Withdrawing Funds](#5-how-to-complete-a-trade-back-to-your-wallets)\\n7. [Transfer Status](#6-checking-transfer-status)\"\n}\n[/block]\nWyre wallets are white label API driven crypto wallets that you can easily integrate into your app or platform.\n[block:api-header]\n{\n  \"title\": \"1. Business Account Setup\"\n}\n[/block]\n\n[block:callout]\n{\n  \"type\": \"info\",\n  \"body\": \"* Test [dashboard](http://dash.testwyre.com/) access.\\n* Production [dashboard](http://dash.sendwyre.com/) access.\\n* Select the proper [environment](docs:productiontest-environments).\\n* [Authenticate and sign requests](doc:authentication).\\n* Contact [sales:::at:::sendwyre.com](mailto:[email protected]) for production access.\",\n  \"title\": \"Business Account Setup Notes:\"\n}\n[/block]\n\n[block:image]\n{\n  \"images\": [\n    {\n      \"image\": [\n        \"https://files.readme.io/a4cab55-dashboard.png\",\n        \"dashboard.png\",\n        800,\n        424,\n        \"#333\"\n      ]\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"2. Creating Wallets\"\n}\n[/block]\nYour app or platform can generate Wyre wallets on the fly. Use the [Create Wallet](doc:create-wallet) endpoint to create wallets for your users. \n\nYou can create `DEFAULT`,`ENTERPRISE` or `SAVINGS` wallet types. \n\n* `DEFAULT` wallets are used for individuals.\n* `ENTERPRISE` wallets are used to represent control by a business.\n* `SAVINGS` wallets are used for individuals and businesses who wish to receive interest on their crypto holdings. \n\nWhen creating a wallet you will need to take note of the wallet `id` and the `depositAddresses` node. You will reference the wallet `id` when making internal transfer swaps. The `depositAddresses`: `BTC` and `ETH` will be referenced when your users fund the Wyre wallet from external crypto wallets. Note that the `ETH` address supports all of Wyre's ERC20 tokens. \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n    \\\"owner\\\": \\\"account:AC_Y22XXXXXXXX\\\",\\n    \\\"pusherChannel\\\": \\\"d89ecb3deae49a753c0df3a2166f46dd\\\",\\n    \\\"srn\\\": \\\"wallet:WA_XXXXXXXX1\\\",\\n    \\\"status\\\": null,\\n    \\\"createdAt\\\": 1605818017849,\\n    \\\"balances\\\": {},\\n    \\\"notes\\\": null,\\n    \\\"depositAddresses\\\": {\\n        \\\"BTC\\\": \\\"mfbhWCN9tevTQgWKgHhjbHgESqiGXyDUkH\\\",\\n        \\\"ETH\\\": \\\"0x48093f4de78b4b26e3a2b90bb2a5cf92883570c3\\\"\\n    },\\n    \\\"totalBalances\\\" : {\\n        \\\"BTC\\\" : 0,\\n        \\\"ETH\\\" : 0,\\n    },\\n    \\\"availableBalances\\\" : {\\n        \\\"BTC\\\" : 0,\\n        \\\"ETH\\\" : 0\\n    },\\n    \\\"callbackUrl\\\": null,\\n    \\\"name\\\": \\\"random-uid-value-from-your-app-2\\\",\\n    \\\"id\\\": \\\"WA_XXXXXXXX1\\\",\\n    \\\"type\\\": \\\"DEFAULT\\\",\\n    \\\"callbackUrl\\\" : \\\"https://your.website.io/callback\\\",\\n    \\\"notes\\\" : \\\"Notes about the user\\\"\\n}\",\n      \"language\": \"json\",\n      \"name\": \"Wallet Creation Response\"\n    }\n  ]\n}\n[/block]\n\n[block:api-header]\n{\n  \"title\": \"3. Crypto Swap Transfers\"\n}\n[/block]\nWayre wallets are identified with a unique ID i.e. \"WA_XXXXXXX1\". Note that for swaps the `source` and `dest` will reference the same wallet id belonging to the user. \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"Example: Swap transfer to the same wallet\\n{  \\n     \\\"source\\\":\\\"wallet:WA_XXXXXXXX1\\\",\\n     \\\"sourceCurrency\\\":\\\"BTC\\\",\\n     \\\"destCurrency\\\":\\\"ETH\\\", \\n     \\\"sourceAmount\\\":\\\"0.015\\\",\\n     \\\"dest\\\":\\\"wallet:WA_XXXXXXXX1\\\",\\n     \\\"message\\\": \\\"Crypto Swap\\\",\\n     \\\"autoConfirm\\\":true  \\n }\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n**Example shows the [Create Transfer](doc:create-transfer) endpoint data.**\n[block:api-header]\n{\n  \"title\": \"4. How to Get External Funds Into Wyre Wallets\"\n}\n[/block]\nYour users will need to transfer crypto funds into your platform's generated Wyre wallets. This requires pulling in one or both of the `depositAddresses` as described in [Step 3](#3-creating-wallets).  You can also fetch the wallet details using the [Lookup Wallet](doc:lookup-wallet) endpoint.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"\\\"depositAddresses\\\": {\\n        \\\"BTC\\\": \\\"mfbhWCN9tevTQgWKgHhjbHgESqiGXyDUkH\\\",\\n        \\\"ETH\\\": \\\"0x48093f4de78b4b26e3a2b90bb2a5cf92883570c3\\\"\\n    },\",\n      \"language\": \"json\",\n      \"name\": \"Wallet Deposit Addresses\"\n    }\n  ]\n}\n[/block]\nYou can then display the deposit addresses to your users as a QR code or plain text. Your user's can then scan or copy/paste the deposit address to make a deposit payment from an external crypto wallet.\n[block:api-header]\n{\n  \"title\": \"5. How to Complete a Trade Back to Your Wallets\"\n}\n[/block]\nUsing the [Create Transfer](doc:create-transfer) endpoint, you can withdraw crypto funds to external wallets. The example below shows how the `dest` references the user's external crypto wallet address. Note the [SRN](doc:srns) `ethereum` is concatenated to the address.\n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"Example: Transfer funds to an external wallet\\n{  \\n     \\\"source\\\":\\\"wallet:WA_XXXXXXXX1\\\",\\n     \\\"sourceCurrency\\\":\\\"ETH\\\",\\n     \\\"destCurrency\\\":\\\"ETH\\\", \\n     \\\"sourceAmount\\\":\\\"0.534\\\",\\n     \\\"dest\\\":\\\"ethereum:0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413\\\",\\n     \\\"message\\\": \\\"External Transfer\\\",\\n     \\\"autoConfirm\\\":true  \\n }\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\nThe Create Transfer endpoint returns a Transfer Id. This Id can be used to check the status of a transfer.  \n[block:api-header]\n{\n  \"title\": \"6. Checking Transfer Status\"\n}\n[/block]\nThe returned Transfer Id can be used to look up a transfer by using the [Get Transfer](doc:get-transfer) endpoint. The returned data provides information regarding fees, status and blockchain transaction hash. \n[block:code]\n{\n  \"codes\": [\n    {\n      \"code\": \"{\\n  \\\"owner\\\": \\\"account:AC_XXXXXXXX1\\\",\\n  \\\"reversingSubStatus\\\": null,\\n  \\\"source\\\": \\\"wallet:WA_XXXXXXXX1\\\",\\n  \\\"pendingSubStatus\\\": null,\\n  \\\"status\\\": \\\"COMPLETED\\\",\\n  \\\"reversalReason\\\": null,\\n  \\\"createdAt\\\": 1603824914000,\\n  \\\"sourceAmount\\\": 2.02,\\n  \\\"destCurrency\\\": \\\"ETH\\\",\\n  \\\"sourceCurrency\\\": \\\"ETH\\\",\\n  \\\"statusHistories\\\": [\\n    {\\n      \\\"id\\\": \\\"QXXXXXXXX\\\",\\n      \\\"transferId\\\": \\\"TF_XXXXXXXX1\\\",\\n      \\\"createdAt\\\": 1603824935000,\\n      \\\"type\\\": \\\"OUTGOING\\\",\\n      \\\"statusOrder\\\": 0,\\n      \\\"statusDetail\\\": \\\"Initiating Transfer\\\",\\n      \\\"state\\\": \\\"INITIATED\\\",\\n      \\\"failedState\\\": null\\n    },\\n    {\\n      \\\"id\\\": \\\"BXXXXXXXX\\\",\\n      \\\"transferId\\\": \\\"TF_XXXXXXX1\\\",\\n      \\\"createdAt\\\": 1603824935000,\\n      \\\"type\\\": \\\"OUTGOING\\\",\\n      \\\"statusOrder\\\": 200,\\n      \\\"statusDetail\\\": \\\"Processing Exchange\\\",\\n      \\\"state\\\": \\\"PENDING\\\",\\n      \\\"failedState\\\": null\\n    },\\n    {\\n      \\\"id\\\": \\\"9XXXXXXXX\\\",\\n      \\\"transferId\\\": \\\"TF_XXXXXXXX1\\\",\\n      \\\"createdAt\\\": 1603824936000,\\n      \\\"type\\\": \\\"OUTGOING\\\",\\n      \\\"statusOrder\\\": 400,\\n      \\\"statusDetail\\\": \\\"Processing Deposit\\\",\\n      \\\"state\\\": \\\"PENDING\\\",\\n      \\\"failedState\\\": null\\n    },\\n    {\\n      \\\"id\\\": \\\"TXXXXXXXX\\\",\\n      \\\"transferId\\\": \\\"TF_XXXXXXXX1\\\",\\n      \\\"createdAt\\\": 1604346618000,\\n      \\\"type\\\": \\\"OUTGOING\\\",\\n      \\\"statusOrder\\\": 5100,\\n      \\\"statusDetail\\\": \\\"Transfer Completed\\\",\\n      \\\"state\\\": \\\"COMPLETED\\\",\\n      \\\"failedState\\\": null\\n    }\\n  ],\\n  \\\"blockchainTx\\\": {\\n    \\\"id\\\": \\\"TR_XXXXXXXX1\\\",\\n    \\\"networkTxId\\\": \\\"8ba2f644f71b2eaa5edd8e421df4a0b902e...\\\",\\n    \\\"createdAt\\\": 1604343572000,\\n    \\\"confirmations\\\": 1,\\n    \\\"timeObserved\\\": 1604344752000,\\n    \\\"blockTime\\\": 1604346566000,\\n    \\\"blockhash\\\": \\\"0x0000000000000000000299574cd707c36...\\\",\\n    \\\"amount\\\": 0.534,\\n    \\\"direction\\\": \\\"OUTGOING\\\",\\n    \\\"networkFee\\\": 0.00066185,\\n    \\\"address\\\": \\\"0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413\\\",\\n    \\\"sourceAddress\\\": null,\\n    \\\"currency\\\": \\\"ETH\\\",\\n    \\\"twinTxId\\\": null\\n  },\\n  \\\"expiresAt\\\": 1603825514000,\\n  \\\"completedAt\\\": 1604346618000,\\n  \\\"cancelledAt\\\": null,\\n  \\\"failureReason\\\": null,\\n  \\\"updatedAt\\\": 1604346617000,\\n  \\\"exchangeRate\\\": 0.00007264620000000001,\\n  \\\"destAmount\\\": 0.00014529,\\n  \\\"fees\\\": {\\n    \\\"ETH\\\": 0,\\n    \\\"USD\\\": 0\\n  },\\n  \\\"totalFees\\\": 0.00066185,\\n  \\\"customId\\\": \\\"xxxxxxx-1111-77777-99999-1234567896\\\",\\n  \\\"dest\\\": \\\"ethereum:0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413\\\",\\n  \\\"message\\\": null,\\n  \\\"id\\\": \\\"TF_XXXXXXXX1\\\"\\n}\",\n      \"language\": \"json\"\n    }\n  ]\n}\n[/block]\n**Example shows the [Get Transfer](doc:get-transfer) endpoint data.**","updates":[],"order":4,"isReference":false,"hidden":false,"sync_unique":"","link_url":"","link_external":false,"_id":"5feeaa9022ecf4006bcac9f2","createdAt":"2021-01-01T04:52:32.623Z","user":"5f7f6ea298ba660011771f74","category":{"sync":{"isSync":false,"url":""},"pages":[],"title":"Cookbooks","slug":"testing","order":1,"from_sync":false,"reference":false,"_id":"5be8b3cbb910100044e20206","project":"550f74bb6fc8130d0038aad3","version":"550f75de61d9d30d00af9e01","createdAt":"2018-11-11T22:57:15.159Z","__v":0},"version":{"version":"3","version_clean":"3.0.0","codename":"","is_stable":true,"is_beta":true,"is_hidden":false,"is_deprecated":false,"categories":["550f75de61d9d30d00af9e02","551027e38579861900a86698","551029e08579861900a8669a","551029e7498062190006328a","5bc633a722d682005c9ad9e4","5bc633b08c4b0b000d6a7eaa","5bc633b48f3ff600626e3e18","5bc63538e5a6ba000d22ee6d","5bc63587a18a6b000decd295","5bc635c0937fcb0056223d9c","5bc6360f42f41800319aeaa6","5be5d13ff1d319002baca9ce","5be5d2287cd14d00291fbfdb","5be8b3b09f7cb70023c56a39","5be8b3cbb910100044e20206","5c1d769a4f6aed001fe527f0","5c402942010f0d001496dded","5e8127d61c906800374eeb1c","5f2768c98622b8005106544a","5f2768d05702ca0011f7655e","5f276e5348d2b600321aef9b","5f276fd300e519001139200a","5f9a2cb79dafe500259281a7","5fd92bf362bb7301b00e48ba"],"_id":"550f75de61d9d30d00af9e01","__v":24,"releaseDate":"2015-03-23T02:09:34.221Z","project":"550f74bb6fc8130d0038aad3","createdAt":"2015-03-23T02:09:34.221Z","forked_from":"550f74bb6fc8130d0038aad6"},"project":"550f74bb6fc8130d0038aad3","__v":0,"parentDoc":null}

Building a Compliant Swap Service

Use Wyre to build a crypto swap service

You can quickly create a compliant crypto swap service using Wyre's Wallet and Transfers APIs. This service will be able swap between any of the [cryptocurrency pairs](docs:supported-currencies-1) offered by Wyre. [block:callout] { "type": "info", "title": "Contents:", "body": "1. [Business Account Setup](#1-business-account-setup)\n3. [Creating Wallets](#2-creating-wallets)\n4. [Swap Transfer](#3-crypto-swap-transfers)\n5. [Deposit External Funds](#4-how-to-get-external-funds-into-wyre-wallets)\n6. [Withdrawing Funds](#5-how-to-complete-a-trade-back-to-your-wallets)\n7. [Transfer Status](#6-checking-transfer-status)" } [/block] Wyre wallets are white label API driven crypto wallets that you can easily integrate into your app or platform. [block:api-header] { "title": "1. Business Account Setup" } [/block] [block:callout] { "type": "info", "body": "* Test [dashboard](http://dash.testwyre.com/) access.\n* Production [dashboard](http://dash.sendwyre.com/) access.\n* Select the proper [environment](docs:productiontest-environments).\n* [Authenticate and sign requests](doc:authentication).\n* Contact [[email protected]](mailto:[email protected]) for production access.", "title": "Business Account Setup Notes:" } [/block] [block:image] { "images": [ { "image": [ "https://files.readme.io/a4cab55-dashboard.png", "dashboard.png", 800, 424, "#333" ] } ] } [/block] [block:api-header] { "title": "2. Creating Wallets" } [/block] Your app or platform can generate Wyre wallets on the fly. Use the [Create Wallet](doc:create-wallet) endpoint to create wallets for your users. You can create `DEFAULT`,`ENTERPRISE` or `SAVINGS` wallet types. * `DEFAULT` wallets are used for individuals. * `ENTERPRISE` wallets are used to represent control by a business. * `SAVINGS` wallets are used for individuals and businesses who wish to receive interest on their crypto holdings. When creating a wallet you will need to take note of the wallet `id` and the `depositAddresses` node. You will reference the wallet `id` when making internal transfer swaps. The `depositAddresses`: `BTC` and `ETH` will be referenced when your users fund the Wyre wallet from external crypto wallets. Note that the `ETH` address supports all of Wyre's ERC20 tokens. [block:code] { "codes": [ { "code": "{\n \"owner\": \"account:AC_Y22XXXXXXXX\",\n \"pusherChannel\": \"d89ecb3deae49a753c0df3a2166f46dd\",\n \"srn\": \"wallet:WA_XXXXXXXX1\",\n \"status\": null,\n \"createdAt\": 1605818017849,\n \"balances\": {},\n \"notes\": null,\n \"depositAddresses\": {\n \"BTC\": \"mfbhWCN9tevTQgWKgHhjbHgESqiGXyDUkH\",\n \"ETH\": \"0x48093f4de78b4b26e3a2b90bb2a5cf92883570c3\"\n },\n \"totalBalances\" : {\n \"BTC\" : 0,\n \"ETH\" : 0,\n },\n \"availableBalances\" : {\n \"BTC\" : 0,\n \"ETH\" : 0\n },\n \"callbackUrl\": null,\n \"name\": \"random-uid-value-from-your-app-2\",\n \"id\": \"WA_XXXXXXXX1\",\n \"type\": \"DEFAULT\",\n \"callbackUrl\" : \"https://your.website.io/callback\",\n \"notes\" : \"Notes about the user\"\n}", "language": "json", "name": "Wallet Creation Response" } ] } [/block] [block:api-header] { "title": "3. Crypto Swap Transfers" } [/block] Wayre wallets are identified with a unique ID i.e. "WA_XXXXXXX1". Note that for swaps the `source` and `dest` will reference the same wallet id belonging to the user. [block:code] { "codes": [ { "code": "Example: Swap transfer to the same wallet\n{ \n \"source\":\"wallet:WA_XXXXXXXX1\",\n \"sourceCurrency\":\"BTC\",\n \"destCurrency\":\"ETH\", \n \"sourceAmount\":\"0.015\",\n \"dest\":\"wallet:WA_XXXXXXXX1\",\n \"message\": \"Crypto Swap\",\n \"autoConfirm\":true \n }", "language": "json" } ] } [/block] **Example shows the [Create Transfer](doc:create-transfer) endpoint data.** [block:api-header] { "title": "4. How to Get External Funds Into Wyre Wallets" } [/block] Your users will need to transfer crypto funds into your platform's generated Wyre wallets. This requires pulling in one or both of the `depositAddresses` as described in [Step 3](#3-creating-wallets). You can also fetch the wallet details using the [Lookup Wallet](doc:lookup-wallet) endpoint. [block:code] { "codes": [ { "code": "\"depositAddresses\": {\n \"BTC\": \"mfbhWCN9tevTQgWKgHhjbHgESqiGXyDUkH\",\n \"ETH\": \"0x48093f4de78b4b26e3a2b90bb2a5cf92883570c3\"\n },", "language": "json", "name": "Wallet Deposit Addresses" } ] } [/block] You can then display the deposit addresses to your users as a QR code or plain text. Your user's can then scan or copy/paste the deposit address to make a deposit payment from an external crypto wallet. [block:api-header] { "title": "5. How to Complete a Trade Back to Your Wallets" } [/block] Using the [Create Transfer](doc:create-transfer) endpoint, you can withdraw crypto funds to external wallets. The example below shows how the `dest` references the user's external crypto wallet address. Note the [SRN](doc:srns) `ethereum` is concatenated to the address. [block:code] { "codes": [ { "code": "Example: Transfer funds to an external wallet\n{ \n \"source\":\"wallet:WA_XXXXXXXX1\",\n \"sourceCurrency\":\"ETH\",\n \"destCurrency\":\"ETH\", \n \"sourceAmount\":\"0.534\",\n \"dest\":\"ethereum:0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413\",\n \"message\": \"External Transfer\",\n \"autoConfirm\":true \n }", "language": "json" } ] } [/block] The Create Transfer endpoint returns a Transfer Id. This Id can be used to check the status of a transfer. [block:api-header] { "title": "6. Checking Transfer Status" } [/block] The returned Transfer Id can be used to look up a transfer by using the [Get Transfer](doc:get-transfer) endpoint. The returned data provides information regarding fees, status and blockchain transaction hash. [block:code] { "codes": [ { "code": "{\n \"owner\": \"account:AC_XXXXXXXX1\",\n \"reversingSubStatus\": null,\n \"source\": \"wallet:WA_XXXXXXXX1\",\n \"pendingSubStatus\": null,\n \"status\": \"COMPLETED\",\n \"reversalReason\": null,\n \"createdAt\": 1603824914000,\n \"sourceAmount\": 2.02,\n \"destCurrency\": \"ETH\",\n \"sourceCurrency\": \"ETH\",\n \"statusHistories\": [\n {\n \"id\": \"QXXXXXXXX\",\n \"transferId\": \"TF_XXXXXXXX1\",\n \"createdAt\": 1603824935000,\n \"type\": \"OUTGOING\",\n \"statusOrder\": 0,\n \"statusDetail\": \"Initiating Transfer\",\n \"state\": \"INITIATED\",\n \"failedState\": null\n },\n {\n \"id\": \"BXXXXXXXX\",\n \"transferId\": \"TF_XXXXXXX1\",\n \"createdAt\": 1603824935000,\n \"type\": \"OUTGOING\",\n \"statusOrder\": 200,\n \"statusDetail\": \"Processing Exchange\",\n \"state\": \"PENDING\",\n \"failedState\": null\n },\n {\n \"id\": \"9XXXXXXXX\",\n \"transferId\": \"TF_XXXXXXXX1\",\n \"createdAt\": 1603824936000,\n \"type\": \"OUTGOING\",\n \"statusOrder\": 400,\n \"statusDetail\": \"Processing Deposit\",\n \"state\": \"PENDING\",\n \"failedState\": null\n },\n {\n \"id\": \"TXXXXXXXX\",\n \"transferId\": \"TF_XXXXXXXX1\",\n \"createdAt\": 1604346618000,\n \"type\": \"OUTGOING\",\n \"statusOrder\": 5100,\n \"statusDetail\": \"Transfer Completed\",\n \"state\": \"COMPLETED\",\n \"failedState\": null\n }\n ],\n \"blockchainTx\": {\n \"id\": \"TR_XXXXXXXX1\",\n \"networkTxId\": \"8ba2f644f71b2eaa5edd8e421df4a0b902e...\",\n \"createdAt\": 1604343572000,\n \"confirmations\": 1,\n \"timeObserved\": 1604344752000,\n \"blockTime\": 1604346566000,\n \"blockhash\": \"0x0000000000000000000299574cd707c36...\",\n \"amount\": 0.534,\n \"direction\": \"OUTGOING\",\n \"networkFee\": 0.00066185,\n \"address\": \"0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413\",\n \"sourceAddress\": null,\n \"currency\": \"ETH\",\n \"twinTxId\": null\n },\n \"expiresAt\": 1603825514000,\n \"completedAt\": 1604346618000,\n \"cancelledAt\": null,\n \"failureReason\": null,\n \"updatedAt\": 1604346617000,\n \"exchangeRate\": 0.00007264620000000001,\n \"destAmount\": 0.00014529,\n \"fees\": {\n \"ETH\": 0,\n \"USD\": 0\n },\n \"totalFees\": 0.00066185,\n \"customId\": \"xxxxxxx-1111-77777-99999-1234567896\",\n \"dest\": \"ethereum:0xBB9bc244D798123fDe783fCc1C72d3Bb8C189413\",\n \"message\": null,\n \"id\": \"TF_XXXXXXXX1\"\n}", "language": "json" } ] } [/block] **Example shows the [Get Transfer](doc:get-transfer) endpoint data.**