Crie cobrancas Pix, consulte o status e receba notificacoes automaticas no seu sistema. Base da API: https://wl.axtech.pro/api/v1
Gere uma chave em Painel da empresa > API e Webhooks e envie no cabecalho x-api-key de cada requisicao. A chave e exibida uma unica vez. Limite: 600 requisicoes por minuto por chave.
x-api-key: sk_live_...
Valores monetarios sao sempre em centavos (inteiros). Ex: R$ 150,00 = 15000.
POST/api/v1/charges
| Campo | Tipo | Descricao |
|---|---|---|
| amount | inteiro | Obrigatorio. Valor em centavos (minimo 100). |
| description | texto | Opcional. Ate 200 caracteres. |
| customerName | texto | Opcional. Nome do pagador. |
| customerDoc | texto | Opcional. CPF ou CNPJ do pagador. |
| customerEmail | texto | Opcional. |
| dueDate | AAAA-MM-DD | Opcional. Vencimento (a cobranca expira apos esta data). |
| metadata | objeto | Opcional. Dados livres devolvidos nas consultas e webhooks (ex: id do pedido). |
curl -X POST https://wl.axtech.pro/api/v1/charges \
-H "x-api-key: sk_live_..." -H "Content-Type: application/json" \
-d '{"amount":15000,"description":"Pedido 1042","metadata":{"orderId":"1042"}}'
Resposta (201):
{
"id": "6f1c...",
"amount": 15000, "fee": 149, "net": 14851,
"status": "PENDING",
"brCode": "00020101021226...",
"qrImage": "data:image/png;base64,...",
"checkoutUrl": "https://wl.axtech.pro/pay/6f1c...",
"metadata": { "orderId": "1042" },
"createdAt": "2026-11-03T18:00:00.000Z"
}
Mostre o qrImage, ofereca o brCode (copia e cola) ou envie o checkoutUrl ao cliente.
GET/api/v1/charges/{id} GET/api/v1/charges?status=PAID&take=30&skip=0
Status possiveis: PENDING, PAID, EXPIRED, CANCELED.
POST/api/v1/charges/{id}/cancel cancela uma cobranca pendente.
GET/api/v1/balance retorna {"available": 123456, "currency": "BRL"}.
Cadastre a URL (https) no painel e escolha os eventos. Cada entrega e um POST JSON:
{
"id": "evt...",
"event": "charge.paid",
"createdAt": "2026-11-03T18:05:00.000Z",
"data": { "id": "6f1c...", "amount": 15000, "status": "PAID", "paidAt": "...", "metadata": {"orderId":"1042"} }
}
| Evento | Quando |
|---|---|
| charge.created | Cobranca criada |
| charge.paid | Pagamento confirmado |
| charge.expired | Cobranca venceu sem pagamento |
| charge.canceled | Cobranca cancelada |
| pix.sent | Pix enviado concluido |
| pix.failed | Pix enviado recusado e estornado |
| pix.received | Pix recebido de outro cliente da plataforma |
Cabecalhos: X-Webhook-Event, X-Webhook-Id, X-Webhook-Timestamp e X-Webhook-Signature: sha256=<hex>. A assinatura e o HMAC-SHA256 de timestamp + "." + corpo bruto com o segredo exibido ao criar o webhook.
// Node.js
const crypto = require('crypto');
function valido(req, rawBody, secret) {
const ts = req.headers['x-webhook-timestamp'];
const esperado = 'sha256=' + crypto.createHmac('sha256', secret).update(ts + '.' + rawBody).digest('hex');
const a = Buffer.from(esperado), b = Buffer.from(req.headers['x-webhook-signature'] || '');
return a.length === b.length && crypto.timingSafeEqual(a, b) && Math.abs(Date.now()/1000 - ts) < 300;
}
Responda com HTTP 2xx em ate 10 segundos. Falhas sao reenviadas com espera crescente, ate 8 tentativas. Use X-Webhook-Id para ignorar duplicidades.
Respostas de erro seguem o formato {"statusCode":400,"message":"..."}. 401: chave invalida. 403: conta bloqueada ou limite de requisicoes. 404: recurso nao encontrado.
AX Tech ยท Tecnologia AX Tech