Nota Fiscal de Serviço Eletrônica
Segue abaixo exemplos de POST e GET da Nota Fiscal de Serviço Eletrônica. No post é possível criar uma nota fiscal e receber uma de exemplo por e-mail. No GET, é possível retornar os dados da nota fiscal criada.
POST Nota Fiscal de Serviço
const fetch = require('node-fetch');
const host = 'https://api.nfe.io';
const apiKey = 'odZhy5YCSRDEx38Am4WpaHtBpkFKoF695DoBfKEGWA4adDM7caf12eaRcXurkAnDTYxapZwu';
const defaultHeaders = { 'Content-Type': 'application/json', 'Authorization': apiKey };
/// ------------------------------------------------------------------------------------
/// PASSO 0: GERAR CNPJ PARA TESTES NO ENDEREÇO ABAIXO,
/// DEPOIS COPIE SOMENTE NÚMEROS, NO LUGAR DO undefined
///
/// https://consulta.guru/gerador-cnpj-gratis
/// ------------------------------------------------------------------------------------
var federalTaxNumber = undefined;
if (!federalTaxNumber) { // Caso não preencha o CNPJ, vamos gerar um novo aleatório.
federalTaxNumber = (await (await fetch('https://api.nfse.io/Generate/LegalEntities/taxNumber/1')).json()).taxNumbers[0].value.replace(/[\.\-\/]/gi,'');
}
console.log(`federalTaxNumber ${federalTaxNumber}`);
/// ------------------------------------------------------------------------------------
/// PASSO 1: CRIAR EMPRESA DE TESTE (AMBIENTE DE DESENVOLVIMENTO)
///
/// ATENÇÃO: VOCÊ SÓ PRECISA CRIAR A EMPRESA NA PRIMEIRA VEZ
///
/// ------------------------------------------------------------------------------------
const createCompany = {
environment: "Development",
name: "EMPRESA TESTE", // Razão Social
tradeName: "TESTE INC", // Nome Fantasia
federalTaxNumber: federalTaxNumber, // CNPJ
address: {
country: "BRA", // País
postalCode: "01452-922", // CEP
street: "Avenida Brigadeiro Faria Lima", // Endereço
number: "2369", // Número
additionalInformation: "Edifício Barão de Iguatemi", // Complemento de Endereço
district: "Jardim Paulistano", // Bairro
city: {
code: "3550308", // Código da Cidade
name: "São Paulo" // Nome da Cidade
},
state: "SP" // Estado
}
};
var createCompanyResponse = await fetch(`${host}/v1/companies`, { body: JSON.stringify(createCompany), method: 'POST', headers: defaultHeaders });
if (!createCompanyResponse.ok) {
console.log(createCompanyResponse.statusText, await createCompanyResponse.text());
return;
}
const companyCreatedUri = createCompanyResponse.headers.get('location');
console.log(`company created at ${companyCreatedUri}`);
/// ------------------------------------------------------------------------------------
/// PASSO 2: ENVIAR NOTA FISCAL PARA FILA DE EMISSÃO
/// ------------------------------------------------------------------------------------
// Antes temos que recuperar o ID da Empresa, vamos usar o endereço da empresa que foi criada
const getCompanyIdResponse = await fetch(`${host}${companyCreatedUri}`, { headers: defaultHeaders });
const companyId = (await getCompanyIdResponse.json()).companies.id;
console.log(`company id ${companyId}`);
// ADICIONE O SEU E-MAIL PARA RECEBER A NOTA TESTE **OBRIGATÓRIO
const issueInvoice = {
cityServiceCode: "2917",
description: "DESCRIÇÃO_DA_NOTA_FISCAL_AQUI", //Adicione uma descrição
servicesAmount: 10000,
borrower: {
email: "nfe@nfe.io", // Adicione o seu e-mail
type: "NaturalPerson", // Tipo do cliente (PJ/PF)
federalTaxNumber: 78477401764, // CNPJ/CPF do cliente
name: "NOME_DO_CLIENTE_AQUI", // Nome/Razão social do cliente
address: {
country: "BRA",
postalCode: "05416011",
street: "Rua Fradique Coutinho",
number: "701",
district: "Pinheiros",
state: "SP",
city: {
code: "3550308",
name: "São Paulo"
}
}
}
};
const queueInvoiceToIssueResponse = await fetch(`${host}/v1/companies/${companyId}/serviceinvoices`, { body: JSON.stringify(issueInvoice), method:'POST', headers: defaultHeaders });
if (!queueInvoiceToIssueResponse.ok) {
console.log(queueInvoiceToIssueResponse.statusText, await queueInvoiceToIssueResponse.text());
return;
}
const invoice = await queueInvoiceToIssueResponse.json();
console.log(`invoice id ${invoice.id}`);
console.log('invoice queued to issue');
invoice;
GET Nota Fiscal de Serviço
const fetch = require('node-fetch');
const host = 'https://api.nfe.io';
const companyID = '59bc2c1cb82f7506ac7b0bed';
let path = `/v1/companies/${companyID}/serviceinvoices/`;
// COLOQUE O ID DA NOTA CRIADA NO POST ACIMA
const invoiceID = 'ID_DA_NOTA';
const response = await fetch(`${host}${path}${invoiceID}`, {
mothod:'GET',
headers: { 'Content-Type': 'application/json', 'Authorization': 'odZhy5YCSRDEx38Am4WpaHtBpkFKoF695DoBfKEGWA4adDM7caf12eaRcXurkAnDTYxapZwu' }
// SUBSTITUA O process.env.Authorization PELA SUA API KEY
});
const data = await response.json();
console.log(data);