API error codes
When a call fails, the response is a Problem Details object (RFC 9457) with a code and a link to that code's page.
| Code | HTTP status | Meaning |
|---|---|---|
IDEMPOTENCY_KEY_INVALID | 400 | Invalid Idempotency-Key |
IDEMPOTENCY_KEY_REQUIRED | 400 | Idempotency-Key required |
INVALID_CURSOR | 400 | Invalid page cursor |
VALIDATION_FAILED | 400 | The request is invalid |
INVALID_CREDENTIALS | 401 | Wrong e-mail or password |
OAUTH_REJECTED | 401 | Sign-in with that account failed |
PASSKEY_REJECTED | 401 | Passkey not accepted |
TOKEN_EXPIRED | 401 | Link has expired |
TOKEN_INVALID | 401 | Link is not valid |
TOKEN_USED | 401 | Link already used |
UNAUTHENTICATED | 401 | Authentication failed |
CREDIT_EXPIRED | 402 | Credit expired |
NO_CREDIT | 402 | Not enough credit |
ACCOUNT_SUSPENDED | 403 | Account suspended |
FORBIDDEN | 403 | Not allowed |
INVITE_EMAIL_MISMATCH | 403 | This invite is for a different email |
KEY_NOT_YOURS | 403 | You cannot change or revoke an API key someone else created |
NOT_VIA_API_KEY | 403 | Not available with an API key |
ORIGIN_NOT_ALLOWED | 403 | This request must come from the Checkslip web app |
PASSWORD_INCORRECT | 403 | Current password is wrong |
PHONE_NOT_VERIFIED | 403 | Mobile number not confirmed |
ROLE_NOT_ALLOWED | 403 | Your role in this team cannot do this |
STEP_UP_REQUIRED | 403 | Re-authentication required |
TWO_STEP_REQUIRED | 403 | Two-step code required |
ATTACHMENT_NOT_FOUND | 404 | Attachment not found |
DELIVERY_NOT_FOUND | 404 | Delivery not found |
ENDPOINT_NOT_FOUND | 404 | Endpoint not found |
KEY_NOT_FOUND | 404 | API key not found |
NOT_FOUND | 404 | Not found |
OAUTH_NOT_LINKED | 404 | That account is not connected to Checkslip |
ORDER_NOT_FOUND | 404 | Order not found |
PACKAGE_NOT_FOUND | 404 | Package not found |
RECEIPT_NOT_FOUND | 404 | Receipt not found |
TICKET_NOT_FOUND | 404 | Ticket not found |
ALREADY_MEMBER | 409 | This email is already in the team |
ATTACHMENT_LIMIT_REACHED | 409 | Attachment limit reached |
BILLING_INFO_REQUIRED | 409 | Receipt details missing |
DELETE_BALANCE_CHANGED | 409 | Credit balance changed before deletion |
ENDPOINT_DISABLED | 409 | Endpoint is disabled |
ENDPOINT_LIMIT_REACHED | 409 | Endpoint limit reached |
EXPORT_NOT_READY | 409 | Export not ready |
HOME_WORKSPACE | 409 | A first team cannot be deleted on its own |
IDEMPOTENCY_IN_FLIGHT | 409 | Original request still in progress |
KEY_LIMIT_REACHED | 409 | Active API key limit reached |
KEY_NOT_ACTIVE | 409 | This API key is no longer active |
LAST_OWNER | 409 | An account always needs an owner |
LAST_SIGN_IN_METHOD | 409 | An account always needs a way to sign in |
OAUTH_ALREADY_LINKED | 409 | An account from this provider is already connected |
OAUTH_EMAIL_IN_USE | 409 | This email already has a Checkslip account |
OAUTH_IN_USE | 409 | That account is connected to another user |
ORDER_ALREADY_PAID | 409 | This order is already paid |
ORDER_CANCELLED | 409 | This order was cancelled |
ORDER_PENDING | 409 | An order is waiting for payment |
OWNS_OTHER_WORKSPACES | 409 | Still the owner of another team |
PASSWORD_NOT_SET | 409 | This account has no password yet |
PASSWORD_SET | 409 | This account already has a password |
PAYLOAD_INTEGRITY_MISMATCH | 409 | Cannot resend: the original message was not kept |
PHONE_TAKEN | 409 | Phone number in use by another account |
ROTATION_IN_PROGRESS | 409 | Secret rotation in progress |
STALE_WRITE | 409 | Changed since you loaded it |
TICKET_CLOSED | 409 | Ticket is closed |
TICKET_LIMIT_REACHED | 409 | Too many open tickets |
TICKET_NOT_CLOSED | 409 | Ticket is not closed |
TICKET_REOPEN_EXPIRED | 409 | Reopen window has passed |
TICKET_VERSION_CONFLICT | 409 | Ticket was changed |
TOO_MANY_INVITES | 409 | Too many invites awaiting a reply |
TOO_MANY_WORKSPACES | 409 | Already own the maximum number of teams |
TWO_STEP_ALREADY_ON | 409 | Two-step sign-in is already on |
TWO_STEP_NOT_SET_UP | 409 | Two-step sign-in not set up yet |
ATTACHMENT_EXPIRED | 410 | Attachment removed |
ENDPOINT_DELETED | 410 | Endpoint was deleted |
EXPORT_EXPIRED | 410 | Export expired |
OTP_EXPIRED | 410 | Code no longer valid |
PAYLOAD_EXPIRED | 410 | Payload no longer available |
ATTACHMENT_TOO_LARGE | 413 | File is too large to attach |
PAYLOAD_TOO_LARGE | 413 | Payload too large |
ATTACHMENT_TYPE_NOT_ALLOWED | 415 | This file type cannot be attached |
UNSUPPORTED_MEDIA_TYPE | 415 | Unsupported media type |
MISDIRECTED_REQUEST | 421 | Request sent to the wrong host |
ATTACHMENT_INFECTED | 422 | File failed the virus scan |
ATTACHMENT_UNREADABLE | 422 | This image could not be read |
AVATAR_REFUSED | 422 | This picture cannot be used as a profile picture |
CAPTCHA_FAILED | 422 | Bot check failed |
DESTINATION_BLOCKED | 422 | Destination not allowed |
DNS_UNRESOLVABLE | 422 | Host could not be resolved |
IDEMPOTENCY_KEY_REUSED | 422 | Idempotency-Key reused for a different request |
INVALID_FILE | 422 | File cannot be read |
INVALID_QR | 422 | Invalid QR |
MULTIPLE_SLIP_QR | 422 | More than one slip QR in one image |
OTP_INVALID | 422 | Wrong code |
PACKAGE_NOT_FOR_SALE | 422 | This package cannot be bought |
PHONE_NOT_SUPPORTED | 422 | Only Thai mobile numbers |
QR_TAMPERED | 422 | QR tampered |
RANGE_TOO_LARGE | 422 | Range too large |
RECOVER_WINDOW_INVALID | 422 | Invalid recover window |
TOO_OLD | 422 | Too old |
TWO_STEP_CODE_INVALID | 422 | Wrong two-step code |
UNKNOWN_EVENT_TYPE | 422 | Unknown event type |
URL_HAS_USERINFO | 422 | URL contains credentials |
URL_NOT_HTTPS | 422 | URL must use https |
RATE_LIMITED | 429 | Rate limit exceeded |
INTERNAL | 500 | Internal error |
ATTACHMENT_SCAN_UNAVAILABLE | 503 | File scanning temporarily unavailable |
AVATAR_CHECK_UNAVAILABLE | 503 | Picture check temporarily unavailable |
CAPTCHA_UNAVAILABLE | 503 | Bot check temporarily unavailable |
CREDIT_UNAVAILABLE | 503 | Cannot check or hold credits right now |
PAYMENTS_UNAVAILABLE | 503 | Payments unavailable |
SERVICE_UNAVAILABLE | 503 | Temporarily unavailable |
SMS_UNAVAILABLE | 503 | SMS temporarily unavailable |
STEP_UP_UNAVAILABLE | 503 | Re-authentication check temporarily unavailable |
UNAVAILABLE | 503 | Unavailable |
GATEWAY_TIMEOUT | 504 | The answer took too long |