---
title: "Wallet Model"
description: "Wallet behavior is available only when the project wallet feature and the relevant wallet type are enabled."
canonical: https://docs.ordering.co/api-reference/guides/wallet-model/
---

# Wallet Model

A wallet stores a user's balance for a configured value type. Wallet behavior is available only when the project wallet feature and the relevant wallet type are enabled.

Representative fields include `id`, `code`, `type`, `user_id`, `balance`, `locked`, `locked_reason`, `locked_at`, `created_at`, and `updated_at`. Types include `cash` and `credit_point`. User-scoped listing can provision missing zero-balance wallets for enabled types.

Wallet reads require authentication and normally restrict cross-user access to administrators or agents. Balance changes are represented by wallet events; locking blocks manual movement creation. See [Wallet event model](https://docs.ordering.co/api-reference/guides/wallet-event-model/) and [Update user wallet](https://docs.ordering.co/api-reference/guides/update-wallet-by-user/).

The public API reference does not include global wallet routes.

## Schema properties

**Schema:** `Wallet`

| Name            | Type            | Description |
| --------------- | --------------- | ----------- |
| `balance`       | number \| null  | —           |
| `code`          | any             | —           |
| `created_at`    | string \| null  | —           |
| `id`            | integer \| null | —           |
| `locked`        | boolean \| null | —           |
| `locked_at`     | any             | —           |
| `locked_reason` | any             | —           |
| `type`          | any             | —           |
| `updated_at`    | string \| null  | —           |
| `user_id`       | integer \| null | —           |
