Guia de Arquitetura de Integrações

Como modelar integrações resilientes com a API Asaas — controle de estados, eventos, retries e preparo para produção, indo além do request/response.

Integrações com a API Asaas não terminam na resposta de uma requisição. Uma operação pode mudar de estado posteriormente, gerar novos eventos ou exigir recuperação em caso de falha.

Este guia apresenta os principais conceitos para desenvolver integrações resilientes e preparadas para produção, abordando controle de estados, processamento de eventos, comunicação síncrona e assíncrona, retries, idempotência, reconciliação e observabilidade.

📘

Ao concluir este guia, você entenderá como estruturar uma integração considerando todo o ciclo de uma operação, e não apenas o request/response da API.

Quando utilizar

Utilize este guia quando precisar:

  • modelar uma nova integração com o Asaas;
  • revisar integrações com divergências de status, duplicidades ou falhas silenciosas;
  • definir como sua aplicação tratará eventos e mudanças de estado;
  • implementar mecanismos de retry e recuperação de falhas;
  • preparar uma integração para operar em produção.

Antes de começar

Antes de aplicar os conceitos deste guia:

  • tenha a autenticação e as primeiras chamadas à API validadas;
  • identifique quais operações dependem de confirmação posterior;
  • defina se sua integração utilizará Webhooks, consultas de reconciliação ou os dois mecanismos.

Como funciona

Uma integração deve ser tratada como um fluxo contínuo, e não como uma chamada isolada.

%%{init: {"flowchart": {"nodeSpacing": 28,"rankSpacing": 32,"diagramPadding": 8,"padding": 10}}}%%
flowchart LR
    A["Executar operação"] --> B["Registrar estado"]
    B --> C["Receber evento"]
    C --> D["Atualizar aplicação"]
    D --> E{"Falhou?"}
    E --> ENao(("Não"))
    E --> ESim(("Sim"))
    ENao --> F["Fluxo concluído"]
    ESim --> G["Recuperar ou reprocessar"]
    G --> B

    classDef inicio fill:#DBEAFE,stroke:#2563EB,color:#1E3A8A,stroke-width:3px,font-size:17px
    classDef processo fill:#E0F2FE,stroke:#0284C7,color:#0C4A6E,stroke-width:2px,font-size:17px
    classDef decisao fill:#FEF3C7,stroke:#D97706,color:#78350F,stroke-width:2px,font-size:17px
    classDef sucesso fill:#DCFCE7,stroke:#16A34A,color:#14532D,stroke-width:3px,font-size:17px
    classDef recuperacao fill:#FEE2E2,stroke:#DC2626,color:#7F1D1D,stroke-width:2px,font-size:17px

    classDef respostaSim fill:#22C55E,stroke:#15803D,color:#FFFFFF,stroke-width:3px
    classDef respostaNao fill:#EF4444,stroke:#B91C1C,color:#FFFFFF,stroke-width:3px

    class A inicio
    class B,C,D processo
    class E decisao
    class F sucesso
    class G recuperacao

    class ESim respostaSim
    class ENao respostaNao

    linkStyle default stroke:#94A3B8,stroke-width:2px

A resposta síncrona da API representa o resultado daquela requisição naquele momento. Dependendo da operação, o estado pode mudar posteriormente por processamento financeiro, análise, confirmação, estorno ou outros eventos.

Por isso, sua aplicação deve estar preparada para registrar o estado atual, processar novas informações e reconciliar eventuais divergências.

Etapas do guia

EtapaO que você aprenderá
Além do request/responsePor que considerar apenas a resposta da API pode gerar divergências e falhas silenciosas
Estados, eventos e consistênciaComo representar status, transições e reconciliar o estado da sua aplicação com o Asaas
Comunicação síncrona e assíncronaQuando utilizar a resposta imediata da API e quando aguardar uma confirmação posterior
Webhooks e eventosComo receber, persistir e processar eventos de forma confiável
Retries e idempotênciaComo repetir operações em caso de falha sem gerar processamento duplicado
Preparação para produçãoO que validar em credenciais, testes, observabilidade e contingência antes do go-live
⚠️

Uma integração validada no Sandbox não está automaticamente pronta para produção. Credenciais, configurações, comportamento dos dados e volume de operações devem ser validados novamente no ambiente produtivo.

Implemente retries sempre com mecanismos de controle e idempotência. Repetir uma requisição sem considerar o resultado anterior pode gerar operações duplicadas.

Próximos passos

Comece entendendo por que uma integração não deve depender apenas da resposta imediata de uma requisição:

  • Além do request/response
  • Estados, eventos e consistência

Did this page help you?