Estrutura Base
Todos os webhooks enviados pela Autorizou seguem esta estrutura base:
{
"event": "payment.authorized",
"type": "payment",
"created_at": "2024-01-15 10:30:00",
"payment": { /* Objeto Payment */ },
"customer": { /* Objeto Customer */ },
"order": { /* Objeto Order (opcional) */ },
"subscription": { /* Objeto Subscription (opcional) */ }
}
Nome do evento que disparou o webhookExemplos: payment.authorized, payment.refused, subscription.created
Tipo do recurso principalValores: payment, subscription
Data e hora em que o evento foi criadoFormato: Y-m-d H:i:s (UTC)
Objeto Payment
Presente em todos os eventos de pagamento.
{
"payment": {
"id": "pay_abc123def456",
"merchant_reference": "pedido-789",
"status": "authorized",
"payment_method": "credit_card",
"amount": 10000,
"installments": 3,
"currency": "BRL",
"description": "Compra na loja virtual",
"metadata": {
"order_id": "789",
"customer_note": "Entrega rápida"
},
"credit_card": { /* Presente se payment_method = credit_card */ },
"bank_slip": { /* Presente se payment_method = bank_slip */ },
"pix": { /* Presente se payment_method = pix */ },
"return_code": "00",
"refused_reason": null,
"created_at": "15/01/2024 10:30:00",
"updated_at": "15/01/2024 10:30:15"
}
}
Campos do Payment
ID único do pagamento na Autorizou
Referência do pagamento no seu sistema
Status atual do pagamentoValores: pending, authorized, confirmed, refused, refunded, expired, etc.
Método de pagamento utilizadoValores: credit_card, bank_slip, pix
Valor em centavosExemplo: 10000 = R$ 100,00
Código da moeda (ISO 4217)Exemplo: BRL, USD
Dados customizados enviados na criação do pagamento
Código de retorno da adquirente (quando disponível)
Motivo da recusa (quando aplicável)
Dados do Cartão de Crédito
Quando payment_method é credit_card, o objeto credit_card está presente:
{
"credit_card": {
"id": "card_xyz789",
"holder": "João Silva",
"brand": "visa",
"first_6": "424242",
"last_4": "4242",
"exp_month": "12",
"exp_year": "2025",
"statement_descriptor": "MINHALOJA*",
"capture": true,
"three_ds": null
}
}
Nome do portador do cartão
Bandeira do cartãoExemplos: visa, mastercard, elo, amex
Primeiros 6 dígitos do cartão (BIN)
Últimos 4 dígitos do cartão
Mês de expiração (formato: MM)
Ano de expiração (formato: YYYY)
credit_card.statement_descriptor
Texto que aparece na fatura do cliente
Se a captura é automática
Dados de autenticação 3D Secure (quando aplicável)
Dados do Boleto Bancário
Quando payment_method é bank_slip, o objeto bank_slip está presente:
{
"bank_slip": {
"due_at": "2024-01-20",
"code": "23793381286008301352987654321000189370000010000",
"url": "https://api.autorizou.com.br/boletos/abc123.pdf"
}
}
Data de vencimentoFormato: Y-m-d
Código de barras / linha digitável
URL para download do PDF do boleto
Dados do PIX
Quando payment_method é pix, o objeto pix está presente:
{
"pix": {
"expires_at": "2024-01-15 12:00:00",
"qr_code": "00020126580014br.gov.bcb.pix...",
"payer_name": "Maria Santos",
"tax_id": "12345678900"
}
}
Data e hora de expiração do QR CodeFormato: Y-m-d H:i:s
Código PIX Copia e Cola (payload do QR Code)
Nome do pagador (disponível após pagamento)
CPF/CNPJ do pagador (disponível após pagamento)
Objeto Customer
Informações do cliente que realizou o pagamento.
{
"customer": {
"id": "cus_123456",
"name": "João Silva",
"email": "joao@exemplo.com.br"
}
}
ID do cliente na Autorizou
Objeto Order
Presente quando o pagamento está vinculado a um pedido.
{
"order": {
"id": "ord_789123",
"status": "pending",
"is_closed": false,
"fee": {
"fixed_fee_amount": 50,
"platform_fee_percentage": 3.99,
"platform_fee_amount": 399
},
"customer": {
"id": "cus_123456",
"name": "João Silva",
"email": "joao@exemplo.com.br"
},
"created_at": "15/01/2024 10:25:00",
"updated_at": "15/01/2024 10:30:00"
}
}
ID do pedido na Autorizou
Status do pedidoValores: pending, processing, completed, cancelled
Se o pedido está fechado/finalizado
Informações de taxas do pedido
order.fee.fixed_fee_amount
Valor da taxa fixa em centavos
order.fee.platform_fee_percentage
Percentual da taxa da plataforma
order.fee.platform_fee_amount
Valor da taxa da plataforma em centavos
Objeto Subscription
Presente em eventos de assinatura ou pagamentos recorrentes.
{
"subscription": {
"id": "sub_abc789",
"status": "active",
"plan_id": "plan_premium",
"interval": "monthly",
"next_charge_amount": 9900,
"installments": 1,
"next_charge_at": "2024-02-15 10:00:00",
"start_at": "2024-01-15 10:00:00",
"end_at": null,
"trial_days": 7,
"current_cycle": 1,
"customer": {
"id": "cus_123456",
"name": "João Silva",
"email": "joao@exemplo.com.br"
}
}
}
Status da assinaturaValores: active, inactive, cancelled, past_due
ID do plano da assinatura
Intervalo de cobrançaValores: daily, weekly, monthly, yearly
subscription.next_charge_amount
Valor da próxima cobrança em centavos
subscription.next_charge_at
Data da próxima cobrança
Data de início da assinatura
Data de término (null se indeterminado)
subscription.current_cycle
Ciclo atual da assinatura
Exemplos Completos
Pagamento Autorizado (Cartão de Crédito)
{
"event": "payment.authorized",
"type": "payment",
"created_at": "2024-01-15 10:30:00",
"payment": {
"id": "pay_abc123def456",
"merchant_reference": "pedido-789",
"status": "authorized",
"payment_method": "credit_card",
"amount": 15000,
"installments": 3,
"currency": "BRL",
"description": "Notebook Dell Inspiron",
"metadata": {
"order_id": "789",
"shipping_method": "express"
},
"credit_card": {
"id": "card_xyz789",
"holder": "João Silva",
"brand": "visa",
"first_6": "424242",
"last_4": "4242",
"exp_month": "12",
"exp_year": "2025",
"statement_descriptor": "LOJA*INFORMATICA",
"capture": true,
"three_ds": null
},
"return_code": "00",
"refused_reason": null,
"created_at": "15/01/2024 10:30:00",
"updated_at": "15/01/2024 10:30:15"
},
"customer": {
"id": "cus_123456",
"name": "João Silva",
"email": "joao@exemplo.com.br"
},
"order": {
"id": "ord_789123",
"status": "processing",
"is_closed": false,
"fee": {
"fixed_fee_amount": 50,
"platform_fee_percentage": 3.99,
"platform_fee_amount": 599
},
"customer": {
"id": "cus_123456",
"name": "João Silva",
"email": "joao@exemplo.com.br"
},
"created_at": "15/01/2024 10:25:00",
"updated_at": "15/01/2024 10:30:15"
}
}
Pagamento Recusado
{
"event": "payment.refused",
"type": "payment",
"created_at": "2024-01-15 10:35:00",
"payment": {
"id": "pay_refused123",
"merchant_reference": "pedido-790",
"status": "refused",
"payment_method": "credit_card",
"amount": 25000,
"installments": 1,
"currency": "BRL",
"description": "Compra rejeitada",
"metadata": {},
"credit_card": {
"id": "card_abc456",
"holder": "Maria Santos",
"brand": "mastercard",
"first_6": "555555",
"last_4": "4444",
"exp_month": "06",
"exp_year": "2026",
"statement_descriptor": "LOJA*",
"capture": true,
"three_ds": null
},
"return_code": "05",
"refused_reason": "Saldo insuficiente",
"created_at": "15/01/2024 10:35:00",
"updated_at": "15/01/2024 10:35:05"
},
"customer": {
"id": "cus_789456",
"name": "Maria Santos",
"email": "maria@exemplo.com.br"
}
}
Pagamento PIX Recebido
{
"event": "payment.received",
"type": "payment",
"created_at": "2024-01-15 11:00:00",
"payment": {
"id": "pay_pix123abc",
"merchant_reference": "pedido-791",
"status": "confirmed",
"payment_method": "pix",
"amount": 5000,
"installments": 1,
"currency": "BRL",
"description": "Camiseta Premium",
"metadata": {
"order_id": "791"
},
"pix": {
"expires_at": "2024-01-15 12:00:00",
"qr_code": "00020126580014br.gov.bcb.pix0136123e4567-e12b-12d1-a456-426655440000...",
"payer_name": "Carlos Oliveira",
"tax_id": "12345678900"
},
"return_code": null,
"refused_reason": null,
"created_at": "15/01/2024 10:45:00",
"updated_at": "15/01/2024 11:00:00"
},
"customer": {
"id": "cus_456789",
"name": "Carlos Oliveira",
"email": "carlos@exemplo.com.br"
},
"order": {
"id": "ord_791456",
"status": "completed",
"is_closed": true,
"fee": {
"fixed_fee_amount": 0,
"platform_fee_percentage": 0.99,
"platform_fee_amount": 49
},
"customer": {
"id": "cus_456789",
"name": "Carlos Oliveira",
"email": "carlos@exemplo.com.br"
},
"created_at": "15/01/2024 10:45:00",
"updated_at": "15/01/2024 11:00:00"
}
}
Boleto Criado
{
"event": "payment.created",
"type": "payment",
"created_at": "2024-01-15 09:00:00",
"payment": {
"id": "pay_boleto789",
"merchant_reference": "pedido-792",
"status": "pending",
"payment_method": "bank_slip",
"amount": 12000,
"installments": 1,
"currency": "BRL",
"description": "Curso online",
"metadata": {
"course_id": "curso-123"
},
"bank_slip": {
"due_at": "2024-01-22",
"code": "23793381286008301352987654321000189370000012000",
"url": "https://api.autorizou.com.br/boletos/pay_boleto789.pdf"
},
"return_code": null,
"refused_reason": null,
"created_at": "15/01/2024 09:00:00",
"updated_at": "15/01/2024 09:00:00"
},
"customer": {
"id": "cus_987654",
"name": "Ana Paula",
"email": "ana@exemplo.com.br"
}
}
Assinatura Criada
{
"event": "subscription.created",
"type": "subscription",
"created_at": "2024-01-15 14:00:00",
"subscription": {
"id": "sub_premium123",
"status": "active",
"plan_id": "plan_premium_monthly",
"interval": "monthly",
"next_charge_amount": 9900,
"installments": 1,
"next_charge_at": "2024-02-15 14:00:00",
"start_at": "2024-01-15 14:00:00",
"end_at": null,
"trial_days": 7,
"current_cycle": 1,
"customer": {
"id": "cus_sub123",
"name": "Rafael Costa",
"email": "rafael@exemplo.com.br"
}
}
}
Próximos Passos
Agora que você conhece a estrutura dos payloads, você pode implementar o endpoint no seu sistema para receber e processar os webhooks.
Lembre-se de processar os webhooks de forma idempotente usando o ID do pagamento para evitar processar o mesmo evento múltiplas vezes.