> ## Documentation Index
> Fetch the complete documentation index at: https://docs.brand-wallet.com/llms.txt
> Use this file to discover all available pages before exploring further.

# How to use BrandWallet API

> BrandWallet's REST API lets your system look up customers, list and redeem coupons, and process transactions with loyalty campaigns and rewards.

BrandWallet provides a REST API for any organization that wants to integrate with its loyalty platform — POS systems, e-commerce platforms, mobile apps, and other partners. The API lets you look up customers, apply loyalty rewards, redeem coupons, and process basket transactions — giving your system a direct connection to BrandWallet's loyalty engine in real time.

## Core resources

The API works with three main resources. In particular, **customers and users are separate entities** — don't mix them up:

| Resource | Who / what it is |
| - | - |
| [Customer](/api/customer-object) | The merchant's **end consumer** — the person who shops at the brand, carries its wallet card (QR code), and collects loyalty rewards. |
| [User](/api/user-object) | A member of the merchant organization's **team** — owner, brand manager, branch manager, cashier — or an API account acting on its behalf. |
| [Transaction](/api/transaction-object) | A processed basket: the purchase you submit and the loyalty actions (rewards, discounts, redemptions) executed on it. |

## API basics

| Property | Value |
| - | - |
| Base URL — production | `https://apigw.brand-wallet.com` |
| Base URL — sandbox | `https://dev-apigw.brand-wallet.com` |
| Content-Type | `application/json` |
| Authorization | `Authorization: Bearer <accessToken>` |
| Field naming | camelCase |

> Access tokens are scoped to a single organization — all API calls made with a given token operate on that organization's data only.

> Code examples across this documentation use `$BASE_URL` as a placeholder — replace it with the base URL of the environment you are targeting (production or sandbox, listed above).

Use the **sandbox** environment to build and test your integration; sandbox credentials and data are separate from production. Switching to production only requires changing the base URL and the credentials.

## Credentials

You need two credentials to authenticate API requests:

* **API key** — Identifies your integration. Issued once and shared across all merchants you connect.
* **API secret** — Identifies the merchant organization. You receive one per merchant during their onboarding.

See [Authentication](/api/authentication) for how to exchange them for an access token.

## Multi-tenant architecture

BrandWallet is a multi-tenant system. Your API key remains the same across all merchants you connect; each merchant has its own API secret. Because each access token is scoped to a single organization, your integration must request and store a separate access token for every merchant organization it connects to. Treat each organization's token independently — do not share tokens across merchants.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.