Checkout PIX com API REST e webhook para USDT ou USDC
Fluxo em cinco passos
Crie a chave
Use POST /keys/sandbox para validar o contrato sem dinheiro ou POST /keys para criar sua chave de produção. A chave em claro aparece uma única vez.
Leia catálogo e limites
Consulte GET /cashin/catalog, GET /keys/me e GET /cashin/limits. Não fixe rede, mínimo, máximo ou faixa de retenção no código.
Faça a prévia
POST /cashin/preview valida ativo, rede, endereço e valor sem criar uma cobrança.
Crie e mostre o PIX
POST /cashin/charge recebe o valor, CPF/CNPJ do pagador, destino e external_id. Mostre o QR somente depois de informar eventual retenção devolvida pela API.
Confirme e reconcilie
Consuma o webhook assinado. Use GET /cashin/{cashin_id}/status como fallback e o mesmo external_id nos retries.
Request mínimo de produção
curl -X POST https://api.luniumpay.com/cashin/charge \
-H 'Content-Type: application/json' \
-H 'X-API-Key: SUA_CHAVE' \
-d '{
"amount_cents": 25000,
"payer_tax_number": "CPF_OU_CNPJ",
"asset": "usdt",
"chain": "polygon",
"payout_address": "CARTEIRA_DO_CLIENTE",
"external_id": "pedido-84721"
}'
O payload é ilustrativo. Consulte o OpenAPI vivo para campos, limites e respostas vigentes antes de implementar.
Estados que o checkout precisa explicar
pending
QR criado e ainda não pago. Não gere outro automaticamente.
delayed
PIX pago e liberação retida. Não é falha; mostre o prazo devolvido pela API.
paid
O PIX foi recebido. Ainda confirme settlement_status; não libere o produto apenas por este estado.
settled
A liquidação foi concluída. Aceite também paid somente quando settlement_status estiver sent ou confirmed, conforme o contrato do fluxo.
expired / refunded
Encerre a tentativa antiga. Se necessário, crie outra com novo identificador comercial.
O que deve estar pronto antes do primeiro PIX real
external_id por pedido, persistido antes da chamada.Perguntas frequentes
A chave de produção depende de aprovação manual?
Não. POST /keys cria a chave de produção de forma self-service. Nome é obrigatório; e-mail, carteira e webhook podem ser definidos ou atualizados conforme o contrato.
Preciso usar polling?
Não como caminho principal. Webhook reduz latência e carga. A consulta de status deve existir para reconciliação e recuperação de eventos.
Como evito cobrança duplicada?
Envie external_id. A repetição idêntica recupera a operação original; mudar parâmetros usando o mesmo identificador retorna conflito.
Teste o contrato antes do checkout real
Comece sem dinheiro, valide os caminhos ruins e troque para uma chave de produção quando o seu tratamento de estados estiver correto.