Skip to main content

O que é

Um parceiro integrador (por exemplo, o ERP de uma rede de franquias) precisa conferir por API o que acontece depois da venda: conciliar pagamentos, ver como o dinheiro foi dividido, acompanhar a aprovação das lojas e auditar assinaturas. Estas rotas entregam essa visibilidade — antes só existia no painel.
Base URL sandbox: https://pay.autorizou.dev/api/v1 · produção: https://pay.autorizou.cloud/api/v1. Todas exigem o header Authorization: Bearer SUA_CHAVE e respondem apenas dados do seu negócio (uma chave nunca enxerga dados de outro lojista).

Listar pagamentos

GET /payments — listagem paginada para conciliação ativa (“as vendas de ontem por status”). Filtros opcionais: status, payment_method, merchant_reference, from, to (datas YYYY-MM-DD), per_page (máx. 100).
cURL
curl -X GET "https://pay.autorizou.dev/api/v1/payments?status=authorized&from=2026-07-01&per_page=20" \
  -H "Authorization: Bearer SUA_CHAVE"
Resposta
{
  "data": [
    {
      "id": "75b59a3a-904d-3eb1-af0d-18490df1e45a",
      "merchant_reference": "aa0d35ab-314b-38a0-a24b-9740b119353f",
      "status": "authorized",
      "payment_method": "pix",
      "amount": 50000,
      "fees": { "fixed_fee_amount": 0, "platform_fee_amount": 0, "platform_fee_percentage": null },
      "split": [{ "recipient_id": null, "amount": 50000, "interest_amount": 0, "is_liable": true }]
    }
  ],
  "links": { "first": "...", "last": "...", "prev": null, "next": "..." },
  "meta": { "current_page": 1, "per_page": 20, "total": 11 }
}

Ver a venda com split e taxas

GET /payments/{identifier} (aceita uuid, hash ou merchant_reference) agora ecoa também:
  • fees — a taxa da plataforma congelada no ato da venda (o mesmo snapshot da resposta de criação).
  • split — como o valor foi dividido: cada recipient_id (uuid do recebedor, ou null para a sua conta), amount, interest_amount e is_liable.
Isso vale mesmo quando você não enviou split[] na venda — se a sua conta tem split configurado, a venda nasce dividida e o split mostra o resultado real.

Consultar uma assinatura

GET /subscriptions/{uuid} — fecha a caixa-preta pós-criação. Devolve status, interval, next_charge_amount, next_charge_at, current_cycle/max_cycles, canceled_at/canceled_reason e mais. Um recurso inexistente (ou de outro lojista) responde 404.
Ao cancelar uma assinatura, a plataforma passa a emitir o evento subscription.inactivated — use-o para bloquear o acesso do cliente. (A entrega assinada dos webhooks é tratada em item próprio do roadmap.)

Acompanhar o recebedor (KYC)

GET /recipients/{uuid} agora inclui status e missing_fields — o parceiro acompanha a aprovação da loja por polling, sem depender de inferência pela listagem de incompletos.
Resposta
{
  "id": "58c459ab-4f38-3c1d-b7bf-169d211f066d",
  "external_reference": "REF-498418",
  "status": "approved",
  "missing_fields": ["document", "phone", "address", "bank_account", "managing_partners"]
}

Enxergar o split configurado

O split por configuração se aplica às suas vendas mesmo sem você enviar split[]. Estas rotas o tornam visível por API: GET /split-configs/resolved — a regra que se aplica às suas vendas por padrão. POST /split-configs/simulate — a prévia da divisão de um valor.
cURL
curl -X POST "https://pay.autorizou.dev/api/v1/split-configs/simulate" \
  -H "Authorization: Bearer SUA_CHAVE" -H "Content-Type: application/json" \
  -d '{"amount": 10000}'
Resposta
{
  "data": [
    { "recipient_id": null, "amount": 8000, "is_liable": true },
    { "recipient_id": null, "amount": 2000, "is_liable": false }
  ],
  "amount": 10000
}

Limites de uso

A API de parceiro tem um limite generoso por chave (hoje 300 requisições/minuto), sinalizado nos headers X-RateLimit-Limit e X-RateLimit-Remaining. Ao exceder, a resposta é 429 — respeite o header Retry-After.

Fora da API (por ora)

  • Link de pagamento — criação e gestão de links são recursos do painel, não da API de parceiro.
  • Financeiro por API (saldo, extrato, agenda, repasses) e webhook assinado (HMAC) — em roadmap. Por enquanto, concilie o financeiro pelo painel e trate o webhook como gatilho (confirme com GET /payments/{id}).