Create a wallet
Wallets
Create Wallet
Provision a new company wallet for a specific country and currency. The wallet starts at zero balance and is the source/destination for collections, payouts, and (for USD) card operations.
POST
Create a wallet
Overview
POST /wallets provisions a new wallet for your company. Each wallet is keyed by (currency, country_iso_code) — you cannot have two wallets for the same pair. The wallet is created with balance: 0 and is_active: true.
The USD wallet is special: it is the source-of-funds for all card issuance and funding, and the destination for refunds when a card is terminated.
When to use it
- You’re starting collections or payouts in a new country/currency.
- You’re onboarding a new market.
- You need a USD wallet before issuing your first card.
Prerequisites
- Your company has completed KYB and is in
APPROVEDstatus.
Request
Headers
| Name | Required | Description |
|---|---|---|
Authorization | Yes | Bearer <access_token> |
Content-Type | Yes | application/json |
Body
| Field | Type | Required | Constraints / format |
|---|---|---|---|
currency | string | Yes | ISO 4217. Common values: XAF, XOF, CDF, GNF, USD. For country_iso_code=CD, this is forced to CDF. |
country | string | Yes | Full country name (e.g. "Cameroon"). |
country_iso_code | string | Yes | ISO 3166-1 alpha-2 (e.g. CM, CI, CD). |
country_phone_code | string | Yes | Dial code with + (e.g. +237). |
Response
201 — Wallet created
| Field | Type | Description |
|---|---|---|
id | string | Wallet ID (UUID). Use for all wallet operations. |
currency | string | The wallet’s currency. |
payin_balance | number | Pay-in sub-balance (funds collected from end users). |
payout_balance | number | Pay-out sub-balance (funds available to disburse). |
balance | number | Total balance — usually payin_balance + payout_balance. |
is_active | boolean | true for newly created wallets. |
Error responses
| Status | message example | Trigger |
|---|---|---|
400 | "Wallet for this currency and country already exists" | Duplicate (currency, country_iso_code) pair. |
400 | "Invalid country / currency combination" | The pair is not supported by Cartevo. |
403 | "KYB not approved" | Your company has not completed KYB. |
Code examples
cURL
Node.js (axios)
Related
GET /wallets— list all wallets.POST /wallets/fund— top up via mobile money.- Glossary → Wallet — pay-in vs pay-out semantics.
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Response
Wallet created successfully