> ## Documentation Index
> Fetch the complete documentation index at: https://docs.hoppier.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Programs, participants, ids and units

> The objects the Hoppier API returns, what their ids look like, and the units used for money and dates.

## Programs

A program is how a company gives people a reward: an amount per person, what it can be spent on (merchants for a prepaid Visa card, or a choice of gift-card brands), and the dates it runs. Admins create programs in the Hoppier dashboard. The API reads them.

* **Fixed or individual amounts.** Most programs give everyone the same `amount`. On a program where each person has their own amount, the program's `amount` is `0` and each person's amount is set when they're added.
* **Status.** `active` programs are running, `inactive` ones are archived, and `pending` ones aren't active yet. A program stops taking new people once it has ended.

## Participants

A participant is one person in one program, identified by their email address.

* A participant is `pending` until they claim their reward, then `active`. `inactive` means they're no longer active in the program.
* Adding someone uses one invitation from your plan, the same as adding them in the dashboard.
* Each participant gets an `inviteUrl`: the link they open to claim their reward. Hoppier can email it for you, or you can send it yourself.
* When their reward is ready, Hoppier can send you a [`card.claimed` webhook](/guides/webhooks).

## Ids

Every id is a string with a prefix that tells you what it points to:

| Prefix | Object |
| - | - |
| `prg_` | Program |
| `pcpt_` | Participant |
| `ad_` | Address |
| `cpy_` | Company (in webhooks) |
| `evt_` | Webhook event |

Store ids as strings and pass them back unchanged. Don't parse them or build them yourself.

## Money

Amounts don't all use the same unit. Each one is marked on its page:

| Where | Unit | \$25.00 is |
| - | - | - |
| A program's `amount`, in every response | cents | `2500` |
| `amount` when you [add a participant](/api-reference/participants/add.md) | dollars | `25` |
| `data.amount` in the [`card.claimed` webhook](/api-reference/webhooks/card-claimed) | dollars | `25` |

The currency is `usd` everywhere today.

## Dates

* Program dates (`startDate`, `endDate`, `createdAt`, `updatedAt`) are Unix timestamps in **milliseconds**, sent as strings. For example, `"1793491200000"` is 1 November 2026, 00:00 UTC.
* `endDate` is left out when a program has no end date. A program with no start date returns `startDate: "undefined"`, so treat any value that isn't 13 digits as "not set".
* Webhook timestamps (`created_at`, `claimed_at`) are ISO 8601 strings in UTC.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.