Pular para o conteúdo
7 dias grátis · homologação ilimitada

Nota fiscal no seu SaaS em um prompt.

API de NF-e e NFS-e feita para quem constrói com IA. Conecte o MCP no Cursor ou Claude Code, cole o prompt e deixe o agente integrar a emissão fiscal pra você.

Prefere escrever na mão? É REST + webhooks, do jeito que você já conhece. Sem lidar com SEFAZ, XML, assinatura de certificado ou schema.

7 dias grátis Sem fidelidade Pagamento via PIX
curl -X POST https://app.simplifisca.com.br/api/v1/nfe \
  -H "Authorization: Bearer $SIMPLIFISCA_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: pedido-1042" \
  -d '{
  "emitente": "11222333000181",
  "referencia": "pedido-1042",
  "naturezaOperacao": "Venda de mercadoria",
  "destinatario": {
    "cpfCnpj": "99888777000100",
    "nome": "Cliente Exemplo LTDA",
    "email": "compras@cliente.com.br",
    "indicadorIe": 9,
    "endereco": {
      "logradouro": "Av. Brasil", "numero": "500", "bairro": "Jardins",
      "codigoMunicipio": "3550308", "municipio": "São Paulo",
      "uf": "SP", "cep": "01430000"
    }
  },
  "itens": [{
    "codigo": "SKU-001", "descricao": "Camiseta básica",
    "ncm": "61091000", "cfop": "5102",
    "unidade": "UN", "quantidade": 2, "valorUnitario": 59.90,
    "impostos": {
      "icms": { "origem": 0, "csosn": "102" },
      "pis": { "cst": "07" },
      "cofins": { "cst": "07" }
    }
  }],
  "pagamentos": [{ "forma": "17", "valor": 119.80 }]
}'
import os
import requests

payload = {
    "emitente": "11222333000181",
    "referencia": "pedido-1042",
    "naturezaOperacao": "Venda de mercadoria",
    "destinatario": {
        "cpfCnpj": "99888777000100",
        "nome": "Cliente Exemplo LTDA",
        "email": "compras@cliente.com.br",
        "indicadorIe": 9,
        "endereco": {
            "logradouro": "Av. Brasil", "numero": "500", "bairro": "Jardins",
            "codigoMunicipio": "3550308", "municipio": "São Paulo",
            "uf": "SP", "cep": "01430000",
        },
    },
    "itens": [{
        "codigo": "SKU-001", "descricao": "Camiseta básica",
        "ncm": "61091000", "cfop": "5102",
        "unidade": "UN", "quantidade": 2, "valorUnitario": 59.90,
        "impostos": {
            "icms": {"origem": 0, "csosn": "102"},
            "pis": {"cst": "07"},
            "cofins": {"cst": "07"},
        },
    }],
    "pagamentos": [{"forma": "17", "valor": 119.80}],
}

resp = requests.post(
    "https://app.simplifisca.com.br/api/v1/nfe",
    json=payload,
    headers={
        "Authorization": f"Bearer {os.environ['SIMPLIFISCA_API_KEY']}",
        "Idempotency-Key": "pedido-1042",
    },
)
nfe = resp.json()
print(resp.status_code, nfe["id"], nfe["status"])  # 202 ... processando
const payload = {
  emitente: "11222333000181",
  referencia: "pedido-1042",
  naturezaOperacao: "Venda de mercadoria",
  destinatario: {
    cpfCnpj: "99888777000100",
    nome: "Cliente Exemplo LTDA",
    email: "compras@cliente.com.br",
    indicadorIe: 9,
    endereco: {
      logradouro: "Av. Brasil", numero: "500", bairro: "Jardins",
      codigoMunicipio: "3550308", municipio: "São Paulo",
      uf: "SP", cep: "01430000",
    },
  },
  itens: [{
    codigo: "SKU-001", descricao: "Camiseta básica",
    ncm: "61091000", cfop: "5102",
    unidade: "UN", quantidade: 2, valorUnitario: 59.9,
    impostos: {
      icms: { origem: 0, csosn: "102" },
      pis: { cst: "07" },
      cofins: { cst: "07" },
    },
  }],
  pagamentos: [{ forma: "17", valor: 119.8 }],
};

const resp = await fetch("https://app.simplifisca.com.br/api/v1/nfe", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.SIMPLIFISCA_API_KEY}`,
    "Content-Type": "application/json",
    "Idempotency-Key": "pedido-1042",
  },
  body: JSON.stringify(payload),
});
const nfe = await resp.json();
console.log(resp.status, nfe.id, nfe.status); // 202 ... processando
202 Accepted Resposta
{
  "id": "8f3c2a1e-...",
  "tipo": "nfe",
  "status": "processando",
  "ambiente": "homologacao",
  "referencia": "pedido-1042",
  "emitente": { "id": "...", "cnpj": "11222333000181" },
  "numero": null,
  "serie": "1",
  "chaveAcesso": null,
  "protocolo": null,
  "valorTotal": "119.80",
  "sefaz": { "codigo": null, "mensagem": null },
  "criadoEm": "2026-10-09T14:03:11-03:00",
  "autorizadoEm": null,
  "canceladoEm": null,
  "links": { "self": "/api/v1/nfe/8f3c...", "xml": null, "pdf": null }
}
  • NF-e modelo 55 Emissão, cancelamento e DANFE
  • NFS-e Padrão Nacional DPS, cancelamento e DANFSe
  • Webhooks assinados HMAC-SHA256 com retentativas
  • Multi-CNPJ Vários emitentes por conta

Feito para agentes de IA

Seu agente lê a doc. Você toma um café.

Cursor, Claude Code, Windsurf, Lovable, Bolt, v0 — escolha a ferramenta. A Simplifisca fala a língua do seu agente: servidor MCP, documentação em llms.txt e um prompt pronto para colar.

Claude Code
claude mcp add --transport http simplifisca https://app.simplifisca.com.br/mcp \
  --header "Authorization: Bearer sf_live_SUA_CHAVE"
Cursor · .cursor/mcp.json
{
  "mcpServers": {
    "simplifisca": {
      "url": "https://app.simplifisca.com.br/mcp",
      "headers": {
        "Authorization": "Bearer sf_live_SUA_CHAVE"
      }
    }
  }
}

Endpoint

https://app.simplifisca.com.br/mcp

Transporte Streamable HTTP, autenticado com a mesma chave de API (Authorization: Bearer sf_live_...).

13 ferramentas expostas

  • conta
  • listar_emitentes
  • cadastrar_emitente
  • enviar_certificado
  • listar_catalogo
  • salvar_produto
  • salvar_servico
  • emitir_nfe
  • emitir_nfse
  • consultar_documento
  • listar_documentos
  • cancelar_documento
  • exemplo_payload
Configurar no Windsurf e outros clientes
Cole no Cursor, Claude Code, Lovable, Bolt...
Integre emissão de nota fiscal no meu SaaS usando a API da Simplifisca. Leia a documentação em https://app.simplifisca.com.br/llms-full.txt. Cadastre meus produtos/serviços uma vez no catálogo fiscal (PUT /api/v1/produtos/{codigo} ou /api/v1/servicos/{codigo}). Quando um pagamento for confirmado, emita uma NF-e (produto) ou NFS-e (serviço) via POST /api/v1/nfe ou /api/v1/nfse referenciando só o código do catálogo, com Idempotency-Key = id do pagamento, guarde o id retornado e trate o webhook nfe.autorizada/nfse.autorizada (validando X-Simplifisca-Assinatura) para salvar chaveAcesso e links do PDF/XML. Use a variável de ambiente SIMPLIFISCA_API_KEY.

Dica: comece com o emitente em homologacao — notas de teste não contam no plano.

Catálogo fiscal

Seu SaaS emite NFS-e em 3 linhas.

O contador configura o serviço uma vez no painel — código de tributação nacional, NBS, ISS e valor. Depois, o seu código (ou o seu agente) só manda o tomador e o codigo do serviço.

Como funciona o catálogo
webhook-pagamento.js
// pagamento confirmado → nota fiscal emitida
await fetch("https://app.simplifisca.com.br/api/v1/nfse", { method: "POST", headers: { Authorization: `Bearer ${process.env.SIMPLIFISCA_API_KEY}`, "Content-Type": "application/json", "Idempotency-Key": pagamento.id },
  body: JSON.stringify({ emitente: "11222333000181", tomador: { cpfCnpj: cliente.cpf, nome: cliente.nome, email: cliente.email },
    servico: { codigo: "PLANO-PRO" } }) });

Recursos

A parte chata do fiscal, resolvida.

Você manda JSON. A gente monta o XML, assina com o certificado, conversa com a SEFAZ, tenta de novo quando ela cai e te avisa quando terminar.

Catálogo fiscal Novo

Cadastre produtos (NF-e) e serviços (NFS-e) com a tributação configurada uma vez — pelo seu contador no painel ou via API. A nota passa a precisar só do código; campos enviados no item sobrescrevem o catálogo.

PUT /api/v1/produtos/{codigo} · PUT /api/v1/servicos/{codigo}

// NF-e: tributação vem do catálogo
"itens": [{ "produto": "SKU-001", "quantidade": 2 }]

// NFS-e: descrição, cTribNac, ISS e valor também
"servico": { "codigo": "PLANO-PRO" }

NF-e

Emissão e cancelamento de NF-e modelo 55, DANFE em PDF e XML autorizado prontos para download.

NFS-e Padrão Nacional

Emissão via DPS, cancelamento e DANFSe para municípios aderentes ao Padrão Nacional.

Webhooks assinados

Eventos com assinatura HMAC-SHA256 e retentativas com backoff quando seu endpoint não responde.

Fila assíncrona

Retentativa automática em falhas da SEFAZ, com consulta de duplicidade para nunca emitir a mesma nota duas vezes.

Multi-emitente

Vários CNPJs na mesma conta, cada um com seu certificado A1 armazenado de forma criptografada.

Idempotência

Envie o header Idempotency-Key e repita a chamada sem medo: o documento é o mesmo.

Homologação

Ambiente de testes da SEFAZ ilimitado e fora da cota do plano. Troque para produção com um campo.

Painel

Chaves de API, catálogo fiscal, logs com requestId, entregas de webhook e uso do mês num só lugar.

Como funciona

Três passos até a primeira nota.

  1. 1

    Crie a conta e gere a chave

    Cadastre-se grátis e gere sua chave de API em Painel → Chaves de API.

    Authorization: Bearer sf_live_...

  2. 2

    Cadastre o emitente

    Envie os dados do CNPJ e o certificado digital A1 (.pfx). Ele fica guardado criptografado.

    PUT /api/v1/emitentes/{id}/certificado

  3. 3

    Emita e receba o webhook

    Chame POST /api/v1/nfe e receba o evento nfe.autorizada com a chave de acesso, XML e PDF.

    202 → processando → autorizada

Webhooks

Não fique fazendo polling na SEFAZ.

Quando a nota é autorizada, rejeitada ou cancelada, a gente faz um POST no seu endpoint. Cada entrega é assinada com HMAC-SHA256 e reenviada com backoff se você não responder 2xx.

  • Assinatura no header X-Simplifisca-Assinatura com timestamp
  • Até 8 retentativas com backoff exponencial
  • Eventos de NF-e e NFS-e: autorizada, rejeitada, erro e cancelada
Como verificar a assinatura
POST https://seu-saas.com.br/webhooks/simplifisca
Content-Type: application/json
X-Simplifisca-Assinatura: t=1730000000,v1=<hex>
{
  "id": "evt_3b9d1c7a...",
  "evento": "nfe.autorizada",
  "criadoEm": "2026-10-09T14:03:19-03:00",
  "dados": {
    "id": "8f3c2a1e-...",
    "tipo": "nfe",
    "status": "autorizada",
    "ambiente": "homologacao",
    "referencia": "pedido-1042",
    "emitente": { "id": "...", "cnpj": "11222333000181" },
    "numero": 1,
    "serie": "1",
    "chaveAcesso": "35261011222333000181550010000000011000000010",
    "protocolo": "135260000000001",
    "valorTotal": "119.80",
    "sefaz": { "codigo": "100", "mensagem": "Autorizado o uso da NF-e" },
    "criadoEm": "2026-10-09T14:03:11-03:00",
    "autorizadoEm": "2026-10-09T14:03:18-03:00",
    "canceladoEm": null,
    "links": {
      "self": "/api/v1/nfe/8f3c...",
      "xml": "/api/v1/nfe/8f3c.../xml",
      "pdf": "/api/v1/nfe/8f3c.../pdf"
    }
  }
}

Preços

Preço justo, sem letra miúda.

Pague pelas notas em produção. Homologação é por nossa conta.

Start

Para o MVP que acabou de ganhar os primeiros clientes.

R$ 49,90 /mês

  • 100 notas/mês em produção
  • 3 emitentes (CNPJs)
  • Homologação ilimitada
  • NF-e + NFS-e
  • Webhooks e servidor MCP
  • Suporte por e-mail
Começar grátis
Mais popular

Pro

Para SaaS em tração emitindo todo dia.

R$ 149,90 /mês

  • 1000 notas/mês em produção
  • 20 emitentes (CNPJs)
  • Homologação ilimitada
  • NF-e + NFS-e
  • Webhooks e servidor MCP
  • Suporte por e-mail
Começar grátis

Scale

Para plataformas que emitem em nome de muitos CNPJs.

R$ 449,90 /mês

  • 5000 notas/mês em produção
  • Emitentes ilimitados
  • Homologação ilimitada
  • NF-e + NFS-e
  • Webhooks e servidor MCP
  • Suporte por e-mail
Começar grátis

Teste grátis por 7 dias com até 20 notas em produção. Pagamento via PIX.

FAQ

Perguntas frequentes

Sim. Cada emitente precisa de um certificado digital A1 (arquivo .pfx). Você envia uma vez pela API ou pelo painel e ele fica armazenado de forma criptografada.

Sim. A API aceita CSOSN (Simples Nacional) e CST de ICMS (regime normal), além de CST de PIS e COFINS. O regime é definido por emitente no campo regimeTributario.

Os municípios aderentes ao Padrão Nacional da NFS-e. Antes de integrar, confirme se o município do seu emitente já aderiu ao padrão.

Não. Teste à vontade em homologação — só notas emitidas em produção contam para o limite mensal.

A nota fica com status processando e é retentada automaticamente. Quando concluir, você recebe o webhook com o resultado — sem precisar reenviar nada.

Sim. Qualquer ferramenta que gere código consegue integrar via REST — basta apontar o agente para o llms-full.txt. Em clientes que suportam MCP remoto (como Cursor, Claude Code e Windsurf), dá para conectar o servidor MCP direto.

Só o básico do seu produto: NCM, CFOP e tributação vêm do seu contador — e ele pode configurar tudo uma vez no catálogo fiscal, direto no painel. Depois disso a nota só precisa do código do produto ou serviço. A API cuida do resto — XML, assinatura, comunicação com a SEFAZ, retentativas e DANFE.

Sim, sem fidelidade e sem multa. O pagamento é mensal via PIX.

Comece a emitir hoje.

Crie a conta, gere a chave e mande o prompt para o seu agente. A primeira nota em homologação sai em minutos.

7 dias grátis · homologação ilimitada · sem fidelidade