List transactions

Transactions by playerId, gameId, from, to

GET/v1/transactions

Request

A client sends this request signed with its credential. The example is signed with the test API key test-key-test-key and the test secret docs-example-signing, at the timestamp 1767225600 with the nonce docs-example-nonce-0001; see Authentication and signing.

Headers

  • Name
    X-Api-Key
    Type
    string, required
    Description

    The credential id. Sent together with X-Timestamp, X-Nonce and X-Signature.

  • Name
    X-Signature
    Type
    string, required
    Description

    Base64 HMAC-SHA256 of the method, the path with its query, X-Timestamp, X-Nonce and the lowercase hex SHA-256 of the raw body, joined by newlines. Compared in constant time; 30 seconds of tolerance; each nonce is used once.

  • Name
    X-Timestamp
    Type
    string, required
    Description

    Unix seconds; within 30 seconds of the receiver's clock. Matches ^[0-9]{1,12}$.

  • Name
    X-Nonce
    Type
    string, required
    Description

    Single use per credential, kept until the timestamp plus 30 seconds. At least 16 characters. At most 128 characters.

Query parameters

  • Name
    playerId
    Type
    string
    Description

    The client's own player id, at most 44 characters so that every provider can carry it namespaced. At least 1 character. At most 44 characters.

  • Name
    gameId
    Type
    string (uuid)
    Description

    A UUID v7.

  • Name
    from
    Type
    string (date-time)
    Description

    Inclusive start.

  • Name
    to
    Type
    string (date-time)
    Description

    Exclusive end.

  • Name
    cursor
    Type
    string
    Description

    The opaque next_cursor of the previous page. At least 1 character. At most 512 characters.

  • Name
    limit
    Type
    integer
    Description

    At least 1. At most 200. Defaults to 50.

Request

GET
/v1/transactions
curl "https://aggregator.asteriks.casino/v1/transactions?playerId=player-1001&limit=50" \
  -H "X-Api-Key: test-key-test-key" \
  -H "X-Timestamp: 1767225600" \
  -H "X-Nonce: docs-example-nonce-0001" \
  -H "X-Signature: +seVVs1NtDPnHTFIvgVY5LkiRw1yiA/AgIRmYp7K9KU="
200

Response

The answer is 200 with application/json.

  • Name
    items
    Type
    object[], required
    Description
  • Name
    items[].transaction_id
    Type
    string (uuid) | null, required
    Description

    The wallet transaction_id the entry sent; null for an entry that called no wallet (tombstone, parked entry, compensation that sent nothing).

  • Name
    items[].provider_transaction_id
    Type
    string | null, required
    Description

    Null for the aggregator's own compensations: a compensation reuses the bet's key, so the journal keeps the bet's provider id and the list shows null for it.

  • Name
    items[].operation
    Type
    string, required
    Description

    One of bet, win, rollback, round_finished, compensation, tombstone, retry.

  • Name
    items[].amount
    Type
    integer, required
    Description

    Minor units of the currency. At least 0. At most 9007199254740991.

  • Name
    items[].currency
    Type
    string, required
    Description

    One of TRY, EUR, USD, USDT, TON, BTC, AED, AFN, ALL, AMD, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHE, CHF, CHW, CLF, CLP, CNY, COP, COU, CRC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, FJD, FKP, GBP, GEL, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MRU, MUR, MVR, MWK, MXN, MXV, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SDG, SEK, SGD, SHP, SLE, SOS, SRD, SSP, STN, SVC, SYP, SZL, THB, TJS, TMT, TND, TOP, TTD, TWD, TZS, UAH, UGX, USN, UYI, UYU, UYW, UZS, VED, VES, VND, VUV, WST, XAF, XCD, XCG, XOF, XPF, YER, ZAR, ZMW, ZWG.

  • Name
    items[].outcome
    Type
    string, required
    Description

    The entry's journaled state. One of pending, completed, refused, compensating, compensated, retrying, needs_attention.

  • Name
    items[].balance_reported
    Type
    integer | null, required
    Description

    The balance the client reported, below zero after a rollback of a win; null when it did not answer with one. At least -9007199254740991. At most 9007199254740991.

  • Name
    items[].occurred_at
    Type
    string (date-time), required
    Description
  • Name
    items[].refers_to_transaction_id
    Type
    string (uuid) | null, required
    Description

    The wallet transaction_id of the entry a rollback or compensation reverses; null when that entry called no wallet.

  • Name
    next_cursor
    Type
    string | null, required
    Description

    Null on the last page.

Errors

Each error carries one of these codes in the error object of Errors.

  • Name
    MALFORMED_REQUEST
    Type
    400
    Description

    MALFORMED_REQUEST: a body, query or path value fails its schema.

  • Name
    UNAUTHORIZED
    Type
    401
    Description

    UNAUTHORIZED: a missing or wrong key, signature, timestamp or nonce.

  • Name
    INTERNAL_ERROR
    Type
    503
    Description

    INTERNAL_ERROR, retryable: the page waits until every journal entry or round up to its horizon is committed or rolled back, and one still open after the read's bound refuses the whole page rather than answer part of it. Repeat the same request after Retry-After. Retry-After: The whole seconds to wait before repeating the request. Cache-Control: A refusal is never cached.

Response

{
  "items": [
    {
      "transaction_id": "0199c5a0-0000-7000-8000-000000000004",
      "provider_transaction_id": "transaction-7731",
      "operation": "bet",
      "amount": 2500,
      "currency": "EUR",
      "outcome": "pending",
      "balance_reported": 97500,
      "occurred_at": "2026-10-13T12:00:00Z",
      "refers_to_transaction_id": "0199c5a0-0000-7000-8000-000000000005"
    }
  ],
  "next_cursor": null
}

Was this page helpful?