VenoxPay

Documentação da API

URL base: https://api.venoxpay.sbs. Todas as respostas são JSON. Valores em centavos (R$ 49,90 = 4990).

Começar

1. Crie sua conta em app.venoxpay.sbs. 2. Envie documento (frente e verso) e a selfie segurando o documento. 3. Depois da aprovação, abra Integração no painel e gere sua chave de API.

Enquanto a verificação não for aprovada, a API responde 403 kyc_required.

Autenticação

Envie a chave no cabeçalho Authorization. A chave aparece uma única vez ao ser gerada; guarde-a em local seguro e nunca a coloque em código de navegador ou app.

Authorization: Bearer vx_live_xxxxxxxxxxxxxxxxxxxxxxxx

Criar cobrança POST

POST /v1/pix/charges

CampoTipo
amountinteiroValor em centavos. Mínimo 100.
external_idtextoSeu identificador do pedido. Deve ser único na sua conta.
descriptiontextoOpcional, até 140 caracteres.
payer.nametextoNome do pagador.
payer.documenttextoCPF ou CNPJ, só números.
payer.emailtextoE-mail do pagador.
@__raw_block_0__{{ $api }}/v1/pix/charges \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 4990,
    "external_id": "pedido-1042",
    "description": "Pedido 1042",
    "payer": { "name": "Maria Souza", "document": "12345678909", "email": "maria@exemplo.com" }
  }'

Resposta 201:

{
  "id": "01JC3Z8K5Q7R2W9X4N6M1PABCD",
  "external_id": "pedido-1042",
  "status": "pending",
  "amount": 4990,
  "fee": 0,
  "net": 4990,
  "pix": { "copy_paste": "00020126...", "qr_image": null },
  "paid_at": null,
  "created_at": "2026-11-14T15:04:05-03:00"
}

Mostre pix.copy_paste (Pix copia e cola) ou gere o QR Code a partir dele. Status possíveis: pending, paid, expired, failed.

Consultar cobrança GET

GET /v1/pix/charges/{id} devolve o mesmo objeto da criação, com o status atual.

Webhooks

Cadastre uma URL https:// em Integração. Enviamos um POST a cada mudança de status. Responda com qualquer status 2xx; se falhar, tentamos de novo até 6 vezes com intervalo crescente.

{
  "event": "charge.paid",
  "data": { "id": "01JC3Z8K5Q7R2W9X4N6M1PABCD", "external_id": "pedido-1042", "status": "paid", "amount": 4990, "net": 4990 }
}

Eventos: charge.paid, charge.expired, charge.failed. O mesmo evento pode chegar mais de uma vez: use id para ignorar repetidos.

Verifique a assinatura

O cabeçalho X-Venox-Signature é o HMAC SHA-256 do corpo bruto, usando o segredo exibido em Integração.

$body = file_get_contents('php://input');
$esperada = hash_hmac('sha256', $body, $seuSegredo);
if (!hash_equals($esperada, $_SERVER['HTTP_X_VENOX_SIGNATURE'] ?? '')) {
    http_response_code(401); exit;
}

Erros

HTTPerror
401unauthorizedChave ausente ou inválida.
403kyc_requiredConta ainda não aprovada.
404not_foundCobrança não encontrada.
409duplicate_external_idJá existe cobrança com esse external_id.
422validation_errorCampos inválidos; veja details.
429Muitas requisições. Limite: 120 por minuto.
502provider_errorFalha ao gerar o Pix. Tente de novo.

Saldo e saques

Cada Pix pago credita o valor líquido (net) no seu saldo. Peça saques pelo painel, em Saques; o mínimo é R$ 10,00. Nossa equipe envia o Pix para a chave informada.