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
- Identifique a entidade pelo ID do Asaas ou pelo identificador interno.
- Consulte o status atual diretamente no Asaas.
- Compare o status, o horário e a origem das atualizações.
- Confirme qual informação deve prevalecer.
- Corrija o status local.
- Registre a correção, a origem e o horário da atualização.
- Localize o evento relacionado à mudança.
- Revise o processamento e a ordem dos eventos.
- 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.
Updated about 12 hours ago
