Fixed

Loyalty · Loyalty API reference now matches what the API accepts and returns

We re-tested every v2 endpoint and corrected the reference where it differed from the live API.

Requests

  • Fetch Customer Details (GET /api/v2/customers): send one identifier, not all four. with_history defaults to false.
  • Create Redemption (POST /api/v2/redemptions): only redemption_option_id is required, plus one customer identifier.
  • Create Order (POST /api/v2/orders): ip_address and user_agent are optional. To opt a customer in, send customer.opted_in (the example used opt_in, which is ignored).
  • Send Referral Emails (POST /api/v2/referral/share): identify the referrer with email or customer_id. Send emails as a comma-separated string.
  • Remove a Customer from an Action-Based VIP Tier (PUT /api/v2/actions/cancel_all): new example. type must be EnterHighestTier.
  • Data Exists and User Data (GET /api/v2/privacy/data/exists, GET /api/v2/privacy/data): pass email as a query parameter.

Responses

  • Every v2 endpoint now documents 401 for a missing or wrong GUID/API key.
  • Validation errors are documented as 422 with real examples, plus the 404s each endpoint returns.
  • Fetch Customer Details and Fetch All Recently Updated Customers share one fully described customer object.
  • Data Exists returns {"response": {"has_data": ...}} with no status wrapper.

Also fixed

  • Rate limits: limits are set per account. Read yours from the RateLimit-Limit and X-RateLimit-Limit-Minute response headers.
  • Invalid JSON in three response examples, and broken links on the Welcome page and six help-center links.