Skip to main content

Visão geral

A integração ClearPago envolve três camadas principais: o seu sistema, a plataforma ClearPago e o parceiro BaaS. Cada camada tem responsabilidades bem definidas.

Responsabilidades por camada

Seu sistema

Plataforma ClearPago

Parceiro BaaS

Fluxo de um cash-in

  1. Seu sistema chama POST /api/pix/cash-in → plataforma retorna 201 com id, status: PENDING e pixCode.
  2. O pagador escaneia o QR e liquida no BaaS.
  3. O BaaS notifica a plataforma via POST /api/webhooks/pix/cash-in (interno).
  4. Worker transiciona o status para PAID, grava lançamento no ledger, enfileira notificação ao comerciante.
  5. Outbox entrega POST com event_type: pix_cash_in e Digital-Signature ao seu endpoint.
  6. Você valida a assinatura e executa a lógica de negócio (ex.: liberar pedido).

Fluxo de um cash-out

  1. POST /api/pix/cash-out → reserva criada, estado inicial.
  2. Plataforma despacha para o BaaS; resultado pode ser imediato ou assíncrono.
  3. Resposta ambígua (timeout, 5xx) → estado PROVIDER_RESULT_UNKNOWN → reconciliação resolve.
  4. BaaS confirma → CONFIRMED; BaaS falha → FAILED e reserva liberada.
  5. Comerciante recebe pix_cash_out com resultado final.

Modelo de entrega de notificações

Não conte com ordem garantida entre eventos de canais diferentes. Deduplicação e ordenação por identificadores de negócio são sua responsabilidade.

Implicações para o integrador

  • Não trate o POST de criação como terminal. O status retornado é o estado no momento do commit; o estado final chega via webhook ou consulta.
  • Implemente idempotência. Webhooks podem reentrar; seu handler deve ser seguro para execução múltipla.
  • Persista id cedo. Antes de qualquer lógica de negócio, grave o UUID retornado.
  • Monitore estados ambíguos. PROVIDER_RESULT_UNKNOWN e RECONCILIATION_REQUIRED não são terminais — monitore a idade e consulte via GET antes de escalar.

Referências