Lunium.Developers
Navigate
Lunium Developers · Limits guide

Minimums and maximums by asset, network and operation

Cash-in, cash-out and custody: amounts, units, fees, examples and the complete principal catalog.

2026-10-15 00:41:01 (UTC−3) · Markdown · Full catalog · JSON

Start with the operation

There is no single “USDT minimum”. Direction, network, conversion rail and API-key conditions matter. Sending USDT to receive PIX is a different operation from paying PIX to receive USDT.

Customer goal Product Endpoint Input unit
Pay PIX and receive crypto in a wallet Cash-in / buy: BRL → crypto POST /cashin/charge, destino: "cripto" amount_cents: integer BRL cents
Deposit crypto and receive PIX Cash-out / sell: crypto → BRL POST /cash-outs → accept → deposit amount: crypto quantity or brl_amount: desired BRL
Pay PIX and keep reais for later withdrawal Cash-in to custody POST /cashin/charge, destino: "saldo" amount_cents: integer BRL cents
Convert a BRL balance and deliver crypto Custody withdrawal POST /saldo/sacar-cripto amount_cents: BRL to convert, in cents

Buying and custody withdrawals use GET /cashin/catalog and the request field chain. Selling uses GET /catalog and network. Network availability can differ by direction. “Crypto deposit” in this guide means the input of a sale ending in PIX, not a USDT custody balance.

Minimum and maximum overview

Operation Minimum Maximum / restrictions
BRL → crypto Account and route floors, including fees R$ 6,000.00; also payer, network and mandate
USDT/USDC Polygon → PIX R$ 6.00 operation floor; quantity depends on quote R$ 250,000.00; payee up to R$ 100,000.00/day, less usage
Other crypto → PIX Asset min + applicable BRL floor Asset max + BRL ceiling + payee/mandate
PIX → saldo BRL Account/provider floor R$ 6,000.00; payer conditions
BRL balance → crypto Amount and route floors; own fees Route/operation limits and available balance for amount + fees
DePix / Liquid Own rule; see DePix section Own rule; do not use another crypto ceiling

The effective minimum must meet every applicable floor. The effective maximum must fit every applicable ceiling. Compare amounts in the same currency. If the minimum exceeds the available maximum, there is no valid amount for that operation at that time.

These are reference snapshots. Your fees, liquidity, available balance, payer/payee usage and mandate policy can change the result. Quote and creation checks take precedence. An absent field or null does not mean zero or unlimited.

Account floor, network floor and delivered amount

Field Unit Meaning
limits.per_operation.cashin.min_brl_cents BRL cents Account/provider floor, including the need for a positive remainder after key fees. It does not replace the route floor.
withdrawMin Asset units Exchange withdrawal minimum for the network.
withdrawFee Asset units Exchange withdrawal fee; distinct from Lunium and partner fees.
minBuyAmount Asset units Minimum quantity to buy, covering the withdrawal minimum and fee; not necessarily the net quantity received.
withdrawMax Asset units Exchange withdrawal ceiling. It does not authorize buying that entire amount through Lunium.
min_brl_cents BRL cents Route preview floor under the key's conditions. May also be available in the authenticated catalog when calculated.
minimo_estimado_cents BRL cents Suggested estimate in some minimum errors. Request a fresh preview.

Example: withdrawMin = "5" plus withdrawFee = "0.0065" requires buying 5.0065 USDT to support a 5 USDT withdrawal. Convert the cost to BRL and include your key fees; the actual quote defines the delivery.

amount_cents: 10000 means R$ 100.00. amount: "6" means 6 units of the selected crypto asset. brl_amount: "100.00" means R$ 100.00, not 100 cents. Use decimal strings and the asset's precision for crypto. Do not use floating-point rounding to determine a transfer quantity.

Cash-in: pay BRL and receive crypto

  1. Read GET /keys/me for per-operation limits, fees and any mandate.
  2. Read GET /cashin/catalog; offer only pairs with entregavel: true. Check memoRequired.
  3. Query GET /cashin/limits?payer_tax=CPF_OR_CNPJ for the actual payer.
  4. Request POST /cashin/preview with the amount, asset and network. Use the returned min_brl_cents; do not substitute another asset's BRL floor when absent.
  5. Show gross BRL, fees and estimated net crypto, then create the charge using the selected route.
  6. Track settlement. PIX paid is not proof of crypto delivery; check settlement_status and cashin.settled.

The charge ceiling is limits.per_operation.cashin.max_brl_cents; the payer's available limit can be smaller. available_cents / instant_available_cents describe the no-hold allowance; held_qr describes a held allowance when applicable. max_amount_cents is advisory and does not replace key, provider or route validation. Use allow_hold: false when your flow requires refusing operations subject to payer holds, and inspect all returned hold conditions.

For the crypto ceiling, check withdrawMax when published as well as the BRL ceiling. Do not turn R$ 6,000 into a permanent token amount: exchange rates and fees vary.

USDT and USDC reference values by network

USDT

Network Withdrawal minimum Network fee Minimum to buy Reference BRL floor Network withdrawal maximum
bsc 0.2 USDT 0.01 USDT 0.21 USDT R$ 1.10 20,000,000 USDT
cfxevm 1 USDT 0.01 USDT 1.01 USDT R$ 5.30 1,000,000 USDT
arbitrum 1 USDT 0.05 USDT 1.05 USDT R$ 5.50 5,000,000 USDT
celo 2 USDT 0.05 USDT 2.05 USDT R$ 10.60 5,000,000 USDT
tron 2 USDT 0.5 USDT 2.5 USDT R$ 12.90 30,000,000 USDT
klay 2 USDT 1 USDT 3 USDT R$ 15.50 1,000,000 USDT
optimism 3 USDT 0.0078 USDT 3.0078 USDT R$ 15.50 200,000 USDT
avalanche 4 USDT 0.000074 USDT 4.000074 USDT R$ 20.70 2,000,000 USDT
polygon 5 USDT 0.0065 USDT 5.0065 USDT R$ 25.80 5,000,000 USDT
ton 8 USDT 0.017 USDT 8.017 USDT R$ 41.30 5,000,000 USDT
eth 8 USDT 0.094 USDT 8.094 USDT R$ 41.70 30,000,000 USDT
plasma 10 USDT 0 USDT 10 USDT R$ 51.50 2,000,000 USDT
solana 10 USDT 0.18 USDT 10.18 USDT R$ 52.50 9,000,000 USDT

USDC

Network Withdrawal minimum Network fee Minimum to buy Reference BRL floor Network withdrawal maximum
arbitrum 0.5 USDC 0.0033 USDC 0.5033 USDC R$ 2.60 2,000,000 USDC
polygon 1 USDC 0.011 USDC 1.011 USDC R$ 5.30 1,000,000 USDC
base 1 USDC 0.1 USDC 1.1 USDC R$ 5.70 1,500,000 USDC
optimism 2 USDC 0.016 USDC 2.016 USDC R$ 10.50 2,000,000 USDC
eth 2 USDC 0.17 USDC 2.17 USDC R$ 11.20 15,000,000 USDC
algo 2 USDC 1 USDC 3 USDC R$ 15.50 5,000,000 USDC
seievm 2 USDC 1 USDC 3 USDC R$ 15.50 200,000 USDC
avalanche 5 USDC 0.00021 USDC 5.00021 USDC R$ 25.80 1,000,000 USDC
sonic 5 USDC 0.01 USDC 5.01 USDC R$ 25.90 1,000,000 USDC
bsc 10 USDC 0 USDC 10 USDC R$ 51.60 5,000,000 USDC
solana 20 USDC 0.18 USDC 20.18 USDC R$ 104.20 5,000,000 USDC

BRL floors below come from previews with zero integration fees. The exchange withdrawal fee is included in the route floor; your key's fees must be included in your own preview. Network ceilings do not override BRL ceilings. Times are estimates, not settlement guarantees.

Cash-out: deposit crypto and receive PIX

USDT/USDC on Polygon through fast: this rail has no fixed 6-token catalog floor. The operation still has a BRL floor. The required crypto quantity depends on the quote; R$ 6 is not 6 USDT.

Through convert: read the selected asset's min and max and a network in its networks list. The stablecoin range of 6–200,000 units must not be applied to BTC, ETH or other assets. The searchable table lists each principal-catalog asset.

The order must also meet BRL operation limits, the payee's remaining daily allowance and any mandate. When the response includes limits, use min_amount, max_amount, min_brl_cents and max_brl_cents as available. Not every response contains every field.

Example: a R$ 250,000 per-order ceiling does not override a R$ 100,000 daily payee ceiling. If R$ 80,000 has already been used, at most R$ 20,000 remains under that daily rule, before other restrictions. Splitting orders does not remove the daily ceiling. Its published reset is midnight in Brasília time.

  1. Verify the exact asset/network pair in the selling catalog. A preview does not create or accept an order.
  2. Create a quote with amount or brl_amount, never both. Use brl_amount when targeting a specific PIX amount.
  3. Inspect crypto quantity, PIX amount, fees, expiry and returned limits.
  4. Accept through /cash-outs/{cashout_id}/accept.
  5. Deposit only to the returned deposit_address, with deposit_tag if provided, on the specified network. The requested quantity must arrive; your sending exchange may deduct its own withdrawal fee.
  6. Confirm COMPLETED for PIX completion. On-chain confirmation, exchange credit and PIX completion are different stages.

refund_address is optional: if you already have your customer's wallet on the sale network, you may send it; without it, the wallet is requested only if the sale fails. Do not deposit before acceptance. If the quote expires or the amount changes, obtain new API instructions rather than assuming the old exchange rate.

Search every principal-catalog asset and network

This snapshot enumerates 1645 buying routes (1438 assets, including unavailable entries) and 1531 selling pairs (1338 assets across fast and convert).

Search USDT, BTC, ETH, polygon, tron, or another exact asset/network, then choose the direction. Each row identifies its limit units. “Preview required” and “not published” mean this source does not provide enough information to promise a number.

First 30 buying routes; enable JavaScript to search.

OperationAsset / networkAsset minimum¹Asset maximum²Reference BRL floorNominal BRL ceiling³Availability / notes
BuyUSDT / aptos (convert)10.1 USDT2,000,000 USDTPreview requiredR$ 6,000.00Unavailable for delivery · Withdrawal fee: 0.1 USDT · ate 2 min
BuyUSDT / arbitrum (convert)1.05 USDT5,000,000 USDTR$ 5.50R$ 6,000.00Listed as available · Withdrawal fee: 0.05 USDT · ate 2 min
BuyUSDT / avalanche (convert)4.000074 USDT2,000,000 USDTR$ 20.70R$ 6,000.00Listed as available · Withdrawal fee: 0.000074 USDT · ate 2 min
BuyUSDT / bsc (convert)0.21 USDT20,000,000 USDTR$ 1.10R$ 6,000.00Listed as available · Withdrawal fee: 0.01 USDT · ate 2 min
BuyUSDT / celo (convert)2.05 USDT5,000,000 USDTR$ 10.60R$ 6,000.00Listed as available · Withdrawal fee: 0.05 USDT · ate 2 min
BuyUSDT / cfxevm (convert)1.01 USDT1,000,000 USDTR$ 5.30R$ 6,000.00Listed as available · Withdrawal fee: 0.01 USDT · ate 2 min
BuyUSDT / eth (convert)8.094 USDT30,000,000 USDTR$ 41.70R$ 6,000.00Listed as available · Withdrawal fee: 0.094 USDT · ate 5 min
BuyUSDT / klay (convert)3 USDT1,000,000 USDTR$ 15.50R$ 6,000.00Listed as available · Withdrawal fee: 1 USDT · ate 2 min
BuyUSDT / near (convert)2.2 USDT2,000,000 USDTPreview requiredR$ 6,000.00Unavailable for delivery · Withdrawal fee: 0.2 USDT · ate 2 min
BuyUSDT / optimism (convert)3.0078 USDT200,000 USDTR$ 15.50R$ 6,000.00Listed as available · Withdrawal fee: 0.0078 USDT · ate 2 min
BuyUSDT / plasma (convert)10 USDT2,000,000 USDTR$ 51.50R$ 6,000.00Listed as available · Withdrawal fee: 0 USDT · ate 2 min
BuyUSDT / polkadot (convert)3 USDT200,000 USDTPreview requiredR$ 6,000.00Unavailable for delivery · Withdrawal fee: 1 USDT · ate 5 min
BuyUSDT / polygon (convert)5.0065 USDT5,000,000 USDTR$ 25.80R$ 6,000.00Listed as available · Withdrawal fee: 0.0065 USDT · ate 2 min
BuyUSDT / solana (convert)10.18 USDT9,000,000 USDTR$ 52.50R$ 6,000.00Listed as available · Withdrawal fee: 0.18 USDT · ate 2 min
BuyUSDT / ton (convert)8.017 USDT5,000,000 USDTR$ 41.30R$ 6,000.00Listed as available · Memo/tag required · Withdrawal fee: 0.017 USDT · ate 2 min
BuyUSDT / tron (convert)2.5 USDT30,000,000 USDTR$ 12.90R$ 6,000.00Listed as available · Withdrawal fee: 0.5 USDT · ate 2 min
BuyUSDC / algo (convert)3 USDC5,000,000 USDCR$ 15.50R$ 6,000.00Listed as available · Memo/tag required · Withdrawal fee: 1 USDC · ate 5 min
BuyUSDC / aptos (convert)3 USDC1,500,000 USDCPreview requiredR$ 6,000.00Unavailable for delivery · Withdrawal fee: 1 USDC · ate 2 min
BuyUSDC / arbitrum (convert)0.5033 USDC2,000,000 USDCR$ 2.60R$ 6,000.00Listed as available · Withdrawal fee: 0.0033 USDC · ate 2 min
BuyUSDC / arc (convert)1.5 USDC200,000 USDCPreview requiredR$ 6,000.00Unavailable for delivery · Withdrawal fee: 0.5 USDC · ate 5 min
BuyUSDC / avalanche (convert)5.00021 USDC1,000,000 USDCR$ 25.80R$ 6,000.00Listed as available · Withdrawal fee: 0.00021 USDC · ate 2 min
BuyUSDC / base (convert)1.1 USDC1,500,000 USDCR$ 5.70R$ 6,000.00Listed as available · Withdrawal fee: 0.1 USDC · ate 2 min
BuyUSDC / bsc (convert)10 USDC5,000,000 USDCR$ 51.60R$ 6,000.00Listed as available · Withdrawal fee: 0 USDC · ate 2 min
BuyUSDC / eth (convert)2.17 USDC15,000,000 USDCR$ 11.20R$ 6,000.00Listed as available · Withdrawal fee: 0.17 USDC · ate 5 min
BuyUSDC / near (convert)2.05 USDC400,000 USDCPreview requiredR$ 6,000.00Unavailable for delivery · Withdrawal fee: 0.05 USDC · ate 2 min
BuyUSDC / optimism (convert)2.016 USDC2,000,000 USDCR$ 10.50R$ 6,000.00Listed as available · Withdrawal fee: 0.016 USDC · ate 2 min
BuyUSDC / polkadot (convert)3 USDC200,000 USDCPreview requiredR$ 6,000.00Unavailable for delivery · Withdrawal fee: 1 USDC · ate 5 min
BuyUSDC / polygon (convert)1.011 USDC1,000,000 USDCR$ 5.30R$ 6,000.00Listed as available · Withdrawal fee: 0.011 USDC · ate 2 min
BuyUSDC / seievm (convert)3 USDC200,000 USDCR$ 15.50R$ 6,000.00Listed as available · Withdrawal fee: 1 USDC · ate 5 min
BuyUSDC / solana (convert)20.18 USDC5,000,000 USDCR$ 104.20R$ 6,000.00Listed as available · Withdrawal fee: 0.18 USDC · ate 2 min

¹ Buy: minimum purchase quantity; sell: asset/rail minimum. ² Buy: network withdrawal ceiling; sell: asset/rail ceiling. ³ Nominal BRL ceiling, still subject to payer/payee, fees, balance and key policy.

Buying routes marked entregavel: false are displayed as unavailable and must not be offered. Selling through an exchange publishes one range per asset and a list of allowed networks; the table repeats that asset range per network without inventing network-specific limits. Obtain each non-stablecoin BRL floor from its own preview.

DEX tokens: the principal catalog publishes DEX networks, not every whitelist token and limit. Query GET /catalog/dex?chain=...&q=..., identify by address / token_address and obtain a quote. Liquidity and operation conditions determine effective limits. Do not apply stablecoin limits or identify tokens only by symbol. This table covers every enumerated principal-catalog asset, not the entire DEX whitelist.

Custody deposits and crypto withdrawals

destino: "saldo" credits BRL custody without immediately delivering crypto. The USDT network withdrawal floor therefore does not define the custody deposit floor. Account/provider floors, charge ceilings and payer conditions still apply; deposit fees and holds can reduce available balance.

For crypto withdrawal, choose a deliverable buying-catalog route. Network withdrawal limits remain relevant, but the withdrawal has its own amount and fee validation. A cash-in preview alone does not represent the full custody withdrawal cost. Read GET /saldo and the withdrawal response.

  • amount_cents is BRL to convert, not token quantity.
  • Available balance must cover the amount and debited fees. Held balance is not available balance.
  • Waiting periods, holds and insufficient balance are different from a network minimum.
  • POST /saldo/sacar-cripto excludes Liquid/DePix even when listed for buying. Use POST /payouts to withdraw reais through PIX.
  • Use the correct customer_ref for a subaccount.

DePix has its own Liquid rules

Direction Published minimum Published maximum Fees / reference
Buy 2.01 DePix R$ 6,000.00 Read the key’s Liquid preview
Sell 1.02 DePix 6,000 DePix 1.5% + R$ 1.00

One DePix nominally corresponds to R$ 1.00; gross and net amounts still differ after fees. Buying depends on delivery_mode and key settings: full delivers directly, while split delivers net of applicable fees. Preview the specific route. The exchange-route calculator below excludes DePix.

When selling DePix, the DEPIX/liquid line's own limits and fees take precedence over the general crypto cash-out summary. Supply payee_tax_number when the Pix key is not a CPF/CNPJ; the Liquid refund_address is optional since API 1.44.0: without it, the wallet is requested only if the sale fails. Route availability can change with operational health.

Worked examples

BRL → USDT on Polygon

Illustrative values: withdrawal minimum 5 USDT, withdrawal fee 0.0065 USDT, exchange rate R$ 5.30/USDT, fixed fee R$ 2, total percentage fee 2%.

Minimum purchase = 5 + 0.0065 = 5.0065 USDT
Route cost = 5.0065 × 5.30 = R$ 26.53445
Gross estimate = (26.53445 + 2) / (1 − 0.02)
               ≈ R$ 29.1168
Rounded upward to a R$ 0.10 increment: R$ 29.20

This explains the floor; the preview's min_brl_cents remains the operational reference. Actual rates, rounding and fees may change it. Do not count the withdrawal fee twice.

Why can R$ 10 work for USDC but fail for USDT?

Polygon may require buying 1.011 USDC versus 5.0065 USDT to cover each withdrawal floor and fee. At a similar reference price the second needs more BRL. Approval for R$ 10 in USDC still depends on your fees and key conditions.

Why does a sale fail below the catalog's 200,000 USDT maximum?

That is the asset ceiling for the conversion rail. BRL operation limits, the payee's remaining daily allowance or a mandate may be smaller. Present the effective limit, not the largest number found.

How do I target an exact PIX amount?

Request a reverse quote using brl_amount, inspect the returned crypto amount and expiry, then accept. An external exchange-rate calculation does not include all product conditions.

Illustrative exchange-route calculator

Enter the total applicable percentage, including any buying partner fee, and the fixed BRL fee. Initial values are examples. This calculator uses stablecoin reference floors and rounds upward in R$ 0.10 increments. It does not read your key, apply payer limits or create a quote.

AssetNetworkReference floorEstimate with fees

Do not apply this cash-in calculation to DePix, selling or custody withdrawals. If the estimate exceeds the available ceiling, that amount cannot be offered under the current conditions.

Where each rule comes from

Source Fields / rule When
GET /keys/me limits.per_operation, payer_limits, payee_limits, mandate, key fees Load project conditions and refresh before limit-sensitive decisions
GET /cashin/catalog instant, convert, entregavel, memoRequired, withdrawMin, withdrawFee, withdrawMax, minBuyAmount, optional min_brl_cents Before offering buying/withdrawal routes
GET /cashin/limits?payer_tax=... max_amount_cents, available_cents, instant_available_cents, held_qr Before charging the specific payer
POST /cashin/preview min_brl_cents, net amounts, fees and route fields Whenever amount/asset/network changes; no charge is created
GET /catalog fast, convert[].networks, min, max, precision, deposit_eta, dex Before quoting a sale
GET /catalog/dex Token identity and network Before a DEX quote
Cash-out / limit error response limits if provided; exact quantity and expiry Before acceptance/deposit or while correcting a refusal
GET /saldo Available balance, custody fees, waiting periods and holds Before custody withdrawal

When provided, limits.max_brl_cents_por_transacao is the nominal operation ceiling; limits.max_brl_cents in a limit response can be smaller. Fields in error responses are not necessarily fields in /keys/me.

Run these examples on your server with an environment variable. PAYER_TAX must identify the actual payer. These requests do not create charges, deposit addresses or withdrawals.

curl --fail-with-body -sS 'https://api.luniumpay.com/keys/me' \
  -H "X-API-Key: $LUNIUM_API_KEY"
curl --fail-with-body -sS 'https://api.luniumpay.com/cashin/catalog' \
  -H "X-API-Key: $LUNIUM_API_KEY"
curl --fail-with-body -sS --get 'https://api.luniumpay.com/cashin/limits' \
  --data-urlencode "payer_tax=$PAYER_TAX" -H "X-API-Key: $LUNIUM_API_KEY"
curl --fail-with-body -sS 'https://api.luniumpay.com/cashin/preview' \
  -H "X-API-Key: $LUNIUM_API_KEY" -H 'Content-Type: application/json' \
  -d '{"amount_cents":10000,"asset":"usdt","chain":"polygon"}'
curl --fail-with-body -sS 'https://api.luniumpay.com/catalog' \
  -H "X-API-Key: $LUNIUM_API_KEY"

Never put production keys in public browser JavaScript. This documentation uses a public projection without credentials or individual customer limits.

Handling errors

Situation Action
valor_abaixo_do_minimo Read available minimo_estimado_cents, min_brl_cents or limits.min_amount; adjust and preview again. Do not repeat the same invalid amount indefinitely.
valor_acima_do_maximo Read ceiling and unit; inspect payer/payee and key conditions too.
limite_do_pagador, limite_diario_recebedor, limite_diario Check scope and reset conditions; a daily allowance is not a per-order ceiling.
mandate_valor_acima_do_teto Read limits and the response explanation; identify the effective key/payee restriction. A client-side number cannot lift it.
rede_indisponivel, catalogo_indisponivel Refresh the catalog; never automatically substitute a wallet's network.
memo_obrigatorio Obtain the correct memo/tag, not a placeholder.
saldo_insuficiente, carencia_primeiro_deposito Inspect available balance, fees and waiting period. Increasing the amount does not resolve these.

Branch on erro and acao; display detail to people. Preserve request_id. Treat missing numeric limits as unknown, not numbers to extract and hardcode from prose. Sandbox uses synthetic conditions and does not establish production limits.

Freshness, precision and sources

Collection completed: 2026-10-15 00:41:01 (UTC−3). Buying catalog: 2026-10-15 00:34:29 (UTC−3). Selling catalog: 2026-10-15 00:40:08 (UTC−3).

USDT reference price only: R$ 5.15. This is not a price for every asset.

The collector publishes an explicit allowlist of authenticated catalog fields, on an hourly schedule. On collection failure, the last valid file remains with its original timestamp. A stale: true catalog is contingency data, not a fresh quote.

Tables, embedded data and Markdown for a generation share the same snapshot. The displayed time identifies the numbers shown; reload to obtain the published generation. Your authenticated catalog and actual operation response take precedence over this public reference.

Sources: API reference, OpenAPI, integration manual, public catalog, this guide in Markdown, full catalog in Markdown.

Integration checklist

  • Distinguish buying, selling, custody funding and custody withdrawal.
  • Select the exact pair from the correct catalog and handle required memo/tag.
  • Label every minimum/maximum with BRL, cents or token units.
  • Show fees, estimated net delivery and holds before confirmation.
  • Meet the highest applicable floor and lowest ceiling in comparable units.
  • Refresh the preview after amount, asset, network or fee changes.
  • Distinguish unknown limits, unavailable routes and an empty allowed interval.
  • Deposit only after acceptance and use the returned instructions.
  • Preserve idempotency for retries; parameter changes must follow the endpoint's external_id rules.
  • Reconcile final delivery/credit/PIX status with webhooks and status queries.