Query Parameters
All parameters in this request are optional query filters.
Filter customer by phone number
Filter customer by email address
Page offset (defaults to 1)
Page size limit (defaults to 20)
The Happy Rewards API is a comprehensive RESTful loyalty and rewards engine. It enables customer profile management, digital loyalty and membership cards issuance, balance score tracking, and automated rewards redemption. All endpoints consume and output standard JSON payloads.
Authenticate all incoming HTTP requests via API Key
The API relies on API key authentication via the X-API-Key request header. When testing in this documentation, paste your key once in the top bar and every live test will automatically include it.
Standard HTTP response status codes returned by the API:
| Status | Meaning | Description |
|---|---|---|
| 200 OK | Success | Standard successful request and response. |
| 201 Created | Resource Created | A new customer profile or card has been successfully issued. |
| 400 Bad Request | Invalid Request / Card Type | Malformed request or unsupported card operation type. |
| 401 Unauthorized | Authentication Failed | Missing or invalid X-API-Key header. |
| 422 Unprocessable | Validation Error | Missing mandatory parameters (e.g. neither phone nor email provided, missing templateId). |
| 500 Server Error | Internal Server Error | An unexpected server error occurred while processing the request. |
Manage customer identities, phone records, and profile details
All parameters in this request are optional query filters.
Filter customer by phone number
Filter customer by email address
Page offset (defaults to 1)
Page size limit (defaults to 20)
At least one contact identifier (phone or email) must be supplied.
| Field | Type | Status | Description |
|---|---|---|---|
| phone * | string | Required if no email | Mobile phone (e.g. +1234567890) |
| email * | Required if no phone | Valid email address | |
| firstName | string | Optional | First name |
| surname | string | Optional | Last / Family name |
| gender | integer | Optional | 0 = None, 1 = Male, 2 = Female |
| dateOfBirth | string | Optional | YYYY-MM-DD |
| externalUserId | string | Optional | External CRM identifier |
Unique customer ID to retrieve
Provide only the fields you wish to update in the JSON request body (all body fields are optional).
Customer ID to permanently delete
Issue and inspect customer loyalty, reward, and stamp cards
Issue a digital loyalty, stamp, or membership card directly linked to a registered customer.
| Field | Type | Status | Description |
|---|---|---|---|
| templateId * | integer > 0 | Required | ID of the digital card template |
| customerId * | string | Required | ID of the customer for whom the card is created |
| customFields | array<object> | Optional | Array of objects with id (integer) and value (string). Can exclude optional fields or fields filled in customer (phone, email, FName, SName, DateOfBirth). |
Unique Card Number or ID
Target card number to deactivate
Inspect card templates, visual appearances, custom fields, tiers, and installation links
| Parameter | Type | Status | Description |
|---|---|---|---|
| page | integer | Optional | Pagination page number (default: 1) |
| itemsPerPage | integer | Optional | Number of templates per page (default: 10, max: 100) |
ID or hash of the digital card template
Returns template metadata, customFields definitions (for card creation), reward tiers, membership tiers, appearance settings, and Apple/Google Wallet install and QR links.
Accrue points, deduct balances, assign rewards, and handle redemptions
| Field | Type | Status | Description & Default |
|---|---|---|---|
| card_number * | string | Required | Target card identifier |
| scores | numeric | Optional | Score points to credit (default: 0) |
| purchase_sum | numeric | Optional | Purchase amount (default: 0) |
| comment | string | Optional | Transaction description |
| Field | Type | Status | Description & Default |
|---|---|---|---|
| card_number * | string | Required | Target card identifier |
| scores | numeric | Optional | Points to deduct (default: 0) |
| purchase_sum | numeric | Optional | Purchase amount (default: 0) |
| comment | string | Optional | Transaction note |
| Field | Type | Status | Description |
|---|---|---|---|
| card_number * | string | Required | Target card identifier |
| id * | string | Required | Reward Item ID to claim (e.g. REWARD-101) |
| purchase_sum | numeric | Optional | Purchase value (default: 0) |
| comment | string | Optional | Redemption note |