Get Transaction by ID
This endpoint retrieves complete details for a specific transaction using its unique identifier. The response includes transaction event history, merchant information, approved and requested amounts, associated payment card details, and any applicable fees. Use this endpoint when you need to inspect or display the full record of a known transaction.
Endpoint
GET /api/transaction/id/{transactionId}
Authentication
Bearer token required. Obtain via:
POST https://api.banking.netevia.dev/api/auth/v2
Include in header: Authorization: Bearer {token}
Token lifetime: 10 minutes. Refresh via POST /api/auth/refresh.
When to use
Use this endpoint when a customer or partner needs to view the full detail of a specific transaction — for example, to investigate a disputed charge, display a receipt, or audit a transaction event history. It is most commonly called after retrieving a transaction ID from a list-transactions response.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
| transactionId | string | Yes | The unique identifier of the transaction to retrieve. |
Response
200 OK
The response is structured around a top-level node object containing the global transaction record. Each transaction may have one or more events accessible via the transactionEvents.edges array.
Top-level
| Field | Type | Description |
|---|---|---|
| node | object | Root transaction node containing metadata and event details. |
| node.externalId | string | External reference identifier for the transaction. |
| node.memo | string | Optional memo or note associated with the transaction. |
| node.financialAccounts | object | Paginated connection of financial accounts involved in the transaction. |
| node.financialAccounts.pageInfo | object | Pagination metadata for the financial accounts connection. |
| node.financialAccounts.pageInfo.startCursor | string | Cursor marking the start of the current page. |
| node.financialAccounts.pageInfo.endCursor | string | Cursor marking the end of the current page. |
| node.financialAccounts.pageInfo.hasNextPage | boolean | Indicates whether additional pages of results exist after this page. |
| node.financialAccounts.pageInfo.hasPreviousPage | boolean | Indicates whether pages of results exist before this page. |
| node.financialAccounts.edges | array | Array of edge objects, each containing a cursor and a transaction node. |
Transaction Event Node (node.financialAccounts.edges[].node.transactionEvents.edges[].node)
| Field | Type | Description |
|---|---|---|
| typename | string | GraphQL type name for this transaction node. |
| id | string | Unique identifier of the transaction event. |
| createdAt | string (date-time) | ISO 8601 timestamp when the transaction event was created. |
| authorizationExpiration | string (date-time) | Timestamp when the authorization expires, if applicable. |
| responseCode | string | Authorization response code returned by the payment network. |
| approvedAmount | object | The amount that was approved for this transaction. |
| approvedAmount.value | integer (int64) | Approved amount in the smallest currency unit (e.g., cents). |
| approvedAmount.currencyCode | string | ISO 4217 currency code for the approved amount (e.g., USD). |
| requestedAmount | object | The amount originally requested for this transaction. |
| requestedAmount.value | integer (int64) | Requested amount in the smallest currency unit (e.g., cents). |
| requestedAmount.currencyCode | string | ISO 4217 currency code for the requested amount (e.g., USD). |
| paymentCard | object | Payment card used for this transaction. |
| paymentCard.id | string | Unique identifier of the payment card. |
| paymentCard.last4 | string | Last four digits of the payment card number. |
| merchantDetails | object | Details about the merchant where the transaction occurred. |
| merchantDetails.name | string | Merchant name. |
| merchantDetails.description | string | Merchant description. |
| merchantDetails.category | string | Merchant category label (e.g., Restaurants). |
| merchantDetails.categoryCode | string | Merchant Category Code (MCC). |
| merchantDetails.countryCodeAlpha3 | string | ISO 3166-1 alpha-3 country code of the merchant (e.g., USA). |
| merchantDetails.merchantId | string | Unique identifier assigned to the merchant. |
| fees | array | List of fees applied to this transaction. |
| fees[].type | string | Type of fee (e.g., SERVICE_FEE). |
| fees[].approvedFeeAmount | object | The fee amount that was approved. |
| fees[].approvedFeeAmount.value | integer (int64) | Approved fee in the smallest currency unit. |
| fees[].approvedFeeAmount.currencyCode | string | ISO 4217 currency code for the approved fee. |
| fees[].requestedFeeAmount | object | The fee amount that was originally requested. |
| fees[].requestedFeeAmount.value | integer (int64) | Requested fee in the smallest currency unit. |
| fees[].requestedFeeAmount.currencyCode | string | ISO 4217 currency code for the requested fee. |
{
"node": {
"externalId": "txn-ext-00123456",
"memo": "Monthly subscription payment",
"financialAccounts": {
"pageInfo": {
"startCursor": "cursor_abc123",
"endCursor": "cursor_abc123",
"hasNextPage": false,
"hasPreviousPage": false
},
"edges": [
{
"cursor": "cursor_abc123",
"node": {
"typename": "CardTransaction",
"transactionEvents": {
"edges": [
{
"node": {
"typename": "CardAuthorization",
"id": "txn_event_0a1b2c3d4e5f",
"createdAt": "2026-06-08T14:22:10Z",
"authorizationExpiration": "2026-06-15T14:22:10Z",
"responseCode": "00",
"approvedAmount": {
"value": 4999,
"currencyCode": "USD"
},
"requestedAmount": {
"value": 4999,
"currencyCode": "USD"
},
"paymentCard": {
"id": "card_7g8h9i0j1k2l",
"last4": "4242"
},
"merchantDetails": {
"name": "Acme Software Inc.",
"description": "Software subscription service",
"category": "Computer Software",
"categoryCode": "5734",
"countryCodeAlpha3": "USA",
"merchantId": "merch_3m4n5o6p7q8r"
},
"fees": [
{
"type": "SERVICE_FEE",
"approvedFeeAmount": {
"value": 50,
"currencyCode": "USD"
},
"requestedFeeAmount": {
"value": 50,
"currencyCode": "USD"
}
}
]
}
}
]
}
}
}
]
}
}
}Error Codes
| Code | When it happens |
|---|---|
| 400 | The transactionId path parameter is malformed or empty. |
| 401 | Token missing, expired, or invalid. |
| 403 | Insufficient permissions to view this transaction. |
| 404 | No transaction found for the provided transactionId. |
| 500 | Internal server error. |
Common Mistakes
- Passing an internal database ID instead of the platform transaction ID — always use the
transactionIdvalue returned by list-transactions or webhook payloads. - Expecting a flat amount field — amounts are returned as objects with
value(integer in smallest currency unit, e.g., cents) andcurrencyCode. Dividevalueby 100 to display dollar amounts. - Ignoring
transactionEvents.edges— a transaction may have multiple events (authorization, clearing, reversal); iterate the edges array to get the full lifecycle. - Treating
authorizationExpirationas the settlement date — this field reflects when the hold expires, not when funds are settled.
Related Endpoints
GET /api/transaction/profile/{profileId}— List all transactions for a customer profileGET /api/transaction/financialaccount/{financialAccountId}— List transactions for a specific financial accountGET /api/transaction/paymentcard/{paymentCardId}— List transactions for a specific payment card
Example
curl -X GET https://api.banking.netevia.dev/api/transaction/id/txn_event_0a1b2c3d4e5f \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json"