Problemas Conhecidos e Dicas (Gotchas)
A API da Equals possui alguns comportamentos específicos que podem causar confusão durante a integração inicial. Este guia consolida as melhores práticas para lidar com eles.
Comportamentos Confirmados (Dados Reais)
Baseado em exemplos reais fornecidos, os seguintes comportamentos estão confirmados:
| Característica | Confirmação |
|---|---|
| Datas em formato numérico | YYYYMMDD (ex: 20260330) |
| Horas em formato numérico | HHMMSS (ex: 152448) |
| Chaves em UPPERCASE | DTMOVIMENTO, VLBRUTO, IDMOVIMENTO |
| Sinal "N/A" para vendas | Movimentos A1 têm SINAL: "N/A" |
| Sinal "C" para créditos | Movimentos D1/D2 têm SINAL: "C" |
| Pix suportado | BANDEIRA: "Pix", IDBANDEIRA: 135 |
| Campo NRPEDIDO em A1 | Presente apenas em vendas |
| Campo PEDIDOADQ em D1/D2 | Presente apenas em financeiro |
Formatos de Data e Hora
Tipagem Dinâmica (Atenção!)
Diferente de APIs tradicionais, a tipagem dos campos de data e hora na Equals Connect é dinâmica e depende do valor retornado.
Guia Essencial: Veja a Regra Universal de Tipagem para entender como tratar qualquer campo da API de forma segura.
- Comportamento: Se o valor começar com zero (ex: hora
09:48:22), ele virá como String ("094822"). Se não (ex: hora13:51:47), virá como Number (135147). - Ação: NUNCA assuma que o campo é apenas Number ou apenas String. Sempre converta para String e use
padStartantes de processar.
2. Inconsistência na Caixa das Chaves (Case Sensitivity)
Embora o padrão confirmado seja UPPERCASE, algumas rotas ou versões da API podem retornar campos em camelCase ou snake_case.
- Problema:
record.DTMOVIMENTOpode ser undefined se a API retornardtMovimento. - Solução: Utilize um Wrapper de Normalização que converte todas as chaves para maiúsculas antes de processar.
3. Sandbox: Status Fixo
No ambiente Sandbox, as remessas geralmente ficam presas no status EM_PROCESSAMENTO.
- Dica: Não espere pelo status
CONCLUIDOno Sandbox. Assim que receber o ID da remessa, você já pode tentar chamarequals_connect_baixar_remessa.
4. Diferença entre A1, D1 e D2
- A1 (Venda): É apenas uma previsão. O dinheiro ainda não caiu.
- D1 (Pagamento): É o depósito efetivo na sua conta na data prevista.
- D2 (Antecipação): O dinheiro caiu antes do esperado (com taxa de antecipação).
Wrapper de Normalização Recomendado
Para evitar bugs, implemente uma classe normalizadora no seu projeto. Veja o arquivo normalizer.ts para uma implementação de referência.
Este conteúdo foi útil para você?