Integração de checkout
Adicionar ?ref=CODE a um link não cria atribuição por si. O sistema de origem deve preservar o código e enviar um evento assinado após confirmação de pagamento.
Regra crítica
Fluxo real
- Visitante abre shop.example com ?ref=CODE
- Sistema externo associa CODE ao carrinho/encomenda
- Pagamento externo conclui no PSP de origem
- Backend de origem valida a confirmação do fornecedor de pagamento
- Venda paga é persistida no sistema de origem
- Evento de integração é construído (envio síncrono hoje; outbox durável é planned)
- Evento é enviado à AACT com bearer + HMAC
- AACT responde 201 (novo) ou 200 (replay) após persistência/processamento
- Comissão é calculada quando atribuição e regras coincidem
- Refunds/chargebacks posteriores são eventos separados
Ingestão sale servidor-a-servidor· implementado
Outbox persist-before-ack + HTTP 202· planeado
Regras do integrador
- Nunca coloque tokens bearer ou segredos HMAC no browser
- Página de sucesso ou query GET não é prova de pagamento
- O browser não decide montantes de comissão
- Não envie PAN/CVV para a AACT
- Não falhe uma venda já paga porque a AACT está temporariamente indisponível — faça retry
- Retries devem reutilizar o mesmo external_event_id; novo timestamp e nonce em cada tentativa
- HTTP 201/200 significa evento aceite/replay — não payout concluído
Setup no admin
- Criar business e website
- Criar regra de comissão para esse website
- Criar credencial de integração (exige step-up) e guardar token + hmac_secret (mostrados uma vez)
- Usar um source estável como node_checkout
Ambiente no site de origem
Configure o backend do site externo (nunca o browser) com o URL do gateway AACT e os segredos da credencial em Admin → Integrations.
| Variável | Função |
|---|---|
| AACT_URL | URL base do gateway AACT (demo local: http://localhost:18080) |
| AACT_TOKEN | Bearer token do create/rotate da credencial |
| AACT_HMAC_SECRET | Segredo HMAC mostrado uma vez no create/rotate |
| AACT_ENABLED | Kill switch opcional no produto de origem |
bash
AACT_ENABLED=true
AACT_URL=http://localhost:18080
AACT_TOKEN=aact_…
AACT_HMAC_SECRET=…Hook no site externo
- Persistir estado paid após confirmação do PSP na BD de origem
- Correr side-effects locais (ledger, fiscal, …)
- Enfileirar um job que faz POST assinado para /api/v1/integration/events
- Em refunds, enfileirar um evento separado com related_external_event_id
Exemplos copy-paste PHP e TypeScript de client + notifier: /docs/integrations/client. Deep-dive no repositório: docs/integrations/external-hook.md.
- Cliente e notifier
Helpers mínimos em PHP e TypeScript
Exemplo local
bash
export AACT_URL=http://localhost:18080
export AACT_TOKEN=… # do create/rotate no admin
export AACT_HMAC_SECRET=… # mostrado uma vez
export REFERRAL_CODE=REF-DEMOCODE01
node examples/node-checkout/post-sale.mjsVer também examples/offline-sale para canais não ecommerce.