Skip to content

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/external/pix/cash-out

Headers

HeaderTypeRequiredDescription
AuthorizationStringYesApiKey {client_id}:{client_secret}
Content-TypeStringYesapplication/json
hmacStringYesHMAC-SHA512 signature of the body (hex)
Idempotency-KeyStringNoUnique key to prevent duplicate processing (max 256 chars)

Request Body

FieldTypeRequiredDescription
amountIntegerYesAmount in centavos. R$ 30.00 = 3000
emv_codeStringYesEMV copy and paste code from the PIX QR Code
descriptionStringNoTransfer description (max 140 characters)
external_idStringNoYour system identifier for tracking. Max 128 chars. Only a-zA-Z0-9._:-. Returned in responses and webhooks.

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).

Monetary values

Request values are in centavos (R$ 1.00 = 100). Response values are in base units (R$ 1.00 = 10000). To convert the response to BRL, divide by 10,000. Never use floating point.

Example

bash
curl -X POST https://api.owem.com.br/api/external/pix/cash-out \
  -H "Authorization: ApiKey $CLIENT_ID:$CLIENT_SECRET" \
  -H "Content-Type: application/json" \
  -H "hmac: $HMAC" \
  -d '{
    "amount": 3000,
    "emv_code": "00020126580014br.gov.bcb.pix0136a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d5204000053039865802BR5913NOME RECEBEDOR6008BRASILIA62070503***6304ABCD",
    "description": "Pagamento via QR Code",
    "external_id": "invoice-4521"
  }'

Success Response -- 200

json
{
  "worked": true,
  "transaction_id": "PIXOUT20260309a1b2c3d4e5f6",
  "end_to_end_id": "E37839059202603091530abcdef01",
  "external_id": "invoice-4521",
  "amount": 300000,
  "fee_amount": 350,
  "net_amount": 300350,
  "status": "accepted",
  "detail": "PIX enviado para processamento"
}
FieldTypeDescription
workedBooleantrue indicates the request was accepted
transaction_idStringUnique transaction identifier
end_to_end_idStringEnd-to-End identifier in SPI/BACEN
external_idStringYour identifier, returned as sent. null if not provided
amountIntegerTransfer amount in base units (/ 10,000 for BRL). 300000 = R$ 30.00
fee_amountIntegerFee charged in base units (/ 10,000 for BRL)
net_amountIntegerNet amount (amount + fee) in base units
statusStringaccepted (accepted for processing) or completed (settled)
detailStringDescriptive message

Error Response -- 400

json
{
  "worked": false,
  "detail": "Codigo EMV invalido ou nao reconhecido"
}

Error Response -- 422

json
{
  "worked": false,
  "detail": "Saldo insuficiente"
}

Next Steps

After creating the transfer, track the status via:

Or receive confirmation automatically via Webhook.

Owem Pay Instituição de Pagamento — ISPB 37839059