JSON único
Prestador, tomador e serviço no mesmo corpo. A referência do seu pedido identifica a nota em todas as chamadas.
API de NFS-e
Você envia prestador, tomador e serviço. A API devolve o status, o PDF e o XML. Consulta, cancelamento e webhook usam a mesma referência do pedido.
{
"identificacao": "pedido-1042",
"data_emissao": "2026-10-10T14:30:00-03:00",
"numero": "15",
"serie": "1",
"tomador": {
"cnpj": "19131243000197",
"razao_social": "Cliente Exemplo Ltda",
"email": "fiscal@cliente.exemplo",
"endereco": {
"logradouro": "Rua das Acácias",
"numero": "120",
"bairro": "Centro",
"codigo_municipio": "3304557",
"uf": "RJ",
"cep": "20040020"
}
},
"servico": {
"codigo": "010101",
"discriminacao": "Desenvolvimento de integração para emissão de NFS-e",
"valor_servicos": 1500,
"tributos_municipais": {
"aliquota_iss": 2,
"iss_retido": false
}
}
}{
"id": "8f3c2a10-6b4e-4d2a-9c11-2e5a7b9d0f31",
"status": "recebida",
"sistema": "municipal",
"ambiente": "2",
"identificacao": "pedido-1042",
"numero": "15",
"serie": "1",
"data_emissao": "2026-10-10T14:30:00-03:00",
"tomador": {
"razao_social": "Cliente Exemplo Ltda"
},
"servico": {
"codigo": "010101",
"valor_servicos": 1500
}
}<?php
$payload = [
'identificacao' => 'pedido-1042',
'data_emissao' => '2026-10-10T14:30:00-03:00',
'numero' => '15',
'serie' => '1',
'tomador' => [
'cnpj' => '19131243000197',
'razao_social' => 'Cliente Exemplo Ltda',
],
'servico' => [
'codigo' => '010101',
'discriminacao' => 'Desenvolvimento de integração para emissão de NFS-e',
'valor_servicos' => 1500,
],
];
$ch = curl_init('https://api.apisimples.com/v1/nfse');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer apse_sua_chave_do_emitente',
'Content-Type: application/json',
'Accept: application/json',
],
CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
]);
$resposta = curl_exec($ch);
$nota = json_decode($resposta, true);Prestador, tomador e serviço no mesmo corpo. A referência do seu pedido identifica a nota em todas as chamadas.
Quando o status fica autorizado, a resposta traz os endereços do DANFSE em PDF e do XML autorizado.
A API avisa autorização, rejeição da prefeitura e cancelamento. Dá para consultar a referência do mesmo jeito.
Repetir o POST com a mesma referência não emite uma segunda NFS-e. A chamada devolve a nota que já existe.
Documentos
NFS-e e NF-e já têm rota publicada. NFC-e, CT-e e MDF-e continuam na fila.
Disponível
Nota fiscal de serviço eletrônica. Emissão, consulta, cancelamento, PDF, XML e aviso por webhook.
Ver a API de NFS-eDisponível
Nota de produto, modelo 55. Emissão na SEFAZ, consulta, cancelamento, carta de correção e DANFE.
Ver a API de NF-eEm breve
Nota de cupom no varejo.
Em breve
Conhecimento de transporte.
Em breve
Manifesto de carga.
Fluxo
01
O cadastro entrega a chave geral na hora. Cada emitente que você incluir depois recebe a própria chave.
02
O POST /nfse recebe a referência do pedido, o tomador e os dados do serviço prestado.
03
Consulte a referência ou espere o webhook. PDF e XML ficam disponíveis com status autorizado.
Recursos
A mesma rota, com chaves separadas. O teste não autoriza nota com valor fiscal.
A chave geral identifica a conta. Cada emitente cadastrado no painel tem a própria chave.
DELETE na referência, com a justificativa exigida pela prefeitura.
Validação da API e retorno da prefeitura voltam em JSON, com código e campos.
A integração é HTTP. Os exemplos desta página estão em cURL, PHP e JavaScript.
A emissão de NFS-e e NF-e consome a cota do plano. Consulta e download ficam de fora.
Exemplo
POST https://api.apisimples.com/v1/nfse com a chave no header Authorization. A resposta abaixo é uma nota já autorizada.
curl -X POST https://api.apisimples.com/v1/nfse \
-H "Authorization: Bearer apse_sua_chave_do_emitente" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '{
"identificacao": "pedido-1042",
"data_emissao": "2026-10-10T14:30:00-03:00",
"numero": "15",
"serie": "1",
"tomador": {
"cnpj": "19131243000197",
"razao_social": "Cliente Exemplo Ltda",
"email": "fiscal@cliente.exemplo",
"endereco": {
"logradouro": "Rua das Acácias",
"numero": "120",
"bairro": "Centro",
"codigo_municipio": "3304557",
"uf": "RJ",
"cep": "20040020"
}
},
"servico": {
"codigo": "010101",
"discriminacao": "Desenvolvimento de integração para emissão de NFS-e",
"valor_servicos": 1500,
"tributos_municipais": {
"aliquota_iss": 2,
"iss_retido": false
}
}
}'<?php
$payload = [
'identificacao' => 'pedido-1042',
'data_emissao' => '2026-10-10T14:30:00-03:00',
'numero' => '15',
'serie' => '1',
'tomador' => [
'cnpj' => '19131243000197',
'razao_social' => 'Cliente Exemplo Ltda',
],
'servico' => [
'codigo' => '010101',
'discriminacao' => 'Desenvolvimento de integração para emissão de NFS-e',
'valor_servicos' => 1500,
],
];
$ch = curl_init('https://api.apisimples.com/v1/nfse');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer apse_sua_chave_do_emitente',
'Content-Type: application/json',
'Accept: application/json',
],
CURLOPT_POSTFIELDS => json_encode($payload, JSON_UNESCAPED_UNICODE),
]);
$resposta = curl_exec($ch);
$nota = json_decode($resposta, true);const resposta = await fetch("https://api.apisimples.com/v1/nfse", {
method: "POST",
headers: {
Authorization: "Bearer apse_sua_chave_do_emitente",
"Content-Type": "application/json",
Accept: "application/json",
},
body: JSON.stringify({
identificacao: "pedido-1042",
data_emissao: "2026-10-10T14:30:00-03:00",
numero: "15",
serie: "1",
tomador: {
cnpj: "19131243000197",
razao_social: "Cliente Exemplo Ltda",
},
servico: {
codigo: "010101",
discriminacao: "Desenvolvimento de integração para emissão de NFS-e",
valor_servicos: 1500,
},
}),
});
const nota = await resposta.json();Preços
A mensalidade cobre a ligação do sistema, com NFS-e e NF-e. O plano Teste é gratuito.
R$ 0 / mês
Para ligar o sistema em homologação.
Mais usado
R$ 149 / mês
Para a integração em produção.
R$ 499 / mês
Para mais de um CNPJ e operação contínua.
Emissão
Cada emissão de NFS-e ou NF-e consome a cota do plano de integração.
50
emissões por mês
1.000
emissões por mês
10.000
emissões por mês
A cota é única para NFS-e e NF-e. Entra a nota autorizada e a nota rejeitada pela prefeitura ou pela SEFAZ. Consulta, PDF, XML e erro de validação da API ficam de fora. Acima de 10.000 emissões por mês, a utilização é fechada no contato.
Dúvidas
NFS-e e NF-e de produto já estão na API. NFC-e, CT-e e MDF-e ainda não.
O certificado A1 do prestador, em arquivo. O modelo A3 fica acoplado a um dispositivo e não serve para este fluxo em nuvem.
É o identificador da nota no seu sistema, como o número do pedido. Ela evita emissão duplicada e é o caminho de consulta, cancelamento e download.
Não. A cota conta a emissão de NFS-e e NF-e autorizadas, e as rejeitadas pela prefeitura ou pela SEFAZ. Consulta, PDF e XML ficam de fora.
A API transmite os dados tributários que você enviar. Item da lista, código municipal, alíquota e retenção de ISS continuam a cargo do prestador e do contador.
O cadastro pede a empresa e o CNPJ. A chave fica no painel, e cada emitente ganha a chave dele.