Skip to content

Consulter Cash-Out par E2E ID

Consultez une transaction PIX par son End-to-End ID, l'identifiant unique attribué par le BACEN dans le Système de Paiements Instantanés (SPI).

Endpoint

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

Headers

HeaderTypeObligatoireDescription
AuthorizationStringOuiApiKey {client_id}:{client_secret}

Path Parameters

ParamètreTypeObligatoireDescription
e2e_idStringOuiEnd-to-End ID (format : E{ISPB}{YYYYMMDDHHmm}{séquentiel})

Format du E2E ID

Le End-to-End ID suit le standard BACEN : E + ISPB (8 chiffres) + date/heure (12 chiffres) + séquentiel. Exemple : E37839059202603091530abcdef01. L'ISPB 37839059 identifie Owem Pay.

Exemple

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

Réponse de succès -- 200

Pour une transaction liquidée (table 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": "Paiement fournisseur",
    "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"
  }
}

L'endpoint GET /transactions/e2e/:e2e_id cherche dans 3 sources dans l'ordre suivant : (1) transactions liquidées ; (2) outbound_requests en cours (PIX OUT encore en traitement) ; (3) failed_transactions rejetées. Il ne cherche pas dans qrcodes — pour localiser des QRs, utilisez GET /transactions/:id avec le tx_id du QR, ou GET /transactions/ref/:external_id avec l'external_id que vous avez attribué à la création.

La structure de la réponse varie selon la source trouvée — il y a 3 shapes distincts :

  • Transaction liquidée (transactions via Helpers.format_external_transaction/1) : shape de l'exemple ci-dessus, avec status: "settled". 18 champs (y compris payer_document, recipient_document, payer_ispb, payer_bank_name, counterparty_name). Même shape retourné par GET /transactions/tag/:tag.
  • PIX OUT en cours (outbound_requests) : shape réduit, avec status: "processing". Champs : 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}. N'inclut pas payer_document, payer_ispb ni completed_at.
  • Transaction rejetée (failed_transactions) : shape d'échec, avec status: "failed". Ajoute reason_code (uppercase BACEN ou lowercase provider), reason_description (en anglais), failure_reason (chaîne brute), failed_at, et recipient: {name, key} simplifié.

Voir chaque shape complet et les valeurs possibles du champ status dans Consulter Cash-Out par ID -- Valeurs du champ status. Le champ status n'a pas de vocabulaire unique entre les sourcesoutbound_requests retourne "processing" alors que transactions avec status interne 2 retourne "pending".

Parser défensif

Routez toujours le parser par data.status avant d'essayer de lire des champs spécifiques :

javascript
switch (data.status) {
  case "settled":    // transactions liquidées — 18 champs
  case "processing": // PIX OUT en cours — sans payer_* ni completed_at
  case "failed":     // rejetée — avec reason_code / reason_description
  case "pending":    // rare — transactions.status interne 2
}

Toutes les valeurs monétaires en unités de base (÷ 10 000 pour reais). Les champs payer_document, recipient_document, payer_ispb et payer_bank_name n'apparaissent que dans le shape « settled » — ils sont résolus à partir du metadata de la transaction et peuvent être null dans les rows anciennes ou quand la contrepartie n'a pas envoyé les données.

Réponse d'erreur -- 404

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

Owem Pay Instituição de Pagamento — ISPB 37839059