---
title: "Store wallet"
description: "Your store wallet pays for each order at the purchase price. Live API keys need a funded or postpaid store wallet."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.cardzone.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Store wallet

This page explains how your store wallet pays for orders, and what happens when the balance is too low.

Cardzone does not charge your customer. You sell to your customers in any way you choose. Cardzone takes the money for each order from your **store wallet**, at the product's `purchase_price`. You recharge the store wallet (add money to it) in the Cardzone dashboard.

> **Recharge and top-up are different things**
>
> On these pages, **recharge** means adding money to your store wallet. A **top-up** is a product that adds credit to a player's game account. The action code `wallet_topup_required` is about recharging the store wallet.

## The minimum balance for live API keys

Live API keys need one of these:

- an enabled **postpaid** store wallet (you pay later), or
- a **prepaid** balance (money you add first) of at least **100 SAR**.

If you have neither, live endpoints return this error:

```json
{
  "error": {
    "code": "insufficient_store_wallet_balance",
    "message": "Live API access needs an enabled postpaid wallet or a prepaid wallet balance of at least 100 SAR",
    "details": { "minimum_prepaid_balance": { "amount": "100.00", "currency": "SAR" } }
  }
}
```

These calls still work below the minimum. So you can always check and settle the orders you already placed:

- [Get balance](https://docs.cardzone.ai/reference/balance/retrieve/)
- [Poll order status](https://docs.cardzone.ai/reference/orders/retrieve/)
- [Cancel order](https://docs.cardzone.ai/reference/orders/cancel/)

[Player lookups](https://docs.cardzone.ai/guides/player-lookups/) use their own error code for the same rule: `player_lookup_requirements_not_met`. Sandbox API keys never have a store wallet requirement.

## Wallet-blocked orders

Sometimes the store wallet can't pay for an order during fulfillment. The order does **not** fail. Instead:

1. The order moves to `action_required`, with a `wallet_topup_required` action.
2. The action's `message` gives the total amount needed for all wallet-blocked orders in the store.

```json
"actions": [
  {
    "type": "wallet",
    "code": "wallet_topup_required",
    "message": "Recharge 50 SAR to resume fulfillment for all wallet-blocked orders."
  }
]
```

After you recharge the store wallet, fulfillment continues by itself. The order then moves on to `fulfilled` or another status. You don't need to send anything again.

Source: https://docs.cardzone.ai/concepts/wallet/index.mdx
