Wallet & Loyalty API Endpoints
Customer-Facing (Website)
All endpoints require Auth0 JWT. Guest resolved via CurrentAuthContext.
Wallet
| Method | Path | Description |
|---|
GET | /api/wallet | Get wallet balance, status, next expiry info |
GET | /api/wallet/transactions | Get transaction history |
POST | /api/wallet/hold | Place hold for booking { bookingId, amount } → { transactionId } |
POST | /api/wallet/confirm/{transactionId} | Confirm hold (deduct from wallet) |
POST | /api/wallet/release/{transactionId} | Release hold (cancel reservation) |
Loyalty
| Method | Path | Description |
|---|
GET | /api/loyalty | Get loyalty details (tier, benefits, reward rule, progression) |
GET | /api/loyalty/tiers | List all available tiers |
POST | /api/loyalty/opt-in | Enroll in loyalty program + create wallet |
GET | /api/loyalty/wallet | Get wallet with expiry details |
GET | /api/loyalty/wallet/applicable?bookingAmount=X | Calculate applicable wallet amount |
GET | /api/loyalty/reward/estimate?bookingAmount=X | Estimate reward for a booking |
Admin API
All endpoints available at both /api/v1/admin/... and /api/v1/pms/... paths.
Wallet Management
| Method | Path | Description |
|---|
GET | /wallets | List all wallets |
GET | /wallets/{id} | Get wallet by ID |
GET | /wallets/account/{accountId} | Get wallet by account |
POST | /wallets | Create wallet |
PUT | /wallets/{id} | Update wallet |
PUT | /wallets/{id}/status?status=X | Update wallet status |
DELETE | /wallets/{id} | Soft-delete wallet |
Wallet Transactions (read-only)
| Method | Path | Description |
|---|
GET | /wallet-transactions/wallet/{walletId} | Transactions by wallet |
GET | /wallet-transactions/booking/{bookingId} | Transactions by booking |
GET | /wallet-transactions/{id} | Transaction by ID |
Wallet Reward Rules
| Method | Path | Description |
|---|
GET | /wallet-reward-rules | List all rules |
GET | /wallet-reward-rules/{id} | Get rule by ID |
POST | /wallet-reward-rules | Create/update rule |
DELETE | /wallet-reward-rules/{id} | Delete rule |
Loyalty Management
| Method | Path | Description |
|---|
GET | /loyalty | List all loyalty records |
GET | /loyalty/{id} | Get by ID |
GET | /loyalty/account/{accountId} | Get by account |
POST | /loyalty | Create loyalty record |
PUT | /loyalty/{id} | Update loyalty |
DELETE | /loyalty/{id} | Soft-delete |
Loyalty Tiers
| Method | Path | Description |
|---|
GET | /loyalty-tiers | List all tiers |
GET | /loyalty-tiers/{id} | Get tier by ID |
POST | /loyalty-tiers | Create tier |
PUT | /loyalty-tiers/{id} | Update tier |
DELETE | /loyalty-tiers/{id} | Delete tier |
GET | /loyalty-tiers/{id}/benefits | Get benefits for tier |
POST | /loyalty-tiers/{id}/benefits | Set benefits [benefitId1, benefitId2] |
POST | /loyalty-tiers/re-evaluate | Re-evaluate all member tiers |
Cancellation Plan Overrides
| Method | Path | Description |
|---|
GET | /cancellation-plan-overrides?listingId=X | Get overrides for listing |
POST | /cancellation-plan-overrides | Upsert override |
DELETE | /cancellation-plan-overrides?listingId=X&channelId=Y&cancellationPlanId=Z | Delete override |