EntrarComeçar
Referência

Glossário fiscal

O vocabulário que a documentação usa. Cada verbete diz o que o termo é, quando ele aparece numa chamada à stackin, e leva para onde a doc trata do assunto a fundo.

Campos da requisição

Cada campo que você preenche, com o nome que ele tem em cada SDK e a tag que vira no XML. Os nomes são em inglês; o que eles significam é fiscal brasileiro.

Documento

CampoSDK (Python / Go / PHP)TipoExigido emTag no XML
document_typepy·document_typego·DocumentTypephp/ts·documentType"nfe" | "nfse"nfenfsemod
client_namepy·client_namego·ClientNamephp/ts·clientNamestring (1–120)nfenfsedest/xNome
tax_idpy·tax_idgo·TaxIDphp/ts·taxIdstring (11 | 14)nfenfsedest/CPF · dest/CNPJ
items[]py·itemsgo·Itemsphp/ts·itemsProduct[]nfenfsedet
recipient_addresspy·recipient_addressgo·RecipientAddressphp/ts·recipientAddressAddressnfedest/enderDest
seriespy·seriesgo·Seriesphp/ts·seriesstring—ide/serie
numberpy·numbergo·Numberphp/ts·numberstring—ide/nNF
contingencypy·—go·—php/ts·—booleannfeide/tpEmis
Idempotency-Keypy·idempotency_keygo·IdempotencyKeyphp/ts·idempotencyKeystring——

Item

CampoSDK (Python / Go / PHP)TipoExigido emTag no XML
items[].descriptionpy·descriptiongo·Descriptionphp/ts·descriptionstring (1–120)nfenfseprod/xProd
items[].unit_pricepy·unit_pricego·UnitPricephp/ts·unitPricedecimal (10)nfenfseprod/vUnCom
items[].amountpy·amountgo·Amountphp/ts·amountdecimal (2)nfenfseprod/vProd
items[].product.quantitypy·quantitygo·Quantityphp/ts·quantitydecimal (4)nfeprod/qCom
items[].product.unitpy·unitgo·Unitphp/ts·unitstring (≤6)nfeprod/uCom
items[].product.barcodepy·barcodego·Barcodephp/ts·barcodestring—prod/cEAN
items[].product.discountpy·discountgo·Discountphp/ts·discountdecimal (2)—prod/vDesc
items[].product.freightpy·freightgo·Freightphp/ts·freightdecimal (2)—prod/vFrete
items[].product.insurancepy·insurancego·Insurancephp/ts·insurancedecimal (2)—prod/vSeg
items[].product.other_expensespy·other_expensesgo·OtherExpensesphp/ts·otherExpensesdecimal (2)—prod/vOutro
items[].discountpy·discountgo·Discountphp/ts·discountdecimal (2)nfsevDescCondIncond/vDescIncond
items[].service_codepy·service_codego·ServiceCodephp/ts·serviceCodestringnfsecServ/cTribNac
items[].tax_retainedpy·tax_retainedgo·TaxRetainedphp/ts·taxRetainedbooleannfsetribMun/tpRetISSQN
items[].observationspy·observationsgo·Observationsphp/ts·observationsstring (≤2000)nfseinfAdic/infCpl

Item — campos brasileiros

CampoSDK (Python / Go / PHP)TipoExigido emTag no XML
items[].product.br.ncmpy·ncmgo·NCMphp/ts·ncmstring (8)nfeprod/NCM
items[].product.br.cfoppy·cfopgo·CFOPphp/ts·cfopstring (4)nfeprod/CFOP
items[].product.br.cestpy·cestgo·CESTphp/ts·ceststring (7)—prod/CEST
items[].product.br.taxpy·taxgo·Taxphp/ts·taxTaxnfeimposto
items[].product.br.manufacturer_cnpjpy·manufacturer_cnpjgo·ManufacturerCNPJphp/ts·manufacturerCnpjstring (14)—prod/CNPJFab
items[].product.br.ibs_cbspy·ibs_cbsgo·IbsCbsphp/ts·ibsCbsIbsCbsnfeimposto/IBSCBS

Endereço do destinatário

CampoSDK (Python / Go / PHP)TipoExigido emTag no XML
recipient_address.streetpy·streetgo·Streetphp/ts·streetstringnfeenderDest/xLgr
recipient_address.numberpy·numbergo·Numberphp/ts·numberstringnfeenderDest/nro
recipient_address.neighborhoodpy·neighborhoodgo·Neighborhoodphp/ts·neighborhoodstringnfeenderDest/xBairro
recipient_address.citypy·citygo·Cityphp/ts·citystringnfeenderDest/xMun
recipient_address.statepy·statego·Statephp/ts·statestring (2)nfeenderDest/UF
recipient_address.zip_codepy·zip_codego·ZipCodephp/ts·zipCodestring (8)nfeenderDest/CEP
recipient_address.city_codepy·city_codego·CityCodephp/ts·cityCodestring (7)nfeenderDest/cMun

Documentos

NF-e
Modelo 55, emitida a cada saída de mercadoria. O que a distingue na prática: cada item exige NCM e CFOP, o destinatário exige endereço completo com código de município, e a autorização é estadual — quem responde é a SEFAZ do estado do emitente. É a única que aceita carta de correção e inutilização de faixa.document_type: "nfe"ReferênciasPortal Nacional da NF-eEsquemas XML espelhadosVer na API
NFS-e
Documento municipal de serviço. Não há mercadoria, então não há NCM nem CFOP: cada item precisa de descrição, preço e o código de serviço da LC 116. Endereço do tomador é opcional. Não existe carta de correção — corrigir significa cancelar e emitir de novo, dentro do prazo do município.document_type: "nfse"ReferênciasNFS-e Nacional (gov.br)Lei Complementar 116/2003Ver na API
DPS
É o que efetivamente sobe para o ambiente nacional: a DPS é a declaração que o emitente manda, e a nota é o que o ADN devolve a partir dela. Você nunca monta uma DPS na stackin — a API monta a partir dos campos de negócio e guarda o XML resultante.ReferênciasNFS-e — documentação técnicaPublicações NFS-e espelhadas
DANFE
Papel que acompanha a carga, com o código de barras da chave de acesso para leitura em barreira fiscal. Não é o documento fiscal: é uma representação dele. Uma DANFE sem o XML correspondente autorizado não prova nada.GET /invoices/{access_key}/pdfReferênciasPortal Nacional da NF-eVer na API
DANFSe
Representação impressa da NFS-e, gerada pelo ambiente nacional. Mesma relação: o valor jurídico está no XML, o PDF é para o cliente ler.GET /invoices/{access_key}/pdfReferênciasNFS-e Nacional (gov.br)
XML
O documento em si. É ele que é assinado com o certificado A1 do emitente, é ele que a SEFAZ ou o ADN autoriza, e é ele que precisa ser guardado por cinco anos. Todo o resto — PDF, e-mail, tela — é representação.xmlReferênciasEsquemas XML espelhadosVer na API

Quem participa

SEFAZ
Autorizadora estadual da NF-e. Cada estado tem a sua, com disponibilidade própria: uma SEFAZ fora do ar não derruba as outras, e é por isso que existe contingência. As rejeições vêm dela, com código numérico e motivo.ReferênciasPortal Nacional da NF-ePortal DF-e SVRSVer na API
ADN
Ambiente de Dados Nacional da NFS-e. Centraliza a emissão dos municípios que aderiram ao padrão nacional, o que substitui uma integração por prefeitura por uma só. Municípios que não aderiram continuam com sistema próprio.ReferênciasNFS-e Nacional (gov.br)NFS-e — documentação técnica
Emitente
Quem emite a nota. Na stackin o emitente nunca vai no corpo da requisição: CNPJ, inscrição estadual, endereço, regime tributário, certificado e ambiente são resolvidos a partir da API key. Isso é deliberado — significa que uma key vazada não permite emitir em nome de outra empresa.ReferênciasCNPJ — Receita Federal
Destinatário
Quem recebe. Para NF-e o endereço é obrigatório e completo, incluindo o código IBGE do município; para NFS-e é opcional. O tax_id aceita CPF ou CNPJ e decide sozinho qual dos dois é, pelo comprimento.client_nametax_idrecipient_addressReferênciasCódigos de município — IBGEVer na API

Campos e identificadores

Chave de acesso
44 dígitos na NF-e, 50 na NFS-e. Não é aleatória: carrega UF, ano e mês, CNPJ do emitente, modelo, série, número, tipo de emissão e um dígito verificador. É por ela que se consulta e se cancela um documento — e é o que vai no código de barras da DANFE.access_keyReferênciasPortal Nacional da NF-eNotas Técnicas espelhadasVer na API
Protocolo
O número que a autorizadora devolve quando aceita o documento. Só existe depois da autorização: um documento rejeitado não tem protocolo, e é por isso que ele vem nulo enquanto o status não for autorizado.protocolReferênciasPortal Nacional da NF-e
Série e número
Numeração sequencial por emitente, por série e por modelo. Não pode ter buraco: se um número foi queimado e nunca virou documento autorizado, ele precisa ser inutilizado formalmente, senão a SEFAZ cobra a explicação em fiscalização.seriesnumberReferênciasPortal Nacional da NF-eVer na API
Preço unitário e valor da linha
unit_price é o preço de uma unidade; amount é o valor bruto total da linha, antes de desconto e acréscimos. Envie um dos dois — mandar os dois é afirmar que fecham, e a API compara quantity × unit_price com amount antes de transmitir. No XML viram vUnCom (10 casas) e vProd (2 casas).items[].unit_priceitems[].amountitems[].product.quantityReferênciasEsquemas XML espelhadosPortal Nacional da NF-eVer na API
Encargos do item
Desconto, frete, seguro e outras despesas entram por item, não na nota. O total do item é bruto − desconto + frete + seguro + outras despesas, e a soma desses campos alimenta os totalizadores vDesc, vFrete, vSeg e vOutro. Desconto maior que o valor bruto é recusado antes da transmissão.items[].product.discountitems[].product.freightitems[].product.insuranceitems[].product.other_expensesReferênciasEsquemas XML espelhadosVer na API
CFOP
Quatro dígitos que dizem a natureza da operação: o primeiro é o destino (5 dentro do estado, 6 fora, 7 exterior) e os outros três a finalidade — venda, devolução, remessa, industrialização. É o campo que determina como o estado tributa a operação, então um CFOP errado gera imposto errado, não erro de schema.items[].product.br.cfopReferênciasAjuste SINIEF 07/05Ver na API
NCM
Oito dígitos que classificam a mercadoria no Mercosul. Define alíquota de IPI, tratamento de ICMS-ST e regime de importação. A stackin valida o formato, nunca a escolha: qual NCM se aplica ao seu produto é decisão fiscal do emitente.items[].product.br.ncmReferênciasNCM — Receita FederalVer na API
CEST
Sete dígitos, obrigatórios apenas para mercadoria sujeita a substituição tributária. Se o produto não está no regime, o campo simplesmente não vai — mandar CEST em produto fora do ST é motivo de rejeição.items[].product.br.cestReferênciasConvênio ICMS 142/18
Unidade comercial
A unidade em que a mercadoria é vendida — UN, CX, KG, L. É texto livre de até 6 caracteres no XML, não uma lista fechada, mas precisa ser coerente com a quantidade: 2 CX a R$ 120,00 é diferente de 2 UN a R$ 120,00 na hora de conferir a carga.items[].product.unitReferênciasEsquemas XML espelhados
GTIN
O GTIN real do produto, quando existe. Quando não existe, o XML leva a literal SEM GTIN — que é o que a stackin envia se você omitir o campo. Mandar um número inventado é pior que omitir: o dígito verificador é conferido.items[].product.barcodeReferênciasNotas Técnicas espelhadas
Código de serviço
O item da lista da LC 116/2003 — 1.07, 7.02 e assim por diante. Cada município desdobra essa lista do seu jeito, então o mesmo serviço pode ter subitem diferente por cidade. Sem ele, a stackin usa o código do perfil fiscal da empresa.items[].service_codeReferênciasLei Complementar 116/2003NFS-e — documentação técnicaVer na API
CNPJ e CPF
CPF (11 dígitos) ou CNPJ (14). Desde 2026-07-31 o CNPJ é alfanumérico: os 12 primeiros caracteres podem ser letras, só os 2 dígitos verificadores continuam numéricos. Valide comprimento e formato, nunca a regra de dígito de uma revisão antiga — ela rejeita documento válido.tax_idReferênciasCNPJ — Receita FederalVer na API
Código de município
Código IBGE de 7 dígitos do município. Obrigatório na NF-e para emitente e destinatário, e é ele — não o nome da cidade — que a SEFAZ usa. Cidade escrita certo com código errado é rejeição.recipient_address.city_codeReferênciasCódigos de município — IBGE

Eventos

Cancelamento
Evento posterior à autorização, com prazo legal contado da autorização (24 horas na maioria dos estados para NF-e) e motivo de no mínimo 15 caracteres. Depois do prazo não existe cancelamento: a saída é nota de devolução. Cancelar não apaga o documento, registra um evento sobre ele.POST /invoices/{access_key}/cancelreasonReferênciasPortal Nacional da NF-eNotas Técnicas espelhadasVer na API
CC-e
Carta de Correção eletrônica. Corrige o que não altera valor, imposto, emitente ou destinatário — tipicamente descrição, dados de transporte, informações complementares. Só NF-e. Até 20 cartas por documento, e cada uma substitui a anterior.POST /invoices/{access_key}/correctioncorrectionReferênciasPortal Nacional da NF-eNotas Técnicas espelhadasVer na API
Inutilização
Declara à SEFAZ que uma faixa de numeração não virou documento — queimada por falha de sistema, por exemplo. É o que impede um buraco na sequência de virar problema em fiscalização. Não serve para desfazer nota autorizada: para isso é cancelamento.POST /invoices/invalidationsnumber_startnumber_endReferênciasPortal Nacional da NF-eVer na API
Reemissão
Reenvio de um documento que foi rejeitado ou falhou na transmissão. Consome um número novo, porque o anterior foi queimado. A stackin guarda os itens da tentativa original, então a reemissão não pede o corpo de novo.POST /invoices/{invoice_id}/reissueVer na API
Rejeição
Resposta da autorizadora recusando o documento, com código numérico e motivo. Rejeição não é erro de rede nem bug: é o fisco dizendo que o conteúdo está errado. O código é o que importa — a 972, por exemplo, é ausência do grupo de responsável técnico.statusdetailReferênciasNotas Técnicas espelhadasPortal Nacional da NF-eVer na API

Ambientes

Homologação
Ambiente de teste da própria autorizadora. Documento emitido ali não tem valor fiscal e o destinatário sai como NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL por exigência do fisco. Use à vontade: é gratuito e ilimitado.ReferênciasPortal Nacional da NF-eVer na API
Produção
Ambiente real. Documento emitido aqui tem valor jurídico, entra na apuração de imposto e só sai por cancelamento dentro do prazo. O ambiente é fixado na API key, não vai na chamada — não existe emitir em produção por engano trocando um parâmetro.ReferênciasPortal Nacional da NF-eVer na API
Contingência
Caminho alternativo quando a SEFAZ do estado está indisponível: o documento vai para um ambiente nacional (SVC-AN ou SVC-RS, conforme a UF) em vez de esperar. Muda o tipo de emissão dentro do XML, então não é só um retry.contingencyReferênciasPortal DF-e SVRSNotas Técnicas espelhadas
data-source
O espelho público das publicações oficiais que a stackin acompanha: notas técnicas, esquemas XML e manuais da NF-e e da NFS-e, varridos a cada 6 horas, versionados e publicados como feed Atom e manifest JSON. É a fonte que responde 'mudou alguma coisa no leiaute?' sem entrar em portal nenhum.Referênciasstackin-io/data-sourceNotas Técnicas espelhadasEsquemas XML espelhados
Confiável

Mais de 99,9% de uptime

Seguro

Dados criptografados e LGPD ready

Rápido

Infraestrutura escalável e de baixa latência

IA em primeiro lugar

Servidor MCP oficial — emita por agente

© 2026 stackin. Todos os direitos reservados.Feito com código, propósito e café.Política de PrivacidadeTermos de UsoContato