Transfers & Payments

Learn how to make transfers and payments.

Before You Begin

Ensure you've noted the default_pool_usdc allocation id for two accounts. If you lack two accounts, refer to the account creation guide.

📘

Except for deposits, a transaction's source should be an allocation, an on-platform wallet address, or a pool. Its destination can be a wallet address, pool, or different allocation.

Transfer Between Accounts

In the example below, we'll be simulating an internal transfer between Conduit accounts.

1. Transfer 200 USDC

📘

The amount attribute is a string and represents an integer indicating the number of the smallest unit of the corresponding asset type. For example, USDC is divided into millionths of a unit so the quantity 300 USDC is represented as "300000000"

POST https://sandbox.conduit.financial/transactions

  • Replace source with the allocation id you want to transfer from
  • Replace destination with the allocation id you want to receive
{
  "data": {
    "attributes": {
      "assetType": "asset:eth:USDC",
      "amount": "200000000",
      "source": "id:allc:2J8OkA50iEKCUdAP64xbgU14Irf",
      "destination": "id:allc:2OhHwSqXXf6OmAWNWyOhVNHH1bN"
    }
  }
}
{
  "data": {
    "id": "id:trxn:2JEnnjddu00clamWmVMXs4fxVcz",
    "type": "transaction",
    "attributes": {
      "createdAt": "2022-12-21T19:51:20.587Z",
      "createdBy": "client",
      "effectiveDate": "2022-12-21",
      "amount": "200000000",
      "source": "id:allc:2J8OkA50iEKCUdAP64xbgU14Irf",
      "destination": "id:allc:2OhHwSqXXf6OmAWNWyOhVNHH1bN",
      "status": "pending",
      "assetType": "asset:eth:USDC"
    },
    "relationships": {
      "source": {
        "links": {
          "self": "/transactions/id:trxn:2JEnnjddu00clamWmVMXs4fxVcz/relationships/source",
          "related": "/transactions/id:trxn:2JEnnjddu00clamWmVMXs4fxVcz/source"
        },
        "data": {
          "id": "id:allc:2J8OkA50iEKCUdAP64xbgU14Irf",
          "type": "id"
        }
      },
      "destination": {
        "links": {
          "self": "/transactions/id:trxn:2JEnnjddu00clamWmVMXs4fxVcz/relationships/destination",
          "related": "/transactions/id:trxn:2JEnnjddu00clamWmVMXs4fxVcz/destination"
        },
        "data": {
          "id": "id:allc:2OhHwSqXXf6OmAWNWyOhVNHH1bN",
          "type": "id"
        }
      },
      "quote": {
        "links": {
          "self": "/transactions/id:trxn:2JEnnjddu00clamWmVMXs4fxVcz/relationships/quote",
          "related": "/transactions/id:trxn:2JEnnjddu00clamWmVMXs4fxVcz/quote"
        },
        "data": null
      }
    }
  }
}

2. Check Balance

With the transfer completed, the transferred USDC should be debited from the source and credited to the destination account. Confirm this by checking both account balances.

2a. Source Account

GET https://sandbox.conduit.financial/accounts/id:acct:{source_account_id}

{
  "data": {
    "id": "id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE",
    "type": "account",
    "attributes": {
      "balances": {
        "available": [
          {
            "assetType": "asset:eth:USDC",
            "amount": "300000000"
          }
        ],
        "pending": [
          {
            "assetType": "asset:eth:USDC",
            "amount": "200000000"
          }
        ]
      }
    },
    "relationships": {
      "account-holders": {
        "links": {
          "self": "/accounts/id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE/relationships/account-holders",
          "related": "/accounts/id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE/account-holders"
        },
        "data": [
          {
            "id": "id:ahl:2J8Ocs7KFZJt3CMPi9f0x8UCCQ0",
            "type": "account-holder"
          }
        ]
      },
      "allocations": {
        "links": {
          "self": "/accounts/id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE/relationships/allocations",
          "first": "/accounts/id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE/relationships/allocations",
          "next": null,
          "related": "/accounts/id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE/allocations"
        },
        "data": [
          {
            "id": "id:allc:2J8OkA50iEKCUdAP64xbgU14Irf",
            "type": "allocation"
          }
        ]
      },
      "wallets": {
        "links": {
          "self": "/accounts/id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE/relationships/wallets",
          "related": "/accounts/id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE/wallets"
        },
        "data": []
      }
    }
  },
  "included": [
    {
      "id": "id:allc:2J8OkA50iEKCUdAP64xbgU14Irf",
      "type": "allocation",
      "attributes": {
        "effectiveYieldRate": "0",
        "conduitTakeRate": "20",
        "clientTakeRate": "0",
        "poolId": "id:pool:2H1E3EPxcafvzFKOyoLUwO2PfcK",
        "poolYieldRate": "0",
        "accountId": "id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE",
        "poolName": "default_pool_usdc",
        "balances": {
          "available": [
            {
              "assetType": "asset:eth:USDC",
              "amount": "300000000"
            }
          ],
          "pending": [
            {
              "assetType": "asset:eth:USDC",
              "amount": "0"
            }
          ],
          "accruedYield": [
            {
              "assetType": "asset:eth:USDC",
              "amount": "0"
            }
          ]
        }
      }
    }
  ]
}

2b. Destination Account

🚧

Sandbox environment's pending transactions may take up to 5 minutes to clear. Please wait a bit before attempting the below request.

GET https://sandbox.conduit.financial/accounts/id:acct:{destination_account_id}

{
  "data": {
    "id": "id:acct:2OhHwErcvJZ7LTi5UewXy1msKTI",
    "type": "account",
    "attributes": {
      "balances": {
        "available": [
          {
            "assetType": "asset:eth:USDC",
            "amount": "200000000"
          }
        ],
        "pending": [
          {
            "assetType": "asset:eth:USDC",
            "amount": "0"
          }
        ]
      }
    },
    "relationships": {
      "account-holders": {
        "links": {
          "self": "/accounts/id:acct:2OhHwErcvJZ7LTi5UewXy1msKTI/relationships/account-holders",
          "related": "/accounts/id:acct:2OhHwErcvJZ7LTi5UewXy1msKTI/account-holders"
        },
        "data": [
          {
            "id": "id:ahl:2N8zU2j0x8Mh3lloZl2Ysj7kYbN",
            "type": "account-holder"
          }
        ]
      },
      "allocations": {
        "links": {
          "self": "/accounts/id:acct:2OhHwErcvJZ7LTi5UewXy1msKTI/relationships/allocations",
          "first": "/accounts/id:acct:2OhHwErcvJZ7LTi5UewXy1msKTI/relationships/allocations",
          "next": null,
          "related": "/accounts/id:acct:2OhHwErcvJZ7LTi5UewXy1msKTI/allocations"
        },
        "data": [
          {
            "id": "id:allc:2OhHwSqXXf6OmAWNWyOhVNHH1bN",
            "type": "allocation"
          }
        ]
      },
      "wallets": {
        "links": {
          "self": "/accounts/id:acct:2OhHwErcvJZ7LTi5UewXy1msKTI/relationships/wallets",
          "related": "/accounts/id:acct:2OhHwErcvJZ7LTi5UewXy1msKTI/wallets"
        },
        "data": []
      }
    }
  },
  "included": [
    {
      "id": "id:allc:2OhHwSqXXf6OmAWNWyOhVNHH1bN",
      "type": "allocation",
      "attributes": {
        "effectiveYieldRate": "0",
        "conduitTakeRate": "20",
        "clientTakeRate": "0",
        "poolId": "id:pool:2H1E3EPxcafvzFKOyoLUwO2PfcK",
        "poolYieldRate": "0",
        "accountId": "id:acct:2OhHwErcvJZ7LTi5UewXy1msKTI",
        "poolName": "default_pool_usdc",
        "clientYieldFeesDestination": "id:acct:2N9cbG9pYMoTgLqoc0ylPP2q7DY",
        "balances": {
          "available": [
            {
              "assetType": "asset:eth:USDC",
              "amount": "200000000"
            }
          ],
          "pending": [
            {
              "assetType": "asset:eth:USDC",
              "amount": "0"
            }
          ],
          "accruedYield": [
            {
              "assetType": "asset:eth:USDC",
              "amount": "0"
            }
          ]
        }
      }
    }
  ]
}

External Payments or Transfers

1. Pay 100 USDC

POST https://sandbox.conduit.financial/transactions

  • Replace source with the allocation id you want to pay from
  • Replace destination with an external wallet address you want to pay to
{
  "data": {
    "attributes": {
      "assetType": "asset:eth:USDC",
      "amount": "100000000",
      "source": "id:allc:2J8OkA50iEKCUdAP64xbgU14Irf",
      "destination": "wlt:eth:0x0000000000000000000000000000000000000000"
    }
  }
}

{
  "data": {
    "id": "id:trxn:2JEpnum6kwvpVjONCCX90DPcb25",
    "type": "transaction",
    "attributes": {
      "createdAt": "2022-12-21T20:07:47.571Z",
      "createdBy": "client",
      "effectiveDate": "2022-12-22",
      "amount": "100000000",
      "source": "id:allc:2J8OkA50iEKCUdAP64xbgU14Irf",
      "destination": "wlt:eth:0x0000000000000000000000000000000000000000",
      "status": "pending",
      "assetType": "asset:eth:USDC"
    },
    "relationships": {
      "source": {
        "links": {
          "self": "/transactions/id:trxn:2JEpnum6kwvpVjONCCX90DPcb25/relationships/source",
          "related": "/transactions/id:trxn:2JEpnum6kwvpVjONCCX90DPcb25/source"
        },
        "data": {
          "id": "id:allc:2J8OkA50iEKCUdAP64xbgU14Irf",
          "type": "id"
        }
      },
      "destination": {
        "links": {
          "self": "/transactions/id:trxn:2JEpnum6kwvpVjONCCX90DPcb25/relationships/destination",
          "related": "/transactions/id:trxn:2JEpnum6kwvpVjONCCX90DPcb25/destination"
        },
        "data": {
          "id": "wlt:eth:0x0000000000000000000000000000000000000000",
          "type": "wallet"
        }
      },
      "quote": {
        "links": {
          "self": "/transactions/id:trxn:2JEpnum6kwvpVjONCCX90DPcb25/relationships/quote",
          "related": "/transactions/id:trxn:2JEpnum6kwvpVjONCCX90DPcb25/quote"
        },
        "data": null
      }
    }
  }
}

2. Check Balance

Post payment completion, the paid USDC should be debited from your account. Confirm this by checking your account balance.

GET https://sandbox.conduit.financial/accounts/id:acct:{you_account_id}

{
  "data": {
    "id": "id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE",
    "type": "account",
    "attributes": {
      "balances": {
        "available": [
          {
            "assetType": "asset:eth:USDC",
            "amount": "200000000"
          }
        ],
        "pending": [
          {
            "assetType": "asset:eth:USDC",
            "amount": "300000000"
          }
        ]
      }
    },
    "relationships": {
      "account-holders": {
        "links": {
          "self": "/accounts/id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE/relationships/account-holders",
          "related": "/accounts/id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE/account-holders"
        },
        "data": [
          {
            "id": "id:ahl:2J8Ocs7KFZJt3CMPi9f0x8UCCQ0",
            "type": "account-holder"
          }
        ]
      },
      "allocations": {
        "links": {
          "self": "/accounts/id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE/relationships/allocations",
          "first": "/accounts/id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE/relationships/allocations",
          "next": null,
          "related": "/accounts/id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE/allocations"
        },
        "data": [
          {
            "id": "id:allc:2J8OkA50iEKCUdAP64xbgU14Irf",
            "type": "allocation"
          }
        ]
      },
      "wallets": {
        "links": {
          "self": "/accounts/id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE/relationships/wallets",
          "related": "/accounts/id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE/wallets"
        },
        "data": []
      }
    }
  },
  "included": [
    {
      "id": "id:allc:2J8OkA50iEKCUdAP64xbgU14Irf",
      "type": "allocation",
      "attributes": {
        "effectiveYieldRate": "0",
        "conduitTakeRate": "20",
        "clientTakeRate": "0",
        "poolId": "id:pool:2H1E3EPxcafvzFKOyoLUwO2PfcK",
        "poolYieldRate": "0",
        "accountId": "id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE",
        "poolName": "default_pool_usdc",
        "balances": {
          "available": [
            {
              "assetType": "asset:eth:USDC",
              "amount": "200000000"
            }
          ],
          "pending": [
            {
              "assetType": "asset:eth:USDC",
              "amount": "0"
            }
          ],
          "accruedYield": [
            {
              "assetType": "asset:eth:USDC",
              "amount": "0"
            }
          ]
        }
      }
    }
  ]
}

What’s Next

Now that you know how to transfer and make payments, learn how to withdraw crypto to an external wallet.