Touchpoint API
The Touchpoint API is the member-facing API used by TRIFFT mobile apps, web widgets, and other customer touchpoints. Unlike the server-to-server Trifft API (API keys / OAuth), Touchpoint endpoints authenticate end-users with JWT access tokens.
Base URL
https://touchpoint-api.trifftloyalty.com
Requests to /v1/... on this host are routed to /touchpoint/v1/... on the backend.
Authentication
- Call
POST /v1/user/loginwith the member username and password. - Receive a JWT
tokenandrefresh_token. - Send the access token on protected requests:
Authorization: Bearer <token>
- When the access token expires, call
POST /v1/user/token/refreshwith the refresh token.
Login and token refresh are public. All other Touchpoint endpoints require a valid member JWT (ROLE_USER).
Sections
| Section | Controllers / scope |
|---|---|
| Auth | Login, token refresh |
| User | Profile, registration, verification, addresses, identities |
| Cards | Physical/virtual cards, Apple/Google Wallet passes |
| Coupons | List, detail, redeem/activate, deactivate |
| Contests | Contest detail, tokens, draw, history |
| Consents | List, HTML text, sign |
| Notifications | Inbox list, mark read |
| Privacy | GDPR deletion / data export |
| Transactions | POS/receipt history |
| Wallet Transactions | Primary wallet point history |
| Params | Public custom-parameter definitions |
| Promo | Promo-event code redemption |
Response envelope
Most JSON endpoints return:
{
"status": 200,
"success": true,
"data": {}
}Error responses typically use:
{
"status": 400,
"success": false,
"error": {
"code": 1002,
"message": "Human-readable message",
"exception": "ExceptionClassName"
}
}A few endpoints intentionally differ:
| Endpoint | Notes |
|---|---|
POST /v1/user/login | Returns { "token", "refresh_token" } (Lexik JWT) |
POST /v1/user/token/refresh | Returns refreshed JWT tokens |
POST|PATCH /v1/notification/{id}/read | HTTP 202 empty body |
Consent text GET routes | Return text/html |
| Apple Wallet pass | Returns .pkpass binary |
Deprecated endpoints
Prefer the dedicated resources below:
| Deprecated | Replacement |
|---|---|
POST /v1/user/wallet/transactions | POST /v1/wallet-transactions |
POST /v1/user/receipts | POST /v1/transactions |
GET /v1/user/receipt/{transactionId} | GET /v1/transaction/{transactionId} |
GET /v1/{entity}/params | GET /v1/params |