Guia de integração
Documentação da API Emitfy
A API REST da Emitfy permite emitir notas (NFS-e, NF-e, NFC-e, CT-e), gerenciar o catálogo (clientes, produtos e vendas — o mesmo da Dashboard), empresas da assinatura e receber eventos via webhook. Conta = billing; Assinatura = keys, webhooks e ops; Empresa = CNPJ no path. Ideal para SaaS e ERPs com múltiplos CNPJs em uma única credencial.
Qual fluxo escolher?
Atalho (NF-e / NFS-e)
Um POST com tomador/destinatário e valor. A Emitfy cria venda, cliente e produto por baixo. Ideal para emissão pontual.
Ir para NFS-eCatálogo (Dashboard)
Cadastre clientes e produtos; nas vendas use customer: "<uuid>" e SKU. Ideal para SaaS recorrente e dados já corrigidos na Emitfy.
Começar
Emissão
Catálogo
Integração
Primeiros passos
Gerar credenciais
Crie sua chave em Painel → API & Webhooks.
Configurar autenticação
Envie X-Api-Key e X-Api-Secret em todas as chamadas.
Emitir a primeira nota
Use o atalho /v1/companies/:companyId/nfse ou o catálogo /v1/companies/:companyId/sales e acompanhe via webhook.
Base URL e autenticação
Use a URL base https://api.emitfy.com. Todas as requisições privadas validam os headers X-Api-Key e X-Api-Secret da assinatura/conta. Emissão e catálogo usam /v1/companies/:companyId/...; webhooks ficam em /v1/webhooks.
X-Api-Key: <api-key>
X-Api-Secret: <api-secret>
Content-Type: application/jsoncurl -X POST https://api.emitfy.com/v1/companies/ID_DA_EMPRESA/nfse \
-H "X-Api-Key: <api-key>" \
-H "X-Api-Secret: <api-secret>" \
-H "Content-Type: application/json" \
-d '{
"serviceDescription": "Consultoria em tecnologia",
"serviceCode": "01.01",
"amount": 1500.00,
"borrower": {
"taxId": "123.456.789-00",
"name": "João Silva",
"email": "[email protected]"
}
}'Formato de resposta
As respostas seguem um envelope JSON. Em sucesso, ok é true; em erro, false com code e message.
{
"ok": true,
"data": {
"id": "018f6e3b-...",
"status": "processing",
"type": "nfse",
"amount": 1500.00
}
}{
"ok": false,
"code": "INVALID_API_CREDENTIALS",
"message": "Credenciais de API inválidas.",
"statusCode": 401
}Suporte técnico
Em caso de dúvidas na integração, o time técnico ajuda com onboarding, debugging e validação de payloads.