Notas Fiscais

Referência

Este recurso reúne dois conceitos diferentes: a configuração fiscal, que cadastra a empresa emissora e a tributação usada para emitir, e a nota fiscal propriamente dita. Uma configuração precisa existir e estar habilitada antes de qualquer nota poder ser emitida.

Notas e configuração fiscal dividem a mesma raiz de rota: /v1/invoices/notas para as notas e /v1/invoices/notas/config para a configuração. Um configId nunca é um notaId: eles identificam registros diferentes, mesmo com a rota parecida.

Configuração fiscal

A configuração fiscal cadastra a empresa emissora (CNPJ, município, tributação) e o certificado digital usado para autenticar a emissão junto à prefeitura. Uma conta pode ter configurações de mais de uma empresa: o configId escolhido na emissão define de qual delas a nota sai. Campos não enviados são preenchidos a partir do cadastro da conta, quando disponíveis.

CampoObrigatórioDescrição
prestador.cnpjSimCNPJ da empresa emissora, 14 dígitos.
prestador.codigo_municipioSimCódigo IBGE do município do prestador, 7 dígitos. Define se a nota sai pelo emissor Nacional ou Municipal.
prestador.codigo_opcao_simples_nacionalSimRegime tributário, como número: 1 não optante, 2 MEI, 3 ME/EPP.
prestador.regime_especial_tributacaoSim0 quando não há regime especial.
codigo_tributacao_nacional_issSimCódigo de tributação nacional do ISS, 6 dígitos.
tributacao_issSim1 tributável, 2 imunidade, 3 exportação, 4 não incidência.
tipo_retencao_issSim1 não retido, 2 retido pelo tomador, 3 pelo intermediário.
situacao_tributaria_pis_cofins, aliquota_pis, aliquota_cofinsSe não optanteObrigatórios quando codigo_opcao_simples_nacional é 1 (não optante pelo Simples).
percentual_total_tributos_simples_nacionalSe optanteObrigatório quando codigo_opcao_simples_nacional é 2 (MEI) ou 3 (ME/EPP).
certificate.pfx_base64 / passwordRecomendadoCertificado digital A1 em base64. Sem certificado, a prefeitura normalmente recusa a empresa.
quando_emitirNãoIMMEDIATE, AFTER_CONFIRMATION ou DAYS_AFTER_CONFIRMATION. Vale só para notas emitidas automaticamente a partir de cobrança ou fatura, não afeta a emissão avulsa deste guia.
JSON
{
  "config_name": "Matriz",
  "enabled": true,
  "quando_emitir": "IMMEDIATE",
  "codigo_tributacao_nacional_iss": "010701",
  "tributacao_iss": 1,
  "tipo_retencao_iss": 1,
  "situacao_tributaria_pis_cofins": "01",
  "aliquota_pis": 0.65,
  "aliquota_cofins": 3,
  "percentual_total_tributos_simples_nacional": 6,
  "prestador": {
    "cnpj": "99988877000108",
    "inscricao_municipal": "1234567",
    "nome_fantasia": "EMPRESA EXEMPLO LTDA",
    "email": "fiscal@exemplo.com.br",
    "codigo_municipio": "4205407",
    "codigo_opcao_simples_nacional": 1,
    "regime_especial_tributacao": 0
  },
  "certificate": {
    "pfx_base64": "MIIQ...",
    "password": "senha-do-certificado"
  }
}
JSON
{
  "id": "unc_1788193720141_65g0zh12p",
  "accountId": "460851686",
  "config_name": "Matriz",
  "enabled": true,
  "quando_emitir": "IMMEDIATE",
  "codigo_tributacao_nacional_iss": "010701",
  "tributacao_iss": 1,
  "tipo_retencao_iss": 1,
  "prestador": {
    "cnpj": "99988877000108",
    "nome_fantasia": "EMPRESA EXEMPLO LTDA",
    "inscricao_municipal": "1234567",
    "codigo_municipio": "4205407",
    "codigo_municipio_prestacao": "4205407",
    "codigo_opcao_simples_nacional": 1,
    "regime_especial_tributacao": 0
  },
  "focus": {
    "synced": true
  },
  "certificate": {
    "has_certificate": true,
    "expiry_date": "2026-11-18T11:01:15.000Z"
  },
  "createdAt": "2026-08-31T16:28:43.167Z",
  "updatedAt": "2026-08-31T16:28:43.167Z"
}

Criar e atualizar sincronizam a empresa (e o certificado) com a prefeitura no mesmo request. Se essa sincronização falhar, nada é gravado na criação e o certificado enviado é descartado: o erro chega como NF_CONFIG_SYNC_FAILED, com a mensagem devolvida pela prefeitura já traduzida. Excluir remove o cadastro só da ValidaPay: a empresa continua registrada na prefeitura e as notas já emitidas por essa configuração não são afetadas.

Emitir nota fiscal

POST Emitir Nota Fiscal emite uma nota de serviço avulsa, sem vínculo com cobrança ou assinatura. A emissão é sempre imediata: o campo quando_emitir da configuração vale apenas para notas geradas automaticamente a partir de cobrança ou fatura, não para esta rota. O tomador não precisa estar cadastrado como cliente.

CampoObrigatórioDescrição
configIdSimConfiguração fiscal usada para emitir, de GET Listar Configurações Fiscais. Define de qual empresa (CNPJ) a nota sai.
typeNãoModelo do documento fiscal. Único valor aceito hoje é NFSE, assumido quando o campo é omitido.
amountSimValor do serviço em reais, ex.: 150.00.
descricaoSimDiscriminação do serviço impressa na nota.
refNãoReferência própria. Se omitida, a API gera uma.
customer.documentSimCPF (11) ou CNPJ (14) do tomador, só números.
customer.nameSimNome completo ou razão social do tomador.
customer.addressSimEndereço do tomador. Quando cityCode não vem, o código IBGE é resolvido a partir do CEP.
JSON
{
  "configId": "unc_1776888897617_ppwgo7oef",
  "type": "NFSE",
  "amount": 150.00,
  "descricao": "Consultoria em tecnologia da informação",
  "customer": {
    "document": "11144477735",
    "name": "Alexandre Souza",
    "email": "alexandre@exemplo.com.br",
    "address": {
      "zipCode": "01310100",
      "street": "Avenida Paulista",
      "number": "1000",
      "neighborhood": "Bela Vista",
      "city": "São Paulo",
      "state": "SP"
    }
  }
}
JSON
{
  "success": true,
  "status": "PROCESSING",
  "ref": "nf_1788101026585_uqaspo7bn",
  "id": "nf_1788101026585_uqaspo7bn",
  "nfStatus": "processando_autorizacao",
  "tipo": "nacional",
  "issuedAt": "2026-08-30T14:43:49.719Z",
  "internalStatus": "PROCESSING",
  "provedor": "Nacional"
}

Identificador e status da nota

O {notaId} usado em Consultar, Cancelar, Reemitir e Reenviar é o campo invoiceId da nota, o mesmo valor devolvido em id e ref na emissão. Isso vale inclusive para notas avulsas, que não têm fatura de verdade por trás.

StatusSignificado
PROCESSINGEmitida, aguardando resposta da prefeitura. Estado inicial de toda emissão.
AUTHORIZEDAutorizada. É o status que libera cancelamento e reenvio por e-mail.
ERRORA prefeitura recusou a emissão. A nota pode ser reemitida se estiver vinculada a uma cobrança ou fatura real.
CANCELEDCancelada na prefeitura por DELETE Cancelar Nota Fiscal.
REPLACEDSubstituída por uma reemissão bem-sucedida. A nota vigente passa a ser a nova.

Cancelar, reemitir e reenviar

As três ações partem de estados diferentes da nota e não são intercambiáveis:

AçãoPré-condiçãoO que mudaErro se falhar
CancelarNota AUTHORIZEDCancela na prefeitura dentro do prazo por ela definido; a nota final fica CANCELED.NF_NOT_AUTHORIZED
ReemitirNota não autorizada e vinculada a uma cobrança ou fatura realA nota anterior fica REPLACED e uma nova é gerada em seu lugar.NOTA_ALREADY_ISSUED ou INVOICE_NOT_FOUND
ReenviarNota AUTHORIZEDReenvia por e-mail a nota já emitida, para até 10 destinatários. Não gera nova nota.NOTA_NOT_ISSUED
Reemitir busca a cobrança ou fatura de origem da nota. Uma nota avulsa, como as criadas por POST Emitir Nota Fiscal, não tem cobrança nem fatura por trás: tentar reemiti-la falha com INVOICE_NOT_FOUND. Para uma nota avulsa que falhou ou foi recusada, emita uma nova nota com POST Emitir Nota Fiscal em vez de usar Reemitir.

Operações disponíveis

Notas Fiscais

MétodoOperaçãoDescrição
GETListar Notas FiscaisLista as notas da conta, mais recente primeiro, com filtros e paginação por cursor.
GETConsultar Nota FiscalRetorna uma nota específica, com links de PDF, XML e código de verificação.
POSTEmitir Nota FiscalEmite uma nota avulsa, sem vínculo com cobrança ou assinatura.
DELETECancelar Nota FiscalCancela na prefeitura uma nota já autorizada.
POSTReemitir Nota FiscalGera uma nova nota para uma emissão que falhou na prefeitura.
POSTReenviar Nota por E-mailReenvia por e-mail uma nota já autorizada, para até 10 destinatários.

Configuração Fiscal

MétodoOperaçãoDescrição
GETListar Configurações FiscaisLista as configurações fiscais (empresas emissoras) da conta.
GETConsultar Configuração FiscalRetorna uma configuração fiscal pelo id.
POSTCriar Configuração FiscalCadastra a empresa emissora, a tributação e o certificado digital.
PUTAtualizar Configuração FiscalAltera os campos enviados; os demais são preservados.
DELETEExcluir Configuração FiscalRemove a configuração da ValidaPay. Não afeta o cadastro na prefeitura nem notas já emitidas.

Erros comuns

codeStatusQuando acontece
MISSING_FIELDS400Emitir: faltou customer.document, amount, descricao ou configId. Cancelar: faltou motivo (vai na query string, não no corpo).
NOTA_TYPE_NOT_SUPPORTED400Emitir: type diferente de NFSE, o único modelo aceito hoje.
NOTA_CONFIG_NOT_FOUND400 / 404Emitir (400): configId não existe ou está desabilitado. Consultar, Atualizar e Excluir Configuração (404): o id de configuração não existe.
NF_EMISSION_FAILED400Emitir: falha genérica na emissão (prefeitura recusou, município indisponível etc.).
NOTA_NOT_FOUND404Consultar e Cancelar: o notaId não existe ou não pertence à conta autenticada.
NF_NOT_AUTHORIZED400Cancelar: a nota não está autorizada para cancelamento (inclui o caso de já estar cancelada).
NF_CANCEL_FAILED400Cancelar: a prefeitura não confirmou o cancelamento.
NOTA_ALREADY_ISSUED400Reemitir: a nota já está autorizada, portanto não pode ser reemitida.
NOTA_REISSUE_FAILED400Reemitir: a nova tentativa de emissão também falhou.
INVOICE_NOT_FOUND404Reemitir: a nota não está vinculada a uma cobrança ou fatura real. É sempre o caso de uma nota avulsa.
NOTA_NOT_ISSUED400Reenviar: a nota ainda não foi autorizada.
EMAILS_REQUIRED400Reenviar: nenhum e-mail informado em emails.
TOO_MANY_EMAILS400Reenviar: mais de 10 e-mails no mesmo pedido.
NOTA_RESEND_FAILED400Reenviar: falha ao reenviar pelo provedor.
NF_CONFIG_SYNC_FAILED400Criar e Atualizar Configuração: falha ao sincronizar prestador ou certificado com a prefeitura. Na criação, nada é gravado quando isso acontece.
NO_FIELDS_TO_UPDATE400Atualizar Configuração: corpo enviado sem nenhum campo.

Perguntas frequentes

Preciso ter uma configuração fiscal antes de emitir uma nota?
Sim. configId é obrigatório em Emitir Nota Fiscal e precisa apontar para uma configuração existente e habilitada (enabled: true). Sem isso, a API recusa com NOTA_CONFIG_NOT_FOUND.
Uma conta pode ter mais de uma configuração fiscal?
Sim. É possível cadastrar configurações de mais de uma empresa (CNPJ) na mesma conta. O configId escolhido na emissão define de qual empresa a nota sai, e cada nota devolvida por Listar ou Consultar traz um objeto emissor (configId, cnpj, nome) indicando qual configuração a emitiu.
Qual a diferença entre consultar a nota de novo e usar Reemitir?
Consultar (GET) só lê o status atual, sem alterar nada. Reemitir (POST) gera uma nota nova quando a anterior não foi autorizada: a antiga fica REPLACED e a nova ocupa o lugar dela. Reemitir só funciona quando a nota está vinculada a uma cobrança ou fatura real; uma nota avulsa que falhou precisa ser emitida de novo com POST Emitir Nota Fiscal.
Cancelar uma nota é definitivo, ou tem prazo?
O cancelamento é enviado à prefeitura do município emissor, que aplica seu próprio prazo. Dentro do prazo, DELETE Cancelar Nota Fiscal funciona normalmente. Fora dele, a prefeitura recusa e o erro chega como NF_CANCEL_FAILED; nesse ponto a correção passa a exigir substituir a nota, não mais cancelar.
O campo type precisa ser enviado em toda emissão?
Não. Quando omitido, assume NFSE, o único modelo suportado hoje. Enviar qualquer outro valor retorna 400 com NOTA_TYPE_NOT_SUPPORTED.
Excluir uma configuração fiscal cancela as notas já emitidas por ela?
Não. DELETE Excluir Configuração Fiscal remove o cadastro apenas da ValidaPay; a empresa continua registrada na prefeitura e as notas já emitidas por aquela configuração não são alteradas.
Essa página foi útil?