01 — PIX ↔ stablecoin infrastructure

PIX Stablecoins.
One API.

Connect Brazilian payments to the global stablecoin economy.

Receive PIX and settle in USDT or USDC.
Receive stablecoins and settle over PIX.

A single API for cash-in, cash-out and payouts.

cash-in · ci_9f2e…
PIX received
event: cashin.paid
R$ 5.000,00
Converting
BRL → USDT
5,1047
Settlement
USDT → Polygon
0x8ef1…
Done
event: cashin.settled · tx confirmed on-chain
979,49 USDT
the same cycle your application follows through the API — by GET or by webhook
02 — Product

Money moves both ways.

Lunium connects PIX and stablecoins in a single programmable infrastructure.

Cash-in

PIX → USDT / USDC

Your customer pays an ordinary PIX. Lunium identifies the payment, converts it and settles the stablecoin straight to the configured address.

PIXpayment detectedconversionsettlementUSDT / USDC

Today, cash-in settles on Polygon.

Explore cash-in →
Cash-out

Stablecoins → PIX

Send USDT or USDC. Get a quote, confirm the operation, deposit the stablecoin — and Lunium settles it over PIX.

USDT / USDCquoteacceptdepositconfirmationPIX

Available across multiple networks, through the API catalog.

Explore cash-out →
Payouts

PIX payouts, through the API

Send PIX straight from your system over Lunium's infrastructure. Create payments, follow their status and reconcile every operation through the API.

POST /payoutsprocessingsent

No crypto in between: reais, straight to the PIX key.

Explore payouts →
03 — Developers

Integrate without waiting on us.

The infrastructure was built for developers to start from the API — not from a sales call.

01

Create your API key.

POST /keys
02

Ask for a quote.

POST /cashin/preview
03

Create a PIX charge.

POST /cashin/charge
04

Receive the settlement.

cashin.settled

No manual credential provisioning. No waiting for someone to create your first key.

04 — Code

From PIX to stablecoin in one integration.

requestnode
const response = await fetch(
  "https://api.luniumpay.com/cashin/charge",
  {
    method: "POST",
    headers: {
      "X-API-Key": process.env.LUNIUM_API_KEY,
      "Content-Type": "application/json"
    },
    body: JSON.stringify({
      amount_cents: 25000,
      payer_tax_number: "12345678901",
      payout_address: "0x…",
      asset: "usdt",
      external_id: "order_8812"
    })
  }
);

const charge = await response.json();
response200
{
  "cashin_id": "ci_b3f9d2a41c6e…",
  "status": "pending",
  "amount_cents": 25000,
  "chain": "polygon",
  "asset": "usdt",
  "qr_copypaste": "00020126…",
  "qr_image_url": "https://…",
  "external_id": "order_8812",
  "expires_at": "2026-…"
}

Your application receives the PIX. Lunium handles the rest of the path.

05 — Production

Built for developers.
Designed for production.

OpenAPI 3.1

Machine-readable specification

In sync with the production API — and audited against it.

Postman & Insomnia

Import and test right away

Import the API specification and start testing immediately.

Webhooks

Signed webhooks

Verify the authenticity of every event with a cryptographic signature.

Idempotency

Native idempotency

Retry operations safely, without creating duplicate financial transactions.

Errors

Structured errors

Build predictable error handling instead of parsing prose.

Catalog

Dynamic catalog

Discover available assets and networks programmatically, without hardcoding anything.

Reconciliation

Reconciliation

Use API responses and settlement identifiers as your financial source of truth.

06 — Networks

Cash-out on the networks your customers already use.

Lunium's catalog exposes the assets and networks available for cash-out — live, not in a stale table.

USDT USDC
Polygon Ethereum BNB Chain Arbitrum Optimism Base Avalanche Aptos NEAR + the remaining networks in the catalog — availability per asset at GET /catalog
GET /catalog

Availability changes. Your integration does not have to guess — if it is in the catalog, it is available.

07 — Quoting

The quote first.
Then the money.

Financial infrastructure should never require your application to guess the final amount.

Before creating a cash-in
POST /cashin/preview

A quote that creates nothing — with your key's fee already applied.

For cash-out
POST /cash-outs

A quote with an explicit expiry. Nothing happens until you accept.

The API returns the values the transaction will use.
Your system displays the quote. Lunium remains the source of truth.

08 — Lifecycle

Every transaction has a lifecycle.

Cash-in
pendingpaidsettled ✓orexpired

Real contract states: the PIX reaches paid; on-chain delivery is the settlement_status (pending → sending → sent) and the event cashin.settled tells you when to credit.

Cash-out
QUOTE_CREATEDAWAITING_DEPOSITDEPOSIT_DETECTEDcashout.processingCOMPLETED ✓

The internal conversion states collapse into a single event cashout.processing — you do not have to handle each one.

Your application follows state through the API — and receives every transition by webhook.

09 — Idempotency

Built so a retry never becomes a double payment.

Financial APIs fail differently from ordinary ones.

Connections drop. Servers restart. Responses time out.
And your application retries the call.

Lunium's idempotency model lets the same external_id safely reference the same financial operation — including to recover it after an ambiguous error.

Same operation Same identifier No duplicate transaction
10 — Operations

Your operation. Live.

Every API key includes access to an operational monitor scoped to your account.

  • Cash-in, cash-out and payouts
  • Status and settlements
  • Real-time operational events
  • Without exposing your API secret — the monitor has its own token, read-only and rotatable
monitor · scope: your key · read-only
cashin.paidR$ ••••,00processing
cashin.settled•• USDT · polygonsettled ✓
cashout.completedR$ ••••,00 · PIXpaid ✓
payout.sentR$ •••,00sent ✓
webhooksigned delivery2xx ✓
11 — Human operations

An API for your software.
An agent for your team.

Your application
api.luniumpay.com

Operates through Lunium's API: creates, follows, reconciles — programmatically.

Your team
  • Ask about your integration
  • Get real-time transaction alerts
  • Open the live monitor
  • Query operational activity

An API for machines. An agent for humans.

12 — Sandbox

Test the failure before the failure tests you.

Lunium's cash-out sandbox uses the same API shape and the same lifecycle as production. Each scenario has a deterministic trigger — good for CI, not just for curiosity.

Successful transactionthe happy path, at real pace
Delayed transactiontrigger .01 — delayed, then paid on its own
Failing transactiontrigger .02 — exercise your error path
Expired quotetrigger .03 — prove that you re-quote
Limit errortrigger .04 — with the limits object filled in
Idempotency conflictreuse an external_id and get the real 409
Webhook signaturePOST /webhooks/test validates your handler
POST /keys/sandbox

Create a test credential without moving real funds — one call, no signup.

13 — Solutions

For people building financial products.

Fintechs

Add PIX and stablecoin settlement to your application without building the whole payment pipeline.

Crypto platforms

Connect Brazilian payments to stablecoin infrastructure with one API.

Wallets

Give users an on- and off-ramp between PIX and digital dollars.

Marketplaces

Automate collections, settlement and payouts.

Global businesses

Connect Brazilian payment flows to stablecoin settlement.

B2B platforms

Embed Lunium inside your product and automate transactions programmatically.

14 — Source of truth

What the API does is stated by the API itself.

Not a sales deck. Not a PDF. It is the API.

GET /keys/meAccount configuration, current limits and eligibility — machine-readable.
GET /catalogAvailable assets and networks, right now.
GET /cashin/chargesCash-in history.
GET /cash-outsCash-out history.
GET /payoutsPayout history.

Your integration reads the current configuration instead of relying on assumptions.

15 — Documentation

Don't take our word for it.
Read the API.

22 documented operations
OpenAPI 3.1
Request and response schemas
cURL examples
Node.js examples
Python examples
Signed webhooks documented
Error contracts
Sandbox scenarios
Changelog
Production status
16 — Before you buy

Infrastructure you inspect before you buy.

Most payment companies ask you to talk to sales before you can understand the product. Lunium does the opposite.

Then talk to us — when you need production limits, commercial terms or enterprise support.

17 — Integration by software

Built for developers. Ready for agents.

Integrate through the same simple API you already know — or let software discover and integrate it on its own. Both doors lead to the same infrastructure.

01

Developer integration

A direct REST API, OpenAPI 3.1, a deterministic sandbox and production. Nothing changed: if you already integrate, it stays exactly the same.

Start building
02

Agent integration

Open-standard discovery, a machine-readable capability catalog, a spending policy set by the integrator itself, and production entry by rule.

Lunium for agents

It is the same API. The agent layer is additive — anyone who does not need it never runs into it.

Connect PIX to stablecoins.

One API for the payment flows your product needs.

Cash-in · Cash-out · Payouts