Introdução
Use sua API Key no header Authorization: Bearer SUA_API_KEY em todas as requisições.
Base URL
Todas as rotas da API v1 estão sob:
https://nfe.geranet.net/api/v1
Autenticação
Envie sua API Key (gerada no Painel) no header HTTP:
Authorization: Bearer gn_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Sem o header ou com chave inválida, a API retorna 401 Unauthorized.
Documentação em formato OpenAPI (Redoc): Abrir OpenAPI.
Exemplos de código (cURL, PHP, Python, C#)
Exemplo de requisição autenticada (GET /api/v1/user) em cada linguagem:
curl -X GET "https://nfe.geranet.net/api/v1/user" \
-H "Authorization: Bearer SUA_API_KEY" \
-H "Accept: application/json"
// PHP (cURL nativo)
$url = 'https://nfe.geranet.net/api/v1/user';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $apiKey,
'Accept: application/json',
]);
$response = curl_exec($ch);
$httpCode = (int) curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$dados = json_decode($response, true);
# Python (requests)
import requests
response = requests.get(
'https://nfe.geranet.net/api/v1/user',
headers={
'Authorization': f'Bearer {api_key}',
'Accept': 'application/json',
},
)
dados = response.json()
// C# (HttpClient)
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", $"Bearer {apiKey}");
client.DefaultRequestHeaders.Add("Accept", "application/json");
var response = await client.GetAsync("https://nfe.geranet.net/api/v1/user");
var json = await response.Content.ReadAsStringAsync();
var dados = JsonSerializer.Deserialize<JsonElement>(json);
Estrutura das respostas
Os endpoints de NFe e NFSe devolvem sempre JSON com situacao, mensagem, xml e pdf. Em sucesso podem vir ainda numero, chave (NFe) e protocolo (NFe).
Sucesso (HTTP 200)
{
"situacao": "sucesso",
"mensagem": "NFe emitida com sucesso.",
"xml": "(conteúdo do XML em hexadecimal ou string vazia)",
"pdf": "(conteúdo do PDF em hexadecimal ou string vazia)",
"numero": "000001",
"chave": "35260218612608000132550020000000031369409922",
"protocolo": "135260000368176"
}
Campos numero, chave e protocolo aparecem conforme o endpoint (emissão NFe). xml e pdf vêm em hexadecimal; podem ser string vazia quando não houver documento gerado.
Erro (HTTP 422)
{
"situacao": "erro",
"mensagem": "Rejeição 204: Duplicidade de NF-e. Chave já existente na base da SEFAZ.",
"xml": "",
"pdf": ""
}
Em erro, xml e pdf vêm vazios. A mensagem traz o motivo (validação da API ou retorno do acbrcmd/SEFAZ).