El catálogo de formatos
El catálogo es el inventario de solo lectura de los formatos que el motor de ingesta puede analizar. Es global primero y estático: los analizadores integrados no tienen tenant, así que la respuesta es idéntica para cada llamador autenticado. El catálogo se organiza como un árbol
region → family → variant, siguiendo los ejes canónicos del descriptor de formato.
XX para formatos neutrales de región. Incluso una familia de layout canónico único (por ejemplo camt) nombra su layout como el variant — camt053 arriba.
El catálogo no toma parámetros de ruta, consulta ni cuerpo — el tenant es irrelevante para el catálogo integrado.
Plantillas de layout
Cuando un archivo usa un layout de ancho fijo específico de un operador o marca que ningún analizador integrado cubre, registra una plantilla de layout. Una plantilla asigna un espacio de nombres a un layout posicional bajo los ejes
{region, family, variant} y se resuelve mediante la ruta de análisis como una fuente de layout aditiva para tu tenant.
Cada envío y edición pasa por una verificación de buena formación antes del almacenamiento. Un desbordamiento, un solapamiento, campos obligatorios faltantes, un registro sin campos o una columna de dinero mal marcada rechazan con 422 y la plantilla nunca se almacena.
Tercer riel del dinero: una columna de dinero debe declarar
kind: "decimal". Un campo de dinero que omite o marca mal su kind es rechazado por la verificación de envío — nunca llega a la ruta de análisis.Crear una plantilla
region— región ISO alpha-2 (en mayúsculas) oXX.family— familia de formato de enum cerrado bajo la que la plantilla asigna el espacio de nombres.variant— eje abierto de operador/marca (no debe estar en blanco).discriminatorStart/discriminatorLength— el rango de bytes que el analizador lee para seleccionar un tipo de registro.records[]— cada tipo de registro con suwidthfijo (bytes) y susfieldsposicionales ordenados.fields[].kind—string,decimal(token de dinero/numérico literal, analizado más adelante) odate.requiredFields— nombres de campos que la variante debe declarar en sus tipos de registro.
201 con la plantilla almacenada, incluida su formatKey (por ejemplo br/cnab400/acme-cobranca), el discriminador, el layout posicional completo y recordWidths.
Listar y obtener plantillas
Actualizar y eliminar una plantilla
PUT es un reemplazo completo, no un parche parcial — los invariantes de rango de bytes son propiedades de todo el layout. El reemplazo pasa por la misma verificación de buena formación que aplica la ruta de creación; un layout que falla rechaza con 422 y la plantilla almacenada queda sin cambios.
204. Una plantilla inexistente devuelve 404; una colisión de clave de formato con otra plantilla activa devuelve 409.

