Pular para o conteúdo

Empresas e certificados ​

Antes de emitir CT-e ou MDF-e, a empresa emitente precisa estar cadastrada na conta e ter o certificado digital (e-CNPJ A1) enviado. Estas rotas fazem as duas coisas e dizem em que situação cada empresa está.

Os caminhos abaixo são completos, a partir do domínio https://api.logmonitor.com.br. As escritas (POST e PUT) levam assinatura e Idempotency-Key. {id} é o UUID da empresa, devolvido no cadastro.

Situações ​

pendente_certificado → pronta.

  • pendente_certificado: a empresa está cadastrada, mas ainda não emite. Acontece quando o CNPJ já é empresa de outra conta: o certificado precisa ser enviado por esta conta.
  • pronta: pode emitir. Empresa nova, de um CNPJ que ninguém mais usa, já nasce pronta; a pendente vira pronta quando o certificado é aceito.

Emitir CT-e ou MDF-e por empresa pendente_certificado responde 422 certificado_ausente.

A credencial só vê as empresas da conta e, se tiver CNPJs permitidos, só as deles. Empresa de outra conta, ou fora dos CNPJs da credencial, responde 404. A resposta nunca traz a senha nem o arquivo do certificado.

Cadastrar ​

Cadastrar uma empresa ​

POST /services/v1/integracoes/empresas · empresas:gerenciar

json
{
  "tipo": "matriz",
  "crt": 3,
  "dados_pessoa": {
    "tipo": "juridica",
    "cpf_cnpj": "00000000000000",
    "razao_social": "TRANSPORTADORA EXEMPLO LTDA",
    "inscricao_estadual": "000000000"
  }
}
  • tipo: matriz ou filial.
  • crt: regime tributário, de 1 a 4. Opcional.
  • rntrc: só dígitos. Opcional.
  • dados_pessoa: tipo (fisica ou juridica), cpf_cnpj, inscricao_estadual, e opcionais razao_social, nome_fantasia, inscricao_municipal e enderecos.

Resposta 201 (data): a empresa, com id, cnpj, razao_social, nome_fantasia, tipo, crt, rntrc, uf, ativo, situacao e certificado (veja situação do certificado). Dado um CNPJ novo, a resposta traz situacao pronta ou, se o CNPJ já é empresa de outra conta, pendente_certificado: nesse caso, envie o certificado para liberar a emissão.

Erros:

  • 403 empresa_fora_da_integracao: o CNPJ não está entre os CNPJs permitidos da credencial (recusas 403).
  • 422 de validação, com data.errors.
  • Repetir a mesma Idempotency-Key devolve a mesma resposta, sem duplicar a empresa (idempotência).

Alterar uma empresa ​

PUT /services/v1/integracoes/empresas/{id} · empresas:gerenciar

json
{
  "tipo": "filial",
  "crt": 3,
  "rntrc": "00000000"
}

Altera só tipo, crt e rntrc, e todos são opcionais. O CNPJ não muda: cadastre outra empresa.

Resposta 200 (data): a empresa, com a message "Empresa atualizada.".

Erros: 404; 422 de validação.

Enviar o certificado ​

POST /services/v1/integracoes/empresas/{id}/certificado · empresas:gerenciar

json
{
  "pfx_base64": "MIIBexemplo...",
  "senha": "senha-do-certificado"
}
  • pfx_base64: o arquivo .pfx do e-CNPJ A1, em base64 (até cerca de 190 KB de arquivo).
  • senha: a senha do .pfx.

O certificado precisa ser do CNPJ exato da empresa e estar vigente. Aceito, a empresa pendente_certificado passa a pronta. A senha não é guardada nem devolvida, e o monitor da integração também não a registra.

Resposta 201 (data): a situação do certificado. A message é "Certificado cadastrado.".

Erros:

  • 404: a empresa não existe para esta credencial.
  • 422: o pfx_base64 não é um base64 válido, a senha não abre o arquivo, o certificado é de outro CNPJ ou está vencido (a message diz qual).

Consultar ​

Listar ​

GET /services/v1/integracoes/empresas · empresas:ler

Parâmetros de consulta, todos opcionais:

  • busca: razão social, nome fantasia ou CNPJ.
  • situacao: pendente_certificado ou pronta.
  • por_pagina: de 1 a 100 (padrão 15). A página vem em page.

Resposta 200 (data): a página, com a lista de empresas em data.data.

Detalhe ​

GET /services/v1/integracoes/empresas/{id} · empresas:ler

Resposta 200 (data): a empresa, como no cadastro.

Erros: 404 "Empresa não encontrada.".

Situação do certificado ​

GET /services/v1/integracoes/empresas/{id}/certificado · empresas:ler

Só metadados: nunca o arquivo nem a senha.

json
{
  "possui": true,
  "valido_ate": "2027-06-30",
  "vencido": false,
  "titular": "TRANSPORTADORA EXEMPLO LTDA:00000000000000",
  "enviado_em": "2026-11-04T12:00:00+00:00"
}
  • possui: há certificado vigente enviado.
  • valido_ate: a data de validade; null sem certificado.
  • vencido: true quando a validade passou.
  • titular e enviado_em: null sem certificado.

Resposta 200 (data): o objeto acima.

Erros: 404.

Documentação da API da Subcontratei.