1Visão geral
Este layout define o contrato de dados JSON para transmissão dos atos lavrados pelos serviços extrajudiciais de Registro Civil das Pessoas Naturais (RCPN) ao Selo de Fiscalização Eletrônico (SFE) da Corregedoria-Geral da Justiça do Estado do Rio de Janeiro. Substitui o layout XML 2.09 (Schema_RCPN_2.09.xsd) sem perda de campos do domínio.
1.1. O que muda em relação ao XML 2.09
| Aspecto | XML 2.09 | JSON 3.0.0 |
| Encoding | ISO-8859-1 | UTF-8 sem BOM |
| Datas | dd/mm/aaaa | ISO 8601 (YYYY-MM-DD) |
| Data-hora | dd/mm/aaaa HH:MM:SS | ISO 8601 com offset (...T13:21:45-03:00) |
| Booleanos | "S" / "N" | true / false |
| Decimal monetário | xsd:decimal | string com pattern ^\d+\.\d{2}$ |
| Códigos de domínio | "1", "JG", "NH" | enums humanizados (JUSTICA_GRATUITA, NIHIL, …) |
| Discriminação | nome do elemento | tipoAto + dadosAto |
| Identificador | numérico curto | UUID v4 |
| Validação | XSD | JSON Schema draft-07 |
| Transmissão | arquivo | arquivo ou API REST |
1.2. Princípios de modelagem
- Tipagem forte de verdade. Numéricos são
integer com minimum/maximum; monetários são string com pattern; datas são ISO 8601; booleanos são reais.
- Enums humanizados. Quem nunca leu o XSD entende o valor pelo nome (
DNV, JUSTICA_GRATUITA, UNIDADE_DE_SAUDE).
- Discriminação explícita via
oneOf + const em tipoAto.
- Contrato fechado:
additionalProperties:false em 100% dos objetos.
- Reuso via
$ref sobre $defs.
- Convenção:
camelCase para propriedades, SCREAMING_SNAKE_CASE para enums, PascalCase para $defs; nomes em português.
2Versionamento e compatibilidade
Versão atual: 3.0.0. Identificada em remessa.versaoLayout.
| Tipo | Sintaxe | O que muda |
| Major | X.0.0 | Mudança incompatível. |
| Minor | x.Y.0 | Adição retrocompatível. |
| Patch | x.y.Z | Correção textual sem mudança de validação. |
Janela de transição ao publicar nova major: 180 dias de coexistência. O XML 2.09 continua aceito durante a janela; novas integrações entram exclusivamente em JSON.
3Transmissão
3.1. Por arquivo
| Item | Valor |
| Encoding | UTF-8 sem BOM |
| Indentação | 2 espaços (recomendado) ou minified |
| Tamanho máximo | 32 MB |
| Atos por remessa | 5.000 (máximo) |
| Nome do arquivo | <SERV>_<AAAAMMDD>_RCPN_<I|A>_<HHMMSS>.json |
| Exemplo | 1456_20260506_RCPN_I_132145.json |
3.2. Por API REST
| Item | Valor |
| Base homologação | https://api-hml.cgj.tjrj.jus.br/sfe/v3 |
| Base produção | https://api.cgj.tjrj.jus.br/sfe/v3 |
POST /rcpn/remessas | Submete remessa (INCLUSAO). Resposta 202 Accepted. |
PATCH /rcpn/remessas/{id} | Submete retificação (ALTERACAO). |
GET /rcpn/remessas/{id} | Consulta status. |
| Content-Type | application/json; charset=utf-8 |
| Autenticação | OAuth 2.0, JWT em Authorization: Bearer ... |
| Idempotência | X-Idempotency-Key: <remessa.id> |
| Identificação do serviço | X-Cod-Servico: <codigoServico> |
3.3. Códigos HTTP
| Código | Significado |
202 | Remessa aceita para processamento assíncrono. |
400 | JSON malformado ou viola schema. |
401 | Token ausente/expirado. |
403 | Serviço não autorizado. |
409 | id já recebido com payload diferente. |
422 | Schema OK, regra de negócio falhou. |
503 | Falha temporária. |
4Estrutura do envelope
4.1. Forma canônica
{
"$schema": "https://layouts.tjrj.jus.br/sfe/rcpn/v3.0.0/layout_schema.json",
"remessa": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"versaoLayout": "3.0.0",
"codigoServico": "7555",
"tipoOperacao": "INCLUSAO",
"ambiente": "PRODUCAO",
"software": { "nome": "FUNARPEN-SGF", "versao": "2026.1.0" },
"dataGeracao": "2026-05-07T13:21:45-03:00",
"atos": [ /* 0..5000 */ ],
"justificativasAusencia": [ /* opcional */ ]
}
}
4.2. Tabela de campos
| Campo | Tipo | Obrig. | Formato/Validação | Descrição |
$schema | string | opc | URI | URL canônica. |
remessa.id | string | req | UUID v4 | Idempotência. |
remessa.versaoLayout | string | req | semver | 3.0.0. |
remessa.codigoServico | string | req | regex ^\d{1,5}$ | Serviço CGJ-RJ. |
remessa.tipoOperacao | enum | req | INCLUSAO/ALTERACAO | Operação. |
remessa.ambiente | enum | req | HOMOLOGACAO/PRODUCAO | — |
remessa.software | object | req | {nome, versao} | Identificação do emissor. |
remessa.dataGeracao | string | req | date-time ISO 8601 + offset | Instante de geração. |
remessa.atos | array | opc | maxItems 5000 | — |
remessa.justificativasAusencia | array | opc | — | Datas sem ato. |
4.3. Discriminação dos atos
Cada item de remessa.atos[] tem dois campos no nível superior:
{ "tipoAto": "REGISTRO_NASCIMENTO", "dadosAto": { /* payload */ } }
Schema dispatcha via oneOf com const no tipoAto.
5Atos suportados
Catálogo dos 37 atos. Cada um tem seção dedicada em §6.
| # | tipoAto | Categoria | $ref |
| 1 | REGISTRO_NASCIMENTO | Selado | RegistroNascimento |
| 2 | REGISTRO_TRANSCRICAO_NASCIMENTO | Selado | RegistroTranscricaoNascimento |
| 3 | CERTIDAO_NASCIMENTO | Selado | CertidaoNascimento |
| 4 | AVERBACAO_NASCIMENTO | Selado | AverbacaoNascimento |
| 5 | PROCESSO_PATERNIDADE_PROPRIO_SERVICO | Selado | ProcessoPaternidadePS |
| 6 | AVERIGUACAO_OFICIOSA_PATERNIDADE | Transmissão | AveriguacaoOficiosaPaternidade |
| 7 | PROCESSO_PATERNIDADE_OUTRO_SERVICO | Selado | ProcessoPaternidadeOS |
| 8 | HABILITACAO_CASAMENTO | Selado | HabilitacaoCasamento |
| 9 | JUIZ_PAZ | Transmissão | JuizPaz |
| 10 | CERTIDAO_HABILITACAO_CASAMENTO | Selado | CertidaoHabilitacaoCasamento |
| 11 | REGISTRO_CASAMENTO | Selado | RegistroCasamento |
| 12 | TRANSCRICAO_CASAMENTO | Selado | TranscricaoCasamento |
| 13 | CERTIDAO_CASAMENTO | Selado | CertidaoCasamento |
| 14 | AVERBACAO_CASAMENTO | Selado | AverbacaoCasamento |
| 15 | REGISTRO_OBITO | Selado | RegistroObito |
| 16 | CERTIDAO_OBITO | Selado | CertidaoObito |
| 17 | AVERBACAO_OBITO | Selado | AverbacaoObito |
| 18 | REGISTRO_EDITAL_PROCLAMAS | Transmissão | RegistroEditalProclamas |
| 19 | CERTIDAO_EDITAL_PROCLAMAS | Selado | CertidaoEditalProclamas |
| 20 | PROCESSO_ADMINISTRATIVO | Selado | ProcessoAdministrativo |
| 21 | CERTIDAO_CRC | Selado | CertidaoCRC |
| 22 | CERTIDAO_CRC_NACIONAL | Selado | CertidaoCRCNacional |
| 23 | REGISTRO_LIVRO_E | Selado | RegistroLivroE |
| 24 | CERTIDAO_LIVRO_E | Selado | CertidaoLivroE |
| 25 | AVERBACAO_LIVRO_E | Selado | AverbacaoLivroE |
| 26 | CERTIDAO_GENERICA | Selado | CertidaoGenerica |
| 27 | VISTO | Selado | Visto |
| 28 | FOLHA_ADICIONAL_COMPLEMENTO | Transmissão | FolhaAdicionalComplemento |
| 29 | INFORMACAO_VERBAL | Transmissão | InformacaoVerbal |
| 30 | COMPLEMENTO_EMOLUMENTOS | Transmissão | ComplementoEmolumentos |
| 31 | ALTERACAO_EMOLUMENTOS | Operação | AlteracaoEmolumentos |
| 32 | ALTERACAO_URL_ATO_ELETRONICO | Operação | AlteracaoUrlAtoEletronico |
| 33 | MATERIALIZACAO_ATOS_DECISORIOS_FE | Selado | MaterializacaoAtosDecisoriosFE |
| 34 | APOSTILAMENTO | Selado | Apostilamento |
| 35 | ENCERRAMENTO_LIVRO | Transmissão | EncerramentoLivro |
| 36 | DECLARATORIO_UNIAO_ESTAVEL | Selado | DeclaratorioUniaoEstavel |
| 37 | DISSOLUCAO_UNIAO_ESTAVEL | Selado | DissolucaoUniaoEstavel |
6Definição dos atos
Cada ato tem subseção dedicada com tabela de campos específicos, regras de negócio e exemplo JSON. Para campos herdados de AtoBase ou TransmissaoBase, ver §7.
Convenções da coluna Obrigatório: req obrigatório · opc opcional · cond condicional.
6.1. Registro de Nascimento
tipoAto: REGISTRO_NASCIMENTO · Categoria: ATO_SELADO · $ref: #/$defs/RegistroNascimento · Substitui XML 2.09: RegistroNascimento.
Lavra do termo de nascimento no Livro A. Lei 6.015/1973 art. 50.
| Campo | Tipo | Obrig. | Formato | Descrição |
tipoDocumento | enum | req | Tabela 15 | Origem do registro. |
numeroDocumento | string | opc | maxLength 25 | — |
protocoloConsultaDNV | string | cond | maxLength 25 | Obrigatório se tipoDocumento=DNV. |
numeroRgAtribuido | string | opc | — | — |
numeroGemeos | integer | opc | 0..9 | — |
local | enum | opc | Tabela 31 | Local do nascimento. |
horaNascimento | string | opc | HH:MM | — |
nascido | Pessoa | req | — | — |
testemunhas | Pessoa[] | cond | minItems 1 | Se tipoDocumento=TESTEMUNHAS. |
impressosSeguranca | ImpressoSeguranca[] | opc | — | — |
emolumentos | Emolumentos | req | — | — |
Regras de negócio
- Se
tipoDocumento=DNV → protocoloConsultaDNV obrigatório.
- Se
tipoDocumento=TESTEMUNHAS → testemunhas obrigatório.
- Registro gratuito por força de lei (Lei 9.534/1997).
Exemplo
{
"tipoAto": "REGISTRO_NASCIMENTO",
"dadosAto": {
"categoria": "ATO_SELADO",
"dataPratica": "2026-05-06",
"selo": "EABC12345",
"aleatorio": "KRT",
"livro": "A-12345", "folha": "10", "termo": 15,
"tipoLivro": "1", "ordemJudicial": false,
"tipoDocumento": "DNV",
"numeroDocumento": "10852258521",
"protocoloConsultaDNV": "DNPW-00000146",
"local": "UNIDADE_DE_SAUDE",
"nascido": { "nome": "ALICE GOMES DA SILVA", "sexo": "FEMININO", "dataNascimento": "2026-05-01" },
"emolumentos": { "tipoCobranca": "JUSTICA_GRATUITA", "hipossuficiente": false }
}
}
6.2. Registro de Transcrição de Nascimento
tipoAto: REGISTRO_TRANSCRICAO_NASCIMENTO · Selado · $ref: RegistroTranscricaoNascimento.
Transcrição em Livro A de nascimento ocorrido no exterior, em RTD ou via processo judicial. CNJ Provimento 21/2012.
| Campo | Tipo | Obrig. | Descrição |
descricaoTranscricao | DescricaoTranscricao | req | Origem. |
nascido | Pessoa | req | — |
emolumentos | Emolumentos | req | — |
6.3. Certidão de Nascimento
tipoAto: CERTIDAO_NASCIMENTO · Selado · $ref: CertidaoNascimento.
Certidão em breve relato, transcrição ou inteiro teor. Substitui TipoAto XML RCN/RCTN/RCUI.
| Campo | Tipo | Obrig. | Descrição |
tipoCertidao | enum | req | CERTIDAO_NASCIMENTO/CERTIDAO_TRANSCRICAO_NASCIMENTO/CERTIDAO_INTEIRO_TEOR_NASCIMENTO. |
interligacao | boolean | req | — |
inteiroTeor | boolean | req | — |
nascido | Pessoa | req | — |
emolumentos | Emolumentos | req | — |
6.4. Averbação de Nascimento
tipoAto: AVERBACAO_NASCIMENTO · Selado · $ref: AverbacaoNascimento.
Averbação à margem do nascimento (reconhecimento de paternidade, adoção, alteração de nome, retificação, cancelamento, destituição do poder familiar).
| Campo | Tipo | Obrig. | Descrição |
tipoAverbacaoAto | enum | req | AVERBACAO_NASCIMENTO/AVERBACAO_TRANSCRICAO_NASCIMENTO. |
tipoAverbacao | enum | req | Tabela 4 (N1..N10). |
nascido | Pessoa | req | — |
atosVinculados | AtoVinculado[] | cond | Reconhecimento de paternidade. |
emolumentos | Emolumentos | req | — |
6.5. Processo de Paternidade no Próprio Serviço
tipoAto: PROCESSO_PATERNIDADE_PROPRIO_SERVICO · Selado · $ref: ProcessoPaternidadePS. CNJ Provimento 16/2012. Reconhecimento gratuito.
6.6. Averiguação Oficiosa de Paternidade
tipoAto: AVERIGUACAO_OFICIOSA_PATERNIDADE · Transmissão · $ref: AveriguacaoOficiosaPaternidade. Lei 8.560/1992 art. 2º. Campo-chave: indicacaoPaternidade (boolean).
6.7. Processo de Paternidade em Outro Serviço
tipoAto: PROCESSO_PATERNIDADE_OUTRO_SERVICO · Selado · $ref: ProcessoPaternidadeOS. Campos: codigoServico, nomeServicoOriginal, estadoServicoOriginal + genitor[].
6.8. Habilitação de Casamento
tipoAto: HABILITACAO_CASAMENTO · Selado · $ref: HabilitacaoCasamento. Lei 6.015/1973 art. 67. Campos: processoHabilitacao, conversaoUniaoEstavel, separacaoObrigatoriaBens, conjuges[2].
6.9. Designação de Juiz de Paz
tipoAto: JUIZ_PAZ · Transmissão · $ref: JuizPaz. Vincula a habilitação de casamento via atosVinculados.
6.10. Certidão de Habilitação de Casamento
tipoAto: CERTIDAO_HABILITACAO_CASAMENTO · Selado · $ref: CertidaoHabilitacaoCasamento. Vincula à habilitação.
6.11. Registro de Casamento
tipoAto: REGISTRO_CASAMENTO · Selado · $ref: RegistroCasamento. Lei 6.015/1973 art. 70.
| Campo | Tipo | Obrig. | Descrição |
dataCasamento | date | req | — |
tipoCelebrante | enum | req | Tabela 13. |
tipoUniao | enum | req | HETEROAFETIVA/HOMOAFETIVA. |
tipoCasamento | enum | req | Tabela 7. |
regimeCasamento | enum | opc | Tabela 8. |
conversaoUniaoEstavel | boolean | req | — |
conjuges | Pessoa[2] | req | — |
6.12. Transcrição de Casamento
Casamento celebrado no exterior, RTD ou via processo. $ref: TranscricaoCasamento.
6.13. Certidão de Casamento
$ref: CertidaoCasamento. tipoCertidao: CERTIDAO_CASAMENTO/CERTIDAO_TRANSCRICAO_CASAMENTO.
6.14. Averbação de Casamento
$ref: AverbacaoCasamento. Tipos: divórcio, separação, restabelecimento, anulação, alteração de regime/nome, retificação, outros (Tabela 5).
6.15. Registro de Óbito
tipoAto: REGISTRO_OBITO · Selado · $ref: RegistroObito. Lei 6.015/1973 art. 77.
| Campo | Tipo | Obrig. | Descrição |
dataObito | date | req | — |
tipoLocalObito | enum | opc | Tabela 9 (UNIDADE_DE_SAUDE/...). |
caracteristica | enum | req | INDIGENTE/MENOR/NATIMORTO/MAIOR. |
tipoMorte | enum | opc | NATURAL/VIOLENTO. |
corPele | enum | opc | Tabela 12. |
tipoDocumento | enum | req | Tabela 16. |
protocoloConsultaObito | string | cond | Se tipoDocumento=DECLARACAO_OBITO. |
falecido | Pessoa | opc | — |
declarante | Declarante | opc | — |
emolumentos | Emolumentos | req | — |
6.16. Certidão de Óbito
$ref: CertidaoObito. tipoCertidao: CERTIDAO_OBITO/CERTIDAO_TRANSCRICAO_OBITO/CERTIDAO_INTEIRO_TEOR_OBITO.
6.17. Averbação de Óbito
$ref: AverbacaoObito. Tabela 6 (O1..O5).
6.18. Registro de Edital de Proclamas
Transmissão. $ref: RegistroEditalProclamas. Lei 6.015/1973 art. 67.
6.19. Certidão de Edital de Proclamas
Selado. $ref: CertidaoEditalProclamas.
6.20. Processo Administrativo
Selado. $ref: ProcessoAdministrativo. tipoRegistro: P1..P5, P7..P9 (Tabela 27).
6.21. Certidão CRC
Selado. $ref: CertidaoCRC. Tabela 26 (CN/CO/CC/...).
6.22. Certidão CRC Nacional
Selado. $ref: CertidaoCRCNacional. CNJ Provimento 46/2015.
6.23. Registro no Livro E
Selado. $ref: RegistroLivroE. tipoRegistro: emancipação, interdição, ausência, divórcio extrajudicial, opção de nacionalidade, tutela, etc. (Tabela 25).
6.24. Certidão do Livro E
Selado. $ref: CertidaoLivroE.
6.25. Averbação no Livro E
Selado. $ref: AverbacaoLivroE.
6.26. Certidão Genérica
Selado. $ref: CertidaoGenerica. Tabela 28 (G1..G7). Campo negativa boolean.
6.27. Visto em Habilitação
Selado. $ref: Visto. Campo revalidada boolean.
6.28. Folha Adicional / Complemento
Transmissão. $ref: FolhaAdicionalComplemento. Vincula atoOriginal.
6.29. Informação Verbal
Transmissão. $ref: InformacaoVerbal. Campos: numeroAto, nome.
6.30. Complemento de Emolumentos
Transmissão. $ref: ComplementoEmolumentos.
6.31. Alteração de Emolumentos
Operação. $ref: AlteracaoEmolumentos. Identifica o ato pelo selo.
6.32. Alteração de URL do Ato Eletrônico
Operação. $ref: AlteracaoUrlAtoEletronico.
6.33. Materialização de Atos Decisórios FE
Selado. $ref: MaterializacaoAtosDecisoriosFE. Campos: origemDoc, varaInfanciaJuventudeIdoso, qtdTotalFolhas, dataImpressao, url, nomeArquivo, formatoArquivo, tamanhoArquivo.
6.34. Apostilamento
Selado. $ref: Apostilamento. CNJ Resolução 228/2016.
6.35. Encerramento de Livro
Transmissão. $ref: EncerramentoLivro.
6.36. Declaratório de União Estável
Selado. $ref: DeclaratorioUniaoEstavel. CNJ Provimento 37/2014. Campo homoafetiva boolean.
6.37. Dissolução de União Estável
Selado. $ref: DissolucaoUniaoEstavel. Campos decisaoJudicial, partilhaBens, homoafetiva booleans.
A documentação detalhada com todos os campos e exemplos JSON inline para cada ato está em layout.md §6.1 a §6.37.
7Estruturas reutilizáveis ($defs)
Componentes reaproveitados via $ref. Todas com additionalProperties:false, required explícito, title + description.
$def | Propósito |
AtoBase | Composição (allOf) em todo ato selado: categoria, dataPratica, selo, aleatorio, livro/folha/termo, matriculaNacional, tipoLivro, ordemJudicial, numeroProcessoJudicial, dataSentencaDecisao, observacoes, indCertidaoEletronica, indAtoEletronico, URLs/hashes, atoOriginal, atoReferencia. |
TransmissaoBase | Composição em transmissões: cct em vez de selo, mais URLs/hashes opcionais. |
Pessoa | Estrutura base para nascido, cônjuge, falecido, declarante, participante, testemunha, convivente, patrono, consultado. |
Genitor | Pessoa com tipoFiliacao + progenitores[]. |
Declarante | Pessoa com tipoDeclarante obrigatório. |
Endereco | logradouro, numeroLogradouro, bairro, complementoLogradouro, codigoIbgeMunicipio. |
Emolumentos | tipoCobranca, hipossuficiente, valores monetários, itens[]. Suprime valores quando JUSTICA_GRATUITA ou SEM_COBRANCA. |
ItemEmolumento | Linha de composição: ano, tabela, item, subItem, quantidade, complemento, excecao. |
AtoVinculado | Vincula este ato a outro ato selado/transmitido. tipoVinculo humanizado (Tabela 18). |
ImpressoSeguranca | Papel da Casa da Moeda: dataUtilizacao, numeroSerie, indSegundaVia. |
DescricaoTranscricao | Origem da transcrição (consular/RTD/processo). |
BeneficioPrevidenciario | numeroBeneficio. |
ReferenciaAto | Agrupa codigoServico+selo+aleatorio (atoOriginal/atoReferencia). |
Documento | Item de outrosDocumentos[]: tipoDocumento, numeroDocumento, dataEmissao. |
Filiacao | Array de Genitor. |
JustificativaAusencia | data + motivo opcional. |
Tabelas de campos completas em layout.md §7.
8Tabelas de domínio
32 tabelas. Cada enum do schema tem entrada nesta seção, com fonte citada. Sem ⚠️ ver PDF.
8.3. tipoCobranca
| JSON | XML legado | Descrição |
JUSTICA_GRATUITA | JG | Gratuidade legal. Suprime valores e itens. |
COM_COBRANCA | CC | Cobrança normal. |
SEM_COBRANCA | SC | Sem cobrança por especificidade legal. |
NIHIL | NH | Sem emolumentos a recolher. |
PAGO_NA_PROTOCOLIZACAO | PZ | Recolhimento já feito na protocolização. |
8.4. tipoAverbacao (Nascimento)
| JSON | XML | Descrição |
RECONHECIMENTO_PATERNIDADE_VOLUNTARIA | N1 | — |
RECONHECIMENTO_PATERNIDADE_PROC_ADM_PROPRIO | N2 | — |
RECONHECIMENTO_PATERNIDADE_PROC_ADM_OUTRO | N3 | — |
RECONHECIMENTO_PATERNIDADE_ORDEM_JUDICIAL | N4 | — |
ADOCAO | N5 | — |
ALTERACAO_NOME | N6 | — |
RETIFICACAO | N7 | — |
CANCELAMENTO | N8 | — |
OUTROS | N9 | — |
DESTITUICAO_PODER_FAMILIAR | N10 | — |
8.5. tipoAverbacao (Casamento)
| JSON | XML |
DIVORCIO | C1 |
SEPARACAO_JUDICIAL | C2 |
RESTABELECIMENTO_SOCIEDADE_CONJUGAL | C3 |
ANULACAO_NULIDADE_CASAMENTO | C4 |
ALTERACAO_REGIME_BENS | C5 |
ALTERACAO_NOME | C7 |
RETIFICACAO | C8 |
OUTROS | C9 |
8.6. tipoAverbacao (Óbito)
| JSON | XML |
RETIFICACAO | O1 |
ALTERACAO_NOME | O2 |
ALTERACAO_DATA_OBITO | O3 |
CANCELAMENTO | O4 |
OUTROS | O5 |
8.7. tipoCasamento
| JSON | XML |
CIVIL | 1 |
RELIGIOSO_COM_EFEITO_CIVIL | 2 |
CONVERSAO_UNIAO_ESTAVEL | 3 |
NUNCUPATIVO | 4 |
MOLESTIA_GRAVE | 5 |
EM_DILIGENCIA | 6 |
POR_PROCURACAO | 7 |
8.8. regimeCasamento / regimeBens
| JSON | XML |
COMUNHAO_PARCIAL_BENS | 1 |
COMUNHAO_UNIVERSAL_BENS | 2 |
SEPARACAO_TOTAL_BENS | 3 |
PARTICIPACAO_FINAL_AQUESTOS | 4 |
SEPARACAO_OBRIGATORIA_BENS | 5 |
8.9. tipoLocalObito
| JSON | XML | Descrição |
UNIDADE_DE_SAUDE | 1 | Hospital, UPA, UBS, maternidade. |
VIA_PUBLICA | 2 | — |
DOMICILIO | 3 | — |
OUTROS | 4 | Requer descrição. |
IGNORADO | 5 | — |
8.10. caracteristicaObito
| JSON | XML |
INDIGENTE | 1 |
MENOR | 2 |
NATIMORTO | 3 |
MAIOR | 4 |
8.11. tipoMorte
| JSON | XML |
NATURAL | 1 |
VIOLENTO | 2 |
8.18. tipoVinculo (AtoVinculado)
| JSON | XML | Descrição |
ATO_HABILITACAO_CASAMENTO | I | — |
ATO_COMPLEMENTO_EMOLUMENTOS | M | — |
ATO_ESCRITURA_ANTENUPCIAL | L | — |
ATO_REGISTRO | G | — |
ATO_ORIGINAL | O | — |
ATO_REFERENCIA | R | — |
ATO_COM_ERRO_MATERIAL | E | — |
ATO_DE_ACERVO | A | — |
ATO_ARQUIVADO | Q | — |
PROCESSO_ADMINISTRATIVO | W | — |
8.23. sexo
| JSON | XML |
FEMININO | F |
MASCULINO | M |
NAO_BINARIE | X |
IGNORADO | I |
8.31. local (Nascimento)
| JSON | XML | Descrição |
UNIDADE_DE_SAUDE | 1 | Hospital, UPA, UBS, maternidade. |
FORA_DA_UNIDADE_DE_SAUDE | 2 | Domicílio, via pública, em trânsito. |
As demais 22 tabelas (operação, ambiente, corPele, tipoCelebrante, tipoUniao, tipoDocumento×3, tipoSelo, tipoFiliacao, tipoDeclarante, estadoCivil, justificativaAusenciaCpf, tipoRegistro Livro E/CRC/PA, tipoCertidao Genérica, tipoDescricaoTranscricao, origemDoc, motivo) estão completas em layout.md §8.
9Validação
9.1. Engines
| Linguagem | Biblioteca | Versão |
| Python | jsonschema | 4.x |
| .NET 4.8.1 | Newtonsoft.Json.Schema | 3.x |
| Node | ajv | 8.x |
9.2. Python (_build/validate.py)
import json
from jsonschema import Draft7Validator
from pathlib import Path
root = Path(__file__).resolve().parent.parent
schema = json.loads((root / "layout_schema.json").read_text(encoding="utf-8"))
data = json.loads((root / "exemplo.json").read_text(encoding="utf-8"))
Draft7Validator.check_schema(schema)
errors = list(Draft7Validator(schema).iter_errors(data))
print("OK" if not errors else f"FAIL: {len(errors)} erros")
9.3. .NET 4.8.1 (Newtonsoft)
Imports Newtonsoft.Json.Schema
Imports Newtonsoft.Json.Linq
Dim schema = JSchema.Parse(IO.File.ReadAllText("layout_schema.json"))
Dim doc = JObject.Parse(IO.File.ReadAllText("exemplo.json"))
Dim erros As IList(Of String) = Nothing
If doc.IsValid(schema, erros) Then Console.WriteLine("OK")
9.4. PowerShell
# _build\valida.ps1
$ErrorActionPreference = 'Stop'
python (Join-Path $PSScriptRoot "validate.py")
exit $LASTEXITCODE
9.5. Invariantes não cobertas pelo schema
- Se
ordemJudicial=true → numeroProcessoJudicial e dataSentencaDecisao obrigatórios.
- Se
tipoDocumento=DNV (Nascimento) → protocoloConsultaDNV obrigatório.
- Se
tipoLocalObito=OUTROS → descricaoTipoLocalObito obrigatório.
- Se
tipoDocumento=OUTROS (Óbito) → descricaoDocumento obrigatório.
- Se
tipoDocumento=DECLARACAO_OBITO → protocoloConsultaObito obrigatório.
- Se
indAtoEletronico=true → URLs e hashes obrigatórios.
- Se
tipoCobranca ∈ {JUSTICA_GRATUITA, SEM_COBRANCA} → valores monetários e itens ausentes.
- Se
tipoCobranca=JUSTICA_GRATUITA → hipossuficiente obrigatório.
selo e cct dentro da faixa do codigoServico.
dataPratica dentro da janela autorizada do serviço.
10Migração XML 2.09 → JSON 3.0.0
10.1. Regras gerais
| # | Regra | Exemplo |
| 1 | Atributos viram propriedades JSON em camelCase. | CodServico="1234" → "codigoServico": "1234" |
| 2 | Elementos aninhados viram objetos. | <Endereco>... → "endereco": {...} |
| 3 | Listas viram arrays. | <Conjuges> → "conjuges": [...] |
| 4 | S/N vira boolean. | OrdemJudicial="S" → true |
| 5 | dd/mm/aaaa vira ISO 8601. | "06/05/2026" → "2026-05-06" |
| 6 | Decimais viram string com pattern. | 48,56 → "48.56" |
| 7 | Códigos de domínio viram enums humanizados. | JG → JUSTICA_GRATUITA |
| 8 | Atributos coesos viram objetos agrupados. | SeloAtoOriginal+CodServicoAtoOriginal → "atoOriginal": {...} |
| 9 | Numéricos viram integer. | "33" → 33 |
| 10 | Discriminação por nome de elemento vira tipoAto. | <RegistroNascimento> → "tipoAto": "REGISTRO_NASCIMENTO" |
10.2. Lado a lado (XML 2.09 × JSON 3.0.0)
Mesmo registro de nascimento expresso nos dois formatos.
XML 2.09
<?xml version="1.0" encoding="ISO-8859-1"?>
<CivilPessoasNaturais VersaoLayout="2.09">
<Remessa Id="0001" CodServico="7555" TipoOperacao="I" Software="FUNARPEN-SGF" Ambiente="PRD">
<RegistroNascimento DataPratica="06/05/2026" Selo="EABC12345" Aleatorio="KRT"
Livro="A-12345" Folha="10" Termo="15"
TipoLivro="1" OrdemJudicial="N"
TipoDocumento="1" ProtocoloConsultaDNV="DNPW-00000146"
Local="1">
<Nascido Nome="ALICE GOMES DA SILVA" Sexo="F" DataNascimento="01/05/2026"/>
<Emolumentos TipoCobranca="JG" Hipossuficiente="N"/>
</RegistroNascimento>
</Remessa>
</CivilPessoasNaturais>
JSON 3.0.0
{
"$schema": "https://layouts.tjrj.jus.br/sfe/rcpn/v3.0.0/layout_schema.json",
"remessa": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"versaoLayout": "3.0.0",
"codigoServico": "7555",
"tipoOperacao": "INCLUSAO",
"ambiente": "PRODUCAO",
"software": { "nome": "FUNARPEN-SGF", "versao": "2026.1.0" },
"dataGeracao": "2026-05-07T13:21:45-03:00",
"atos": [{
"tipoAto": "REGISTRO_NASCIMENTO",
"dadosAto": {
"categoria": "ATO_SELADO",
"dataPratica": "2026-05-06", "selo": "EABC12345", "aleatorio": "KRT",
"livro": "A-12345", "folha": "10", "termo": 15,
"tipoLivro": "1", "ordemJudicial": false,
"tipoDocumento": "DNV", "protocoloConsultaDNV": "DNPW-00000146",
"local": "UNIDADE_DE_SAUDE",
"nascido": { "nome": "ALICE GOMES DA SILVA", "sexo": "FEMININO", "dataNascimento": "2026-05-01" },
"emolumentos": { "tipoCobranca": "JUSTICA_GRATUITA", "hipossuficiente": false }
}
}]
}
}
Mapeamento exaustivo (atributo a atributo) em layout.md §10.
11Erros e tratamento (RFC 7807)
A API REST devolve erros em application/problem+json:
{
"type": "https://api.tjrj.jus.br/sfe/errors/SCHEMA_INVALID",
"title": "JSON nao satisfaz o schema do layout RCPN",
"status": 400,
"code": "SCHEMA_INVALID",
"instance": "/sfe/v3/rcpn/remessas",
"remessaId": "550e8400-e29b-41d4-a716-446655440000",
"errors": [
{ "path": "/atos/3/dadosAto/selo", "message": "deve corresponder ao padrao '^[A-Z]{4}\\d{5}$'" }
]
}
| Código | HTTP | Quando |
JSON_INVALIDO | 400 | JSON malformado. |
SCHEMA_INVALID | 400 | JSON viola schema. |
BUSINESS_RULE_VIOLATION | 422 | Regra condicional violada. |
UNAUTHORIZED | 401 | Token ausente/expirado. |
FORBIDDEN_COD_SERVICO | 403 | Serviço não autorizado. |
IDEMPOTENCY_CONFLICT | 409 | id reutilizado com payload diferente. |
LIMITE_ATOS | 422 | > 5.000 atos. |
INVALID_SELO | 422 | Selo inválido / fora da faixa. |
INVALID_CCT | 422 | CCT inválido / fora da faixa. |
INTERNAL | 500 | Erro interno. |
INDISPONIVEL | 503 | Falha temporária. |
12Histórico de versões
| Versão | Data | Autor | Mudanças |
3.0.0 | 2026-05-07 | LOGON / FUNARPEN-RJ | Primeira versão JSON. Substitui XML 2.09. ISO 8601 em datas; monetário como string com pattern; booleanos reais; UUID v4 em remessa.id; enums humanizados; discriminação tipoAto/dadosAto; additionalProperties:false total; reuso via $defs. Cobertura: 37 atos. |
AAnexos
Glossário (resumo)
- CCT — Código de Controle de Transmissão.
- CGJ-RJ — Corregedoria-Geral da Justiça do Estado do Rio de Janeiro.
- CRC / CRC Nacional — Centrais de Registros Civis (estadual / CNJ).
- DNV — Declaração de Nascido Vivo (SINASC).
- FETJ / FUNDPERJ / FUNPERJ / FUNARPEN-RJ — Fundos do Judiciário/RCPN do RJ.
- MAS — Manual de Atos Selados (CGJ-RJ).
- RCPN — Registro Civil das Pessoas Naturais.
- SFE — Selo de Fiscalização Eletrônico.
- TJRJ — Tribunal de Justiça do Estado do Rio de Janeiro.
Referências normativas
- Lei 6.015/1973 — Lei dos Registros Públicos.
- Lei 9.534/1997 — Gratuidade de registros e primeira certidão.
- Lei 8.560/1992 — Reconhecimento de paternidade.
- Lei 9.873/2022 (RJ) — Selo de fiscalização eletrônico.
- Lei Complementar 175/2020 — ISS sobre serviços extrajudiciais.
- Decreto 6.828/2009 e Provimento 2/2009 CNJ — Matrícula nacional.
- CNJ Provimentos 16/2012, 21/2012, 37/2014, 46/2015, 73/2018; Resoluções 175/2013, 228/2016.
- RFC 7807 — Problem Details for HTTP APIs.
- JSON Schema draft-07; ISO 8601.