Overview

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

  1. Call POST /v1/user/login with the member username and password.
  2. Receive a JWT token and refresh_token.
  3. Send the access token on protected requests:
Authorization: Bearer <token>
  1. When the access token expires, call POST /v1/user/token/refresh with the refresh token.

Login and token refresh are public. All other Touchpoint endpoints require a valid member JWT (ROLE_USER).


Sections

SectionControllers / scope
AuthLogin, token refresh
UserProfile, registration, verification, addresses, identities
CardsPhysical/virtual cards, Apple/Google Wallet passes
CouponsList, detail, redeem/activate, deactivate
ContestsContest detail, tokens, draw, history
ConsentsList, HTML text, sign
NotificationsInbox list, mark read
PrivacyGDPR deletion / data export
TransactionsPOS/receipt history
Wallet TransactionsPrimary wallet point history
ParamsPublic custom-parameter definitions
PromoPromo-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:

EndpointNotes
POST /v1/user/loginReturns { "token", "refresh_token" } (Lexik JWT)
POST /v1/user/token/refreshReturns refreshed JWT tokens
POST|PATCH /v1/notification/{id}/readHTTP 202 empty body
Consent text GET routesReturn text/html
Apple Wallet passReturns .pkpass binary

Deprecated endpoints

Prefer the dedicated resources below:

DeprecatedReplacement
POST /v1/user/wallet/transactionsPOST /v1/wallet-transactions
POST /v1/user/receiptsPOST /v1/transactions
GET /v1/user/receipt/{transactionId}GET /v1/transaction/{transactionId}
GET /v1/{entity}/paramsGET /v1/params