Pix Automático e contestações

Para o passo a passo, veja os guias Pix Automático e Contestações.

Pix Automático

Rota
POST /v1/subscriptions criar (devolve o QR Code de aprovação)
GET /v1/subscriptions listar (status, limit, starting_after)
GET /v1/subscriptions/{id} ver, com os ciclos cobrados em payments
POST /v1/subscriptions/{id}/charge cobrar um ciclo agora
POST /v1/subscriptions/{id}/cancel cancelar
POST /v1/subscriptions/{id}/simulate modo de teste: aprovar como se fosse o cliente

Criar

Campo
customer obrigatório name e document (CPF/CNPJ). Na Woovi, também address completo
frequency obrigatório weekly, monthly, quarterly, semiannually ou annually
amount centavos por ciclo. Sem ele, o valor é variável
first_amount centavos do primeiro ciclo, pago na aprovação. Padrão: amount
description o cliente vê no app do banco
start_date / end_date AAAA-MM-DD. Início padrão: hoje
retry true (padrão): o banco tenta de novo até 3 vezes em 7 dias
provider_account_id forçar uma conta
metadata copiado para cada ciclo

Objeto

{
  "id": "sub_8Hq...",
  "object": "subscription",
  "status": "pending",
  "amount": 4990,
  "first_amount": 4990,
  "frequency": "monthly",
  "start_date": "2026-10-18",
  "next_charge_date": "2026-11-18",
  "provider": "asaas",
  "approval": { "qr_code": "00020101...", "qr_code_base64": "iVBOR...", "url": null },
  "customer": { "id": "cus_...", "name": "Ana Lima", "document": "52998224725" }
}

status: pending (esperando o cliente), active, canceled, refused ou expired. approval só vem enquanto está pending.

Cobrar um ciclo

amount (obrigatório se o valor for variável) e due_date (AAAA-MM-DD, entre 2 e 10 dias úteis à frente). Devolve a cobrança criada. Na Woovi os ciclos são criados pela própria Woovi, então esta rota não se aplica.

Contestações

Rota
GET /v1/disputes listar (status=open traz as que esperam resposta; payment_id)
GET /v1/disputes/{id} ver
POST /v1/disputes/{id}/evidence responder: text e urls (links públicos das provas)
POST /v1/payments/{id}/simulate-dispute modo de teste: abrir uma contestação
{
  "id": "dp_2Kd...",
  "object": "dispute",
  "kind": "med",
  "status": "open",
  "amount": 8990,
  "reason": "Golpe",
  "due_at": "2026-10-25T12:00:00.000Z",
  "payment_id": "pay_3kXy...",
  "provider": "woovi"
}

kind: med (Pix) ou chargeback (cartão). status: open, under_review, won, lost ou canceled.