> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.imbawallet.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Catalog

> Cards, eSIM, and gift cards from prepaid USDT. ext_id required.

# Catalog

Buy from **retail** URLs with the agent JWT. There is no `/api/agent/...` money path and no `/api/partner/...`.

`ext_id` is required on creates (idempotency). `payment_source=stars` → **403**.

Space catalog reads (**balance**, **card\_products**, **offers**, **esim/plans**) \~1 second apart. Faster bursts return **429** `catalog_gap`.

## Cards

1. `POST /api/card_products` — take `id` as `imba_product_id`
2. `POST /api/pin/create_card` with `ext_id`
3. `POST /api/pin/topup_card` — `card_id` must belong to this agent
4. `POST /api/cards` — list this agent's cards

Cardholder fields (`email`, `phone`, names, `country`) are KYC for the **card**, not the agent 3-D Secure mailbox.

If you registered `jwe_public_key`, secrets can be JWE (ECDH-ES + A256GCM), same idea as Partner. Without a JWE key you get a mask, not PAN.

## Gift cards

1. `POST /api/offers` (optional `query`)
2. `POST /api/purchase` with `offer_id` + `ext_id`

## eSIM

1. `POST /api/esim/plans` — `esim_provider=yesim`, optional `country` ISO2; take plan `id`
2. `POST /api/esim/new_plan5` with `plan_id` + `ext_id`. If you pass `iccid`, it must already belong to this agent.

## Balance

`GET /api/balance` — prepaid USDT after confirmed TRON credit. Space this \~1s from other catalog reads.

## Closed

Withdraw, C2C, Stars, EVM, BTC, RUB bank/SBP, Partner URLs. Convert: see [Tiers](/agent/guides/tiers).
