Referência de integração

Documentação — Lunium API

A porta pública de integração: cripto → Pix por uma única API, cobrindo as três rotas (FAST, DEX e CONVERT) sobre milhares de combinações moeda × rede. Base de produção: https://api.luniumpay.com.

A Lunium API é a infraestrutura de cripto → Pix: seu usuário vende a cripto que tiver e recebe em Pix, por uma única integração. Você conecta o front-end — a Lunium escolhe a rota, liquida e paga. Sem montar exchange, sem custodiar fiat, sem KYC no seu fluxo.

Como funciona

Toda operação é um cash-out e segue sempre o mesmo ciclo, independente da moeda ou da rota:

  1. CotaçãoPOST /cash-outs trava preço e prazo (QUOTE_CREATED).
  2. AceitePOST /cash-outs/{id}/accept devolve o endereço de depósito (AWAITING_DEPOSIT).
  3. Depósito — seu usuário envia a cripto para o endereço.
  4. PollingGET /cash-outs/{id} até um estado terminal (COMPLETED).

A Lunium decide sozinha qual rota usar (veja Rotas de liquidação); para o seu código, os quatro passos acima são sempre iguais.

Início rápido

Descubra o que é vendável e crie uma cotação:

# 1. Catálogo vivo (o que dá pra vender agora)
curl https://api.luniumpay.com/catalog -H "Authorization: Bearer SEU_TOKEN"

# 2. Cria a cotação
curl -X POST https://api.luniumpay.com/cash-outs \
  -H "Authorization: Bearer SEU_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"asset":"USDT","network":"polygon","amount":"100.00","pixKey":"lojista@luniumpay.com","pixKeyType":"email"}'
# → { "id":"co_...", "state":"QUOTE_CREATED", "brlAmount":"540.00", "expiresAt":"..." }

# 3. Aceita e recebe o endereço de depósito
curl -X POST https://api.luniumpay.com/cash-outs/co_.../accept -H "Authorization: Bearer SEU_TOKEN"
# → { "state":"AWAITING_DEPOSIT", "depositAddress":"0x...", ... }

# 4. Após o depósito, faça polling até um estado terminal
curl https://api.luniumpay.com/cash-outs/co_... -H "Authorization: Bearer SEU_TOKEN"
# → { "state":"COMPLETED", ... }

Rotas de liquidação

A rota é escolhida automaticamente a partir da moeda × rede — transparente para o cliente, muda só a latência:

RotaQuandoLatência do Pix
FASTUSDT/USDC em Polygon e Solanasegundos
DEXQualquer token em Polygon/Solana (swap on-chain → USDT)segundos
CONVERTDemais moedas/redes (depósito → venda spot → USDT)minutos

O campo path na resposta informa qual rota foi escolhida.

Autenticação

Todas as chamadas (exceto o catálogo público de status) exigem o header:

Authorization: Bearer SEU_TOKEN

O token é emitido pela Lunium por cliente. Chamadas sem token válido respondem 401. Chame sempre a partir do seu back-end — nunca exponha o token no front-end.

Redes, moedas e o catálogo

Não mantenha catálogo à mão: consulte-o vivo.

  • GET /catalog — rotas FAST (fixas) + CONVERT (catálogo da exchange, com min/max e precisão por moeda).
  • GET /catalog/dex?chain=&q= — busca na whitelist do DEX por address/mint (símbolos se repetem — há três "DOG" na Solana).

Para tokens do DEX, envie tokenAddress (o mint/endereço canônico) no POST /cash-outs — o símbolo sozinho é ambíguo. É case-sensitive; nunca normalize.

Ciclo de vida

O campo state avança por esta máquina. Faça polling em GET /cash-outs/{id} e pare num estado terminal (✔).

EstadoSignificado
QUOTE_CREATEDCotação criada, aguardando aceite.
AWAITING_DEPOSITAceita — aguardando o depósito no endereço.
DEPOSIT_DETECTEDDepósito visto on-chain, aguardando confirmações.
DEPOSIT_CONFIRMEDDepósito confirmado.
SELLING / SOLD(CONVERT) venda spot em andamento / concluída.
FORWARDINGEncaminhando para liquidação em Pix.
PAYING_OUTPix em processamento.
COMPLETEDPix pago.
EXPIREDCotação expirou sem depósito.
REFUNDEDCripto devolvida ao usuário.
FAILEDFalha terminal.
MANUAL_REVIEW / REFUNDING_CRYPTOSob intervenção do operador (transitórios).

Erros

Respostas de erro usam códigos HTTP padrão com corpo { "message": "...", "statusCode": N }:

CódigoCausa
400Requisição inválida (ex.: amount não-decimal, rota inexistente).
401Token ausente ou inválido.
403Chave Pix fora do allowlist (período canário).
404Cash-out inexistente.
429Rate limit — veja Limites.
503Serviço temporariamente indisponível (circuit breaker / limite diário).

Limites

  • Operação até US$ 50 mil.
  • Rate limits por token: cotação 5/min, aceite 10/min, consulta 60/min, catálogo 30/min.
  • Valores mínimos por moeda vêm do GET /catalog (campo min).
  • Dinheiro trafega como string decimal ("100.00"), nunca float — para preservar precisão.

Chaves Pix

pixKeyType é obrigatório e deve casar com a chave (CPF e telefone sem +55 têm os mesmos 11 dígitos — a ambiguidade já causou devolução on-chain): um de cpf, cnpj, phone, email, random.

Suporte

Dúvidas de integração: contato@luniumpay.com · https://luniumpay.com

Pronto para integrar? Solicite seu token de acesso.Solicitar acesso