Pular para o conteúdo principal

API de Empresas (Companies)

Gerencie empresas emissoras de documentos fiscais

Navegação


Visão Geral

A Empresa é a entidade central do sistema que representa a personalidade jurídica do negócio. Ela atua como um "Hub de Identidade", concentrando todos os dados que são universais e imutáveis, independentemente do tipo de tributação ou esfera governamental.


Anatomia de uma Empresa

Conceitos Fundamentais

Ao criar uma empresa, você define quem ela é. Esses dados servem de base para qualquer emissão fiscal:

ConceitoCampos na APIDescrição
Identificação FiscalFederalTaxNumberCNPJ - identificador único perante a Receita Federal
Nomes FormaisName, TradeNameRazão Social (obrigatório) e Nome Fantasia
Localização BaseAddressEndereço fiscal de referência para todos os contextos
Regime TributárioTaxRegimeSimples Nacional, Lucro Presumido, etc.

Campos Gerenciados pelo Sistema

Além dos dados que você informa, o sistema gera e mantém automaticamente:

CampoTipoQuando é definido
IdstringGerado na criação
AccountIdstringVinculado à sua conta/tenant
StatusenumInicia como Active
TypeenumTipo de pessoa (PersonType)
MunicipalTaxNumberInscrição Municipal (legado)Vinculado a Inscrição Municipal utilizada para emissão de notas fiscais de serviço
CreatedOndatetimeData/hora da criação
ModifiedOndatetimeAtualizado a cada alteração

Campos de Contexto Tributário

Estes campos conectam a empresa às suas obrigações fiscais específicas:

CampoDescriçãoComo é preenchido
StateTaxesIDs das Inscrições EstaduaisVinculado ao criar IE → Ver StateTax API
MunicipalTaxesIDs das Inscrições MunicipaisVinculado ao criar IM → Ver MunicipalTax API
STStateTaxNumberIE Substituto TributárioOpcional na criação
SuframaTaxNumberInscrição SUFRAMAOpcional na criação
CertificateCertificado Digital A1Vinculado ao adicionar certificado → Ver Certificate API

Referência Completa de Propriedades

📋 Expandir tabela completa
PropriedadeTipoObrigatórioDescrição
IdstringIdentificador único (gerado)
AccountIdstringConta/tenant proprietária
NamestringRazão social (2-60 caracteres)
TradeNamestringNome fantasia
FederalTaxNumberlongCNPJ (somente dígitos)
MunicipalTaxNumberstringInscrição Municipal
STStateTaxNumberstringIE Substituto Tributário
SuframaTaxNumberlongInscrição SUFRAMA
TaxRegimeenumRegime tributário
StatusenumStatus operacional
TypeenumTipo de pessoa
AddressobjectEndereço completo
StateTaxesarrayIDs de IEs vinculadas
MunicipalTaxesarrayIDs de IMs vinculadas
CertificateobjectMetadados do certificado
CreatedOndatetimeData de criação
ModifiedOndatetimeÚltima modificação

Endpoints

MétodoEndpointDescrição
POST/v2/companiesCriar empresa
GET/v2/companiesListar empresas
GET/v2/companies/{company_id}Consultar empresa
HEAD/v2/companies/{company_id}Verificar existência
PUT/v2/companies/{company_id}Alterar empresa
DELETE/v2/companies/{company_id}Excluir empresa
Autenticação

Todos os endpoints exigem autenticação via API Key: Authorization: <sua_api_key>

Saiba como obter sua API Key


Criar uma Empresa

Cria uma nova empresa na plataforma.

Criar pela Plataforma

Você também pode criar empresas diretamente pela interface da plataforma NFE.io. Veja o passo a passo em: Criar Empresa

POST /v2/companies

Headers

HeaderValor
Content-Typeapplication/json
Authorization<sua_api_key>

Corpo da Requisição

{
"Company": {
"Name": "ACME Tecnologia LTDA",
"TradeName": "ACME Tech",
"FederalTaxNumber": "12345678000199",
"TaxRegime": "SimplesNacional",
"Address": {
"State": "SP",
"City": {
"Code": "3550308",
"Name": "São Paulo"
},
"District": "Centro",
"Street": "Rua Exemplo",
"Number": "100",
"AdditionalInformation": "Sala 501",
"PostalCode": "01001000",
"Country": "BRA"
}
}
}

Parâmetros do Corpo

CampoTipoObrigatórioDescrição
NamestringRazão social
AccountIdstringID da conta proprietária
TradeNamestringNome fantasia
FederalTaxNumberlongCNPJ como número (somente dígitos)
TaxRegimeenumRegime tributário
AddressobjectEndereço completo

Objeto Address

CampoTipoObrigatórioDescrição
StatestringUF (2 letras, ex: SP, RJ)
City.CodestringCódigo IBGE da cidade (7 dígitos)
City.NamestringNome da cidade
DistrictstringBairro (mínimo 2 caracteres)
StreetPrefixstringPrefixo do logradouro (Rua, Av., etc.)
StreetstringLogradouro (mínimo 5 caracteres, com prefixo válido)
NumberstringNúmero
AdditionalInformationstringComplemento
PostalCodestringCEP (8 dígitos, somente números)
CountrystringPaís (código ISO 3, ex: BRA)

Resposta de Sucesso

Status: 200 OK

{
"Company": {
"Id": "company_abc123",
"AccountId": "acct_12345",
"Name": "ACME Tecnologia LTDA",
"TradeName": "ACME Tech",
"FederalTaxNumber": 12345678000199,
"MunicipalTaxNumber": null,
"TaxRegime": "SimplesNacional",
"Status": "Active",
"StateTaxes": [],
"MunicipalTaxes": [],
"CreatedOn": "2024-01-15T10:30:00Z",
"ModifiedOn": null,
"Address": {
"State": "SP",
"City": {
"Code": "3550308",
"Name": "São Paulo"
},
"District": "Centro",
"StreetPrefix": "Rua",
"Street": "Rua Exemplo",
"Number": "100",
"AdditionalInformation": "Sala 501",
"PostalCode": "01001000",
"Country": "BRA"
}
}
}

Respostas de Erro

StatusDescrição
400 Bad RequestDados inválidos
{
"Errors": [
{
"Code": 40045,
"Message": "city code is null or empty"
}
]
}

Exemplo cURL

curl -X POST https://api.nfse.io/v2/companies \
-H "Authorization: sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"Company": {
"Name": "ACME Tecnologia LTDA",
"FederalTaxNumber": "12345678000199",
"TaxRegime": "SimplesNacional",
"Address": {
"State": "SP",
"City": { "Code": "3550308", "Name": "São Paulo" },
"District": "Centro",
"Street": "Rua Exemplo",
"Number": "100",
"PostalCode": "01001000",
"Country": "BRA"
}
}
}'

Exemplo PowerShell

$headers = @{ Authorization = "sk_live_xxx" }
$body = @{
Company = @{
Name = "ACME Tecnologia LTDA"
FederalTaxNumber = "12345678000199"
TaxRegime = "SimplesNacional"
Address = @{
State = "SP"
City = @{ Code = "3550308"; Name = "São Paulo" }
District = "Centro"
Street = "Rua Exemplo"
Number = "100"
PostalCode = "01001000"
Country = "BRA"
}
}
} | ConvertTo-Json -Depth 10

Invoke-RestMethod -Uri "https://api.nfse.io/v2/companies" `
-Method Post -Headers $headers -Body $body -ContentType "application/json"

Listar Empresas

Lista todas as empresas da conta com paginação.

GET /v2/companies

Headers

HeaderValor
Acceptapplication/json
Authorization<sua_api_key>

Parâmetros de Query

ParâmetroTipoPadrãoDescrição
limitint10Limite de resultados (1-50)
startingAfterstringID do cursor para próxima página
endingBeforestringID do cursor para página anterior

Ordenação

  • Primária: Name (ascendente)
  • Secundária: Id (ascendente)

Resposta de Sucesso

Status: 200 OK

{
"hasMore": true,
"companies": [
{
"Id": "company_abc123",
"AccountId": "acct_12345",
"Name": "ACME Tecnologia",
"TradeName": "ACME",
"FederalTaxNumber": 12345678000199,
"MunicipalTaxNumber": null,
"TaxRegime": "SimplesNacional",
"Status": "Active",
"StateTaxes": ["statetax_xyz789"],
"MunicipalTaxes": [],
"CreatedOn": "2024-01-15T10:30:00Z",
"ModifiedOn": "2024-02-20T14:45:00Z",
"Address": {
"State": "SP",
"City": { "Code": "3550308", "Name": "São Paulo" },
"District": "Centro",
"StreetPrefix": "Rua",
"Street": "Rua Exemplo",
"Number": "100",
"PostalCode": "01001000",
"Country": "BRA"
}
},
{
"Id": "company_def456",
"AccountId": "acct_12345",
"Name": "Beta Serviços",
"TradeName": "Beta",
"FederalTaxNumber": 98765432000188,
"MunicipalTaxNumber": null,
"TaxRegime": "LucroPresumido",
"Status": "Active",
"StateTaxes": [],
"MunicipalTaxes": ["municipaltax_abc123"],
"CreatedOn": "2024-01-20T08:00:00Z",
"ModifiedOn": null,
"Address": {
"State": "RJ",
"City": { "Code": "3304557", "Name": "Rio de Janeiro" },
"District": "Centro",
"StreetPrefix": "Avenida",
"Street": "Av. Rio Branco",
"Number": "200",
"PostalCode": "20040020",
"Country": "BRA"
}
}
]
}

Paginação

Use o Id do último item como startingAfter para obter a próxima página:

GET /v2/companies?limit=20&startingAfter=company_def456

Respostas de Erro

StatusDescrição
400 Bad RequestParâmetros inválidos
404 Not FoundCursor não encontrado

Exemplo cURL

curl -X GET "https://api.nfse.io/v2/companies?limit=20" \
-H "Authorization: sk_live_xxx"

Consultar Empresa por ID

Retorna os detalhes de uma empresa específica.

GET /v2/companies/{company_id}

Parâmetros de Rota

ParâmetroTipoDescrição
company_idstringID da empresa

Headers

HeaderValor
Acceptapplication/json
Authorization<sua_api_key>

Resposta de Sucesso

Status: 200 OK

{
"Company": {
"Id": "company_abc123",
"AccountId": "acct_12345",
"Name": "ACME Tecnologia LTDA",
"TradeName": "ACME Tech",
"FederalTaxNumber": 12345678000199,
"MunicipalTaxNumber": null,
"TaxRegime": "SimplesNacional",
"Status": "Active",
"StateTaxes": ["statetax_xyz789"],
"MunicipalTaxes": [],
"CreatedOn": "2024-01-15T10:30:00Z",
"ModifiedOn": "2024-02-20T14:45:00Z",
"Address": {
"State": "SP",
"City": { "Code": "3550308", "Name": "São Paulo" },
"District": "Centro",
"StreetPrefix": "Rua",
"Street": "Rua Exemplo",
"Number": "100",
"PostalCode": "01001000",
"Country": "BRA"
}
}
}

Respostas de Erro

StatusDescrição
400 Bad RequestID inválido
404 Not FoundEmpresa não encontrada
{
"Errors": [
{
"Code": 40041,
"Message": "company not found"
}
]
}

Exemplo cURL

curl -X GET https://api.nfse.io/v2/companies/company_abc123 \
-H "Authorization: sk_live_xxx"

Verificar Existência (HEAD)

Verifica se uma empresa existe sem retornar o corpo.

HEAD /v2/companies/{company_id}

Parâmetros de Rota

ParâmetroTipoDescrição
company_idstringID da empresa

Respostas

StatusDescrição
204 No ContentEmpresa existe
400 Bad RequestID inválido
404 Not FoundEmpresa não encontrada

Exemplo cURL

curl -I https://api.nfse.io/v2/companies/company_abc123 \
-H "Authorization: sk_live_xxx"

Alterar Empresa

Atualiza os dados de uma empresa existente.

PUT /v2/companies/{company_id}

Parâmetros de Rota

ParâmetroTipoDescrição
company_idstringID da empresa

Headers

HeaderValor
Content-Typeapplication/json
Authorization<sua_api_key>

Corpo da Requisição

{
"Company": {
"Name": "ACME Tecnologia LTDA - Atualizado",
"TradeName": "ACME Tech",
"TaxRegime": "LucroPresumido",
"Address": {
"State": "SP",
"City": { "Code": "3550308", "Name": "São Paulo" },
"District": "Jardins",
"Street": "Av. Paulista",
"Number": "1000",
"AdditionalInformation": "Andar 10",
"PostalCode": "01310100",
"Country": "BRA"
}
}
}

Campos Atualizáveis

CampoTipoDescrição
NamestringRazão social (2-60 caracteres)
TradeNamestringNome fantasia
TaxRegimeenumRegime tributário
MunicipalTaxNumberstringInscrição Municipal (legado)
STStateTaxNumberstringIE Substituto Tributário
SuframaTaxNumberlongInscrição SUFRAMA
AddressobjectEndereço completo
Address.StatestringUF (2 letras)
Address.CityobjectCidade (Code e Name)
Address.DistrictstringBairro
Address.StreetstringLogradouro
Address.NumberstringNúmero
Address.AdditionalInformationstringComplemento
Address.PostalCodestringCEP (8 dígitos)
Address.CountrystringPaís (código ISO 3)
nota

O campo FederalTaxNumber (CNPJ) não pode ser alterado após a criação da empresa.

Resposta de Sucesso

Status: 200 OK

{
"Company": {
"Id": "company_abc123",
"AccountId": "acct_12345",
"Name": "ACME Tecnologia LTDA - Atualizado",
"TradeName": "ACME Tech",
"FederalTaxNumber": 12345678000199,
"MunicipalTaxNumber": null,
"TaxRegime": "LucroPresumido",
"Status": "Active",
"StateTaxes": ["statetax_xyz789"],
"MunicipalTaxes": [],
"CreatedOn": "2024-01-15T10:30:00Z",
"ModifiedOn": "2024-03-10T16:20:00Z",
"Address": {
"State": "SP",
"City": { "Code": "3550308", "Name": "São Paulo" },
"District": "Jardins",
"StreetPrefix": "Avenida",
"Street": "Av. Paulista",
"Number": "1000",
"AdditionalInformation": "Andar 10",
"PostalCode": "01310100",
"Country": "BRA"
}
}
}

Respostas de Erro

StatusDescrição
400 Bad RequestDados inválidos
404 Not FoundEmpresa não encontrada

Exemplo cURL

curl -X PUT https://api.nfse.io/v2/companies/company_abc123 \
-H "Authorization: sk_live_xxx" \
-H "Content-Type: application/json" \
-d '{
"Company": {
"Name": "ACME Tecnologia LTDA - Atualizado",
"TaxRegime": "LucroPresumido",
"Address": {
"State": "SP",
"City": { "Code": "3550308", "Name": "São Paulo" },
"District": "Jardins",
"Street": "Av. Paulista",
"Number": "1000",
"PostalCode": "01310100",
"Country": "BRA"
}
}
}'

Excluir Empresa

Exclui uma empresa da plataforma.

Atenção

Este processo é irreversível. Todas as inscrições vinculadas também serão afetadas.

DELETE /v2/companies/{company_id}

Parâmetros de Rota

ParâmetroTipoDescrição
company_idstringID da empresa

Headers

HeaderValor
Authorization<sua_api_key>

Resposta de Sucesso

Status: 204 No Content

(Sem corpo na resposta)

Respostas de Erro

StatusDescrição
400 Bad RequestID inválido
404 Not FoundEmpresa não encontrada

Exemplo cURL

curl -X DELETE https://api.nfse.io/v2/companies/company_abc123 \
-H "Authorization: sk_live_xxx"

Regras de Validação

O sistema aplica as seguintes regras de validação ao criar ou alterar uma empresa:

Dados da Empresa

CampoRegraCódigo Erro
NameObrigatório, 2-60 caracteres40017, 40020
FederalTaxNumberCNPJ válido (dígito verificador)40031, 40032
StatusEmpresa deve estar ativa para alterações40019

Endereço

CampoRegraCódigo Erro
StreetMínimo 5 caracteres, prefixo válido obrigatório40022
NumberObrigatório40023
DistrictMínimo 2 caracteres40024
CountryMínimo 3 caracteres (código ISO)40025
StateExatamente 2 caracteres, UF válida para Brasil40027
City.Code7 dígitos, primeiros 2 devem corresponder ao código da UF40028
City.NameObrigatório40029
PostalCode8 dígitos, CEP válido40030

Certificado Digital

A empresa pode ter um certificado digital ICP-Brasil (e-CNPJ A1 ou NF-e A1) vinculado para emissão de documentos fiscais eletrônicos.

Metadados do Certificado

Quando um certificado está vinculado, os seguintes metadados são retornados:

CampoTipoDescrição
Certificate.TaxPayerIdstringID da empresa vinculada
Certificate.ThumbprintstringImpressão digital única do certificado
Certificate.TaxIdstringCNPJ do certificado
Certificate.SubjectstringNome do certificado (Distinguished Name)
Certificate.ValidUntildatetimeData de expiração
Certificate.StatusenumStatus do certificado
Certificate.ModifiedOndatetimeData da última modificação

Status do Certificado (CertificateStatus)

NomeValorDescrição
Inactive-3Certificado inativo/excluído
Overdue-2Certificado vencido
Pending-1Certificado pendente de validação
None0Status não definido
Active1Certificado ativo e válido

Endpoints de Certificado

MétodoEndpointDescrição
POST/v2/companies/{company_id}/certificatesUpload de certificado
GET/v2/companies/{company_id}/certificatesListar certificados
GET/v2/companies/{company_id}/certificates/{thumbprint}Consultar por thumbprint
DELETE/v2/companies/{company_id}/certificates/{thumbprint}Excluir certificado

Requisitos do Certificado

RequisitoDescrição
Tipoe-CNPJ A1 ou NF-e A1 (certificados A3 não são suportados)
FormatoArquivo .pfx ou .p12
CNPJDeve corresponder ao FederalTaxNumber da empresa
ValidadeNão pode estar expirado
SenhaObrigatória para upload

Exemplo de Upload

curl -X POST https://api.nfse.io/v2/companies/company_abc123/certificates \
-H "Authorization: sk_live_xxx" \
-F "[email protected]" \
-F "Password=senha123"

Resposta de Upload

{
"Certificate": {
"TaxPayerId": "company_abc123",
"Thumbprint": "A1B2C3D4E5F6789012345678901234567890ABCD",
"TaxId": "12345678000199",
"Subject": "CN=ACME TECNOLOGIA LTDA:12345678000199, OU=RFB, O=ICP-Brasil, C=BR",
"ValidUntil": "2025-06-15T23:59:59Z",
"ModifiedOn": "2024-01-15T10:30:00Z",
"Status": "Active"
}
}
Documentação Completa

Para informações detalhadas sobre gerenciamento de certificados, consulte a API de Certificados.


Códigos de Erro

Validação de Dados da Empresa

CódigoMensagemDescrição
40016id is null or emptyID não informado
40017name is null or emptyRazão social não informada
40018account id is null or emptyAccountId não informado na criação
40019company is not activeEmpresa inativa não permite alterações
40020name must be between 2 to 60 charactersNome fora do limite permitido

Validação de Endereço

CódigoMensagemDescrição
40022street is null or emptyLogradouro inválido ou sem prefixo válido
40023number is null or emptyNúmero não informado
40024district is null or emptyBairro inválido (mínimo 2 caracteres)
40025country is not validPaís inválido (mínimo 3 caracteres)
40026city is null or emptyCidade não informada
40027state is not validUF inválida (deve ser 2 caracteres e válida para Brasil)
40028city code is not validCódigo IBGE inválido (7 dígitos, primeiros 2 devem corresponder à UF)
40029city name is null or emptyNome da cidade não informado
40030postal code is not validCEP inválido (deve ter 8 dígitos e ser válido)

Validação de CNPJ

CódigoMensagemDescrição
40031federal tax number is nullCNPJ não informado
40032federal tax number is not validCNPJ com dígito verificador inválido

Operações de Empresa

CódigoMensagemDescrição
40035account id is null or emptyAccountId não informado na operação
40036company is nullPayload da empresa nulo
40037company id is null or emptyCompanyId não informado
40038company id not foundEmpresa não encontrada
40039account id is not valid to this companyAccountId não corresponde à empresa

Enums

TaxRegime (Regime Tributário)

NomeValorDescrição
None0Não definido
LucroReal2Lucro Real
LucroPresumido4Lucro Presumido
SimplesNacional8Simples Nacional
SimplesNacionalExcessoSublimite12Simples Nacional - Excesso Sublimite
MicroempreendedorIndividual16MEI
Isento32Isento

Status

NomeValorDescrição
Inactive-1Inativa (empresa excluída/desativada)
None0Não definido
Active1Ativa (permite operações)

PersonType (Tipo de Pessoa)

NomeValorDescrição
None0Não definido
LegalEntity1Pessoa Jurídica (CNPJ)
Individual2Pessoa Física (CPF)

Boas Práticas

Validação de CNPJ

  • Envie somente dígitos (sem pontos, barras ou traços)
  • Valide o dígito verificador antes de enviar
  • O tipo deve ser long (numérico)
  • Exemplo válido: 12345678000199
  • Exemplo inválido: 12.345.678/0001-99

Código IBGE

  • Use códigos IBGE válidos de 7 dígitos
  • Os primeiros 2 dígitos devem corresponder ao código da UF
  • Consulte a tabela oficial do IBGE
  • Exemplos:
    • São Paulo/SP: 3550308 (35 = SP)
    • Rio de Janeiro/RJ: 3304557 (33 = RJ)
    • Belo Horizonte/MG: 3106200 (31 = MG)

Endereço

  • Preencha todos os campos obrigatórios
  • Use CEP válido e formatado (somente dígitos, 8 caracteres)
  • O sistema normaliza/valida automaticamente (ver abaixo)

Normalização Automática

O sistema realiza as seguintes normalizações automaticamente:

ComportamentoDescrição
País padrãoSe não informado, assume BRA (Brasil)
Números no inícioRemove números do início do logradouro
Prefixo "R "Converte "R " para "Rua "
Sem prefixoAdiciona "Rua" se não houver prefixo válido

Prefixos de Logradouro Válidos

O sistema valida se o logradouro possui um prefixo reconhecido. Exemplos aceitos:

PrefixoVariações
RuaR., Rua
AvenidaAv., Av, Avenida
AlamedaAl., Alameda
TravessaTv., Travessa
PraçaPç., Praça
RodoviaRod., Rodovia
EstradaEst., Estrada
nota

Caso o logradouro não tenha prefixo válido, o sistema adicionará "Rua" automaticamente.


Próximos Passos

Após criar a empresa:

  1. Configure o certificado digital correspondente ao CNPJ → Ver documentação
  2. Crie uma Inscrição Estadual para emitir NF-e/NFC-e → Ver documentação
  3. Crie uma Inscrição Municipal para emitir NFS-e → Ver documentação

Veja também:

NFE.io

A NFE.io é uma empresa de tecnologia que fornece soluções para automatizar e simplificar a emissão e gestão de notas fiscais eletrônicas. Com suas ferramentas, as empresas podem economizar tempo e reduzir erros, aumentando a eficiência e precisão do processo de emissão de notas fiscais.

Um dos principais cases de sucesso da NFE.io é a implementação da solução na empresa de transporte Rodonaves. Com a automatização da emissão e gestão de notas fiscais eletrônicas, a Rodonaves conseguiu reduzir em até 80% o tempo gasto nesse processo, o que se traduziu em uma significativa melhoria na eficiência operacional. Além disso, a empresa também conseguiu eliminar erros e atrasos na emissão de notas fiscais, o que melhorou a relação com seus clientes e aumentou a confiança dos órgãos fiscais.

Outro exemplo é a implementação da NFE.io na empresa de comércio eletrônico, a Loja Integrada. Com a automatização da emissão de notas fiscais, a Loja Integrada conseguiu aumentar a velocidade de emissão de notas em até 10 vezes, o que permitiu que a empresa atendesse a uma maior quantidade de clientes e, consequentemente, aumentar as suas vendas.

Além desses exemplos, a NFE.io também tem outros cases de sucesso com empresas de setores como indústria, construção, varejo e serviços, mostrando a versatilidade e eficácia da sua solução.

Em resumo, a NFE.io é uma empresa de tecnologia que oferece soluções para automatizar e simplificar a emissão e gestão de notas fiscais eletrônicas, ajudando as empresas a economizar tempo e reduzir erros, melhorando a eficiência e precisão do processo. Com cases de sucesso em diferentes setores, a NFE.io tem se destacado como uma empresa líder em automação fiscal.