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_idHeaders
| Header | Type | Obligatoire | Description |
|---|---|---|---|
Authorization | String | Oui | ApiKey {client_id}:{client_secret} |
Path Parameters
| Paramètre | Type | Obligatoire | Description |
|---|---|---|---|
e2e_id | String | Oui | End-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
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) :
{
"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 (
transactionsviaHelpers.format_external_transaction/1) : shape de l'exemple ci-dessus, avecstatus: "settled". 18 champs (y comprispayer_document,recipient_document,payer_ispb,payer_bank_name,counterparty_name). Même shape retourné parGET /transactions/tag/:tag. - PIX OUT en cours (
outbound_requests) : shape réduit, avecstatus: "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 paspayer_document,payer_ispbnicompleted_at. - Transaction rejetée (
failed_transactions) : shape d'échec, avecstatus: "failed". Ajoutereason_code(uppercase BACEN ou lowercase provider),reason_description(en anglais),failure_reason(chaîne brute),failed_at, etrecipient: {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 sources — outbound_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 :
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
{
"worked": false,
"detail": "Transacao nao encontrada para E2E ID: E37839059202603091530abcdef01"
}