{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Campaign Claim — Error Reference"},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"campaign-claim--error-reference","__idx":0},"children":["Campaign Claim — Error Reference"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This page lists every error response your application can receive when claiming a campaign reward"," ","(",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /campaigns/claims"]},") and when reading claim history (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /campaigns/claims/me"]},","," ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /campaigns/claims"]},")."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For the general error envelope, categories, and client-handling patterns, see the"," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/8.error-handling"},"children":["Error Handling guide"]}," — this page only covers what's specific to claiming."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"using-the-explorinspers-sdk","__idx":1},"children":["Using the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["@explorins/pers-sdk"]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you're on the ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.pers.ninja/sdk-intro"},"children":["PERS SDK"]}," rather than calling the REST API"," ","directly, claims go through ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sdk.campaigns.claimCampaign(...)"]}," and surface the same error codes"," ","wrapped in the SDK's own error classes (",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.pers.ninja/sdk-intro#error-handling"},"children":["SDK Error Handling"]},"):"]},{"$$mdtype":"Tag","name":"CodeBlock","attributes":{"data-language":"typescript","header":{"controls":{"copy":{}}},"source":"import { PersApiError, AuthenticationError } from \"@explorins/pers-sdk/core\";\n\ntry {\n  const claim = await sdk.campaigns.claimCampaign({\n    campaignId: \"campaign-123\",\n    businessId: \"business-456\" // optional business context\n  });\n} catch (error) {\n  if (error instanceof AuthenticationError) {\n    // 401 — redirect to login\n  } else if (error instanceof PersApiError) {\n    // The SDK passes the full backend structured error through onto the thrown\n    // instance — not just status/message: error.code, error.category, error.domain,\n    // error.retryable, and error.details all map 1:1 to the tables below.\n    console.error(\"Claim failed:\", error.code, error.status, error.category, error.retryable);\n  }\n}\n","lang":"typescript"},"children":[]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"post-campaignsclaims--claim-a-campaign-reward","__idx":2},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["POST /campaigns/claims"]}," — Claim a campaign reward"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"HTTP"},"children":["HTTP"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"code"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Retryable"},"children":["Retryable"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"What it means"},"children":["What it means"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"What to do"},"children":["What to do"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["401"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AUTHENTICATION_REQUIRED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["You're not signed in."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sign the user in and retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["401"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INVALID_TOKEN"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TOKEN_EXPIRED"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TOKEN_REVOKED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Your access token is invalid, expired, or revoked."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Refresh the token (or re-authenticate), then retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["404"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_NOT_FOUND"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["campaignId"]},"/",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["triggerSourceId"]}," you sent doesn't match any campaign."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Check the ID and retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["404"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRIGGER_SOURCE_NOT_FOUND"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["triggerSourceId"]}," you sent doesn't exist (e.g. a stale/invalid QR code)."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Re-scan/re-fetch a valid trigger source."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["400"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["VALIDATION_ERROR"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Malformed input — e.g. ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["campaignId"]}," doesn't match the trigger source's campaign, the campaign has multiple trigger sources and you didn't specify which one, or neither ID was provided. Check ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["message"]}," for specifics."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Fix the request and retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["409"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_NOT_ACTIVE"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["This campaign isn't currently active."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Not actionable by retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["409"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_ENDED"]}," / ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_NOT_STARTED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The campaign's date window doesn't cover now."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Not actionable by retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["422"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_USER_INFO_REQUIRED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Claiming requires a user profile field (or a user identifier for business/system claims) that wasn't provided. See ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["details.missingFields"]},"."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Prompt for the missing field/identifier and retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["422"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_BUSINESS_REQUIRED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["This campaign must be claimed on behalf of a business, and none was provided."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Provide business context and retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["400"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_LOCATION_REQUIRED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["This campaign checks proximity to a location and no user location was sent."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Send ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["latitude"]},"/",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["longitude"]}," and retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["422"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_DISTANCE_EXCEEDED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The user is too far from the required location."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Not actionable by retry — the user needs to be physically closer."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["422"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_CONDITION_NOT_MET"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["A campaign-specific condition wasn't satisfied (e.g. a custom metadata condition, a per-source/global claim limit, or a trigger-type mismatch). Check ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["message"]}," for which condition."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Depends on the condition — usually not actionable by retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["400"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["LOCATION_VERIFICATION_REQUIRED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["This campaign has a country restriction and we couldn't determine the user's location."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Ensure location data is sent with the request, then retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["422"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GEOGRAPHIC_RESTRICTION"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["This campaign isn't available in the user's country."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Not actionable by retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["409"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_ALREADY_CLAIMED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The user (or the given ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["externalReferenceId"]},"/business) has already claimed this campaign. Permanent — not retryable."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Not actionable by retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["409"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_CLAIM_ALREADY_PROCESSING"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The user has a claim for this campaign currently in progress. Transient."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Don't retry immediately — poll ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /campaigns/claims/me?campaignId=..."]}," (using the claim ID from the error) instead of resubmitting."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["409"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_CLAIM_LIMIT_REACHED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The user has already claimed this campaign the maximum number of times allowed."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Not actionable by retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["409"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_DAILY_LIMIT_REACHED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The user (or business) has reached today's claim limit for this campaign."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Retry after the daily window resets."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["409"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_GLOBAL_LIMIT_REACHED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["This campaign has reached its total claim limit across all users."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Not actionable by retry — the campaign is exhausted."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["409"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_GLOBAL_DAILY_LIMIT_REACHED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["This campaign has reached its total claim limit for today across all users."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Retry after the daily window resets."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["422"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WALLET_MISSING_SIGNING"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The user's (or business's) wallet needs a one-time signing-account setup before it can receive the reward."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Complete wallet/signing setup, then retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["429"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_COOLDOWN_ACTIVE"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes (after cooldown)"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The user must wait between claims for this campaign. See ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["details.resetTime"]}," (ISO 8601 timestamp) and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["details.window"]},"."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Retry after the cooldown elapses."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["422"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BUSINESS_NOT_MINTER"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The business isn't authorized to send this reward token."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Contact support/admin to authorize the business as a minter."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["422"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_NO_TRIGGER"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["No"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["The campaign is misconfigured (no trigger). This is a server-side configuration issue, not a client error."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Contact support — this needs admin correction of the campaign setup."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["500"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SYSTEM_ERROR"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Yes"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["An unexpected error occurred while processing the reward transaction. The claim was marked as failed — no reward was left in an inconsistent state."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Safe to retry after a short delay. If it keeps happening, contact support with the timestamp."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Note on ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["409 CAMPAIGN_CLAIM_ALREADY_PROCESSING"]}]},": this is expected behavior for double-submits"," ","(e.g. a user double-tapping \"Claim\"), not necessarily an error state — debounce the claim button"," ","client-side."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Note on completion-threshold campaigns"]},": if a campaign has a claim-count threshold that hasn't"," ","been reached yet, a successful claim (",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["200"]},") is returned ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["without"]}," a reward transaction — this"," ","is expected, not an error. The reward is granted once the threshold is met on a later claim."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"get-campaignsclaimsme--get-campaignsclaims","__idx":3},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /campaigns/claims/me"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /campaigns/claims"]}]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"HTTP"},"children":["HTTP"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"code"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["code"]}]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"What it means"},"children":["What it means"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"What to do"},"children":["What to do"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["401"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AUTHENTICATION_REQUIRED"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["You're not signed in."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Sign in and retry."]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["400"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["VALIDATION_ERROR"]}]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Admin list queries: you filtered by both ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["userId"]}," and ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["businessId"]}," at once (not supported)."]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":["Use one or the other."]}]}]}]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["There is no ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GET /campaigns/claims/{id}"]}," endpoint — retrieve claims via the list/",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["me"]}," endpoints."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"quick-reference--all-codes-for-this-flow-by-http-status","__idx":4},"children":["Quick reference — all codes for this flow, by HTTP status"]},{"$$mdtype":"Tag","name":"div","attributes":{"className":"md-table-wrapper"},"children":[{"$$mdtype":"Tag","name":"table","attributes":{"className":"md"},"children":[{"$$mdtype":"Tag","name":"thead","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"HTTP"},"children":["HTTP"]},{"$$mdtype":"Tag","name":"th","attributes":{"data-label":"Codes"},"children":["Codes"]}]}]},{"$$mdtype":"Tag","name":"tbody","attributes":{},"children":[{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["400"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["VALIDATION_ERROR"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_LOCATION_REQUIRED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["LOCATION_VERIFICATION_REQUIRED"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["401"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AUTHENTICATION_REQUIRED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["INVALID_TOKEN"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TOKEN_EXPIRED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TOKEN_REVOKED"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["404"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_NOT_FOUND"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["TRIGGER_SOURCE_NOT_FOUND"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["409"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_ALREADY_CLAIMED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_CLAIM_ALREADY_PROCESSING"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_CLAIM_LIMIT_REACHED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_DAILY_LIMIT_REACHED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_GLOBAL_LIMIT_REACHED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_GLOBAL_DAILY_LIMIT_REACHED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_NOT_ACTIVE"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_ENDED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_NOT_STARTED"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["422"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["WALLET_MISSING_SIGNING"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_USER_INFO_REQUIRED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_CONDITION_NOT_MET"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_BUSINESS_REQUIRED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_DISTANCE_EXCEEDED"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["GEOGRAPHIC_RESTRICTION"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["BUSINESS_NOT_MINTER"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_NO_TRIGGER"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["429"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["CAMPAIGN_COOLDOWN_ACTIVE"]}]}]},{"$$mdtype":"Tag","name":"tr","attributes":{},"children":[{"$$mdtype":"Tag","name":"td","attributes":{},"children":["500"]},{"$$mdtype":"Tag","name":"td","attributes":{},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["SYSTEM_ERROR"]}]}]}]}]}]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For the underlying error envelope, categories, and general client-side handling patterns, see the"," ",{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"/8.error-handling"},"children":["Error Handling guide"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"related-documentation","__idx":5},"children":["Related documentation"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.pers.ninja/8.error-handling"},"children":["PERS Error Handling"]}," — response envelope, categories, correlation IDs"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.pers.ninja/5.authentication-guide"},"children":["PERS Authentication Guide"]}," — the 401 auth errors referenced above"]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.pers.ninja/sdk-intro"},"children":["PERS SDK Introduction"]}," — ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["sdk.campaigns.claimCampaign"]},", ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["PersApiError"]},"/",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["AuthenticationError"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"MarkdownLink","attributes":{"href":"https://docs.pers.ninja/sdk-reference/readme"},"children":["PERS SDK Reference"]}," — full generated API reference"]}]}]},"headings":[{"value":"Campaign Claim — Error Reference","id":"campaign-claim--error-reference","depth":1},{"value":"Using the @explorins/pers-sdk","id":"using-the-explorinspers-sdk","depth":2},{"value":"POST /campaigns/claims — Claim a campaign reward","id":"post-campaignsclaims--claim-a-campaign-reward","depth":2},{"value":"GET /campaigns/claims/me , GET /campaigns/claims","id":"get-campaignsclaimsme--get-campaignsclaims","depth":2},{"value":"Quick reference — all codes for this flow, by HTTP status","id":"quick-reference--all-codes-for-this-flow-by-http-status","depth":2},{"value":"Related documentation","id":"related-documentation","depth":2}],"frontmatter":{"seo":{"title":"Campaign Claim — Error Reference"}},"lastModified":"2026-08-24T16:05:41.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/campaign-claim-errors","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}