Account
Prefix: /v1/account. Auth: Customer on every route (Authorization: Bearer).
Call GET /v1/account/me after login to hydrate the profile. Amounts are fils; points are integers.
Profile
| Method | Path | Body / notes |
|---|---|---|
GET | /v1/account/me | Public customer record |
PATCH | /v1/account/profile | Optional name, email, language (en|ar), dateOfBirth, gender, householdSize |
Wallet and loyalty
| Method | Path | Purpose |
|---|---|---|
GET | /v1/account/wallet | Wallet transactions (paginated) |
GET | /v1/account/loyalty | Points transactions (paginated) |
Balances also appear on GET /v1/account/me / GET /v1/init. Amounts are fils; points are integers.
Addresses
| Method | Path | Body |
|---|---|---|
GET | /v1/account/addresses | — |
POST | /v1/account/addresses | Create |
PATCH | /v1/account/addresses/:addressId | Partial update |
DELETE | /v1/account/addresses/:addressId | Delete |
Create body (required)
| Field | Notes |
|---|---|
label | e.g. Home |
lat, lng | Map pin |
city | Reverse-geocoded area name |
Optional: governorateNo, areaId, block, street, building, floor, apartment, phone, notes, isDefault.
Wishlist
| Method | Path | Body |
|---|---|---|
GET | /v1/account/wishlist | Paginated productIds + products |
POST | /v1/account/wishlist | { productId } |
DELETE | /v1/account/wishlist/:productId | — |
Wishlist writes are blocked in store maintenance mode.
Recently viewed
| Method | Path | Body |
|---|---|---|
GET | /v1/account/viewed | List |
POST | /v1/account/viewed | Track one product |
POST | /v1/account/viewed/merge | Merge a guest list after login |
Pro subscription
| Method | Path | Body |
|---|---|---|
GET | /v1/subscription-plans | Public plans (no account prefix) |
GET | /v1/account/subscription | Current sub or null |
POST | /v1/account/subscription | { planId } |
POST | /v1/account/subscription/cancel | Cancel at period end |
Statuses: active, expired, cancelled. cancelAtPeriodEnd is true when cancelled but the period is still running.