Status local divergente do Asaas

Esse erro ocorre quando o sistema da integração mantém um status diferente do registrado no Asaas.

A divergência pode ser causada por falha no processamento de eventos, atualização incorreta, processamento fora de ordem ou ausência de uma rotina de reconciliação.

Como identificar

  • o status local não corresponde ao status atual no Asaas;
  • uma cobrança paga, cancelada ou estornada permanece desatualizada no sistema;
  • não existe histórico da última atualização;
  • ações são executadas com base em informações antigas;
  • o status permanece inalterado por mais tempo que o esperado;
  • divergências são identificadas e corrigidas apenas manualmente.

Como corrigir

  1. Identifique a entidade pelo ID do Asaas ou pelo identificador interno.
  2. Consulte o status atual diretamente no Asaas.
  3. Compare o status, o horário e a origem das atualizações.
  4. Confirme qual informação deve prevalecer.
  5. Corrija o status local.
  6. Registre a correção, a origem e o horário da atualização.
  7. Localize o evento relacionado à mudança.
  8. Revise o processamento e a ordem dos eventos.
  9. Implemente ou ajuste a rotina de reconciliação.

Fluxo recomendado: identificar a entidade → consultar o status atual → comparar os registros → corrigir a divergência → investigar a causa → reconciliar.

Fluxo de diagnóstico

1. Confirmação e correção da divergência

%%{init: {"flowchart": {"nodeSpacing": 18,"rankSpacing": 24,"diagramPadding": 4,"padding": 7
}}}%%
flowchart TD
    A["O status local não corresponde ao Asaas"] --> B{"O status atual foi consultado no Asaas?"}

    B --> BSim(("Sim"))
    B --> BNao(("Não"))
    B --> BDuvida(("Não sabe"))

    BNao --> C["Consultar a entidade pelo ID do Asaas"]
    BDuvida --> C

    C --> D{"Os status realmente divergem?"}
    BSim --> D

    D --> DSim(("Sim"))
    D --> DNao(("Não"))

    DSim --> E["Definir o status correto da operação"]
    DNao --> F["Verificar ID, cache e origem da informação"]

    E --> G["Corrigir o status local"]
    F --> H["Corrigir a origem do status exibido"]

    G --> I["Registrar a correção, a origem e o horário"]
    H --> I

    I --> J["Status validado e correção registrada"]

    classDef inicio fill:#DBEAFE,stroke:#2563EB,color:#1E3A8A,stroke-width:3px
    classDef decisao fill:#FEF3C7,stroke:#D97706,color:#78350F,stroke-width:3px
    classDef correcao fill:#FFEDD5,stroke:#EA580C,color:#7C2D12,stroke-width:2px
    classDef validacao fill:#E0F2FE,stroke:#0284C7,color:#0C4A6E,stroke-width:2px
    classDef sucesso fill:#DCFCE7,stroke:#16A34A,color:#14532D,stroke-width:3px
    classDef analise fill:#FEE2E2,stroke:#DC2626,color:#7F1D1D,stroke-width:3px

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

    class A inicio
    class B,D decisao
    class G,H correcao
    class C,E,I validacao
    class J sucesso
    class F analise

    class BSim,DSim respostaSim
    class BNao,DNao respostaNao
    class BDuvida respostaDuvida

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

    linkStyle 1,8 stroke:#22C55E,stroke-width:4px
    linkStyle 2,9 stroke:#EF4444,stroke-width:4px
    linkStyle 3 stroke:#8B5CF6,stroke-width:4px

2. Identificação da causa e reconciliação

%%{init: {"flowchart": {"nodeSpacing": 18,"rankSpacing": 24,"diagramPadding": 4,"padding": 7
}}}%%
flowchart TD
    A["A divergência foi corrigida"] --> B{"O evento correspondente foi recebido e processado?"}

    B --> BSim(("Sim"))
    B --> BNao(("Não"))
    B --> BDuvida(("Não sabe"))

    BNao --> C["Revisar entrega, persistência e processamento do evento"]

    BDuvida --> D["Consultar logs e histórico de eventos"]
    D --> C

    C --> E["Corrigir a causa e testar novamente"]

    BSim --> F{"O status foi atualizado pelo evento mais recente?"}
    E --> F

    F --> FSim(("Sim"))
    F --> FNao(("Não"))
    F --> FDuvida(("Não sabe"))

    FNao --> G["Revisar mapeamento, ordem e idempotência"]

    FDuvida --> H["Comparar horário e origem das atualizações"]
    H --> G

    FSim --> I{"Existe rotina de reconciliação?"}
    G --> I

    I --> ISim(("Sim"))
    I --> INao(("Não"))

    INao --> J["Implementar reconciliação de status"]

    ISim --> K{"A rotina identifica operações divergentes?"}
    J --> K

    K --> KSim(("Sim"))
    K --> KNao(("Não"))

    KSim --> L["Manter correção automática e alertas"]
    KNao --> M["Ajustar critérios, frequência e monitoramento"]
    M --> L

    classDef inicio fill:#DBEAFE,stroke:#2563EB,color:#1E3A8A,stroke-width:3px
    classDef decisao fill:#FEF3C7,stroke:#D97706,color:#78350F,stroke-width:3px
    classDef correcao fill:#FFEDD5,stroke:#EA580C,color:#7C2D12,stroke-width:2px
    classDef validacao fill:#E0F2FE,stroke:#0284C7,color:#0C4A6E,stroke-width:2px
    classDef sucesso fill:#DCFCE7,stroke:#16A34A,color:#14532D,stroke-width:3px
    classDef analise fill:#FEE2E2,stroke:#DC2626,color:#7F1D1D,stroke-width:3px

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

    class A inicio
    class B,F,I,K decisao
    class E,G,J,M correcao
    class D,H validacao
    class L sucesso
    class C analise

    class BSim,FSim,ISim,KSim respostaSim
    class BNao,FNao,INao,KNao respostaNao
    class BDuvida,FDuvida respostaDuvida

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

    linkStyle 1,10,18,23 stroke:#22C55E,stroke-width:4px
    linkStyle 2,11,19,24 stroke:#EF4444,stroke-width:4px
    linkStyle 3,12 stroke:#8B5CF6,stroke-width:4px

O primeiro fluxo orienta como confirmar e corrigir a divergência, enquanto o segundo identifica por que o status deixou de ser atualizado e como evitar novas inconsistências.


Como prevenir

Processe e persista os eventos de mudança de status, registre a origem e o horário de cada atualização e mantenha uma rotina de reconciliação para operações pendentes ou inconsistentes.

Antes de executar ações críticas, confirme se o sistema está utilizando o estado mais recente da operação.

O status local deve acompanhar o ciclo de vida da operação no Asaas, não apenas a resposta inicial da API.



Did this page help you?