Fluxo
Etapa 1: Criar a autorização
A resposta é
201 Created: a autorização, com status CREATED, o paymentUrl e todas as cobranças em schedules — o primeiro pagamento (isFirstPayment: true) e cada cobrança recorrente, todas CREATED:
schedule.startDate é dois dias antes do schedule.startDate que você enviou — ou o dia seguinte ao primeiro pagamento, quando for depois — e schedule.endDate é o dia seguinte ao que você enviou. Redirecione o cliente para paymentUrl para aprovar a autorização no banco dele.
Referência: POST .../wallets/{walletId}/pix-billing-automatic
Etapa 2: Acompanhar o ciclo de vida da autorização
Os eventosPIX_BILLING_AUTOMATIC_* acompanham a autorização em si (o consentimento que o cliente aprova):
Quando o cliente revoga a autorização no banco, ela passa a
REVOKED e as cobranças pendentes são canceladas; essa mudança não tem webhook, então consulte a autorização.
GET .../pix-billing-automatic/{pixBillingAutomaticId}.
Etapa 3: Acompanhar cada cobrança
Os eventosPIX_BILLING_AUTOMATIC_SCHEDULE_* acompanham as cobranças individuais:
attempts da cobrança — a menos que a recusa seja definitiva (por exemplo, o limite do cliente para o período foi atingido). Aí a cobrança passa a FAILED. Uma cobrança que o banco do cliente se recusa a agendar não tem webhook: ela termina como SCHEDULE_ERROR, ou continua CREATED depois da data dela, sem external.scheduleId e com um evento SCHEDULE_ATTEMPT_FAILED no histórico. Se você depende de webhooks, consulte também as cobranças da carteira com status=SCHEDULE_ERROR (trate como FAILED) e com status=CREATED e um maxDueDate no passado. Uma cobrança CREATED assim provavelmente foi recusada — mas, em casos raros, o banco do cliente aceitou e a confirmação se perdeu; então confirme com o suporte do Portão 3 antes de cobrá-la de outra forma. Uma cobrança CREATED depois da data que tem external.scheduleId ainda está sendo processada pelo banco do cliente: espere o resultado — não a cobre de outra forma. Para ver o que vence e o que foi pago em todas as autorizações da carteira, use GET .../wallets/{walletId}/pix-billing-automatic/schedules, filtrando por status e data de vencimento. Os eventos de uma autorização — a criação e os cancelamentos, cada atualização do banco do cliente, com o erro — estão em GET .../pix-billing-automatic/{pixBillingAutomaticId}/history.
Alterar o valor de uma cobrança
Ajuste uma cobrança individual (por exemplo, uma cobrança parcial) atualizando-a, referenciando tanto o ID da autorização quanto o ID da cobrança:amount (centavos) deve permanecer dentro da faixa minAmount/maxAmount da autorização; se for precisar, crie a autorização com uma faixa variável. Só uma cobrança recorrente que ainda não foi enviada ao banco do cliente (CREATED) pode mudar; o primeiro pagamento não, ele vai com a autorização.
Referência: PUT .../pix-billing-automatic/{pixBillingAutomaticId}/schedules/{pixBillingAutomaticScheduleId}. Para listar e filtrar autorizações, use GET .../wallets/{walletId}/pix-billing-automatic.
Cancelar
- Uma cobrança —
POST .../schedules/{pixBillingAutomaticScheduleId}/cancelcancela a cobrança e mantém a autorização e as demais cobranças. O primeiro pagamento não pode ser cancelado sozinho antes de o cliente aprovar: cancele a autorização inteira. - A autorização inteira —
POST .../pix-billing-automatic/{pixBillingAutomaticId}/cancelencerra a autorização: nenhuma outra cobrança é feita, e as cobranças aindaCREATEDouSCHEDULEDsão canceladas.
204 No Content.
Recorrer a boleto em caso de falhas repetidas
Quando as cobranças continuam falhando (FAILED ou SCHEDULE_ERROR), emita um boleto pelo mesmo valor para que o cliente ainda possa pagar:
CREATED, com o digitableLine e o barcode para apresentar ao cliente — ou baixe o PDF com GET .../boleto-billing/{boletoId}/download/pdf. Raramente ele volta INITIATED, ainda sem eles: consulte-o até ficar CREATED. Uma cobrança por boleto não tem webhook, então consulte-a com GET .../boleto-billing/{boletoId} para saber quando ela fica PAID. Você também pode adicionar regras de desconto, multa e juros (txnDiscountAmount, txnFineAmount, txnInterestAmount) — veja Cobrar com boleto e a referência do endpoint para o corpo completo.
Referência: POST .../wallets/{walletId}/boleto-billing
Próximos passos
Receber webhooks
Envelope de entrega e o catálogo completo de eventos.
Cobrar com PIX
Cobranças PIX avulsas com QR Code.