Skip to main content

Visão Geral

O Pix Recorrente permite que você configure cobranças periódicas automáticas usando Pix como meio de pagamento. Seus clientes autorizam a recorrência uma única vez e os pagamentos subsequentes são processados automaticamente.

Autorização Única

Cliente autoriza uma vez via QR Code

Cobranças Automáticas

Pagamentos processados automaticamente

Gestão Simplificada

Sem necessidade de novo QR Code a cada cobrança

Benefícios

  • Redução de inadimplência - Cobranças automáticas sem ação do cliente
  • Melhor experiência - Cliente autoriza apenas uma vez
  • Flexibilidade - Suporte para trial, cobranças mensais, anuais, etc.
  • Menor custo - Taxas Pix geralmente menores que cartão de crédito

Como Funciona

Fluxo de Autorização Inicial:
  1. Você cria uma assinatura via API com payment_method: pix_recurring
  2. API retorna um QR Code Pix para autorização
  3. Cliente escaneia o QR Code com app bancário
  4. Cliente autoriza a recorrência (e paga primeira cobrança se sem trial)
  5. Sistema processa e armazena token de recorrência
  6. Pronto! Cobranças futuras serão automáticas
Fluxo de Cobranças Recorrentes:
  1. Sistema agenda cobrança 3 dias antes da data
  2. Sistema processa a cobrança 2 dias antes da data
  3. Gateway processa cobrança na data agendada
  4. Webhook notifica sucesso ou falha da cobrança
A Autorizou gerencia automaticamente todo o ciclo de vida das cobranças: agendamento, processamento, retentativas e notificações via webhook.

Jornadas de Pagamento

O Pix Recorrente suporta duas jornadas distintas:

Journey 2 (J2) - Com Período de Trial

Para assinaturas que oferecem período de teste gratuito:
1

Criar assinatura com trial_days

Configure trial_days no endpoint de criação de assinatura
2

Cliente autoriza recorrência

Cliente escaneia QR Code - sem pagamento imediato
3

Período de trial inicia

Assinatura muda para status TRIAL_STARTED automaticamente
4

Primeira cobrança ao fim do trial

Sistema processa primeiro pagamento após trial_days
5

Cobranças periódicas

Pagamentos subsequentes processados automaticamente
Exemplo: Assinatura com 7 dias de trial

Journey 3 (J3) - Sem Trial (Pagamento Imediato)

Para assinaturas que cobram imediatamente:
1

Criar assinatura sem trial_days

Configure trial_days como 0
2

Cliente autoriza e paga

Cliente escaneia QR Code - pagamento imediato
3

Primeira cobrança confirmada

Assinatura muda para PAYMENT_APPROVED após webhook
4

Cobranças periódicas

Pagamentos subsequentes processados automaticamente
Exemplo: Assinatura mensal sem trial

Status do Ciclo de Vida

Status da Subscription

Status do Payment

Fluxo de Status - Journey 2 (Com Trial)

Pagamentos J2:

Fluxo de Status - Journey 3 (Sem Trial)

Pagamentos J3:

Criando Assinatura com Pix Recorrente

Endpoint

POST /api/v1/subscriptions

Parâmetros Principais

string
required
Merchant Category Code - Código de categoria do estabelecimento
string
required
Código identificador único da assinatura (gerado pelo seu sistema)
string
Descrição da assinatura
string
URL para recebimento de webhooks
string
UUID de uma oferta recorrente (opcional). Quando fornecido, a assinatura herda a régua de preços e o intervalo da oferta.
string
required
Intervalo de cobrançaValores: weekly, monthly, yearlyNota: Autorizou suporta apenas esses três intervalos. Não há suporte para interval_count ou intervalos customizados.
integer
default:0
Dias de trial gratuito (0 = sem trial, J3)Journey 2: trial_days > 0Journey 3: trial_days = 0
object
required
Objeto com dados do cliente
object
required
Objeto com dados do pagamento

Exemplo: Assinatura Mensal com 7 dias de Trial (J2)

cURL

Exemplo: Assinatura Mensal sem Trial (J3)

cURL
Resposta J2 (Com Trial):
Resposta J3 (Sem Trial):
QR Code: O QR Code para autorização inicial está disponível em payment.pix_recurring.qr_code. Cliente deve escanear para autorizar a recorrência.

Diferenças entre J2 e J3

Campos importantes da resposta:
  • id - ID da assinatura (UUID)
  • status - Status atual (payment_pending, trial_started, payment_approved, etc.)
  • trial_days - Dias de trial (0 = J3, >0 = J2)
  • current_cycle - Ciclo atual (0 = ainda não cobrou, 1+ = já cobrou)
  • next_charge_at - Data/hora da próxima cobrança
  • payment.status - scheduled (J2) ou waiting_payment (J3)
  • payment.amount - 0 (J2) ou valor real (J3)
  • payment.pix_recurring.qr_code - QR Code para o cliente escanear
  • payment.pix_recurring.charge_code - Token de recorrência (preenchido após autorização)
  • payment.pix_recurring.acquirer_reference - Referência do gateway de pagamento
  • fee - Informações de taxas da plataforma

Timing de Processamento

A Autorizou processa cobranças Pix Recorrente seguindo janelas específicas para garantir conformidade com requisitos do gateway de pagamento:

Constantes de Timing

Linha do Tempo de Processamento

Exemplo para cobrança agendada para 10 de Novembro:

Processamento Automatizado

A Autorizou executa três processos automatizados diariamente:
Responsabilidade: Criar pagamentos SCHEDULED 3 dias antes da cobrançaO que faz:
  • Busca assinaturas com next_charge_at em 3 dias
  • Verifica se já existe payment SCHEDULED para aquela data
  • Se não existe, cria novo payment com status SCHEDULED
  • Se já existe, não faz nada (rede de segurança)
Responsabilidade: Enviar payments SCHEDULED para gateway 2 dias antesO que faz:
  • Busca payments com status SCHEDULED e billing_date em 2 dias
  • Valida que subscription ainda está ativa
  • Muda status: SCHEDULEDWAITING_PAYMENT
  • Envia requisição para o gateway de pagamento
  • Aguarda confirmação via webhook
Responsabilidade: Retentar payments com status REFUSEDO que faz:
  • Busca payments REFUSED de Pix Recorrente
  • Verifica se retry_attempts < 3
  • Cria novo payment SCHEDULED com nova data
  • Aguarda processamento pelos outros processos automatizados
  • Máximo de 3 tentativas em 7 dias

Webhooks

A Autorizou envia webhooks para notificar eventos importantes do ciclo de vida das assinaturas:

Eventos de Subscription

Eventos de Payment

Exemplo de Payload

Para configurar e testar webhooks, consulte a documentação completa de webhooks.

Gerenciando Assinaturas

Cancelar Assinatura

Para cancelar uma assinatura ativa: Endpoint: POST /api/v1/subscriptions/cancel
cURL
Comportamento:
  • Define canceled_at com timestamp atual
  • Interrompe processamento de cobranças futuras
  • Payments SCHEDULED não são mais processados
  • Envia webhook subscription.deleted
Cancelamento é irreversível. Cliente precisará criar nova assinatura para reativar.

Consultar Assinatura

Endpoint: GET /api/v1/subscriptions/{subscription_id}
cURL

Listar Pagamentos de uma Assinatura

Endpoint: GET /api/v1/subscriptions/{subscription_id}/payments
cURL

Tratamento de Falhas

Política de Retry

Quando uma cobrança falha:
  1. Payment muda para status REFUSED
  2. Subscription muda para PAYMENT_REFUSED
  3. Sistema agenda retry automático
  4. Máximo 3 tentativas em janela de 7 dias
  5. Após 3 falhas, assinatura permanece PAYMENT_REFUSED

Motivos Comuns de Falha

Verificando Falhas via Webhook

Ambiente de Testes

Sandbox

Use o ambiente sandbox para testar todo o fluxo: Base URL: https://pay.autorizou.dev/api/v1 Como testar:
  1. Use o endpoint POST /api/v1/subscriptions conforme documentado acima
  2. No campo payment.payment_method, use o valor "pix_recurring"
  3. A API retornará o QR Code em payment.pix_recurring.qr_code

QR Code de Teste

Em sandbox, o QR Code retornado aponta para ambiente de testes. Portanto, ele não vai funcionar no seu aplicativo bancário.
Dica de Teste: Para simular falhas, você pode usar metadados específicos na criação da assinatura. Entre em contato com o suporte para detalhes.

Troubleshooting

QR Code não gera pagamento

Causa: Cliente pode ter escaneado mas não confirmou no app bancário Solução:
  1. Verifique se QR Code ainda está válido (30 minutos)
  2. Peça ao cliente para confirmar autorização no app
  3. Aguarde webhook de confirmação (pode levar alguns segundos)

Subscription fica em PAYMENT_PENDING

Causa: Cliente não escaneou o QR Code ou autorização não foi processada Solução:
  1. Verifique se cliente escaneou o QR Code
  2. Confirme que QR Code não expirou
  3. Se expirou, crie nova assinatura
  4. Verifique logs de webhook para erros

Payment fica em WAITING_PAYMENT

Causa: Aguardando confirmação do gateway via webhook Solução:
  1. Normalmente resolve em alguns segundos
  2. Verifique se webhooks estão configurados corretamente
  3. Consulte status via GET /api/v1/payments/{payment_id}
  4. Se persistir por mais de 5 minutos, contate suporte

Cobranças não processam automaticamente

Causa: Processos automatizados não estão executando Solução:
  1. Isso é gerenciado pela Autorizou (SaaS)
  2. Se detectar atrasos, contate suporte imediatamente
  3. Verifique se subscription está ativa (canceled_at deve ser null)

Campos Importantes

Campos principais retornados pela API:

Recursos Adicionais

Criar Assinatura

Documentação completa do endpoint

Cancelar Assinatura

Como cancelar assinaturas

Webhooks

Configurar notificações em tempo real

Consultar Pagamento

Verificar status de pagamentos

Checklist de Implementação

Configuração Inicial

  • Conta Autorizou configurada para Pix Recorrente
  • Credenciais de API obtidas (sandbox e produção)
  • Webhooks configurados para receber notificações

Integração Backend

  • Endpoint de criação de assinatura implementado
  • Endpoint de cancelamento implementado
  • Recebimento de webhooks configurado
  • Tratamento de eventos de pagamento implementado
  • Logs e monitoramento configurados

Testes

  • Testado criação de assinatura J2 (com trial)
  • Testado criação de assinatura J3 (sem trial)
  • Testado fluxo de autorização via QR Code
  • Testado recebimento de webhooks
  • Testado cancelamento de assinatura
  • Testado falhas e retries

Produção

  • Testado com pagamentos reais em produção
  • Monitoramento de falhas configurado
  • Processo de suporte ao cliente definido
  • Documentação interna criada

Próximos Passos

Após implementar Pix Recorrente:
  1. Configurar webhooks para notificações
  2. Monitorar pagamentos em tempo real
  3. Implementar dashboard para gestão de assinaturas
  4. Processar reembolsos quando necessário