Skip to content

שגיאות

כל שגיאה של v2 API (בתחום api/v2/*) מעובדת למעטפת אחת ויציבה. כך לקוחות יכולים להסתעף לפי code קריא-מכונה במקום לנתח טקסט חופשי.

מעטפת השגיאה

json
{
  "error": {
    "code": "validation_failed",
    "message": "The given data was invalid",
    "status": 422,
    "details": [ ... ]
  }
}
Keyסוגתיאור
codestringקוד שגיאה יציב וקריא-מכונה (ראו טבלה בהמשך).
messagestringתיאור קריא-אנוש.
statusintקוד סטטוס HTTP, זהה לסטטוס התגובה.
detailsarray/objectאופציונלי. מידע ברמת השדה. מושמט לחלוטין כשהוא ריק (מפתחות עם ערך null מוסרים מהמעטפת).

שדה ה-details בשגיאות ולידציה

כאשר נזרקת ValidationException של Laravel, details הוא רשימה של אובייקטים לכל שדה:

json
{
  "error": {
    "code": "validation_failed",
    "message": "The given data was invalid",
    "status": 422,
    "details": [
      { "field": "recipient_phone", "issues": ["The recipient phone field is required."] }
    ]
  }
}

שגיאות שנזרקות ישירות על ידי ה-API (למשל מקרה ריבוי הרישיונות) עשויות לשאת במקום זאת מפה ממופתחת ב-details — ראו רישיונות.

קודי שגיאה

codeStatusמשמעות
unauthenticated401פרטי לקוח חסרים או שגויים. ראו אימות.
forbidden403מאומת, אבל אסור: רישיון לא בבעלותכם, לא פעיל, פג תוקף, או שאין רישיון פעיל.
package_limit_reached403מכסת המשלוחים של המנוי בחשבון (max_no_of_shipping) מוצתה.
not_found404המשאב לא נמצא. מוחזר גם עבור נתיבים לא מוכרים ומודלים חסרים.
validation_failed422נתוני הבקשה נכשלו בוולידציה; ראו details.
duplicate_request409בקשה תואמת כבר נמצאת בתהליך.
idempotency_key_conflict409נעשה שימוש חוזר ב-Idempotency-Key עם גוף בקשה שונה.
carrier_error424חברת השליחויות במעלה הזרם לא הצליחה לעבד את הבקשה.
server_error500שגיאת שרת בלתי צפויה. בסביבת production ההודעה ממוסכת ל-An unexpected error occurred.
errorאחרברירת מחדל לכל חריגת HTTP אחרת; status משקף את הסטטוס של אותה חריגה.