Guia completo dos novos campos e regras da Nota Técnica 009 v1.01 na NFSe Nacional: o que muda no leiaute, o que o PlugNotas faz por você e o que você precisa informar.
A Nota Técnica 009 (versão 1.01) adequa o leiaute da NFS-e Nacional à Reforma Tributária do Consumo (IBS e CBS): notas de ajuste de débito e crédito, unificação dos ajustes de base de cálculo, locação de imóveis por unidade imobiliária, comércio exterior, bens móveis, pagamentos vinculados, informações de evento, Simples Nacional e o reposicionamento de campos no XML. O resumo dos 16 itens da nota está no artigo da Central de Atendimento.
No PlugNotas a NT009 é opt-in por nota: você ativa o novo modelo informando
versaoEsquema: "RTC009" no JSON da NFSe.
cServ). Você não precisa mudar o JSON por causa disso.versaoEsquema: "RTC009" nada muda. Os campos e comportamentos da NT009 só valem com RTC009. Quem não usa o novo modelo continua com o XML exatamente como hoje, e os campos exclusivos da NT009 que forem enviados por engano são descartados, sem erro.retencao) e apuração própria (apuracaoPropria) de PIS/COFINS/CSLL funcionam do mesmo jeito, com cálculo automático de tpRetPisCofins e vRetCSLL. Por isso, nos exemplos abaixo, o XML traz o grupo piscofins (CST 00, tpRetPisCofins 0) mesmo sem retenção. Veja o guia da NT007.| Item | Sem RTC009 | Com RTC009 |
|---|---|---|
finNFSe, tpNFSeDebito, tpNFSeCredito | finNFSe dentro de IBSCBS; tpNFSe* ignorados | Raiz de infDPS |
indDest e dest | Dentro de IBSCBS | Dentro de IBSCBS (Release 1). Raiz de infDPS, logo após toma, só quando a Release 2 for liberada (item 2.11) |
xDescServ e cAtvSN em serv/cServ | xDescServ antes de cNBS | Ordem do XSD oficial: cTribNac, cTribMun, cNBS, cAtvSN, cIntContrib, xDescServ |
CST e cClassTrib | Dentro de gIBSCBS | Em valores/trib, antes de gIBSCBS |
cIndOp (codigoOperacao) | Obrigatório | Opcional (a Sefin valida) |
| Imóvel | imovel/inscImobFisc, cCIB ou end direto | cMun, gLocacao e gUnidImob |
| Campos novos (comércio exterior, ajustes, bens móveis, pagamentos…) | Descartados | Enviados. Os ainda não aceitos pelo ambiente nacional retornam erro (veja Disponibilidade na Sefin) |
| Retenção/apuração própria de PIS/COFINS/CSLL | Modelo anterior (ou RTC007, se informado) | Modelo RTC007 incluído |
| Consulta da nota autorizada | — | versaoCalculadoraIBSCBS, quando a Sefin informa |
| Quando | Ambiente | Itens |
|---|---|---|
| 15/10/2026 | Produção restrita | Release 1: novos fatos geradores (99.02 a 99.04, incluindo locação), CST/cClassTrib (item 2.16) e ajuste de BC (2.3) |
| 30/10/2026 | Produção restrita | Release 2: versão da calculadora, validação de endereços, indDest/dest, comércio exterior, ajuste de BC no comércio exterior e evento (2.9 a 2.14) |
| 03/11/2026 | Produção | Releases 1 e 2 |
Itens sem data no cronograma: notas de ajuste (2.2), Simples Nacional (2.4), indFinal (2.5), pagamentos vinculados (2.8) e condomínios (2.15).
RTC009; em produção, o leiaute anterior continua aceito até a Sefin mudar. O XSD oficial da produção restrita (20/10/2026) traz só a Release 1 da NT009 (o PlugNotas segue o AnexoVI v1.04.01 e libera cada item, por ambiente, quando a Sefin publicar o XSD correspondente). Teste suas notas em homologação com RTC009 antes da produção e acompanhe o artigo da Central.
O XSD oficial da produção restrita (20/10/2026) traz só a Release 1 da NT009. Tudo o que a NT009 define continua documentado
aqui, mas o PlugNotas e o Componente bloqueiam os campos que a Sefin ainda não aceita: se algum deles for informado com
RTC009, a API devolve erro 400 e o Componente rejeita o TX2, com a mensagem
"... ainda não é aceito pelo ambiente nacional". No PlugNotas cada item é liberado separadamente e por ambiente, conforme a Sefin
(primeiro em homologação, a produção restrita, e depois em produção); até a liberação o padrão é bloqueado. No Componente o bloqueio também segue essa liberação por ambiente, atualizada pelo AtualizarArquivos.
| Situação na Sefin | Itens da NT009 | Campos (API) |
|---|---|---|
| Aceito (Release 1) | 2.3, 2.6, 2.7, 2.16 e finNFSe na raiz de infDPS | ajusteBC, valorAjusteBCISSQN/percentualAjusteBCISSQN, imovel.* (locação), bensMoveis, valores.tributacao (CST/cClassTrib), codigoOperacao opcional, finalidadeNFSe = 0 |
| Release 2 — ainda não aceito | 2.12, 2.13 e 2.14 | infExterior.numeroFatura, valorFatura, numeroDUIMP, numeroDUE, numeroContratoCambio, modoPrestacao = 5; ibscbs.valorAjusteBCIBSCBSComExt; evento.codigoCidade |
| Sem data de implantação — ainda não aceito | 2.2 (restante), 2.4 e 2.8 | finalidadeNFSe = 1/2, tpNFSeDebito, tpNFSeCredito, valores.ajusteIBSCBS; regimeApuracaoIBSCBSSN, codigoAtividadeSN (e opSimpNac = 4 no Componente); pagamentosVinculados |
| Release 2 — posição provisória | 2.11 | destinatario (indDest/dest): dentro de IBSCBS até a liberação; depois, raiz de infDPS |
Liberação por item e por ambiente. Cada item (2.2, 2.4, 2.8, 2.11, 2.12, 2.13 e 2.14) é liberado separadamente, e a
liberação vale para um ambiente de cada vez, conforme a Sefin passa a aceitar o item (homologação primeiro, produção depois). Liberar um item não
libera os outros: por exemplo, o item 2.12 pode ser liberado enquanto o 2.4 continua bloqueado. A posição de indDest/dest
segue o item 2.11: bloqueado, vão dentro de IBSCBS; liberado, vão na raiz de infDPS. As regras do item 2.12
(nDI/nRE, E0352/E0354/E0356 e valorServicos obrigatório) também seguem o estado desse item no ambiente da empresa. A liberação vale
na validação da nota pela API e no envio à Sefin; uma mudança na liberação passa a valer em até 1 minuto.
numeroDeclaracaoImp (nDI) e numeroRegistroExp (nRE) são aceitos e enviados com RTC009 (o XSD oficial ainda os tem); numeroDUIMP e numeroDUE são rejeitados; as regras E0352, E0354 e E0356 valem sobre nDI/nRE (com tipoMovimentacaoBens = 2, nDI é obrigatório; com 1, nDI e nRE não são permitidos; com 3, nRE é obrigatório); valorServicos (vServMoeda) é obrigatório. Quando o item 2.12 for liberado a situação se inverte: nDI/nRE passam a ser rejeitados, valem nDUIMP/nDUE e as três regras passam a valer sobre nDUIMP/nDUE.indDest e finNFSe são obrigatórios com RTC009: o XSD oficial exige os dois (indDest dentro de IBSCBS, na Release 1, e finNFSe na raiz de infDPS). Informe ibscbs.destinatario.indicador (0 quando o destinatário é o próprio tomador) e ibscbs.finalidadeNFSe; sem eles o ambiente nacional rejeita a nota. A API e o Componente não preenchem esses campos sozinhos. Hoje só finalidadeNFSe = 0 é aceito.condominios, item 15 da NT) ainda não estão disponíveis na API, e a emissão por tomador/intermediário tem estória própria (não faz parte da NT009).
Todos os campos abaixo só valem com versaoEsquema: "RTC009". Os caminhos são relativos a
servico[] (índice 0) da NFSe, salvo quando indicado. O rótulo → ... mostra o campo gerado no XML. Os campos com a faixa ⚠️ Ainda não aceito pelo ambiente nacional estão documentados, mas retornam erro se forem informados (veja Disponibilidade na Sefin).
"RTC009". Sem ele, os campos e comportamentos desta página não se aplicam. Inclui as regras da RTC007.
0 normal, 1 crédito, 2 débito. Com RTC009 o campo vai para a raiz de infDPS (a API cuida da posição).
0 (normal) é aceito: 1 e 2 retornam erro.RTC009: o XSD oficial exige o finNFSe em infDPS; sem ele o ambiente nacional rejeita a nota. A API não preenche sozinha.
finalidadeNFSe = 2: 01 transferência de créditos para cooperativas, 02 anulação de crédito por saídas imunes/isentas, 03 débitos de notas não processadas, 04 multa e juros, 05 transferência de crédito na sucessão, 06 pagamento antecipado.
finalidadeNFSe = 1: 01 multa e juros, 05 transferência de crédito na sucessão.
01, 02, 03 ou 05, ou com crédito 05 (regra do AnexoVI, validada pela Sefin).gIBSCBSAjuste dentro de valores/trib ainda será confirmada com a Sefin, porque o texto da NT e o AnexoVI divergem; se necessário, a API será ajustada.
5: consumo concomitante no território nacional e no exterior. O 5 só é aceito com RTC009: sem ele a validação recusa a nota. A Sefin não aceita o valor 0 (Desconhecido).
5; os valores 0 a 4 seguem aceitos.tipoMovimentacaoBens = 2 é obrigatório (erro E0352); com tipoMovimentacaoBens = 1 não pode ser informado (erro E0354).
numeroDeclaracaoImp/numeroRegistroExp.tipoMovimentacaoBens = 3 é obrigatório (erro E0356); com tipoMovimentacaoBens = 1 não pode ser informado (erro E0354).
numeroDeclaracaoImp/numeroRegistroExp.RTC009 são aceitos e enviados enquanto o item 2.12 não é aceito pelo ambiente nacional (o XSD oficial da Release 1 ainda tem nDI/nRE e não tem nDUIMP/nDUE). Quando o item 2.12 for liberado eles passam a ser rejeitados: informe numeroDUIMP no lugar de numeroDeclaracaoImp e numeroDUE no lugar de numeroRegistroExp. DI/RE e DUIMP/DU-E são documentos diferentes, por isso não há conversão automática. Sem RTC009 nada muda.
vDedRed e gReeRepRes do leiaute anterior (deducao e valores.operacao.documentosReferenciados na API). Use este grupo no lugar deles: com RTC009 a API rejeita deducao e documentosReferenciados (veja "Deduções e reembolsos" abaixo). Obrigatórios por item: tipoAjuste, valorTotalDocumento e valorAjusteAplicado.
2 materiais, 5 repasse consorciado, 6 repasse plano de saúde, 7 serviços, 8 subempreitada de mão de obra, 9 profissional parceiro, 99 outras deduções exclusivas do ISSQN, 101 a 105 (intermediação imobiliária, agência de turismo, publicidade e propaganda, glosa de serviços de saúde) e 199 outros reembolsos/ressarcimentos. Com 99 ou 199 informe descricaoAjuste (xTpAjusteBC).1, 3 e 4 são rejeitados. Eles existiam no antigo vDedRed e foram descontinuados pela NT 2.3 da NT009 v1.01 (1 alimentação e bebidas/frigobar não pode ser incluída na NFS-e; 3 produção externa e 4 reembolso de despesas foram absorvidos por 103, 104 e 199).
vAjusteAplic (a v1.00 do leiaute tinha vAjuteAplic; a NT009 v1.01 corrigiu e a API já envia o nome novo).
nacional (chave de DF-e do repositório nacional), fiscal (documento fiscal fora do repositório) ou naoFiscal. Informe apenas um por item. O fornecedor (fornec) é opcional.
RTC009 os campos são ignorados (a nota segue sem eles, sem erro). São a substituição de valor.deducoes e valor.percentualDeducoes, que com RTC009 são rejeitados.
servico.codigo = "990301") e proibido nos demais. Campos: percentualCopropriedade (0 a 100), valorTotalOperacao, valorDescontoIncondicionadoTotal, valorDescontoCondicionadoTotal e dataVencimentoOriginal (apenas informativa).vServ = pCopropriedade × vTotOper. A API não faz esse cálculo.
codigoOperacao for 020101, 020201 ou 020301. Em cada unidade, informe codigoCIB (8 caracteres) ou endereco, não os dois: são alternativos e, com RTC009, informar os dois na mesma unidade retorna erro de validação. inscricaoFiscal é opcional.
tipoAjuste 01 tributos, 02 emolumento, 03 condomínio, 04 redutor social, 99 outras (com descricaoAjuste; a descrição só pode ser informada com o tipo 99, erro E0954). Informe o valor total da parcela, não o proporcional do coproprietário. Até 10 por unidade.
imovel são usados só sem RTC009. Com RTC009 a API rejeita a nota se qualquer um deles vier preenchido (erro de validação): use codigoMunicipio, locacao e unidadesImoveis.
gLocBensMoveis). Só para locação de bens móveis (subitem 99.04.01). Por item: ncm (8 dígitos), descricao e quantidade (até 999), todos obrigatórios. Até 1.000 itens.
numeroPagamento (1 a 999), identificadorTransacao (2 a 35 caracteres), tipoMeioPagamento (texto, por exemplo "17": 15 boleto, 17 Pix QRCode dinâmico, 18 TED, 20 Pix chave ou QRCode estático, 23 Pix automático, 24 TEF/booktransfer), cnpjRecebedor e cnpjBasePSP (8 dígitos). Até 99 itens.
1 IBS e CBS apurados pelo SN, 2 CBS pelo SN e IBS pelo regime regular (quem ultrapassou os sublimites), 3 IBS e CBS pelo regime regular.
7, 8, 9, 10, 11, 12, 13, 14 ou 90). Obrigatoriedade bicondicional: 10 só para o subitem 16.01; 11 só para o 99.04.01; 12 ou 13 para 7.02 e 7.05. Não informe para prestador não optante nem MEI.
evento é obrigatório (e no item 12 também).
valores/trib, antes de gIBSCBS. A API faz isso sozinha. Para CST sem o grupo gIBSCBS (por exemplo 400, 410 e 820) informe somente cst e cct.
gIBSCBS, não informe: o XML sai sem cIndOp. Sem RTC009 continua obrigatório.
indicador (0 o destinatário é o próprio tomador, 1 é outra pessoa/estabelecimento) e os dados do destinatário. Com RTC009 o XML leva indDest e dest dentro de IBSCBS (posição da Release 1) enquanto a Release 2 da Sefin (item 2.11) não é aceita pelo ambiente nacional; quando o item 2.11 for liberado para o seu ambiente (conforme a Sefin), a API passa a gravá-los na raiz de infDPS, logo após o tomador, sem mudança no JSON. O indDest é obrigatório no leiaute oficial e a API só o envia se indicador for informado: informe sempre destinatario.indicador (0 quando o destinatário é o próprio tomador); com RTC009 ele é obrigatório e, sem ele, o ambiente nacional rejeita a nota. Atenção: a Sefin passa a rejeitar a DPS quando o município informado diverge do cadastro do CPF/CNPJ (item 2.10).
retorno.versaoCalculadoraIBSCBS na consulta completa (GET /nfse/{id}) e em versaoCalculadoraIBSCBS na consulta resumida (GET /nfse/consultar/{id}). Não é um campo de entrada; só aparece quando a Sefin o informa.
Consulte a situação da sua nota para saber o que informar (sempre com versaoEsquema: "RTC009").
| Situação | Informe | Não informe / atenção |
|---|---|---|
| Locação, cessão onerosa ou arrendamento de imóvelservico.codigo = 990301 (99.03) | imovel.locacao (obrigatório), imovel.codigoMunicipio, codigoOperacao = 02XXXX, unidadesImoveis (obrigatório com 020101/020201/020301) |
Valor do serviço = percentualCopropriedade × valorTotalOperacao (e os descontos também). Não use os campos legados do imovel. |
| CST sem grupo gIBSCBSex.: 400, 410, 820 | Somente valores.tributacao.cst e cct |
Não informe codigoOperacao nem dados de gIBSCBS (crédito presumido, tributação regular, diferimento) |
| CST com grupo gIBSCBS | cst, cct e, se houver, os dados do grupo |
codigoOperacao é opcional com RTC009; a Sefin valida a consistência |
| Comércio exterior com câmbio diferente da PTAX | ibscbs.valorAjusteBCIBSCBSComExt (positivo ou negativo) — ⚠️ ainda não aceito pelo ambiente nacional (item 2.13, Release 2): hoje a API retorna erro |
O valor do serviço não muda; só a base de cálculo do IBS/CBS |
| Comércio exterior ligado a movimentação de bens | tipoMovimentacaoBens = 2 → numeroDeclaracaoImp (nDI); = 3 → numeroRegistroExp (nRE). numeroDUIMP/numeroDUE só depois da liberação do item 2.12 |
⚠️ Enquanto o item 2.12 não é aceito, numeroDUIMP e numeroDUE (e numeroFatura, valorFatura, numeroContratoCambio, modoPrestacao = 5) retornam erro, e as regras E0352/E0354/E0356 valem sobre nDI/nRE (com tipoMovimentacaoBens 2, nDI é obrigatório; com 1, nDI e nRE não são permitidos; com 3, nRE é obrigatório). Depois da liberação, nDI/nRE passam a ser rejeitados e as regras passam a valer sobre nDUIMP/nDUE. |
| Evento — subitem 17.10servico.codigo = 171001 | evento (obrigatório). evento.codigoCidade (município diferente do da prestação) ⚠️ ainda não aceito pelo ambiente nacional (item 2.14, Release 2): hoje retorna erro |
codigoCidade só para 12.13 e 17.10 |
| Locação de bens móveisservico.codigo = 990401 (99.04.01) | bensMoveis; para Simples Nacional codigoAtividadeSN = 11 (⚠️ ainda não aceito pelo ambiente nacional, item 2.4: hoje retorna erro) |
bensMoveis só no 99.04.01 |
| Prestador optante do Simples Nacional | regimeApuracaoIBSCBSSN (cadastro da empresa) e codigoAtividadeSN: 16.01 → 10; 7.02/7.05 → 12 ou 13 — ⚠️ ainda não aceitos pelo ambiente nacional (item 2.4, sem data): hoje a API retorna erro |
Não optante e MEI: não informe codigoAtividadeSN |
| Nota de ajuste de débito ou crédito | finalidadeNFSe 2 + tpNFSeDebito, ou 1 + tpNFSeCredito; valores.ajusteIBSCBS nos tipos previstos — ⚠️ ainda não aceito pelo ambiente nacional (item 2.2, sem data): hoje só finalidadeNFSe = 0 é aceito |
Ajuste de IBS/CBS: débito 01, 02, 03, 05; crédito 05 |
| Reembolso, repasse, dedução ou glosa | ibscbs.ajusteBC[] com tipoAjuste |
Não envie deducao nem documentosReferenciados junto (grupos unificados em vAjusteBC) |
Em cada cenário, o JSON mostra só o trecho relevante (os demais campos da NFSe seguem como sempre) e o XML foi gerado de verdade pelo serviço de geração de XML do PlugNotas a partir desse JSON; exibimos apenas os grupos relacionados à NT009.
{
"versaoEsquema": "RTC009",
"servico": [
{
"codigo": "990301",
"codigoNbs": "110021000",
"discriminacao": "Locação de imóvel",
"valor": {
"servico": 1000, // = 50% × 2.000,00
"descontoIncondicionado": 50, // = 50% × 100,00
"descontoCondicionado": 25 // = 50% × 50,00
},
"ibscbs": {
"finalidadeNFSe": 0, // obrigatório com RTC009 (finNFSe)
"operacaoPessoal": 0,
"codigoOperacao": "020101", // 02XXXX para o 99.03
"destinatario": { "indicador": 0 }, // obrigatório com RTC009 (indDest)
"imovel": {
"codigoMunicipio": 4115200,
"locacao": {
"percentualCopropriedade": 50, // copropriedade
"valorTotalOperacao": 2000,
"valorDescontoIncondicionadoTotal": 100,
"valorDescontoCondicionadoTotal": 50,
"dataVencimentoOriginal": "2026-11-10"
},
"unidadesImoveis": [
{
"inscricaoFiscal": "123456789012",
"codigoCIB": "12345678", // CIB ou endereco
"ajustesBCLocImoveis": [
{
"tipoAjuste": "01",
"valorAjuste": 25.5
}
]
}
]
}
}
}
]
}
<cServ> <cTribNac>990301</cTribNac> <cNBS>110021000</cNBS> <xDescServ>Locação de imóvel</xDescServ> </cServ> <vServPrest> <vServ>1000.00</vServ> </vServPrest> <vDescCondIncond> <vDescIncond>50.00</vDescIncond> <vDescCond>25.00</vDescCond> </vDescCondIncond> <IBSCBS> <indFinal>0</indFinal> <cIndOp>020101</cIndOp> <indDest>0</indDest> <imovel> <cMun>4115200</cMun> <gLocacao> <pCopropriedade>50.00</pCopropriedade> <vTotOper>2000.00</vTotOper> <vDescIncondTot>100.00</vDescIncondTot> <vDescCondTot>50.00</vDescCondTot> <dVencOrig>2026-11-10</dVencOrig> </gLocacao> <gUnidImob> <inscImobFisc>123456789012</inscImobFisc> <cCIB>12345678</cCIB> <gAjusteBCLocImoveis> <tpAjusteBCLocImoveis>01</tpAjusteBCLocImoveis> <vAjusteBCLocImoveis>25.50</vAjusteBCLocImoveis> </gAjusteBCLocImoveis> </gUnidImob> </imovel> <valores> <trib> <CST>000</CST> <cClassTrib>000001</cClassTrib> </trib> </valores> </IBSCBS>
cIndOp é 02XXXX.{
"versaoEsquema": "RTC009",
"tomador": {
"razaoSocial": "Acme GmbH",
"codigoEstrangeiro": "DE123456789",
"endereco": {
"codigoPais": "DE", // país diferente de BR/1058 (ou codigoCidade 9999999) indica endereço no exterior: o XML leva só endExt
"cep": "10115", // código postal do exterior: 1 a 11 caracteres
"estado": "Berlin", // obrigatório: estado/província/região do exterior
"descricaoCidade": "Berlin",
"logradouro": "Friedrichstrasse", // obrigatório no exterior
"numero": "10", // obrigatório no exterior
"bairro": "Mitte" // obrigatório no exterior
}
},
"servico": [
{
"valor": {
"servico": 5000
},
"ibscbs": {
"finalidadeNFSe": 0, // obrigatório com RTC009
"destinatario": { "indicador": 0 } // obrigatório com RTC009
},
"infExterior": {
"modoPrestacao": 1,
"vinculoPrestacao": 0,
"tipoMoeda": "220",
"valorServicos": 1000, // obrigatório enquanto o item 2.12 não é aceito
"tipoFomentoPrestador": "01",
"tipoFomentoTomador": "01",
"tipoMovimentacaoBens": 2,
"numeroDeclaracaoImp": "123456789012", // nDI: aceito até a liberação do item 2.12
"tipoMDIC": 0
}
}
]
}
<comExt> <mdPrestacao>1</mdPrestacao> <vincPrest>0</vincPrest> <tpMoeda>220</tpMoeda> <vServMoeda>1000.00</vServMoeda> <mecAFComexP>01</mecAFComexP> <mecAFComexT>01</mecAFComexT> <movTempBens>2</movTempBens> <nDI>123456789012</nDI> <mdic>0</mdic> </comExt>
modoPrestacao = 5, numeroFatura, valorFatura, numeroDUIMP, numeroDUE e numeroContratoCambio. Enquanto isso, numeroDeclaracaoImp (nDI) é aceito e enviado.valorAjusteBCIBSCBSComExt.cep (código postal do exterior, de 1 a 11 caracteres), estado (estado, província ou região, em texto), logradouro, numero e bairro são obrigatórios na API.RTC009, informe também indicador do destinatário e finalidadeNFSe.{
"versaoEsquema": "RTC009",
"servico": [
{
"ibscbs": {
"finalidadeNFSe": 0,
"operacaoPessoal": 0, // codigoOperacao: não informar (CST 400)
"destinatario": { "indicador": 0 }, // obrigatório com RTC009 (indDest)
"valores": {
"tributacao": {
"cst": "400", // CST sem gIBSCBS
"cct": "400001"
}
}
}
}
]
}
<IBSCBS> <indFinal>0</indFinal> <indDest>0</indDest> <valores> <trib> <CST>400</CST> <cClassTrib>400001</cClassTrib> </trib> </valores> </IBSCBS>
CST e cClassTrib em valores/trib: sem cIndOp e sem gIBSCBS. A Sefin valida a consistência do CST na autorização.{
"versaoEsquema": "RTC009",
"servico": [
{
"codigo": "171001", // subitem 17.10: evento obrigatório
"evento": {
"id": "EVT-2026-001",
"descricao": "Feira de Negócios do Paraná",
"dataInicio": "2026-11-20",
"dataFim": "2026-11-22"
},
"ibscbs": {
"finalidadeNFSe": 0,
"operacaoPessoal": 0,
"codigoOperacao": "100301",
"destinatario": {
"indicador": 1,
"cpfCnpj": "99888777000166",
"razaoSocial": "Organizadora de Eventos LTDA",
"endereco": {
"codigoCidade": "4106902",
"cep": "80010000",
"logradouro": "Rua XV de Novembro",
"numero": "500",
"bairro": "Centro"
}
},
"valores": {
"tributacao": {
"cst": "000",
"cct": "000001"
}
}
}
}
]
}
<finNFSe>0</finNFSe> <atvEvento> <xNome>Feira de Negócios do Paraná</xNome> <dtIni>2026-11-20</dtIni> <dtFim>2026-11-22</dtFim> <idAtvEvt>EVT-2026-001</idAtvEvt> </atvEvento> <IBSCBS> <indFinal>0</indFinal> <cIndOp>100301</cIndOp> <indDest>1</indDest> <dest> <CNPJ>99888777000166</CNPJ> <xNome>Organizadora de Eventos LTDA</xNome> <end> <endNac> <cMun>4106902</cMun> <CEP>80010000</CEP> </endNac> <xLgr>Rua XV de Novembro</xLgr> <nro>500</nro> <xBairro>Centro</xBairro> </end> </dest> <valores> <trib> <CST>000</CST> <cClassTrib>000001</cClassTrib> </trib> </valores> </IBSCBS>
indDest/dest dentro de IBSCBS (posição da Release 1; vão para a raiz de infDPS só quando a Release 2 for liberada) e CST/cClassTrib em valores/trib. ⚠️ O município do evento (evento.codigoCidade → atvEvento/cMun) não é usado aqui porque ainda não é aceito pelo ambiente nacional (item 2.14, Release 2 da Sefin).{
"servico": [
{
"codigo": "171001", // versaoEsquema não informado
"evento": {
"id": "EVT-2026-001",
"descricao": "Feira de Negócios do Paraná",
"dataInicio": "2026-11-20",
"dataFim": "2026-11-22"
},
"ibscbs": {
"finalidadeNFSe": 0,
"operacaoPessoal": 0,
"codigoOperacao": "100301",
"destinatario": {
"indicador": 1,
"cpfCnpj": "99888777000166",
"razaoSocial": "Organizadora de Eventos LTDA",
"endereco": {
"codigoCidade": "4106902",
"cep": "80010000",
"logradouro": "Rua XV de Novembro",
"numero": "500",
"bairro": "Centro"
}
},
"valores": {
"tributacao": {
"cst": "000",
"cct": "000001"
}
}
}
}
]
}
<atvEvento> <xNome>Feira de Negócios do Paraná</xNome> <dtIni>2026-11-20</dtIni> <dtFim>2026-11-22</dtFim> <idAtvEvt>EVT-2026-001</idAtvEvt> </atvEvento> <IBSCBS> <finNFSe>0</finNFSe> <indFinal>0</indFinal> <cIndOp>100301</cIndOp> <indDest>1</indDest> <dest> <CNPJ>99888777000166</CNPJ> <xNome>Organizadora de Eventos LTDA</xNome> <end> <endNac> <cMun>4106902</cMun> <CEP>80010000</CEP> </endNac> <xLgr>Rua XV de Novembro</xLgr> <nro>500</nro> <xBairro>Centro</xBairro> </end> </dest> <valores> <trib> <gIBSCBS> <CST>000</CST> <cClassTrib>000001</cClassTrib> </gIBSCBS> </trib> </valores> </IBSCBS>
versaoEsquema: finNFSe, indDest/dest e CST/cClassTrib ficam nas posições antigas (dentro de IBSCBS/gIBSCBS). Hoje a única diferença de posição para o cenário D é finNFSe (raiz de infDPS com RTC009) e CST/cClassTrib. A nota também não traz o grupo piscofins, que vem do modelo RTC007 incluído na RTC009.
A migração é opcional e por nota: você pode usar RTC009 em algumas notas e manter as demais como estão.
Veja o que muda no JSON.
{
"servico": [
{
"ibscbs": {
"codigoOperacao": "020101",
"imovel": {
"codigoCIB": "12345678",
"inscricaoFiscal": "123456789012"
}
}
}
]
}
{
"versaoEsquema": "RTC009",
"servico": [
{
"ibscbs": {
"codigoOperacao": "020101",
"imovel": {
"codigoMunicipio": 4115200,
"locacao": {
"percentualCopropriedade": 100,
"valorTotalOperacao": 2000
},
"unidadesImoveis": [
{
"codigoCIB": "12345678",
"inscricaoFiscal": "123456789012"
}
]
}
}
}
]
}
{
"servico": [
{
"ibscbs": {
"valores": {
"operacao": {
"documentosReferenciados": [
{
"nacional": {
"tipoChave": 1,
"chave": "..."
},
"dataEmissao": "2026-10-01",
"competencia": "2026-10-01",
"tipoOperacao": "...",
"valorOperacao": 50
}
]
}
}
}
}
]
}
{
"versaoEsquema": "RTC009",
"servico": [
{
"ibscbs": {
"ajusteBC": [
{
"tipoAjuste": "101",
"valorTotalDocumento": 500,
"valorAjusteAplicado": 50,
"dataEmissao": "2026-10-01",
"nacional": {
"tipoChave": 1,
"chave": "..."
}
}
]
}
}
]
}
RTC009 a API rejeita a nota (erro de validação) se vier deducao, documentosReferenciados, valor.deducoes ou valor.percentualDeducoes (maior que zero): a NT009 unificou vDedRed e gReeRepRes em vAjusteBC (item 2.3). A API não converte automaticamente, porque os domínios mudaram e alguns tipos foram descontinuados. Escolha o tipoAjuste pela tabela da seção de campos; ele não é uma conversão automática do tipoOperacao antigo. Sem RTC009 nada muda: os campos antigos continuam indo no XML. numeroDeclaracaoImp/numeroRegistroExp (nDI/nRE) são aceitos com RTC009 enquanto o item 2.12 não é aceito pelo ambiente nacional (veja Disponibilidade na Sefin).Todas valem só com versaoEsquema: "RTC009". Sem RTC009 (ou com RTC007) o comportamento é o de sempre. As rejeições "ainda não é aceito pelo ambiente nacional" valem enquanto o item correspondente não for liberado para o ambiente da empresa (padrão: bloqueado) e saem num único erro 400, com todos os campos encontrados. Nenhuma mensagem traz data.
| Situação | Campo no erro | Mensagem |
|---|---|---|
deducao com RTC009 | deducao | Com versaoEsquema RTC009 (NT009 item 2.3) os grupos vDedRed e gReeRepRes foram unificados em vAjusteBC. O campo 'deducao' não é aceito: informe os documentos de ajuste em 'servico[0].ibscbs.ajusteBC' (os tipos de ajuste mudaram, consulte o domínio de tipoAjuste). |
documentosReferenciados com RTC009 | servico[0].ibscbs.valores.operacao.documentosReferenciados | Com versaoEsquema RTC009 (NT009 item 2.3) os grupos vDedRed e gReeRepRes foram unificados em vAjusteBC. O campo 'documentosReferenciados' não é aceito: informe os documentos de ajuste em 'servico[0].ibscbs.ajusteBC' (os tipos de ajuste mudaram, consulte o domínio de tipoAjuste). |
codigoCIB e endereco na mesma unidade | servico[0].ibscbs.imovel.unidadesImoveis[0].codigoCIB | Informe 'codigoCIB' ou 'endereco' na unidade imobiliária, não os dois: são alternativos (cCIB ou end). |
numeroDeclaracaoImp com RTC009, só depois da liberação do item 2.12 | servico[0].infExterior.numeroDeclaracaoImp | Com versaoEsquema RTC009 (NT009 item 2.12) o campo 'numeroDeclaracaoImp' não é aceito: informe 'numeroDUIMP' |
numeroRegistroExp com RTC009, só depois da liberação do item 2.12 | servico[0].infExterior.numeroRegistroExp | Com versaoEsquema RTC009 (NT009 item 2.12) o campo 'numeroRegistroExp' não é aceito: informe 'numeroDUE' |
Imóvel legado na raiz (inscricaoFiscal, codigoCIB ou endereco) | servico[0].ibscbs.imovel.inscricaoFiscal | Com versaoEsquema RTC009 (NT009 item 2.6) o imóvel foi reestruturado e o campo 'inscricaoFiscal' na raiz de 'imovel' não é aceito: informe 'codigoMunicipio', 'locacao' e 'unidadesImoveis' (cada unidade com 'inscricaoFiscal' e 'codigoCIB' ou 'endereco'). |
tipoAjuste 1, 3 ou 4 (descontinuados na NT 2.3) | servico[0].ibscbs.ajusteBC[0].tipoAjuste | Valor inválido para o campo, valores aceitos: 2,5,6,7,8,9,99,101,102,103,104,105,199. Os tipos 1 (Alimentação e bebidas/frigobar), 3 (Produção Externa) e 4 (Reembolso de despesas) foram descontinuados na unificação em vAjusteBC (NT009 v1.01, item 2.3): use 2, 5 a 9, 99 ou 101 a 105, 199. |
nDI obrigatória (tipoMovimentacaoBens = 2), com o item 2.12 bloqueado (padrão) | servico[0].infExterior.numeroDeclaracaoImp | E0352: O preenchimento do campo numeroDeclaracaoImp (nDI - Número da Declaração de Importação) é obrigatório quando tipoMovimentacaoBens (movTempBens) for igual a 2. |
nDI/nRE proibidas (tipoMovimentacaoBens = 1), com o item 2.12 bloqueado (padrão) | servico[0].infExterior.numeroDeclaracaoImp e numeroRegistroExp | E0354: O preenchimento dos campos numeroDeclaracaoImp (nDI - Número da Declaração de Importação) ou numeroRegistroExp (nRE - Número do Registro de Exportação) não é permitido quando tipoMovimentacaoBens (movTempBens) for igual a 1. |
nRE obrigatória (tipoMovimentacaoBens = 3), com o item 2.12 bloqueado (padrão) | servico[0].infExterior.numeroRegistroExp | E0356: O preenchimento do campo numeroRegistroExp (nRE - Número do Registro de Exportação) é obrigatório quando tipoMovimentacaoBens (movTempBens) for igual a 3. |
DUIMP obrigatória (tipoMovimentacaoBens = 2), só com o item 2.12 liberado | servico[0].infExterior.numeroDUIMP | E0352: O preenchimento do campo numeroDUIMP (nDUIMP) é obrigatório quando tipoMovimentacaoBens (movTempBens) for igual a 2. |
DUIMP/DU-E proibidas (tipoMovimentacaoBens = 1), só com o item 2.12 liberado | servico[0].infExterior.numeroDUE | E0354: O preenchimento dos campos numeroDUIMP (nDUIMP) ou numeroDUE (nDUE) não é permitido quando tipoMovimentacaoBens (movTempBens) for igual a 1. |
DU-E obrigatória (tipoMovimentacaoBens = 3), só com o item 2.12 liberado | servico[0].infExterior.numeroDUE | E0356: O preenchimento do campo numeroDUE (nDUE) é obrigatório quando tipoMovimentacaoBens (movTempBens) for igual a 3. |
finalidadeNFSe diferente de 0 (item 2.2) | servico[0].ibscbs.finalidadeNFSe | Com versaoEsquema RTC009 o valor 1 do campo 'finalidadeNFSe' (NT009 item 2.2) ainda não é aceito pelo ambiente nacional |
tpNFSeDebito / tpNFSeCredito (item 2.2) | servico[0].ibscbs.tpNFSeDebito | Com versaoEsquema RTC009 o campo 'tpNFSeDebito' (NT009 item 2.2) ainda não é aceito pelo ambiente nacional |
valores.ajusteIBSCBS (item 2.2) | servico[0].ibscbs.valores.ajusteIBSCBS.valorIBS | Com versaoEsquema RTC009 o campo 'valorIBS' (NT009 item 2.2) ainda não é aceito pelo ambiente nacional |
regimeApuracaoIBSCBSSN (item 2.4) | regimeApuracaoIBSCBSSN | Com versaoEsquema RTC009 o campo 'regimeApuracaoIBSCBSSN' (NT009 item 2.4) ainda não é aceito pelo ambiente nacional |
codigoAtividadeSN (item 2.4) | servico[0].codigoAtividadeSN | Com versaoEsquema RTC009 o campo 'codigoAtividadeSN' (NT009 item 2.4) ainda não é aceito pelo ambiente nacional |
pagamentosVinculados (item 2.8) | servico[0].ibscbs.pagamentosVinculados | Com versaoEsquema RTC009 o campo 'pagamentosVinculados' (NT009 item 2.8) ainda não é aceito pelo ambiente nacional |
numeroDUIMP, numeroDUE, numeroFatura, valorFatura, numeroContratoCambio (item 2.12) | servico[0].infExterior.numeroDUIMP | Com versaoEsquema RTC009 o campo 'numeroDUIMP' (NT009 item 2.12) ainda não é aceito pelo ambiente nacional |
modoPrestacao = 5 (item 2.12) | servico[0].infExterior.modoPrestacao | Com versaoEsquema RTC009 o valor 5 do campo 'modoPrestacao' (NT009 item 2.12) ainda não é aceito pelo ambiente nacional |
valorAjusteBCIBSCBSComExt (item 2.13) | servico[0].ibscbs.valorAjusteBCIBSCBSComExt | Com versaoEsquema RTC009 o campo 'valorAjusteBCIBSCBSComExt' (NT009 item 2.13) ainda não é aceito pelo ambiente nacional |
evento.codigoCidade (item 2.14) | servico[0].evento.codigoCidade | Com versaoEsquema RTC009 o campo 'codigoCidade' (NT009 item 2.14) ainda não é aceito pelo ambiente nacional |
ajusteBC: nenhum documento informado (dFeNacional, docFiscalOutro ou docOutro) | servico[0].ibscbs.ajusteBC[0] | Erro de validação: informe exatamente um entre o documento nacional (nacional), o documento fiscal (fiscal) e o documento não fiscal (naoFiscal) em cada item de ajusteBC. |
valorAjusteBCISSQN e percentualAjusteBCISSQN juntos | servico[0].ibscbs.valorAjusteBCISSQN | Erro de validação: percentualAjusteBCISSQN e valorAjusteBCISSQN são exclusivos; informe só um. |
Unidade imobiliária sem codigoCIB nem endereco | servico[0].ibscbs.imovel.unidadesImoveis[0].codigoCIB | Erro de validação: informe codigoCIB ou endereco na unidade imobiliária. |
Comércio exterior sem valorServicos (vServMoeda), enquanto o item 2.12 não é aceito | servico[0].infExterior.valorServicos | Erro de validação: preenchimento obrigatório. |
descricaoAjuste da unidade imobiliária com tipoAjuste diferente de 99 (E0954) | servico[0].ibscbs.imovel.unidadesImoveis[0].ajustesBCLocImoveis[0].descricaoAjuste | E0954: A descrição do tipo de ajuste (dedução/redução) da Base de Cálculo do IBS/CBS (descricaoAjuste) não deve ser informada quando o tipo de ajuste (tipoAjuste - tpAjusteBCLocImoveis) for diferente de 99. |
Tomador ou intermediário com endereço no exterior sem logradouro, numero ou bairro (com e sem RTC009) | tomador.endereco.logradouro (ou numero, bairro; intermediario.endereco.*) | logradouro é obrigatório para tomador com endereço no exterior. (idem para numero e bairro; "intermediário" no intermediário). codigoPais diferente de BR/1058, ou codigoCidade = 9999999, indica endereço no exterior; o XML leva só os campos do exterior (endExt), sem código de município nem CEP nacionais. |
| CEP do exterior com mais de 11 caracteres, ou CEP nacional diferente de 8 (com e sem RTC009) | tomador.endereco.cep (ou intermediario.endereco.cep, servico[0].ibscbs.destinatario.endereco.cep, servico[0].ibscbs.ajusteBC[0].fornecedor.endereco.cep) | Erro de validação do tamanho: o código postal do exterior aceita de 1 a 11 caracteres; o CEP nacional tem 8 dígitos. |
intermediario.razaoSocial) é enviada no XML
(interm/xNome) quando você a informa, com e sem RTC009; ela é opcional na API, mas o leiaute de produção atual exige xNome no
intermediário (o XSD oficial da produção restrita aceita sem): informe-a. O campo estado do destinatário e do fornecedor do ajuste é a sigla de 2 letras no endereço nacional e, no exterior, texto livre de 1 a 60 caracteres (por exemplo Berlin). No fornecedor do ajuste com endereço no exterior, logradouro, numero e bairro são obrigatórios.
Versao=RTC009O Componente também rejeita (erro na conversão do TX2, sem gerar XML) os campos e blocos que a NT009 substituiu e os que o ambiente nacional ainda não aceita, como a API faz. Só valem com a linha Versao=RTC009 no cabeçalho do TX2; sem ela nada muda. No Componente, a liberação de cada item segue a da Sefin por ambiente e chega pelo AtualizarArquivos (arquivo nfseLocaisNacional.ini). Para usar a RTC009 é preciso rodar o AtualizarArquivos: ele traz os scripts, esquemas e o nfseLocaisNacional.ini da NT009, e é por ele que chega a liberação de cada item. Quem não atualizar fica sem a NT009 e, quando a Sefin mudar a posição do indDest/dest (item 2.11), terá as notas RTC009 rejeitadas. NumeroDeclaracaoImp e NumeroRegistroExp (nDI/nRE) são aceitos com Versao=RTC009 enquanto o item 2.12 não é aceito.
| Situação no TX2 | Mensagem do componente |
|---|---|
ValorDeducoes diferente de zero | Com Versao=RTC009 (NT009 item 2.3) o campo ValorDeducoes não é aceito: informe ValorAjusteBCISSQN. |
ValorPercDeducoes diferente de zero | Com Versao=RTC009 (NT009 item 2.3) o campo ValorPercDeducoes não é aceito: informe PercentualAjusteBCISSQN. |
Bloco INCLUIRDEDUCAO/SALVARDEDUCAO | Com Versao=RTC009 (NT009 item 2.3) o bloco INCLUIRDEDUCAO/SALVARDEDUCAO não é aceito: informe o ajuste da base de cálculo no bloco INCLUIRDOCAJUSTEBC/SALVARDOCAJUSTEBC, em PercentualAjusteBCISSQN ou em ValorAjusteBCISSQN. |
Bloco INCLUIRDOCUMENTOREFERENCIADO/SALVARDOCUMENTOREFERENCIADO | Com Versao=RTC009 (NT009 item 2.3) o bloco INCLUIRDOCUMENTOREFERENCIADO/SALVARDOCUMENTOREFERENCIADO não é aceito: informe os documentos no bloco INCLUIRDOCAJUSTEBC/SALVARDOCAJUSTEBC (tipos de ajuste 101 a 105 e 199). |
NumeroDUIMP, NumeroDUE, NumeroFatura, ValorFatura, NumeroContratoCambio (2.12) | Com Versao=RTC009 o campo NumeroDUIMP (NT009 item 2.12) ainda não é aceito pelo ambiente nacional |
FinalidadeNFSe diferente de 0 (2.2) | Com Versao=RTC009 o valor 1 do campo FinalidadeNFSe (NT009 item 2.2) ainda não é aceito pelo ambiente nacional |
TipoNFSeDebito / TipoNFSeCredito (2.2) | Com Versao=RTC009 o campo TipoNFSeDebito (NT009 item 2.2) ainda não é aceito pelo ambiente nacional |
ValorIBSAjuste / ValorCBSAjuste (2.2) | Com Versao=RTC009 o campo ValorIBSAjuste (NT009 item 2.2) ainda não é aceito pelo ambiente nacional |
RegimeApuracaoIBSCBSSN (2.4) | Com Versao=RTC009 o campo RegimeApuracaoIBSCBSSN (NT009 item 2.4) ainda não é aceito pelo ambiente nacional |
OptanteSimplesNacional = 4 (2.4) | Com Versao=RTC009 o valor 4 do campo OptanteSimplesNacional (NT009 item 2.4) ainda não é aceito pelo ambiente nacional |
CodigoAtividadeSN (2.4) | Com Versao=RTC009 o campo CodigoAtividadeSN (NT009 item 2.4) ainda não é aceito pelo ambiente nacional |
Bloco INCLUIRPAGAMENTO/SALVARPAGAMENTO (2.8) | Com Versao=RTC009 o bloco INCLUIRPAGAMENTO/SALVARPAGAMENTO (NT009 item 2.8) ainda não é aceito pelo ambiente nacional |
CodigoModoPrestacao = 5 (2.12) | Com Versao=RTC009 o valor 5 do campo CodigoModoPrestacao (NT009 item 2.12) ainda não é aceito pelo ambiente nacional |
ValorAjusteBCIBSCBSComExt (2.13) | Com Versao=RTC009 o campo ValorAjusteBCIBSCBSComExt (NT009 item 2.13) ainda não é aceito pelo ambiente nacional |
CodigoCidadeEvento (2.14) | Com Versao=RTC009 o campo CodigoCidadeEvento (NT009 item 2.14) ainda não é aceito pelo ambiente nacional |
Imóvel legado (InscricaoFiscalImovel, CodigoCIB, CepImovel, CodigoPostalImovel, DescricaoCidadeImovel, UfImovel, EnderecoImovel, NumeroImovel, ComplementoImovel, BairroImovel) | Com Versao=RTC009 (NT009 item 2.6) o campo <campo> não é aceito: o imóvel foi reestruturado. Informe CodigoMunicipioImovel e o bloco INCLUIRUNIDADEIMOBILIARIA/SALVARUNIDADEIMOBILIARIA (cada unidade com InscricaoFiscalImovelUnidade e CodigoCIBUnidade ou endereço). |
Bloco INCLUIRDOCAJUSTEBC sem documento (ChaveDFeAjuste, documento fiscal ou documento outro) | Informe exatamente um entre o documento nacional, o documento fiscal e o documento não fiscal (mensagem de validação do componente, com o nome dos campos TX2). |
PercentualAjusteBCISSQN e ValorAjusteBCISSQN juntos | São exclusivos: informe só um (mensagem de validação do componente). |
Unidade imobiliária sem CodigoCIBUnidade nem endereço, ou com os dois | Informe CodigoCIBUnidade ou o endereço da unidade, não os dois (mensagem de validação do componente). |
ValorServicosEstrangeiro (vServMoeda) vazio no comércio exterior | Preenchimento obrigatório enquanto o item 2.12 não é aceito (mensagem de validação do componente). |
DescricaoAjusteBCLocImoveisUnid com TipoAjusteBCLocImoveisUnidade diferente de 99 (E0954) | Com Versao=RTC009 (NT009 item 2.6) E0954: a descrição do tipo de ajuste (dedução/redução) da Base de Cálculo do IBS/CBS (DescricaoAjusteBCLocImoveisUnid, xTpAjusteBCLocImoveis) não deve ser informada quando o tipo de ajuste (TipoAjusteBCLocImoveisUnidade, tpAjusteBCLocImoveis) for diferente de 99. |
Basta trocar o valor de versaoEsquema de "RTC007" para "RTC009": retencao e apuracaoPropria continuam funcionando do mesmo jeito.
versaoEsquema: "RTC009" na notaimovel por codigoMunicipio, locacao e unidadesImoveis (com RTC009 os legados são rejeitados)deducao/documentosReferenciados (e valor.deducoes/valor.percentualDeducoes) por ajusteBC / valorAjusteBCISSQN / percentualAjusteBCISSQN: com RTC009 os campos antigos são rejeitadosnumeroDeclaracaoImp/numeroRegistroExp (nDI/nRE): com RTC009 eles são aceitos enquanto o item 2.12 não é aceito pelo ambiente nacional. Só troque por numeroDUIMP/numeroDUE depois da liberaçãocodigoOperacao quando o CST não tem gIBSCBS (ele é opcional)versaoEsquema: "RTC009" o XML do leiaute anterior é mantido e os campos exclusivos da NT009 são descartados, sem erro, exceto:
modoPrestacao = 5 é recusado com erro de validação; endereço no exterior exige logradouro, numero e bairro, e o cep do exterior aceita de 1 a 11 caracteres (erro 400 fora disso);
a razaoSocial do intermediário passa a ir no XML (xNome). Lembre também que, em homologação, a Sefin já só autoriza notas com RTC009 — veja a pergunta sobre 03/11.
RTC009: o XSD oficial de 20/10/2026 exige o finNFSe na raiz de infDPS. Em produção, o leiaute anterior continua aceito até a Sefin mudar; acompanhe o cronograma oficial.
Recomendamos testar em homologação com RTC009 e acompanhar o artigo da Central.
RTC009 inclui tudo o que a RTC007 faz: grupos retencao e apuracaoPropria, cálculo automático de tpRetPisCofins e vRetCSLL.
Não é preciso informar as duas versões.
RTC009 ele é opcional. Se o CST da operação não tem o grupo gIBSCBS (por exemplo 400, 410 e 820), não informe. Nos demais casos informe quando souber o código. A consistência é validada pela Sefin na autorização.
Para locação (99.03) o código deve ser 02XXXX.
RTC009, um campo da NT009 que a Sefin ainda não aceita na produção restrita (itens 2.2, 2.4, 2.8, 2.12, 2.13 ou 2.14). Remova o campo e reenvie. Ele fica documentado aqui e passa a funcionar quando a Sefin liberar e o PlugNotas desligar o bloqueio. O Componente rejeita os mesmos campos com Versao=RTC009.
numeroDUIMP (nDUIMP, Declaração Única de Importação) e numeroDUE (nDUE, Declaração Única de Exportação) substituem numeroDeclaracaoImp (nDI) e numeroRegistroExp (nRE) na NT009 (item 2.12), a partir da liberação da Release 2.
Com RTC009, enquanto o item 2.12 não é aceito pelo ambiente nacional, nDI e nRE são aceitos e enviados e nDUIMP/nDUE são rejeitados (o XSD oficial da Release 1 ainda tem nDI/nRE). Quando o item 2.12 for liberado, a situação se inverte. Sem RTC009 continuam como antes. A API não converte o valor de um no outro.
vServ = pCopropriedade × vTotOper (e a mesma proporção nos descontos). A API não calcula isso por você: informe o valor já proporcional em servico.valor e os totais da operação em imovel.locacao.
condominios) fazem parte da NT009, mas ainda não estão disponíveis na API do PlugNotas.