Skip to content

API errors

Errors use RFC 9457 problem details with Content-Type: application/problem+json:

{
"type": "https://help.termpact.com/api/errors/validation_failed",
"title": "The request is not valid",
"status": 422,
"errors": [{ "field": "base_bp", "code": "too_big", "message": "Too big: expected number to be <=10000" }]
}

The type is stable; the title and messages may change wording.

Type Status Meaning
not_found 404 The path or the object doesn’t exist in your store.
method_not_allowed 405 The path exists but not with this method; see the Allow header.
validation_failed 422 The body, query or a business rule refused the request; errors lists each field. A fixed price above the variant’s retail price is refused this way.
insufficient_scope 403 The key lacks the scope the endpoint needs.
plan_required 403 The store isn’t on the Pro plan.
read_only 402 The subscription isn’t active; reads work, writes don’t.
shop_read_only 503 Writes are paused for this store while Termpact checks a problem. Reads work; retry after Retry-After.
conflict 409 The change conflicts with current data, for example deleting a price list that locations still use.
idempotency_key_required 400 A POST without a valid Idempotency-Key.
idempotency_key_reused 422 The key was already used with a different request.
idempotency_in_progress 409 The first request with this key is still running; retry after Retry-After.
payload_too_large 413 The body is over 1 MB.
unsupported_media_type 415 The body isn’t application/json.
rate_limited 429 Too many requests; wait for Retry-After seconds.
unavailable 503 A temporary problem on our side; retry with backoff.