Autenticação
Em uma linha
Toda chamada à API leva o seu token no cabeçalho Authorization:
Authorization: Bearer wee_7Hq2k_9fJ3xL...Só isso. Não existe login nem renovação para quem usa o token de API.
Qual token é o meu?
| Você é... | Seu token | Como usa |
|---|---|---|
| Uma empresa que vai emitir as próprias notas (o caso mais comum) | Token de API — começa com wee_ | Direto no cabeçalho, em toda chamada |
| Um integrador (software house, plataforma) que emite para várias empresas | Token de parceiro — entregue pela Weesy | Faz login, recebe um token temporário e usa esse |
Na dúvida, é o token de API.
Token de API
1. Gerar o token
- Entre no ERP da Weesy com o usuário dono da conta.
- Abra o menu Integração por API.
- Clique em Gerar token.
- Copie o token na hora. Ele aparece uma vez só — a Weesy não guarda uma cópia que dê para mostrar de novo. Se perder, gere outro.
2. Guardar o token
Guarde o token como um segredo: numa variável de ambiente do servidor ou num cofre de segredos.
Nunca coloque o token:
- no código-fonte nem no repositório (Git);
- no front-end (site, app de celular) — qualquer pessoa conseguiria ler;
- em planilha, e-mail ou mensagem.
3. Usar o token
curl https://apifiscal.weesy.com.br/v1/empresas \
-H "Authorization: Bearer $WEESY_TOKEN"// Node.js 18+
const resposta = await fetch('https://apifiscal.weesy.com.br/v1/empresas', {
headers: { Authorization: `Bearer ${process.env.WEESY_TOKEN}` },
});
const { dados } = await resposta.json();// C# (.NET 8+)
var http = new HttpClient { BaseAddress = new Uri("https://apifiscal.weesy.com.br/v1/") };
http.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", Environment.GetEnvironmentVariable("WEESY_TOKEN"));
var empresas = await http.GetStringAsync("empresas");Se a chamada devolveu a sua empresa, a autenticação está funcionando.
Trocar o token
Gere um token novo na mesma tela. O antigo continua valendo por 24 horas, para você ter tempo de atualizar o seu sistema sem parar de emitir. Depois disso, só o novo funciona.
Cancelar o token (revogar)
Na mesma tela, clique em Revogar. Em até 1 minuto o token para de funcionar. Faça isso na hora se desconfiar que alguém viu o seu token.
O que o token de API pode fazer
- Ele enxerga só a sua empresa. Se você mandar o CNPJ de outra empresa, a resposta é
404(como se não existisse). - No período de teste grátis, dá para emitir só em
simulacaoehomologacao. A nota de verdade (producao) libera quando a assinatura começa.
Login de integrador
Só para quem recebeu da Weesy um token de parceiro e emite para várias empresas.
1. Fazer login
curl -X POST https://apifiscal.weesy.com.br/v1/autenticacao \
-H "token: $WEESY_TOKEN_PARCEIRO"Resposta:
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"expiraEm": "2026-11-03T16:22:05-03:00"
}2. Usar o token temporário
Nas outras chamadas, mande o token da resposta:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...3. Renovar antes de expirar
O token temporário vale 2 horas. Guarde-o em memória e faça um novo login um pouco antes de expiraEm — não faça login a cada chamada.
let cache = { token: null, expiraEm: 0 };
async function tokenDoIntegrador() {
const cincoMinutos = 5 * 60 * 1000;
if (cache.token && Date.now() < cache.expiraEm - cincoMinutos) return cache.token;
const resposta = await fetch('https://apifiscal.weesy.com.br/v1/autenticacao', {
method: 'POST',
headers: { token: process.env.WEESY_TOKEN_PARCEIRO },
});
if (!resposta.ok) throw new Error(`Login recusado: ${resposta.status}`);
const { token, expiraEm } = await resposta.json();
cache = { token, expiraEm: new Date(expiraEm).getTime() };
return token;
}Com o login de integrador, você enxerga todas as empresas que a Weesy vinculou a você. Em cada chamada, diga de qual empresa é a nota (cnpjEmitente).
Quando dá erro
| Resposta | code | O que aconteceu | Como resolver |
|---|---|---|---|
401 | credencial_invalida | Token errado, faltando, revogado ou trocado há mais de 24 h | Confira se o cabeçalho é Authorization: Bearer <token> — com a palavra Bearer e um espaço. Se o token foi trocado, use o novo |
403 | empresa_suspensa | A assinatura está em atraso ou foi cancelada | Regularize a assinatura no ERP; o token volta a funcionar sozinho |
403 | ambiente_nao_liberado | No teste grátis, tentou emitir em producao | Use simulacao ou homologacao até a assinatura começar |
403 | escopo_insuficiente | O seu tipo de token não pode usar essa operação | Ex.: o webhook do integrador só se configura com o login de integrador |
404 | (vários) | O CNPJ ou a nota não é da sua empresa — ou não existe | Confira o CNPJ e o id |
Erro mais comum: esquecer a palavra Bearer. O cabeçalho é Authorization: Bearer wee_..., não Authorization: wee_....