خطاها
خطاها سندهای problem طبق RFC 9457(در زبانه جدید باز میشود) هستند (Content-Type: application/problem+json):
{
"type": "about:blank",
"title": "Invalid request",
"status": 400,
"detail": "unknown country",
"code": "unknown_country",
"request_id": "01a166eb2f3a76c8b7c8a8c37d21aae3"
}codeثابت است و برای برنامهها در نظر گرفته شده است. منطق برنامه را بر پایهٔ آن بنویسید، نه بر پایهٔdetailکه عبارتش ممکن است تغییر کند.request_idدر سرآیندX-Request-Idهم فرستاده میشود. وقتی با پشتیبانی تماس میگیرید، آن را ذکر کنید. میتوانیدX-Request-Idخودتان را بفرستید (۸ تا ۶۴ نویسه از حروف، ارقام،.،_یا-) تا لاگها را به هم ربط دهید.- ورودیای که با schema جور نباشد، پاسخ
400با کدinvalid_requestو فهرستerrorsمیگیرد: برای هر فیلد یک اشارهگر JSON (JSON pointer)، یک کد و یک پیام.
وضعیتها
| وضعیت | معنا | تکرار؟ |
|---|---|---|
| 400 | درخواست معتبر نیست (code دلیلش را میگوید) | پس از اصلاح آن |
| 401 | اعتبارنامهای فرستاده نشده، یا معتبر نیست | پس از اصلاح آن |
| 403 | اعتبارنامه معتبر است، اما اجازه ندارد (code ممکن است دلیلش را بگوید، مثلاً no_org_read) | خیر |
| 404 | پیدا نشد، یا مال شما نیست (API این دو را از هم جدا نمیکند) | خیر |
| 409 | با وضعیت فعلی تعارض دارد (code میگوید کدام) | پس از خواندن دوبارهٔ وضعیت |
| 413 | بدنهٔ درخواست بیش از حد بزرگ است | خیر |
| 429 | محدودیت نرخ یا سهمیهٔ روزانه (rate_limited، quota_exceeded) | پس از Retry-After |
| 5xx | خطای ما، یا خطای یکی از شرکا (503 با یک code مثل escrow_unavailable) | با فاصلهٔ فزاینده (backoff) |
کدهایی که زیاد با آنها روبهرو میشوید: invalid_request، unauthorized، forbidden، not_found، rate_limited، quota_exceeded، personal_data (متن شامل شمارهٔ تلفن، نشانی ایمیل یا شمارهٔ هویتی بود)، unknown_country، webhook_url_refused، unknown_event_types، too_many_webhooks، rotation_pending، webhook_disabled. سند OpenAPI همهٔ کدهایی را که هر عملیات ممکن است برگرداند فهرست میکند.