1. API Reference
Chizverse
  • ChizVerse Developer Docs
    • Getting Started
    • API Reference
      • Overview
      • Chizmis Authentication
        • Exchange for a ChizVerse Bearer
        • Hosted Client Login
        • Hosted Client Registration
        • Logout
        • Get Current Account
        • Validate Client Application
        • Login with Existing Session
        • Verify Session Key
      • Activity Tracking
        • Create Launch
        • Create Tracked Session
        • Get Session Checkpoint
        • Get Saved Player Progress
        • Ingest Event Batch
        • Get Game Leaderboard
      • ChizPay Wallet & Transactions
        • Get Wallet by Account ID
        • Transfer Wallet Balance
        • Get Wallet Transaction History
        • Debit Wallet
        • Credit Wallet
        • Get Game Ledger
    • SDK
    • Schemas
      • ExchangeForAChizVerseBearerResponse
      • ExchangeForAChizVerseBearerRequest
      • LogoutResponse
      • LogoutRequest
      • GetCurrentAccountResponse
      • ValidateClientApplicationResponse
      • LoginWithExistingSessionResponse
      • LoginWithExistingSessionRequest
      • VerifySessionKeyResponse
      • CreateLaunchResponse
      • CreateLaunchRequest
      • CreateTrackedSessionResponse
      • CreateTrackedSessionRequest
      • GetSessionCheckpointResponse
      • GetSavedPlayerProgressResponse
      • IngestEventBatchResponse
      • IngestEventBatchRequest
      • GetGameLeaderboardResponse
      • GetWalletByAccountIDResponse
      • TransferWalletBalanceResponse
      • TransferWalletBalanceRequest
      • GetWalletTransactionHistoryResponse
      • DebitWalletResponse
      • DebitWalletRequest
      • CreditWalletResponse
      • CreditWalletRequest
      • GetGameLedgerResponse
  1. API Reference

ChizPay Wallet & Transactions API

BASE API: https://api.chizmis.com
ChizPay is a centralized wallet and ledger service. Wallet balances are stored by ChizPay, and every balance movement is recorded as an internal ledger transaction. Game integrations should use stable referenceNumber values for idempotency and debitTransactionId to link credits back to the debit they settle.

Security Model#

Protected endpoints require authorization: Bearer <token>.
Write endpoints that move funds require replay-protected request fields:
NameTypeRequiredDescription
noncestringYesUnique one-time request ID. Never reuse a nonce.
timestampnumberYesEpoch milliseconds. Requests outside the allowed time window are rejected.
signaturestringYesHMAC or server-issued request signature used to validate request integrity.
The signature proves request integrity for the API call. It is not derived from player credentials and does not authorize external settlement.

Wallet Model#

{
  id: number
  accountId: number
  balance: number
  isActive: boolean
  account?: {
    id: number
    firstName?: string | null
    lastName?: string | null
    email?: string | null
    avatar?: string | null
  }
  createdAt: string
  updatedAt: string
}

Wallet APIs#

Get Wallet by Account ID#

Retrieves the centralized wallet state for a player.

Method & URL#

GET /chizpay/v1.0/wallets/by-account/:accountId

Headers#

NameTypeRequiredDescription
authorizationstringYesBearer access token. Example: Bearer <token>.

Response Example#

{
  "success": true,
  "response": {
    "id": 9123,
    "accountId": 67890,
    "balance": 2500,
    "isActive": true,
    "account": {
      "id": 67890,
      "firstName": "Juan",
      "lastName": "Dela Cruz",
      "email": "juan@example.com",
      "avatar": "https://cdn.example.com/avatar.png"
    },
    "createdAt": "2026-05-06T10:00:00.000Z",
    "updatedAt": "2026-05-06T10:15:00.000Z"
  }
}

Error Responses#

StatusMeaningExample Message
400Invalid accountId formatAccount ID is required
401UnauthorizedUnauthorized
404Wallet not foundWallet not found for the provided account ID

Wallet Transaction APIs#

Transfer Wallet Balance#

Transfers balance from one user wallet to another through paired internal ledger rows.

Method & URL#

POST /chizpay/v1.0/wallet-transactions

Headers#

NameTypeRequiredDescription
authorizationstringYesBearer access token.

Request Body#

NameTypeRequiredDescription
senderAccountIdnumberYesAccount ID of the sender.
receiverAccountIdnumberYesAccount ID of the recipient.
amountnumberYesAmount to transfer. Must be greater than 0.
referenceNumberstringNoIdempotency or business reference. If omitted, ChizPay generates one.
noncestringYesUnique one-time nonce.
timestampnumberYesRequest timestamp in epoch milliseconds.
signaturestringYesRequest integrity signature.
{
  "senderAccountId": 1001,
  "receiverAccountId": 2002,
  "amount": 50,
  "referenceNumber": "transfer_20260506_0001",
  "nonce": "b3d9a8f2-7fb2-4f45-a22a-2c52b602ef74",
  "timestamp": 1778062500000,
  "signature": "hmac-sha256:5a7f..."
}

Response Example#

{
  "success": true,
  "response": {
    "senderTx": {
      "id": 50101,
      "accountId": 1001,
      "walletId": 9123,
      "type": "SEND",
      "bound": "OUT",
      "amount": 50,
      "status": "COMPLETED",
      "referenceNumber": "transfer_20260506_0001"
    },
    "receiverTx": {
      "id": 50102,
      "accountId": 2002,
      "walletId": 8450,
      "type": "RECEIVE",
      "bound": "IN",
      "amount": 50,
      "status": "COMPLETED",
      "referenceNumber": "transfer_20260506_0001"
    }
  }
}

Get Wallet Transaction History#

Returns paginated wallet transactions for a user.

Method & URL#

GET /chizpay/v1.0/wallet-transactions/history/:accountId

Query Parameters#

NameTypeRequiredDescription
pagenumberNoPage number starting at 1.
limitnumberNoRows per page.
typestringNoFilter by transaction type.
boundstringNoFilter by IN or OUT.
statusstringNoFilter by transaction status.

Response Example#

{
  "success": true,
  "response": {
    "rows": [
      {
        "id": 50102,
        "accountId": 2002,
        "senderAccountId": 1001,
        "receiverAccountId": 2002,
        "walletId": 8450,
        "type": "RECEIVE",
        "bound": "IN",
        "amount": 50,
        "status": "COMPLETED",
        "referenceNumber": "transfer_20260506_0001",
        "createdAt": "2026-05-06T10:15:00.000Z"
      }
    ],
    "count": 1,
    "filters": {
      "bound": "IN",
      "type": "RECEIVE",
      "status": "COMPLETED"
    }
  }
}

Game Transaction API#

Debit Wallet#

Debits a user's wallet for a game stake, entry fee, purchase, or round cost.

Method & URL#

POST /chizpay/v1.0/wallet-transactions/debit

Request Body#

NameTypeRequiredDescription
gameIdstringYesGame identifier.
gameSessionstringYesGame Manager session or round identifier.
accountIdnumberYesAccount whose wallet will be debited.
amountnumberYesAmount to debit.
referenceNumberstringYesIdempotency key for this debit.
descriptionstringNoHuman-readable ledger description.
metadataobjectNoGame context stored with the ledger row.
noncestringYesUnique one-time nonce.
timestampnumberYesRequest timestamp in epoch milliseconds.
signaturestringYesRequest integrity signature.
{
  "gameId": "game-slots-01",
  "gameSession": "sess_123",
  "accountId": 1001,
  "amount": 50,
  "referenceNumber": "debit_sess_123_round_12",
  "description": "Round stake",
  "metadata": {
    "round": 12,
    "betType": "STANDARD"
  },
  "nonce": "2993f3b0-84aa-4dc3-9599-4f277631f9e8",
  "timestamp": 1778063100000,
  "signature": "hmac-sha256:03ac..."
}

Response Example#

{
  "success": true,
  "response": {
    "transactionId": "debit_sess_123_round_12",
    "debitTx": {
      "id": 80101,
      "walletId": 9123,
      "gameId": "game-slots-01",
      "gameSession": "sess_123",
      "accountId": 1001,
      "type": "DEBIT",
      "bound": "OUT",
      "amount": 50,
      "referenceNumber": "debit_sess_123_round_12",
      "status": "COMPLETED"
    }
  }
}

Credit Wallet#

Credits a user's wallet for a win, refund, reward, or rollback and links the credit to the debit being settled.

Method & URL#

POST /chizpay/v1.0/wallet-transactions/credit

Request Body#

NameTypeRequiredDescription
gameIdstringYesGame identifier.
gameSessionstringYesGame Manager session or round identifier.
accountIdnumberYesAccount whose wallet will be credited.
amountnumberYesAmount to credit.
debitTransactionIdnumberYesExisting DEBIT ledger row ID.
referenceNumberstringYesIdempotency key for this credit.
descriptionstringNoHuman-readable ledger description.
metadataobjectNoGame context stored with the ledger row.
noncestringYesUnique one-time nonce.
timestampnumberYesRequest timestamp in epoch milliseconds.
signaturestringYesRequest integrity signature.
{
  "gameId": "game-slots-01",
  "gameSession": "sess_123",
  "accountId": 1001,
  "amount": 95,
  "debitTransactionId": 80101,
  "referenceNumber": "credit_sess_123_round_12",
  "description": "Round payout",
  "metadata": {
    "round": 12,
    "result": "WIN"
  },
  "nonce": "52663c0d-6f42-4baf-8a45-3951d2ff89f5",
  "timestamp": 1778063220000,
  "signature": "hmac-sha256:85df..."
}

Response Example#

{
  "success": true,
  "response": {
    "transactionId": "credit_sess_123_round_12",
    "creditTx": {
      "id": 80102,
      "walletId": 9123,
      "gameId": "game-slots-01",
      "gameSession": "sess_123",
      "accountId": 1001,
      "type": "CREDIT",
      "bound": "IN",
      "amount": 95,
      "debitTransactionId": 80101,
      "referenceNumber": "credit_sess_123_round_12",
      "status": "COMPLETED"
    }
  }
}

Get Game Ledger#

Returns paginated debit and credit ledger entries for a game.

Method & URL#

GET /chizpay/v1.0/wallet-transactions/ledger/:gameId

Query Parameters#

NameTypeRequiredDescription
gameSessionstringNoFilter by tracked session or round.
accountIdnumberNoFilter by player.
typeenum(DEBIT, CREDIT)NoFilter by ledger type.
statusstringNoFilter by status.
pagenumberNoPage number.
limitnumberNoRows per page.

Response Example#

{
  "success": true,
  "response": {
    "rows": [
      {
        "id": 80101,
        "walletId": 9123,
        "gameId": "game-slots-01",
        "gameSession": "sess_123",
        "accountId": 1001,
        "type": "DEBIT",
        "bound": "OUT",
        "amount": 50,
        "status": "COMPLETED",
        "referenceNumber": "debit_sess_123_round_12",
        "debitTransactionId": null
      },
      {
        "id": 80102,
        "walletId": 9123,
        "gameId": "game-slots-01",
        "gameSession": "sess_123",
        "accountId": 1001,
        "type": "CREDIT",
        "bound": "IN",
        "amount": 95,
        "status": "COMPLETED",
        "referenceNumber": "credit_sess_123_round_12",
        "debitTransactionId": 80101
      }
    ],
    "count": 2,
    "filters": {
      "gameSession": "sess_123",
      "accountId": 1001,
      "type": null,
      "status": null
    }
  }
}
Modified at 2026-07-30 06:57:16
Previous
Get Game Leaderboard
Next
Get Wallet by Account ID
Built with