Recebimento institucional GIA + InfinitePay

Checkout institucional GIA

Recebimento institucional do GIA: a empresa ativa é a compradora, e a conta recebedora nunca é configurada pelo tenant. Um fluxo de pagamento isolado, transparente e auditável.

Pagamento via InfinitePay
GIA não armazena dados de cartão
Checkout travado ao runtime Preview — Production bloqueado

Isolamento por desenho

Por que o billing institucional é separado

O billing institucional é um bounded context próprio, isolado dos ledgers das empresas. A única conta operacional é escopo PLATFORM, sem empresa vinculada.

Ledgers das empresas — nunca tocados pelo billing institucional

EscolarFinanceiroFinanças PessoaisLojas

A conta que recebe o pagamento institucional tem scope=PLATFORM e companyId=null. Ela nunca é configurada pelo tenant e nunca se mistura com o ledger de nenhuma empresa.

Como funciona

Um fluxo de pagamento auditável, do pedido à confirmação

  1. Passo 1

    A empresa ativa inicia o pedido

    O pedido de billing institucional começa no painel da empresa ativa.

  2. Passo 2

    O servidor cria o checkout na InfinitePay

    Preço, order_nsu, conta e provedor são definidos pelo servidor — nunca pelo cliente — com valores inteiros em centavos.

  3. Passo 3

    O comprador escolhe o meio de pagamento

    Na página da InfinitePay, com QR e compartilhamento opcional por WhatsApp ou e-mail como conveniência.

  4. Passo 4

    O webhook é reconciliado

    A InfinitePay notifica o backend, que reconcilia com payment_check exigindo pedido, pagamento, conta e valor coerentes.

  5. Passo 5

    O pedido vira PAID

    Só depois da reconciliação servidor-a-servidor o pedido é confirmado.

Segurança e idempotência

Cada etapa financeira falha fechado, nunca aberto

Idempotência durável

Chave única derivada de provedor, transaction_nsu, invoice_slug, order_nsu e tipo do evento — o mesmo webhook nunca é processado duas vezes.

Redirect é apenas UX

O redirecionamento do comprador nunca confirma pagamento — só a reconciliação servidor-a-servidor faz isso.

Webhook sem assinatura, mitigado

Limitação conhecida do PSP, mitigada com reconciliação servidor-a-servidor antes de qualquer efeito, e payload limitado a 32 KiB.

Fail-closed e sem dados sensíveis

Falhas financeiras nunca liberam produto. Logs e auditoria não persistem payload bruto, handle, PII ou segredos; uma constraint no banco impede conta PLATFORM vinculada a empresa.

Transparência sobre o gate de runtime

Não existe sandbox real da InfinitePay — a API sempre aponta para produção. Por isso o checkout é travado por runtime (GIA_RUNTIME_ENV=preview) e falha fechado fora do Preview.

Production permanece bloqueado.

Pronto para o checkout institucional?

Acesse o billing da sua empresa para iniciar o pedido, ou fale com o nosso time comercial para tirar dúvidas.