← Documentação BRPix API

Cobranças Pix

Gerar, consultar, cancelar cobranças Pix In e receber confirmações via webhook.

Ciclo de vida

PENDING → CONFIRMED
PENDING → EXPIRED
PENDING → CANCELLED

Cobranças iniciam como PENDING. Ao ser pago, o adquirente notifica via webhook e o status muda para CONFIRMED. Cobranças não pagas após expires_in segundos tornam-se EXPIRED. É possível cancelar manualmente uma cobrança PENDING antes do vencimento.

Criar cobrança — curl

# Cobrança simples
curl -s -X POST https://api.brpix.app/v1/pix/charges \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <access_token>" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "amount": "49.90",
    "description": "Pedido #9872",
    "expires_in": 3600,
    "external_id": "ORD-9872"
  }'

# Resposta 201
{
  "id": "pix_c_a1b2c3d4",
  "status": "PENDING",
  "amount": "49.90000",
  "currency": "BRL",
  "qr_code": "00020126580014br.gov.bcb.pix...",
  "expires_at": "2026-10-10T15:00:00-03:00",
  "created_at": "2026-10-10T14:00:00-03:00"
}

Criar cobrança com split — curl

# Split: 90% fica na conta, 10% vai para parceiro
curl -s -X POST https://api.brpix.app/v1/pix/charges \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer <access_token>" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
    "amount": "100.00",
    "description": "Venda com comissão",
    "split": [
      { "recipient_org_id": "org_uuid_parceiro", "percentage": "10.00000" }
    ]
  }'
Split: a soma dos percentuais do array split deve ser ≤ 100%. O percentual restante fica na conta geradora. Aceita até N níveis. Apenas org_ids com KYC aprovado podem ser destinatários de split.

Criar cobrança com split — Node.js

import crypto from 'crypto'

const res = await fetch('https://api.brpix.app/v1/pix/charges', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${accessToken}`,
    'Idempotency-Key': crypto.randomUUID(),
  },
  body: JSON.stringify({
    amount: '100.00',
    description: 'Venda #1234',
    split: [
      { recipient_org_id: 'org_abc123', percentage: '15.00000' },
    ],
  }),
})

const charge = await res.json()
console.log(charge.qr_code) // exibir QR Code ao cliente

Webhook de confirmação

Quando o pagamento é confirmado, o BRPix envia um webhook para a URL configurada no painel em Configurações → Webhooks. Configure o endpoint que receberá as notificações.

Payload do webhook

{
  "event": "pix_in.confirmed",
  "charge_id": "pix_c_a1b2c3d4",
  "amount": "49.90000",
  "end_to_end_id": "E12345678202610101400abcdef012",
  "confirmed_at": "2026-10-10T14:07:23-03:00",
  "external_id": "ORD-9872"
}
Idempotência no recebimento: seu endpoint deve ser idempotente — o webhook pode ser entregue mais de uma vez em caso de falha na resposta. Use o charge_id ou end_to_end_id para verificar se já processou.

Consultar cobrança

curl -s https://api.brpix.app/v1/pix/charges/pix_c_a1b2c3d4 \
  -H "Authorization: Bearer <access_token>"

Cancelar cobrança

curl -s -X DELETE https://api.brpix.app/v1/pix/charges/pix_c_a1b2c3d4 \
  -H "Authorization: Bearer <access_token>"

# Resposta 200
{ "cancelled": true }