Developers

Reference

Markdown

Errors

Every error returns the same body: one machine-readable code and the request id. Branch on error.code, never on message text, and quote meta.request_id when you contact support.

JSON
{
  "error": {
    "code": "SCOPE_REQUIRED"
  },
  "meta": {
    "request_id": "3f0c2b8e-7a51-4c1e-9d0a-5b6f1e2d4c3a"
  }
}

400Bad request

INVALID_PUBLIC_REQUEST

The request carries a cookie, or a path containing % or \.

What to doSend from a server without cookies, with a clean path.

DUPLICATE_PUBLIC_HEADER

Repeated header: Authorization, If-Match, Idempotency-Key or Content-Type.

What to doSend each header once.

INVALID_QUERY

The query string is too long, repeats keys, or carries a secret token.

What to doCheck the query limits, and never put tokens in the URL.

INVALID_BODY

The body is not a JSON object, or was sent with GET.

What to doSend a JSON object with POST and PATCH only.

INVALID_FILTER

Invalid filter value, such as a limit outside 1–100.

What to doCorrect the value.

CURSOR_MISMATCH

The cursor was issued for different filters.

What to doRestart the list with the new filters.

CURSOR_EXPIRED

15 minutes have passed since the first page.

What to doRestart the list, and finish it faster.

IDEMPOTENCY_KEY_REQUIRED

The operation requires an Idempotency-Key.

What to doAdd a unique key for each operation.

INVALID_IDEMPOTENCY_KEY

The key is longer than 128 bytes or contains whitespace.

What to doUse a UUID.

INVALID_GRANT_TYPE

Unknown grant_type.

What to doUse authorization_code or refresh_token.

INVALID_GRANT

Missing fields or wrong token prefix.

What to doCheck the request body.

INVALID_CODE

The authorization code expired or was not approved.

What to doAuthorize again.

REDIRECT_URI_MISMATCH

redirect_uri does not match.

What to doUse exactly the same URL.

PKCE_MISMATCH

code_verifier does not match code_challenge.

What to doAuthorize again with a new verifier.

INVALID_REFRESH_TOKEN

The refresh token is unknown or inactive.

What to doAuthorize again.

REFRESH_ALREADY_USED

The refresh token was already exchanged.

What to doUse the latest token pair you stored.

TOKEN_REUSE_DETECTED

Resent after success; all tokens were revoked.

What to doAuthorize again, and fix your retry logic.

EVENT_NOT_SUBSCRIBED

Test webhook for a topic you are not subscribed to.

What to doSubscribe to it first.

INVALID_REPLAY

The replay range is outside the last 7 days, or the reason is missing.

What to doCorrect from, to and reason.

401Unauthorized

INVALID_TOKEN

The access token is missing, malformed or expired.

What to doRefresh the token, then retry the request once.

INVALID_CLIENT

Client authentication failed.

What to doCheck the Client ID, the secret and its validity.

LAUNCH_EXPIRED

The launch URL is older than 5 minutes.

What to doAsk the merchant to open the app again.

LAUNCH_SIGNATURE_INVALID

The launch URL signature does not match.

What to doReject the session.

403Forbidden

SCOPE_REQUIRED

The token does not carry the required scope.

What to doCall /me. If the merchant revoked the scope, disable the feature or request new consent.

SCOPE_NOT_AVAILABLE

The resource is not available to apps.

What to doDo not retry.

RECONSENT_REQUIRED

The version's scopes changed and merchant consent is required.

What to doSend the merchant back through authorization.

PLAN_NOT_ELIGIBLE

The store's plan does not include apps.

What to doTell the merchant; apps are included in the Professional plan.

INSTALLATION_INACTIVE

The installation was uninstalled or suspended.

What to doStop all work for this store.

ENDPOINT_NOT_APPROVED

The URL is not registered in the version.

What to doAdd it in a new version.

SUBSCRIPTION_EXPANSION_REQUIRES_RECONSENT

Adding topics with PATCH.

What to doDelete the subscription and create a new one.

404Not found

RESOURCE_NOT_FOUND

No resource with this ID in this store. A cart that was paid or is no longer abandoned, and a payment still in progress, are not found either.

What to doCheck the ID. The resource may have been deleted.

NOT_FOUND

The path does not exist.

What to doCheck the URL against the API reference.

STORE_UNREGISTERED

The store is not registered with LARM.

What to doStop all work for this store.

405Method not allowed

METHOD_NOT_ALLOWED

The method is not supported on this path.

What to doUse a method listed in the Allow header.

409Conflict

IDEMPOTENCY_CONFLICT

The same key was used for a different request.

What to doUse a new key for each distinct operation.

IDEMPOTENCY_GENERATION_CONFLICT

The key was used before the app was reinstalled.

What to doUse a new key.

OPERATION_IN_PROGRESS

The first request with the same key is still running.

What to doWait a second and retry with the same key.

RESOURCE_CONFLICT

Conflicts with an existing resource.

What to doRead the existing resource.

INSUFFICIENT_STOCK

The quantity is not enough for the requested decrease.

What to doRead the current stock.

ORDER_NOT_PAID

The order is not paid, so it has no digital content.

What to doWait for order.paid.

RESULT_UNAVAILABLE_REAUTHORIZE

The result of the token operation was lost.

What to doCall /oauth/operations/recover, then authorize again.

SUBSCRIPTION_EXISTS

The installation already has a subscription.

What to doUpdate the existing one with PATCH.

412Precondition failed

RESOURCE_CHANGED

The resource changed after you read it.

What to doRead it again, and rebuild the update on the latest version.

413Payload too large

BODY_TOO_LARGE

The body is larger than 64 KB.

What to doSplit the operation.

415Unsupported media type

CONTENT_TYPE_REQUIRED

The body has no Content-Type: application/json.

What to doAdd the header.

422Unprocessable

UNKNOWN_FIELD

Unknown field or filter.

What to doRemove it. Field lists are closed.

EMPTY_MUTATION

The update changes nothing.

What to doSend at least one field.

CATEGORY_NOT_FOUND

The referenced category does not exist.

What to doCreate it first, or use an existing name.

PRICE_CHANGE_TOO_LARGE

The price change is larger than 90%.

What to doConfirm the price with the merchant.

PAGE_MEDIA_NOT_SUPPORTED

The page content contains images or media.

What to doSend text and links only.

ENDPOINT_UNSAFE

The URL is not https or does not resolve to a public address.

What to doUse a public domain with a valid certificate.

428Precondition required

PRECONDITION_REQUIRED

The update requires If-Match.

What to doRead the resource and send its ETag.

429Too many requests

RATE_LIMITED

Rate limit exceeded.

What to doWait for Retry-After, then retry.

AUTHORIZE_RATE_LIMITED

Too many authorization requests.

What to doWait a minute.

500Server error

INTERNAL_ERROR

Unexpected error.

What to doRetry shortly, and send the request_id to support if it persists.

503Unavailable

APPS_SERVICE_UNAVAILABLE

The apps service is temporarily unavailable.

What to doRetry after Retry-After.

APPS_DISABLED

Reads or writes are temporarily disabled.

What to doRetry later.

STORE_MIGRATING

The store is moving between servers.

What to doRetry after a few seconds.

POLICY_UNAVAILABLE

The app policy could not be verified.

What to doRetry after a second.

ROUTE_UNVERIFIED

The store route could not be verified.

What to doRetry after a few seconds.

APPS_SCOPE_RUNTIME_NOT_READY

The resource is not enabled on this merchant's store yet.

What to doRetry after a few hours.

    ↑↓ moveEnter openEsc close