Register a member

A member is a contact that has an account on the platform — they can log in, hold a stored credit balance, and subscribe to membership products. This guide walks through registering a new member from scratch and then applying a membership subscription to them.

Both operations use the Organisation API with an API key.


Key concepts

Concept
Description

Contact

A person in your organisation's database (email, name, phone, etc.)

Member

A contact with a registered account — has login credentials and a stored credit account

Subscription

A contact's enrolment in a membership product at a specific tier

Recurring product

A membership or loyalty programme you've configured in Glu

Tier

A level within a recurring product (e.g. Silver, Gold, Platinum)

A contact can exist without being a member. Registering a member creates the account layer on top of an existing — or newly created — contact.


Step 1: Register a member

POST /members

This endpoint creates a contact and member in a single call. If a contact with the given email already exists, it reuses that contact. If a member already exists for that contact, it returns 409 Conflict.

Request

{
  "email": "jane@example.com",
  "firstName": "Jane",
  "lastName": "Smith"
}

Response

A successful registration returns the new member:

The contact field is the ID of the underlying contact record. You'll use this ID when applying a membership subscription.

What happens behind the scenes

  1. Glu looks for an existing contact matching the email address

  2. If none exists, a new contact is created with the details you provided

  3. A member account is created for that contact with a stored credit account

Error responses

Status
Reason

400 Bad Request

Missing or invalid email

409 Conflict

A member already exists for this email


Step 2: Apply a membership subscription

Once you have a contact, you can enrol them in a membership product by creating a subscription.

POST /subscriptions

Prerequisites

Before calling this endpoint, you need:

  • Contact ID — the contact value returned from POST /members (or from any other endpoint that returns a contact)

  • Recurring product tier ID — the ID of the specific tier to subscribe the contact to. You can find tier IDs in your Glu admin dashboard under the membership product configuration.

Request

All fields

Field
Type
Required
Description

contactId

integer

Yes

The contact's ID

recurringProductTierId

integer

Yes

The membership tier to subscribe them to

startedAt

datetime

Yes

When the subscription begins (ISO 8601 format)

Response

What happens behind the scenes

  1. Glu verifies the contact exists and belongs to your organisation

  2. The tier is validated against your organisation's products

  3. If the contact is not yet a member, a member account is created automatically

  4. An active subscription is created linking the contact to the tier

  5. The member's stored credit account is linked to the subscription

Error responses

Status
Reason

400 Bad Request

Missing required fields

404 Not Found

Contact or tier not found (or doesn't belong to your organisation)

409 Conflict

Contact already has an active subscription for this membership product

Note: A contact can only hold one active subscription per membership product. If you need to move them to a different tier within the same product, cancel the existing subscription first and create a new one.


Complete example: register and subscribe

Here's the full two-step flow — register a new member, then immediately enrol them in a loyalty programme.

1. Register the member

Response — note the contact ID:

2. Apply the membership

Response:

The member is now registered and subscribed to the selected membership tier.


Alternative: contact-first approach

If you already manage contacts separately — for example, via a CRM sync — you may already have contacts in Glu before you want to register them as members. In that case, you can work with the contact directly.

Create or update a contact

POST /contacts

This endpoint uses find-or-create semantics — if a contact with the same email already exists, it updates and returns the existing record.

Then register the member

Use POST /members with the same email. The processor will find the existing contact and create the member account on top of it:

Then apply the subscription

Use the contact ID from either the POST /contacts response or the contact field in the POST /members response:


Subscription without prior member registration

The POST /subscriptions endpoint will automatically create a member account if the contact isn't already a member. This means you can skip the POST /members step entirely.

The minimum flow becomes:

  1. POST /contacts — create or find the contact

  2. POST /subscriptions — apply the membership (member created automatically)

This is useful when importing members in bulk or when the membership sign-up is handled offline and you only need to record the enrolment.


Subscription statuses

Status
Description

Active

The subscription is current and the member has access to tier benefits

Inactive

The subscription has been ended, see endedAt for when this happened.

Pending

The subscription is awaiting activation (e.g. pending payment)

Cancelled

See cancelledAt for when this happened.

Trial

The member is in a trial period until trialEndsAt

Last updated