Skip to main content
POST
/
v4
/
i
/
pix
/
in
/
dynamic-qrcode
Gerar QRCode Dinâmico
curl --request POST \
  --url https://api.owem.com.br/v4/i/pix/in/dynamic-qrcode \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "accountId": "<string>",
  "userId": "<string>",
  "amount": 123,
  "description": "<string>",
  "expirationSeconds": 123,
  "payerName": "<string>",
  "payerCpfCnpj": "<string>",
  "sameDocument": "<string>"
}
'
{
  "requestId": "a9d2f14e-31bc-4d52-9b98-04d92f19fa64",
  "success": true,
  "size": 1,
  "data": {
    "txId": "7c4f3a2d8e1248a6b9c71f45e2",
    "dueDate": "2025-12-25T18:35:22.317Z",
    "emv": "00020101021226840014br.gov.bcb.pix2562qrcode.owem.com.br/pix/32fe91a1-4e62-4d8a-9f1e-5c9d2f61a77b5204000053039865802BR5908JOAOSILVA6008SAOPAULO62070503***63041A2B"
  }
}

Finalidade

Cria uma cobrança PIX IN com payload EMV (copia-e-cola) e retorna o txId. O txId é o identificador único da cobrança e corresponde ao entryId no Ledger.

Autenticação

Authorization
string
required
Basic Auth obrigatório no formato: Basic {Base64(API_KEY:API_SECRET)}

Request Body

accountId
string
required
Conta emissora da cobrança (12 dígitos)
userId
string
deprecated
Deprecado. Será removido em versões futuras. O usuário é identificado automaticamente pela API Key.
amount
number
required
Valor em BRL (> 0, duas casas decimais)
description
string
Descrição livre da cobrança
expirationSeconds
number
default:"86400"
Expiração em segundos. Padrão: 86400 (24 horas)
payerName
string
deprecated
Deprecado. Nome do pagador. Será removido em versões futuras.
payerCpfCnpj
string
deprecated
Deprecado. CPF/CNPJ do pagador. Será removido em versões futuras.
sameDocument
string
CPF/CNPJ para restrição de pagamento por titularidade. Quando informado, apenas pagadores cujo documento (CPF/CNPJ) seja igual ao valor enviado poderão pagar este QR Code. Pagamentos de contas com documento diferente serão rejeitados.

Resposta

requestId
string
UUID para rastreio
success
boolean
Status da operação
size
number
Quantidade de itens retornados
data
object
{
  "requestId": "a9d2f14e-31bc-4d52-9b98-04d92f19fa64",
  "success": true,
  "size": 1,
  "data": {
    "txId": "7c4f3a2d8e1248a6b9c71f45e2",
    "dueDate": "2025-12-25T18:35:22.317Z",
    "emv": "00020101021226840014br.gov.bcb.pix2562qrcode.owem.com.br/pix/32fe91a1-4e62-4d8a-9f1e-5c9d2f61a77b5204000053039865802BR5908JOAOSILVA6008SAOPAULO62070503***63041A2B"
  }
}

Códigos de Status

HTTPDescrição
200Cobrança criada
400Parâmetro inválido (amount, etc.)
401Credenciais inválidas
403IP não allowlisted
404accountId ou userId não encontrado
409Conflito de idempotência
429Rate limit excedido
500Erro interno

Exemplos de Request

{
  "accountId": "123456789012",
  "amount": 197.99,
  "description": "Pedido #12345",
  "expirationSeconds": 86400,
  "externalId": "ext_12345",
  "sameDocument": "41067278893"
  "metadata": {
    "orderId": "12345"
  }
}
Confirmar pagamento: Use GET /v4/i/ledger/entry-id/:txId onde txId = entryId.
O txId retornado é o identificador para consultas no Ledger via entry-id.