Skip to main content
A card is a USD Mastercard your business issues to one of its customers. It carries its own balance, funded from one of your accounts, and it spends at merchants like any other card. Everything here is USD. There is no other card currency, and no physical card.
A business client cannot currently issue a card through this API. A customerId is required, and that customer must be at tier 2 — but every customer is created at tier 1 and nothing raises it. Every issuance attempt ends in 404 card_holder_not_found. The rest of this service is documented as built; read the issuance pages as a specification of intent rather than something you can exercise today.

Two types

The object

balance is USD minor units as a string — "5000" is $50.00. Cards expire two years after issuance.

Statuses

The row worth noticing is frozen: a frozen card refuses merchants but still accepts funding and withdrawal. Freezing is a spending control, not a lock on the money.

Operations and payments

Two different records, easily confused. Operations are how you track your own instructions asynchronously. Payments are the card’s spending history.

The hidden account

Every card gets its own USD balance account, opened by Sakawave and marked invisible. It will never appear in GET /v1/accounts, and you cannot transfer to or from it directly — funding and withdrawal are the only doors. That is why a card balance is read from the card, not from the accounts service.

Events

Next

Introduction

What cards are for, and the tier gates in front of them.

Get started

Issue, fund, and read a card.

Setup and configuration

Feature gates, limits, and idempotency.

Card programs and PAN handling

Spending controls, credentials, and what never to store.