PIX Cash Out Copy and Paste
Performs a PIX transfer using the EMV code (copy and paste) extracted from a PIX QR Code.
Endpoint
POST /api/v2/external/pix/cash-outHeaders
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | String | Yes | Bearer {access_token} |
| Content-Type | String | Yes | application/json |
| hmac | String | Yes | HMAC-SHA512 signature of the body (hex) |
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
amount | Integer | Yes | Amount in cents. BRL 100.00 = 10000 |
emv_code | String | Yes | EMV copy and paste code from the PIX QR Code |
description | String | No | Transfer description (max. 140 characters) |
Copy and Paste Code
The emv_code field accepts the full EMV code copied from a PIX QR Code. The API automatically extracts the PIX key, recipient data, and the original charge amount from the EMV payload.
Transfer amount
The amount field must be provided even when the QR Code already contains a value. The API validates that the provided amount is compatible with the QR Code (static or dynamic).
Example
bash
curl -X POST https://api.owem.com.br/api/v2/external/pix/cash-out \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-H "hmac: $HMAC" \
-d '{
"amount": 10000,
"emv_code": "00020126580014br.gov.bcb.pix0136a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d5204000053039865802BR5913NOME RECEBEDOR6008BRASILIA62070503***6304ABCD",
"description": "Payment via QR Code"
}'Success Response — 200
json
{
"worked": true,
"transaction_id": "PIXOUT20260309a1b2c3d4e5f6",
"end_to_end_id": "E37839059202603091530abcdef01",
"amount": 10000,
"fee": 0,
"status": "processing",
"detail": "PIX sent for processing"
}| Field | Type | Description |
|---|---|---|
worked | Boolean | true indicates the request was accepted |
transaction_id | String | Unique transaction identifier |
end_to_end_id | String | End-to-End identifier in SPI/BACEN |
amount | Integer | Transfer amount in cents |
fee | Integer | Fee charged in cents |
status | String | Initial status: processing |
detail | String | Descriptive message |
Error Response — 400
json
{
"worked": false,
"detail": "Invalid or unrecognized EMV code"
}Error Response — 422
json
{
"worked": false,
"detail": "Insufficient balance"
}Next Steps
After creating the transfer, track the status via:
Or receive confirmation automatically via Webhook.