O catálogo de formatos
O catálogo é o inventário somente leitura dos formatos que o motor de ingestão consegue analisar. Ele é global primeiro e estático: os analisadores integrados não carregam tenant, então a resposta é idêntica para cada chamador autenticado. O catálogo é organizado como uma árvore
region → family → variant, seguindo os eixos canônicos do descritor de formato.
XX para formatos neutros de região. Uma família de layout canônico único (por exemplo camt) produz uma única entrada com um variant vazio.
O catálogo não recebe parâmetros de path, query ou body — o tenant é irrelevante para o catálogo integrado.
Templates de layout
Quando um arquivo usa um layout de largura fixa específico de uma operadora ou marca que nenhum analisador integrado cobre, registre um template de layout. Um template atribui um namespace a um layout posicional sob os eixos
{region, family, variant} e é resolvido pela rota de análise como uma fonte de layout aditiva para o seu tenant.
Cada submissão e edição passa por uma verificação de boa formação antes do armazenamento. Um estouro, uma sobreposição, campos obrigatórios ausentes, um registro sem campos ou uma coluna de dinheiro mal marcada rejeitam com 422 e o template nunca é armazenado.
Terceiro trilho do dinheiro: uma coluna de dinheiro deve declarar
kind: "decimal". Um campo de dinheiro que omite ou marca errado seu kind é rejeitado pela verificação de submissão — ele nunca chega à rota de análise.Criar um template
region— região ISO alpha-2 (em maiúsculas) ouXX.family— família de formato de enum fechado sob a qual o template atribui o namespace.variant— eixo aberto de operadora/marca (não pode estar em branco).discriminatorStart/discriminatorLength— o intervalo de bytes que o analisador lê para selecionar um tipo de registro.records[]— cada tipo de registro com suawidthfixa (bytes) e seusfieldsposicionais ordenados.fields[].kind—string,decimal(token de dinheiro/numérico literal, analisado adiante) oudate.requiredFields— nomes de campos que a variante deve declarar em seus tipos de registro.
201 com o template armazenado, incluindo sua formatKey (por exemplo br/cnab400/acme-cobranca), o discriminador, o layout posicional completo e recordWidths.
Listar e obter templates
Atualizar e excluir um template
PUT é uma substituição completa, não um patch parcial — os invariantes de intervalo de bytes são propriedades de todo o layout. A substituição passa pela mesma verificação de boa formação que a rota de criação aplica; um layout que falha rejeita com 422 e o template armazenado permanece inalterado.
204. Um template inexistente retorna 404; uma colisão de chave de formato com outro template ativo retorna 409.
Códigos de resposta
| Status | Significado |
|---|---|
200 | Catálogo, lista de templates, obtenção ou atualização retornada |
201 | Template criado |
204 | Template excluído de forma lógica |
400 | Campo/layout estruturalmente malformado |
404 | Template não encontrado |
409 | Chave de formato/variante já reivindicada |
422 | O layout falhou na verificação de boa formação (estouro, sobreposição, obrigatório ausente, sem campos, dinheiro mal marcado) |
503 | O catálogo de formatos ou o armazenamento de templates não está conectado neste deployment |

