What you’ll build
This guide follows one use case: getting the funding information for your card collateral from your own system. Your card credit limit is backed by the funds you send to Reap, so adding collateral is how you raise it. By the end, your system will be able to:- Find out how you can fund your card collateral: which stablecoins, networks and bank transfers are available to your business.
- Retrieve the funding instructions: a wallet address for stablecoins, or bank details and a Reference ID for a bank transfer.
- Confirm a bank transfer so Reap can match it to your account.
- Follow your Treasury history to see when the funds have landed.
- Check your card credit to see the new credit limit.
How it works
- Stablecoins
- Bank transfer
HyperEVM deposits: use HyperEVM, not HyperCore. Sending to HyperCore cannot be recovered. Follow the warning in the funding instructions response.
Key concepts
The API gives instructions, it doesn’t move money. Retrieving crypto instructions creates a wallet for the requested product and network if one doesn’t exist. It never moves money, and confirming a bank transfer doesn’t credit your account. Funds are credited only once they land in Reap’s bank account. See Treasury. One wallet address per network. On a given network, your Card wallet address accepts every stablecoin listed for it, for example USDC and USDT on Ethereum. The address stays the same every time you ask for it. Networks, currencies and minimums are listed in Funding. A new Reference ID for every bank transfer. Each time you retrieve bank instructions you get a new Reference ID, in the formatIBM- followed by six characters. It’s how Reap matches your transfer to your account, so use one per transfer.
The Reference ID decides how fast a bank transfer is credited. Reconciliation starts once the funds land in Reap’s bank account; your bank’s own processing time comes on top. With the Reference ID in the transfer remarks, the funds are reconciled and credited automatically within a few minutes. Without it, the Reap team reconciles the funds manually, which can take 1 to 2 business days.
Your Treasury history is the source of truth. Every movement in and out of your card collateral shows up in your Treasury history: funding, repayments, adjustments and more. Crypto rows carry the blockchain transaction hash, bank transfer rows carry the Reference ID, so you can match each one to what you sent. Statuses, types, directions and filters are in Treasury transactions.
COMPLETED is not the same as spendable. A COMPLETED row means the Treasury movement is complete. Check your card balances before issuing cards against the new funds.
Before you begin
- Business Account API access is enabled for your business. Ask your Reap account manager.
- A team administrator has created an API key with these scopes:
treasury_funding:read,treasury_transactions:read,card_account_balances:readand, for bank transfers,treasury_funding:write. See Authentication. - For bank transfers, you send from an account in your business’s registered name, as recorded in Reap. Transfers from a parent company or a payment processor aren’t accepted. For supported currencies and how fiat funding works, see How to add funds to your Reap Account? in the Help Center.
- The person who created the API key is still an approved team member. Bank transfer confirmations are recorded under their name.
Use case 1: Get the funding information for a stablecoin deposit
Example: you send USDC on Ethereum from your exchange account.1
See how you can fund Card
- Only the methods your business can use are returned. If a network isn’t listed, don’t send funds on it.
- Each crypto method is one network, with the stablecoins its address accepts in
currencies. - Show
networkNameto your users. It’s the same label as in the dashboard.
2
Retrieve the wallet address for Ethereum
If the wallet is still being created
If your business has never used this network, Reap creates the wallet when you first ask for it. On most networks that’s instant. On Solana it can take a few minutes, and you get this instead:retryAfterSeconds, then call again until status is READY. Never send funds before you have a READY address.3
Send the stablecoins
This happens outside the API, in your exchange or wallet: send USDC or USDT on Ethereum to the
walletAddress. Keep the transaction hash your exchange gives you. You’ll use it to find the transfer in the next step.4
Check the funds landed
Funds usually show in your Treasury history within
estimatedCreditMinutes. Poll your Card history, newest first:- Find your transfer by
transactionHash. It’s the same hash your exchange gave you. creditedAmountis what was added to your card collateral, in your card balance currency, after conversion atconversionRate.PENDINGmeans Reap has seen it but it isn’t complete yet. Keep polling untilCOMPLETED.- Rejected Card deposits are removed from the history and never appear as
REJECTEDorFAILED. A missing row alone doesn’t prove rejection; check all pages and the date filters.REJECTED,FAILED,REQUESTED,APPROVED,INVALIDandNONEcan appear on other products (for example Optimize swaps) and are not accepted by thestatusfilter, which takesPENDINGorCOMPLETEDonly. - Poll every 30–60 seconds. If the transfer is still
PENDING, hasn’t appeared, or is no longer listed 30 minutes after it was sent, contact Reap support with the transaction hash. fromandtoare inclusive UTC calendar days. Results are paginated: keep requestingpageuntilmeta.totalPages.
5
Check your card credit
totalCreditLimit and availableCredit with the values you saved before sending the funds. Once they’ve gone up, the new collateral is usable and you can issue cards against it. See Issue cards to your team.Use case 2: Get the funding information for a bank transfer
Example: you send HKD by FPS from your business’s bank account.1
Retrieve the bank details and a Reference ID
referenceId against this transfer in your system before you send anything. Every call returns a new one, so don’t call again for the same transfer.2
Make the transfer
This happens outside the API, in your bank. Send the HKD to the account in
instructions.3
Confirm the transfer to Reap
Once the transfer is sent, tell Reap with the amount and the Reference ID. This is the same as clicking I have transferred in the dashboard: it tells Reap a transfer is on its way. Confirming does not reconcile or credit anything.
- Confirming doesn’t credit the funds. It records the transfer as
PENDINGuntil Reap has verified it arrived. - Keep the
id. It’s the sameidyou’ll see in your Treasury history.
4
Check the funds landed
- Find your transfer by
referenceIdor by theidfrom the confirmation. - It stays
PENDINGuntil Reap has reconciled the funds, then becomesCOMPLETED. - Rejected bank transfers are removed from the history and never appear as
REJECTEDorFAILED. A missing row alone doesn’t prove rejection; check all pages and the date filters.REJECTED,FAILED,REQUESTED,APPROVED,INVALIDandNONEcan appear on other products (for example Optimize swaps) and are not accepted by thestatusfilter, which takesPENDINGorCOMPLETEDonly. - How long that takes depends on the Reference ID. Reconciliation starts once the funds land in Reap’s bank account; your bank’s own transfer time comes on top (FPS is usually instant). With the Reference ID, the row turns
COMPLETEDwithin a few minutes of the funds landing. Without it, the Reap team reconciles the funds manually, which can take 1 to 2 business days. - Poll every few minutes for transfers sent with the Reference ID. If a transfer with the Reference ID is still
PENDINGor is no longer listed 30 minutes after the funds should have landed in Reap’s bank account, contact Reap support with the Reference ID.
5
Check your card credit
Same as for stablecoins: call
GET /cards/balances and compare totalCreditLimit and availableCredit with the values from before the transfer. Once they’ve gone up, you can issue cards against the new funds.Following the rest of your Treasury history
History queries use these rules:- A page can contain fewer items than
meta.itemsPerPage. Followmeta.totalPagesrather than stopping at a short page. - The
statusfilter accepts onlyPENDINGandCOMPLETEDand filters the underlying Treasury state. An Optimize swap can have a different displayed status. - Response status values also include
REQUESTED,APPROVEDandNONE; these are not supported status-filter values.
type:
Typical uses: syncing your card collateral movements into your accounting system each day, or reconciling them against your bank and exchange statements at month end.
Common errors
Every error includes a
message and often a requestId. Include the requestId when contacting Reap support.
Go-live checklist
- API key stored in a secrets manager, with only the scopes you need
- Funding methods taken from funding options, never hard-coded
- Crypto: funds sent only on the requested network, in a supported currency, above the minimum
- Crypto:
IN_PROGRESShandled by waitingretryAfterSeconds - Bank: one Reference ID per transfer, saved before sending
- Bank: Reference ID in the transfer remarks (reconciled within a few minutes of the funds landing in Reap’s bank account instead of the 1 to 2 business days manual matching can take), sent from an account in your business’s name
- Bank: transfer confirmed with an
Idempotency-Key - Transfers matched in your Treasury history by transaction hash or Reference ID
- Card crypto and bank transfers: contact support after 30 minutes if pending or missing; rejected transfers drop out of history
- Optimize: stop polling when the returned status is
REJECTEDorFAILED, statuses that only appear on non-CARD products. See Polling and waiting - Card balances checked before issuing cards against new funds