Fiat On & Off-Ramp
Learn how to exchange between fiat using local payment methods, and stablecoins.
Before You Begin
Make sure to read more about Float Accounts, Daily Net Settlement, and Supported Fiat and Crypto to learn how we provide a near-instantaneous on & off-ramping experience for your users.
Contact Support for Ramp Access
For Sandbox or Live ramp access, please reach out to your Account Manager with the relevant Account ID(s). For Live ramps, additionally supply the recipient's fiat bank details.
Fiat On-Ramp
In the following example, we will be exchanging Chilean Pesos (CLP) for USDC.
Create 10000 CLP <> USDC Quote
1. Make a POST
request to https://sandbox.conduit.financial/quotes
with the following body:
{
"data": {
"attributes": {
"source": {
"assetType": "asset:fiat:CLP",
"amount": "10000000000"
},
"target": {
"assetType": "asset:eth:USDC"
}
}
}
}
2. If successful, you will see a similar response from the API:
Tip
Quotes are valid for 4 minutes. Please also note down the quote id
and amount
to be used in the next step.
{
"data": {
"id": "id:quote:2JHnGDjZputjFOCwHIVDNA4Uftr",
"type": "quote",
"attributes": {
"source": {
"assetType": "asset:fiat:CLP",
"amount": "10000000000"
},
"target": {
"assetType": "asset:eth:USDC",
"amount": "12370806"
},
"expiresAt": "2022-12-22T21:17:17.276Z",
"status": "open"
}
},
"links": {
"self": "/quotes/id:quote:2JHnGDjZputjFOCwHIVDNA4Uftr"
}
}
Accept Quote
1. Make a POST
request to https://sandbox.conduit.financial/transactions
with the following body, but:
-
Replace
quote
with your generated quoteid
-
Replace
destination
with yourdefault_pool_usdc
allocationid
-
Replace
amount
with the amount from the generated quote
Tip
-
Once live Ramp access has been enabled for you, please make sure to use the format “wlt:fiat:{Client ID}” as the
source
property for On-Ramp transactions. -
A transaction’s
destination
property can be either a wallet address, pool, or allocation.
{
"data": {
"attributes": {
"quote": "id:quote:2JHnGDjZputjFOCwHIVDNA4Uftr",
"source": "wlt:fiat:2IEdAlD1KKXLW7AEjCgmRsDzyxN",
"destination": "id:allc:2J8OkA50iEKCUdAP64xbgU14Irf",
"assetType": "asset:eth:USDC",
"amount": "12370806"
}
}
}
2. If successful, you will see a similar response from the API:
{
"data": {
"id": "id:trxn:2JHnLopbIRvx7a7KMzEYF7McDlv",
"type": "transaction",
"attributes": {
"createdAt": "2022-12-22T21:17:04.338Z",
"createdBy": "client",
"effectiveDate": "2022-12-23",
"amount": "12370806",
"source": "wlt:fiat:2IEdAlD1KKXLW7AEjCgmRsDzyxN",
"destination": "id:allc:2J8OkA50iEKCUdAP64xbgU14Irf",
"status": "pending",
"assetType": "asset:eth:USDC",
"quote": "id:quote:2JHnGDjZputjFOCwHIVDNA4Uftr"
},
"relationships": {
"source": {
"links": {
"self": "/transactions/id:trxn:2JHnLopbIRvx7a7KMzEYF7McDlv/relationships/source",
"related": "/transactions/id:trxn:2JHnLopbIRvx7a7KMzEYF7McDlv/source"
},
"data": {
"id": "wlt:fiat:2IEdAlD1KKXLW7AEjCgmRsDzyxN",
"type": "wallet"
}
},
"destination": {
"links": {
"self": "/transactions/id:trxn:2JHnLopbIRvx7a7KMzEYF7McDlv/relationships/destination",
"related": "/transactions/id:trxn:2JHnLopbIRvx7a7KMzEYF7McDlv/destination"
},
"data": {
"id": "id:allc:2J8OkA50iEKCUdAP64xbgU14Irf",
"type": "allocation"
}
},
"quote": {
"links": {
"self": "/transactions/id:trxn:2JHnLopbIRvx7a7KMzEYF7McDlv/relationships/quote",
"related": "/transactions/id:trxn:2JHnLopbIRvx7a7KMzEYF7McDlv/quote"
},
"data": {
"id": "id:quote:2JHnGDjZputjFOCwHIVDNA4Uftr",
"type": "quote"
}
}
}
}
}
Check Balance
You should now see the quoted USDC amount added to your account. Let's verify this by querying the account and looking at the balance.
Tip
There is an intentional delay of up to 10 minutes for the USDC deposit in our Sandbox environment to give you a sense of our settlement process that happens in our Live environment. Learn more about our settlement process and how we can give your users a near instant experience using Float accounts.
1. Make a GET
request to https://sandbox.conduit.financial/accounts/id:acct:{your_account_id}
with your account id
.
2. If successful, you will see a response from the API that shows the balance increased by the transferred quoted amount:
{
"data": {
"id": "id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE",
"type": "account",
"attributes": {
"balances": {
"available": [
{
"assetType": "asset:eth:ETH",
"amount": "0"
},
{
"assetType": "asset:eth:USDC",
"amount": "12370806"
},
{
"assetType": "asset:eth:USDT",
"amount": "0"
},
{
"assetType": "asset:eth:DAI",
"amount": "0"
}
],
"pending": [
{
"assetType": "asset:eth:ETH",
"amount": "0"
},
{
"assetType": "asset:eth:USDC",
"amount": "0"
},
{
"assetType": "asset:eth:USDT",
"amount": "0"
},
{
"assetType": "asset:eth:DAI",
"amount": "0"
}
]
}
},
"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": [
{
"id": "id:wlt:2MW2qbpfnXZoUDUd7L2v1UQJuyQ",
"type": "wallet"
}
]
}
}
},
"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:ETH",
"amount": "0"
},
{
"assetType": "asset:eth:USDC",
"amount": "12370806"
},
{
"assetType": "asset:eth:USDT",
"amount": "0"
},
{
"assetType": "asset:eth:DAI",
"amount": "0"
}
],
"pending": [
{
"assetType": "asset:eth:ETH",
"amount": "0"
},
{
"assetType": "asset:eth:USDC",
"amount": "0"
},
{
"assetType": "asset:eth:USDT",
"amount": "0"
},
{
"assetType": "asset:eth:DAI",
"amount": "0"
}
],
"accruedYield": [
{
"assetType": "asset:eth:USDC",
"amount": "0"
},
{
"assetType": "asset:eth:USDT",
"amount": "0"
},
{
"assetType": "asset:eth:DAI",
"amount": "0"
}
]
}
}
},
{
"id": "id:wlt:2MW2qbpfnXZoUDUd7L2v1UQJuyQ",
"type": "wallet",
"attributes": {
"address": "wlt:eth:0x44a8938044c8f1a2cfd6ff7e66a46482377fa390",
"assetType": "asset:eth:USDC",
"networkId": "net:eth:ropsten",
"function": "deposit"
}
}
]
}
Fiat Off-Ramp
In the following example, we will be exchanging USDC for Chilean Pesos (CLP).
Create 10 USDC <> CLP Quote
1. Make a POST
request to https://sandbox.conduit.financial/quotes
with the following body:
{
"data": {
"attributes": {
"source": {
"assetType": "asset:eth:USDC",
"amount": "10000000"
},
"target": {
"assetType": "asset:fiat:CLP"
}
}
}
}
2. If successful, you will see a similar response from the API:
Tip
Quotes are valid for 4 minutes. Please also note down the quote id
and amount
to be used in the next step.
{
"data": {
"id": "id:quote:2JHqkOy9Ww9TGeIpFNVjJ9oFHkd",
"type": "quote",
"attributes": {
"source": {
"assetType": "asset:eth:USDC",
"amount": "10000000"
},
"target": {
"assetType": "asset:fiat:CLP",
"amount": "8393116000"
},
"expiresAt": "2022-12-22T21:45:57.908Z",
"status": "open"
}
},
"links": {
"self": "/quotes/id:quote:2JHqkOy9Ww9TGeIpFNVjJ9oFHkd"
}
}
Accept Quote
1. Make a POST
request to https://sandbox.conduit.financial/transactions
with the following body, but:
-
Replace
quote
with your generated quoteid
-
Replace
source
with yourdefault_pool_usdc
allocationid
Tip
-
Once live Ramp access has been enabled for your account, please make sure to use the format “wlt:fiat:{Client ID}” as the
destination
property for Off-Ramp transactions. -
The transaction’s
source
property should be an allocation “source”:id:allc:{“Allocation ID”}
{
"data": {
"attributes": {
"quote": "id:quote:2JHqkOy9Ww9TGeIpFNVjJ9oFHkd",
"source": "id:allc:2JEtgy38BDntal10u4QtcKVTecr",
"destination": "wlt:fiat:2IEdAlD1KKXLW7AEjCgmRsDzyxN",
"assetType": "asset:eth:USDC",
"amount": "10000000"
}
}
}
2. If successful, you will see a similar response from the API:
{
"data": {
"id": "id:trxn:2JHqnKPOouVtf7dVYvBbGt4o96x",
"type": "transaction",
"attributes": {
"createdAt": "2022-12-22T21:45:24.853Z",
"createdBy": "client",
"effectiveDate": "2022-12-23",
"amount": "10000000",
"source": "id:allc:2JEtgy38BDntal10u4QtcKVTecr",
"destination": "wlt:fiat:2IEdAlD1KKXLW7AEjCgmRsDzyxN",
"status": "pending",
"assetType": "asset:eth:USDC",
"quote": "id:quote:2JHqkOy9Ww9TGeIpFNVjJ9oFHkd"
},
"relationships": {
"source": {
"links": {
"self": "/transactions/id:trxn:2JHqnKPOouVtf7dVYvBbGt4o96x/relationships/source",
"related": "/transactions/id:trxn:2JHqnKPOouVtf7dVYvBbGt4o96x/source"
},
"data": {
"id": "id:allc:2JEtgy38BDntal10u4QtcKVTecr",
"type": "allocation"
}
},
"destination": {
"links": {
"self": "/transactions/id:trxn:2JHqnKPOouVtf7dVYvBbGt4o96x/relationships/destination",
"related": "/transactions/id:trxn:2JHqnKPOouVtf7dVYvBbGt4o96x/destination"
},
"data": {
"id": "wlt:fiat:2IEdAlD1KKXLW7AEjCgmRsDzyxN",
"type": "wallet"
}
},
"quote": {
"links": {
"self": "/transactions/id:trxn:2JHqnKPOouVtf7dVYvBbGt4o96x/relationships/quote",
"related": "/transactions/id:trxn:2JHqnKPOouVtf7dVYvBbGt4o96x/quote"
},
"data": {
"id": "id:quote:2JHqkOy9Ww9TGeIpFNVjJ9oFHkd",
"type": "quote"
}
}
}
}
}
Check Balance
You should now see the USDC amount deducted from your account. Let's verify this by querying the account and looking at the balance.
1. Make a GET
request to https://sandbox.conduit.financial/accounts/id:acct:{your_account_id}
with your account id
.
2. If successful, you will see a response from the API that shows the balance decreased by the transferred amount:
{
"data": {
"id": "id:acct:2J8Ok1bfIrvpNcX2V8QwDMigUKE",
"type": "account",
"attributes": {
"balances": {
"available": [
{
"assetType": "asset:eth:ETH",
"amount": "0"
},
{
"assetType": "asset:eth:USDC",
"amount": "2370806"
},
{
"assetType": "asset:eth:USDT",
"amount": "0"
},
{
"assetType": "asset:eth:DAI",
"amount": "0"
}
],
"pending": [
{
"assetType": "asset:eth:ETH",
"amount": "0"
},
{
"assetType": "asset:eth:USDC",
"amount": "0"
},
{
"assetType": "asset:eth:USDT",
"amount": "0"
},
{
"assetType": "asset:eth:DAI",
"amount": "0"
}
]
}
},
"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": [
{
"id": "id:wlt:2MW2qbpfnXZoUDUd7L2v1UQJuyQ",
"type": "wallet"
}
]
}
}
},
"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:ETH",
"amount": "0"
},
{
"assetType": "asset:eth:USDC",
"amount": "2370806"
},
{
"assetType": "asset:eth:USDT",
"amount": "0"
},
{
"assetType": "asset:eth:DAI",
"amount": "0"
}
],
"pending": [
{
"assetType": "asset:eth:ETH",
"amount": "0"
},
{
"assetType": "asset:eth:USDC",
"amount": "0"
},
{
"assetType": "asset:eth:USDT",
"amount": "0"
},
{
"assetType": "asset:eth:DAI",
"amount": "0"
}
],
"accruedYield": [
{
"assetType": "asset:eth:USDC",
"amount": "0"
},
{
"assetType": "asset:eth:USDT",
"amount": "0"
},
{
"assetType": "asset:eth:DAI",
"amount": "0"
}
]
}
}
},
{
"id": "id:wlt:2MW2qbpfnXZoUDUd7L2v1UQJuyQ",
"type": "wallet",
"attributes": {
"address": "wlt:eth:0x44a8938044c8f1a2cfd6ff7e66a46482377fa390",
"assetType": "asset:eth:USDC",
"networkId": "net:eth:ropsten",
"function": "deposit"
}
}
]
}
Next Steps
Now that you know how to on and off-ramp fiat, learn how to transfer and make payments.