Ir para conteúdo
  • Cadastre-se

Recommended Posts

Postado

Olá pessoal,

Estou com dificuldades no tratamento de timezone nos campos calendario.criacao e pix[0].horario retornados pela API PIX de alguns bancos e gostaria de saber como vocês estão resolvendo isso.

O problema:

O padrão do Banco Central define que datas com sufixo Z estão em UTC. Porém identificamos que Santander (033) e Itaú (341) retornam esses campos com Z mas já em horário de Brasília (BRT), ignorando o padrão.

Exemplos reais:

Santander — diferença entre criacao e horario de pagamento: 34 segundos → já BRT

 
calendario.criacao : 2026-04-24T06:13:47.000Z
pix[0].horario     : 2026-04-24T06:14:21.000Z

Itaú — diferença entre criacao e horario de pagamento: 59 segundos → já BRT

 
calendario.criacao : 2026-04-03T16:00:17.000Z
pix[0].horario     : 2026-04-03T16:01:16.000Z

Demais bancos (Sicoob, Bradesco, BB, Nubank etc) — diferença ~180 minutos → Z real UTC, conversão necessária.

O que já implementamos:

Tratamos por FCodigoBanco — para 033 e 341 usamos EncodeDateTime extraindo as posições fixas do ISO8601 ignorando o Z. Para os demais aplicamos TTimeZone.Local.ToLocalTime().

As dúvidas:

  1. Existe alguma propriedade no ACBr que já resolve isso automaticamente, tipo um flag indicando se a data já está em BRT?
  2. Algum outro banco além de Santander e Itaú tem esse comportamento de Z falso?
  3. Existe discussão aberta sobre isso no repositório do ACBr?

Obrigado!

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.