Pular para o conteúdo principal
Todos os plugins que expõem APIs devem aderir aos padrões de API da Lerian para garantir consistência, interoperabilidade e uma experiência de desenvolvedor previsível em todo o ecossistema. As APIs devem seguir princípios RESTful e ser descritas usando a especificação OpenAPI 3.1. GraphQL é opcional, mas permitido como interface complementar. Esta página define as convenções que se aplicam a toda API de plugin da Lerian — desde nomenclatura de parâmetros até formatação de erros.

Parâmetros de cabeçalho


Authorization

Todos os plugins suportam integração opcional com o Access Manager. O cabeçalho Authorization deve ser documentado como opcional no esquema da sua API. Ele é obrigatório apenas quando o ambiente tem o plugin Access Manager habilitado. Use o campo de descrição para comunicar essa condicionalidade — não defina o flag required como true. Texto de descrição recomendado:
The authorization token. This header is required only if your environment has the Access Manager plugin enabled.

Cabeçalhos personalizados

Cabeçalhos específicos de serviço seguem o padrão X-{Service}-{Name} usando PascalCase. Por exemplo: X-Account-ID.

Parâmetros de consulta


Todos os parâmetros de consulta devem usar snake_case. A Lerian define um conjunto de parâmetros de consulta padrão que devem ser suportados em todos os endpoints de listagem:

Parâmetros de corpo


Os campos nos corpos de requisição e resposta devem usar lowerCamelCase. Não use snake_case, kebab-case ou PascalCase em payloads JSON. Essa convenção se aplica a todos os nomes de campo em todos os níveis de aninhamento.

Códigos de status de resposta


As APIs da Lerian usam um conjunto mínimo de códigos de status HTTP:

Formato de data e hora


Todos os campos de data-hora devem seguir ISO 8601 em UTC com o sufixo Z. Não retorne datas sem o sufixo Z ou em fusos horários locais.
Campos somente de data (como parâmetros de consulta) usam o formato YYYY-MM-DD.

Formato de erros


Todas as respostas de erro devem seguir a estrutura padrão de erros da Lerian:
Quando o erro se relaciona a campos específicos (ex.: falhas de validação), inclua um objeto fields com detalhes por campo:

Convenções de códigos de erro

Os códigos de erro seguem o padrão: prefixo de 3 letras do plugin + 4 dígitos.
  • Cada plugin tem seu próprio prefixo (ex.: MDZ para Midaz, PIX para Pix, TRC para Tracer)
  • Códigos no intervalo 00010999 são erros internos do plugin
  • Códigos que começam com 1 (ex.: XXX-1000) indicam erros de integrações externas
Respostas de erro devem estar em conformidade com o formato padrão da Lerian de acordo com a diretriz do Modelo de erros.

Comportamento do PATCH


Todos os endpoints PATCH seguem RFC 7386 — JSON Merge Patch.
  • Content-Type: application/merge-patch+json
  • Propriedades omitidas: permanecem inalteradas
  • Propriedades com valor null: são removidas ou redefinidas para o valor padrão
  • Objetos: são mesclados recursivamente
  • Arrays: são substituídos inteiramente (sem mesclagem por elemento)
Isso significa que uma requisição PATCH só precisa incluir os campos que estão sendo alterados. Qualquer campo não presente no corpo da requisição permanece como está.

Padrão de soft-delete


As operações de exclusão seguem o padrão de soft-delete:
  • Retornam 204 No Content
  • Definem o campo deletedAt com o timestamp UTC atual em formato ISO 8601
  • Excluem registros deletados das listagens padrão (a menos que um filtro explícito seja aplicado)
  • A operação é idempotente — chamar DELETE em um recurso já deletado retorna o mesmo 204
Recursos deletados são preservados para fins de auditoria e conformidade. O hard-delete não é utilizado a menos que seja explicitamente justificado.

Objetos de metadados


As APIs da Lerian suportam um objeto metadata para armazenar pares chave-valor arbitrários nos recursos. Isso permite que os clientes anexem dados personalizados sem alterações no schema. Convenções para metadados:
  • As chaves devem usar lowerCamelCase
  • Os valores podem ser primitivos JSON ou objetos aninhados
  • Chaves desconhecidas devem ser preservadas textualmente — nunca transforme, renomeie ou remova campos de metadados
  • Metadados podem ser filtrados através do parâmetro de consulta metadata como string JSON

Referência rápida