Referência da API

FISQAL API Docs

Documentação pública da API fiscal para emissão, consulta, cancelamento e automação de documentos fiscais.

Ver Swagger
Base URL
https://api.fisqal.com.br

Introdução

A FISQAL API é uma API RESTful que retorna respostas em JSON. Autentique com Authorization: Bearer ou X-API-Key (API key do workspace). Cadastre empresas com POST /v1/companies e use o companyId nas demais rotas. Emissões fiscais (NFS-e, NF-e, NFC-e) são assíncronas: você recebe 202 Accepted e acompanha o status por consulta ou webhooks.

  • REST + JSON
  • Bearer / API Key
  • CRUD de empresas (CNPJ)
  • Emissão assíncrona (BullMQ)
  • Webhooks com HMAC-SHA256
  • NFS-e, NF-e e NFC-e

Autenticação

Rotas autenticadas exigem API key vinculada ao workspace. Use um dos headers abaixo:

Authorization: Bearer <api_key>
X-API-Key: <api_key>

Cada API key possui scopes (RBAC). Inclua companies:read e companies:write para cadastrar emitentes via API:

companies:read, companies:write, certificates:read, certificates:write, nfse:read, nfse:write, nfse:cancel, nfe:read, nfe:write, nfe:cancel, nfce:read, nfce:write, nfce:cancel, mdfe:read, mdfe:write, mdfe:cancel, mdfe:event, cte:read, cte:write, cte:cancel, cte:event, cte:inutilize, webhooks:read, webhooks:write
Exemplo cURL — criar empresa
curl -X POST 'https://api.fisqal.com.br/v1/companies' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "razao_social": "Empresa Emitente LTDA",
  "nome_fantasia": "Empresa Emitente",
  "cnpj": "12345678000199",
  "inscricao_municipal": "12345678",
  "inscricao_estadual": "123456789",
  "codigo_municipio": "3550308",
  "municipio": "Sao Paulo",
  "uf": "SP",
  "logradouro": "Rua Exemplo",
  "numero": "100",
  "bairro": "Centro",
  "cep": "01310100",
  "email": "contato@empresa.com.br",
  "telefone": "1133334444",
  "fiscal_ambiente": "producao"
}
EOF

Fluxo de integração

  1. POST /v1/companies — cadastrar emitente (companies:write)
  2. POST /v1/companies/{companyId}/certificates — certificado A1
  3. PUT /v1/nfce/companies/{companyId}/csc — CSC (NFC-e, se aplicável)
  4. POST /v1/nfse, POST /v1/nfe ou POST /v1/nfce — emissão com companyId no body

Idempotência

Envie Idempotency-Key em POSTs fiscais (ex.: POST /v1/nfse). Requisições repetidas com a mesma chave retornam a resposta existente sem criar nova emissão.

Importante

Use chaves únicas por operação de negócio. A chave é persistida por workspace.

Headers importantes

HeaderObrigatórioDescrição
AuthorizationSim*Bearer com API key
X-API-KeySim*Alternativa ao Bearer
X-Correlation-IdNãoTracing distribuído opcional
Idempotency-KeyNãoEvita emissão duplicada em POSTs fiscais
Content-TypeSim**application/json ou multipart para certificados

* Um dos dois métodos de autenticação. ** Em requisições com body.

Fluxo fiscal assíncrono

1POST /v1/nfse
2202 Accepted
3processing
4authorized / rejected
5webhook enviado
6XML / PDF disponível

Reforma tributária

A FISQAL acompanha a Reforma Tributária do Consumo (IBS, CBS e IS) conforme as notas técnicas da Receita Federal. NF-e e NFC-e aceitam os novos grupos fiscais no payload JSON, serializados no XML oficial antes da transmissão à SEFAZ.

  • NF-e e NFC-e com grupo IBSCBS por item
  • Totais IBSCBSTot em total.ibsCbsTot
  • NFS-e Nacional na mesma API
  • Atualizações conforme NTs oficiais

Documentos suportados

Em POST /v1/nfe e POST /v1/nfce, informe det[].imposto.IBSCBS por item e, quando aplicável, total.ibsCbsTot para o totalizador. As chaves seguem a nomenclatura do XML NF-e (ex.: CST, cClassTrib, gIBSCBS).

Imposto por item (det[].imposto)

O grupo IBSCBS convive com ICMS, PIS, COFINS e demais tributos já suportados. Exemplo didático de um item:

det[].imposto com IBSCBS
{
  "ICMS": {
    "ICMS00": {
      "orig": "0",
      "CST": "00",
      "modBC": "3",
      "vBC": 100,
      "pICMS": 18,
      "vICMS": 18
    }
  },
  "IBSCBS": {
    "CST": "000",
    "cClassTrib": "000001",
    "gIBSCBS": {
      "vBC": 100,
      "gIBSUF": {
        "pIBSUF": 0.1,
        "vIBSUF": 0.1
      },
      "gIBSMun": {
        "pIBSMun": 0,
        "vIBSMun": 0
      },
      "vIBS": 0.1,
      "gCBS": {
        "pCBS": 0.9,
        "vCBS": 0.9
      }
    }
  }
}

Totais (total)

Quando exigido pelo leiaute vigente, envie total.ibsCbsTot com a estrutura do grupo IBSCBSTot:

total com ibsCbsTot
{
  "icmsTot": {
    "vBC": 100,
    "vICMS": 18,
    "vProd": 100,
    "vNF": 100
  },
  "ibsCbsTot": {
    "vBCIBSCBS": 100,
    "gIBS": {
      "gIBSUF": {
        "vDif": 0,
        "vDevTrib": 0,
        "vIBSUF": 0.1
      },
      "gIBSMun": {
        "vDif": 0,
        "vDevTrib": 0,
        "vIBSMun": 0
      },
      "vIBS": 0.1,
      "vCredPres": 0,
      "vCredPresCondSus": 0
    },
    "gCBS": {
      "vDif": 0,
      "vDevTrib": 0,
      "vCBS": 0.9,
      "vCredPres": 0,
      "vCredPresCondSus": 0
    }
  }
}

Homologação

Valide emissões com IBS/CBS em homologação antes de produção. O ambiente de testes está incluso no plano Starter.

Regras de preenchimento

CST, classificação tributária, alíquotas e bases devem seguir as NTs da Reforma Tributária e a legislação aplicável ao seu caso. A API valida o leiaute XML; o cálculo tributário é responsabilidade do emissor.

Empresas

CRUD de empresas emitentes (CNPJ) via API key. Scopes companies:read e companies:write. Cada CNPJ é único por workspace; respostas incluem plan_eligible quando aplicável.

GET/v1/companies200

List companies

Lista empresas do workspace com certificado mais recente e flag plan_eligible.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: companies:read

Query parameters

NomeTipoObrigatórioMínMáxDescrição
statusstringNão40Filtrar por status (active | inactive)
searchstringNão255Busca por razao social, nome fantasia ou CNPJ

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/companies?status=authorized' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Lista de empresas do workspace

Exemplo de resposta
[
  {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "workspace_id": "660e8400-e29b-41d4-a716-446655440001",
    "razao_social": "Empresa Emitente LTDA",
    "nome_fantasia": "Empresa Emitente",
    "cnpj": "12345678000199",
    "status": "active",
    "fiscal_ambiente": "producao",
    "plan_eligible": true,
    "certificates": [
      {
        "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
        "status": "active",
        "valido_ate": "2026-12-31T23: 59: 59.000Z",
        "certificado_tipo": "A1"
      }
    ],
    "created_at": "2026-05-16T10: 00: 00.000Z"
  }
]

Possíveis erros

UNAUTHORIZEDRATE_LIMITED
POST/v1/companies201

Create company

Cadastra nova empresa emitente no workspace. CNPJ único por workspace.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: companies:write

Request body

CreateCompanyDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/companies' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "razao_social": "Empresa Emitente LTDA",
  "nome_fantasia": "Empresa Emitente",
  "cnpj": "12345678000199",
  "inscricao_municipal": "12345678",
  "inscricao_estadual": "123456789",
  "codigo_municipio": "3550308",
  "municipio": "Sao Paulo",
  "uf": "SP",
  "logradouro": "Rua Exemplo",
  "numero": "100",
  "bairro": "Centro",
  "cep": "01310100",
  "email": "contato@empresa.com.br",
  "telefone": "1133334444",
  "fiscal_ambiente": "producao"
}
EOF

Response

201 Empresa criada

Exemplo de resposta
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "workspace_id": "660e8400-e29b-41d4-a716-446655440001",
  "razao_social": "Empresa Emitente LTDA",
  "nome_fantasia": "Empresa Emitente",
  "cnpj": "12345678000199",
  "status": "active",
  "fiscal_ambiente": "producao",
  "created_at": "2026-05-16T10: 00: 00.000Z"
}

Possíveis erros

UNAUTHORIZEDVALIDATION_ERRORCONFLICTPLAN_FORBIDDENRATE_LIMITED
GET/v1/companies/{id}200

Get company

Detalhe da empresa com certificados, CSC NFC-e e plan_eligible.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: companies:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID da empresa

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/companies/c3d4e5f6-a7b8-9012-cdef-123456789012' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Detalhe da empresa

Exemplo de resposta
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "razao_social": "Empresa Emitente LTDA",
  "cnpj": "12345678000199",
  "status": "active",
  "fiscal_ambiente": "producao",
  "plan_eligible": true,
  "certificates": [],
  "nfce_csc_configs": []
}

Possíveis erros

UNAUTHORIZEDNOT_FOUND
PATCH/v1/companies/{id}200

Update company

Atualiza dados cadastrais da empresa.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: companies:write

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID da empresa

Request body

CreateCompanyDto

Exemplo de requisição

cURL
curl -X PATCH 'https://api.fisqal.com.br/v1/companies/c3d4e5f6-a7b8-9012-cdef-123456789012' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "razao_social": "Empresa Emitente LTDA",
  "nome_fantasia": "Empresa Emitente",
  "cnpj": "12345678000199",
  "inscricao_municipal": "12345678",
  "inscricao_estadual": "123456789",
  "codigo_municipio": "3550308",
  "municipio": "Sao Paulo",
  "uf": "SP",
  "logradouro": "Rua Exemplo",
  "numero": "100",
  "bairro": "Centro",
  "cep": "01310100",
  "email": "contato@empresa.com.br",
  "telefone": "1133334444",
  "fiscal_ambiente": "producao"
}
EOF

Response

200 Empresa atualizada

Exemplo de resposta
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "razao_social": "Empresa Emitente LTDA",
  "cnpj": "12345678000199",
  "status": "active",
  "fiscal_ambiente": "producao"
}

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERRORCONFLICT
PATCH/v1/companies/{id}/status200

Update company status

Ativa ou desativa empresa. Empresas inativas não emitem documentos fiscais.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: companies:write

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID da empresa

Request body

UpdateCompanyStatusDto

Exemplo de requisição

cURL
curl -X PATCH 'https://api.fisqal.com.br/v1/companies/c3d4e5f6-a7b8-9012-cdef-123456789012/status' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "status": "inactive"
}
EOF

Response

200 Status da empresa atualizado

Exemplo de resposta
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "inactive"
}

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERROR
DELETE/v1/companies/{id}200

Delete company

Remove empresa do workspace permanentemente.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: companies:write

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID da empresa

Exemplo de requisição

cURL
curl -X DELETE 'https://api.fisqal.com.br/v1/companies/c3d4e5f6-a7b8-9012-cdef-123456789012' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Empresa removida

Exemplo de resposta
{
  "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "deleted": true
}

Possíveis erros

UNAUTHORIZEDNOT_FOUND

Certificados

Certificados A1 ICP-Brasil por empresa. Endpoints sob /v1/companies/{companyId}/certificates (API key). Use o companyId retornado em POST /v1/companies.

Ordem recomendada

1) POST /v1/companies · 2) Upload do certificado abaixo.
POST/v1/companies/{companyId}/certificates201

Upload A1 certificate

Envia certificado digital A1 ICP-Brasil (.pfx). Use o companyId (UUID) retornado em POST /v1/companies.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: certificates:write

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
companyIduuidSimID da empresa

Headers

NomeTipoObrigatórioMínMáxDescrição
Content-Typemultipart/form-dataSimmultipart/form-data

Request body

multipart: nome, password, file

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/companies/a1b2c3d4-e5f6-7890-abcd-ef1234567890/certificates' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -F 'nome=Certificado Producao' \
  -F 'password=senha-certificado' \
  -F 'file=@certificado.pfx'

Response

201 Certificado armazenado com sucesso

Exemplo de resposta
{
  "id": "cert_uuid",
  "nome": "Certificado Producao",
  "status": "active"
}

Possíveis erros

UNAUTHORIZEDVALIDATION_ERRORCERTIFICATE_INVALIDCOMPANY_PLAN_LIMITCOMPANY_INACTIVE
GET/v1/companies/{companyId}/certificates200

List company certificates

Lista certificados da empresa. Requer companyId (UUID) válido no workspace.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: certificates:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
companyIduuidSimID da empresa

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/companies/a1b2c3d4-e5f6-7890-abcd-ef1234567890/certificates' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Lista de certificados

Exemplo de resposta
[
  {
    "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
    "nome": "Certificado Producao",
    "certificado_tipo": "A1",
    "thumbprint": "A1B2C3D4E5F6",
    "valido_de": "2025-01-01T00: 00: 00.000Z",
    "valido_ate": "2026-12-31T23: 59: 59.000Z",
    "status": "active",
    "created_at": "2026-05-16T10: 00: 00.000Z"
  }
]

Possíveis erros

UNAUTHORIZED
DELETE/v1/companies/{companyId}/certificates/{certificateId}200

Delete company certificate

Remove o certificado A1 da empresa. Requer certificates:write. Remova o certificado atual antes de enviar outro.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: certificates:write

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
companyIduuidSimID da empresa
certificateIduuidSimID do certificado

Exemplo de requisição

cURL
curl -X DELETE 'https://api.fisqal.com.br/v1/companies/a1b2c3d4-e5f6-7890-abcd-ef1234567890/certificates/b2c3d4e5-f6a7-8901-bcde-f12345678901' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Certificado removido

Exemplo de resposta
{
  "id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
  "deleted": true
}

Possíveis erros

UNAUTHORIZEDNOT_FOUNDCOMPANY_PLAN_LIMITCOMPANY_INACTIVE
POST/v1/companies/{companyId}/certificates/{certificateId}/test200

Test certificate signature and communication

Valida assinatura digital e comunicação com o ambiente fiscal.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: certificates:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
companyIduuidSimID da empresa
certificateIduuidSimID do certificado

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/companies/a1b2c3d4-e5f6-7890-abcd-ef1234567890/certificates/b2c3d4e5-f6a7-8901-bcde-f12345678901/test' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Resultado do teste

Exemplo de resposta
{
  "valid": true,
  "message": "SEFIN Nacional reachable",
  "signatureTestPassed": true,
  "communicationTestPassed": true
}

Possíveis erros

UNAUTHORIZEDCERTIFICATE_INVALIDFISCAL_PROVIDER_ERROR

NFS-e

POST/v1/nfse202 async202

Emit NFS-e asynchronously

Enfileira emissão de NFS-e via API SEFIN Nacional (mTLS + certificado A1). `servico.codigoNbs` (9 dígitos) é obrigatório desde 01/01/2026. Suporta dedução Salão Parceiro opcional (`salaoParceiro`, XSD tpDedRed=9). `valores.aliquotaIssqn` (XML `pAliq`) é omitido quando o município de incidência está parametrizado no SN NFS-e; obrigatório quando `tribIssqn=1` e incidência não parametrizada. O companyId no body deve existir no workspace (POST /v1/companies). Retorna 202 com status pending.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfse:write

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Headers

NomeTipoObrigatórioMínMáxDescrição
Idempotency-KeystringNão1512Evita emissão duplicada
X-Correlation-IdstringNão164Tracing opcional

Request body — CreateNfseDpsDto

Payload para emissão assíncrona de NFS-e (DPS).

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSimUUID da empresa emitente cadastrada no workspace (POST /v1/companies)
idDpsstringSim164Identificador único do DPS no sistema do emissor (até 64 caracteres)
serieDpsstringSim15Série do DPS/RPS (até 5 caracteres)
numeroDpsstringSim115Número sequencial do DPS/RPS (somente dígitos)
codigoMunicipioEmissorstringSim77Código IBGE do município emissor (7 dígitos)
tipoInscricaoPrestadorstringSim11Tipo de inscrição do prestador: 1=CPF, 2=CNPJ
inscricaoFederalPrestadorstringSim114CPF ou CNPJ do prestador (sem formatação)
inscricaoMunicipalPrestadorstringNão620Inscrição municipal do prestador. Opcional se já cadastrada na empresa; pode ser exigida pelo município
dataCompetenciadateSimData de competência do serviço (YYYY-MM-DD)
opSimpNacstringNão11Opção Simples Nacional: 1=não optante, 2=MEI, 3=ME/EPP (XSD TSOpSimpNac)
regApTribSNstringNão11Regime apuração SN: 1|2|3. Obrigatório quando opSimpNac=3 (XSD TSRegimeApuracaoSimpNac)
regEspTribstringNão11Regime especial tributação: 0|1|2|3|4|5|6|9 (XSD TSRegEspTrib)
tomador.tipoInscricaostringSim11Tipo de inscrição: 1=CPF, 2=CNPJ
tomador.inscricaoFederalstringSim114CPF ou CNPJ do tomador (sem formatação)
tomador.razaoSocialstringSim1255Nome ou razão social do tomador
tomador.emailstringNão180E-mail do tomador. Opcional
tomador.inscricaoMunicipalstringNão115Inscrição municipal do tomador. Opcional
tomador.endereco.logradourostringSim1255Logradouro (rua, avenida etc.)
tomador.endereco.numerostringSim120Número do imóvel
tomador.endereco.complementostringNão1120Complemento do endereço. Opcional
tomador.endereco.bairrostringSim1120Bairro
tomador.endereco.codigoMunicipiostringSim77Código IBGE do município (7 dígitos)
tomador.endereco.ufstringSim22Sigla da UF (2 letras)
tomador.endereco.cepstringSim88CEP (8 dígitos, sem hífen)
servico.codigoServicostringSim66Código cTribNac (6 dígitos — item + subitem LC 116 + desdobro nacional). Catálogo: GET /v1/nfse/codigos-tributacao
servico.municipioIncidenciastringSim77Código IBGE do município de incidência do ISSQN (7 dígitos)
servico.discriminacaostringSim12000Descrição detalhada do serviço prestado
servico.codigoNbsstringSim99Código NBS (9 dígitos). Obrigatório desde 01/01/2026. Catálogo: GET /v1/nfse/codigos-nbs
servico.codigoTributacaoMunicipiostringNão39Código de tributação municipal (3–9 dígitos). Opcional, conforme município
servico.codigoIndicadorOperacaostringNão66Indicador de operação RTC (6 dígitos, ex.: 050102). Opcional; exigido em cenários RTC
servico.ibsCbsSituacaoTributariastringNão33CST IBS/CBS (3 dígitos, ex.: 000). Opcional; exigido em cenários RTC
servico.ibsCbsClassificacaoTributariastringNão66Classificação tributária IBS/CBS (6 dígitos, ex.: 000001). Opcional; exigido em cenários RTC
servico.tipoOperacaostringNão11Tipo de operação RTC (TipoOp): 1|2|3|4|5. Opcional; exigido em Fortaleza/RTC
valores.valorServiconumberSimValor bruto do serviço prestado
valores.tribIssqnstringNão11Tributação ISSQN: 1|2|3|4 (XSD TSTribISSQN)
valores.tpRetIssqnstringNão11Tipo retenção ISSQN: 1|2|3 (XSD TSTipoRetISSQN)
valores.aliquotaIssqnnumberNãoAlíquota ISSQN (%). XML pAliq. Omitir quando município parametrizado no SN NFS-e; obrigatório quando tribIssqn=1 e incidência não parametrizada
valores.valorPisnumberNãoValor de PIS não retido (NT RPS 3.0 — ValorPis). Opcional
valores.valorCofinsnumberNãoValor de COFINS não retido (NT RPS 3.0 — ValorCofins). Opcional
valores.valorCsllnumberNãoValor de CSLL retida (NT RPS 3.0 — ValorCsll). Opcional
salaoParceiro.valorDeducaonumberNãoValor agregado (vDR)
salaoParceiro.documentosNfseSalaoParceiroDocumentoDto[]NãoLista docDedRed
salaoParceiro.documentos[].chaveNfsestringNão150Chave NFS-e nacional
salaoParceiro.documentos[].chaveNfestringNão4444Chave NF-e
salaoParceiro.documentos[].numeroDocumentoFiscalstringNão1255nDocFisc
salaoParceiro.documentos[].numeroDocumentostringNão1255nDoc (não fiscal)
salaoParceiro.documentos[].dataEmissaoDocumentodateSimData de emissão do documento de dedução
salaoParceiro.documentos[].valorDedutivelnumberSimValor dedutível/referência do documento
salaoParceiro.documentos[].valorDeducaonumberSimValor efetivo da dedução aplicada
salaoParceiro.documentos[].profissionalParceiro.tipoInscricaostringSim111 = CPF, 2 = CNPJ
salaoParceiro.documentos[].profissionalParceiro.inscricaoFederalstringSim114CPF ou CNPJ do profissional parceiro
salaoParceiro.documentos[].profissionalParceiro.razaoSocialstringSim1255Nome ou razão social do profissional parceiro
salaoParceiro.documentos[].profissionalParceiro.inscricaoMunicipalstringNão115Inscrição municipal do profissional. Opcional
finalidadeEmissaostringNão11Finalidade da emissão: 0=regular. Opcional
indicadorDestinatariostringNão11Indica destinatário distinto do tomador: 0=não, 1=sim. Opcional (RTC/Fortaleza)
consumidorFinalstringNão11Uso/consumo pessoal: 0=não, 1=sim. Opcional (RTC)
tipoEnteGovernamentalstringNão11Tipo de ente governamental: 1|2|3|4. Opcional, quando aplicável (RTC)
destinatarioRtc.tipoInscricaostringSim11Tipo de inscrição: 1=CPF, 2=CNPJ
destinatarioRtc.inscricaoFederalstringSim114CPF ou CNPJ do destinatário
destinatarioRtc.nifstringNão40NIF do destinatário estrangeiro. Quando informado, use naoNif=0. Opcional
destinatarioRtc.naoNifstringSim11Motivo para não informar NIF: 0=não informado na origem (com NIF), 1=dispensado, 2=não exigência
destinatarioRtc.nomestringSim1150Nome ou razão social do destinatário
destinatarioRtc.endereco.logradourostringSim1255Logradouro (rua, avenida etc.)
destinatarioRtc.endereco.numerostringSim120Número do imóvel
destinatarioRtc.endereco.complementostringNão1120Complemento do endereço. Opcional
destinatarioRtc.endereco.bairrostringSim1120Bairro
destinatarioRtc.endereco.codigoMunicipiostringSim77Código IBGE do município (7 dígitos)
destinatarioRtc.endereco.ufstringSim22Sigla da UF (2 letras)
destinatarioRtc.endereco.cepstringSim88CEP (8 dígitos, sem hífen)
destinatarioRtc.telefonestringNão20Telefone do destinatário. Opcional
destinatarioRtc.emailstringNão80E-mail do destinatário. Obrigatório quando indicadorDestinatario=1 (Fortaleza)
imovelRtc.inscricaoImobiliariaFiscalstringNão30Inscrição imobiliária fiscal do imóvel. Opcional conforme município
imovelRtc.codigoCibstringNão8Código CIB (Cadastro Imobiliário Brasileiro). Opcional
imovelRtc.endereco.logradourostringSim1255Logradouro (rua, avenida etc.)
imovelRtc.endereco.numerostringSim120Número do imóvel
imovelRtc.endereco.complementostringNão1120Complemento do endereço. Opcional
imovelRtc.endereco.bairrostringSim1120Bairro
imovelRtc.endereco.codigoMunicipiostringSim77Código IBGE do município (7 dígitos)
imovelRtc.endereco.ufstringSim22Sigla da UF (2 letras)
imovelRtc.endereco.cepstringSim88CEP (8 dígitos, sem hífen)
nfseReferenciadaRtc.chavesNfseReferenciadastring[]SimLista de chaves NFS-e referenciadas (50 dígitos numéricos cada, 1–100 itens)
Exemplo do body
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "idDps": "DPS355030812345678900019900000000001",
  "serieDps": "900",
  "numeroDps": "1",
  "codigoMunicipioEmissor": "3550308",
  "tipoInscricaoPrestador": "2",
  "inscricaoFederalPrestador": "12345678000199",
  "inscricaoMunicipalPrestador": "123456",
  "dataCompetencia": "2026-05-01",
  "opSimpNac": "1",
  "regApTribSN": "1",
  "regEspTrib": "0",
  "tomador": {
    "tipoInscricao": "2",
    "inscricaoFederal": "12345678000199",
    "inscricaoMunicipal": "12345678",
    "razaoSocial": "Tomador Exemplo LTDA",
    "email": "contato@tomador.com.br",
    "endereco": {
      "logradouro": "Av Paulista",
      "numero": "1000",
      "complemento": "Sala 101",
      "bairro": "Bela Vista",
      "codigoMunicipio": "3550308",
      "uf": "SP",
      "cep": "01310100"
    }
  },
  "servico": {
    "codigoServico": "010101",
    "codigoNbs": "115021000",
    "municipioIncidencia": "3550308",
    "discriminacao": "Consultoria em tecnologia da informacao",
    "codigoTributacaoMunicipio": "010"
  },
  "valores": {
    "valorServico": 1500,
    "tribIssqn": "1",
    "tpRetIssqn": "1",
    "aliquotaIssqn": 5
  },
  "salaoParceiro": {
    "documentos": [
      {
        "numeroDocumento": "contrato-parceria-001",
        "dataEmissaoDocumento": "2026-05-01",
        "valorDedutivel": 500,
        "valorDeducao": 500,
        "profissionalParceiro": {
          "tipoInscricao": "1",
          "inscricaoFederal": "12345678901",
          "razaoSocial": "Profissional Parceiro"
        }
      }
    ]
  }
}

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/nfse' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Idempotency-Key: idem_7f3a9c2e1b4d8f6a' \
  -H 'X-Correlation-Id: corr_9e2f1a8b3c7d4e6f' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "idDps": "DPS355030812345678900019900000000001",
  "serieDps": "900",
  "numeroDps": "1",
  "codigoMunicipioEmissor": "3550308",
  "tipoInscricaoPrestador": "2",
  "inscricaoFederalPrestador": "12345678000199",
  "inscricaoMunicipalPrestador": "123456",
  "dataCompetencia": "2026-05-01",
  "opSimpNac": "1",
  "regApTribSN": "1",
  "regEspTrib": "0",
  "tomador": {
    "tipoInscricao": "2",
    "inscricaoFederal": "12345678000199",
    "inscricaoMunicipal": "12345678",
    "razaoSocial": "Tomador Exemplo LTDA",
    "email": "contato@tomador.com.br",
    "endereco": {
      "logradouro": "Av Paulista",
      "numero": "1000",
      "complemento": "Sala 101",
      "bairro": "Bela Vista",
      "codigoMunicipio": "3550308",
      "uf": "SP",
      "cep": "01310100"
    }
  },
  "servico": {
    "codigoServico": "010101",
    "codigoNbs": "115021000",
    "municipioIncidencia": "3550308",
    "discriminacao": "Consultoria em tecnologia da informacao",
    "codigoTributacaoMunicipio": "010"
  },
  "valores": {
    "valorServico": 1500,
    "tribIssqn": "1",
    "tpRetIssqn": "1",
    "aliquotaIssqn": 5
  },
  "salaoParceiro": {
    "documentos": [
      {
        "numeroDocumento": "contrato-parceria-001",
        "dataEmissaoDocumento": "2026-05-01",
        "valorDedutivel": 500,
        "valorDeducao": 500,
        "profissionalParceiro": {
          "tipoInscricao": "1",
          "inscricaoFederal": "12345678901",
          "razaoSocial": "Profissional Parceiro"
        }
      }
    ]
  }
}
EOF

Response

202 Accepted — processamento assíncrono iniciado

Exemplo de resposta
{
  "dpsId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "status": "pending",
  "fiscalRequestId": "f1a2b3c4-d5e6-7890-abcd-ef1234567890"
}

Possíveis erros

UNAUTHORIZEDVALIDATION_ERRORUNPROCESSABLE_ENTITYFISCAL_PROVIDER_ERRORPLAN_FORBIDDENRATE_LIMITED
GET/v1/public/nfse/municipios/cobertura200

List NFS-e national municipality coverage (public)

Lista municípios com emissão via SEFIN Nacional, GINFES, webservice ABRASF 2.04 (issnet-abrasf-204) ou ISS.Net nacional (issnet-nacional) e aderidos pendentes.

Autenticação: não requerida

Query parameters

NomeTipoObrigatórioMínMáxDescrição
fiscalAmbientestringNão811homologacao | producao (default: producao)
statusstringNãoemissao | aderido | todos (default: todos)

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/public/nfse/municipios/cobertura?status=authorized'

Response

200 Lista de municípios com cobertura NFS-e nacional, resumo por status e data da última sincronização ADN.

Exemplo de resposta
{
  "fiscalAmbiente": "producao",
  "sincronizadoEm": "2026-05-17T12: 00: 00.000Z",
  "resumo": {
    "emissaoDisponivel": 3734,
    "aderidosAguardandoParametrizacao": 1753,
    "emSincronizacao": 93
  },
  "municipiosEmissao": [
    {
      "codigoIbge": "3550308",
      "municipio": "Sao Paulo",
      "uf": "SP"
    }
  ],
  "municipiosAderidosPendentes": [
    {
      "codigoIbge": "3304557",
      "municipio": "Rio de Janeiro",
      "uf": "RJ"
    }
  ]
}
GET/v1/nfse/municipios/{codigoIbge}/cobertura200

Get NFS-e national coverage for municipality

Cobertura municipal: nacionalAderido, nacionalEmissorNacional, podeEmitir (SEFIN, ginfes, issnet-abrasf-204 ou issnet-nacional), provedor efetivo.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfse:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
codigoIbgestringSimCódigo IBGE do município (7 dígitos)

Query parameters

NomeTipoObrigatórioMínMáxDescrição
fiscalAmbientestringNão811homologacao | producao

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfse/municipios/{codigoIbge}/cobertura' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Cobertura fiscal do município: provedor efetivo, flags ADN e se a emissão está disponível.

Exemplo de resposta
{
  "codigoMunicipioIbge": "3550308",
  "municipio": "Sao Paulo",
  "uf": "SP",
  "provedor": "sefin-nacional",
  "padraoNfse": "1.01",
  "ambiente": "homologacao",
  "nacionalAderido": true,
  "nacionalEmissorNacional": true,
  "nacionalParametrizado": true,
  "podeEmitir": true,
  "syncedAt": "2026-05-17T12: 00: 00.000Z",
  "syncSource": "adn"
}

Possíveis erros

UNAUTHORIZEDNOT_FOUND
GET/v1/nfse/codigos-tributacao200

List NFS-e national service codes

Catálogo oficial cTribNac (6 dígitos: item + subitem LC 116 + desdobro nacional). Requer API key com escopo nfse:read.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfse:read

Query parameters

NomeTipoObrigatórioMínMáxDescrição
qstringNão120Busca por código ou descrição (opcional)
limitnumberNãoLimite de resultados (opcional; omitir retorna todos; máx. 400 quando informado)

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfse/codigos-tributacao' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Lista de códigos de tributação nacional

Exemplo de resposta
{
  "items": [
    {
      "codigo": "010101",
      "descricao": "Análise e desenvolvimento de sistemas.",
      "itemLc116": "1.01"
    }
  ],
  "total": 337
}

Possíveis erros

UNAUTHORIZEDFORBIDDEN
GET/v1/nfse/codigos-nbs200

List NFS-e NBS codes

Catálogo oficial NBS (9 dígitos). Filtre por codigoServico (cTribNac) para obter correlações do Anexo VIII. Requer API key com escopo nfse:read.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfse:read

Query parameters

NomeTipoObrigatórioMínMáxDescrição
codigoServicostringNão66Filtra pela correlação Anexo VIII com cTribNac
qstringNão120Busca por código ou descrição (opcional)
limitnumberNãoLimite de resultados (opcional; omitir retorna todos; máx. 400 quando informado)

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfse/codigos-nbs?codigoServico=010101' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Lista de códigos NBS

Exemplo de resposta
{
  "items": [
    {
      "codigo": "115021000",
      "descricao": "Serviços de projeto, desenvolvimento e instalação de aplicativos e programas não personalizados (não customizados)"
    }
  ],
  "total": 5
}

Possíveis erros

UNAUTHORIZEDFORBIDDEN
GET/v1/nfse/servicos/{codigoServico}/parametros200

NFS-e service deduction parameters

Elegibilidade de dedução/Salão Parceiro (tpDedRed=9) por município e código de serviço. Regras estáticas Anexo I (E0435–E0441) e parametrização ADN (E0440, E0446, E0447, E0449) para SEFIN Nacional.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfse:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
codigoServicostringSim66cTribNac (6 dígitos)

Query parameters

NomeTipoObrigatórioMínMáxDescrição
municipioIbgestringSim77Código IBGE do município de incidência ISSQN
companyIdstringSimUUID da empresa emissora
dataCompetenciastringNãoData de competência (YYYY-MM-DD)
opSimpNacstringNão111 | 2 | 3
regApTribSNstringNão111 | 2 | 3 (quando opSimpNac=3)
regEspTribstringNão110 | 1 | 2 | 3 | 4 | 5 | 6 | 9
tribIssqnstringNão111 | 2 | 3 | 4

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfse/servicos/060101/parametros?municipioIbge=3550308&companyId=a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Elegibilidade e parâmetros de dedução do serviço

Exemplo de resposta
{
  "codigoServico": "060101",
  "municipioIncidencia": "3550308",
  "permiteSalaoParceiro": true,
  "permiteValorAgregado": true,
  "permiteDocumentos": true,
  "tpDedRedSalaoParceiro": "9",
  "motivosInelegibilidade": [],
  "tiposDeducaoAdmitidos": [
    "9"
  ],
  "aliquotaIssqn": 5,
  "fonteParametros": "adn"
}

Possíveis erros

UNAUTHORIZEDFORBIDDENNOT_FOUNDBAD_REQUEST
GET/v1/nfse200

List NFS-e DPS records

Lista registros DPS do workspace com filtros opcionais.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfse:read

Query parameters

NomeTipoObrigatórioMínMáxDescrição
companyIduuidNãoFiltrar por empresa
statusstringNão413pending | validated | xml_generated | signed | queued | processing | sent | authorized | rejected | failed | cancelled

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfse?companyId=a1b2c3d4-e5f6-7890-abcd-ef1234567890&status=authorized' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Lista paginada de DPS

Exemplo de resposta
[
  {
    "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "company_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "serie_dps": "900",
    "numero_dps": "42",
    "status": "authorized",
    "chave_acesso_nfse": "35260535503085000199550010000000421123456789",
    "data_competencia": "2026-05-01",
    "created_at": "2026-05-16T10: 00: 00.000Z",
    "tomador": {
      "razao_social": "Tomador Exemplo LTDA"
    },
    "servico": {
      "codigo_tributacao_nacional": "010701"
    },
    "valores": {
      "valor_servico": "1500.00"
    },
    "documents": [
      {
        "id": "d4e5f6a7-b8c9-0123-def0-234567890123",
        "status": "authorized"
      }
    ]
  }
]

Possíveis erros

UNAUTHORIZED
GET/v1/nfse/{id}200

Get NFS-e DPS by id

Consulta detalhes de um DPS/NFS-e pelo identificador.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfse:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do DPS

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfse/c3d4e5f6-a7b8-9012-cdef-123456789012' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Registro DPS

Exemplo de resposta
{
  "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "company_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "serie_dps": "900",
  "numero_dps": "42",
  "status": "authorized",
  "chave_acesso_nfse": "35260535503085000199550010000000421123456789",
  "protocolo_nacional": "PROT123456",
  "data_competencia": "2026-05-01",
  "tomador": {
    "razao_social": "Tomador Exemplo LTDA"
  },
  "servico": {
    "codigo_tributacao_nacional": "010701"
  },
  "valores": {
    "valor_servico": "1500.00"
  },
  "documents": [
    {
      "chave_acesso_nfse": "35260535503085000199550010000000421123456789"
    }
  ],
  "fiscal_requests": [
    {
      "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890",
      "status": "sent",
      "operation": "emit"
    }
  ]
}

Possíveis erros

UNAUTHORIZED
GET/v1/nfse/{id}/consulta-sefin200

Consult NFS-e at Sefin Nacional

Consulta NFS-e na Sefin Nacional por chave de acesso e persiste em nfse_consultas.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfse:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do DPS

Query parameters

NomeTipoObrigatórioMínMáxDescrição
chavestringNãoChave de acesso NFS-e (opcional se já autorizada)

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfse/c3d4e5f6-a7b8-9012-cdef-123456789012/consulta-sefin' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Resultado da consulta Sefin

Exemplo de resposta
{
  "consultaId": "e5f6a7b8-c9d0-1234-ef01-345678901234",
  "found": true,
  "chaveAcesso": "35260535503085000199550010000000421123456789",
  "xmlNfse": "<NFSe>...</NFSe>",
  "durationMs": 842
}

Possíveis erros

UNAUTHORIZEDNOT_FOUNDFISCAL_PROVIDER_ERROR
GET/v1/nfse/{id}/status200

Get NFS-e status timeline

Retorna linha do tempo de transições de status do documento.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfse:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do DPS

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfse/c3d4e5f6-a7b8-9012-cdef-123456789012/status' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Timeline de status

Exemplo de resposta
{
  "dpsId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "status": "authorized",
  "chaveAcesso": "35260535503085000199550010000000421123456789",
  "logs": [
    {
      "level": "info",
      "message": "NFS-e authorized",
      "context": {
        "protocolo": "PROT123456"
      },
      "createdAt": "2026-05-16T10: 05: 00.000Z"
    }
  ]
}

Possíveis erros

UNAUTHORIZED
POST/v1/nfse/{id}/cancel202 async202

Cancel NFS-e asynchronously

Enfileira cancelamento da NFS-e autorizada.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfse:cancel

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do DPS

Request body

CancelNfseDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/nfse/c3d4e5f6-a7b8-9012-cdef-123456789012/cancel' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "motivoCancelamento": "Cancelamento solicitado pelo tomador"
}
EOF

Response

202 Accepted — cancelamento enfileirado

Exemplo de resposta
{
  "cancelamentoId": "f6a7b8c9-d0e1-2345-f012-456789012345",
  "status": "pending"
}

Possíveis erros

UNAUTHORIZEDVALIDATION_ERRORNFSE_REJECTEDPLAN_FORBIDDENCOMPANY_PLAN_LIMITCOMPANY_INACTIVERATE_LIMITED
GET/v1/nfse/{id}/xml200

Get signed URL for NFS-e XML

Retorna URL assinada temporária para download do XML.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfse:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do DPS

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfse/c3d4e5f6-a7b8-9012-cdef-123456789012/xml' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 URL assinada do XML

Exemplo de resposta
"https://storage.example.com/nfse/xml-signed-abc123?token=xyz"

Possíveis erros

UNAUTHORIZED
GET/v1/nfse/{id}/pdf200

Get signed URL for DANFSE PDF

Retorna URL assinada temporária para download do DANFSE. Query variant=authorized (emissão; padrão se omitido) ou variant=cancelled (pós-cancelamento).

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfse:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do DPS

Query parameters

NomeTipoObrigatórioMínMáxDescrição
variantstringNãoauthorized | cancelled (padrão: authorized)

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfse/c3d4e5f6-a7b8-9012-cdef-123456789012/pdf' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 { url } — URL assinada do PDF

Exemplo de resposta
{
  "url": "https://storage.example.com/nfse/danfse-abc123.pdf?token=xyz"
}

Possíveis erros

UNAUTHORIZED
GET/v1/nfse/status/service200

Consult fiscal service status

Consulta disponibilidade do serviço SEFIN Nacional (provider sefin-nacional).

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfse:read

Query parameters

NomeTipoObrigatórioMínMáxDescrição
companyIduuidSimID da empresa

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfse/status/service?companyId=a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Status do serviço fiscal

Exemplo de resposta
{
  "online": true,
  "message": "SEFIN Nacional reachable",
  "durationMs": 312
}

Possíveis erros

UNAUTHORIZEDFISCAL_PROVIDER_ERROR
POST/v1/nfse/consulta-chave200

Consult external NFS-e by key or DPS id

Consulta NFS-e externa por chave ou idDps no provider municipal/nacional e upsert em nfse_documents.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfse:read

Request body

ConsultNfseChaveDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/nfse/consulta-chave' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "chaveAcesso": "CHAVE"
}
EOF

Response

200 Resultado da consulta externa

Exemplo de resposta
{
  "consultaId": "e5f6a7b8-c9d0-1234-ef01-345678901234",
  "found": true,
  "chaveAcesso": "53001000000123456789012345678901234567890123456",
  "durationMs": 620
}

Possíveis erros

UNAUTHORIZEDNOT_FOUNDFISCAL_PROVIDER_ERROR
POST/v1/nfse/external/sync202 async202

Sync external NFS-e by period or range

Enfileira sincronizacao GINFES ou ABRASF 2.04 (prestado, tomado ou faixa). Requer ginfes ou issnet-abrasf-204.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfse:read

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Headers

NomeTipoObrigatórioMínMáxDescrição
Idempotency-KeystringNão1512Evita sync duplicado

Request body

SyncNfseExternalDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/nfse/external/sync' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Idempotency-Key: idem_7f3a9c2e1b4d8f6a' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "codigoMunicipioIbge": "3550308",
  "mode": "prestado"
}
EOF

Response

202 Accepted — sync enfileirado

Exemplo de resposta
{
  "syncRunId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "fiscalRequestId": "f1a2b3c4-d5e6-7890-abcd-ef1234567890",
  "status": "queued"
}

Possíveis erros

UNAUTHORIZEDVALIDATION_ERRORFISCAL_PROVIDER_ERROR

NF-e

POST/v1/nfe202 async202

Emit NF-e asynchronously

Enfileira emissão de NF-e modelo 55 na SEFAZ. O companyId no body deve existir no workspace (POST /v1/companies).

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfe:write

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Headers

NomeTipoObrigatórioMínMáxDescrição
Idempotency-KeystringNão1512Evita emissão duplicada
X-Correlation-IdstringNão164Tracing opcional

Request body — CreateNfeDto

Payload para emissão assíncrona de NF-e (modelo 55).

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSimUUID da empresa emitente cadastrada no workspace (POST /v1/companies)
ide.cufstringSim22Código IBGE da UF do emitente (2 dígitos, ex.: 35=SP)
ide.cnfstringNão88Código numérico da NF-e (8 dígitos). Opcional; a API gera se omitido
ide.natOpstringSim160Descrição da natureza da operação
ide.seriestringSim13Série da NF-e
ide.nnfstringSim19Número da NF-e
ide.dhEmistringSim35Data e hora de emissão em ISO 8601 com fuso (ex.: 2026-05-16T10:00:00-03:00)
ide.dhSaiEntstringNão35Data e hora de saída ou entrada da mercadoria. Opcional
ide.tpNfstringSim11Tipo da NF-e: 0=entrada, 1=saída
ide.idDeststringSim11Destino da operação: 1=interna, 2=interestadual, 3=exterior
ide.cMunFgstringSim77Código IBGE do município do fato gerador do ICMS (7 dígitos)
ide.tpImpstringSim11Formato DANFE: 1=retrato (padrão NF-e), 2=paisagem
ide.tpEmisstringNão11Tipo de emissão: 1=normal (default). Outros valores para contingência
ide.finNfestringSim11Finalidade: 1=normal, 2=complementar, 3=ajuste, 4=devolução
ide.indFinalstringSim11Consumidor final: 0=não, 1=sim
ide.indPresstringSim11Indicador de presença do comprador (tabela SEFAZ: 0–9)
ide.indIntermedstringNão11Indicador de intermediador/marketplace: 0=sem, 1=com. Opcional
ide.procEmistringNão11Processo de emissão: 0=app contribuinte, 1=avulsa Fisco, 3=app certificado. Opcional
ide.verProcstringNão120Versão do processo emissor (ex.: FISQAL-1.0). Opcional
emit.cnpjstringSim1414CNPJ do emitente (14 dígitos, sem formatação)
emit.xNomestringSim1255Razão social do emitente
emit.xFantstringNão160Nome fantasia. Opcional
emit.enderEmit.xLgrstringSimLogradouro
emit.enderEmit.nrostringSimNúmero
emit.enderEmit.xCplstringNãoComplemento. Opcional
emit.enderEmit.xBairrostringSimBairro
emit.enderEmit.cMunstringSimCódigo IBGE do município (7 dígitos)
emit.enderEmit.xMunstringSimNome do município
emit.enderEmit.UFstringNãoSigla UF (2 letras). Aceita também uf
emit.enderEmit.ufstringNãoSigla UF (2 letras). Aceita também UF
emit.enderEmit.CEPstringNãoCEP (8 dígitos). Aceita também cep
emit.enderEmit.cepstringNãoCEP (8 dígitos). Aceita também CEP
emit.enderEmit.cPaisstringNãoCódigo país (1058=Brasil). Opcional
emit.enderEmit.xPaisstringNãoNome do país. Opcional
emit.iestringSim114Inscrição estadual do emitente
emit.crtstringSim11Código de regime tributário: 1=Simples Nacional, 2=Simples excesso, 3=Normal
dest.cnpjstringNão1414CNPJ do destinatário (14 dígitos). Mutuamente exclusivo com cpf
dest.cpfstringNão1111CPF do destinatário (11 dígitos). Mutuamente exclusivo com cnpj
dest.xNomestringSim260Nome ou razão social do destinatário
dest.enderDest.xLgrstringSimLogradouro
dest.enderDest.nrostringSimNúmero
dest.enderDest.xCplstringNãoComplemento. Opcional
dest.enderDest.xBairrostringSimBairro
dest.enderDest.cMunstringSimCódigo IBGE do município (7 dígitos)
dest.enderDest.xMunstringSimNome do município
dest.enderDest.UFstringNãoSigla UF (2 letras). Aceita também uf
dest.enderDest.ufstringNãoSigla UF (2 letras). Aceita também UF
dest.enderDest.CEPstringNãoCEP (8 dígitos). Aceita também cep
dest.enderDest.cepstringNãoCEP (8 dígitos). Aceita também CEP
dest.enderDest.cPaisstringNãoCódigo país (1058=Brasil). Opcional
dest.enderDest.xPaisstringNãoNome do país. Opcional
dest.indIeDeststringSim11Indicador IE destinatário: 1=contribuinte, 2=isento, 9=não contribuinte
dest.iestringNão120Inscrição estadual. Obrigatória quando indIeDest=1. Opcional
dest.emailstringNão160E-mail do destinatário para envio do XML/DANFE. Opcional
detNfeItemDto[]SimItens da nota. Mínimo 1, máximo 990 (XSD leiauteNFe_v4.00)
det[].nItemnumberSimNúmero sequencial do item (1, 2, 3...)
det[].cProdstringSim160Código interno do produto ou serviço
det[].cEanstringNão14GTIN/EAN do produto ou "SEM GTIN". Opcional
det[].xProdstringSim1120Descrição do produto ou serviço
det[].ncmstringSim28Código NCM (Nomenclatura Comum do Mercosul)
det[].cfopstringSim44CFOP da operação (4 dígitos)
det[].uComstringSim16Unidade comercial (ex.: UN, KG, CX)
det[].qComnumberSimQuantidade comercial
det[].vUnComnumberSimValor unitário comercial
det[].vProdnumberSimValor total do produto (qCom × vUnCom, descontos aplicados)
det[].cEanTribstringNão14GTIN/EAN da unidade tributável. Opcional
det[].uTribstringSim16Unidade tributável
det[].qTribnumberSimQuantidade tributável
det[].vUnTribnumberSimValor unitário tributável
det[].indTotstringSim11Compõe total da NF-e: 1=sim, 0=não
det[].imposto.ICMSobjectSimGrupo ICMS (ex.: ICMS00, ICMSSN102). Informe orig, CST/CSOSN, bases e alíquotas
det[].imposto.PISobjectNãoGrupo PIS (ex.: PISAliq, PISNT). Opcional conforme operação
det[].imposto.COFINSobjectNãoGrupo COFINS (ex.: COFINSAliq, COFINSNT). Opcional conforme operação
det[].imposto.IPIobjectNãoGrupo IPI. Opcional
det[].imposto.IBSCBSobjectNãoGrupo IBS/CBS (Reforma Tributária): CST, cClassTrib, gIBSCBS. Ver seção Reforma tributária
det[].vItemnumberNãoValor total do item com tributos (vItem, RTC). Opcional
total.icmsTot.vBCnumberNãoBase de cálculo ICMS
total.icmsTot.vICMSnumberNãoValor total ICMS
total.icmsTot.vICMSDesonnumberNãoValor ICMS desonerado
total.icmsTot.vFCPnumberNãoValor FCP
total.icmsTot.vBCSTnumberNãoBase de cálculo ST
total.icmsTot.vSTnumberNãoValor ICMS ST
total.icmsTot.vProdnumberSimValor total dos produtos
total.icmsTot.vFretenumberNãoValor total frete
total.icmsTot.vSegnumberNãoValor total seguro
total.icmsTot.vDescnumberNãoValor total desconto
total.icmsTot.vIInumberNãoValor total II
total.icmsTot.vIPInumberNãoValor total IPI
total.icmsTot.vPISnumberNãoValor total PIS
total.icmsTot.vCOFINSnumberNãoValor total COFINS
total.icmsTot.vOutronumberNãoOutras despesas acessórias
total.icmsTot.vNFnumberSimValor total da NF-e/NFC-e
total.icmsTot.vTotTribnumberNãoValor aproximado total de tributos
total.ibsCbsTotobjectNãoGrupo IBSCBSTot no XML (opcional, Reforma Tributária): vBCIBSCBS, gIBS, gCBS
total.vNfTotnumberNãoCampo vNFTot quando exigido pelo leiaute vigente (Reforma Tributária)
transp.modFretestringSim11Modalidade do frete: 0=emitente, 1=destinatário, 2=terceiros, 3=próprio remetente, 4=próprio destinatário, 9=sem frete
pagNfePagamentoDto[]NãoFormas de pagamento (detPag). Opcional, máximo 100 itens
pag[].tPagstringSim22Meio de pagamento (tabela SEFAZ: 01=dinheiro, 03=cartão crédito, 17=PIX, 99=outros)
pag[].vPagnumberSimValor do pagamento
pag[].xPagstringNão160Descrição do meio de pagamento. Obrigatório quando tPag=99
Exemplo do body
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "ide": {
    "cuf": "35",
    "natOp": "Venda de mercadoria",
    "serie": "1",
    "nnf": "8296",
    "dhEmi": "2026-05-16T10: 00: 00-03: 00",
    "tpNf": "1",
    "idDest": "1",
    "cMunFg": "3550308",
    "tpImp": "1",
    "finNfe": "1",
    "indFinal": "1",
    "indPres": "9"
  },
  "emit": {
    "cnpj": "12345678000199",
    "xNome": "Empresa Emitente LTDA",
    "enderEmit": {},
    "ie": "123456789",
    "crt": "2"
  },
  "dest": {
    "cnpj": "98765432000111",
    "xNome": "Destinatario Exemplo",
    "enderDest": {},
    "indIeDest": "9"
  },
  "det": [],
  "total": {
    "icmsTot": {}
  }
}

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/nfe' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Idempotency-Key: idem_7f3a9c2e1b4d8f6a' \
  -H 'X-Correlation-Id: corr_9e2f1a8b3c7d4e6f' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "ide": {
    "cuf": "35",
    "natOp": "Venda de mercadoria",
    "serie": "1",
    "nnf": "8296",
    "dhEmi": "2026-05-16T10: 00: 00-03: 00",
    "tpNf": "1",
    "idDest": "1",
    "cMunFg": "3550308",
    "tpImp": "1",
    "finNfe": "1",
    "indFinal": "1",
    "indPres": "9"
  },
  "emit": {
    "cnpj": "12345678000199",
    "xNome": "Empresa Emitente LTDA",
    "enderEmit": {},
    "ie": "123456789",
    "crt": "2"
  },
  "dest": {
    "cnpj": "98765432000111",
    "xNome": "Destinatario Exemplo",
    "enderDest": {},
    "indIeDest": "9"
  },
  "det": [],
  "total": {
    "icmsTot": {}
  }
}
EOF

Response

202 Accepted — processamento assíncrono iniciado

Exemplo de resposta
{
  "documentId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "status": "pending",
  "fiscalRequestId": "f1a2b3c4-d5e6-7890-abcd-ef1234567890"
}

Possíveis erros

UNAUTHORIZEDVALIDATION_ERRORCONFLICTPLAN_FORBIDDENCOMPANY_PLAN_LIMITCOMPANY_INACTIVERATE_LIMITED
GET/v1/nfe/{id}200

Get NF-e document by id

Consulta documento NF-e pelo identificador.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfe:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfe/c3d4e5f6-a7b8-9012-cdef-123456789012' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Documento NF-e

Exemplo de resposta
{
  "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "company_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "mod": "55",
  "serie": "1",
  "nnf": "8297",
  "status": "authorized",
  "chave_acesso_nfe": "3526051234567800019955001000082971234567890",
  "protocolo_autorizacao": "135260000829789",
  "tp_amb": "2",
  "created_at": "2026-05-16T10: 00: 00.000Z",
  "emitente": {
    "cnpj": "12345678000199",
    "x_nome": "Empresa Emitente LTDA"
  },
  "destinatario": {
    "cnpj": "98765432000111",
    "x_nome": "Destinatario Exemplo LTDA"
  },
  "total": {
    "v_nf": "2500.00"
  }
}

Possíveis erros

UNAUTHORIZED
GET/v1/nfe/{id}/fiscal-requests200

List fiscal requests for NF-e document

Lista requisições fiscais rastreáveis do documento.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfe:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfe/c3d4e5f6-a7b8-9012-cdef-123456789012/fiscal-requests' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Lista de fiscal_requests

Exemplo de resposta
[
  {
    "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890",
    "provider": "sefaz-sp",
    "operation": "authorize",
    "ambiente": "homologacao",
    "status": "sent",
    "http_status": 200,
    "duration_ms": 1240,
    "created_at": "2026-05-16T10: 00: 00.000Z",
    "logs": [
      {
        "level": "info",
        "message": "Lote autorizado",
        "created_at": "2026-05-16T10: 00: 01.000Z"
      }
    ]
  }
]

Possíveis erros

UNAUTHORIZED
GET/v1/nfe/{id}/protocol200

Consult NF-e protocol at SEFAZ

Consulta protocolo de autorização na SEFAZ.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfe:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfe/c3d4e5f6-a7b8-9012-cdef-123456789012/protocol' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Dados do protocolo

Exemplo de resposta
{
  "consultaId": "a7b8c9d0-e1f2-3456-0123-567890123456",
  "success": true,
  "cStat": "100",
  "xMotivo": "Autorizado o uso da NF-e",
  "protocolo": "135260000829789"
}

Possíveis erros

UNAUTHORIZEDFISCAL_PROVIDER_ERROR
POST/v1/nfe/{id}/cancel202 async202

Cancel NF-e asynchronously

Enfileira evento de cancelamento de NF-e autorizada.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfe:cancel

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Request body

CancelNfeDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/nfe/c3d4e5f6-a7b8-9012-cdef-123456789012/cancel' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "justificativa": "Cancelamento por solicitacao do cliente"
}
EOF

Response

202 Accepted — cancelamento enfileirado

Exemplo de resposta
{
  "documentId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "cancelamentoId": "b8c9d0e1-f2a3-4567-1234-678901234567",
  "status": "pending"
}

Possíveis erros

UNAUTHORIZEDNFE_REJECTED
GET/v1/nfe/{id}/pdf200

Get signed URL for DANFE PDF

Retorna URL assinada do DANFE. Query variant=authorized (nota autorizada) ou variant=cancelled (pós-cancelamento).

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfe:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Query parameters

NomeTipoObrigatórioMínMáxDescrição
variantstringSimauthorized | cancelled

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfe/c3d4e5f6-a7b8-9012-cdef-123456789012/pdf?variant=value' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 { url } — URL assinada do PDF

Exemplo de resposta
{
  "url": "https://storage.example.com/nfe/danfe.pdf?token=xyz"
}

Possíveis erros

UNAUTHORIZEDNOT_FOUND
POST/v1/nfe/inutilize202 async202

Inutilize NF-e numbering asynchronously

Enfileira inutilização de faixa de numeração NF-e.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfe:write

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Request body

InutilizeNfeDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/nfe/inutilize' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "serie": "1",
  "nnfIni": "1",
  "nnfFin": "10",
  "xJust": "Numeracao nao utilizada"
}
EOF

Response

202 Accepted — inutilização enfileirada

Exemplo de resposta
{
  "inutilizacaoId": "c9d0e1f2-a3b4-5678-2345-789012345678",
  "status": "pending"
}

Possíveis erros

UNAUTHORIZEDNFE_REJECTED
POST/v1/nfe/dfe/sync202 async202

Sync NF-e DF-e from Ambiente Nacional

Enfileira Distribuicao DF-e por NSU (emitente e destinatario) via NFeDistribuicaoDFe.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfe:write

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Headers

NomeTipoObrigatórioMínMáxDescrição
Idempotency-KeystringNão1512Evita sync duplicado

Request body

SyncNfeDfeDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/nfe/dfe/sync' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Idempotency-Key: idem_7f3a9c2e1b4d8f6a' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
EOF

Response

202 Accepted — sync DF-e enfileirado

Exemplo de resposta
{
  "fiscalRequestId": "f1a2b3c4-d5e6-7890-abcd-ef1234567890",
  "syncStateId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "status": "queued"
}

Possíveis erros

UNAUTHORIZEDNOT_FOUND
GET/v1/nfe/dfe/sync-state200

Get DF-e sync state

Retorna ultNSU, maxNSU e lastSyncAt da empresa.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfe:read

Query parameters

NomeTipoObrigatórioMínMáxDescrição
companyIduuidSimID da empresa

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfe/dfe/sync-state?companyId=a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Estado de sincronizacao DF-e

Exemplo de resposta
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "ultNsu": "000000000000123",
  "maxNsu": "000000000000456",
  "lastSyncAt": "2026-05-30T12: 00: 00.000Z"
}

Possíveis erros

UNAUTHORIZED
GET/v1/nfe/dfe200

List imported NF-e DF-e documents

Lista documentos importados via Distribuicao DF-e.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfe:read

Query parameters

NomeTipoObrigatórioMínMáxDescrição
companyIduuidNãoFiltrar por empresa
papelstringNão40emitente | destinatario
chavestringNão4444Chave de acesso NF-e (44 dígitos)

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfe/dfe?companyId=a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Lista de documentos DF-e

Exemplo de resposta
[]

Possíveis erros

UNAUTHORIZED
POST/v1/nfe/dfe/consulta-chave200

Consult NF-e by access key via DF-e

Consulta pontual consChNFe no Ambiente Nacional.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfe:read

Request body

ConsultNfeDfeChaveDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/nfe/dfe/consulta-chave' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "chaveAcesso": "35260612345678000199550010000082961000082961"
}
EOF

Response

200 Resultado da consulta por chave

Exemplo de resposta
{
  "consultaId": "e5f6a7b8-c9d0-1234-ef01-345678901234",
  "found": true,
  "cStat": "138",
  "chaveAcesso": "3526051234567800019955001000082971234567890",
  "documentsImported": 1
}

Possíveis erros

UNAUTHORIZEDNOT_FOUND

NFC-e

POST/v1/nfce202 async202

Emit NFC-e asynchronously

Enfileira emissão de NFC-e modelo 65 na SEFAZ. O companyId no body deve existir no workspace (POST /v1/companies). Body em JSON achatado (CreateNfceDto): itens em det[] com cProd/ncm/cfop no mesmo nível (sem det[].prod); não envie ide.tpAmb nem ide.cNF — ambiente vem da empresa e do CSC (tpAmb só em PUT .../csc). pag[].indPag opcional (0 ou 1). total.icmsTot: valores monetários normalizados para 2 casas no XML. emit.enderEmit: UF/CEP da empresa se ausentes no payload. 409 CONFLICT se série+nnf já consumidos no ambiente; failed/em andamento reutiliza documento (202). Rejeição SEFAZ é assíncrona (webhook/status), não no POST.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfce:write

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Headers

NomeTipoObrigatórioMínMáxDescrição
Idempotency-KeystringNão1512Evita emissão duplicada
X-Correlation-IdstringNão164Tracing opcional

Request body — CreateNfceDto

Payload para emissão assíncrona de NFC-e (modelo 65). JSON achatado: a API monta prod/tpAmb/cNF no XML. Proibido: ide.tpAmb, ide.cNF, det[].prod. 409 se série+nnf já consumidos no ambiente.

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSimUUID da empresa emitente cadastrada no workspace
ide.cufstringSim22Código IBGE da UF do emitente (2 dígitos, ex.: 35=SP)
ide.cnfstringNão88Código numérico (8 dígitos). Opcional; a API gera se omitido. Não envie cNF
ide.natOpstringSim160Descrição da natureza da operação (ex.: Venda ao consumidor)
ide.seriestringSim13Série da NFC-e
ide.nnfstringSim19Número da NFC-e. Conflito 409 se série+nnf já consumidos no ambiente
ide.dhEmistringSim35Data e hora de emissão em ISO 8601 com fuso
ide.tpNfstringSim11Tipo da NFC-e: 0=entrada, 1=saída (venda ao consumidor usa 1)
ide.idDeststringSim11Destino da operação: 1=interna, 2=interestadual, 3=exterior
ide.cMunFgstringSim77Código IBGE do município do fato gerador (7 dígitos)
ide.tpImpstringSim11Formato DANFE NFC-e: use 4 (obrigatório para modelo 65)
ide.tpEmisstringNão11Tipo de emissão: 1=normal (default). Outros valores para contingência
ide.finNfestringSim11Finalidade: 1=normal, 2=complementar, 3=ajuste, 4=devolução
ide.indFinalstringSim11Consumidor final: 0=não, 1=sim (NFC-e geralmente usa 1)
ide.indPresstringSim11Indicador de presença do comprador (tabela SEFAZ: 0–9)
ide.indIntermedstringNão11Indicador de intermediador/marketplace: 0=sem, 1=com. Opcional
ide.procEmistringNão11Processo de emissão: 0=app contribuinte. Opcional
ide.verProcstringNão120Versão do processo emissor (ex.: FISQAL-1.0). Opcional
emit.cnpjstringSim1414CNPJ do emitente (14 dígitos, sem formatação)
emit.xNomestringSim1255Razão social do emitente
emit.xFantstringNão160Nome fantasia. Opcional
emit.enderEmit.xLgrstringSimLogradouro
emit.enderEmit.nrostringSimNúmero
emit.enderEmit.xCplstringNãoComplemento. Opcional
emit.enderEmit.xBairrostringSimBairro
emit.enderEmit.cMunstringSimCódigo IBGE do município (7 dígitos)
emit.enderEmit.xMunstringSimNome do município
emit.enderEmit.UFstringNãoSigla UF (2 letras). Aceita também uf
emit.enderEmit.ufstringNãoSigla UF (2 letras). Aceita também UF
emit.enderEmit.CEPstringNãoCEP (8 dígitos). Aceita também cep
emit.enderEmit.cepstringNãoCEP (8 dígitos). Aceita também CEP
emit.enderEmit.cPaisstringNãoCódigo país (1058=Brasil). Opcional
emit.enderEmit.xPaisstringNãoNome do país. Opcional
emit.iestringSim114Inscrição estadual do emitente
emit.crtstringSim11Código de regime tributário: 1=Simples Nacional, 2=Simples excesso, 3=Normal
dest.cnpjstringNão1414CNPJ do consumidor identificado. Mutuamente exclusivo com cpf
dest.cpfstringNão1111CPF do consumidor identificado. Mutuamente exclusivo com cnpj
dest.xNomestringNão260Nome do consumidor. Opcional
dest.enderDest.xLgrstringSimLogradouro
dest.enderDest.nrostringSimNúmero
dest.enderDest.xCplstringNãoComplemento. Opcional
dest.enderDest.xBairrostringSimBairro
dest.enderDest.cMunstringSimCódigo IBGE do município (7 dígitos)
dest.enderDest.xMunstringSimNome do município
dest.enderDest.UFstringNãoSigla UF (2 letras). Aceita também uf
dest.enderDest.ufstringNãoSigla UF (2 letras). Aceita também UF
dest.enderDest.CEPstringNãoCEP (8 dígitos). Aceita também cep
dest.enderDest.cepstringNãoCEP (8 dígitos). Aceita também CEP
dest.enderDest.cPaisstringNãoCódigo país (1058=Brasil). Opcional
dest.enderDest.xPaisstringNãoNome do país. Opcional
dest.indIeDeststringNão11Indicador IE: 1=contribuinte, 2=isento, 9=não contribuinte. Opcional
dest.iestringNão120Inscrição estadual do consumidor. Opcional
dest.emailstringNão160E-mail do consumidor. Opcional
detNfceItemDto[]SimItens da nota. Mínimo 1, máximo 990 (XSD leiauteNFe_v4.00)
det[].nItemnumberSimNúmero sequencial do item (1, 2, 3...)
det[].cProdstringSim160Código interno do produto
det[].cEanstringNão14GTIN/EAN ou "SEM GTIN". Opcional
det[].xProdstringSim1120Descrição do produto
det[].ncmstringSim28Código NCM
det[].cfopstringSim44CFOP da operação (4 dígitos)
det[].uComstringSim16Unidade comercial (ex.: UN)
det[].qComnumberSimQuantidade comercial
det[].vUnComnumberSimValor unitário comercial
det[].vProdnumberSimValor total do produto
det[].cEanTribstringNão14GTIN/EAN da unidade tributável. Opcional
det[].uTribstringSim16Unidade tributável
det[].qTribnumberSimQuantidade tributável
det[].vUnTribnumberSimValor unitário tributável
det[].indTotstringSim11Compõe total da NFC-e: 1=sim, 0=não
det[].imposto.ICMSobjectSimGrupo ICMS (ex.: ICMS00, ICMSSN102). Informe orig, CST/CSOSN, bases e alíquotas
det[].imposto.PISobjectNãoGrupo PIS (ex.: PISAliq, PISNT). Opcional conforme operação
det[].imposto.COFINSobjectNãoGrupo COFINS (ex.: COFINSAliq, COFINSNT). Opcional conforme operação
det[].imposto.IPIobjectNãoGrupo IPI. Opcional
det[].imposto.IBSCBSobjectNãoGrupo IBS/CBS (Reforma Tributária): CST, cClassTrib, gIBSCBS. Ver seção Reforma tributária
det[].vItemnumberNãoValor total do item com tributos (vItem, RTC). Opcional
total.icmsTot.vBCnumberNãoBase de cálculo ICMS
total.icmsTot.vICMSnumberNãoValor total ICMS
total.icmsTot.vICMSDesonnumberNãoValor ICMS desonerado
total.icmsTot.vFCPnumberNãoValor FCP
total.icmsTot.vBCSTnumberNãoBase de cálculo ST
total.icmsTot.vSTnumberNãoValor ICMS ST
total.icmsTot.vProdnumberSimValor total dos produtos
total.icmsTot.vFretenumberNãoValor total frete
total.icmsTot.vSegnumberNãoValor total seguro
total.icmsTot.vDescnumberNãoValor total desconto
total.icmsTot.vIInumberNãoValor total II
total.icmsTot.vIPInumberNãoValor total IPI
total.icmsTot.vPISnumberNãoValor total PIS
total.icmsTot.vCOFINSnumberNãoValor total COFINS
total.icmsTot.vOutronumberNãoOutras despesas acessórias
total.icmsTot.vNFnumberSimValor total da NF-e/NFC-e
total.icmsTot.vTotTribnumberNãoValor aproximado total de tributos
total.ibsCbsTotobjectNãoGrupo IBSCBSTot no XML (opcional, Reforma Tributária): vBCIBSCBS, gIBS, gCBS
total.vNfTotnumberNãoCampo vNFTot quando exigido pelo leiaute vigente (Reforma Tributária)
pagNfcePagamentoDto[]SimFormas de pagamento. Obrigatório, mínimo 1, máximo 100 itens
pag[].indPagstringNão11Indicador de pagamento: 0=à vista, 1=a prazo. Opcional
pag[].tPagstringSim22Meio de pagamento (tabela SEFAZ: 01=dinheiro, 03=cartão crédito, 17=PIX, 99=outros)
pag[].vPagnumberSimValor do pagamento
pag[].xPagstringNão160Descrição do meio de pagamento. Obrigatório quando tPag=99
contingenciaOfflinebooleanNãoIndica emissão em contingência offline. Opcional
contingenciaJustificativastringNão15255Justificativa da contingência (15–255 caracteres). Obrigatória em contingência offline
Exemplo do body
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "ide": {
    "cuf": "53",
    "natOp": "Venda ao consumidor",
    "serie": "1",
    "nnf": "100",
    "dhEmi": "2026-06-03T10: 00: 00-03: 00",
    "tpNf": "1",
    "idDest": "1",
    "cMunFg": "5300108",
    "tpImp": "4",
    "tpEmis": "1",
    "finNfe": "1",
    "indFinal": "1",
    "indPres": "1",
    "procEmi": "0",
    "verProc": "FISQAL-1.0"
  },
  "emit": {
    "cnpj": "12345678000199",
    "xNome": "Empresa Emitente LTDA",
    "xFant": "Emitente",
    "enderEmit": {
      "xLgr": "Rua Exemplo",
      "nro": "100",
      "xBairro": "Centro",
      "cMun": "5300108",
      "xMun": "Brasilia",
      "uf": "DF",
      "cep": "70000000",
      "cPais": "1058",
      "xPais": "BRASIL"
    },
    "ie": "123456789",
    "crt": "1"
  },
  "det": [
    {
      "nItem": 1,
      "cProd": "P-1",
      "cEan": "SEM GTIN",
      "xProd": "Produto exemplo",
      "ncm": "22021000",
      "cfop": "5102",
      "uCom": "UN",
      "qCom": 1,
      "vUnCom": 5.9,
      "vProd": 5.9,
      "uTrib": "UN",
      "qTrib": 1,
      "vUnTrib": 5.9,
      "indTot": "1",
      "imposto": {
        "ICMS": {
          "ICMSSN102": {
            "orig": 0,
            "CSOSN": "102"
          }
        },
        "PIS": {
          "PISNT": {
            "CST": "07"
          }
        },
        "COFINS": {
          "COFINSNT": {
            "CST": "07"
          }
        }
      }
    }
  ],
  "total": {
    "icmsTot": {
      "vBC": 0,
      "vICMS": 0,
      "vICMSDeson": 0,
      "vFCP": 0,
      "vBCST": 0,
      "vST": 0,
      "vProd": 5.9,
      "vFrete": 0,
      "vSeg": 0,
      "vDesc": 0,
      "vII": 0,
      "vIPI": 0,
      "vPIS": 0,
      "vCOFINS": 0,
      "vOutro": 0,
      "vNF": 5.9,
      "vTotTrib": 0
    }
  },
  "pag": [
    {
      "indPag": "0",
      "tPag": "01",
      "vPag": 5.9
    }
  ]
}

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/nfce' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Idempotency-Key: idem_7f3a9c2e1b4d8f6a' \
  -H 'X-Correlation-Id: corr_9e2f1a8b3c7d4e6f' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "ide": {
    "cuf": "53",
    "natOp": "Venda ao consumidor",
    "serie": "1",
    "nnf": "100",
    "dhEmi": "2026-06-03T10: 00: 00-03: 00",
    "tpNf": "1",
    "idDest": "1",
    "cMunFg": "5300108",
    "tpImp": "4",
    "tpEmis": "1",
    "finNfe": "1",
    "indFinal": "1",
    "indPres": "1",
    "procEmi": "0",
    "verProc": "FISQAL-1.0"
  },
  "emit": {
    "cnpj": "12345678000199",
    "xNome": "Empresa Emitente LTDA",
    "xFant": "Emitente",
    "enderEmit": {
      "xLgr": "Rua Exemplo",
      "nro": "100",
      "xBairro": "Centro",
      "cMun": "5300108",
      "xMun": "Brasilia",
      "uf": "DF",
      "cep": "70000000",
      "cPais": "1058",
      "xPais": "BRASIL"
    },
    "ie": "123456789",
    "crt": "1"
  },
  "det": [
    {
      "nItem": 1,
      "cProd": "P-1",
      "cEan": "SEM GTIN",
      "xProd": "Produto exemplo",
      "ncm": "22021000",
      "cfop": "5102",
      "uCom": "UN",
      "qCom": 1,
      "vUnCom": 5.9,
      "vProd": 5.9,
      "uTrib": "UN",
      "qTrib": 1,
      "vUnTrib": 5.9,
      "indTot": "1",
      "imposto": {
        "ICMS": {
          "ICMSSN102": {
            "orig": 0,
            "CSOSN": "102"
          }
        },
        "PIS": {
          "PISNT": {
            "CST": "07"
          }
        },
        "COFINS": {
          "COFINSNT": {
            "CST": "07"
          }
        }
      }
    }
  ],
  "total": {
    "icmsTot": {
      "vBC": 0,
      "vICMS": 0,
      "vICMSDeson": 0,
      "vFCP": 0,
      "vBCST": 0,
      "vST": 0,
      "vProd": 5.9,
      "vFrete": 0,
      "vSeg": 0,
      "vDesc": 0,
      "vII": 0,
      "vIPI": 0,
      "vPIS": 0,
      "vCOFINS": 0,
      "vOutro": 0,
      "vNF": 5.9,
      "vTotTrib": 0
    }
  },
  "pag": [
    {
      "indPag": "0",
      "tPag": "01",
      "vPag": 5.9
    }
  ]
}
EOF

Response

202 Accepted — processamento assíncrono iniciado

Exemplo de resposta
{
  "documentId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "status": "pending",
  "fiscalRequestId": "f1a2b3c4-d5e6-7890-abcd-ef1234567890"
}

Possíveis erros

UNAUTHORIZEDVALIDATION_ERRORCONFLICTPLAN_FORBIDDENCOMPANY_PLAN_LIMITCOMPANY_INACTIVERATE_LIMITED
POST/v1/nfce/consulta-chave200

Consult NFC-e by access key at SEFAZ

Consulta protocolo NFC-e modelo 65 por chave sem documento local.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfce:read

Request body

ConsultNfceChaveDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/nfce/consulta-chave' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "chaveAcesso": "65260612345678000199650010000001001000001001"
}
EOF

Response

200 Resultado da consulta SEFAZ

Exemplo de resposta
{
  "consultaId": "e5f6a7b8-c9d0-1234-ef01-345678901234",
  "found": true,
  "cStat": "100",
  "chaveAcesso": "3526051234567800019965001000082971234567890",
  "protocolo": "135260000829789"
}

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERROR
GET/v1/nfce/{id}200

Get NFC-e document by id

Consulta documento NFC-e pelo identificador.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfce:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfce/c3d4e5f6-a7b8-9012-cdef-123456789012' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Documento NFC-e

Exemplo de resposta
{
  "id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "company_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "mod": "65",
  "serie": "1",
  "nnf": "1523",
  "status": "authorized",
  "chave_acesso_nfce": "3526051234567800019965001000015231234567890",
  "protocolo_autorizacao": "135260001523456",
  "tp_amb": "2",
  "created_at": "2026-05-16T10: 00: 00.000Z",
  "emitente": {
    "cnpj": "12345678000199",
    "x_nome": "Loja Exemplo LTDA"
  },
  "total": {
    "v_nf": "89.90"
  },
  "pagamentos": [
    {
      "t_pag": "17",
      "v_pag": "89.90"
    }
  ]
}

Possíveis erros

UNAUTHORIZED
GET/v1/nfce/{id}/fiscal-requests200

List fiscal requests for NFC-e document

Lista requisições fiscais rastreáveis do documento.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfce:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfce/c3d4e5f6-a7b8-9012-cdef-123456789012/fiscal-requests' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Lista de fiscal_requests

Exemplo de resposta
[
  {
    "id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890",
    "provider": "sefaz-sp",
    "operation": "authorize",
    "ambiente": "homologacao",
    "status": "sent",
    "http_status": 200,
    "duration_ms": 980,
    "created_at": "2026-05-16T10: 00: 00.000Z",
    "logs": [
      {
        "level": "info",
        "message": "Status alterado para Autorizado",
        "created_at": "2026-05-16T10: 00: 01.000Z"
      }
    ]
  }
]

Possíveis erros

UNAUTHORIZED
GET/v1/nfce/{id}/protocol200

Consult NFC-e protocol at SEFAZ

Consulta protocolo de autorização na SEFAZ.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfce:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfce/c3d4e5f6-a7b8-9012-cdef-123456789012/protocol' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Dados do protocolo

Exemplo de resposta
{
  "consultaId": "d0e1f2a3-b4c5-6789-3456-890123456789",
  "success": true,
  "cStat": "100",
  "xMotivo": "Autorizado o uso da NF-e",
  "protocolo": "135260001523456"
}

Possíveis erros

UNAUTHORIZEDFISCAL_PROVIDER_ERROR
POST/v1/nfce/{id}/cancel202 async202

Cancel NFC-e asynchronously

Enfileira evento de cancelamento de NFC-e autorizada.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfce:cancel

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Request body

CancelNfceDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/nfce/c3d4e5f6-a7b8-9012-cdef-123456789012/cancel' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "justificativa": "Cancelamento por solicitacao do cliente"
}
EOF

Response

202 Accepted — cancelamento enfileirado

Exemplo de resposta
{
  "documentId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "cancelamentoId": "e1f2a3b4-c5d6-7890-4567-901234567890",
  "status": "pending"
}

Possíveis erros

UNAUTHORIZEDNFCE_REJECTED
GET/v1/nfce/{id}/pdf200

Get signed URL for DANFE NFC-e PDF

Retorna URL assinada do DANFE NFC-e. Query variant=authorized ou variant=cancelled.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfce:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Query parameters

NomeTipoObrigatórioMínMáxDescrição
variantstringSimauthorized | cancelled

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfce/c3d4e5f6-a7b8-9012-cdef-123456789012/pdf?variant=value' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 { url } — URL assinada do PDF

Exemplo de resposta
{
  "url": "https://storage.example.com/nfce/danfe.pdf?token=xyz"
}

Possíveis erros

UNAUTHORIZEDNOT_FOUND
POST/v1/nfce/inutilize202 async202

Inutilize NFC-e numbering asynchronously

Enfileira inutilização de faixa de numeração NFC-e.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfce:write

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Request body

InutilizeNfceDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/nfce/inutilize' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "serie": "1",
  "nnfIni": "1",
  "nnfFin": "10",
  "xJust": "Numeracao nao utilizada"
}
EOF

Response

202 Accepted — inutilização enfileirada

Exemplo de resposta
{
  "inutilizacaoId": "f2a3b4c5-d6e7-8901-5678-012345678901",
  "status": "pending"
}

Possíveis erros

UNAUTHORIZEDNFCE_REJECTED
PUT/v1/nfce/companies/{companyId}/csc200

Upsert company NFC-e CSC configuration

Cadastra ou atualiza CSC para geração de QR Code NFC-e.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfce:write

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
companyIduuidSimID da empresa

Request body

UpsertCompanyNfceCscDto

Exemplo de requisição

cURL
curl -X PUT 'https://api.fisqal.com.br/v1/nfce/companies/a1b2c3d4-e5f6-7890-abcd-ef1234567890/csc' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "tpAmb": "2",
  "cscId": "000001",
  "cscToken": "CSC-TOKEN-SECRET"
}
EOF

Response

200 CSC configurado

Exemplo de resposta
{
  "id": "d4e5f6a7-b8c9-0123-def0-234567890123",
  "company_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "tp_amb": "2",
  "csc_id": "000001",
  "url_chave": "https://www.homologacao.nfce.fazenda.sp.gov.br/consulta",
  "ativo": true,
  "created_at": "2026-05-16T10: 00: 00.000Z",
  "updated_at": "2026-05-16T10: 00: 00.000Z"
}

Possíveis erros

UNAUTHORIZEDVALIDATION_ERROR
GET/v1/nfce/companies/{companyId}/csc200

List company NFC-e CSC configurations

Lista configurações CSC da empresa (token mascarado).

Autenticação: API key (Bearer ou X-API-Key) · Scopes: nfce:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
companyIduuidSimID da empresa

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/nfce/companies/a1b2c3d4-e5f6-7890-abcd-ef1234567890/csc' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Lista de CSC

Exemplo de resposta
[
  {
    "id": "d4e5f6a7-b8c9-0123-def0-234567890123",
    "company_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "tp_amb": "2",
    "csc_id": "000001",
    "url_chave": "https://www.homologacao.nfce.fazenda.sp.gov.br/consulta",
    "ativo": true,
    "created_at": "2026-05-16T10: 00: 00.000Z",
    "updated_at": "2026-05-16T10: 00: 00.000Z"
  }
]

Possíveis erros

UNAUTHORIZED

MDF-e

Integração externa via API Key em /v1/mdfe (scopes mdfe:read, mdfe:write, mdfe:cancel, mdfe:event). Emissão, cancelamento, encerramento e eventos são assíncronos — a API responde 202 Accepted e o processamento ocorre via fila. Acompanhe com GET /v1/mdfe/{id} e GET /v1/mdfe/{id}/fiscal-requests. Modelo 58 (SVRS), leiaute 3.00; ide.modal 1–4 define o XSD do infModal.payload.

Webhook mdfe.authorized (exemplo)
{
  "event": "mdfe.authorized",
  "id": "evt_m1d2f3e4",
  "created_at": "2026-06-12T14: 30: 00Z",
  "data": {
    "document_id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
    "provider": "svrs-mdfe",
    "status": "authorized",
    "chave_acesso": "35260612345678000199580010000000011234567890",
    "protocolo": "135260000000001"
  }
}
POST/v1/mdfe202 async202

Emit MDF-e asynchronously

Enfileira emissão de MDF-e (modelo 58) na SEFAZ.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:write

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Headers

NomeTipoObrigatórioMínMáxDescrição
Idempotency-KeystringNão1512Evita emissão duplicada

Request body

CreateMdfeDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/mdfe' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Idempotency-Key: idem_7f3a9c2e1b4d8f6a' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "ide": {
    "cuf": "35",
    "serie": "1",
    "nmdf": "1",
    "modal": "1",
    "tpEmit": "1",
    "dhEmi": "2026-06-12T10: 00: 00-03: 00",
    "ufIni": "SP",
    "ufFim": "RJ",
    "infMunCarrega": [
      {
        "cMunCarrega": "3550308",
        "xMunCarrega": "SAO PAULO"
      }
    ]
  },
  "emit": {
    "cnpj": "12345678000199",
    "xNome": "Transportadora Exemplo LTDA",
    "enderEmit": {},
    "ie": "123456789"
  },
  "infModal": {
    "payload": {
      "infANTT": {
        "RNTRC": "12345678"
      },
      "veicTracao": {
        "placa": "ABC1D23",
        "tara": "8000",
        "capKG": "25000",
        "tpRod": "01",
        "tpCar": "02",
        "UF": "SP",
        "condutor": [
          {
            "xNome": "Joao Silva",
            "CPF": "12345678901"
          }
        ]
      }
    }
  },
  "infDoc": [
    {
      "cMunDescarga": "3304557",
      "xMunDescarga": "RIO DE JANEIRO",
      "infNFe": [
        {
          "chave": "3526051234567800019955001000082971234567890"
        }
      ]
    }
  ],
  "tot": {
    "qNfe": 1,
    "vCarga": 10000,
    "cUnid": "01",
    "qCarga": 5000
  }
}
EOF

Response

202 Accepted — processamento assíncrono iniciado

Exemplo de resposta
{
  "documentId": "c3d4e5f6-a7b8-9012-cdef-123456789012",
  "status": "pending",
  "fiscalRequestId": "f1a2b3c4-d5e6-7890-abcd-ef1234567890"
}

Possíveis erros

UNAUTHORIZEDVALIDATION_ERRORCONFLICTPLAN_FORBIDDEN
GET/v1/mdfe/not-closed200

Consult MDF-e not closed

Consulta manifestos não encerrados na SEFAZ.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:read

Query parameters

NomeTipoObrigatórioMínMáxDescrição
companyIduuidSimID da empresa emitente

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/mdfe/not-closed?companyId=a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Lista de MDF-e não encerrados

Possíveis erros

UNAUTHORIZEDVALIDATION_ERROR
POST/v1/mdfe/consulta-chave200

Consult MDF-e by access key

Consulta protocolo MDF-e por chave de acesso.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:read

Request body

ConsultMdfeChaveDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/mdfe/consulta-chave' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "chaveAcesso": "35260612345678000199580010000000011234567890"
}
EOF

Response

200 Protocolo MDF-e

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERROR
GET/v1/mdfe/{id}200

Get MDF-e document by id

Consulta documento MDF-e pelo identificador.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/mdfe/c3d4e5f6-a7b8-9012-cdef-123456789012' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Documento MDF-e

Possíveis erros

UNAUTHORIZEDNOT_FOUND
GET/v1/mdfe/{id}/fiscal-requests200

List fiscal requests for MDF-e

Lista requisições fiscais vinculadas ao MDF-e.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/mdfe/c3d4e5f6-a7b8-9012-cdef-123456789012/fiscal-requests' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Lista de fiscal requests

Possíveis erros

UNAUTHORIZEDNOT_FOUND
GET/v1/mdfe/{id}/protocol200

Consult MDF-e protocol at SEFAZ

Consulta protocolo do MDF-e na SEFAZ.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/mdfe/c3d4e5f6-a7b8-9012-cdef-123456789012/protocol' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Protocolo SEFAZ

Possíveis erros

UNAUTHORIZEDNOT_FOUND
GET/v1/mdfe/{id}/pdf200

Get signed URL for DAMDFE PDF

Retorna URL assinada do DAMDFE. Query variant=authorized ou variant=cancelled.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Query parameters

NomeTipoObrigatórioMínMáxDescrição
variantstringSimauthorized | cancelled

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/mdfe/c3d4e5f6-a7b8-9012-cdef-123456789012/pdf?variant=value' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 { url } — URL assinada do PDF

Possíveis erros

UNAUTHORIZEDNOT_FOUND
POST/v1/mdfe/{id}/cancel202 async202

Cancel MDF-e asynchronously

Enfileira cancelamento de MDF-e autorizado.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:cancel

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Request body

CancelMdfeDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/mdfe/c3d4e5f6-a7b8-9012-cdef-123456789012/cancel' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "justificativa": "Cancelamento por solicitacao do transportador"
}
EOF

Response

202 Cancelamento enfileirado

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERROR
POST/v1/mdfe/{id}/close202 async202

Close MDF-e asynchronously

Enfileira encerramento de MDF-e autorizado.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:event

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Request body

CloseMdfeDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/mdfe/c3d4e5f6-a7b8-9012-cdef-123456789012/close' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "cUf": "33",
  "cMun": "3304557",
  "dtEnc": "2026-06-12"
}
EOF

Response

202 Encerramento enfileirado

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERROR
POST/v1/mdfe/{id}/events/include-driver202 async202

Include driver MDF-e event

Evento de inclusão de condutor.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:event

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Request body

IncludeDriverMdfeDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/mdfe/c3d4e5f6-a7b8-9012-cdef-123456789012/events/include-driver' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "payload": {
    "condutor": {
      "xNome": "Joao",
      "CPF": "12345678901"
    }
  }
}
EOF

Response

202 Evento enfileirado

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERROR
POST/v1/mdfe/{id}/events/include-dfe202 async202

Include DF-e MDF-e event

Evento de inclusão de DF-e no manifesto.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:event

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Request body

IncludeDfeMdfeDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/mdfe/c3d4e5f6-a7b8-9012-cdef-123456789012/events/include-dfe' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "payload": {
    "infDoc": []
  }
}
EOF

Response

202 Evento enfileirado

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERROR
POST/v1/mdfe/{id}/events/payment202 async202

Payment MDF-e event

Evento 110116 — pagamento da operação de transporte.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:event

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Request body

PaymentMdfeDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/mdfe/c3d4e5f6-a7b8-9012-cdef-123456789012/events/payment' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "payload": {
    "infPag": []
  }
}
EOF

Response

202 Evento enfileirado

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERROR
POST/v1/mdfe/{id}/events/confirm-service202 async202

Confirm service MDF-e event

Evento 110117 — confirmação do serviço de transporte.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:event

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Request body

ConfirmServiceMdfeDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/mdfe/c3d4e5f6-a7b8-9012-cdef-123456789012/events/confirm-service' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "payload": {
    "infServico": {}
  }
}
EOF

Response

202 Evento enfileirado

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERROR
POST/v1/mdfe/{id}/events/change-payment202 async202

Change payment MDF-e event

Evento 110118 — alteração de pagamento do serviço.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:event

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Request body

ChangePaymentMdfeDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/mdfe/c3d4e5f6-a7b8-9012-cdef-123456789012/events/change-payment' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "payload": {
    "infPag": []
  }
}
EOF

Response

202 Evento enfileirado

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERROR
POST/v1/mdfe/dfe/sync202 async202

Sync MDF-e DF-e documents

Sincroniza documentos MDF-e do Ambiente Nacional.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:write

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Headers

NomeTipoObrigatórioMínMáxDescrição
Idempotency-KeystringNão1512Evita sync duplicado

Request body

SyncMdfeDfeDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/mdfe/dfe/sync' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Idempotency-Key: idem_7f3a9c2e1b4d8f6a' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
EOF

Response

202 Sync enfileirado

Possíveis erros

UNAUTHORIZEDVALIDATION_ERROR
GET/v1/mdfe/dfe/sync-state200

Get MDF-e DF-e sync state

Estado de sincronização DF-e por empresa.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:read

Query parameters

NomeTipoObrigatórioMínMáxDescrição
companyIduuidSimID da empresa

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/mdfe/dfe/sync-state?companyId=a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Estado de sync

Possíveis erros

UNAUTHORIZEDNOT_FOUND
GET/v1/mdfe/dfe200

List imported MDF-e DF-e documents

Lista documentos MDF-e importados via DF-e.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:read

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/mdfe/dfe' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Lista paginada de DF-e

Possíveis erros

UNAUTHORIZED
POST/v1/mdfe/dfe/consulta-chave200

Consult MDF-e by key via DF-e

Consulta MDF-e por chave via distribuição DF-e.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:read

Request body

ConsultMdfeDfeChaveDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/mdfe/dfe/consulta-chave' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "chaveAcesso": "35260612345678000199580010000000011234567890"
}
EOF

Response

200 Documento DF-e

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERROR
GET/v1/mdfe/dfe/{id}200

Get imported MDF-e DF-e document

Detalhe de documento MDF-e importado via DF-e.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: mdfe:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento DF-e

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/mdfe/dfe/c3d4e5f6-a7b8-9012-cdef-123456789012' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Documento DF-e

Possíveis erros

UNAUTHORIZEDNOT_FOUND

CT-e

Integração externa via API Key em /v1/cte (scopes cte:read, cte:write, cte:cancel, cte:event, cte:inutilize). Emissão, cancelamento, CC-e e inutilização são assíncronos — a API responde 202 Accepted e o processamento ocorre via fila. Acompanhe com GET /v1/cte/{id} e GET /v1/cte/{id}/fiscal-requests. Modelos 57, 67 ou 64; infModal.modal define o XSD do payload rodoviário/aéreo/etc.

Webhook cte.authorized (exemplo)
{
  "event": "cte.authorized",
  "id": "evt_c1t2e3f4",
  "created_at": "2026-06-12T14: 30: 00Z",
  "data": {
    "document_id": "d4e5f6a7-b8c9-0123-def0-234567890123",
    "provider": "svrs-cte",
    "status": "authorized",
    "chave_acesso": "35260612345678000199570010000000011234567890",
    "protocolo": "135260000000002"
  }
}
POST/v1/cte202 async202

Emit CT-e asynchronously

Enfileira emissão de CT-e (modelos 57, 67 ou 64) na SEFAZ.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: cte:write

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Headers

NomeTipoObrigatórioMínMáxDescrição
Idempotency-KeystringNão1512Evita emissão duplicada

Request body

CreateCteDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/cte' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Idempotency-Key: idem_7f3a9c2e1b4d8f6a' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "mod": "57",
  "ide": {
    "cuf": "35",
    "cfop": "6352",
    "natOp": "PRESTACAO DE SERVICO DE TRANSPORTE",
    "serie": "1",
    "nct": "1",
    "modal": "01",
    "tpServ": "0",
    "tpCTe": "0",
    "dhEmi": "2026-06-12T10: 00: 00-03: 00",
    "cMunEnv": "3550308",
    "xMunEnv": "SAO PAULO",
    "UFEnv": "SP",
    "cMunIni": "3550308",
    "xMunIni": "SAO PAULO",
    "UFIni": "SP",
    "cMunFim": "3304557",
    "xMunFim": "RIO DE JANEIRO",
    "UFFim": "RJ",
    "retira": "0",
    "toma3": {
      "toma": "3"
    }
  },
  "emit": {
    "cnpj": "12345678000199",
    "xNome": "Transportadora Exemplo LTDA",
    "enderEmit": {},
    "ie": "123456789"
  },
  "vPrest": {
    "vTPrest": 1500,
    "vRec": 1500
  },
  "imp": {
    "payload": {
      "ICMS": {
        "ICMS45": {
          "CST": "40"
        }
      }
    }
  },
  "infModal": {
    "modal": "01",
    "payload": {
      "RNTRC": "12345678"
    }
  }
}
EOF

Response

202 Accepted — processamento assíncrono iniciado

Exemplo de resposta
{
  "documentId": "d4e5f6a7-b8c9-0123-def0-234567890123",
  "status": "pending",
  "fiscalRequestId": "f2b3c4d5-e6f7-8901-bcde-f23456789012"
}

Possíveis erros

UNAUTHORIZEDVALIDATION_ERRORCONFLICTPLAN_FORBIDDEN
POST/v1/cte/consulta-chave200

Consult CT-e by access key

Consulta protocolo CT-e por chave de acesso.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: cte:read

Request body

ConsultCteChaveDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/cte/consulta-chave' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "chaveAcesso": "35260612345678000199570010000000011234567890"
}
EOF

Response

200 Protocolo CT-e

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERROR
POST/v1/cte/inutilize202 async202

Inutilize CT-e numbering asynchronously

Enfileira inutilização de numeração CT-e (modelos 57 ou 67).

Autenticação: API key (Bearer ou X-API-Key) · Scopes: cte:inutilize

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Request body

InutilizeCteDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/cte/inutilize' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "mod": "57",
  "serie": "1",
  "nCtIni": "1",
  "nCtFin": "10",
  "xJust": "Numeracao nao utilizada"
}
EOF

Response

202 Inutilização enfileirada

Possíveis erros

UNAUTHORIZEDVALIDATION_ERROR
GET/v1/cte/{id}200

Get CT-e document by id

Consulta documento CT-e pelo identificador.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: cte:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/cte/c3d4e5f6-a7b8-9012-cdef-123456789012' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Documento CT-e

Possíveis erros

UNAUTHORIZEDNOT_FOUND
GET/v1/cte/{id}/fiscal-requests200

List fiscal requests for CT-e

Lista requisições fiscais vinculadas ao CT-e.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: cte:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/cte/c3d4e5f6-a7b8-9012-cdef-123456789012/fiscal-requests' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Lista de fiscal requests

Possíveis erros

UNAUTHORIZEDNOT_FOUND
GET/v1/cte/{id}/protocol200

Consult CT-e protocol at SEFAZ

Consulta protocolo do CT-e na SEFAZ.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: cte:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/cte/c3d4e5f6-a7b8-9012-cdef-123456789012/protocol' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Protocolo SEFAZ

Possíveis erros

UNAUTHORIZEDNOT_FOUND
GET/v1/cte/{id}/pdf200

Get signed URL for DACTE PDF

Retorna URL assinada do DACTE. Query variant=authorized ou variant=cancelled.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: cte:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Query parameters

NomeTipoObrigatórioMínMáxDescrição
variantstringSimauthorized | cancelled

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/cte/c3d4e5f6-a7b8-9012-cdef-123456789012/pdf?variant=value' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 { url } — URL assinada do PDF

Possíveis erros

UNAUTHORIZEDNOT_FOUND
POST/v1/cte/{id}/cancel202 async202

Cancel CT-e asynchronously

Enfileira cancelamento de CT-e autorizado.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: cte:cancel

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Request body

CancelCteDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/cte/c3d4e5f6-a7b8-9012-cdef-123456789012/cancel' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "justificativa": "Cancelamento solicitado pelo emitente"
}
EOF

Response

202 Cancelamento enfileirado

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERROR
POST/v1/cte/{id}/cce202 async202

Send CT-e correction letter asynchronously

Enfileira carta de correção eletrônica (CC-e) do CT-e.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: cte:event

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Request body

CceCteDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/cte/c3d4e5f6-a7b8-9012-cdef-123456789012/cce' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "infCorrecao": [
    {
      "grupoAlterado": "ide",
      "campoAlterado": "natOp",
      "valorAlterado": "PRESTACAO DE SERVICO DE TRANSPORTE A"
    }
  ]
}
EOF

Response

202 CC-e enfileirada

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERROR
POST/v1/cte/{id}/vinc-pagamento202 async202

Register CT-e payment link event

Evento de vínculo de pagamento (RTC).

Autenticação: API key (Bearer ou X-API-Key) · Scopes: cte:event

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento

Request body

VincPagamentoCteDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/cte/c3d4e5f6-a7b8-9012-cdef-123456789012/vinc-pagamento' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{}
EOF

Response

202 Evento enfileirado

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERROR
POST/v1/cte/dfe/sync202 async202

Sync CT-e DF-e documents

Sincroniza documentos CT-e do Ambiente Nacional.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: cte:write

Operação assíncrona

Este endpoint retorna 202 Accepted imediatamente. O processamento fiscal ocorre em fila. Consulte o status via GET ou receba o resultado por webhook.

Headers

NomeTipoObrigatórioMínMáxDescrição
Idempotency-KeystringNão1512Evita sync duplicado

Request body

SyncCteDfeDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/cte/dfe/sync' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Idempotency-Key: idem_7f3a9c2e1b4d8f6a' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
EOF

Response

202 Sync enfileirado

Possíveis erros

UNAUTHORIZEDVALIDATION_ERROR
GET/v1/cte/dfe/sync-state200

Get CT-e DF-e sync state

Estado de sincronização DF-e por empresa.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: cte:read

Query parameters

NomeTipoObrigatórioMínMáxDescrição
companyIduuidSimID da empresa

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/cte/dfe/sync-state?companyId=a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Estado de sync

Possíveis erros

UNAUTHORIZEDNOT_FOUND
GET/v1/cte/dfe200

List imported CT-e DF-e documents

Lista documentos CT-e importados via DF-e.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: cte:read

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/cte/dfe' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Lista paginada de DF-e

Possíveis erros

UNAUTHORIZED
POST/v1/cte/dfe/consulta-chave200

Consult CT-e by key via DF-e

Consulta CT-e por chave via distribuição DF-e.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: cte:read

Request body

ConsultCteDfeChaveDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/cte/dfe/consulta-chave' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "chaveAcesso": "35260612345678000199570010000000011234567890"
}
EOF

Response

200 Documento DF-e

Possíveis erros

UNAUTHORIZEDNOT_FOUNDVALIDATION_ERROR
GET/v1/cte/dfe/{id}200

Get imported CT-e DF-e document

Detalhe de documento CT-e importado via DF-e.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: cte:read

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do documento DF-e

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/cte/dfe/c3d4e5f6-a7b8-9012-cdef-123456789012' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Documento DF-e

Possíveis erros

UNAUTHORIZEDNOT_FOUND

Webhooks

POST/v1/webhooks201

Create webhook subscription

Registra endpoint HTTPS para receber eventos fiscais.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: webhooks:write

Request body

CreateWebhookDto

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/webhooks' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx' \
  -H 'Content-Type: application/json' \
  -d @- <<'EOF'
{
  "nome": "Webhook Producao",
  "url": "https://example.com/webhooks/fisqal",
  "eventos": [
    "nfse.processing",
    "nfse.authorized",
    "nfse.rejected",
    "nfse.failed",
    "nfse.cancelled"
  ]
}
EOF

Response

201 Webhook criado com secret para validação HMAC

Exemplo de resposta
{
  "id": "w1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "nome": "ERP Producao",
  "url": "https://erp.example.com/webhooks/fisqal",
  "eventos": [
    "nfse.authorized",
    "nfse.rejected",
    "nfse.failed"
  ],
  "secret": "a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef123456"
}

Possíveis erros

UNAUTHORIZEDVALIDATION_ERRORPLAN_FORBIDDENRATE_LIMITED
GET/v1/webhooks200

List webhooks

Lista assinaturas de webhook do workspace.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: webhooks:read

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/webhooks' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Lista de webhooks

Exemplo de resposta
[
  {
    "id": "w1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "nome": "ERP Producao",
    "url": "https://erp.example.com/webhooks/fisqal",
    "eventos": [
      "nfse.authorized",
      "nfse.rejected"
    ],
    "ativo": true,
    "created_at": "2026-05-16T10: 00: 00.000Z"
  }
]

Possíveis erros

UNAUTHORIZEDPLAN_FORBIDDENRATE_LIMITED
DELETE/v1/webhooks/{id}200

Delete webhook

Remove assinatura de webhook.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: webhooks:write

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do webhook

Exemplo de requisição

cURL
curl -X DELETE 'https://api.fisqal.com.br/v1/webhooks/c3d4e5f6-a7b8-9012-cdef-123456789012' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Webhook removido

Exemplo de resposta
{
  "id": "w1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "deleted": true
}

Possíveis erros

UNAUTHORIZEDPLAN_FORBIDDENRATE_LIMITED
POST/v1/webhooks/{id}/test200

Replay webhook test delivery

Dispara entrega de teste para validar integração.

Autenticação: API key (Bearer ou X-API-Key) · Scopes: webhooks:write

Parâmetros de path

NomeTipoObrigatórioMínMáxDescrição
iduuidSimID do webhook

Exemplo de requisição

cURL
curl -X POST 'https://api.fisqal.com.br/v1/webhooks/c3d4e5f6-a7b8-9012-cdef-123456789012/test' \
  -H 'Authorization: Bearer fisqal_live_xxx' \
  -H 'X-API-Key: fisqal_live_xxx'

Response

200 Entrega de teste enfileirada

Exemplo de resposta
{
  "deliveryId": "d5e6f7a8-b9c0-1234-def0-567890123456",
  "status": "queued"
}

Possíveis erros

UNAUTHORIZEDPLAN_FORBIDDENRATE_LIMITED

Eventos e assinatura HMAC

Eventos disparados após status terminal. Valide o header X-FISQAL-Signature: sha256=<hmac> usando o secret retornado no cadastro.

nfse.processingnfse.authorizednfse.rejectednfse.failednfse.cancellednfe.authorizednfe.rejectednfe.failednfe.cancellednfce.authorizednfce.rejectednfce.failednfce.cancelledmdfe.processingmdfe.authorizedmdfe.rejectedmdfe.failedmdfe.cancelledmdfe.closedmdfe.event_registeredcte.processingcte.authorizedcte.rejectedcte.failedcte.cancelledcte.event_registered
Payload de exemplo
{
  "event": "nfse.authorized",
  "id": "evt_a1b2c3d4",
  "created_at": "2026-05-22T10: 00: 00Z",
  "data": {
    "document_id": "dps_uuid",
    "provider": "sefin-nacional",
    "municipio": "3550308",
    "protocolo": "2026-05-22T10: 00: 00-03: 00",
    "codigo_verificacao": "ABC123",
    "status": "authorized",
    "chave_acesso": "00000000000000000000000000000000000000000000000000"
  }
}

Healthcheck

GET/v1/health200

API healthcheck

Verifica se a API está respondendo.

Autenticação: não requerida

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/health'

Response

200 Serviço operacional

Exemplo de resposta
{
  "service": "FISQAL",
  "status": "ok",
  "timestamp": "2026-05-16T10: 00: 00.000Z"
}
GET/v1/health/database200

PostgreSQL/Supabase healthcheck

Verifica conectividade com o banco de dados.

Autenticação: não requerida

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/health/database'

Response

200 Database operacional

Exemplo de resposta
{
  "dependency": "database",
  "status": "ok",
  "timestamp": "2026-05-16T10: 00: 00.000Z"
}
GET/v1/health/redis200

Redis/BullMQ healthcheck

Verifica conectividade com Redis e filas.

Autenticação: não requerida

Exemplo de requisição

cURL
curl -X GET 'https://api.fisqal.com.br/v1/health/redis'

Response

200 Redis operacional

Exemplo de resposta
{
  "dependency": "redis",
  "status": "ok",
  "timestamp": "2026-05-16T10: 00: 00.000Z"
}

Schemas

DTOs principais referenciados nos endpoints.

CreateNfseDpsDto

Payload para emissão assíncrona de NFS-e (DPS).

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSimUUID da empresa emitente cadastrada no workspace (POST /v1/companies)
idDpsstringSim164Identificador único do DPS no sistema do emissor (até 64 caracteres)
serieDpsstringSim15Série do DPS/RPS (até 5 caracteres)
numeroDpsstringSim115Número sequencial do DPS/RPS (somente dígitos)
codigoMunicipioEmissorstringSim77Código IBGE do município emissor (7 dígitos)
tipoInscricaoPrestadorstringSim11Tipo de inscrição do prestador: 1=CPF, 2=CNPJ
inscricaoFederalPrestadorstringSim114CPF ou CNPJ do prestador (sem formatação)
inscricaoMunicipalPrestadorstringNão620Inscrição municipal do prestador. Opcional se já cadastrada na empresa; pode ser exigida pelo município
dataCompetenciadateSimData de competência do serviço (YYYY-MM-DD)
opSimpNacstringNão11Opção Simples Nacional: 1=não optante, 2=MEI, 3=ME/EPP (XSD TSOpSimpNac)
regApTribSNstringNão11Regime apuração SN: 1|2|3. Obrigatório quando opSimpNac=3 (XSD TSRegimeApuracaoSimpNac)
regEspTribstringNão11Regime especial tributação: 0|1|2|3|4|5|6|9 (XSD TSRegEspTrib)
tomadorNfseTomadorDtoSimDados do tomador do serviço
servicoNfseServicoDtoSimDados do serviço prestado (codigoNbs obrigatório desde 01/01/2026)
valoresNfseValoresDtoSimValores e tributação ISSQN
salaoParceiroNfseSalaoParceiroDtoNãoDedução/redução Salão Parceiro (XSD TSIdeDedRed código 9 — Profissional parceiro). Opcional
finalidadeEmissaostringNão11Finalidade da emissão: 0=regular. Opcional
indicadorDestinatariostringNão11Indica destinatário distinto do tomador: 0=não, 1=sim. Opcional (RTC/Fortaleza)
consumidorFinalstringNão11Uso/consumo pessoal: 0=não, 1=sim. Opcional (RTC)
tipoEnteGovernamentalstringNão11Tipo de ente governamental: 1|2|3|4. Opcional, quando aplicável (RTC)
destinatarioRtcFortalezaDestinatarioRtcDtoNãoDestinatário do serviço em cenários RTC (ex.: Fortaleza com indicadorDestinatario=1). Opcional
imovelRtcFortalezaImovelRtcDtoNãoImóvel vinculado à operação (operações imobiliárias RTC). Opcional
nfseReferenciadaRtcFortalezaNfseReferenciadaRtcDtoNãoChaves de NFS-e referenciadas (50 dígitos). Opcional (RTC)
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "idDps": "DPS355030812345678900019900000000001",
  "serieDps": "900",
  "numeroDps": "1",
  "codigoMunicipioEmissor": "3550308",
  "tipoInscricaoPrestador": "2",
  "inscricaoFederalPrestador": "12345678000199",
  "inscricaoMunicipalPrestador": "123456",
  "dataCompetencia": "2026-05-01",
  "opSimpNac": "1",
  "regApTribSN": "1",
  "regEspTrib": "0",
  "tomador": {
    "tipoInscricao": "2",
    "inscricaoFederal": "12345678000199",
    "inscricaoMunicipal": "12345678",
    "razaoSocial": "Tomador Exemplo LTDA",
    "email": "contato@tomador.com.br",
    "endereco": {
      "logradouro": "Av Paulista",
      "numero": "1000",
      "complemento": "Sala 101",
      "bairro": "Bela Vista",
      "codigoMunicipio": "3550308",
      "uf": "SP",
      "cep": "01310100"
    }
  },
  "servico": {
    "codigoServico": "010101",
    "codigoNbs": "115021000",
    "municipioIncidencia": "3550308",
    "discriminacao": "Consultoria em tecnologia da informacao",
    "codigoTributacaoMunicipio": "010"
  },
  "valores": {
    "valorServico": 1500,
    "tribIssqn": "1",
    "tpRetIssqn": "1",
    "aliquotaIssqn": 5
  },
  "salaoParceiro": {
    "documentos": [
      {
        "numeroDocumento": "contrato-parceria-001",
        "dataEmissaoDocumento": "2026-05-01",
        "valorDedutivel": 500,
        "valorDeducao": 500,
        "profissionalParceiro": {
          "tipoInscricao": "1",
          "inscricaoFederal": "12345678901",
          "razaoSocial": "Profissional Parceiro"
        }
      }
    ]
  }
}

NfseSalaoParceiroProfissionalDto

Profissional parceiro (XSD fornec em docDedRed).

CampoTipoObrigatórioMínMáxDescrição
tipoInscricaostringSim111 = CPF, 2 = CNPJ
inscricaoFederalstringSim114CPF ou CNPJ do profissional parceiro
razaoSocialstringSim1255Nome ou razão social do profissional parceiro
inscricaoMunicipalstringNão115Inscrição municipal do profissional. Opcional
Exemplo
{
  "tipoInscricao": "1",
  "inscricaoFederal": "12345678901",
  "razaoSocial": "Profissional Parceiro"
}

NfseSalaoParceiroDocumentoDto

Documento de dedução Salão Parceiro (XSD docDedRed, tpDedRed=9).

CampoTipoObrigatórioMínMáxDescrição
chaveNfsestringNão150Chave NFS-e nacional
chaveNfestringNão4444Chave NF-e
numeroDocumentoFiscalstringNão1255nDocFisc
numeroDocumentostringNão1255nDoc (não fiscal)
dataEmissaoDocumentodateSimData de emissão do documento de dedução
valorDedutivelnumberSimValor dedutível/referência do documento
valorDeducaonumberSimValor efetivo da dedução aplicada
profissionalParceiroNfseSalaoParceiroProfissionalDtoNãoDados do profissional parceiro (obrigatório para tpDedRed=9)
Exemplo
{
  "numeroDocumento": "contrato-parceria-001",
  "dataEmissaoDocumento": "2026-05-01",
  "valorDedutivel": 500,
  "valorDeducao": 500,
  "profissionalParceiro": {
    "tipoInscricao": "1",
    "inscricaoFederal": "12345678901",
    "razaoSocial": "Profissional Parceiro"
  }
}

NfseSalaoParceiroDto

Dedução/redução Salão Parceiro. Informe valorDeducao (vDR) ou documentos[], não ambos.

CampoTipoObrigatórioMínMáxDescrição
valorDeducaonumberNãoValor agregado (vDR)
documentosNfseSalaoParceiroDocumentoDto[]NãoLista docDedRed
Exemplo
{
  "valorDeducao": 500
}

NfseCodigoTributacaoNacionalItemDto

Item do catálogo cTribNac (código + descrição + item LC 116).

CampoTipoObrigatórioMínMáxDescrição
codigostringSim666 dígitos (ex.: 010101)
descricaostringSim1
itemLc116stringSim1Item LC 116 (ex.: 1.01)
Exemplo
{
  "codigo": "010101",
  "descricao": "Análise e desenvolvimento de sistemas.",
  "itemLc116": "1.01"
}

NfseCodigosTributacaoNacionalResponseDto

Catálogo oficial de códigos cTribNac (LC 116 + desdobro nacional).

CampoTipoObrigatórioMínMáxDescrição
itemsNfseCodigoTributacaoNacionalItemDto[]Sim
totalnumberSim
Exemplo
{
  "items": [
    {
      "codigo": "010101",
      "descricao": "Análise e desenvolvimento de sistemas.",
      "itemLc116": "1.01"
    }
  ],
  "total": 337
}

NfseCodigoNbsItemDto

Item do catálogo NBS (Nomenclatura Brasileira de Serviços).

CampoTipoObrigatórioMínMáxDescrição
codigostringSim99
descricaostringSim1
Exemplo
{
  "codigo": "115021000",
  "descricao": "Serviços de projeto, desenvolvimento e instalação de aplicativos e programas não personalizados (não customizados)"
}

NfseCodigosNbsResponseDto

Catálogo oficial NBS com filtro opcional por código de serviço (Anexo VIII).

CampoTipoObrigatórioMínMáxDescrição
itemsNfseCodigoNbsItemDto[]Sim
totalnumberSim
Exemplo
{
  "items": [
    {
      "codigo": "115021000",
      "descricao": "Serviços de projeto, desenvolvimento e instalação de aplicativos e programas não personalizados (não customizados)"
    }
  ],
  "total": 5
}

NfseServicoParametrosResponseDto

Elegibilidade de dedução/Salão Parceiro por município e código de serviço (Anexo I + ADN).

CampoTipoObrigatórioMínMáxDescrição
codigoServicostringSim66
municipioIncidenciastringSim77
permiteSalaoParceirobooleanSim
permiteValorAgregadobooleanSim
permiteDocumentosbooleanSim
tpDedRedSalaoParceirostringSim129 — Profissional parceiro (XSD TSIdeDedRed)
motivosInelegibilidadestring[]Sim
tiposDeducaoAdmitidosstring[]Não
aliquotaIssqnnumberNão
fonteParametrosstringNão32
Exemplo
{
  "codigoServico": "060101",
  "municipioIncidencia": "3550308",
  "permiteSalaoParceiro": true,
  "permiteValorAgregado": true,
  "permiteDocumentos": true,
  "tpDedRedSalaoParceiro": "9",
  "motivosInelegibilidade": [],
  "tiposDeducaoAdmitidos": [
    "9"
  ],
  "aliquotaIssqn": 5,
  "fonteParametros": "adn"
}

CancelNfseDto

Motivo do cancelamento de NFS-e.

CampoTipoObrigatórioMínMáxDescrição
motivoCancelamentostringSim15255
Exemplo
{
  "motivoCancelamento": "Cancelamento solicitado pelo tomador"
}

CreateNfeDto

Payload para emissão assíncrona de NF-e (modelo 55).

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSimUUID da empresa emitente cadastrada no workspace (POST /v1/companies)
ideNfeIdeDtoSimIdentificação da NF-e (grupo ide do XML)
emitNfeEmitDtoSimDados do emitente (grupo emit)
destNfeDestDtoSimDados do destinatário (grupo dest)
detNfeItemDto[]SimItens da nota. Mínimo 1, máximo 990 (XSD leiauteNFe_v4.00)
totalNfeTotalDtoSimTotais da NF-e (ICMS e, quando aplicável, IBS/CBS)
transpNfeTransportDtoNãoTransporte/frete (grupo transp). Opcional
pagNfePagamentoDto[]NãoFormas de pagamento (detPag). Opcional, máximo 100 itens
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "ide": {
    "cuf": "35",
    "natOp": "Venda de mercadoria",
    "serie": "1",
    "nnf": "8296",
    "dhEmi": "2026-05-16T10: 00: 00-03: 00",
    "tpNf": "1",
    "idDest": "1",
    "cMunFg": "3550308",
    "tpImp": "1",
    "finNfe": "1",
    "indFinal": "1",
    "indPres": "9"
  },
  "emit": {
    "cnpj": "12345678000199",
    "xNome": "Empresa Emitente LTDA",
    "enderEmit": {},
    "ie": "123456789",
    "crt": "2"
  },
  "dest": {
    "cnpj": "98765432000111",
    "xNome": "Destinatario Exemplo",
    "enderDest": {},
    "indIeDest": "9"
  },
  "det": [],
  "total": {
    "icmsTot": {}
  }
}

NfeTransportDto

Modalidade de frete (grupo transp do XML).

CampoTipoObrigatórioMínMáxDescrição
modFretestringSim11Modalidade do frete: 0=emitente, 1=destinatário, 2=terceiros, 3=próprio remetente, 4=próprio destinatário, 9=sem frete
Exemplo
{
  "modFrete": "9"
}

NfePagamentoDto

Detalhe de pagamento (detPag do XML).

CampoTipoObrigatórioMínMáxDescrição
tPagstringSim22Meio de pagamento (tabela SEFAZ: 01=dinheiro, 03=cartão crédito, 17=PIX, 99=outros)
vPagnumberSimValor do pagamento
xPagstringNão160Descrição do meio de pagamento. Obrigatório quando tPag=99
Exemplo
{
  "tPag": "01",
  "vPag": 100
}

FiscalEnderecoDto

Endereço fiscal (TEndereco / TEnderEmi no XML NF-e/NFC-e).

CampoTipoObrigatórioMínMáxDescrição
xLgrstringSimLogradouro
nrostringSimNúmero
xCplstringNãoComplemento. Opcional
xBairrostringSimBairro
cMunstringSimCódigo IBGE do município (7 dígitos)
xMunstringSimNome do município
UFstringNãoSigla UF (2 letras). Aceita também uf
ufstringNãoSigla UF (2 letras). Aceita também UF
CEPstringNãoCEP (8 dígitos). Aceita também cep
cepstringNãoCEP (8 dígitos). Aceita também CEP
cPaisstringNãoCódigo país (1058=Brasil). Opcional
xPaisstringNãoNome do país. Opcional
Exemplo
{
  "xLgr": "Rua Exemplo",
  "nro": "100",
  "xBairro": "Centro",
  "cMun": "3550308",
  "xMun": "Sao Paulo",
  "uf": "SP",
  "cep": "01310100"
}

FiscalIcmsTotDto

Totalizadores ICMS (grupo ICMSTot). Valores monetários com 2 decimais no XML.

CampoTipoObrigatórioMínMáxDescrição
vBCnumberNãoBase de cálculo ICMS
vICMSnumberNãoValor total ICMS
vICMSDesonnumberNãoValor ICMS desonerado
vFCPnumberNãoValor FCP
vBCSTnumberNãoBase de cálculo ST
vSTnumberNãoValor ICMS ST
vProdnumberSimValor total dos produtos
vFretenumberNãoValor total frete
vSegnumberNãoValor total seguro
vDescnumberNãoValor total desconto
vIInumberNãoValor total II
vIPInumberNãoValor total IPI
vPISnumberNãoValor total PIS
vCOFINSnumberNãoValor total COFINS
vOutronumberNãoOutras despesas acessórias
vNFnumberSimValor total da NF-e/NFC-e
vTotTribnumberNãoValor aproximado total de tributos
Exemplo
{
  "vBC": 0,
  "vICMS": 0,
  "vProd": 100,
  "vNF": 100
}

FiscalItemImpostoDto

Tributos do item (grupo imposto). Estrutura espelha o XML SEFAZ; grupos variam conforme CST/CSOSN.

CampoTipoObrigatórioMínMáxDescrição
ICMSobjectSimGrupo ICMS (ex.: ICMS00, ICMSSN102). Informe orig, CST/CSOSN, bases e alíquotas
PISobjectNãoGrupo PIS (ex.: PISAliq, PISNT). Opcional conforme operação
COFINSobjectNãoGrupo COFINS (ex.: COFINSAliq, COFINSNT). Opcional conforme operação
IPIobjectNãoGrupo IPI. Opcional
IBSCBSobjectNãoGrupo IBS/CBS (Reforma Tributária): CST, cClassTrib, gIBSCBS. Ver seção Reforma tributária
Exemplo
{
  "ICMS": {
    "ICMSSN102": {
      "orig": 0,
      "CSOSN": "102"
    }
  },
  "PIS": {
    "PISNT": {
      "CST": "07"
    }
  },
  "COFINS": {
    "COFINSNT": {
      "CST": "07"
    }
  }
}

NfeTotalDto

Totais da NF-e, incluindo ICMS e grupos da Reforma Tributária (IBS/CBS).

CampoTipoObrigatórioMínMáxDescrição
icmsTotFiscalIcmsTotDtoSimTotalizadores ICMS (grupo ICMSTot)
ibsCbsTotobjectNãoGrupo IBSCBSTot no XML (opcional, Reforma Tributária): vBCIBSCBS, gIBS, gCBS
vNfTotnumberNãoCampo vNFTot quando exigido pelo leiaute vigente (Reforma Tributária)
Exemplo
{
  "icmsTot": {
    "vBC": 100,
    "vICMS": 18,
    "vProd": 100,
    "vNF": 100
  },
  "ibsCbsTot": {
    "vBCIBSCBS": 100,
    "gIBS": {
      "vIBS": 0.1
    },
    "gCBS": {
      "vCBS": 0.9
    }
  }
}

NfceTotalDto

Totais da NFC-e. icmsTot: valores monetários normalizados para 2 casas decimais no XML.

CampoTipoObrigatórioMínMáxDescrição
icmsTotFiscalIcmsTotDtoSimTotalizadores ICMS (grupo ICMSTot, 2 decimais no XML)
ibsCbsTotobjectNãoGrupo IBSCBSTot no XML (opcional, Reforma Tributária): vBCIBSCBS, gIBS, gCBS
vNfTotnumberNãoCampo vNFTot quando exigido pelo leiaute vigente (Reforma Tributária)
Exemplo
{
  "icmsTot": {
    "vBC": 50,
    "vICMS": 9,
    "vProd": 50,
    "vNF": 50
  },
  "ibsCbsTot": {
    "vBCIBSCBS": 50,
    "gIBS": {
      "vIBS": 0.05
    },
    "gCBS": {
      "vCBS": 0.45
    }
  }
}

CancelNfeDto

Justificativa de cancelamento de NF-e.

CampoTipoObrigatórioMínMáxDescrição
justificativastringSim15255
Exemplo
{
  "justificativa": "Cancelamento por solicitacao do cliente"
}

InutilizeNfeDto

Inutilização de faixa de numeração NF-e.

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
seriestringSim13
nnfInistringSim19
nnfFinstringSim19
xJuststringSim15255
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "serie": "1",
  "nnfIni": "1",
  "nnfFin": "10",
  "xJust": "Numeracao nao utilizada"
}

NfceIdeDto

Identificação da NFC-e. Não envie tpAmb nem cNF (XML): ambiente vem da empresa/CSC; cNF é gerado na API (opcional: cnf).

CampoTipoObrigatórioMínMáxDescrição
cufstringSim22Código IBGE da UF do emitente (2 dígitos, ex.: 35=SP)
cnfstringNão88Código numérico (8 dígitos). Opcional; a API gera se omitido. Não envie cNF
natOpstringSim160Descrição da natureza da operação (ex.: Venda ao consumidor)
seriestringSim13Série da NFC-e
nnfstringSim19Número da NFC-e. Conflito 409 se série+nnf já consumidos no ambiente
dhEmistringSim35Data e hora de emissão em ISO 8601 com fuso
tpNfstringSim11Tipo da NFC-e: 0=entrada, 1=saída (venda ao consumidor usa 1)
idDeststringSim11Destino da operação: 1=interna, 2=interestadual, 3=exterior
cMunFgstringSim77Código IBGE do município do fato gerador (7 dígitos)
tpImpstringSim11Formato DANFE NFC-e: use 4 (obrigatório para modelo 65)
tpEmisstringNão11Tipo de emissão: 1=normal (default). Outros valores para contingência
finNfestringSim11Finalidade: 1=normal, 2=complementar, 3=ajuste, 4=devolução
indFinalstringSim11Consumidor final: 0=não, 1=sim (NFC-e geralmente usa 1)
indPresstringSim11Indicador de presença do comprador (tabela SEFAZ: 0–9)
indIntermedstringNão11Indicador de intermediador/marketplace: 0=sem, 1=com. Opcional
procEmistringNão11Processo de emissão: 0=app contribuinte. Opcional
verProcstringNão120Versão do processo emissor (ex.: FISQAL-1.0). Opcional
Exemplo
{
  "cuf": "53",
  "natOp": "Venda ao consumidor",
  "serie": "1",
  "nnf": "100",
  "dhEmi": "2026-06-03T10: 00: 00-03: 00",
  "tpNf": "1",
  "idDest": "1",
  "cMunFg": "5300108",
  "tpImp": "4",
  "tpEmis": "1",
  "finNfe": "1",
  "indFinal": "1",
  "indPres": "1",
  "procEmi": "0",
  "verProc": "FISQAL-1.0"
}

NfceEmitDto

Emitente da NFC-e. enderEmit: use UF/CEP (ou uf/cep); se omitidos, a API usa uf/cep da empresa no XML (TEnderEmi).

CampoTipoObrigatórioMínMáxDescrição
cnpjstringSim1414CNPJ do emitente (14 dígitos, sem formatação)
xNomestringSim1255Razão social do emitente
xFantstringNão160Nome fantasia. Opcional
enderEmitFiscalEnderecoDtoSimEndereço do emitente. UF/CEP recomendados; fallback para dados da empresa na NFC-e
iestringSim114Inscrição estadual do emitente
crtstringSim11Código de regime tributário: 1=Simples Nacional, 2=Simples excesso, 3=Normal
Exemplo
{
  "cnpj": "12345678000199",
  "xNome": "Empresa Emitente LTDA",
  "xFant": "Emitente",
  "enderEmit": {
    "xLgr": "Rua Exemplo",
    "nro": "100",
    "xBairro": "Centro",
    "cMun": "5300108",
    "xMun": "Brasilia",
    "uf": "DF",
    "cep": "70000000"
  },
  "ie": "123456789",
  "crt": "1"
}

NfceDestDto

Destinatário opcional (consumidor identificado). Omita para venda sem identificação.

CampoTipoObrigatórioMínMáxDescrição
cnpjstringNão1414CNPJ do consumidor identificado. Mutuamente exclusivo com cpf
cpfstringNão1111CPF do consumidor identificado. Mutuamente exclusivo com cnpj
xNomestringNão260Nome do consumidor. Opcional
enderDestFiscalEnderecoDtoNãoEndereço do consumidor. Opcional
indIeDeststringNão11Indicador IE: 1=contribuinte, 2=isento, 9=não contribuinte. Opcional
iestringNão120Inscrição estadual do consumidor. Opcional
emailstringNão160E-mail do consumidor. Opcional
Exemplo
{
  "cpf": "12345678901",
  "xNome": "Consumidor",
  "indIeDest": "9"
}

NfceItemDto

Item da NFC-e em JSON achatado. Não use o grupo prod do XML; envie cProd, ncm, cfop etc. neste nível.

CampoTipoObrigatórioMínMáxDescrição
nItemnumberSimNúmero sequencial do item (1, 2, 3...)
cProdstringSim160Código interno do produto
cEanstringNão14GTIN/EAN ou "SEM GTIN". Opcional
xProdstringSim1120Descrição do produto
ncmstringSim28Código NCM
cfopstringSim44CFOP da operação (4 dígitos)
uComstringSim16Unidade comercial (ex.: UN)
qComnumberSimQuantidade comercial
vUnComnumberSimValor unitário comercial
vProdnumberSimValor total do produto
cEanTribstringNão14GTIN/EAN da unidade tributável. Opcional
uTribstringSim16Unidade tributável
qTribnumberSimQuantidade tributável
vUnTribnumberSimValor unitário tributável
indTotstringSim11Compõe total da NFC-e: 1=sim, 0=não
impostoFiscalItemImpostoDtoSimTributos do item (ICMS, PIS, COFINS, IBSCBS)
vItemnumberNãoValor total do item com tributos (vItem, RTC). Opcional
Exemplo
{
  "nItem": 1,
  "cProd": "P-1",
  "cEan": "SEM GTIN",
  "xProd": "Produto exemplo",
  "ncm": "22021000",
  "cfop": "5102",
  "uCom": "UN",
  "qCom": 1,
  "vUnCom": 5.9,
  "vProd": 5.9,
  "uTrib": "UN",
  "qTrib": 1,
  "vUnTrib": 5.9,
  "indTot": "1",
  "imposto": {
    "ICMS": {
      "ICMSSN102": {
        "orig": 0,
        "CSOSN": "102"
      }
    },
    "PIS": {
      "PISNT": {
        "CST": "07"
      }
    },
    "COFINS": {
      "COFINSNT": {
        "CST": "07"
      }
    }
  }
}

NfcePagamentoDto

Pagamento (detPag). indPag opcional: 0=à vista, 1=a prazo.

CampoTipoObrigatórioMínMáxDescrição
indPagstringNão11Indicador de pagamento: 0=à vista, 1=a prazo. Opcional
tPagstringSim22Meio de pagamento (tabela SEFAZ: 01=dinheiro, 03=cartão crédito, 17=PIX, 99=outros)
vPagnumberSimValor do pagamento
xPagstringNão160Descrição do meio de pagamento. Obrigatório quando tPag=99
Exemplo
{
  "indPag": "0",
  "tPag": "01",
  "vPag": 5.9
}

CreateNfceDto

Payload para emissão assíncrona de NFC-e (modelo 65). JSON achatado: a API monta prod/tpAmb/cNF no XML. Proibido: ide.tpAmb, ide.cNF, det[].prod. 409 se série+nnf já consumidos no ambiente.

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSimUUID da empresa emitente cadastrada no workspace
ideNfceIdeDtoSimIdentificação da NFC-e. Requer CSC cadastrado (PUT .../csc)
emitNfceEmitDtoSimDados do emitente
destNfceDestDtoNãoConsumidor identificado. Opcional — omita para venda sem identificação
detNfceItemDto[]SimItens da nota. Mínimo 1, máximo 990 (XSD leiauteNFe_v4.00)
totalNfceTotalDtoSimTotais da NFC-e (ICMS e, quando aplicável, IBS/CBS)
pagNfcePagamentoDto[]SimFormas de pagamento. Obrigatório, mínimo 1, máximo 100 itens
contingenciaOfflinebooleanNãoIndica emissão em contingência offline. Opcional
contingenciaJustificativastringNão15255Justificativa da contingência (15–255 caracteres). Obrigatória em contingência offline
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "ide": {
    "cuf": "53",
    "natOp": "Venda ao consumidor",
    "serie": "1",
    "nnf": "100",
    "dhEmi": "2026-06-03T10: 00: 00-03: 00",
    "tpNf": "1",
    "idDest": "1",
    "cMunFg": "5300108",
    "tpImp": "4",
    "tpEmis": "1",
    "finNfe": "1",
    "indFinal": "1",
    "indPres": "1",
    "procEmi": "0",
    "verProc": "FISQAL-1.0"
  },
  "emit": {
    "cnpj": "12345678000199",
    "xNome": "Empresa Emitente LTDA",
    "xFant": "Emitente",
    "enderEmit": {
      "xLgr": "Rua Exemplo",
      "nro": "100",
      "xBairro": "Centro",
      "cMun": "5300108",
      "xMun": "Brasilia",
      "uf": "DF",
      "cep": "70000000",
      "cPais": "1058",
      "xPais": "BRASIL"
    },
    "ie": "123456789",
    "crt": "1"
  },
  "det": [
    {
      "nItem": 1,
      "cProd": "P-1",
      "cEan": "SEM GTIN",
      "xProd": "Produto exemplo",
      "ncm": "22021000",
      "cfop": "5102",
      "uCom": "UN",
      "qCom": 1,
      "vUnCom": 5.9,
      "vProd": 5.9,
      "uTrib": "UN",
      "qTrib": 1,
      "vUnTrib": 5.9,
      "indTot": "1",
      "imposto": {
        "ICMS": {
          "ICMSSN102": {
            "orig": 0,
            "CSOSN": "102"
          }
        },
        "PIS": {
          "PISNT": {
            "CST": "07"
          }
        },
        "COFINS": {
          "COFINSNT": {
            "CST": "07"
          }
        }
      }
    }
  ],
  "total": {
    "icmsTot": {
      "vBC": 0,
      "vICMS": 0,
      "vICMSDeson": 0,
      "vFCP": 0,
      "vBCST": 0,
      "vST": 0,
      "vProd": 5.9,
      "vFrete": 0,
      "vSeg": 0,
      "vDesc": 0,
      "vII": 0,
      "vIPI": 0,
      "vPIS": 0,
      "vCOFINS": 0,
      "vOutro": 0,
      "vNF": 5.9,
      "vTotTrib": 0
    }
  },
  "pag": [
    {
      "indPag": "0",
      "tPag": "01",
      "vPag": 5.9
    }
  ]
}

CancelNfceDto

Justificativa de cancelamento de NFC-e.

CampoTipoObrigatórioMínMáxDescrição
justificativastringSim15255
Exemplo
{
  "justificativa": "Cancelamento por solicitacao do cliente"
}

MdfeInfMunCarregaDto

Município de carregamento (ide.infMunCarrega).

CampoTipoObrigatórioMínMáxDescrição
cMunCarregastringSim7
xMunCarregastringSim260
Exemplo
{
  "cMunCarrega": "3550308",
  "xMunCarrega": "SAO PAULO"
}

MdfeInfPercursoDto

UF de percurso (ide.infPercurso).

CampoTipoObrigatórioMínMáxDescrição
ufPerstringSim2
Exemplo
{
  "ufPer": "MG"
}

MdfeIdeDto

Identificação do MDF-e (ide). ide.modal: 1=rodoviário, 2=aéreo, 3=aquaviário, 4=ferroviário.

CampoTipoObrigatórioMínMáxDescrição
cufstringSim2
cmdfstringNão8
seriestringSim3
nmdfstringSim9
modalstringSim11–4 conforme XSD
tpEmitstringSim1
tpTranspstringNão1
dhEmistringSim35
tpEmisstringNão1
ufInistringSim2
ufFimstringSim2
infMunCarregaMdfeInfMunCarregaDto[]Nãomax 50
infPercursoMdfeInfPercursoDto[]Nãomax 25
dhIniViagemstringNão35
indCanalVerdestringNão1
indCarregaPosteriorstringNão1
procEmistringNão1
verProcstringNão20
Exemplo
{
  "cuf": "35",
  "serie": "1",
  "nmdf": "1",
  "modal": "1",
  "tpEmit": "1",
  "dhEmi": "2026-06-12T10: 00: 00-03: 00",
  "ufIni": "SP",
  "ufFim": "RJ",
  "infMunCarrega": [
    {
      "cMunCarrega": "3550308",
      "xMunCarrega": "SAO PAULO"
    }
  ]
}

MdfeEmitDto

Emitente do MDF-e (emit). Informe cnpj ou cpf.

CampoTipoObrigatórioMínMáxDescrição
cnpjstringNão1414
cpfstringNão1111
xNomestringSim260
xFantstringNão160
enderEmitobjectSim
iestringSim14
Exemplo
{
  "cnpj": "12345678000199",
  "xNome": "Transportadora Exemplo LTDA",
  "enderEmit": {},
  "ie": "123456789"
}

MdfeModalRodoviarioDto

Referência de infModal.payload quando ide.modal=1 (XSD mdfeModalRodoviario).

CampoTipoObrigatórioMínMáxDescrição
infANTTobjectNão
veicTracaoobjectSim
veicReboqueobject[]Não
lacRodoobject[]Não
Exemplo
{
  "infANTT": {
    "RNTRC": "12345678"
  },
  "veicTracao": {
    "placa": "ABC1D23",
    "tara": "8000",
    "capKG": "25000",
    "tpRod": "01",
    "tpCar": "02",
    "UF": "SP",
    "condutor": [
      {
        "xNome": "Joao Silva",
        "CPF": "12345678901"
      }
    ]
  }
}

MdfeModalAereoDto

Referência de infModal.payload quando ide.modal=2 (XSD mdfeModalAereo).

CampoTipoObrigatórioMínMáxDescrição
nacstringSim4
matrstringSim6
nVoostringSim9
cAerEmbstringSim4
cAerDesstringSim4
dVoostringSim10
Exemplo
{
  "nac": "BRA",
  "matr": "PTABC",
  "nVoo": "1234",
  "cAerEmb": "SBGR",
  "cAerDes": "SBGL",
  "dVoo": "2026-06-12"
}

MdfeModalAquaviarioDto

Referência de infModal.payload quando ide.modal=3 (XSD mdfeModalAquaviario).

CampoTipoObrigatórioMínMáxDescrição
irinstringSim10
tpEmbstringSim2
cEmbarstringSim10
xEmbarstringSim60
nViagstringSim10
cPrtEmbstringSim5
cPrtDeststringSim5
prtTransstringNão60
tpNavstringNão1
Exemplo
{
  "irin": "1234567890",
  "tpEmb": "01",
  "cEmbar": "1234567890",
  "xEmbar": "Embarcacao Exemplo",
  "nViag": "001",
  "cPrtEmb": "BRSP1",
  "cPrtDest": "BRRJ1"
}

MdfeModalFerroviarioDto

Referência de infModal.payload quando ide.modal=4 (XSD mdfeModalFerroviario).

CampoTipoObrigatórioMínMáxDescrição
tremobjectSim
vagobject[]Não
Exemplo
{
  "trem": {
    "xPref": "12345678901234567890123456789012"
  },
  "vag": []
}

MdfeInfModalDto

Modal de transporte (infModal). payload segue o XSD do modal em ide.modal (1–4). Namespace XML: http://www.portalfiscal.inf.br/mdfe.

CampoTipoObrigatórioMínMáxDescrição
payloadobjectSimMdfeModalRodoviarioDto | MdfeModalAereoDto | MdfeModalAquaviarioDto | MdfeModalFerroviarioDto
Exemplo
{
  "payload": {
    "infANTT": {
      "RNTRC": "12345678"
    },
    "veicTracao": {
      "placa": "ABC1D23",
      "tara": "8000",
      "capKG": "25000",
      "tpRod": "01",
      "tpCar": "02",
      "UF": "SP",
      "condutor": [
        {
          "xNome": "Joao Silva",
          "CPF": "12345678901"
        }
      ]
    }
  }
}

MdfeInfDocItemDto

Chave de documento vinculado (CT-e, NF-e ou MDF-e).

CampoTipoObrigatórioMínMáxDescrição
chavestringSim4444
segundoCodstringNão44
Exemplo
{
  "chave": "3526051234567800019955001000082971234567890"
}

MdfeInfDocDto

Documentos fiscais por município de descarga (infDoc).

CampoTipoObrigatórioMínMáxDescrição
cMunDescargastringSim7
xMunDescargastringSim260
infCTeMdfeInfDocItemDto[]Nãomax 20000
infNFeMdfeInfDocItemDto[]Nãomax 20000
infMDFeTranspMdfeInfDocItemDto[]Nãomax 20000
Exemplo
{
  "cMunDescarga": "3304557",
  "xMunDescarga": "RIO DE JANEIRO",
  "infNFe": [
    {
      "chave": "3526051234567800019955001000082971234567890"
    }
  ]
}

MdfeTotDto

Totais do MDF-e (tot).

CampoTipoObrigatórioMínMáxDescrição
qCtenumberNão
qNfenumberNão
qMdfenumberNão
vCarganumberSim
cUnidstringSim2
qCarganumberSim
Exemplo
{
  "qNfe": 1,
  "vCarga": 10000,
  "cUnid": "01",
  "qCarga": 5000
}

MdfeAutXmlDto

Autorizado a baixar XML (autXML). Informe cnpj ou cpf.

CampoTipoObrigatórioMínMáxDescrição
cnpjstringNão1414
cpfstringNão1111
Exemplo
{
  "cnpj": "12345678000199"
}

MdfeInfAdicDto

Informações adicionais (infAdic).

CampoTipoObrigatórioMínMáxDescrição
infAdFiscostringNão2000
infCplstringNão5000
Exemplo
{
  "infCpl": "Observacao complementar"
}

CreateMdfeDto

Payload para emissão assíncrona de MDF-e (modelo 58).

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
ideMdfeIdeDtoSim
emitMdfeEmitDtoSim
infModalMdfeInfModalDtoSim
infDocMdfeInfDocDto[]Sim
totMdfeTotDtoSim
segobject[]Não
lacresstring[]Não20
autXmlMdfeAutXmlDto[]Não
infAdicMdfeInfAdicDtoNão
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "ide": {
    "cuf": "35",
    "serie": "1",
    "nmdf": "1",
    "modal": "1",
    "tpEmit": "1",
    "dhEmi": "2026-06-12T10: 00: 00-03: 00",
    "ufIni": "SP",
    "ufFim": "RJ",
    "infMunCarrega": [
      {
        "cMunCarrega": "3550308",
        "xMunCarrega": "SAO PAULO"
      }
    ]
  },
  "emit": {
    "cnpj": "12345678000199",
    "xNome": "Transportadora Exemplo LTDA",
    "enderEmit": {},
    "ie": "123456789"
  },
  "infModal": {
    "payload": {
      "infANTT": {
        "RNTRC": "12345678"
      },
      "veicTracao": {
        "placa": "ABC1D23",
        "tara": "8000",
        "capKG": "25000",
        "tpRod": "01",
        "tpCar": "02",
        "UF": "SP",
        "condutor": [
          {
            "xNome": "Joao Silva",
            "CPF": "12345678901"
          }
        ]
      }
    }
  },
  "infDoc": [
    {
      "cMunDescarga": "3304557",
      "xMunDescarga": "RIO DE JANEIRO",
      "infNFe": [
        {
          "chave": "3526051234567800019955001000082971234567890"
        }
      ]
    }
  ],
  "tot": {
    "qNfe": 1,
    "vCarga": 10000,
    "cUnid": "01",
    "qCarga": 5000
  }
}

CancelMdfeDto

Justificativa de cancelamento de MDF-e.

CampoTipoObrigatórioMínMáxDescrição
justificativastringSim15255
Exemplo
{
  "justificativa": "Cancelamento por solicitacao do transportador"
}

CloseMdfeDto

Dados de encerramento de MDF-e.

CampoTipoObrigatórioMínMáxDescrição
cUfstringSim2
cMunstringSim7
dtEncstringSim10
indEncPorTerceirostringNão1
Exemplo
{
  "cUf": "33",
  "cMun": "3304557",
  "dtEnc": "2026-06-12"
}

IncludeDriverMdfeDto

Payload do evento de inclusão de condutor.

CampoTipoObrigatórioMínMáxDescrição
payloadobjectSim
Exemplo
{
  "payload": {
    "condutor": {
      "xNome": "Joao",
      "CPF": "12345678901"
    }
  }
}

IncludeDfeMdfeDto

Payload do evento de inclusão de DF-e.

CampoTipoObrigatórioMínMáxDescrição
payloadobjectSim
Exemplo
{
  "payload": {
    "infDoc": []
  }
}

PaymentMdfeDto

Payload do evento 110116 — pagamento da operação de transporte.

CampoTipoObrigatórioMínMáxDescrição
payloadobjectSim
Exemplo
{
  "payload": {
    "infPag": []
  }
}

ConfirmServiceMdfeDto

Payload do evento 110117 — confirmação do serviço de transporte.

CampoTipoObrigatórioMínMáxDescrição
payloadobjectSim
Exemplo
{
  "payload": {
    "infServico": {}
  }
}

ChangePaymentMdfeDto

Payload do evento 110118 — alteração de pagamento do serviço.

CampoTipoObrigatórioMínMáxDescrição
payloadobjectSim
Exemplo
{
  "payload": {
    "infPag": []
  }
}

ConsultMdfeChaveDto

Consulta de MDF-e por chave de acesso na SEFAZ.

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
chaveAcessostringSim4444
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "chaveAcesso": "35260612345678000199580010000000011234567890"
}

ConsultMdfeNotClosedDto

Consulta MDF-e não encerrados na SEFAZ (query em GET /v1/mdfe/not-closed).

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

SyncMdfeDfeDto

Dispara sincronização de DF-e MDF-e (Ambiente Nacional).

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

ConsultMdfeDfeChaveDto

Consulta pontual de MDF-e por chave via DF-e.

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
chaveAcessostringSim4444
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "chaveAcesso": "35260612345678000199580010000000011234567890"
}

CreateCteDto

Emissão de CT-e (modelos 57, 67 ou 64). Namespace XML: http://www.portalfiscal.inf.br/cte.

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
modstringSim57 | 67 | 64
ideCteIdeDtoSim
emitCteEmitDtoSim
remCtePartyDtoNão
destCtePartyDtoNão
vPrestCteVPrestDtoSim
impCteImpDtoSim
infCargaCteInfCargaDtoNão
infDocCteInfDocDto[]Não
infModalCteInfModalDtoSim
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "mod": "57",
  "ide": {
    "cuf": "35",
    "cfop": "6352",
    "natOp": "PRESTACAO DE SERVICO DE TRANSPORTE",
    "serie": "1",
    "nct": "1",
    "modal": "01",
    "tpServ": "0",
    "tpCTe": "0",
    "dhEmi": "2026-06-12T10: 00: 00-03: 00",
    "cMunEnv": "3550308",
    "xMunEnv": "SAO PAULO",
    "UFEnv": "SP",
    "cMunIni": "3550308",
    "xMunIni": "SAO PAULO",
    "UFIni": "SP",
    "cMunFim": "3304557",
    "xMunFim": "RIO DE JANEIRO",
    "UFFim": "RJ",
    "retira": "0",
    "toma3": {
      "toma": "3"
    }
  },
  "emit": {
    "cnpj": "12345678000199",
    "xNome": "Transportadora Exemplo LTDA",
    "enderEmit": {},
    "ie": "123456789"
  },
  "vPrest": {
    "vTPrest": 1500,
    "vRec": 1500
  },
  "imp": {
    "payload": {
      "ICMS": {
        "ICMS45": {
          "CST": "40"
        }
      }
    }
  },
  "infModal": {
    "modal": "01",
    "payload": {
      "RNTRC": "12345678"
    }
  }
}

CancelCteDto

Cancelamento de CT-e autorizado.

CampoTipoObrigatórioMínMáxDescrição
justificativastringSim15255
Exemplo
{
  "justificativa": "Cancelamento solicitado pelo emitente"
}

CceCteDto

Carta de correção eletrônica do CT-e.

CampoTipoObrigatórioMínMáxDescrição
infCorrecaoCteInfCorrecaoDto[]Sim
xCondUsostringNão2000
Exemplo
{
  "infCorrecao": [
    {
      "grupoAlterado": "ide",
      "campoAlterado": "natOp",
      "valorAlterado": "PRESTACAO DE SERVICO DE TRANSPORTE A"
    }
  ]
}

ConsultCteChaveDto

Consulta de CT-e por chave de acesso na SEFAZ.

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
chaveAcessostringSim4444
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "chaveAcesso": "35260612345678000199570010000000011234567890"
}

InutilizeCteDto

Inutilização de faixa de numeração CT-e (modelos 57 ou 67).

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
modstringSim57 | 67
seriestringSim3
nCtInistringSim9
nCtFinstringSim9
xJuststringSim15255
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "mod": "57",
  "serie": "1",
  "nCtIni": "1",
  "nCtFin": "10",
  "xJust": "Numeracao nao utilizada"
}

SyncCteDfeDto

Dispara sincronização de DF-e CT-e (Ambiente Nacional).

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

ConsultCteDfeChaveDto

Consulta pontual de CT-e por chave via DF-e.

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
chaveAcessostringSim4444
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "chaveAcesso": "35260612345678000199570010000000011234567890"
}

InutilizeNfceDto

Inutilização de faixa de numeração NFC-e.

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
seriestringSim13
nnfInistringSim19
nnfFinstringSim19
xJuststringSim15255
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "serie": "1",
  "nnfIni": "1",
  "nnfFin": "10",
  "xJust": "Numeracao nao utilizada"
}

UpsertCompanyNfceCscDto

Configuração de CSC para QR Code NFC-e.

CampoTipoObrigatórioMínMáxDescrição
tpAmbstringSim111=produção, 2=homologação
cscIdstringSim110
cscTokenstringSim136
urlChavestringNão1500
Exemplo
{
  "tpAmb": "2",
  "cscId": "000001",
  "cscToken": "CSC-TOKEN-SECRET"
}

RegisterAccountDto

Cadastro de usuario do console antes do checkout.

CampoTipoObrigatórioMínMáxDescrição
nomestringSim1160
emailstring (email)Sim1255
passwordstringSim8128
Exemplo
{
  "nome": "Maria Silva",
  "email": "maria@empresa.com.br",
  "password": "senha-segura"
}

CompleteFirstAccessDto

Definição de senha no primeiro acesso ao console.

CampoTipoObrigatórioMínMáxDescrição
passwordstringSim8128
Exemplo
{
  "password": "senha-segura"
}

CheckEmailDto

Verificacao de disponibilidade de e-mail para cadastro.

CampoTipoObrigatórioMínMáxDescrição
emailstring (email)Sim1255
Exemplo
{
  "email": "maria@empresa.com.br"
}

CreateCompanyDto

Body de POST /v1/companies e PATCH /v1/companies/{id}. CNPJ único por workspace e ambiente fiscal.

CampoTipoObrigatórioMínMáxDescrição
razao_socialstringSim1255
nome_fantasiastringNão1255
cnpjstringSim141414 digitos
inscricao_municipalstringNão30
inscricao_estadualstringNão30
cnaestringNão10
regime_tributariostringNão40
logradourostringNão255
numerostringNão20
complementostringNão120
bairrostringNão120
cepstringNão88
municipiostringNão120
codigo_municipiostringNão77IBGE 7 digitos
ufstringNão22UF com 2 letras
emailstring (email)Não1255
telefonestringNão20
fiscal_ambientestringNãohomologacao | producao
Exemplo
{
  "razao_social": "Empresa Emitente LTDA",
  "nome_fantasia": "Empresa Emitente",
  "cnpj": "12345678000199",
  "inscricao_municipal": "12345678",
  "inscricao_estadual": "123456789",
  "codigo_municipio": "3550308",
  "municipio": "Sao Paulo",
  "uf": "SP",
  "logradouro": "Rua Exemplo",
  "numero": "100",
  "bairro": "Centro",
  "cep": "01310100",
  "email": "contato@empresa.com.br",
  "telefone": "1133334444",
  "fiscal_ambiente": "producao"
}

UpdateCompanyStatusDto

Ativacao ou desativacao de empresa.

CampoTipoObrigatórioMínMáxDescrição
statusstringSimactive | inactive
Exemplo
{
  "status": "inactive"
}

CreateWebhookDto

Cadastro de assinatura de webhook.

CampoTipoObrigatórioMínMáxDescrição
nomestringSim1160
urlstring (url)Sim1500
eventosstring[]SimMin 1, max 32 eventos; cada item max 120 caracteres
Exemplo
{
  "nome": "Webhook Producao",
  "url": "https://example.com/webhooks/fisqal",
  "eventos": [
    "nfse.processing",
    "nfse.authorized",
    "nfse.rejected",
    "nfse.failed",
    "nfse.cancelled"
  ]
}

FortalezaDestinatarioRtcDto

Destinatário do serviço em cenários RTC (ex.: Fortaleza com indicadorDestinatario=1).

CampoTipoObrigatórioMínMáxDescrição
tipoInscricaostringSim11Tipo de inscrição: 1=CPF, 2=CNPJ
inscricaoFederalstringSim114CPF ou CNPJ do destinatário
nifstringNão40NIF do destinatário estrangeiro. Quando informado, use naoNif=0. Opcional
naoNifstringSim11Motivo para não informar NIF: 0=não informado na origem (com NIF), 1=dispensado, 2=não exigência
nomestringSim1150Nome ou razão social do destinatário
enderecoNfseTomadorEnderecoDtoSimEndereço do destinatário
telefonestringNão20Telefone do destinatário. Opcional
emailstringNão80E-mail do destinatário. Obrigatório quando indicadorDestinatario=1 (Fortaleza)
Exemplo
{
  "tipoInscricao": "2",
  "inscricaoFederal": "12345678000199",
  "naoNif": "2",
  "nome": "Destinatario do Servico LTDA",
  "endereco": {
    "logradouro": "Av Paulista",
    "numero": "1000",
    "bairro": "Bela Vista",
    "codigoMunicipio": "3550308",
    "uf": "SP",
    "cep": "01310100"
  },
  "email": "destinatario@email.com"
}

FortalezaImovelRtcDto

Imóvel vinculado à operação (operações imobiliárias RTC).

CampoTipoObrigatórioMínMáxDescrição
inscricaoImobiliariaFiscalstringNão30Inscrição imobiliária fiscal do imóvel. Opcional conforme município
codigoCibstringNão8Código CIB (Cadastro Imobiliário Brasileiro). Opcional
enderecoNfseTomadorEnderecoDtoSimEndereço do imóvel
Exemplo
{
  "inscricaoImobiliariaFiscal": "1234",
  "endereco": {
    "logradouro": "Rua Exemplo",
    "numero": "100",
    "bairro": "Centro",
    "codigoMunicipio": "2304400",
    "uf": "CE",
    "cep": "60000000"
  }
}

FortalezaNfseReferenciadaRtcDto

NFS-e referenciadas em operações RTC (chaves de 50 dígitos).

CampoTipoObrigatórioMínMáxDescrição
chavesNfseReferenciadastring[]SimLista de chaves NFS-e referenciadas (50 dígitos numéricos cada, 1–100 itens)
Exemplo
{
  "chavesNfseReferenciada": [
    "00000000000000000000000000000000000000000000000000"
  ]
}

NfseTomadorEnderecoDto

Endereço do tomador NFS-e.

CampoTipoObrigatórioMínMáxDescrição
logradourostringSim1255Logradouro (rua, avenida etc.)
numerostringSim120Número do imóvel
complementostringNão1120Complemento do endereço. Opcional
bairrostringSim1120Bairro
codigoMunicipiostringSim77Código IBGE do município (7 dígitos)
ufstringSim22Sigla da UF (2 letras)
cepstringSim88CEP (8 dígitos, sem hífen)
Exemplo
{
  "logradouro": "QND 34",
  "numero": "7",
  "bairro": "TAGUATINGA NORTE",
  "codigoMunicipio": "5300108",
  "uf": "DF",
  "cep": "72120340"
}

NfseTomadorDto

Tomador da NFS-e.

CampoTipoObrigatórioMínMáxDescrição
tipoInscricaostringSim11Tipo de inscrição: 1=CPF, 2=CNPJ
inscricaoFederalstringSim114CPF ou CNPJ do tomador (sem formatação)
razaoSocialstringSim1255Nome ou razão social do tomador
emailstringNão180E-mail do tomador. Opcional
inscricaoMunicipalstringNão115Inscrição municipal do tomador. Opcional
enderecoNfseTomadorEnderecoDtoNãoEndereço do tomador. Opcional conforme município/regra
Exemplo
{
  "tipoInscricao": "2",
  "inscricaoFederal": "12345678000199",
  "razaoSocial": "Tomador Exemplo LTDA"
}

NfseServicoDto

Serviço da NFS-e.

CampoTipoObrigatórioMínMáxDescrição
codigoServicostringSim66Código cTribNac (6 dígitos — item + subitem LC 116 + desdobro nacional). Catálogo: GET /v1/nfse/codigos-tributacao
municipioIncidenciastringSim77Código IBGE do município de incidência do ISSQN (7 dígitos)
discriminacaostringSim12000Descrição detalhada do serviço prestado
codigoNbsstringSim99Código NBS (9 dígitos). Obrigatório desde 01/01/2026. Catálogo: GET /v1/nfse/codigos-nbs
codigoTributacaoMunicipiostringNão39Código de tributação municipal (3–9 dígitos). Opcional, conforme município
codigoIndicadorOperacaostringNão66Indicador de operação RTC (6 dígitos, ex.: 050102). Opcional; exigido em cenários RTC
ibsCbsSituacaoTributariastringNão33CST IBS/CBS (3 dígitos, ex.: 000). Opcional; exigido em cenários RTC
ibsCbsClassificacaoTributariastringNão66Classificação tributária IBS/CBS (6 dígitos, ex.: 000001). Opcional; exigido em cenários RTC
tipoOperacaostringNão11Tipo de operação RTC (TipoOp): 1|2|3|4|5. Opcional; exigido em Fortaleza/RTC
Exemplo
{
  "codigoServico": "010101",
  "codigoNbs": "115021000",
  "municipioIncidencia": "3550308",
  "discriminacao": "Consultoria em tecnologia da informacao"
}

NfseValoresDto

Valores da NFS-e.

CampoTipoObrigatórioMínMáxDescrição
valorServiconumberSimValor bruto do serviço prestado
tribIssqnstringNão11Tributação ISSQN: 1|2|3|4 (XSD TSTribISSQN)
tpRetIssqnstringNão11Tipo retenção ISSQN: 1|2|3 (XSD TSTipoRetISSQN)
aliquotaIssqnnumberNãoAlíquota ISSQN (%). XML pAliq. Omitir quando município parametrizado no SN NFS-e; obrigatório quando tribIssqn=1 e incidência não parametrizada
valorPisnumberNãoValor de PIS não retido (NT RPS 3.0 — ValorPis). Opcional
valorCofinsnumberNãoValor de COFINS não retido (NT RPS 3.0 — ValorCofins). Opcional
valorCsllnumberNãoValor de CSLL retida (NT RPS 3.0 — ValorCsll). Opcional
Exemplo
{
  "valorServico": 1500,
  "tribIssqn": "1",
  "tpRetIssqn": "1",
  "aliquotaIssqn": 5
}

NfeIdeDto

Identificação da NF-e (grupo ide).

CampoTipoObrigatórioMínMáxDescrição
cufstringSim22Código IBGE da UF do emitente (2 dígitos, ex.: 35=SP)
cnfstringNão88Código numérico da NF-e (8 dígitos). Opcional; a API gera se omitido
natOpstringSim160Descrição da natureza da operação
seriestringSim13Série da NF-e
nnfstringSim19Número da NF-e
dhEmistringSim35Data e hora de emissão em ISO 8601 com fuso (ex.: 2026-05-16T10:00:00-03:00)
dhSaiEntstringNão35Data e hora de saída ou entrada da mercadoria. Opcional
tpNfstringSim11Tipo da NF-e: 0=entrada, 1=saída
idDeststringSim11Destino da operação: 1=interna, 2=interestadual, 3=exterior
cMunFgstringSim77Código IBGE do município do fato gerador do ICMS (7 dígitos)
tpImpstringSim11Formato DANFE: 1=retrato (padrão NF-e), 2=paisagem
tpEmisstringNão11Tipo de emissão: 1=normal (default). Outros valores para contingência
finNfestringSim11Finalidade: 1=normal, 2=complementar, 3=ajuste, 4=devolução
indFinalstringSim11Consumidor final: 0=não, 1=sim
indPresstringSim11Indicador de presença do comprador (tabela SEFAZ: 0–9)
indIntermedstringNão11Indicador de intermediador/marketplace: 0=sem, 1=com. Opcional
procEmistringNão11Processo de emissão: 0=app contribuinte, 1=avulsa Fisco, 3=app certificado. Opcional
verProcstringNão120Versão do processo emissor (ex.: FISQAL-1.0). Opcional
Exemplo
{
  "cuf": "35",
  "natOp": "Venda",
  "serie": "1",
  "nnf": "1"
}

NfeEmitDto

Emitente da NF-e (grupo emit).

CampoTipoObrigatórioMínMáxDescrição
cnpjstringSim1414CNPJ do emitente (14 dígitos, sem formatação)
xNomestringSim1255Razão social do emitente
xFantstringNão160Nome fantasia. Opcional
enderEmitFiscalEnderecoDtoSimEndereço do emitente (TEnderEmi)
iestringSim114Inscrição estadual do emitente
crtstringSim11Código de regime tributário: 1=Simples Nacional, 2=Simples excesso, 3=Normal
Exemplo
{
  "cnpj": "12345678000199",
  "xNome": "Emitente",
  "ie": "123",
  "crt": "2"
}

NfeDestDto

Destinatário da NF-e (grupo dest). Informe cnpj ou cpf.

CampoTipoObrigatórioMínMáxDescrição
cnpjstringNão1414CNPJ do destinatário (14 dígitos). Mutuamente exclusivo com cpf
cpfstringNão1111CPF do destinatário (11 dígitos). Mutuamente exclusivo com cnpj
xNomestringSim260Nome ou razão social do destinatário
enderDestFiscalEnderecoDtoSimEndereço do destinatário (TEndereco)
indIeDeststringSim11Indicador IE destinatário: 1=contribuinte, 2=isento, 9=não contribuinte
iestringNão120Inscrição estadual. Obrigatória quando indIeDest=1. Opcional
emailstringNão160E-mail do destinatário para envio do XML/DANFE. Opcional
Exemplo
{
  "xNome": "Destinatario",
  "enderDest": {},
  "indIeDest": "9"
}

NfeItemDto

Item da NF-e (grupo det/prod + imposto).

CampoTipoObrigatórioMínMáxDescrição
nItemnumberSimNúmero sequencial do item (1, 2, 3...)
cProdstringSim160Código interno do produto ou serviço
cEanstringNão14GTIN/EAN do produto ou "SEM GTIN". Opcional
xProdstringSim1120Descrição do produto ou serviço
ncmstringSim28Código NCM (Nomenclatura Comum do Mercosul)
cfopstringSim44CFOP da operação (4 dígitos)
uComstringSim16Unidade comercial (ex.: UN, KG, CX)
qComnumberSimQuantidade comercial
vUnComnumberSimValor unitário comercial
vProdnumberSimValor total do produto (qCom × vUnCom, descontos aplicados)
cEanTribstringNão14GTIN/EAN da unidade tributável. Opcional
uTribstringSim16Unidade tributável
qTribnumberSimQuantidade tributável
vUnTribnumberSimValor unitário tributável
indTotstringSim11Compõe total da NF-e: 1=sim, 0=não
impostoFiscalItemImpostoDtoSimTributos do item (ICMS, PIS, COFINS, IPI, IBSCBS)
vItemnumberNãoValor total do item com tributos (vItem, RTC). Opcional
Exemplo
{
  "nItem": 1,
  "cProd": "P1",
  "xProd": "Produto",
  "ncm": "22021000",
  "cfop": "5102",
  "uCom": "UN",
  "qCom": 1,
  "vUnCom": 10,
  "vProd": 10,
  "uTrib": "UN",
  "qTrib": 1,
  "vUnTrib": 10,
  "indTot": "1",
  "imposto": {}
}

ConsultNfseChaveDto

Consulta NFS-e externa por chave ou idDps.

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
chaveAcessostringNão50
idDpsstringNão64
codigoMunicipioIbgestringNão77
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "chaveAcesso": "CHAVE"
}

SyncNfseExternalDto

Sincronização NFS-e externa.

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
codigoMunicipioIbgestringSim77
modestringSimprestado | tomado | faixa
dataIniciodateNão
dataFimdateNão
numeroInicialstringNão15
numeroFinalstringNão15
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "codigoMunicipioIbge": "3550308",
  "mode": "prestado"
}

SyncNfeDfeDto

Sincronização NF-e DF-e.

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

ConsultNfeDfeChaveDto

Consulta NF-e DF-e por chave.

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
chaveAcessostringSim4444
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "chaveAcesso": "35260612345678000199550010000082961000082961"
}

ConsultNfceChaveDto

Consulta NFC-e por chave.

CampoTipoObrigatórioMínMáxDescrição
companyIduuidSim
chaveAcessostringSim4444
Exemplo
{
  "companyId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "chaveAcesso": "65260612345678000199650010000001001000001001"
}

CreateConsoleApiKeyDto

Criação de API key no console.

CampoTipoObrigatórioMínMáxDescrição
nomestringSim1160
scopesstring[]SimMin 1, max 16 scopes fiscais
Exemplo
{
  "nome": "Integração ERP",
  "scopes": [
    "nfse:read",
    "nfse:write"
  ]
}

UploadCertificateDto

Upload de certificado A1 (multipart).

CampoTipoObrigatórioMínMáxDescrição
nomestringSim1160
passwordstringSim1255
filefileSim
Exemplo
{
  "nome": "Certificado Producao",
  "password": "senha-certificado"
}

Erros padronizados

Respostas de erro seguem formato JSON consistente:

{
  "code": "NFSE_REJECTED",
  "message": "Documento rejeitado pela prefeitura.",
  "details": {},
  "request_id": "req_abc123"
}
CódigoHTTPMensagem
UNAUTHORIZED401API key inválida ou ausente.
FORBIDDEN403Sem permissão para executar esta operação.
NOT_FOUND404Recurso não encontrado.
CONFLICT409Conflito com o estado atual (ex.: número da NFC-e/série já utilizado no ambiente; emissão duplicada em processamento).
VALIDATION_ERROR400Payload inválido; mensagens de validação retornadas em português.
UNPROCESSABLE_ENTITY422Requisição válida, porém não processável (regra de negócio ou fiscal).
CERTIFICATE_INVALID422Certificado inválido, expirado ou senha incorreta.
FISCAL_PROVIDER_ERROR502Falha na comunicação com autoridade fiscal.
E0039422Municipio sem emissor nacional SEFIN parametrizado.
E0040422Sem cobertura SEFIN, GINFES, ABRASF 2.04 (issnet-abrasf-204) nem ISS.Net nacional (issnet-nacional) para emissao.
E0041503Certificado ADN (NFSE_SYNC_CERT_PATH/PASSWORD) ausente ao atualizar cobertura sob demanda.
E0042503Falha ao consultar ADN para atualizar cobertura do municipio.
NFSE_REJECTED422Documento rejeitado pela prefeitura.
NFE_REJECTED422NF-e rejeitada pela SEFAZ.
NFCE_REJECTED422NFC-e rejeitada pela SEFAZ.
PLAN_FORBIDDEN403Feature ou limite do plano não permite a operação.
COMPANY_PLAN_LIMIT403Este CNPJ excede o limite do plano. Desative outra empresa ou faça upgrade.
COMPANY_INACTIVE403Empresa inativa. Reative a empresa para emitir documentos fiscais.
SUBSCRIPTION_INACTIVE403Assinatura da FISQAL inativa. Regularize o pagamento para continuar.
BILLING_UNAVAILABLE503Pagamento indisponível no momento. Tente novamente em instantes.
RATE_LIMITED429Limite de requisições excedido.
INTERNAL_ERROR500Erro interno inesperado.

Exemplos práticos