Quickstart — Sua primeira NFCe em 5 minutos
Este guia mostra de ponta a ponta o fluxo de emissão de uma NFCe usando a API do FazNota. Você vai:
- Obter o seu Token de integração
- Cadastrar um produto e um cliente (opcional, se já existirem)
- Emitir uma NFCe
- Consultar o resultado pelo recibo
Pré-requisitos
- Acesso ao Painel FazNota com permissão de Integração
- Empresa com contrato ativo e configurações fiscais já preenchidas
- Um cliente HTTP (cURL, Postman, Insomnia ou linguagem de sua preferência)
Passo a passo
-
Obtenha seu Token de integração
No Painel FazNota, acesse Meus Dados > aba Integração. Copie o Token gerado.
Terminal window # Exemplo de Token (sempre use o seu, gerado no painel)export TOKEN="abc123def456ghi789jkl012mno345pq" -
Teste a autenticação consultando a saúde da API
Antes de tudo, verifique se a API está respondendo:
Terminal window curl -i https://api.mysebr.com.br/nfemyse-v3/rest/healthVocê deve ver
HTTP/1.1 200 OKe o body:{ "status": "ok", "database": "ok", "timestamp": "2026-05-13T14:32:01Z" } -
Cadastre um produto (opcional)
Pule este passo se já tiver produtos cadastrados.
Terminal window curl -X POST https://api.mysebr.com.br/nfemyse-v3/rest/produtos \-H "Authorization: Token $TOKEN" \-H "Content-Type: application/json" \-d '{"referencia": "SKU-QUICKSTART-001","nome": "Produto Teste Quickstart","valor": "10.00","medida": "UN","ncm": "61051000","origem": "0","tipo-produto": "P"}'Resposta esperada:
{"status": "001","descricao": "Processamento do produto realizado com sucesso.","data": { "mensagem": "Produto cadastrado com sucesso." },"meta": { "request_id": "req_01HX...", "timestamp": "2026-05-13T14:33:00Z" }} -
Cadastre um cliente (opcional)
Pule se já tiver clientes ou se a NFCe for sem identificação.
Terminal window curl -X POST https://api.mysebr.com.br/nfemyse-v3/rest/clientes \-H "Authorization: Token $TOKEN" \-H "Content-Type: application/json" \-d '{"tipo": "F","nome": "João da Silva","cpf": "12345678901","endereco": {"cep": "01310100","rua": "Avenida Paulista","numero": "1000","bairro": "Bela Vista","cidade": "São Paulo","estado": "SP"}}' -
Emita a NFCe
Note que a emissão é assíncrona — você recebe um
recibopara consulta.Terminal window curl -X POST https://api.mysebr.com.br/nfemyse-v3/rest/nfce/emissao \-H "Authorization: Token $TOKEN" \-H "Content-Type: application/json" \-d '{"serie": "65","cfop": "5102","numero-origem": "QUICKSTART-001","tp_pagamento": "dinheiro","cliente": "12345678901","itens": [{ "produto": "SKU-QUICKSTART-001", "quantidade": "1", "valor-unitario": "10.00" }]}'Resposta com o recibo:
{"status": "001","descricao": "Cupom registrado com sucesso.","data": { "recibo": "rec_abc123" },"meta": { "request_id": "req_01HX...", "timestamp": "..." }}Guarde o
recibopara o próximo passo. -
Consulte o resultado pelo recibo
A NFCe leva alguns segundos para ser processada pela SEFAZ. Consulte periodicamente (intervalo mínimo recomendado: 2 segundos) até receber um status terminal (
004= emitida,010= cancelada,900= rejeitada).Terminal window curl https://api.mysebr.com.br/nfemyse-v3/rest/nfce/cupom/rec_abc123 \-H "Authorization: Token $TOKEN"Resposta quando emitida:
{"status": "004","descricao": "Cupom emitido com sucesso.","data": {"id": "...", "numero": "1", "serie": "65","sefaz": {"chave": "35260512345678000199650010000000011000000010","url-danfe": "https://...","url-xml": "https://..."}}}🎉 Pronto! Sua primeira NFCe foi emitida.
Próximos passos
- Aprofunde no Fluxo assíncrono para entender o polling com backoff.
- Veja os Códigos de status para tratar todas as respostas.
- Conheça as Boas práticas para integração estável e segura.
- Explore a Referência da API interativa.
Solução de problemas
| Sintoma | Causa provável | O que fazer |
|---|---|---|
| HTTP 401 | Token ausente ou inválido | Verifique o header Authorization: Token <valor> |
status: "999" no body | Erro de validação ou interno | Leia data.erro para mensagens controladas; cite meta.request_id no suporte para erros internos |
status: "050" | numero-origem duplicado | Use um valor único por emissão; isso protege contra duplicidade |
| Resposta demora muito | Polling sem backoff | Use intervalo mínimo de 2 segundos entre consultas |