Skip to main content
POST
https://api.owem.com.br
/
v4
/
i
/
pix
/
in
/
dynamic-qrcode
Generate Dynamic QRCode
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>",
  "externalId": "<string>",
  "metadata": {},
  "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-5c9d2f61a77b5204000053039865802BR5908JOHNSILVA6008SAOPAULO62070503***63041A2B"
  }
}

Purpose

Creates a PIX IN charge with EMV payload (copy-and-paste) and returns the txId. The txId is the unique charge identifier and corresponds to the entryId in the Ledger.

Authentication

Authorization
string
required
Basic Auth required in format: Basic {Base64(API_KEY:API_SECRET)}

Request Body

accountId
string
required
Issuing account (12 digits)
userId
string
deprecated
Deprecated. Will be removed in future versions. The user is automatically identified by the API Key.
amount
number
required
Amount in BRL (> 0, two decimal places)
description
string
Free-form charge description
expirationSeconds
number
default:"86400"
Expiration in seconds. Default: 86400 (24 hours)
payerName
string
deprecated
Deprecated. Payer name. Will be removed in future versions.
payerCpfCnpj
string
deprecated
Deprecated. Payer CPF/CNPJ. Will be removed in future versions.
externalId
string
External identifier from your system to correlate with the transaction
metadata
object
Object with custom data that will be returned in the response and webhook
sameDocument
string
CPF/CNPJ for payer restriction. When provided, only payers whose document (CPF/CNPJ) matches this value will be able to pay this QR Code. Payments from accounts with a different document will be rejected.

Response

requestId
string
UUID for tracking
success
boolean
Operation status
size
number
Number of returned items
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-5c9d2f61a77b5204000053039865802BR5908JOHNSILVA6008SAOPAULO62070503***63041A2B"
  }
}

Status Codes

HTTPDescription
200Charge created
400Invalid parameter (amount, etc.)
401Invalid credentials
403IP not allowlisted
404accountId or userId not found
409Idempotency conflict
429Rate limit exceeded
500Internal error

Request Examples

{
  "accountId": "123456789012",
  "amount": 197.99,
  "description": "Order #12345",
  "expirationSeconds": 86400,
  "externalId": "TX-20260113-QRCODE-001",
  "sameDocument": "41067278893",
  "metadata": {
    "orderId": "12345"
  }
}
Confirm payment: Use GET /v4/i/ledger/entry-id/:txId where txId = entryId.
The returned txId is the identifier for Ledger queries via entry-id.