Transactions
Query transaction status, list with filtering and keyset pagination, inspect ledger legs, and export registries.
7 endpoints
GET
/v1/transactionsRecommendedList transactions with keyset pagination and rich filters (status, store, customer, date range, amount range).
Request Parameters
| Name | Type | Required | Description |
|---|---|---|---|
status | string | Optional | Filter by payment status |
storeId | string | Optional | Filter by store |
customerId | string | Optional | Filter by customer |
from | string | Optional | ISO 8601 lower bound (createdAt) |
to | string | Optional | ISO 8601 upper bound (createdAt) |
amountMin | integer | Optional | Minimum amount (kuruş) |
amountMax | integer | Optional | Maximum amount (kuruş) |
method | string | Optional | Payment method: card or qr |
limit | integer | Optional | Page size |
cursor | string | Optional | Opaque keyset cursor |
JSONResponse Example
{
"items": [
{
"id": "pay_1a2b3c4d5e6f",
"storeId": "sto_5a6b7c8d",
"transactionId": "ORDER-2026-001",
"status": "captured",
"amount": 15000,
"currency": "TRY",
"refundsCount": 0,
"chargebacksCount": 0,
"createdAt": "2026-04-13T10:00:00Z"
}
],
"nextCursor": "eyJjcmVhdGVkQXQiOiIyMDI2LTA0LTEzVDEwOjAwOjAwWiJ9"
}GET
/v1/transactions/{id}RecommendedTransaction detail with nested refunds and chargebacks history.
JSONResponse Example
{
"id": "pay_1a2b3c4d5e6f",
"storeId": "sto_5a6b7c8d",
"status": "captured",
"amount": 15000,
"currency": "TRY",
"netAmount": 14551,
"commission": 449,
"refunds": [],
"chargebacks": [],
"createdAt": "2026-04-13T10:00:00Z"
}GET
/v1/transactions/{id}/ledgerOptionalThe balanced double-entry ledger legs posted for a transaction, joined with account types.
JSONResponse Example
{
"items": [
{
"accountType": "buyer_pending",
"direction": "DEBIT",
"amount": 15000,
"currency": "TRY"
},
{
"accountType": "merchant_reserve",
"direction": "CREDIT",
"amount": 14551,
"currency": "TRY"
},
{
"accountType": "platform_commission",
"direction": "CREDIT",
"amount": 449,
"currency": "TRY"
}
]
}POST
/v1/transactions/exportsOptionalQueue a PDF or CSV export of filtered transactions. Poll the returned exportId for completion.
Request Parameters
| Name | Type | Required | Description |
|---|---|---|---|
format | string | Required | "pdf" or "csv" |
filters | object | Optional | Same filters as list: {storeId?, status?, from?, to?, amountMin?, amountMax?, customerId?, paymentId?} |
JSONRequest Example
{
"format": "csv",
"filters": {
"from": "2026-04-01T00:00:00Z",
"to": "2026-04-30T23:59:59Z",
"status": "captured"
}
}JSONResponse Example
{
"exportId": "exp_3c4d5e6f7081",
"status": "queued"
}GET
/v1/transactions/exports/{exportId}OptionalPoll the status of a queued export.
JSONResponse Example
{
"exportId": "exp_3c4d5e6f7081",
"status": "ready",
"downloadUrl": "/v1/transactions/exports/exp_3c4d5e6f7081/download",
"rowCount": 128
}GET
/v1/transactions/exports/{exportId}/downloadOptionalStream the generated PDF or CSV. 409 until the export is ready.
JSONResponse Example
{
"note": "Streams application/pdf or text/csv; no JSON body."
}GET
/v1/transactions/card-accessOptionalMerchant-scoped card-vault audit rows (who detokenized which card token, when).
Request Parameters
| Name | Type | Required | Description |
|---|---|---|---|
from | string | Optional | ISO 8601 lower bound |
to | string | Optional | ISO 8601 upper bound |
limit | integer | Optional | Page size |
cursor | string | Optional | Opaque keyset cursor |
JSONResponse Example
{
"items": [
{
"op": "detokenize",
"cardToken": "tok_9f8e7d6c5b4a",
"callerService": "payment-engine",
"result": "ok",
"createdAt": "2026-04-13T10:00:01Z"
}
]
}Category Summary
Total Endpoints
7
Base Domain
api.pay.kvell.group