Pular para o conteúdo principal

Regra Universal de Tipagem dos Campos

A API Equals Connect segue uma regra consistente e universal para definir o tipo de qualquer campo no JSON retornado.


A Regra (Vale para TODOS os Campos)

Se o valor...Tipo no JSONExemplo
Contém apenas números E não começa com zeroNumber (sem aspas)1584494, 20260330, 178.57
Contém letras OU começa com zeroString (com aspas)"038589", "A1", "094822", "LOJA"

IMPORTANTE: Esta regra se aplica a QUALQUER CAMPO da API. Não existe uma lista fixa de campos que são sempre Number ou sempre String. O valor determina o tipo.


Exemplos Reais - Mesmo Campo, Tipos Diferentes

AUTORIZACAO

ValorTipoMotivo
1584494NumberApenas números, não começa com zero
"038589"StringComeça com zero
"ABC123"StringContém letras

HRVENDA

ValorTipoMotivo
"094822"StringComeça com zero (09:48:22)
135147NumberApenas números, não começa com zero (13:51:47)
91625NumberApenas números, não começa com zero (09:16:25 vira 91625 se for Number)

CONTA / AGENCIA

ValorTipoMotivo
"0000012345"StringComeça com zero
123456NumberApenas números, não começa com zero

Como Lidar - Abordagem Universal

Abordagem Errada (Assumir Tipo Fixo)

// ERRADO - Pode quebrar se o valor for Number
const hora = registro.HRVENDA;
const formatada = hora.padStart(6, '0'); // Erro se for Number!

Abordagem Correta (Tratar como String Sempre)

/**
* Converte qualquer valor para string (preserva zeros à esquerda)
*/
function asString(value) {
if (value === null || value === undefined) return '';
return String(value);
}

/**
* Converte hora (number ou string) para formato HH:MM:SS
*/
function formatHora(value) {
if (!value && value !== 0) return null;
const str = String(value).padStart(6, '0');
return `${str.slice(0,2)}:${str.slice(2,4)}:${str.slice(4,6)}`;
}

Regra de Ouro para Integração

"NUNCA assuma o tipo de um campo. SEMPRE converta para string antes de processar identificadores, códigos ou valores que possam começar com zero."

Checklist para Desenvolvimento Seguro:

  1. Use String(valor) para todos os campos que são identificadores.
  2. Use String(valor).padStart(6, '0') para campos de hora.
  3. NÃO use Number(valor) em campos que podem começar com zero.
  4. Teste sua integração com horários antes e depois das 10:00 da manhã.

Por que isso acontece?

É o comportamento natural do serializador JSON do backend. Quando o sistema gera o JSON, se um campo (como HRVENDA ou AUTORIZACAO) contém um valor que o parser entende como número puro (ex: 135147), ele é enviado sem aspas. Se o valor contém um zero à esquerda (ex: 094822), o sistema o trata como String para garantir que o zero não seja perdido.

Isso NÃO é uma inconsistência. É o comportamento padrão para preservar a integridade dos dados.

Este conteúdo foi útil para você?