Empresas
Ciclo de vida de uma empresa emitente na TF Fiscal, como uma empresa atende NF-e, CT-e, DC-e e NFS-e, derivação do regime tributário, habilitação de DC-e e de NFS-e e os códigos de erro relacionados.
O que é uma empresa
Uma empresa (empresa) é a entidade legal em nome da qual os documentos são emitidos: o vendedor de um marketplace, uma transportadora ou um integrador emitindo para si mesmo. Toda empresa é identificada pelo empresaId devolvido por Registrar empresa, que é a variável de caminho de todos os endpoints de emissão, consulta e cancelamento.
| Etapa | Endpoint | Observações |
|---|---|---|
| 1 Registrar empresa | POST /openapi/v2/empresas | Devolve empresaId, dceHabilitado e nfseHabilitado; um corpo com id atualiza uma empresa existente |
| 2 Vincular certificado | POST /openapi/v1/empresas/{empresaId}/certificadoDigital | Certificado A1 (.pfx / .p12) e sua senha; multipart ou JSON + Base64 |
| 3 Registrar webhook | POST /openapi/v1/webhooks | Uma URL de callback por aplicação, compartilhada por todos os tipos de documento |
Ciclo de vida
- Cadastro: uma chamada bem-sucedida a Registrar empresa coloca a empresa na fila de aprovação da plataforma. Cadastrar o mesmo CNPJ de novo devolve
10003002; reutilize oempresaIdoriginal ou envie uma atualização comid. - Certificado: vincule o certificado A1. O certificado deve pertencer ao CNPJ da empresa (
10003010), estar válido (10003011) e ser diferente do atualmente ativo (10003012); senha errada devolveCER0005. Um envio bem-sucedido substitui o certificado anterior. - Aprovação: a operação aprova a empresa. A empresa só emite depois que a operação a aprova e o certificado está vinculado. Emitir antes disso devolve
10004004para NF-e (DCe00008para DC-e,10017004para CT-e). Consulte o andamento da aprovação com a operação da plataforma. - Ambiente: toda empresa tem um ambiente atual, homologação
Homologacaoou produçãoProducao. Empresas recém-cadastradas começam em homologação; a troca para produção é uma ação da operação, sem API. O valor de ambiente em toda requisição de emissão (ambienteEmissaopara NF-e e CT-e,ambientepara DC-e) deve ser igual ao ambiente atual da empresa; divergência devolve10004030(NF-e),10017010(CT-e) ouDCe00004(DC-e). Veja Ambientes.
Nota: uma atualização (corpo com
id) nunca ressubmete a empresa para revisão e nunca altera seu status ou ambiente.
Uma empresa, quatro tipos de documento
O mesmo empresaId, o mesmo certificado e o mesmo webhook atendem todos os tipos de documento. O que muda é a série de numeração que cada tipo exige:
| Tipo de documento | Modelo | Série configurada por | Campo de ambiente | Código de não emissão |
|---|---|---|---|---|
| NF-e | 55 | emissaoNFeProduto.ambienteProducao (sequencialNFe / serieNFe) no cadastro | ambienteEmissao | 10004004 |
| CT-e | 57 | Configurada do lado da plataforma; o cadastro não tem bloco de CT-e. Sem série, ou com várias habilitadas e nenhuma escolhida, a emissão devolve 10017007 | ambienteEmissao | 10017004 |
| DC-e | 99 | emissaoDCe.ambienteProducao (tipoEmitente, sequencialDCe / serieDCe, siteMarketplace) no cadastro ou em uma atualização com id | ambiente | DCe00008 |
| NFS-e | — | emissaoNFSe (serieDps e os demais valores padrão do perfil) no cadastro ou em uma atualização com id, ou mantido pela operação | ambienteEmissao | 10018004 |
emissaoNFeProduto,emissaoDCeeemissaoNFSesão cada um opcional, mas pelo menos um é obrigatório. Uma empresa só de NF-e envia o primeiro, uma empresa só de DC-e ou só de NFS-e pode omiti-lo (nenhuma série do modelo 55 é criada) e enviar mais de um habilita os tipos de documento correspondentes. Omitir os três devolve 40010001001.- A série e o próximo número enviados no cadastro são os usados na emissão; depois disso a plataforma gerencia a sequência.
- A emissão de CT-e exige ainda que o CNPJ esteja habilitado para CT-e na SEFAZ estadual; sem isso a SEFAZ rejeita com
230 - IE do emitente não cadastrada, o que a plataforma não pode resolver.
Derivação do regime tributário
O regime da empresa é derivado de dois booleanos enviados no cadastro e não pode ser alterado por atualização:
mei | optanteSimplesNacional | Regime |
|---|---|---|
true | qualquer | MEI |
false | true | Simples Nacional |
false | false | Regime normal |
O regime determina a família de código tributário que um item de NF-e pode usar (CSOSN para Simples / MEI, CST para o regime normal); veja NF-e. Ele também define se regimeApuracaoSn é obrigatório no perfil de NFS-e, veja abaixo. inscricaoEstadual é obrigatória para emitir NF-e, CT-e e DC-e: ausente devolve 10003006; uma empresa só de NFS-e não precisa de inscrição estadual.
Habilitando DC-e
O DC-e (modelo 99) é habilitado pelo bloco emissaoDCe:
"emissaoDCe": {"ambienteProducao": {"tipoEmitente": "Marketplace","sequencialDCe": 1,"serieDCe": "1","siteMarketplace": "https://loja.exemplo.com.br"}}
tipoEmitenteéMarketplace(uma plataforma emitindo em nome de vendedores não contribuintes / pessoas físicas) ouOwnIssuer(uma empresa emitindo para si mesma).Carrierpode ser cadastrado, mas a emissão é rejeitada com10019013.siteMarketplaceé obrigatório paraMarketplace.- Uma empresa cadastrada sem
emissaoDCenão fica habilitada para DC-e: o cadastro é aceito, a resposta trazdceHabilitado=falsee a emissão devolveDCe00004. Confira esse campo logo após cadastrar. - Para habilitar DC-e depois, reenvie o payload de cadastro com
ide o blocoemissaoDCe. A série do modelo 99 só avança:sequencialDCepode elevar o próximo número, mas nunca reduzi-lo (40010001001), e trocarserieDCeenquanto a série antiga continua habilitada é recusado (40010001001, passe pela operação).
Habilitando NFS-e
A NFS-e é habilitada pelo bloco emissaoNFSe. Só com ele a empresa passa a emitir NFS-e e ganha a sequência de numeração. Aqui ficam apenas os dados que não mudam de uma nota para outra: código de serviço, CNAE, NBS, alíquota de ISS, retenção e IBS/CBS acompanham o serviço vendido e vão no bloco servico de cada emissão.
"emissaoNFSe": {"serieDps": "1","sequencialDps": 1,"regimeApuracaoSn": 1,"regimeEspecialTributacao": 0}
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
serieDps | string(1-5 dígitos) | Não | Série do DPS / RPS usada na emissão. Toda nota usa este valor; a emissão não aceita série própria. Sem este campo, 1 |
sequencialDps | integer | Não | Número da próxima nota a emitir, a partir de 1. Ao migrar de outro emissor, envie o maior número já usado mais um para a numeração continuar de onde parou. Sem este campo, 1. Uma vez criada a sequência, a atualização não a altera |
regimeApuracaoSn | integer | Obrigatório para ME/EPP | Como o Simples Nacional apura o imposto: 1 federal e municipal pelo SN / 2 federal pelo SN e municipal fixo / 3 federal pelo SN e municipal normal. A adesão ao Simples vem de optanteSimplesNacional / mei no nível superior. Enviar em empresa fora do Simples é rejeitado |
regimeEspecialTributacao | integer | Não | Se há tratamento tributário especial: 0 nenhum / 1 ato cooperado / 2 estimativa / 3 microempresa municipal / 4 notarial e registral / 5 profissional autônomo / 6 sociedade de profissionais. Sem este campo, 0 |
- A resposta do cadastro passa a trazer
nfseHabilitado:{ "empresaId": "…", "dceHabilitado": false, "nfseHabilitado": true }. Sem o bloco éfalsee a emissão devolve10018005. - Na atualização (corpo com
id) enviar o bloco substitui o perfil inteiro: opcionais omitidos voltam ao padrão; sem o bloco o perfil não muda enfseHabilitadoreflete o estado atual. Forçar o padrão municipal é ação da operação, não passa por este bloco. - Regras estruturais rejeitadas já na aceitação (400
10001001): ME/EPP semregimeApuracaoSn, empresa fora do Simples comregimeApuracaoSn. - Uma empresa só de NFS-e pode omitir
emissaoNFeProduto(nenhuma série do modelo 55 é criada) e não precisa deinscricaoEstadual. - A inscrição municipal (CCM) de São Paulo vem do
inscricaoMunicipaldo nível superior e não se repete neste bloco.
Códigos de erro relacionados
| codigo | HTTP | Cenário | Ação |
|---|---|---|---|
10003002 | 400 | CNPJ já cadastrado | A empresa existe: use o empresaId original ou atualize com id |
10003000 | 404 | empresaId não existe ou não pertence a esta aplicação | Verifique o empresaId |
10003006 | 400 | Dados de cadastro sem a IE | Informe inscricaoEstadual |
10003010 / 10003011 / 10003012 | 400 | CNPJ do certificado divergente / expirado / idêntico ao atual | Use o certificado correto |
10003035 | 400 | Base64 inválido ou certificado acima de 1MB (forma JSON) | Corrija a codificação ou o arquivo |
CER0005 | 400 | Senha do certificado não confere | Verifique a senha |
GW001 | 400 | Cadastro: cidade / estado não resolvem para um código IBGE | Verifique a UF e o nome da cidade |
10004004 | 400 | Empresa não apta a emitir (ainda não aprovada ou certificado não pronto) | Aguarde a aprovação / vincule o certificado |
10004030 | 400 | ambienteEmissao diferente do ambiente atual da empresa | Submeta no ambiente da empresa ou peça à operação para trocá-lo |
10001001 | 400 | Falha de validação de campos, ou erro de contrato de cadastro / atualização (os três blocos de configuração ausentes, atualização alterando cnpj / município, redução do cursor da série DC-e, troca de série, regras estruturais de emissaoNFSe não atendidas) | Corrija conforme mensagem |
A lista completa está em Códigos de erro.
