{
"country": "Cuba",
"amount": 50,
"recipient": "+53..."
}POST /v1/quotes
x-api-key: sk_live_...
x-api-secret: ...
{
"source_kind": "usdt",
"dest_kind": "recarga",
"amount_in": 20
}POST /v1/orders
Idempotency-Key: order-8891
{ "quote_id": "<quote_id>" }
GET /v1/orders/<id>
GET /v1/catalog?country=CU&kind=topupSame x-api-key / x-api-secret auth and HMAC-signed webhooks as the transfers API. Quotes expire in 60 seconds — pide otra y ya.
Pon tus llaves y dale a Try it.
GET /v1/products?country=CU
x-client-id: sm_test_id_...
x-client-secret: sm_test_sk_...
{
"product_id": "SM-CU-CUBACEL-500",
"country": "CU",
"operator": "Cubacel",
"recipient_value": 500,
"recipient_currency": "CUP",
"price": 18.95,
"currency": "USD",
"promo": "Datos ilimitados 24h x 10 dias"
}price is your account's own price book price. Upstream acquisition costs, parent pricing and supplier identities are never returned. The promo field is dynamic — Cuban promotions rotate, so read it, never hard-code it.
POST /v1/topups
Idempotency-Key: shop-88213
x-client-id: sm_test_id_...
x-client-secret: sm_test_sk_...
{
"product_id": "SM-CU-CUBACEL-500",
"phone": "+53 5 555 0101",
"reference": "ticket-4471"
}
GET /v1/topups/<id>Scopes: catalog:read, prices:read, transactions:create, transactions:read, balance:read. Every call is charged against your prepaid wallet with its own ledger entry — a failed delivery releases the reservation and never charges you.
GET /v1 lists every endpoint and which credentials it expects. Three credential families: agency keys (x-api-key / x-api-secret), business keys (x-client-id / x-client-secret) and the Recarga IA developer key (Authorization: Bearer ria_…). Amounts in banking and AI credits are whole cents or créditos, and balances are always per currency — never blended.
Open accounts per currency, issue ACH/SEPA receiving numbers, fund, withdraw with a confirmation code, move money between your own accounts and exchange between them.
GET /v1/banking
POST /v1/banking/accounts { currency }
POST /v1/banking/receiving-numbers { account_id, alias }
POST /v1/banking/payins { account_id, method, amount }
POST /v1/banking/payouts { account_id, method, amount }
POST /v1/banking/payouts/{id}/confirm { code }
POST /v1/banking/transfers { from_account_id, to_account_id, amount }
POST /v1/banking/fx { from_account_id, to_account_id, amount, execute }Auth: business keys · scopes banking:read, banking:write
The gift-card catalogue, then the same quote/order pair as any other product. Indicative account rates live on /v1/rates; the real price of a route always comes back with its quote.
GET /v1/gift-cards?country=US GET /v1/rates?from=USD&to=EUR POST /v1/quotes POST /v1/orders
Auth: agency or business keys
Read the wallet behind your key, see every credit and charge with the balance after each line, list codes you issued and mint new ones for resale (your 2.5% commission is recorded).
GET /v1/ia/wallet
GET /v1/ia/ledger?limit=50
GET /v1/ia/vouchers
POST /v1/ia/vouchers { face_credits: 100|300|500|1000 }
POST /api/public/ia/chat { message }Auth: Authorization: Bearer ria_…
Your shops with their service contracts and counter sales, a hosted checkout you can open from your own backend, and the software plans we rent.
GET /v1/stores
POST /v1/checkout-sessions { product_id, recipient, client_reference }
GET /v1/plans
GET /api/public/app/{slug}/configAuth: business keys · scopes stores:read, checkout:create · plans are public