Skip to main content
POST
Create a program
Creates a new program in your organization. A program only requires a name. By default, on_unknown_participant is set to CREATE, which means participants are auto-created on their first event. Set it to REJECT if you need explicit registration before processing events. Programs start as ACTIVE. You can suspend or archive them later via Update a program.
For usage patterns and examples, see the Programs guide.

Authorizations

X-API-Key
string
header
required

API key passed in the X-API-Key header.

Body

application/json

Program details

name
string
required

Program name

Required string length: 1 - 255
Example:

"Q1 Sales Bonus"

description
string

Optional program description

Maximum string length: 1000
Example:

"Quarterly sales incentive program for the sales team"

fulfillment_mode
enum<string>

Default redemption behavior when capture is omitted. Defaults to INSTANT.

Available options:
INSTANT,
ASYNC
Example:

"ASYNC"

on_unknown_participant
enum<string>

How to handle events for unregistered participants. Defaults to CREATE when absent or null; an explicit "" or any non-enum value is rejected.

Available options:
CREATE,
REJECT
Example:

"CREATE"

pending_redemption_ttl
string | null

Optional program-specific bound between 60 seconds and one year. Accepts Go-style durations plus d/w; without a request or program bound, pending redemptions default to 90 days.

Example:

"24h"

Response

Program created

created_at
string<date-time>

When the program was created

Example:

"2024-01-15T10:30:00Z"

deleted_at
string<date-time>

Set when the program is archived

Example:

"2024-06-01T00:00:00Z"

description
string

Optional program description

Example:

"Quarterly sales incentive program"

fulfillment_mode
enum<string>

Default redemption behavior when capture is omitted

Available options:
INSTANT,
ASYNC
Example:

"INSTANT"

id
string<uuid>

Program ID

Example:

"550e8400-e29b-41d4-a716-446655440000"

name
string

Program name

Example:

"Q1 Sales Bonus"

on_unknown_participant
string

How events for unregistered participants are handled

Example:

"CREATE"

pending_redemption_ttl
string

Optional program-specific bound between 60 seconds and one year. Without a request or program bound, pending redemptions default to 90 days.

Example:

"24h"

redemption_target_entity_id
string<uuid>

Target ledger entity ID. Present only when redemption_target_type is LEDGER_ENTITY.

Example:

"550e8400-e29b-41d4-a716-446655440002"

redemption_target_type
string

Where redeemed value is posted: SYSTEM_REDEMPTION, SYSTEM_BREAKAGE, or LEDGER_ENTITY

Example:

"SYSTEM_REDEMPTION"

status
string

Lifecycle state

Example:

"ACTIVE"

updated_at
string<date-time>

When the program was last modified

Example:

"2024-01-15T10:30:00Z"