Pular para o conteúdo principal

Visão Geral

O fluxo de PIX IN permite que você receba pagamentos na sua conta Owem. Existem duas formas principais:
  1. QR Code Dinâmico - Você gera um QR Code com valor específico
  2. Chave PIX - Cliente paga diretamente para sua chave
O QR Code dinâmico é a forma mais comum e recomendada para e-commerce e pagamentos pontuais.

Fluxo Completo

Passo 1: Gerar QR Code

curl -X POST "https://api.owem.com.br/v4/i/pix/in/dynamic-qrcode" \
  -u "API_KEY:API_SECRET" \
  -H "Content-Type: application/json" \
  -d '{
    "accountId": "123456789012",
    "userId": "usr_abc123def",
    "amount": 150.00,
    "description": "Pedido #12345",
    "expirationSeconds": 3600,
    "payerName": "JOAO DA SILVA",
    "payerCpfCnpj": "12345678900"
  }'
Bradesco e Caixa Econômica Federal exigem payerName e payerCpfCnpj. Sem esses campos, o QR não funciona nesses bancos.

Passo 2: Exibir QR Code

Use o campo emv retornado para gerar a imagem do QR Code. Exemplo com biblioteca qrcode:
import QRCode from "qrcode"

// Gera imagem base64 do QR Code
const qrImage = await QRCode.toDataURL(data.data.emv)

// Usa no HTML
document.getElementById("qrcode").src = qrImage

Passo 3: Aguardar Pagamento

Existem duas formas de saber quando o pagamento foi realizado:

Opção A: Webhook (Recomendado)

Configure um webhook para o evento pix_in:qrcode_paid. Você receberá uma notificação assim que o pagamento for confirmado.
{
  "webhookId": "wh_abc123",
  "event": "pix_in:qrcode_paid",
  "object": {
    "endToEndId": "E123456789...",
    "entryId": "abc123def456...",
    "status": "succeeded",
    "grossAmount": 150.0,
    "netAmount": 149.85
  }
}

Opção B: Polling

Consulte o status periodicamente usando o txId:
curl -X GET "https://api.owem.com.br/v4/i/ledger/entry-id/{txId}" \
  -u "API_KEY:API_SECRET"
O txId retornado na criação do QR é o mesmo que o entryId no Ledger.

Passo 4: Confirmar no Ledger

Após receber o webhook ou detectar o pagamento, confirme no Ledger:
curl -X GET "https://api.owem.com.br/v4/i/ledger/entry-id/{txId}" \
  -u "API_KEY:API_SECRET"
Verifique:
  • status: "succeeded" → Pagamento confirmado
  • netAmount → Valor líquido creditado

Estornar um Pagamento

Se precisar devolver o valor ao pagador:
curl -X POST "https://api.owem.com.br/v4/i/pix/in/refund/{endToEndId}" \
  -u "API_KEY:API_SECRET"
Estornos estão sujeitos a regras do arranjo PIX e podem ter prazos limitados.

Boas Práticas

Aumenta a taxa de conversão em até 10% e garante compatibilidade com todos os bancos.
Webhooks são mais eficientes e notificam instantaneamente. Polling consome mais recursos e tem delay.
O Ledger é a fonte de verdade. Sempre confirme o status antes de liberar produtos/serviços.
Para checkouts, use 10-30 minutos. Para boletos virtuais, use 24-48 horas.

Eventos de Webhook Relacionados

EventoQuando ocorre
pix_in:qrcode_paidPagamento de QR Code confirmado
pix_in:creditedCrédito via chave PIX
pix_in:refunded_processingEstorno iniciado

Próximos Passos