Skip to main content
Funding moves USDC from your business treasury into the company Rain pooled contract (corporate spending power). Withdraw reverses the flow. Amounts are always USDC in integer cents. There is no per-user fund path - spending power is shared at the company level. Cap individual cards with spending limits. Treasury wallet and passbook are updated when the transfer is confirmed, not when the HTTP request is accepted.

Treasury before funding

Ensure sufficient treasury balance before funding. See Check balance and Deposit status. Programme spending power is not on treasury balance. Use GET /wallet/balance.

Fund the programme

POST /wallet/fund
Response
Save id as the fund request id.

Withdraw from the programme

POST /wallet/withdraw
Response
Save id as the withdraw request id. The business BSC USDC deposit address is applied automatically. Do not send destinationAddress or network.

Know when funding or withdrawal is complete

Use either approach. You do not need both. Option A: Poll fund or withdraw status until status is completed or failed. See Rate limits if polling.
GET /wallet/funds/FUND_ID
Fund status response
GET /wallet/withdrawals/WITHDRAW_ID
Option B: Subscribe to card.fund.completed / card.withdraw.completed webhooks. Payload includes updated company spendingPower.

Check programme spending power

GET /wallet/balance

Limit individual spend

Corporate spending power is shared. Cap a cardholder with Apply spending limits (POST /cards/{cardId}/limits).