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:

Copy
Copied
{
  "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.

Copy
Copied
{
  "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 quote id
  • Replace destination with your default_pool_usdc allocation id
  • 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.
Copy
Copied
{
  "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:

Copy
Copied
{
    "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:

Copy
Copied
{
  "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:

Copy
Copied
{
  "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.

Copy
Copied
{
  "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 quote id
  • Replace source with your default_pool_usdc allocation id
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”}
Copy
Copied
{
  "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:

Copy
Copied
{
    "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:

Copy
Copied
{
  "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.