Pular para o conteúdo principal

API de Certificados (Certificates)

Gerencie certificados digitais ICP-Brasil das empresas

Navegação


Visão Geral

O Certificado Digital ICP-Brasil funciona como uma identidade eletrônica para empresas, permitindo a identificação segura e inequívoca do autor de uma transação feita em meios eletrônicos.

Para emitir Documentos Fiscais Eletrônicos (NF-e, NFC-e, NFS-e), é obrigatório vincular um certificado digital válido à empresa emissora.


Anatomia de um Certificado

Conceitos Fundamentais

Ao fazer upload de um certificado, você precisa fornecer:

ConceitoCampos na APIDescrição
ArquivoFileCertificado em formato .pfx ou .p12
CredencialPasswordSenha do certificado para validação

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 e validação

Tipos de Certificado

TipoDescriçãoSuporte
e-CNPJ A1Certificado de pessoa jurídica em arquivo✅ Suportado
NF-e A1Certificado específico para NF-e em arquivo✅ Suportado
e-CPF A1Certificado de pessoa física❌ Não suportado
A3Certificado em hardware (token/cartão)❌ Não suportado

Campos Gerenciados pelo Sistema

Após o upload, o sistema extrai e mantém automaticamente:

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

Referência Completa de Propriedades

📋 Expandir tabela completa
PropriedadeTipoDescrição
TaxPayerIdstringIdentificador da empresa (company_id)
ThumbprintstringImpressão digital única (hash SHA-1)
TaxIdstringCNPJ do certificado (somente dígitos)
SubjectstringDistinguished Name completo do certificado
ValidUntildatetimeData e hora de expiração (UTC)
ModifiedOndatetimeData e hora da última modificação (UTC)
StatusenumStatus atual: Active, Overdue, Inactive, Pending, None

Endpoints

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 certificado
DELETE/v2/companies/{company_id}/certificates/{thumbprint}Excluir certificado
Autenticação

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

Saiba como obter sua API Key


Upload de Certificado

Faz upload de um certificado ICP-Brasil e vincula à empresa.

POST /v2/companies/{company_id}/certificates

Parâmetros de Rota

ParâmetroTipoDescrição
company_idstringID da empresa

Headers

HeaderValor
Content-Typemultipart/form-data
Authorization<sua_api_key>

Corpo da Requisição (Form Data)

CampoTipoObrigatórioDescrição
FilefileArquivo do certificado (.pfx ou .p12)
PasswordstringSenha do certificado

Resposta de Sucesso

Status: 200 OK

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

Respostas de Erro

StatusDescrição
400 Bad RequestDados inválidos
404 Not FoundEmpresa não encontrada
422 Unprocessable EntityCertificado expirado
{
"Errors": [
{
"Code": 40034,
"Message": "password is null or empty"
}
]
}

Exemplo cURL

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

Exemplo PowerShell

$headers = @{ Authorization = "sk_live_xxx" }
$form = @{
File = Get-Item -Path ".\certificado.pfx"
Password = "senha123"
}

Invoke-RestMethod -Uri "https://api.nfse.io/v2/companies/company_abc123/certificates" `
-Method Post -Headers $headers -Form $form

Listar Certificados

Lista os certificados vinculados à empresa.

GET /v2/companies/{company_id}/certificates

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

{
"Certificates": [
{
"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"
}
]
}

Resposta Quando Não Há Certificado

Status: 200 OK

{
"Certificates": []
}

Respostas de Erro

StatusDescrição
400 Bad Requestcompany_id inválido
{
"Errors": [
{
"Message": "company_id is null or empty"
}
]
}

Exemplo cURL

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

Consultar Certificado por Thumbprint

Retorna os detalhes de um certificado específico.

GET /v2/companies/{company_id}/certificates/{certificate_thumbprint}

Parâmetros de Rota

ParâmetroTipoDescrição
company_idstringID da empresa
certificate_thumbprintstringImpressão digital do certificado

Headers

HeaderValor
Acceptapplication/json
Authorization<sua_api_key>

Resposta de Sucesso

Status: 200 OK

{
"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"
}
}

Respostas de Erro

StatusDescrição
400 Bad RequestParâmetros inválidos
404 Not FoundCertificado não encontrado
{
"Errors": [
{
"Message": "Certificate not found"
}
]
}

Exemplo cURL

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

Excluir Certificado

Exclui um certificado e desvincula da empresa.

Atenção

Este processo é irreversível. A empresa não poderá emitir documentos fiscais até que um novo certificado seja vinculado.

DELETE /v2/companies/{company_id}/certificates/{certificate_thumbprint}

Parâmetros de Rota

ParâmetroTipoDescrição
company_idstringID da empresa
certificate_thumbprintstringImpressão digital do certificado

Headers

HeaderValor
Authorization<sua_api_key>

Resposta de Sucesso

Status: 204 No Content

(Sem corpo na resposta)

Respostas de Erro

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

Exemplo cURL

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

Regras de Validação

O sistema aplica as seguintes regras de validação ao fazer upload de um certificado:

Validação do Arquivo

CampoRegraMensagem de Erro
FileObrigatórioFile is null
FileExtensão deve ser .pfx ou .p12File extension is not valid (.pfx or .p12)
PasswordObrigatóriapassword is null or empty
PasswordDeve ser válida para o certificadoCertificate password is invalid

Validação do Certificado

RegraMensagem de Erro
Dados devem ser válidosCertificate data is invalid
Tipo deve ser e-CNPJ (não e-CPF)Certificate type is invalid
Não pode estar expiradoCertificate expired
CNPJ deve corresponder ao da empresaCertificate or company federal tax number is invalid

Validação da Empresa

RegraCódigoMensagem de Erro
Empresa deve existircompanyId not found
Empresa deve estar ativa40019company is not active
Empresa deve ter CNPJ cadastrado40031FederalTaxNumber is null

Códigos de Erro

Validação de Arquivo e Certificado

MensagemDescrição
File is nullArquivo não enviado
File extension is not valid (.pfx or .p12)Extensão de arquivo inválida
Certificate password is invalidSenha do certificado incorreta
Certificate data is invalidDados do certificado inválidos
Certificate type is invalidTipo não suportado (deve ser e-CNPJ)
Certificate expiredCertificado expirado
Certificate not foundCertificado não encontrado
Certificate or company federal tax number is invalidCNPJ não corresponde

Validação de Empresa

CódigoMensagemDescrição
company_id is null or emptyID da empresa não informado
companyId not foundEmpresa não encontrada
40019company is not activeEmpresa inativa
40031FederalTaxNumber is nullEmpresa sem CNPJ cadastrado
40034password is null or emptySenha não informada

Enums

CertificateStatus (Status do Certificado)

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

IcpBrasilCertificateType (Tipo de Certificado)

NomeValorDescrição
None0Tipo não identificado
eCPF1Certificado de Pessoa Física (não suportado)
eCNPJ2Certificado de Pessoa Jurídica

Boas Práticas

Preparação do Certificado

  • Verifique se o tipo é e-CNPJ A1 ou NF-e A1
  • Verifique se a validade não está expirada
  • Confirme que o CNPJ do certificado corresponde ao da empresa
  • Mantenha a senha original em local seguro

Renovação de Certificado

  • Monitore a data de expiração (ValidUntil)
  • Faça o upload do novo certificado antes do vencimento
  • O sistema sobrescreve automaticamente o certificado anterior

Segurança

  • Nunca exponha a senha do certificado em logs ou URLs
  • Use HTTPS em todas as requisições
  • Armazene certificados em local seguro antes do upload
  • Não compartilhe o arquivo do certificado

Monitoramento

Verifique periodicamente o status do certificado:

StatusAção Recomendada
ActiveNenhuma ação necessária
OverdueRenovar imediatamente - emissões bloqueadas
InactiveFazer upload de novo certificado
PendingAguardar processamento

Próximos Passos

Após configurar o certificado:

  1. Crie uma Inscrição Estadual para emitir NF-e/NFC-e → Ver documentação
  2. 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.