Skip to content

按 E2E ID 查询 Cash-Out

通过 End-to-End ID 查询 PIX 交易,该 ID 由 BACEN 在即时支付系统(SPI)中分配。

端点

GET /api/external/transactions/e2e/:e2e_id

请求头

类型必填描述
AuthorizationStringApiKey {client_id}:{client_secret}

路径参数

参数类型必填描述
e2e_idStringEnd-to-End ID(格式:E{ISPB}{YYYYMMDDHHmm}{序号}

E2E ID 格式

End-to-End ID 遵循 BACEN 标准:E + ISPB(8 位数字)+ 日期时间(12 位数字)+ 序号。示例:E37839059202603091530abcdef01。ISPB 37839059 标识 Owem Pay。

示例

bash
curl -X GET https://api.owem.com.br/api/external/transactions/e2e/E37839059202603091530abcdef01 \
  -H "Authorization: ApiKey $CLIENT_ID:$CLIENT_SECRET"

成功响应 -- 200

已结算交易的响应(transactions 表):

json
{
  "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"
  }
}

端点 GET /transactions/e2e/:e2e_id 按以下顺序在 3 个数据源中搜索:(1) 已结算的 transactions;(2) 进行中的 outbound_requests(PIX OUT 仍在处理);(3) 被拒绝的 failed_transactions不会在 qrcodes 中搜索 — 要定位 QR,请使用带 QR tx_idGET /transactions/:id,或使用带您在创建时分配的 external_idGET /transactions/ref/:external_id

响应结构根据找到的源而不同 — 有 3 种不同的结构

  • 已结算交易transactions 通过 Helpers.format_external_transaction/1):上述示例的结构,status: "settled"。18 个字段(包括 payer_documentrecipient_documentpayer_ispbpayer_bank_namecounterparty_name)。与 GET /transactions/tag/:tag 返回的相同结构。
  • 进行中的 PIX OUToutbound_requests):简化结构,status: "processing"。字段:statustransaction_idend_to_end_idamountfee_amountnet_amountexternal_idpix_keydescriptiontypedirection: "outbound"payment_status: "processing"started_atrecipient: {name, key, key_type}不包含 payer_documentpayer_ispbcompleted_at
  • 被拒绝的交易failed_transactions):失败结构,status: "failed"。添加 reason_code(BACEN 大写或 provider 小写)、reason_description(英文)、failure_reason(原始字符串)、failed_at 和简化的 recipient: {name, key}

查看每个结构的完整形式和 status 字段的可能值,请参阅 按 ID 查询 Cash-Out -- status 字段的值status 字段在源之间没有统一的词汇outbound_requests 返回 "processing"transactions 内部状态 2 返回 "pending"

防御性 parser

始终根据 data.status 路由 parser,再尝试读取特定字段:

javascript
switch (data.status) {
  case "settled":    // 已结算交易 — 18 个字段
  case "processing": // 进行中的 PIX OUT — 无 payer_* 和 completed_at
  case "failed":     // 被拒绝 — 带 reason_code / reason_description
  case "pending":    // 罕见 — transactions.status 内部值 2
}

所有货币值以基础单位(÷ 10.000 得到雷亚尔)。字段 payer_documentrecipient_documentpayer_ispbpayer_bank_name 仅出现在 "settled" 结构中 — 从交易 metadata 解析,在旧记录或对方未发送数据时可能为 null

错误响应 -- 404

json
{
  "worked": false,
  "detail": "Transacao nao encontrada para E2E ID: E37839059202603091530abcdef01"
}

Owem Pay Instituição de Pagamento — ISPB 37839059