Visão geral

A API Rhuar é uma API REST para pagamentos PIX. Com ela você cria cobranças (cash-in), faz pagamentos (cash-out), consulta saldo e extrato e recebe webhooks assinados quando um evento ocorre. A integração é server-to-server, autenticada por Bearer Token.

Base URL: https://api.rhuar.com · Todas as requisições devem enviar Accept: application/json.

Procurando a referência sempre atualizada? Veja a documentação JSON viva ou a documentação para LLMs.

Autenticação

Inclua o token em toda requisição protegida:

Authorization: Bearer {access_token}

Obtenha o primeiro token via POST /api/register (cadastro) ou POST /api/login. Crie chaves adicionais nomeadas em POST /api/keys — o token é mostrado uma única vez. Tokens não expiram; revogue em DELETE /api/keys/{id} se comprometidos. Sem token válido, a API responde 401 em JSON.

Cobranças — receber dinheiro (cash-in)

POST /api/deposito — cria uma cobrança PIX.

{ "amount": 100.00, // obrigatório "callback_url": "https://seu.site/webhook", // opcional (anti-SSRF) "expires_in": 5 // opcional, minutos }

A resposta traz txid e brcode (PIX copia-e-cola; gere o QR a partir dele). Quando o pagador paga, a Rhuar confirma com o banco, credita o saldo e dispara o webhook deposito.concluido.

MétodoRotaDescrição
POST/api/depositoCria cobrança PIX
GET/api/deposito/{txid}Consulta uma cobrança
GET/api/depositosLista cobranças (cap 500)

Pagamentos — enviar dinheiro (cash-out)

POST /api/saque — envia um PIX para uma chave.

{ "amount": 50.00, // obrigatório "pix_key": "12345678901", // obrigatório, 11–77 chars "callback_url": "https://seu.site/webhook" }

O saldo (saque + taxa) é reservado de forma atômica antes do envio. Em caso de falha, saque e taxa são estornados automaticamente. A confirmação final chega pelo webhook saque.concluido ou saque.falhou.

MétodoRotaDescrição
POST/api/saqueCria um pagamento PIX
GET/api/saque/{e2e}Consulta um pagamento
GET/api/saquesLista pagamentos (cap 500)

Saldo & extrato

MétodoRotaDescrição
GET/api/saldoSaldo atual da conta
GET/api/extratoExtrato de transações (cap 500)
GET/api/webhook-secretROTACIONA: invalida o anterior e retorna um novo segredo (consultar = perdi o secret)

Webhooks

Quando um evento ocorre, a Rhuar faz um POST assinado para a sua callback_url. Eventos: deposito.concluido, saque.concluido, saque.falhou.

HeaderDescrição
X-Blimx-EventNome do evento
X-Blimx-TimestampUnix timestamp do envio
X-Blimx-Signaturesha256=HMAC-SHA256(timestamp."."body, webhook_secret)

Verifique a assinatura sempre, com comparação de tempo constante, e rejeite timestamps fora de ±300s:

// PHP $expected = 'sha256=' . hash_hmac('sha256', $ts . '.' . $rawBody, $secret); abort_unless(hash_equals($expected, $sig) && abs(time() - (int)$ts) <= 300, 403);
Deduplique por txid (cobrança) e e2e (pagamento) — em caso de retry, o mesmo evento pode chegar mais de uma vez.

Códigos de resposta

CódigoSignificado
200Sucesso
201Recurso criado
401Não autenticado / credenciais inválidas
404Recurso não encontrado
422Validação (inclui saldo insuficiente, SSRF, valor acima do máximo)
429Rate limit excedido
500Erro interno