Documentação da API
Um gateway, uma chave, um envelope. Emita NF-e, NFC-e, MDF-e, CT-e e DCe, consulte
CNPJ, faça correção fiscal por EAN e envie WhatsApp — tudo em https://aceleraapi.com.br/api/v1.
Envelope de resposta
Toda resposta JSON segue o mesmo formato. Em erro, ok=false e error traz
code (estável) e message. Exceção: downloads (XML/PDF/HTML) vêm como
arquivo binário direto, fora do envelope.
- Base:
https://aceleraapi.com.br/api/v1 - Autenticação por
Authorization: Bearer <chave> - Corpos e respostas em JSON (UTF-8)
// sucesso { "ok": true, "status": 200, "error": null, "data": { /* conteúdo */ } } // erro { "ok": false, "status": 422, "error": { "code": "emissao_rejeitada", "message": "Rejeicao 539: Duplicidade..." }, "data": null }
Autenticação
Duas chaves, dois papéis. Envie sempre no header Authorization.
| Chave | Quem usa | Serve para |
|---|---|---|
aca_… dev | Você (software house, a “matriz”) | Gerenciar empresas, produtos e consumo |
ace_… empresa | Cada empresa cadastrada | Consumir os produtos (emitir, CNPJ, WhatsApp…) |
/empresas, /conta)
exige aca_; endpoint de produto (/nfe, /cnpj…) exige ace_.curl https://aceleraapi.com.br/api/v1/ping \
-H "Authorization: Bearer ace_SEU_TOKEN"
use AceleraApi\Client; $cli = new Client('ace_SEU_TOKEN'); $info = $cli->ping();
uses AceleraAPI; Api := TAceleraClient.Create('ace_SEU_TOKEN'); R := Api.Ping; // libere R com .Free
Ambiente & homologação
Todo documento fiscal tem dois ambientes. Comece sempre em homologação.
- Homologação (
ambiente: 2) — testes, sem valor fiscal. - Produção (
ambiente: 1) — vale como documento fiscal.
O certificado A1 é compartilhado entre NF-e/NFC-e/MDF-e/CT-e/DCe do mesmo emitente: envie uma vez (base64) e todos usam. Cada documento tem sua própria série.
# certificado A1 (uma vez, compartilhado) curl -X POST .../api/v1/nfe/certificado \ -H "Authorization: Bearer ace_SEU_TOKEN" \ -d '{"certificado_base64":"MIIK...","senha":"..."}' # série + ambiente curl -X PUT .../api/v1/nfe/configuracao \ -H "Authorization: Bearer ace_SEU_TOKEN" \ -d '{"ambiente":2,"serie_nfe":1}'
$b64 = base64_encode(file_get_contents('cert.pfx')); $cli->nfe()->enviarCertificado($b64, 'senha'); $cli->nfe()->configurar(['ambiente'=>2, 'serie_nfe'=>1]);
Api.EnviarCertificado('nfe', CertToBase64('cert.pfx'), 'senha').Free; Api.Put('nfe/configuracao', JSONFromStr('{"ambiente":2,"serie_nfe":1}')).Free;
Fluxo matriz → empresa
O modelo é feito para quem revende para vários clientes.
- Cadastre a empresa com sua chave
aca_(POST /empresas). A resposta traz otokendela (ace_…), exibido só ali — guarde cifrado. - Vincule os produtos (no cadastro, no painel, ou
POST /empresas/{id}/produtos/{codigo}). - Consuma com o token da empresa. Cada uso é medido e aparece no seu consumo.
Se perder o token, gere outro com POST /empresas/{id}/token (revoga o anterior).
aca_ (você) ──► POST /empresas
└─► data.token = ace_ (cliente)
ace_ (cliente) ──► POST /nfe/emitir
──► GET /cnpj/{cnpj}
──► POST /whatsapp/mensagens
Primeira chamada, na sua linguagem
A API é HTTP com JSON — funciona em qualquer stack. Abaixo, a mesma
requisição autenticada (GET /v1/ping) em seis linguagens.
Se ela responder 200, sua integração está pronta para começar.
curl https://aceleraapi.com.br/api/v1/ping \
-H "Authorization: Bearer aca_SUA_CHAVE"
<?php // composer require aceleraapi/sdk $api = new \AceleraApi\Client('aca_SUA_CHAVE'); $r = $api->get('/ping'); // ou sem SDK, com cURL puro: $ch = curl_init('https://aceleraapi.com.br/api/v1/ping'); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => ['Authorization: Bearer aca_SUA_CHAVE'], ]); $r = json_decode(curl_exec($ch), true);
# pip install requests import requests r = requests.get( "https://aceleraapi.com.br/api/v1/ping", headers={"Authorization": "Bearer aca_SUA_CHAVE"}, timeout=30, ) print(r.json())
// Node 18+ — fetch nativo, sem dependência const r = await fetch("https://aceleraapi.com.br/api/v1/ping", { headers: { Authorization: "Bearer aca_SUA_CHAVE" }, }); const dados = await r.json(); console.log(dados);
using var http = new HttpClient(); http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "aca_SUA_CHAVE"); var json = await http.GetStringAsync( "https://aceleraapi.com.br/api/v1/ping"); Console.WriteLine(json);
// SDK Delphi: unit AceleraAPI (veja /docs/sdks) uses AceleraAPI; Api := TAceleraClient.Create('aca_SUA_CHAVE'); try Resp := Api.Get('/ping'); ShowMessage(Resp.ToJSON); finally Api.Free; end;
{ "ok": true, "status": 200, "error": null,
"data": { "servico": "AceleraAPI", "versao": "v1",
"tipo_chave": "dev", "conta": "[email protected]" } }
Sem chave ainda? Crie a conta — o ambiente de homologação é liberado na hora e chamada em homologação não é cobrada. Prefere que a sua IA faça a integração? Veja o servidor MCP e o llms-full.txt.
Referência por produto
Cada documento tem página própria, com o corpo completo da requisição e os erros específicos.