Members APIAuthentication
Validate Member
Provision or retrieve member based on Clerk authentication
POST
/members/me/auth/validateProvision 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
memberobjectproperties
externalIdstringULID identifier for the member
memberCodestring6-character user-facing code
firstNamestringMember's first name from Clerk
lastNamestringMember's last name from Clerk
statusstringMember status: active, suspended, closed, merged
provisionedNowbooleanTrue 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
- Extract Clerk user ID from JWT
- Check for existing member by clerk_user_id
- If not found, fetch Clerk user data
- Check for existing member by verified contacts
- Create new member if no match
- Create wallet and verified contacts
- Write metadata back to Clerk
- Return member with provisionedNow flag