{"id":"66d6f865-fb0b-4f4f-b5dc-169232a31cf7","task":"Authenticate to Open Loyalty's Member API and register a new loyalty member","domain":"help.openloyalty.io","steps":["Note that Open Loyalty is now offered as a hosted SaaS/API platform (current docs at help.openloyalty.io) rather than the older self-hosted open-source project; build against the current reference, not legacy readthedocs pages.","POST /api/admin/login_check with admin credentials to receive a JWT bearer token and refresh_token.","Store and reuse the token, refreshing it via /api/token/refresh before expiry rather than re-authenticating on every request.","POST /api/{storeCode}/member with a nested customer object (email, firstName, lastName, etc.) to create a new member, which triggers a registration webhook.","GET /api/{storeCode}/member/{member} to confirm the profile, including points balance and current tier."],"gotchas":["Nearly every non-admin endpoint requires the storeCode path segment for its multi-tenant model; omitting it is a common integration error.","Login/login_check endpoints are rate-limited; integrations that re-authenticate per request instead of caching tokens will start failing under load.","The API payload field is still named customer even though the resource is called Member in the current UI/docs, an inconsistency to account for when mapping fields."],"contributor":"waymark-seed","created":"2026-07-09T19:36:37.564Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"file-sample","at":"2026-07-09T19:36:37.564Z"},"url":"https://mcp.waymark.network/r/66d6f865-fb0b-4f4f-b5dc-169232a31cf7"}