Realfy Realfy Docs Painel

Produtos

Receber PIX

Crie cobranças PIX dinâmicas com QR Code. Quando o cliente paga, recebemos a confirmação do banco e disparamos um webhook pra você liberar o produto/serviço.

Fluxo completo

  1. POST /v1/deposits → você recebe um QR Code (BR Code + imagem base64)
  2. Mostra o QR pro cliente final (checkout, app, e-mail)
  3. Cliente paga em qualquer banco brasileiro
  4. Banco do cliente → BACEN → nosso provedor → API → seu webhook (deposit.paid)
  5. Você libera o produto/serviço pro cliente
Tempo médio entre o pagamento e seu webhook: < 5 segundos. PIX é instantâneo.

Criar uma cobrança

curl -X POST https://api.realfy.io/v1/deposits \
  -H "X-Api-Key: realfy_live_..." \
  -H "X-Api-Secret: ..." \
  -H "Idempotency-Key: order-1234" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 100.00,
    "reference": "order-1234",
    "customer": {
      "name": "João Silva",
      "document": "12345678900",
      "email": "joao@email.com"
    },
    "metadata": { "orderId": "1234" }
  }'

Body

CampoTipoObrigatórioDescrição
amountnumberSimValor em reais (decimal, 2 casas)
referencestringSimIdentificador único da operação no seu sistema
customer.namestringSimNome do pagador
customer.documentstringSimCPF (11 dígitos) ou CNPJ (14)
customer.emailstringSimE-mail do pagador
customer.phonestringNãoTelefone (E.164 ou DDD+número)
metadataobjectNãoCampos livres pra correlacionar no seu sistema
expirationISO8601NãoQuando o QR expira. Default 24h.

Response (201)

{
  "success": true,
  "data": {
    "id": "dep_4054",
    "amount": 100.00,
    "feeAmount": 1.50,
    "netAmount": 98.50,
    "type": "deposit",
    "method": "pix",
    "currency": "brl",
    "status": "pending",
    "qrCode": {
      "payload": "00020126360014BR.GOV.BCB.PIX...",
      "imageEncoded": "iVBORw0KGgoAAAANSUhEUgAA..."
    },
    "reference": "order-1234",
    "createdAt": "2026-05-26T13:30:00Z"
  }
}

QR pronto pra usar

payload = código copia e cola (BR Code), funciona em qualquer banco.
imageEncoded = imagem QR em base64 pronta pra renderizar (<img src="data:image/png;base64,...">).

Consultar o status

GET https://api.realfy.io/v1/deposits/{id}
# ou
GET https://api.realfy.io/v1/deposits/reference/{sua-reference}

Status possíveis

StatusSignificado
pendingQR criado, aguardando pagamento
paidPago — saldo já caiu na sua conta
expiredQR expirou sem pagamento (default 24h)
failedErro do provedor

Recomendado: webhook em vez de polling

Configure um webhook e não fique fazendo polling em GET /deposits/{id}. Pra cobranças volumosas, polling consome rate limit e gera latência. Webhook chega em < 5s.

Use Idempotency-Key

Toda cobrança nova deve enviar header Idempotency-Key. Se o request der timeout/falha, seu retry com a MESMA key não duplica a cobrança. Ver Idempotency.

Erros comuns

CodeO que aconteceu
VALIDATION_ERRORCampo do body inválido (veja details[])
INVALID_DOCUMENTCPF/CNPJ com formato inválido
DEPOSIT_LIMIT_EXCEEDEDValor acima do limite por transação
DUPLICATE_REFERENCEReference já usada — gere uma única