Fund a card
Cards
Fund Card
Move USD from your company wallet onto a card so the cardholder can spend it.
POST
Fund a card
Overview
POST /cards/{id}/fund moves USD from your company’s USD wallet onto the specified card. The card balance increases immediately on success, and the cardholder can use the funds for online payments.
When to use it
- Top up a card before the cardholder makes a purchase.
- Move savings/payroll/per-diem funds onto an active card.
POST /cards/{id}/withdraw.
Prerequisites
- Card status must be
ACTIVE(notPENDING,FROZEN,SUSPENDED,TERMINATED, orFAILED). - The card must belong to your company.
- The company USD wallet must have enough balance to cover
amountplus any funding fees configured on your account.
Request
Headers
| Name | Required | Description |
|---|---|---|
Authorization | Yes | Bearer <access_token> |
Content-Type | Yes | application/json |
Path parameters
| Name | Type | Description |
|---|---|---|
id | string | Card ID (UUID). |
Body
| Field | Type | Required | Constraints | Description |
|---|---|---|---|---|
amount | number | Yes | ≥ 1. USD. | Amount to move from the USD wallet onto the card. |
Idempotency: This endpoint does not currently accept an idempotency key. To avoid double-funding on network retries, store the resulting transaction_id after the first call returns and check before retrying.
Response
200 — Success
| Field | Type | Description |
|---|---|---|
transaction_id | string | Cartevo transaction ID. Use for support and reconciliation. |
card_id | string | The funded card. |
amount | number | Net amount added to the card. |
currency | string | Always USD. |
fee_amount | number | Funding fee charged to the wallet (typically 0). |
card_balance_before | number | Card balance before this call. |
card_balance_after | number | Card balance after this call. |
Error responses
| Status | message example | Trigger | Recommended action |
|---|---|---|---|
400 | "Insufficient wallet balance" | USD wallet balance < amount + fee. | Top up the USD wallet, then retry. |
400 | "Card not active" | Card status is not ACTIVE. | Unfreeze the card or check it is not terminated. |
400 | "Amount must be at least 1" | amount < 1. | Fix the request. |
404 | "Card not found" | id is invalid or belongs to another company. | Verify the card ID. |
5xx | "Funding temporarily unavailable" | Upstream issuer transient error. | Retry with exponential backoff. Check the card balance before retrying to avoid double-funding. |
Webhooks fired
card.fund— emitted on success.transaction.funding.completed— emitted once the underlying transaction settles.
Code examples
cURL
Node.js (axios)
Python (requests)
Related
POST /cards/{id}/withdraw— move funds back to the wallet.GET /cards/{id}— verify the new balance.GET /cards/{id}/transactions— see this funding in the card’s history.