Journey Docs
Members APIAuthentication

Validate Member

Provision or retrieve member based on Clerk authentication

POST/members/me/auth/validate

Provision a new member or retrieve existing member based on Clerk authentication.

This endpoint must be called before any other member-specific operations.

Request

POST /members/me/auth/validate
Authorization: Bearer <CLERK_JWT_TOKEN>

Response

memberobject
properties
externalIdstring

ULID identifier for the member

memberCodestring

6-character user-facing code

firstNamestring

Member's first name from Clerk

lastNamestring

Member's last name from Clerk

statusstring

Member status: active, suspended, closed, merged

provisionedNowboolean

True if member was just created

Example

const response = await fetch('https://api.journey.com/members/me/auth/validate', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${clerkToken}`
  }
});

const data = await response.json();

if (data.member.provisionedNow) {
  console.log('New member created:', data.member.memberCode);
} else {
  console.log('Existing member:', data.member.memberCode);
}

Bruno

bruno/Members (Surface)/Auth/Validate.bru

Provisioning Flow

  1. Extract Clerk user ID from JWT
  2. Check for existing member by clerk_user_id
  3. If not found, fetch Clerk user data
  4. Check for existing member by verified contacts
  5. Create new member if no match
  6. Create wallet and verified contacts
  7. Write metadata back to Clerk
  8. Return member with provisionedNow flag

On this page