Skip to content

Error Codes

Success responses

Situation HTTP Body
Write accepted 202 {"batch_id":"...","status":"ACCEPTED","record_count":200,"warnings":[]}
Duplicate batch_id 200 {"batch_id":"...","status":"ALREADY_RECEIVED"}
GET succeeded 200 Data

Note

202 Accepted means the request was received and passed validation — not that the data has been reconciled. Correctness is confirmed by the reconciliation result.

Error format

{
  "error": {
    "code": "INVALID_PAYLOAD",
    "message": "trade_records[3].total_amount must be a decimal string",
    "request_id": "8a1f3c2e-..."
  }
}
Field Description
code Machine-readable error code. Base your logic on this field.
message English, for debugging. Wording may change; do not parse it.
request_id Same as the X-Request-Id response header. Include it when contacting support.

Error codes

HTTP code When What to do
400 INVALID_PAYLOAD Invalid format, type, required field, enum or decimal places Fix and resend with a new batch_id
400 UNKNOWN_STANDARD_CODE A mapping's standard_code does not exist Fix and resend with a new batch_id
400 BATCH_TOO_LARGE More records than your batch limit Split and resend with new batch_ids
401 UNAUTHORIZED Missing or invalid API key Check the x-functions-key header; contact HQ if the key was changed
403 FORBIDDEN Your account is not fully set up Contact HQ
403 STORE_NOT_ALLOWED store_id is not registered for your account Contact HQ
403 PARTNER_INACTIVE Your partner account is inactive Contact HQ
404 NOT_FOUND Path or code_type does not exist Check the path
413 PAYLOAD_TOO_LARGE Body larger than 5 MB Split into smaller batches
429 RATE_LIMITED More than 120 requests per minute Wait for Retry-After, then retry
500 / 503 SERVER_ERROR Temporary server error Retry with exponential backoff using the same batch_id

Warning codes

Warnings appear in warnings of a 202 response. The data is accepted.

code When
AMOUNT_MISMATCH A transaction does not satisfy the amount identity