---
title: "Read a user’s balance and purchase or ledger history"
method: POST
path: "/v1/cashback/wallet"
tags: ["Cashback"]
---

# Read a user’s balance and purchase or ledger history

`POST /v1/cashback/wallet`

## Request

- Base URL: `https://api.openstock.sh`
- URL: `https://api.openstock.sh/v1/cashback/wallet`
- Auth: HTTP bearer

Returns the authenticated partner’s user wallet. mode=sandbox is the default and reads a separate simulated balance and history, never real funds. Amounts are integer hundredths (scale=2); divide by 100. Available balance is USD. Purchase commissions retain the reported currency and are provisional until the network pays and the 30-day hold ends. Refunds and corrections can reduce the balance. No aggregate pending balance is returned across currencies. Choose view=purchases or transactions; continue with next_cursor. A zero balance does not mean a click failed: network reports can be delayed. This endpoint records earnings; it does not withdraw funds.

## Request body

- CashbackWalletRequest
  - `mode` 'live' | 'sandbox'
  - `user_id` string, required: Opaque user ID within your authenticated partner account. Do not send email addresses.
  - `view` 'purchases' | 'transactions'
  - `limit` integer
  - `cursor` string

## Response `200`

Available balance and one page of the requested history.

- CashbackWalletResponse
  - `mode` 'live' | 'sandbox', required
  - `balance` object, required
    - `amount` integer, required
    - `currency` string, required
    - `scale` 2, required
  - `items` union[], required
    - union
      - object
        - `id` string, required
        - `merchant_id` string, required
        - `order_id` string, required
        - `status` string, required
        - `purchased_at` string, required
        - `order_amount` object, required
          - `amount` integer, required
          - `currency` string, required
          - `scale` 2, required
        - `network_status` string, nullable, required
        - `commission` object, nullable, required
          - `amount` integer, required
          - `currency` string, required
          - `scale` 2, required
        - `credited_amount` object, nullable, required
          - `amount` integer, required
          - `currency` string, required
          - `scale` 2, required
      - object
        - `id` string, required
        - `type` string, required
        - `amount` object, required
          - `amount` integer, required
          - `currency` string, required
          - `scale` 2, required
        - `purchase_id` string, required
        - `merchant_id` string, required
        - `order_id` string, required
        - `created_at` string, required
  - `next_cursor` string, nullable, required

## Other responses

- `400`: The request could not be completed. Retry temporary failures with the same idempotency key.
- `401`: The request could not be completed. Retry temporary failures with the same idempotency key.
- `403`: The request could not be completed. Retry temporary failures with the same idempotency key.
- `409`: The request could not be completed. Retry temporary failures with the same idempotency key.
- `503`: The request could not be completed. Retry temporary failures with the same idempotency key.

## Changes

- **2026-11-02** `e3af2bb31234`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/openstock/apis/openstock-api/changes/v1/cashback/wallet/post.md)

---

[API](https://skmtc.dev/openstock/apis/openstock-api.md) - [All operations](https://skmtc.dev/openstock/apis/openstock-api/llms.txt) - [OpenAPI document](https://skmtc.dev/openstock/apis/openstock-api/revisions/e3af2bb31234?raw)
