Withdraw from a card
Cards
Withdraw from Card
Move USD from a card back to your company USD wallet.
POST
Withdraw from a card
Overview
POST /cards/{id}/withdraw moves USD from the specified card back to your company’s USD wallet. The card balance decreases immediately on success; the withdrawn funds are credited to the wallet.
When to use it
- Reclaim leftover funds before terminating a card.
- Move funds between cards by withdrawing from one and funding another.
- Recover funds when a customer returns an unused per-diem allowance.
POST /cards/{id}/fund.
Prerequisites
- Card status must be
ACTIVEorFROZEN(you can withdraw from a frozen card to recover funds before terminating it). - The card must belong to your company.
- The card balance must be ≥
amount.
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 withdraw from the card to the company USD wallet. Minimum 1 USD. |
Response
200 — Success
| Field | Type | Description |
|---|---|---|
transaction_id | string | Cartevo transaction ID. Use for support and reconciliation. |
card_id | string | The card the funds came from. |
amount | number | Net amount credited back to the USD wallet. |
currency | string | Always USD. |
fee_amount | number | Withdrawal fee charged (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 card balance" | Card balance < amount. | Fetch the current balance and adjust. |
400 | "Amount must be at least 1" | amount < 1. | Fix the request. |
400 | "Card terminated" | Card status is TERMINATED. | Cannot withdraw — terminated cards have already had their balance refunded. |
404 | "Card not found" | id is invalid or belongs to another company. | Verify the card ID. |
5xx | "Withdrawal temporarily unavailable" | Upstream issuer transient error. | Retry with backoff. The webhook card.withdraw.failed is also emitted on permanent failure. |
Webhooks fired
card.withdraw— on success.card.withdraw.failed— on permanent failure (e.g. upstream rejected).transaction.withdrawal.completed— once the transaction settles.
Code examples
cURL
Node.js (axios)
Related
POST /cards/{id}/fund— the reverse direction.POST /cards/{id}/terminate— terminating a card auto-refunds the remaining balance, so you don’t need to withdraw first.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Body
application/json
Amount in USD to withdraw from the card to the company USD wallet. Minimum 1 USD.
Required range:
x >= 1Response
Withdrawal successful