Layout JSON — Registro de Imóveis v3.0.0

Documentação Técnica do Layout SFE para Atos de Registro de Imóveis · Serviço 734 · SELO2 · 2026

Introdução

O Layout JSON Registro de Imóveis v3.0.0 define o contrato de dados para remessa eletrônica de atos praticados por Serviços de Registro de Imóveis do Estado do Rio de Janeiro à CGJ-RJ. Sucede o formato XML/XSD v2.01, adotando JSON Schema draft-07 como padrão de validação — em linha com todos os demais layouts da plataforma SELO2.

Versão & Status

v3.0.0 — vigente desde 2026-05-07. Schema monolítico em layout_schema.json (110 KB), com 69 definições reutilizáveis via $ref interno e 27 tipos de ato discriminados por oneOf.

Domínio

Atos extrajudiciais de Registro de Imóveis no RJ — registros, averbações, certidões, processos administrativos (PAF, PR, PEU), IET de mercado imobiliário, apostilamentos e transmissões não-seladas. Código de serviço CGJ-RJ: 734.

Escala

Máximo de 5.000 atos por remessa. Limite de arquivo: 32 MB. Encoding: UTF-8 sem BOM. O exemplo de referência contém 13 atos cobrindo 11 dos 27 tipos.

Princípios de Design
  • Tipagem forte: numéricos com minimum/maximum; monetários como string padrão ^\d+\.\d{2}$
  • Booleanos nativos: true/false — nunca "S"/"N"
  • Discriminação via oneOf: cada ato tem tipoAto (const) + dadosAto validado
  • additionalProperties: false em todos os objetos
  • Enums humanizados: valores autoexplicativos, sem prefixos opacos
  • Chaves externas preservadas: tabela, item, subItem, tipoRegistro, tipoAverbacao, tipoCertidao mantêm forma original
Arquivos do Layout
ArquivoDescrição
layout_schema.jsonJSON Schema draft-07 (110 KB, 69 $defs)
exemplo.jsonRemessa de referência com 13 atos
layout.mdDocumentação técnica completa (1.318 linhas)
_build/valida.ps1Entry point PowerShell de validação
_build/valida.pyEngine Python (jsonschema draft-07)
_build/valida.vbValidador VB.NET Framework 4.8.1
_build/ValidaLayout.NET10.csValidador C# .NET 10

Envelope Raiz

Todo arquivo de remessa possui exatamente um objeto raiz com duas chaves: $schema (URI da versão) e remessa (envelope de dados). O array atos é o coração da remessa — cada elemento é discriminado pelo par tipoAto + dadosAto.

Estrutura Raiz
{
  "$schema": "https://layouts.tjrj.jus.br/sfe/ri/v3.0.0/layout_schema.json",
  "remessa": {
    "id": "8f2a16e2-3c4b-4a91-9cd5-2e7d4b1f0a83",  // UUID v4
    "versaoLayout": "3.0.0",
    "codigoServico": "734",              // RI Rio de Janeiro
    "tipoOperacao": "INCLUSAO",          // ou "ALTERACAO"
    "ambiente": "PRODUCAO",             // ou "HOMOLOGACAO"
    "software": { "nome": "FUNARPEN-SGF", "versao": "2026.1.0" },
    "dataGeracao": "2026-05-07T13:21:45-03:00",
    "atos": [ /* 1 a 5.000 atos */ ],
    "justificativasAusencia": [ /* opcional — datas sem ato praticado */ ]
  }
}

Campos do Envelope

Campo Tipo Obrig. Descrição
idstringIdentificador único da remessa. UUID v4 (RFC 4122), gerado pelo software transmissor.
versaoLayoutstringVersão do layout. Valor fixo: "3.0.0".
codigoServicostringCódigo do serviço na CGJ-RJ. Para Registro de Imóveis RJ: "734".
tipoOperacaoenumINCLUSAO para atos novos; ALTERACAO para retificações de remessas já transmitidas.
ambienteenumHOMOLOGACAO para testes; PRODUCAO para transmissão real.
softwareobjectIdentificação do software transmissor: nome (string) e versao (string).
dataGeracaodate-timeMomento de geração do arquivo. ISO 8601 com offset de fuso horário obrigatório (ex.: -03:00).
atosarrayArray de atos. Mínimo: 1 item. Máximo: 5.000. Cada item discriminado por tipoAto (const) + dadosAto.
justificativasAusenciaarrayDatas sem atos praticados. Cada item contém data (date) e motivo (string).

Padrão de Nomenclatura de Arquivo

O nome do arquivo de remessa segue o padrão:

SERV_AAAAMMDD_RI_I_HHMMSS.json
SegmentoDescriçãoExemplo
SERVCódigo do serviço CGJ-RJ734
AAAAMMDDData de geração (ano-mês-dia)20260507
RIIdentificador da atribuição (Registro de Imóveis)RI
I ou ATipo de operação: I = Inclusão, A = AlteraçãoI
HHMMSSHora de geração132145

Exemplo completo: 734_20260507_RI_I_132145.json

Tipos de Ato

O layout cobre 27 tipos de ato organizados em três categorias. A categoria determina qual estrutura base o dadosAto herda e quais campos são obrigatórios ou permitidos.

ATO_SELADO — 17 tipos

Requerem selo físico ou eletrônico. Herdam de AtoBase.

tipoAto Descrição Base Legal
CERTIDAO_PRENOTACAOCertidão de prenotação — confirma a entrada do título no protocolo do RI. Informa espécie do título e se lavrado no Rio de Janeiro.Lei 6.015/73 art. 182
REGISTRORegistro de título imobiliário. Campo tipoRegistro (Tabela CGJ-RJ). Suporta imóveis urbanos e rurais, participantes e emolumentos discriminados.Lei 6.015/73 art. 167-I
AVERBACAOAverbação em matrícula existente. Campo tipoAverbacao (Tabela CGJ-RJ) e descrição de conteúdo econômico (4 valores enum).Lei 6.015/73 art. 167-II
CERTIDAOCertidão de registro imobiliário. Campo tipoCertidao (Tabela CGJ-RJ) e resultado da pesquisa.Lei 6.015/73 art. 19
CERTIDAO_GENERICACertidão de conteúdo genérico não coberto pelos tipos específicos.Lei 6.015/73
INTIMACAO_PCLIntimação no Processo de Consolidação de Alienação Fiduciária. Notifica o devedor fiduciante sobre a mora.Lei 9.514/97 art. 26
INTIMACAO_PAFIntimação no Processo Administrativo de Financiamento (PAF). Selado.Lei 9.514/97
EDITAL_PAFEdital publicado no âmbito do PAF quando não localizado o devedor.Lei 9.514/97 art. 26 §4
INTIMACAO_PRIntimação no Processo de Retificação (PR) de registro imobiliário.Lei 6.015/73 art. 213
EDITAL_PREdital do Processo de Retificação quando não localizados interessados.Lei 6.015/73 art. 213 §4
AVERBACAO_PRAverbação resultante do Processo de Retificação concluído.Lei 6.015/73 art. 213 §10
PROCESSO_ADMINISTRATIVOAtos de processo administrativo geral (IET, usucapião, etc.) que requerem selo.Prov. CNJ 65/2017
INTIMACAO_NOTIFICACAO_PEUIntimação/notificação no Processo de Extinção de Usufruto.Lei 6.015/73
EDITAL_PEUEdital no Processo de Extinção de Usufruto.Lei 6.015/73
IET_MERCADO_IMOBILIARIOInformação Estatística de Transação — estatística de mercado imobiliário. Ato selado específico para dados de transações.Prov. CGJ 36/2022
APOSTILAMENTOApostila da Convenção da Haia em documentos imobiliários. Informa país de destino.Conv. Haia 1961
VISTOVisto em instrumento particular ou procuração apresentada ao RI.Lei 8.935/94

TRANSMISSAO_NAO_SELADA — 9 tipos

Não requerem selo. Herdam de TransmissaoBase — utilizam cct (Código de Controle de Transmissão) em vez de selo/aleatorio.

tipoAto Descrição
CANCELAMENTO_PRENOTACAOCancelamento de prenotação. Vincula ao ato de prenotação original via atosVinculados.
NOTA_DISTRIBUICAONota de distribuição de título — registra a chegada e encaminhamento do título ao RI competente.
RECEBIMENTO_PRESTACAORecebimento de prestação de contrato de loteamento (Lei 6.766/79). Não gera registro — só registra o recebimento.
PURGA_PAFPurga da mora no Processo de Consolidação de Alienação Fiduciária — pagamento pelo devedor após intimação.
APRESENTACAO_TITULO_EXAMEApresentação de título para exame de qualificação. Não gera registro — registra apenas a apresentação.
ENCERRAMENTO_LIVROEncerramento de livro de registro. Informa número do livro e tipo.
FOLHA_ADICIONAL_COMPLEMENTOFolha adicional a ato já lavrado — complemento de conteúdo não-selado.
INFORMACAO_VERBALRegistro de informação verbal prestada. Não gera cobrança de emolumentos selados.
COMPLEMENTO_EMOLUMENTOSComplementação de emolumentos de ato anterior. Referencia o ato original via atosVinculados.

OPERACAO — 1 tipo

Categoria especial para operações administrativas. Não herda de AtoBase nem TransmissaoBase.

tipoAtoDescrição
ALTERACAO_EMOLUMENTOSAltera a composição de emolumentos de um ato já registrado. Campos: categoria, selo (ou cct) e novo objeto emolumentos. Não possui dataPratica.

Estruturas Base

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, acrescentando seus campos específicos.

AtoBase — Base para ATO_SELADO (17 tipos)
AtoBase // campos comuns a todos os atos selados
CampoTipoObrig.Descrição
categoriaconstSempre "ATO_SELADO". Discriminador do oneOf.
dataPraticadateData em que o ato foi praticado. ISO 8601 (YYYY-MM-DD).
selopatternNúmero do selo. Padrão: ^[A-Z]{4}\d{5}$ (4 letras + 5 dígitos, ex.: EAAC05003).
aleatoriopatternCódigo aleatório do selo. Padrão: ^[A-Z]{3}$ (3 letras maiúsculas, ex.: YHN).
livrostringIdentificação do livro. Até 25 caracteres.
folhaInicialstringFolha inicial do ato. Até 25 caracteres.
folhaFinalstringFolha final do ato. Até 25 caracteres.
numeroAtostringNúmero sequencial do ato. Até 25 caracteres.
numeroMatriculastringNúmero da matrícula afetada pelo ato. Até 25 caracteres.
localPraticaenumSEDE ou FORA_SEDE.
numeroProtocolostringNúmero de protocolo de entrada. Até 25 caracteres.
numeroRecibostringNúmero do recibo de pagamento. Até 25 caracteres.
indAtoEletronicobooleanIndica ato eletrônico. Quando true, URL e hash do PDF tornam-se obrigatórios.
urlPdfAtouri🔶URL do PDF do ato. Obrigatório quando indAtoEletronico = true.
hashPdfAtostring🔶Hash SHA-256 do PDF. Obrigatório quando indAtoEletronico = true.
urlDossieuri🔶URL do dossiê eletrônico. Obrigatório quando indAtoEletronico = true.
hashDossiestring🔶Hash SHA-256 do dossiê. Obrigatório quando indAtoEletronico = true.

🔶 Condicionalmente obrigatório  ·  ⬜ Opcional  ·  ✅ Sempre obrigatório

TransmissaoBase — Base para TRANSMISSAO_NAO_SELADA (9 tipos)
TransmissaoBase // usa cct no lugar de selo + aleatorio

Análoga ao AtoBase, mas para atos que não requerem selo. Substitui selo + aleatorio pelo CCT.

CampoTipoObrig.Descrição
categoriaconstSempre "TRANSMISSAO_NAO_SELADA". Discriminador.
dataPraticadateData em que o ato foi praticado. ISO 8601.
cctstringCódigo de Controle de Transmissão. Identifica univocamente a transmissão não-selada.
localPraticaenumSEDE ou FORA_SEDE.
numeroProtocolostringNúmero de protocolo. Até 25 caracteres.
numeroRecibostringNúmero do recibo. Até 25 caracteres.
indAtoEletronicobooleanIndica ato eletrônico — mesma regra do AtoBase.
urlPdfAto, hashPdfAto, urlDossie, hashDossieuri/string🔶Obrigatórios quando indAtoEletronico = true.

Imóveis

O array imoveis contém as propriedades envolvidas no ato, subdivididas em imóveis urbanos e imóveis rurais. Presente principalmente nos atos de REGISTRO e AVERBACAO. Cada imóvel herda de ImovelBase (campos comuns) e adiciona seus atributos específicos.

ImovelUrbano
CampoTipoObrig.Descrição
tipoConstrucaoenumTERRENO ou EDIFICACAO.
tipoRecolhimentoenumNORMAL, ISENTO ou FUTURO.
numeroMatriculastringNúmero da matrícula no RI. Até 25 caracteres.
inscricaoMunicipalstringInscrição municipal (IPTU). Até 50 caracteres.
areaTotalstringÁrea total em metros quadrados. Formato monetário ^\d+\.\d{2}$.
valorDeclaradostringValor declarado do imóvel. Formato monetário.
moedaenumMoeda do valor declarado: REAL, CRUZEIRO, CRUZADO, CRUZEIRO_NOVO, CRUZADO_NOVO, CRUZEIRO_REAL, MIL_REIS.
tipoImpostoenumITBI (transmissões onerosas) ou ITD (doações/heranças).
valorImpostostringValor do imposto de transmissão. Formato monetário.
cpfCnpjAdquirentepatternCPF (11 dígitos) ou CNPJ (14 dígitos) do adquirente.
cpfCnpjCedentepatternCPF (11 dígitos) ou CNPJ (14 dígitos) do cedente.
parteTransferidastringFração ou percentual transferido (ex.: "1/2", "100%").
codigoMunicipiointegerCódigo do município — Tabela 9 CGJ-RJ (chave externa).
ufstringUnidade Federativa (2 letras maiúsculas).
ImovelRural

Herda todos os campos de ImovelUrbano e adiciona campos específicos de imóvel rural conforme legislação agrária.

CampoTipoObrig.Descrição
denominacaostringNome/denominação da propriedade rural. Até 250 caracteres.
nirfstringNúmero do Imóvel na Receita Federal (NIRF/INCRA). Até 25 caracteres.
carstringCadastro Ambiental Rural (CAR). Até 100 caracteres.
areaTotalstringÁrea total da propriedade. Formato numérico (^\d+\.\d{2}$).
unidadeMedidaAreaenumUnidade da área: METRO, KILOMETRO, HECTARE, ACRE, ARE, ALQUEIRE, CENTIARES, LEGUA.
codigoMunicipiointegerMunicípio de localização — Tabela 9 CGJ-RJ.
ufstringUF de localização (2 letras maiúsculas).
Exemplo — Imóvel Urbano em REGISTRO
"imoveis": {
  "imoveisUrbanos": [
    {
      "tipoConstrucao": "EDIFICACAO",
      "tipoRecolhimento": "NORMAL",
      "numeroMatricula": "12345",
      "inscricaoMunicipal": "0271040-4",
      "areaTotal": "120.00",
      "valorDeclarado": "450000.00",
      "moeda": "REAL",
      "tipoImposto": "ITBI",
      "valorImposto": "9000.00",
      "cpfCnpjAdquirente": "12345678901",
      "uf": "RJ"
    }
  ]
}

Emolumentos

O objeto emolumentos descreve a composição financeira do ato. O RI possui 7 tipos de cobrança — dois a mais que as demais atribuições (COBRANCA_CONDICIONADA, PAGO_NA_PRENOTACAO e PRIMEIRA_AQUISICAO são exclusivos do RI), refletindo especificidades da legislação imobiliária.

Objeto emolumentos — Campos
CampoTipoObrig.Descrição
tipoCobrancaenumVer tabela de tipos abaixo (7 valores).
valorTotalEmolumentosstring🔶Total dos emolumentos. Padrão: ^\d+\.\d{2}$. Obrigatório quando COM_COBRANCA.
fetjstring🔶Fundo Estadual de Reaparalhamento da Justiça.
fundperjstring🔶Fundo de Reaparalhamento da Polícia.
funperjstring🔶Fundo de Reaparalhamento do Poder Executivo.
funarpenstring🔶Fundo de Reaparalhamento da FUNARPEN.
ressagstring🔶Ressarcimento de Agentes.
valorDistribuidorstringValor destinado ao distribuidor.
valorSeloEletronicostringValor do selo eletrônico (Lei 9.873/2022/RJ).
valorIssstringImposto Sobre Serviços, quando aplicável.
itensarray🔶Itens discriminados. Obrigatório quando tipoCobranca = COM_COBRANCA.
hipossuficientebooleanBeneficiário hipossuficiente. Recomendado em JUSTICA_GRATUITA.

Tipos de Cobrança — 7 Valores (exclusivos do RI)

tipoCobrancaQuando usarValores monetários
COM_COBRANCAAto normal com cobrança integral de emolumentos.✅ Obrigatórios
JUSTICA_GRATUITABeneficiário de assistência judiciária gratuita. Emolumentos isentos.❌ Suprimidos
SEM_COBRANCAAto sem cobrança por dispositivo legal específico (ex.: habitação popular).❌ Suprimidos
NIHILAto que não enseja cobrança de emolumentos (ex.: certidão para fins previdenciários).❌ Suprimidos
COBRANCA_CONDICIONADACobrança condicionada ao implemento de condição futura (ex.: financiamento com suspensão de pagamento).⬜ Opcionais
PAGO_NA_PRENOTACAOEmolumentos já recolhidos no ato de prenotação — não cobra novamente no registro.❌ Suprimidos
PRIMEIRA_AQUISICAOPrimeira aquisição de imóvel residencial pelo adquirente — redução legal de emolumentos (Lei 6.015/73 art. 290).🔶 Valores reduzidos

ItemEmolumento

CampoTipoObrig.Descrição
anointegerAno fiscal da tabela utilizada.
tabelastringCódigo da tabela de emolumentos CGJ-RJ (chave externa).
itemstringCódigo do item da tabela (chave externa).
subItemstringCódigo do sub-item (chave externa).
quantidadeintegerQuantidade cobrada. Intervalo: 1 a 9.999.
complementostringTexto complementar ao item. Até 100 caracteres.
excecaostringCódigo de exceção tarifária. Até 100 caracteres.

AtoVinculado

Vínculo a outro ato, dentro ou fora da mesma remessa. O RI suporta 9 tipos de vínculo.

CampoTipoObrig.Descrição
tipoVinculoenumATO_ORIGINAL, ATO_REFERENCIA, ATO_PRENOTACAO, ATO_REGISTRO, ATO_NOTAS, ATO_CERTIDAO, ATO_COM_ERRO_MATERIAL, ATO_COMPLEMENTO_EMOLUMENTOS, ATO_PROCESSO_USUCAPIAO_EXTRAJUDICIAL.
codigoServicostringCódigo do serviço onde o ato vinculado está registrado.
selostringSelo do ato vinculado (quando ato selado).
aleatoriostringCódigo aleatório do selo vinculado.
cctstringCCT do ato vinculado (quando transmissão não-selada).
tipoSeloenumFISICO ou ELETRONICO.
dataPraticadateData de prática do ato vinculado. ISO 8601.
nomeServicostringNome do serviço onde está registrado o ato vinculado.
estadoServicostringUF do serviço (2 caracteres).

Participantes

O objeto participantes agrupa pessoas físicas e jurídicas envolvidas no ato. O papel de cada pessoa é codificado pelo campo tipo — integer da Tabela 2 CGJ-RJ (chave externa). Aparece em atos como REGISTRO, AVERBACAO e processos administrativos.

PessoaFísica
CampoTipoObrig.Descrição
tipointegerPapel da pessoa no ato — Tabela 2 CGJ-RJ (chave externa, integer).
nomestringNome completo. Até 250 caracteres.
sexoenumFEMININO, MASCULINO, NAO_BINARIE, IGNORADO (Provimento CNJ 73/2018).
dataNascimentodateData de nascimento. ISO 8601.
numeroIdentidadestring🔶Número do documento. Obrigatório quando cpf ausente.
orgaoEmissorstringÓrgão emissor. Até 70 caracteres.
cpfpattern🔶^\d{11}$. Obrigatório ou justificativa de ausência.
justificativaAusenciaCpfenum🔶NAO_POSSUI, NAO_DECLARADO ou ESTRANGEIRO. Exigido com numeroIdentidade quando cpf ausente.
nacionalidadeOnuintegerCódigo ONU/M49 de nacionalidade (chave externa).
estadoCivilenumSOLTEIRO, CASADO, VIUVO, SEPARADO_JUDICIALMENTE, DIVORCIADO, SEPARADO_CONSENSUALMENTE, DESQUITADO, IGNORADO.
PessoaJurídica
CampoTipoObrig.Descrição
tipointegerPapel no ato — Tabela 2 CGJ-RJ.
nomestringRazão social. Até 250 caracteres.
cnpjpattern🔶^\d{14}$. Obrigatório ou justificativa de ausência.
justificativaAusenciaCnpjenum🔶NAO_POSSUI ou NAO_DECLARADO.
nacionalidadeOnuintegerCódigo ONU/M49 do país de origem.

Tabelas de Domínio

O layout define 16 tabelas de domínio como enums no JSON Schema. As tabelas abaixo listam todos os valores permitidos para os campos de enumeração mais relevantes.

EspecieTitulo — 13 valores
ValorDescrição
ESCRITURA_PUBLICAEscritura lavrada em tabelionato de notas
ESCRITO_PARTICULAR_AUTORIZADO_LEIInstrumento particular autorizado por lei específica
ATO_AUTENTICO_PAIS_ESTRANGEIROAto autêntico originado de país estrangeiro
CARTA_SENTENCACarta de sentença judicial
FORMAL_PARTILHAFormal de partilha de inventário
CERTIDAO_MANDATO_PROCESSOCertidão de mandado judicial
AVERBAR_ZONA_URBANAAverbação de imóvel em zona urbana
DOCUMENTO_EXCLUSIVO_AVERBACAODocumento próprio apenas para averbação
INTIMACAO_PROMISSARIO_COMPRADOR_LOTEAMENTOIntimação do promissário comprador em loteamento (Lei 6.766/79)
RECEBIMENTO_PRESTACAO_LOTEAMENTORecibo de prestação de loteamento
PROCESSO_CONSOLIDACAO_ALIENACAO_FIDUCIARIAProcesso de consolidação da propriedade fiduciária (Lei 9.514/97)
PROCESSO_RETIFICACAOProcesso de retificação de registro (Lei 6.015/73 art. 213)
REGULARIZACAO_FUNDIARIARegularização fundiária urbana ou rural
Outros Enums Relevantes

DescricaoAverbacao — 4 valores

COM_CONTEUDO_ECONOMICOAverbação com impacto financeiro declarado
SEM_CONTEUDO_ECONOMICOAverbação sem valor econômico declarado
DESMEMBRAMENTODesmembramento de matrícula-mãe em sub-matrículas
REMEMBRAMENTOFusão de matrículas em uma só

ResultadoPesquisa — 4 valores

POSITIVOEncontrou registros com ônus
NEGATIVONão encontrou registros
NEGATIVO_COM_EFEITO_POSITIVONegativo com ressalva (efeito positivo)
INDETERMINADONão foi possível determinar

TipoComunicacao — 2 valores

INTIMACAOIntimação formal com prazo
NOTIFICACAONotificação informativa
MoedaBem — 7 valores históricos
ValorPeríodo de vigência
MIL_REISAté 1942
CRUZEIRO1942–1967 e 1990–1993
CRUZEIRO_NOVO1967–1970
CRUZADO1986–1989
CRUZADO_NOVO1989–1990
CRUZEIRO_REAL1993–1994
REAL1994 – atual

Permite expressar o valor histórico de transações antigas ao averbá-las.

UnidadeMedidaArea — 8 valores
ValorEquivalência (referência)
METROm² — padrão urbano
KILOMETROkm² — grandes propriedades
HECTARE10.000 m²
ACRE4.046,86 m²
ARE100 m²
ALQUEIRE24.200 m² (SP) / 48.400 m² (MG/GO)
CENTIARES1 m²
LEGUA~4,8 km (medição histórica)

Regras de Negócio

Invariantes de negócio não expressáveis diretamente no JSON Schema draft-07. A validação dessas regras é responsabilidade do código dos validadores (_build/) e da plataforma receptora CGJ-RJ.

1
Atos Eletrônicos — URL e Hash Obrigatórios

Quando indAtoEletronico = true, os quatro campos urlPdfAto, hashPdfAto, urlDossie e hashDossie tornam-se obrigatórios. Ausência de qualquer um deles invalida o ato.

2
Supressão de Emolumentos

Para tipoCobranca ∈ {JUSTICA_GRATUITA, SEM_COBRANCA, NIHIL, PAGO_NA_PRENOTACAO}, todos os campos monetários e o array itens devem ser omitidos do JSON — não enviados como null ou zero.

3
Pessoa Física sem CPF

Quando cpf ausente, ambos justificativaAusenciaCpf e numeroIdentidade tornam-se obrigatórios simultaneamente. Um sem o outro é inválido.

4
Pessoa Jurídica sem CNPJ

Quando cnpj ausente, justificativaAusenciaCnpj é obrigatório (NAO_POSSUI ou NAO_DECLARADO).

5
Imposto de Transmissão — ITBI/ITD

Quando tipoImposto está presente em um imóvel, o campo valorImposto é obrigatório — mesmo que o valor seja "0.00" (isenção documentada). ITBI aplica-se a transmissões onerosas; ITD a doações e heranças.

6
CANCELAMENTO_PRENOTACAO — Vínculo Obrigatório

O ato CANCELAMENTO_PRENOTACAO deve sempre conter pelo menos um item em atosVinculados com tipoVinculo = ATO_PRENOTACAO, referenciando o ato de prenotação original que está sendo cancelado.

7
PURGA_PAF — Vínculo ao PCL

O ato PURGA_PAF deve referenciar o ato de intimação (INTIMACAO_PCL) original que disparou o processo de consolidação. O vínculo usa tipoVinculo = ATO_ORIGINAL.

8
Unicidade de Selo/CCT na Remessa

O mesmo selo (ou cct) não pode aparecer em dois atos distintos dentro da mesma remessa. Validação cruzada deve ser feita antes da transmissão — o JSON Schema não cobre esta regra.

9
PRIMEIRA_AQUISICAO — Restrição de Uso

tipoCobranca = PRIMEIRA_AQUISICAO aplica-se exclusivamente a atos de REGISTRO de imóvel residencial. Uso indevido em outros tipos de ato deve ser rejeitado pela plataforma receptora.

10
Moeda Histórica — Consistência

Quando o campo moeda é diferente de REAL, indica que o valor declarado refere-se a uma transação histórica. A data do ato deve ser compatível com o período de vigência da moeda informada.

Validação

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.

PowerShell + Python

Entry point local. Detecta Python/Python3 no PATH e executa valida.py.

# Executar a partir do diretório raiz do layout
.\_build\valida.ps1

# Ou diretamente com Python:
python _build/valida.py layout_schema.json exemplo.json

# Saída esperada:
Status: APROVADO
Atos no exemplo: 13
Tipos de ato cobertos: 11

Requer: pip install jsonschema. Engine: Draft7Validator.

.NET Framework 4.8.1 — VB.NET

Validador para o ambiente legado do portal WebForms. Usa Newtonsoft.Json.Schema v4.*.

REM Compilar:
msbuild _build\valida.vbproj

REM Executar:
ValidaLayoutRI.exe layout_schema.json exemplo.json

REM Exit code: 0 = APROVADO, 1 = FALHOU

AssemblyName: ValidaLayoutRI. TargetFramework: net481.

.NET 10 — C# Moderno

Validador para integração com o SELO2 Desktop e SGF 2026. Usa JsonSchema.Net v7.*.

// Compilar e executar:
dotnet run --project _build -- layout_schema.json exemplo.json

// Saída JSON:
{ "status": "APROVADO", "erros": [] }

AssemblyName: ValidaLayoutRI.NET10. Nullable: enable. ImplicitUsings: enable.

Status de Validação Atual
MétricaValor
Atos no exemplo13
Tipos cobertos no exemplo11 / 27
Status schema✅ APROVADO
Status exemplo✅ APROVADO
Definições no schema69 ($defs)
Tipos de ato (oneOf)27
JSON Schema versiondraft-07
Tamanho do schema110 KB
EncodingUTF-8 sem BOM
Estrutura do Diretório _build/
_build/
├── valida.ps1                  # Entry point — detecta Python, invoca valida.py
├── valida.py                   # Engine Python (Draft7Validator, 93 linhas)
├── valida.vb                   # Validador VB.NET Framework 4.8.1
├── valida.vbproj               # Projeto Visual Basic (net481)
├── ValidaLayout.NET10.cs       # Validador C# .NET 10 (top-level statements)
├── ValidaLayout.NET10.csproj   # Projeto .NET 10 (JsonSchema.Net v7)
├── validacao_schema.txt        # Resultado da última validação do schema
└── validacao_exemplo.txt       # Resultado da última validação do exemplo

Referências

Bases Legais
  • Lei 6.015/1973 — Lei dos Registros Públicos
  • Lei 6.766/1979 — Parcelamento do solo urbano (loteamentos)
  • Lei 8.935/1994 — Lei dos Notários e Registradores
  • Lei 9.514/1997 — Alienação fiduciária de bens imóveis
  • Lei 11.441/2007 — Inventário extrajudicial
  • Lei 6.281/2012 (RJ) — Emolumentos extrajudiciais
  • Lei 9.873/2022 (RJ) — Selo de Fiscalização Eletrônico
  • Provimento CNJ 65/2017 — Usucapião extrajudicial
  • Provimento CNJ 73/2018 — Categoria NAO_BINARIE
  • Provimento CGJ 36/2022 RJ — Certidão eletrônica / IET
  • Convenção da Haia (1961) — Apostilamento
Padrões e Documentação Técnica
  • JSON Schema draft-07 — json-schema.org/draft-07
  • Manual MAS CGJ-RJ — Manual de Atos Selados
  • Tabelas CGJ-RJ — Tabelas 2, 9, 11, 12, 13 (chaves externas)
  • ONU/M49 — Códigos de países e nacionalidades
  • ISO 8601 — Formato de datas e date-time
  • UUID v4 — RFC 4122 (identificadores de remessa)
  • layout_schema.json — Schema monolítico v3.0.0 (110 KB, 69 $defs)
  • exemplo.json — Remessa de referência com 13 atos (11 tipos)
  • layout.md — Documentação técnica completa (1.318 linhas)
  • XML/XSD v2.01 — Formato legado substituído (mapeamento em layout.md §9)