DevelopersDocumentação
Documentação
API REST
API RESTful simples, poderosa e bem documentada. Integre em minutos com qualquer linguagem.
Base URL:
api.zexa.co.ao/v1Versão:
v1.4Referência
Rate Limits
Starter100 req/min
Business1.000 req/min
EnterprisePersonalizado
Autenticação
Use um Bearer Token no header Authorization de cada request.
auth.js
JavaScript
"code-comment">// Autenticação via Bearer Token
"code-keyword">const response = "code-keyword">await fetch("code-string">'https:"code-comment">//api.zexa.co.ao/v1/messages', {
method: "code-string">'POST',
headers: {
"code-string">'Authorization': `Bearer ${process.env.ZEXA_API_KEY}`,
"code-string">'Content-Type': "code-string">'application/json',
"code-string">'X-Idempotency-Key': crypto.randomUUID(), "code-comment">// Evita duplicados
},
body: JSON.stringify({
to: "code-string">'+244923456789',
"code-keyword">from: "code-string">'MinhaEmpresa',
text: "code-string">'Código: 847291'
})
})Endpoints
POST
/v1/messagesEnviar um SMSRequest Body
JSON
{
"to": "+244923456789",
"from": "MinhaEmpresa",
"text": "Olá! A sua encomenda foi confirmada.",
"callbackUrl": "https://meusite.com/webhook/sms"
}Response 200
JSON
{
"messageId": "msg_01JK4M2NXPQRS",
"status": "queued",
"to": "+244923456789",
"from": "MinhaEmpresa",
"segments": 1,
"cost": 8.50,
"currency": "AOA",
"createdAt": "2025-06-05T09:41:00Z"
}Webhooks
Receba notificações em tempo real sobre o status de entrega de cada mensagem.
webhook.js
JavaScript
"code-comment">// Seu endpoint recebe este payload quando o SMS é entregue
app.post("code-string">'/webhook/sms', (req, res) => {
"code-keyword">const { messageId, status, to, deliveredAt } = req.body
"code-keyword">if (status === "code-string">'delivered') {
console.log(`SMS ${messageId} entregue a ${to} às ${deliveredAt}`)
"code-comment">// Atualizar base de dados, enviar confirmação, etc.
}
"code-keyword">if (status === "code-string">'failed') {
console.log(`SMS ${messageId} falhou: ${req.body.failureReason}`)
"code-comment">// Lógica de retry ou alerta
}
res.status(200).json({ received: true })
})CLI Playground
Use o CLI Zexa diretamente no terminal para testar envios.
Terminal
$ zexa auth login
✓ Autenticado como comercial@empresa.ao
$ zexa send --to +244923456789 --text "Olá!"
⟳ Enviando...
✓ SMS enviado — msg_01JK4M2N (1.1s)
$ zexa messages list --limit 5
ID STATUS TO COST
msg_01JK4M2N delivered +244923456789 Kz 8.50
SDKs Oficiais
⬡
Node.js
Oficialnpm install @zexa/sms-sdk🐍
Python
Oficialpip install zexa-sms🐘
PHP
Oficialcomposer require zexa/sms☕
Java
Oficialimplementation "co.zexa:sms-sdk"