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": 500,
"key": "api_error",
"message": "Something went wrong. Don't worry, your campaigns are still safe and the Voucherify Team has been notified. Check out our Help Center and forums for help, or head back to home."
}Create program member
Enrolls a customer as a member of the loyalty program. The program must be in the 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.
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": 500,
"key": "api_error",
"message": "Something went wrong. Don't worry, your campaigns are still safe and the Voucherify Team has been notified. Check out our Help Center and forums for help, or head back to home."
}Authorizations
Path Parameters
Unique loyalty program ID (format lprg_[a-f0-9]+).
^lprg_[a-f0-9]+$Body
Request body schema for POST /v2/loyalties/programs/{programId}/members.
No additional properties are allowed.
Show child attributes
Show child attributes
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.
Response body schema for POST /v2/loyalties/programs/{programId}/members.
Identifies the member.
^lmbr_[a-f0-9]+$Identifies the enrolled customer.
^cust_[a-zA-Z0-9]+Identifies the loyalty program.
^lprg_[a-f0-9]+$Current member status. Allowed values: ACTIVE, INACTIVE, DELETED. INACTIVE members cannot earn points or redeem rewards.
ACTIVE, INACTIVE, DELETED Stores custom member metadata. Empty object when none is set.
Records when the member was created (ISO 8601).
Records the last update (ISO 8601). null if the member has never been updated.
Object type. 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

