Skip to main content

Errors

The Pickware ERP API reports problems through the GraphQL errors array in the JSON body, not through HTTP status codes. Inspect the errors field on every response — it is the canonical signal that something went wrong.

HTTP status codes

The endpoint follows the GraphQL-over-HTTP convention: HTTP status codes describe the transport, not the GraphQL operation. Treat them as a coarse-grained signal and read the response body for the actual outcome.

HTTP statusWhen it appearsWhat to do
200 OKThe server received and executed (or attempted to execute) the GraphQL document. The response body still has to be inspected — it may contain errors for individual fields or for the whole operation.Parse the JSON body. If errors is present, handle it according to its code.
400 Bad RequestThe request body could not be parsed as JSON, or it is not a valid GraphQL request envelope.Fix the client. The body usually does not contain a useful GraphQL errors array in this case.
401 UnauthorizedThe Authorization header is missing or the bearer token cannot be validated at all.Provide a valid token. See Authentication.
429 Too Many RequestsThe merchant exceeded its rate-limit bucket and the API rejected the request before executing the GraphQL document.Back off and retry after the retryAfter value in the body. See Rate limits.
5xxA transient server-side problem.Retry with exponential backoff. Include the requestId (when available) if you have to contact support.

In every other case — including operation-level problems such as missing scopes, validation errors, or "not found" — the HTTP status is 200 and the meaningful detail is in the errors array described below.

GraphQL error shape

GraphQL responses can contain both data and errors. A response with partial data may still include errors for fields that could not be resolved.

{
"data": {
"product": null
},
"errors": [
{
"message": "Product not found.",
"path": ["product"],
"extensions": {
"code": "NOT_FOUND",
"requestId": "req_01HX7KQY8Y2Y2G0K6S4KJ5W0F2"
}
}
]
}

Common error codes

CodeMeaningSuggested action
UNAUTHENTICATEDThe access token is missing, invalid, or expired.Exchange your credentials for a fresh access token and retry the request.
FORBIDDENThe token does not have the required scope.Request the missing scope for the token.
VALIDATION_FAILEDThe GraphQL document or variables are invalid.Check the generated API reference for field names and input types.
NOT_FOUNDThe requested resource does not exist or is not visible to the token.Verify the identifier and token permissions.
THROTTLEDThe token exceeded its current rate limit.Wait for the retryAfter value in extensions.

Debugging requests

Every error includes a requestId in extensions when possible. Include this ID when contacting support so the Pickware team can find the failing request quickly.

For schema-level validation errors, compare your operation with the generated reference for fields such as products, stocks, and ProductFilterInput.