The Crypto Payouts API allows you to send USDC, EURC, BTC, ETH and MATIC (on Polygon). The API will also come with an embedded exchange functionality for converting to and from USDC. If you are not performing an exchange you can directly send the currency in custody (e.g. ETH in custody can be paid out in ETH without exchanges). If you are looking for exchanges, below are the source and destination currencies and the destination chain we support.
Source | Destination | Chain |
BTC | USDC | ALGO, AVAX, ETH , FLOW, HBAR, MATIC, SOL, TRX, XLM |
USDC | BTC | BTC |
ETH | USDC | ALGO, AVAX, ETH , FLOW, HBAR, MATIC, SOL, TRX, XLM |
USDC | ETH | ETH |
MATIC | USDC | ALGO, AVAX, ETH , FLOW, HBAR, MATIC, SOL, TRX, XLM |
USDC | MATIC | MATIC |
Exchange without custody of tokens
With Exchanges, customers need not hold the custody of native tokens (E.g. MATIC) and instead do a real-time conversion of USDC in the source wallet to MATIC while paying out.
GET exchange rate quote
Circle also provides a tentative [exchange rate](🔗) in real time for the specific trading pairs.
Limits
Crypto Payouts has a transactional limit of $25,000 and daily limit of $250,000 (limits are calculated in USD irrespective of the currency chosen). Please work with your customer representative for custom limits.
To use the Crypto Payouts functionality, the recipient blockchain address needs to be added into the Address Book directory using, before using the address to do an on-chain send.
# Quickstart
In this quickstart you will create a recipient, ensure the recipient is active, payout the recipient, and check that the funds have successfully been sent to the recipient. The interaction model with Circle APIs is very similar to other fiat payouts methods.
# 1. Create recipient in address book
Let’s first create a recipient to send funds to.
# 2. Check recipient status
Prior to sending the payout you must ensure the recipient status is marked active.
In production, all new addresses are marked inactive for the first 24 hours and therefore blocked for payout until that time period has passed. If you would like to override this rule, please work with your customer service representative.
## Option 1: Webhook Notifications
If you have configured webhook notifications you will receive a recipient notification for each status update. In this case you will look for the `“status”: “active”
`.
## Option 2: Polling
Poll the GET endpoint until the `“status”: “active”
`.
# 3. Payout recipient
Once you have successfully created a recipient, you will create a payout providing the recipient’s ID (address ID), originating funds (currency + amount) and the currency the recipient would like to receive.
If `
toAmount.currency
` is not provided the amount.currency will be used as receiving currency.
# 4. Check payout status
Last step, ensure the funds were sent and delivered on chain to the recipient.
## Option 1: Webhook Notifications
If you have configured webhook notifications you will receive a notification for each status update.