Consultar Cash-Out por E2E ID
Consulta una transaccion PIX por el End-to-End ID, el identificador unico atribuido por el BACEN en el Sistema de Pagos Instantaneos (SPI).
Endpoint
GET /api/external/transactions/e2e/:e2e_idHeaders
| Header | Tipo | Obligatorio | Descripcion |
|---|---|---|---|
Authorization | String | Si | ApiKey {client_id}:{client_secret} |
Path Parameters
| Parametro | Tipo | Obligatorio | Descripcion |
|---|---|---|---|
e2e_id | String | Si | End-to-End ID (formato: E{ISPB}{YYYYMMDDHHmm}{secuencial}) |
Formato del E2E ID
El End-to-End ID sigue el estandar BACEN: E + ISPB (8 digitos) + fecha/hora (12 digitos) + secuencial. Ejemplo: E37839059202603091530abcdef01. El ISPB 37839059 identifica a Owem Pay.
Ejemplo
curl -X GET https://api.owem.com.br/api/external/transactions/e2e/E37839059202603091530abcdef01 \
-H "Authorization: ApiKey $CLIENT_ID:$CLIENT_SECRET"Respuesta de Exito -- 200
Para una transaccion liquidada (tabla transactions):
{
"worked": true,
"data": {
"id": "c7f3a8b12d4e4f6a9c1b3e5f7a9b1d3e",
"transaction_id": "PIXOUT20260309a1b2c3d4e5f6",
"end_to_end_id": "E37839059202603091530abcdef01",
"external_id": "order-9876",
"type": "pix",
"direction": "outbound",
"status": "settled",
"amount": 300000,
"fee_amount": 350,
"net_amount": 300350,
"description": "Pagamento fornecedor",
"counterparty_name": "Joao Silva",
"recipient_key": "12345678901",
"payer_document": "37839059000188",
"recipient_document": "12345678901",
"payer_ispb": "37839059",
"payer_bank_name": "Owem Pay",
"created_at": "2026-03-09T15:30:00Z",
"completed_at": "2026-03-09T15:30:02Z"
}
}El endpoint GET /transactions/e2e/:e2e_id busca en 3 fuentes en el siguiente orden: (1) transactions liquidadas; (2) outbound_requests en curso (PIX OUT aun procesando); (3) failed_transactions rechazadas. No busca en qrcodes — para localizar QRs use GET /transactions/:id con el tx_id del QR, o GET /transactions/ref/:external_id con el external_id que usted atribuyo en la creacion.
La estructura de la respuesta varia conforme a la fuente encontrada — hay 3 shapes distintos:
- Transaccion liquidada (
transactionsviaHelpers.format_external_transaction/1): shape del ejemplo arriba, constatus: "settled". 18 campos (incluyendopayer_document,recipient_document,payer_ispb,payer_bank_name,counterparty_name). Mismo shape retornado porGET /transactions/tag/:tag. - PIX OUT en curso (
outbound_requests): shape reducido, constatus: "processing". Campos:status,transaction_id,end_to_end_id,amount,fee_amount,net_amount,external_id,pix_key,description,type,direction: "outbound",payment_status: "processing",started_at,recipient: {name, key, key_type}. No incluyepayer_document,payer_ispbnicompleted_at. - Transaccion rechazada (
failed_transactions): shape de falla, constatus: "failed". Agregareason_code(uppercase BACEN o lowercase provider),reason_description(en ingles),failure_reason(string bruta),failed_at, yrecipient: {name, key}simplificado.
Vea cada shape completo y los valores posibles del campo status en Consultar Cash-Out por ID -- Valores del campo status. El campo status no tiene vocabulario unico entre fuentes — outbound_requests retorna "processing" mientras transactions con status interno 2 retorna "pending".
Parser defensivo
Siempre enrute el parser por data.status antes de intentar leer campos especificos:
switch (data.status) {
case "settled": // transacciones liquidadas — 18 campos
case "processing": // PIX OUT en curso — sin payer_* ni completed_at
case "failed": // rechazada — con reason_code / reason_description
case "pending": // raro — transactions.status interno 2
}Todos los valores monetarios en unidades base (÷ 10.000 para reales). Campos payer_document, recipient_document, payer_ispb y payer_bank_name aparecen solo en el shape "settled" — son resueltos a partir del metadata de la transaccion y pueden ser null en rows antiguas o cuando la contraparte no envio los datos.
Respuesta de Error -- 404
{
"worked": false,
"detail": "Transacao nao encontrada para E2E ID: E37839059202603091530abcdef01"
}