A valid request URL is required to generate request examples{
"id": "lmbr_12ba1c1a8456b6db8c",
"customer_id": "cust_X07elh40iNWLujRmDNmBufxd",
"program_id": "lprg_128f58429f4c4bf7b2",
"status": "ACTIVE",
"metadata": {},
"created_at": "2026-07-14T16:41:01.201Z",
"updated_at": null,
"object": "member",
"cards": [
{
"member_role": "OWNER",
"created_at": "2026-07-14T16:41:01.214Z",
"card": {
"id": "lcrd_12ba1c1a86d6b6db8f",
"card_definition_id": "lcdef_128f495f720c4bec8c",
"card_type": "INDIVIDUAL",
"code": null,
"lifetime_bucket": {
"points": {
"total": 0,
"earned": 0,
"added": 0,
"purchased": 0,
"purchased_reversed": 0,
"subtracted": 0,
"expired": 0,
"spent": 0,
"refunded": 0,
"returned": 0,
"locked": 0,
"unlocked": 0
},
"pending_points": {
"total": 0,
"activated": 0,
"canceled": 0
}
},
"balance": {
"points": 0,
"pending_points": 0
},
"next_expiration": null,
"next_activation": null,
"object": "card"
},
"object": "member_card"
},
{
"member_role": "OWNER",
"created_at": "2026-07-14T16:41:01.214Z",
"card": {
"id": "lcrd_12ba1c1a86d6b6db90",
"card_definition_id": "lcdef_128f49963c0c4becb7",
"card_type": "INDIVIDUAL",
"code": null,
"lifetime_bucket": {
"points": {
"total": 0,
"earned": 0,
"added": 0,
"purchased": 0,
"purchased_reversed": 0,
"subtracted": 0,
"expired": 0,
"spent": 0,
"refunded": 0,
"returned": 0,
"locked": 0,
"unlocked": 0
},
"pending_points": {
"total": 0,
"activated": 0,
"canceled": 0
}
},
"balance": {
"points": 0,
"pending_points": 0
},
"next_expiration": null,
"next_activation": null,
"object": "card"
},
"object": "member_card"
},
{
"member_role": "OWNER",
"created_at": "2026-07-14T16:41:01.214Z",
"card": {
"id": "lcrd_12ba1c1a86d6b6db91",
"card_definition_id": "lcdef_128f4a88414c4bed69",
"card_type": "INDIVIDUAL",
"code": null,
"lifetime_bucket": {
"points": {
"total": 0,
"earned": 0,
"added": 0,
"purchased": 0,
"purchased_reversed": 0,
"subtracted": 0,
"expired": 0,
"spent": 0,
"refunded": 0,
"returned": 0,
"locked": 0,
"unlocked": 0
},
"pending_points": {
"total": 0,
"activated": 0,
"canceled": 0
}
},
"balance": {
"points": 0,
"pending_points": 0
},
"next_expiration": null,
"next_activation": null,
"object": "card"
},
"object": "member_card"
}
]
}{
"code": 123,
"key": "<string>",
"message": "<string>",
"details": "<string>",
"request_id": "<string>",
"resource_id": "<string>",
"resource_type": "<string>"
}{
"code": 404,
"key": "not_found",
"message": "Resource not found",
"details": "Cannot find customer with id cust_X07elh40iNWLujRmDNmBufd",
"request_id": "v-12c30587d84f93b9af",
"resource_id": "cust_X07elh40iNWLujRmDNmBufd",
"resource_type": "customer"
}{
"code": 409,
"key": "member_already_exists",
"message": "Member already exists",
"details": "Customer 'cust_X07elh40iNWLujRmDNmBufxd' already is a member of program 'lprg_128f58429f4c4bf7b2'",
"request_id": "v-12c3021e930a67865c"
}{
"code": 423,
"key": "non_active_program",
"message": "Invalid program status",
"details": "Cannot create member when program status is not ACTIVE",
"request_id": "v-..."
}{
"code": 123,
"key": "<string>",
"message": "<string>",
"details": "<string>",
"request_id": "<string>",
"resource_id": "<string>",
"resource_type": "<string>"
}Create program member
Enrolls a customer as a member of the loyalty program. The program must be in ACTIVE status (returns a 423 error otherwise) and the customer must exist in Voucherify. A customer can be a member of a given program only once - creating a second member for the same customer ID returns 409 error (member_already_exists).
Loyalty cards are created automatically for all card definitions assigned to the program and returned in the cards array. Card code generation is asynchronous: code may be null immediately after creation.
curl --request POST \
--url {protocol}://{host}/v2/loyalties/programs/{programId}/members \
--header 'Content-Type: application/json' \
--header 'X-App-Id: <api-key>' \
--header 'X-App-Token: <api-key>' \
--data '
{
"customer_id": "<string>",
"status": "ACTIVE",
"metadata": {}
}
'{
"id": "lmbr_12ba1c1a8456b6db8c",
"customer_id": "cust_X07elh40iNWLujRmDNmBufxd",
"program_id": "lprg_128f58429f4c4bf7b2",
"status": "ACTIVE",
"metadata": {},
"created_at": "2026-07-14T16:41:01.201Z",
"updated_at": null,
"object": "member",
"cards": [
{
"member_role": "OWNER",
"created_at": "2026-07-14T16:41:01.214Z",
"card": {
"id": "lcrd_12ba1c1a86d6b6db8f",
"card_definition_id": "lcdef_128f495f720c4bec8c",
"card_type": "INDIVIDUAL",
"code": null,
"lifetime_bucket": {
"points": {
"total": 0,
"earned": 0,
"added": 0,
"purchased": 0,
"purchased_reversed": 0,
"subtracted": 0,
"expired": 0,
"spent": 0,
"refunded": 0,
"returned": 0,
"locked": 0,
"unlocked": 0
},
"pending_points": {
"total": 0,
"activated": 0,
"canceled": 0
}
},
"balance": {
"points": 0,
"pending_points": 0
},
"next_expiration": null,
"next_activation": null,
"object": "card"
},
"object": "member_card"
},
{
"member_role": "OWNER",
"created_at": "2026-07-14T16:41:01.214Z",
"card": {
"id": "lcrd_12ba1c1a86d6b6db90",
"card_definition_id": "lcdef_128f49963c0c4becb7",
"card_type": "INDIVIDUAL",
"code": null,
"lifetime_bucket": {
"points": {
"total": 0,
"earned": 0,
"added": 0,
"purchased": 0,
"purchased_reversed": 0,
"subtracted": 0,
"expired": 0,
"spent": 0,
"refunded": 0,
"returned": 0,
"locked": 0,
"unlocked": 0
},
"pending_points": {
"total": 0,
"activated": 0,
"canceled": 0
}
},
"balance": {
"points": 0,
"pending_points": 0
},
"next_expiration": null,
"next_activation": null,
"object": "card"
},
"object": "member_card"
},
{
"member_role": "OWNER",
"created_at": "2026-07-14T16:41:01.214Z",
"card": {
"id": "lcrd_12ba1c1a86d6b6db91",
"card_definition_id": "lcdef_128f4a88414c4bed69",
"card_type": "INDIVIDUAL",
"code": null,
"lifetime_bucket": {
"points": {
"total": 0,
"earned": 0,
"added": 0,
"purchased": 0,
"purchased_reversed": 0,
"subtracted": 0,
"expired": 0,
"spent": 0,
"refunded": 0,
"returned": 0,
"locked": 0,
"unlocked": 0
},
"pending_points": {
"total": 0,
"activated": 0,
"canceled": 0
}
},
"balance": {
"points": 0,
"pending_points": 0
},
"next_expiration": null,
"next_activation": null,
"object": "card"
},
"object": "member_card"
}
]
}{
"code": 123,
"key": "<string>",
"message": "<string>",
"details": "<string>",
"request_id": "<string>",
"resource_id": "<string>",
"resource_type": "<string>"
}{
"code": 404,
"key": "not_found",
"message": "Resource not found",
"details": "Cannot find customer with id cust_X07elh40iNWLujRmDNmBufd",
"request_id": "v-12c30587d84f93b9af",
"resource_id": "cust_X07elh40iNWLujRmDNmBufd",
"resource_type": "customer"
}{
"code": 409,
"key": "member_already_exists",
"message": "Member already exists",
"details": "Customer 'cust_X07elh40iNWLujRmDNmBufxd' already is a member of program 'lprg_128f58429f4c4bf7b2'",
"request_id": "v-12c3021e930a67865c"
}{
"code": 423,
"key": "non_active_program",
"message": "Invalid program status",
"details": "Cannot create member when program status is not ACTIVE",
"request_id": "v-..."
}{
"code": 123,
"key": "<string>",
"message": "<string>",
"details": "<string>",
"request_id": "<string>",
"resource_id": "<string>",
"resource_type": "<string>"
}Authorizations
Path Parameters
Unique loyalty program ID (format lprg_[a-f0-9]+).
^lprg_[a-f0-9]+$Body
Request body for creating a program member. No additional properties are allowed.
Unique Voucherify customer ID of an existing customer to enroll as a member. Required.
^cust_[a-zA-Z0-9]+Initial member status. Defaults to ACTIVE when omitted or null.
ACTIVE, INACTIVE Free-form metadata attached to the member. Validated against the metadata schema defined for the vl_member related object (when one is configured). Defaults to an empty object.
Response
The created member with its automatically created cards.
A loyalty program member together with its loyalty cards. Returned by member create and get endpoints.
Unique member ID.
^lmbr_[a-f0-9]+$Unique Voucherify ID of the customer enrolled as this member.
^cust_[a-zA-Z0-9]+Unique Voucherify ID of the loyalty program the member belongs to.
^lprg_[a-f0-9]+$Current member status. INACTIVE member can't earn points or redeem rewards.
ACTIVE, INACTIVE, DELETED Free-form metadata attached to the member (empty object when none).
Timestamp when the member was created (ISO 8601).
Timestamp when the member was last updated (ISO 8601), or null if never updated.
Object type marker, always member.
"member"Member's loyalty cards - one per card definition assigned to the program. Card codes are generated asynchronously, so card.code may be null right after member creation.
Show child attributes
Show child attributes
Was this page helpful?

