Get Transaction By ID
Retrieve a single ledger entry by its identifier.
Endpoint
GET /v1/giftCards/transactions/{transactionId}
Headers
| Header | Type | Description | Required |
|---|---|---|---|
X-Client-Id | String | Your client ID | ✅ Yes |
X-Client-Secret | String | Your client secret | ✅ Yes |
Path Parameters
| Parameter | Type | Description | Required |
|---|---|---|---|
transactionId | String (UUID) | Returned when the transaction was created | ✅ Yes |
Example Request
curl --location 'https://stage-platform-exlr8-incentives.exlr8now.com/v1/giftCards/transactions/1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d' \
--header 'X-Client-Id: YOUR_CLIENT_ID' \
--header 'X-Client-Secret: YOUR_CLIENT_SECRET'
Response
Successful Response — 200 OK
{
"success": true,
"data": {
"transactionId": "1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"merchantId": "b1946ac9-2c3d-4e5f-8a7b-6c5d4e3f2a1b",
"giftCardId": "9b2c4d6e-8f0a-4b1c-9d3e-5f7a1b2c3d4e",
"type": "DEBIT",
"amount": 150,
"balanceBefore": 500,
"balanceAfter": 350,
"referenceId": "order-20260825-0042",
"idempotencyKey": "order-20260825-0042-debit-01",
"createdAt": "2026-08-25T11:42:07Z"
}
}
Response Fields
| Field | Type | Description |
|---|---|---|
transactionId | String | Ledger entry identifier |
giftCardId | String | The card this entry belongs to |
type | String | DEBIT, REFUND, VOID or EXPIRE |
amount | Number | Value moved |
balanceBefore | Number | Balance immediately before |
balanceAfter | Number | Balance immediately after |
referenceId | String | Your reference, as supplied |
idempotencyKey | String | The key the transaction was committed under |
createdAt | String | RFC 3339, UTC |
Ledger entries are immutable. Once written, a transaction is never modified — a correction is a new entry of the opposite type.
:::tip Confirming an uncertain outcome
If a redemption timed out and you did not record a transactionId, do not use this endpoint — you have nothing to look it up by. Instead, retry the original call with the same idempotency key and identical parameters: the replay returns the original transaction if it committed, or performs it if it did not. Either way you end up with exactly one debit.
Retry with the same key but different parameters and you will get the original transaction back regardless — which looks like success while moving no money. :::
Error Responses
| Error code | HTTP | Cause |
|---|---|---|
BAD_REQUEST | 400 | transactionId is not a valid UUID |
RECORD_NOT_FOUND | 404 | No such transaction within your merchant |
Related Endpoints
- Create Transaction
- List Transactions — search by card instead