Errors
Every error is JSON with a code and a message. The code is the contract: build on it. The message is in English and can change. A validation error also has errors, with the messages of each field.
{
"code": "validation_failed",
"message": "…",
"errors": { "starts_at": ["…"] }
}
Every response carries an X-Request-Id header. Send it when you ask for help.
| Status | Code | Meaning |
|---|---|---|
| 401 | unauthenticated |
The key is missing, wrong, revoked or expired |
| 401 | wrong_address |
A key was sent to the panel address; the right one is in address |
| 403 | missing_scope |
The key does not have the scope; it is in required_scope |
| 403 | forbidden |
The key cannot do this to this record |
| 403 | organization_suspended |
The organizer is suspended or closed: the key only reads |
| 404 | not_found |
It does not exist, or it belongs to another organizer |
| 405 | method_not_allowed |
The path exists with other methods, listed in the Allow header |
| 409 | idempotency_conflict |
Same Idempotency-Key with another request, or the first is still running |
| 409 | sold_out |
No more tickets or spots of this type |
| 409 | state_conflict |
Not possible in the current state, such as a check-in with an invalid ticket |
| 422 | validation_failed |
Some fields are invalid; see errors |
| 422 | cannot_publish |
Something is still missing to publish; see missing |
| 4xx | request_failed |
Another client error; the status and message say which |
| 429 | rate_limited |
Too many calls; wait for the Retry-After header, in seconds |
| 500 | server_error |
Something failed on our side; send us the X-Request-Id |
A check-in that cannot happen also says why in result.
Why an item does not publish
cannot_publish lists the reasons in missing, so you can fix them together. New reasons can appear (see versioning).
| Reason | What to do |
|---|---|
organization_active |
The organizer is not active yet |
cover |
Upload a cover image |
offer |
Create at least one visible ticket type with a batch (or spot type in a course) |
future_date |
The last day of the event must be in the future |
batch_path |
A batch would never open: check the dates and quantities of the batches |
seats |
A ticket type is linked to a numbered sector that has no seats yet |
batch_price |
The item is paid and a batch has no price |
lesson |
Courses only: add at least one lesson |
free_items_off |
Free items are turned off for this organizer |
paid_sales_off |
Paid sales are not available for this organizer yet: publish it free, or wait for them |