4 endpoints
Transactions
Everything that came in and went out: payments, refunds, payouts, fees. With the detail of an operation and its timeline.
Endpoint names and descriptions come from the OpenAPI contract, in English — they cannot drift from the API.
In plain English
The single ledger of every dirham that moves — to follow and reconcile.
When to use it
For your accounting reconciliation, for a merchant-facing tracking screen, or to investigate a disputed operation.
How to integrate it
- 1List transactions over a period for your daily reconciliation.
- 2Use the CSV export rather than pagination as soon as the volume passes a few hundred rows.
- 3Open an operation's timeline to understand what happened, step by step.
- GET
/v1/transactions/{operationId}/timelineTransaction timeline - GET
/v1/transactions/{operationId}Retrieve a transaction - GET
/v1/transactions/export.csvExport transactions (CSV) - GET
/v1/transactionsList transactions
Transaction timeline
Returns the synthesized lifecycle timeline (created, authorized, captured, refunded, ...) for a transaction.
| Field | Type | In | Required | Description |
|---|---|---|---|---|
operationId | integer (int64) | path | Required |
Retrieve a transaction
Fetches a single transaction by its operationId.
| Field | Type | In | Required | Description |
|---|---|---|---|---|
operationId | integer (int64) | path | Required |
Export transactions (CSV)
Streams the filtered transactions as a CSV file (up to 10,000 rows). Requires transaction:export.
| Field | Type | In | Required | Description |
|---|---|---|---|---|
status | enum | query | Optional | Values PENDINGPENDING_3DSSUCCESSFAILEDCANCELED |
type | enum | query | Optional | Values PAYMENTREFUNDBILL_PAYMENTBANK_TRANSFER |
method | string | query | Optional | |
from | string (date-time) | query | Optional | |
to | string (date-time) | query | Optional |
List transactions
Lists incoming and outgoing transactions for the key's environment with filters (status, type, method, channel, date range, search). Offset pagination by default; pass limit (+cursor) for keyset cursor pagination on deep scans.
| Field | Type | In | Required | Description |
|---|---|---|---|---|
status | enum | query | Optional | Values PENDINGPENDING_3DSSUCCESSFAILEDCANCELED |
type | enum | query | Optional | Values PAYMENTREFUNDBILL_PAYMENTBANK_TRANSFER |
method | string | query | Optional | |
channel | string | query | Optional | |
settlementId | string | query | Optional | |
search | string | query | Optional | |
from | string (date-time) | query | Optional | |
to | string (date-time) | query | Optional | |
cursor | string | query | Optional | |
limit | integer (int32) | query | Optional | |
pageable | Pageable | query | Required |
A question about integration?
Our technical team supports integrators from the first sandbox call through to go-live.