Relatórios
Exportar as notas do mês (para o contador)
GET https://apifiscal.weesy.com.br/v1/empresas/{cnpj}/exportacoes/nfse
Abrir na referência interativaUm arquivo ZIP com os XMLs das notas autorizadas e canceladas do mês e uma planilha (notas.csv) com número, data, cliente, valor e situação — pronto para mandar ao contador. Até 2.000 notas no mês; acima disso responde 409 exportacao_muito_grande.
Parâmetros
| Nome | Onde | Tipo | Descrição |
|---|---|---|---|
| cnpj obrigatório | caminho | string | CNPJ da empresa, só números. |
| competencia obrigatório | query | string |
Exemplo de chamada
cURL
curl --request GET \
--url "https://apifiscal.weesy.com.br/v1/empresas/21664333000195/exportacoes/nfse?competencia=2026-10" \
--header "Authorization: Bearer $WEESY_TOKEN" \
--output arquivo.zipNode.js
import { writeFile } from "node:fs/promises";
const resposta = await fetch("https://apifiscal.weesy.com.br/v1/empresas/21664333000195/exportacoes/nfse?competencia=2026-10", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.WEESY_TOKEN}`,
},
});
if (resposta.ok) await writeFile("arquivo.zip", Buffer.from(await resposta.arrayBuffer()));
console.log(resposta.status);Python
import os
import requests
resposta = requests.get(
"https://apifiscal.weesy.com.br/v1/empresas/21664333000195/exportacoes/nfse?competencia=2026-10",
headers={"Authorization": f"Bearer {os.environ['WEESY_TOKEN']}"},
timeout=30,
)
if resposta.ok:
with open("arquivo.zip", "wb") as arquivo:
arquivo.write(resposta.content)
print(resposta.status_code)PHP
<?php
$contexto = stream_context_create(["http" => [
"method" => "GET",
"header" => implode("\r\n", ["Authorization: Bearer " . getenv("WEESY_TOKEN")]),
"ignore_errors" => true, // lê o corpo também nas respostas de erro
]]);
$resposta = file_get_contents("https://apifiscal.weesy.com.br/v1/empresas/21664333000195/exportacoes/nfse?competencia=2026-10", false, $contexto);
if (strpos($http_response_header[0], " 200 ") !== false) {
file_put_contents("arquivo.zip", $resposta);
}
echo $http_response_header[0], PHP_EOL;C#
using System.Net.Http.Headers;
using var http = new HttpClient();
http.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("WEESY_TOKEN"));
using var resposta = await http.GetAsync("https://apifiscal.weesy.com.br/v1/empresas/21664333000195/exportacoes/nfse?competencia=2026-10");
if (resposta.IsSuccessStatusCode)
await File.WriteAllBytesAsync("arquivo.zip", await resposta.Content.ReadAsByteArrayAsync());
Console.WriteLine((int)resposta.StatusCode);Respostas
- 200: Arquivo ZIP.
- 400: Algum dado está errado ou faltando. A lista erros diz qual campo e o que corrigir (code = validacao). (formato de erro)
- 401: Token ausente, errado ou revogado (credencialinvalida). Confira o cabeçalho Authorization. (formato de erro)
- 404: Não encontrado. Pode ser que não exista ou que pertença a outra empresa — por segurança, os dois casos respondem igual. (formato de erro)
- 409: exportacaomuitogrande — o mês tem mais de 2.000 notas. (formato de erro)