Documentação Técnica do Layout de Contratos Marítimos · Registro e Averbação de Embarcações · SELO2 · 2026
O Layout JSON Marítimos v3.0.0 define o contrato de dados para remessa eletrônica
de atos praticados em Registros de Contratos Marítimos no Estado do Rio de Janeiro.
Substitui o Schema_Maritimos_3.00.xsd (XML), adotando JSON Schema draft-07 como
padrão de validação e tipagem — em linha com os demais layouts da plataforma SELO2.
v3.0.0 — vigente desde 2026-05-07.
Schema monolítico em layout_schema.json (81 KB) com 41 definições
reutilizáveis via $ref interno.
Registro e averbação de contratos relacionados a embarcações e atos notariais correlatos. Baseado na Lei 7.652/1988 (Registro de Embarcações) e NORMAM-01 (Marinha do Brasil).
21 tipos de ato — desde lavraturas de escritura até operações de alteração de emolumentos. Máximo de 5.000 atos por remessa. Limite de arquivo: 32 MB.
minimum/maximum; monetários como string com padrão ^\d+\.\d{2}$true/false — nunca "S"/"N"oneOf: cada ato tem tipoAto + dadosAto com const no schemaadditionalProperties: false em todos os objetos| Arquivo | Descrição |
|---|---|
layout_schema.json | JSON Schema draft-07 (81 KB) |
exemplo.json | Remessa de exemplo com os 21 atos |
layout.md | Documentação técnica em Markdown |
_build/valida.ps1 | Validador PowerShell |
_build/valida.py | Validador Python |
_build/valida.vb | Validador VB.NET 4.8.1 |
_build/ValidaLayout.NET10.cs | Validador C# .NET 10 |
Todo arquivo de remessa tem exatamente um objeto raiz com duas chaves obrigatórias:
$schema (URI da versão do layout) e remessa (o envelope de dados).
A estrutura do envelope é descrita abaixo.
{
"$schema": "https://layouts.tjrj.jus.br/sfe/maritimos/v3.0.0/layout_schema.json",
"remessa": {
"id": "<UUID v4>",
"versaoLayout": "3.0.0",
"codigoServico": "458",
"tipoOperacao": "INCLUSAO", // ou "ALTERACAO"
"ambiente": "PRODUCAO", // ou "HOMOLOGACAO"
"software": { "nome": "SGF", "versao": "2026.1.0" },
"dataGeracao": "2026-05-07T10:30:00-03:00", // ISO 8601 com offset
"atos": [ /* array de atos — máx. 5.000 */ ],
"justificativasAusencia": [ /* datas sem ato praticado */ ]
}
}
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
id | string | ✅ | Identificador único da remessa. Formato UUID v4. Gerado pelo software transmissor. |
versaoLayout | string | ✅ | Versão do layout utilizado. Valor fixo: "3.0.0". |
codigoServico | string | ✅ | Código do serviço extrajudicial na CGJ-RJ. Para Marítimos: "458". |
tipoOperacao | enum | ✅ | INCLUSAO para novos atos; ALTERACAO para retificações de atos já transmitidos. |
ambiente | enum | ✅ | HOMOLOGACAO para testes; PRODUCAO para envio real. |
software | object | ✅ | Identificação do software transmissor: nome (string) e versao (string). |
dataGeracao | date-time | ✅ | Momento de geração do arquivo. ISO 8601 com offset de fuso horário obrigatório (ex.: -03:00). |
atos | array | ✅ | Array de atos. Mínimo: 1 item. Máximo: 5.000 itens. Cada item é discriminado por tipoAto + dadosAto. |
justificativasAusencia | array | ⬜ | Datas em que o serviço não praticou atos. Cada item contém data (date) e motivo (string). |
oneOfCada elemento do array atos segue o padrão de discriminação por tipo:
{
"tipoAto": "LAVRATURA_ESCRITURA", // discriminador (const no schema)
"dadosAto": {
// campos específicos do tipo — validados por oneOf
"categoria": "ATO_SELADO",
"dataPratica": "2026-05-07",
"selo": "RCPN00001",
"aleatorio": "XYZ",
// ... demais campos do ato ...
}
}
O JSON Schema usa oneOf com const em categoria para garantir que cada tipoAto
produza exatamente o conjunto correto de campos obrigatórios e opcionais.
O layout cobre 21 tipos de ato, distribuídos em três categorias funcionais.
A categoria determina qual estrutura base o ato herda: AtoBase (atos selados),
TransmissaoBase (transmissões não seladas) ou estrutura própria (operações).
Requerem selo físico ou eletrônico. Herdam de AtoBase.
| tipoAto | Descrição | Base Legal |
|---|---|---|
LAVRATURA_ESCRITURA | Lavratura de escritura pública de contrato marítimo. Suporta atos conjuntos, procuração, valor declarado e múltiplas embarcações. | Lei 8.935/94 |
CERTIDAO_ESCRITURA | Emissão de certidão de escritura já lavrada. Indica se é inteiro teor ou específica. | Lei 6.015/73 |
LAVRATURA_PROCURACAO | Lavratura de procuração pública para atos marítimos. Informa tipo de livro, finalidade e outorgantes/outorgados. | Lei 8.935/94 |
CERTIDAO_PROCURACAO | Certidão de procuração já lavrada. | Lei 6.015/73 |
SUBSTABELECIMENTO_PROCURACAO | Substabelecimento de poderes de procuração. Referencia a procuração original. | CC art. 655 |
REVOGACAO_PROCURACAO | Revogação de procuração. Quando outorgado ausente, exige número de notificação. | CC art. 682 |
PRENOTACAO | Prenotação de título para registro marítimo. Informa espécie do título e indicador se lavrado no Rio de Janeiro. | Lei 6.015/73 art. 221 |
REGISTRO | Registro de contrato marítimo. Campo tipoRegistro (Tabela 11 CGJ-RJ). | Lei 7.652/88 |
AVERBACAO | Averbação em registro existente. Campo tipoAverbacao (Tabela 12) e indicador de conteúdo econômico. | Lei 6.015/73 art. 167-II |
CERTIDAO | Certidão de registro marítimo. Campo tipoCertidao (Tabela 13) e resultado (positivo/negativo). | Lei 6.015/73 |
CERTIDAO_GENERICA | Certidão de conteúdo genérico não coberto pelos tipos específicos. | Lei 6.015/73 |
APOSTILAMENTO | Apostila da Convenção da Haia em documento marítimo. Informa país de destino e idioma do documento. | Conv. Haia 1961 |
VISTO | Visto em procuração ou instrumento particular. Informa tipo de instrumento. | Lei 8.935/94 |
Não requerem selo. Herdam de TransmissaoBase — utilizam cct (Código de Controle de Transmissão) em vez de selo.
| tipoAto | Descrição |
|---|---|
CANCELAMENTO_PRENOTACAO | Cancelamento de prenotação anterior. Vincula ao ato de prenotação original via atosVinculados. |
APRESENTACAO_TITULO_EXAME | Apresentação de título para exame de qualificação. Não gera registro — registra apenas a apresentação. |
ENCERRAMENTO_LIVRO | Encerramento de livro de registro. Informa número do livro e tipo. |
FOLHA_ADICIONAL_COMPLEMENTO | Folha adicional a ato já lavrado — complemento de conteúdo. |
INFORMACAO_VERBAL | Registro de informação verbal prestada. Não gera cobrança de emolumentos selados. |
COMPLEMENTO_EMOLUMENTOS | Complementação de emolumentos de ato anterior. Referencia o ato original. |
DESISTENCIA | Desistência de ato em andamento. Informa tipo do ato desistido e motivo (FALTA_ASSINATURA, DESISTENCIA, OUTROS). |
Categoria especial para operações administrativas sobre atos já registrados. Não herda de AtoBase nem TransmissaoBase — tem estrutura própria.
| tipoAto | Descrição |
|---|---|
ALTERACAO_EMOLUMENTOS | Altera a composição de emolumentos de um ato já registrado. Campos: categoria, selo (ou cct) e novo objeto emolumentos. Não possui dataPratica. |
As estruturas base são definições reutilizáveis ($defs) que consolidam os campos
comuns a múltiplos tipos de ato. Cada tipo de ato estende uma dessas bases via
allOf no JSON Schema.
Define os campos obrigatórios e opcionais presentes em todo ato que requer selo.
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
categoria | const | ✅ | Sempre "ATO_SELADO". Discriminador do oneOf. |
dataPratica | date | ✅ | Data em que o ato foi praticado. Formato ISO 8601 (YYYY-MM-DD). |
selo | pattern | ✅ | Número do selo. Padrão: ^[A-Z]{4}\d{5}$ (4 letras + 5 dígitos, ex.: RCPN00001). |
aleatorio | pattern | ✅ | Código aleatório do selo. Padrão: ^[A-Z]{3}$ (3 letras maiúsculas). |
livro | string | ⬜ | Identificação do livro onde o ato foi lavrado. Até 25 caracteres. |
folhaInicial | string | ⬜ | Folha inicial do ato no livro. Até 25 caracteres. |
folhaFinal | string | ⬜ | Folha final do ato no livro. Até 25 caracteres. |
numeroAto | string | ⬜ | Número sequencial do ato. Até 25 caracteres. |
localPratica | enum | ⬜ | SEDE ou FORA_SEDE. |
fichaMatricula | string | ⬜ | Número de ficha ou matrícula. Até 25 caracteres. |
numeroProtocolo | string | ⬜ | Número de protocolo de entrada. Até 25 caracteres. |
numeroRecibo | string | ⬜ | Número do recibo de pagamento. Até 25 caracteres. |
indAtoEletronico | boolean | ⬜ | Indica se o ato é eletrônico. Quando true, os campos de URL e hash do PDF tornam-se obrigatórios. |
urlPdfAto | uri | 🔶 | URL do PDF do ato. Obrigatório quando indAtoEletronico = true. |
hashPdfAto | string | 🔶 | Hash SHA-256 do PDF do ato. Obrigatório quando indAtoEletronico = true. |
urlDossie | uri | 🔶 | URL do dossiê eletrônico. Obrigatório quando indAtoEletronico = true. |
hashDossie | string | 🔶 | Hash SHA-256 do dossiê. Obrigatório quando indAtoEletronico = true. |
🔶 Condicionalmente obrigatório · ⬜ Opcional · ✅ Sempre obrigatório
Estrutura análoga ao AtoBase, mas para atos que não requerem selo.
Substitui selo + aleatorio pelo CCT (Código de Controle de Transmissão).
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
categoria | const | ✅ | Sempre "TRANSMISSAO_NAO_SELADA". Discriminador. |
dataPratica | date | ✅ | Data em que o ato foi praticado. Formato ISO 8601. |
cct | pattern | ✅ | Código de Controle de Transmissão. Identifica univocamente a transmissão não-selada na faixa autorizada para o serviço. |
localPratica | enum | ⬜ | SEDE ou FORA_SEDE. |
numeroProtocolo | string | ⬜ | Número de protocolo de entrada. Até 25 caracteres. |
numeroRecibo | string | ⬜ | Número do recibo. Até 25 caracteres. |
indAtoEletronico | boolean | ⬜ | Indica ato eletrônico — mesma regra do AtoBase. |
urlPdfAto, hashPdfAto, urlDossie, hashDossie | uri/string | 🔶 | Obrigatórios quando indAtoEletronico = true. |
O objeto emolumentos descreve a composição financeira do ato.
Cada ato selado (e alguns atos de transmissão) deve conter um objeto emolumentos
com o tipo de cobrança e, quando aplicável, os valores discriminados conforme a
Lei 6.281/2012 (RJ).
emolumentos — Campos| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
tipoCobranca | enum | ✅ | JUSTICA_GRATUITA, COM_COBRANCA, SEM_COBRANCA, NIHIL ou ATO_CONJUNTO. |
valorTotalEmolumentos | string | 🔶 | Total dos emolumentos no formato ^\d+\.\d{2}$. Obrigatório quando tipoCobranca = COM_COBRANCA. |
fetj | string | 🔶 | Fundo Estadual de Reaparalhamento da Justiça. |
fundperj | string | 🔶 | Fundo de Reaparalhamento da Polícia. |
funperj | string | 🔶 | Fundo de Reaparalhamento do Poder Executivo. |
funarpen | string | 🔶 | Fundo de Reaparalhamento da FUNARPEN. |
ressag | string | 🔶 | Ressarcimento de Agentes. |
valorDistribuidor | string | ⬜ | Valor destinado ao distribuidor. |
valorSeloEletronico | string | ⬜ | Valor do selo eletrônico (Lei 9.873/2022/RJ). |
valorIss | string | ⬜ | Imposto Sobre Serviços — quando aplicável. |
itens | array | 🔶 | Itens discriminados de emolumentos. Obrigatório quando tipoCobranca = COM_COBRANCA. Ver ItemEmolumento abaixo. |
hipossuficiente | boolean | ⬜ | Indica que o beneficiário é hipossuficiente. Recomendado em JUSTICA_GRATUITA. |
Quando tipoCobranca for JUSTICA_GRATUITA, SEM_COBRANCA ou
ATO_CONJUNTO, todos os valores monetários são suprimidos
(valorTotalEmolumentos, fetj, fundperj, funarpen, etc.)
e o array itens deve ser omitido. O objeto emolumentos fica reduzido
a { "tipoCobranca": "JUSTICA_GRATUITA", "hipossuficiente": true }.
Cada elemento do array itens representa um serviço emolumentado individual, referenciando a tabela da CGJ-RJ.
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
ano | integer | ⬜ | Ano fiscal da tabela utilizada. |
tabela | string | ✅ | Código da tabela de emolumentos CGJ-RJ (chave externa — valor preservado como string). |
item | string | ✅ | Código do item da tabela CGJ-RJ (chave externa). |
subItem | string | ✅ | Código do sub-item CGJ-RJ (chave externa). |
quantidade | integer | ✅ | Quantidade cobrada. Intervalo: 1 a 9.999. |
complemento | string | ⬜ | Texto complementar ao item. Até 100 caracteres. |
excecao | string | ⬜ | Código de exceção tarifária aplicável. Até 100 caracteres. |
Vínculo a outro ato, dentro ou fora da mesma remessa. Usado para relacionar atos de cancelamento ao ato original, complementos de emolumentos, atos conjuntos e afins.
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
tipoVinculo | enum | ✅ | ATO_REGISTRO, ATO_PRENOTACAO, ATO_CERTIDAO, ATO_COM_ERRO_MATERIAL, ATO_CONJUNTO, ATO_COMPLEMENTO_EMOLUMENTOS, ATO_PROCURACAO. |
codigoServico | string | ⬜ | Código do serviço onde está o ato vinculado (quando diferente do atual). |
selo | string | ⬜ | Selo do ato vinculado (quando ato selado). |
aleatorio | string | ⬜ | Código aleatório do selo vinculado. |
cct | string | ⬜ | CCT do ato vinculado (quando transmissão não-selada). |
tipoSelo | enum | ⬜ | FISICO ou ELETRONICO. |
dataPratica | date | ⬜ | Data de prática do ato vinculado. |
nomeServico | string | ⬜ | Nome do serviço onde está registrado o ato vinculado. |
estadoServico | UF | ⬜ | UF do serviço (2 caracteres). |
"emolumentos": { "tipoCobranca": "COM_COBRANCA", "valorTotalEmolumentos": "450.00", "fetj": "90.00", "fundperj": "22.50", "funperj": "22.50", "funarpen": "45.00", "ressag": "67.50", "valorSeloEletronico": "10.00", "itens": [ { "tabela": "8", "item": "1", "subItem": "A", "quantidade": 1, "complemento": "Escritura de contrato marítimo" } ] }
O objeto participantes agrupa as pessoas físicas e jurídicas envolvidas
no ato. Cada tipo de ato define quais papéis são permitidos (outorgante, outorgado, vendedor,
comprador, credor, devedor, etc.) — codificados pela Tabela 2 CGJ-RJ via campo tipo.
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
tipo | integer | ⬜ | Papel da pessoa no ato — Tabela 2 CGJ-RJ (chave externa, integer). |
nome | string | ✅ | Nome completo. Até 250 caracteres. |
sexo | enum | ⬜ | FEMININO, MASCULINO, NAO_BINARIE, IGNORADO (Provimento CNJ 73/2018). |
dataNascimento | date | ⬜ | Data de nascimento. ISO 8601. |
numeroIdentidade | string | 🔶 | Número do documento de identidade. Obrigatório quando cpf está ausente. |
orgaoEmissor | string | ⬜ | Órgão emissor do documento. Até 70 caracteres. |
cpf | pattern | 🔶 | CPF sem pontuação: ^\d{11}$. Obrigatório ou justificativa de ausência. |
justificativaAusenciaCpf | enum | 🔶 | NAO_POSSUI, NAO_DECLARADO ou ESTRANGEIRO. Exigido quando cpf ausente, junto com numeroIdentidade. |
nacionalidadeOnu | integer | ⬜ | Código ONU/M49 de nacionalidade (chave externa). |
estadoCivil | enum | ⬜ | SOLTEIRO, CASADO, VIUVO, SEPARADO_JUDICIALMENTE, DIVORCIADO, SEPARADO_CONSENSUALMENTE, DESQUITADO, IGNORADO. |
numeroPreTeste | string | ⬜ | Número de pré-teste (uso interno). Até 25 caracteres. |
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
tipo | integer | ⬜ | Papel da pessoa jurídica no ato — Tabela 2 CGJ-RJ. |
nome | string | ✅ | Razão social. Até 250 caracteres. |
cnpj | pattern | 🔶 | CNPJ sem pontuação: ^\d{14}$. Obrigatório ou justificativa de ausência. |
justificativaAusenciaCnpj | enum | 🔶 | NAO_POSSUI ou NAO_DECLARADO. Exigido quando cnpj ausente. |
nacionalidadeOnu | integer | ⬜ | Código ONU/M49 do país de origem da pessoa jurídica. |
"participantes": { "pessoasFisicas": [ { "tipo": 1, // Tabela 2 CGJ-RJ — ex.: Outorgante "nome": "João da Silva", "cpf": "12345678901", "sexo": "MASCULINO", "estadoCivil": "CASADO" } ], "pessoasJuridicas": [ { "tipo": 2, // ex.: Outorgado "nome": "Embarcações Ltda.", "cnpj": "12345678000195" } ] }
O objeto Embarcacao é a estrutura central desta atribuição.
Substitui o tipo tpEmbarcacao do XSD 3.00, incorporando a classificação completa
da Lei 7.652/1988 e da NORMAM-01 (Marinha do Brasil).
Aparece no array objetos de atos como LAVRATURA_ESCRITURA,
REGISTRO e AVERBACAO.
| Campo | Tipo | Obrig. | Descrição |
|---|---|---|---|
tipoEmbarcacao | enum | ✅ | 18 valores: LANCHA, JETSKY, NAVIO, PLATAFORMA, REBOCADOR, BARCA, BARCACA, BALSA, CAIAQUE, VELEIRO, CATAMARA, SAVEIRO, IATE, PESQUEIRO, BOTE, SUCATA, EMPURRADOR, OUTROS. |
descricao | string | 🔶 | Descrição livre do tipo de embarcação. Obrigatório quando tipoEmbarcacao = OUTROS. |
numeroInscricao | string | ⬜ | IRM — Inscrição no Registro Marítimo (Marinha do Brasil). |
numeroProvisao | string | ⬜ | Número de provisão emitida pela Marinha do Brasil. |
tipoRecolhimento | enum | ✅ | NORMAL, ISENTO ou FUTURO. Controla o fluxo de cobrança de emolumentos associados à embarcação. |
uf | UF | ⬜ | Unidade Federativa de registro (2 letras maiúsculas). |
codigoPaisOnu | integer | 🔶 | Código de país ONU/M49. Obrigatório quando a embarcação é estrangeira (país diferente do Brasil, código 76). |
impostoTransmissao | string | 🔶 | Valor do imposto de transmissão (ITCMD ou similar). Obrigatório em doações e heranças. |
cpfCnpjAdquirente | pattern | ⬜ | CPF (11 dígitos) ou CNPJ (14 dígitos) do adquirente da embarcação. |
cpfCnpjCedente | pattern | ⬜ | CPF (11 dígitos) ou CNPJ (14 dígitos) do cedente da embarcação. |
parteTransferida | string | ⬜ | Indicação da parte/fração transferida quando há transferência parcial de propriedade. |
valorBem | string | ⬜ | Valor declarado da embarcação. Formato monetário ^\d+\.\d{2}$. |
| Valor | Descrição |
|---|---|
LANCHA | Embarcação motorizada de médio porte |
JETSKY | Moto aquática (personal watercraft) |
NAVIO | Embarcação de grande porte para transporte marítimo |
PLATAFORMA | Estrutura flutuante para extração de petróleo ou gás |
REBOCADOR | Embarcação para reboque de outras embarcações |
EMPURRADOR | Embarcação propulsora de barcaças fluviais |
PESQUEIRO | Embarcação destinada à pesca comercial |
IATE | Embarcação de recreio de médio/grande porte |
VELEIRO | Embarcação movida a vela |
CATAMARA | Embarcação de dois cascos paralelos |
| Valor | Descrição |
|---|---|
BARCA | Embarcação para transporte de passageiros em travessias |
BARCACA | Embarcação de carga sem propulsão própria |
BALSA | Estrutura flutuante para travessia de veículos |
CAIAQUE | Embarcação individual movida a remo |
SAVEIRO | Embarcação típica nordestina para pesca artesanal |
BOTE | Pequena embarcação movida a remos ou motor de popa |
SUCATA | Embarcação desativada/desmontada para fins de registro |
OUTROS | Tipos não cobertos — requer campo descricao |
{
"tipoEmbarcacao": "LANCHA",
"numeroInscricao": "RJ-1234-A", // IRM — Inscrição no Registro Marítimo
"tipoRecolhimento": "NORMAL",
"uf": "RJ",
"cpfCnpjAdquirente": "12345678901", // 11 dígitos = CPF
"valorBem": "250000.00"
}
// Embarcação estrangeira (tipoEmbarcacao = OUTROS obriga descricao):
{
"tipoEmbarcacao": "OUTROS",
"descricao": "Hovercraft anfíbio", // obrigatório quando OUTROS
"codigoPaisOnu": 840, // EUA — obrigatório para estrangeiras
"tipoRecolhimento": "NORMAL"
}
As regras abaixo são invariantes de negócio não expressáveis diretamente no
JSON Schema draft-07 (que não suporta if/then/else condicionais em todos os casos
necessários). A validação dessas regras é responsabilidade do código do validador (_build/)
e da plataforma receptora CGJ-RJ.
Quando indAtoEletronico = true, os quatro campos
urlPdfAto, hashPdfAto, urlDossie e hashDossie
tornam-se obrigatórios. Se qualquer um estiver ausente, a remessa deve ser rejeitada.
Em LAVRATURA_ESCRITURA, quando
indValorDeclarado = true, o campo valorDeclarado é obrigatório
e deve ser um valor monetário válido (^\d+\.\d{2}$).
Em REVOGACAO_PROCURACAO, quando
procuracaoOriginal.indOutorgadoAusente = true, o campo
procuracaoOriginal.numeroNotificacao é obrigatório (notificação formal ao outorgado).
Para tipoCobranca ∈ {JUSTICA_GRATUITA, SEM_COBRANCA, ATO_CONJUNTO},
todos os campos monetários e o array itens devem ser omitidos
do JSON — não enviados como null ou zero.
Quando tipoEmbarcacao = "OUTROS",
o campo descricao é obrigatório e deve conter uma descrição
significativa do tipo de embarcação (mínimo recomendado: 5 caracteres).
Quando a embarcação está registrada fora do Brasil
(país diferente do código ONU 76), o campo codigoPaisOnu é obrigatório.
Para embarcações nacionais, o campo deve ser omitido.
Quando cpf está ausente em PessoaFisica,
tanto justificativaAusenciaCpf quanto numeroIdentidade tornam-se
obrigatórios simultaneamente. Um sem o outro é inválido.
Quando cnpj está ausente em PessoaJuridica,
justificativaAusenciaCnpj é obrigatório
(NAO_POSSUI ou NAO_DECLARADO).
Em atos conjuntos (tipoVinculo ATO_CONJUNTO),
apenas o ato principal cota emolumentos. Os demais atos devem ter
tipoCobranca = ATO_CONJUNTO, que implica supressão de valores monetários.
Em DESISTENCIA, quando
motivo = "OUTROS", o campo descricao é obrigatório
para explicar o motivo da desistência não previsto nos valores fixos.
Em escrituras que envolvam transferência gratuita de domínio
(doação, herança), o campo impostoTransmissao na estrutura de embarcação
é obrigatório — mesmo que o valor seja zero ("0.00").
O mesmo selo (ou cct) não pode aparecer
em dois atos distintos da mesma remessa. A validação cruzada deve
verificar unicidade antes da transmissão — não é coberta pelo JSON Schema.
O diretório _build/ contém um harness de validação multi-stack que
verifica exemplo.json contra layout_schema.json em quatro ambientes distintos.
Todos devem retornar APROVADO antes de qualquer alteração ao schema ser considerada estável.
Entry point local. Executa ambas as validações em sequência e exibe o resultado consolidado.
# Executar a partir de _build/ .\valida.ps1 # Saída esperada: Status: APROVADO Atos no exemplo: 21 Tipos de ato cobertos: 21
O script Python (valida.py) usa jsonschema
(draft-07). Requer: pip install jsonschema.
Validador para o ambiente legado do portal WebForms. Usa Newtonsoft.Json.Schema.
REM Compilar e executar: msbuild valida.vbproj .\bin\Release\valida.exe REM Retorna código de saída 0 = APROVADO, 1 = FALHOU
Arquivo de projeto: valida.vbproj. Target framework: net481.
Validador moderno para integração com o SELO2 Desktop e SGF 2026. Usa JsonSchema.Net (Greenberg).
// Compilar e executar: dotnet run --project ValidaLayout.NET10.csproj // Saída JSON com lista de erros (vazia = APROVADO): { "status": "APROVADO", "erros": [] }
Arquivo de projeto: ValidaLayout.NET10.csproj. Target: net10.0.
O arquivo _build/validacao_schema.txt registra o resultado da última validação estável.
| Métrica | Valor |
|---|---|
| Atos no exemplo | 21 |
| Tipos cobertos | 21/21 |
| Status | ✅ APROVADO |
| Definições no schema | 41 ($defs) |
| JSON Schema version | draft-07 |
| Encoding | UTF-8 sem BOM |
_build/_build/ ├── valida.ps1 # Entry point — executa Python + exibe status ├── valida.py # Validador Python (jsonschema draft-07) ├── valida.vb # Validador VB.NET Framework 4.8.1 ├── valida.vbproj # Projeto Visual Basic ├── ValidaLayout.NET10.cs # Validador C# .NET 10 (JsonSchema.Net) ├── ValidaLayout.NET10.csproj ├── validacao_schema.txt # Resultado da última validação do schema ├── validacao_exemplo.txt # Resultado da última validação do exemplo └── README.md # Instruções de execução dos validadores
NAO_BINARIElayout_schema.json — Schema monolítico v3.0.0 (81 KB, 41 $defs)exemplo.json — Remessa de exemplo com todos os 21 tipos de atolayout.md — Documentação técnica completa em Markdown