vellTRDocs

Transactions

Query transaction status, list with filtering and keyset pagination, inspect ledger legs, and export registries.

7 endpoints
GET/v1/transactionsRecommended

List transactions with keyset pagination and rich filters (status, store, customer, date range, amount range).

Request Parameters

NameTypeRequiredDescription
statusstringOptionalFilter by payment status
storeIdstringOptionalFilter by store
customerIdstringOptionalFilter by customer
fromstringOptionalISO 8601 lower bound (createdAt)
tostringOptionalISO 8601 upper bound (createdAt)
amountMinintegerOptionalMinimum amount (kuruş)
amountMaxintegerOptionalMaximum amount (kuruş)
methodstringOptionalPayment method: card or qr
limitintegerOptionalPage size
cursorstringOptionalOpaque 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}Recommended

Transaction 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}/ledgerOptional

The 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/exportsOptional

Queue a PDF or CSV export of filtered transactions. Poll the returned exportId for completion.

Request Parameters

NameTypeRequiredDescription
formatstringRequired"pdf" or "csv"
filtersobjectOptionalSame 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}Optional

Poll 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}/downloadOptional

Stream 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-accessOptional

Merchant-scoped card-vault audit rows (who detokenized which card token, when).

Request Parameters

NameTypeRequiredDescription
fromstringOptionalISO 8601 lower bound
tostringOptionalISO 8601 upper bound
limitintegerOptionalPage size
cursorstringOptionalOpaque 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