Pular para o conteúdo
Sursa Developers

Horários e formatos

JSON e texto

  • Os corpos das requisições e das respostas são JSON em UTF-8, com Content-Type: application/json. Os uploads de arquivos usam multipart/form-data.
  • Os nomes de campos e os valores de enumerações seguem snake_case: next_retry_at, index_failed.
  • As mensagens de erro e os textos da API são em inglês. Os textos que você escreve, como os títulos dos cartões, são retornados como você os escreveu, em qualquer idioma.

Horários

Todo horário é um timestamp RFC 3339 em UTC:

{"created_at": "2026-10-24T10:00:00Z"}
  • Os campos mais novos usam a forma curta com Z, como acima.
  • Alguns campos que já existiam antes usam a forma 2026-10-24T10:00:00.123456+00:00, com até seis casas de frações de segundo. É o mesmo instante em UTC. Leia as duas formas com um parser padrão de RFC 3339; não compare timestamps como strings.
  • Todo campo cujo nome termina em _at é um timestamp.

Os horários que você envia precisam incluir um deslocamento de fuso horário, seja Z, seja um deslocamento numérico como +02:00. Um horário sem deslocamento é ambíguo e retorna 422 com o código validation.failed. O Sursa converte para UTC todo horário que recebe.

const since = new Date(Date.now() - 24 * 3600 * 1000).toISOString(); // "2026-10-23T10:00:00.000Z"

Em uma query string, o + precisa ser escrito como %2B, senão é lido como espaço. Codifique os horários para URL ou use Z.

Datas, durações e contagens

TipoFormaExemplo
Data sem horárioYYYY-MM-DD, em um campo que termina em _date"due_date": "2026-11-01"
DuraçãoUm inteiro, com a unidade no nome do campo"interval_days": 90, "timeout_seconds": 30
ContagemUm inteiro, em um campo que termina em _count"part_count": 12
Verdadeiro ou falsoUm booleano, nomeado por um adjetivo sem is_"active": true, "sensitive": false

Valores monetários

Os valores nas respostas financeiras são strings decimais, como "1250.00", nunca números de ponto flutuante, para que nenhuma precisão se perca. A moeda é um campo separado, com um código ISO 4217, como "EUR". Leia os valores com um tipo decimal da sua linguagem.

IDs

Os IDs são strings ou inteiros, conforme o objeto. Veja IDs de objetos.

Enumerações

Os campos com um conjunto fixo de valores, como um status, são strings. Toda enumeração de uma resposta pode ganhar valores novos em uma versão posterior: trate um valor que você não conhece como “outro”. Veja Versões e compatibilidade.

Campos nulos e ausentes

  • null significa “sem valor”: um cartão sem responsável tem "owner_id": null.
  • Um campo pode estar ausente de uma resposta quando não se aplica a este objeto ou a esta requisição. A referência da API indica quais campos estão sempre presentes.
  • Em um PATCH, um campo que você omite mantém o valor. Envie null para limpar um campo quando a referência diz que null é permitido.