Guia: criar cobrança (POST /orders)
Este fluxo é o equivalente conceitual ao criar um payin em gateways tradicionais: você registra uma intenção de pagamento e recebe os dados para o cliente concluir o pagamento.
Passo 1 — Obter credenciais
Certifique-se de ter:
- URL base da API:
https://paychain-api.onrender.com(ou{{BASE_URL}}nos exemplos) - JWT válido (veja Autenticação)
Passo 2 — Definir o valor da ordem
Você pode enviar o valor de uma das formas abaixo (não misture):
Opção A — Valor direto em stablecoin (USDT ou USDC)
USDT (Solana):
{
"network": "SOLANA",
"token": "USDT",
"amount": "100.00"
}
Na Solana, use "token": "USDC" com o mesmo formato de amount. O backend precisa ter USDC_MINT_SOLANA configurado.
{
"network": "SOLANA",
"token": "USDC",
"amount": "50.00"
}
Referência completa (BRL com USDC, cURLs): API — Ordens — POST /orders.
Opção B — Valor cotado em moeda fiduciária
- USD: paridade 1:1 com USDT (sem câmbio externo na prática).
- BRL ou EUR: conversão usando feed público no servidor no momento da criação.
{
"network": "SOLANA",
"token": "USDT",
"quoteCurrency": "BRL",
"quoteAmount": "550.00"
}
A resposta incluirá o amount no token escolhido (USDT ou USDC) a pagar, além de quotedAt, fxRateLabel (ex.: 1 USDT = 5,32 BRL ou 1 USDC = …) e fxSource (open_fx, fixed ou legacy).
Na opção B, defina também "token": "USDC" se quiser que a conversão BRL/EUR resulte em valor em USDC em vez de USDT.
Passo 3 — Chamar o endpoint de criação
POST {{BASE_URL}}/orders
Headers:
Authorization: Bearer {{TOKEN}}
Content-Type: application/json
Passo 4 — Usar a resposta
Em caso de sucesso, guarde pelo menos:
| Campo | Uso |
|---|---|
reference | Identificador único da ordem nas próximas chamadas |
payUrl | Link para a página de pagamento do Paychain |
qrData | Dados para exibir QR (ex.: Solana Pay) |
expiresAt | Prazo para o cliente pagar |
Opcional: webhookUrl no corpo da criação sobrescreve a URL padrão do perfil para esta ordem.
Passo 5 — Em caso de falha
Se a requisição falhar (rede, validação, cotação indisponível para BRL/EUR):
- Corrija o payload ou tente novamente após instantes.
- Gere uma nova ordem se precisar de novo prazo ou valor — não reutilize
referencede tentativas inválidas como se fossem a mesma cobrança.
Assim como em integrações onde is_checkout: true cria uma sessão e você redireciona ou embute o checkout, aqui a “sessão” é a ordem: o cliente completa o pagamento na carteira usando payUrl / QR, não um formulário de cartão na Paychain.
Referência cURL (todos os exemplos)
API — Ordens — POST /orders (USDT e USDC, BRL/EUR), listagem, consulta, submit-tx, webhooks, Telegram e auditoria.
Próximo guia
Fluxo de pagamento na Solana — do tx-request ao submit-tx e confirmação.