Skip to content
Syncore

Σφάλματα

Το API απαντά πάντα JSON, ακόμη κι αν το αίτημα δεν στέλνει Accept: application/json.

Μορφή σφάλματος

Κάθε σφάλμα έχει πεδίο message με περιγραφή για ανθρώπους. Τα σφάλματα επικύρωσης (422) έχουν και errors, με λίστα κωδικών ή μηνυμάτων ανά πεδίο:

{
  "message": "The quantity field is required.",
  "errors": {
    "quantity": ["The quantity field is required."]
  }
}

Για λογική στον κώδικά σου βασίσου στον κωδικό HTTP και στα κλειδιά του errors, όχι στο κείμενο του message, που μπορεί να αλλάξει.

Κωδικοί

Κωδικός Σημασία Τι κάνεις
200 Επιτυχία —
201 Δημιουργήθηκε —
204 Διαγράφηκε (χωρίς σώμα) —
401 Λείπει ή είναι λάθος / ληγμένο το token Έλεγξε το header Authorization
402 Η επιχείρηση δεν έχει ενεργή συνδρομή Ενεργοποίησε συνδρομή στο Syncore
403 Το token δεν έχει το δικαίωμα (ability), ή ο χρήστης δεν επιτρέπεται στο API Φτιάξε token με τη σωστή ability
404 Δεν βρέθηκε — ή ανήκει σε άλλη επιχείρηση Έλεγξε το id / SKU
422 Λάθος δεδομένα ή μη επιτρεπτή ενέργεια Διάβασε το errors
429 Ξεπεράστηκε το όριο αιτημάτων Περίμενε Retry-After δευτερόλεπτα
500 Σφάλμα στο Syncore Ξαναδοκίμασε αργότερα

402 — χωρίς συνδρομή

{ "message": "Δεν υπάρχει ενεργή συνδρομή." }

403 — χρήστης εκτός API πελατών

{ "message": "Το token δεν επιτρέπεται στο API πελατών." }

429 — όριο αιτημάτων

{ "message": "Πάρα πολλά αιτήματα. Δοκίμασε ξανά σε λίγο." }

με headers Retry-After, X-RateLimit-Limit και X-RateLimit-Remaining: 0. Δες Αυθεντικοποίηση & όρια.

Ειδικοί κωδικοί στο errors

Πεδίο / κωδικός Πότε
status: ["transition_not_allowed"] Η αλλαγή κατάστασης παραγγελίας ή η αποστολή δεν επιτρέπεται τώρα. Η απάντηση της αλλαγής κατάστασης έχει και allowed με τις επιτρεπτές καταστάσεις.
enabled: ["plan_limit"] Η ενεργοποίηση προϊόντος ξεπερνά το όριο του πλάνου.
{
  "message": "Η αλλαγή κατάστασης δεν επιτρέπεται.",
  "errors": { "status": ["transition_not_allowed"] },
  "allowed": ["processing", "cancelled"]
}

Επαναλήψεις

  • 429 και 5xx: ξαναδοκίμασε με αναμονή (exponential backoff).
  • 4xx (εκτός του 429): μην ξαναστέλνεις το ίδιο αίτημα· διόρθωσέ το.
  • Το POST /orders είναι idempotent στο external_ref: η επανάληψη επιστρέφει την ίδια παραγγελία με 200.