Skip to content

Λίστα παραγγελιών ​

Η κλήση GET /orders επιστρέφει τις παραγγελίες του λογαριασμού σας, με φίλτρα και cursor pagination. Περιλαμβάνει τις παραγγελίες όλων των καταστημάτων του λογαριασμού, είτε δημιουργήθηκαν από το API, είτε χειροκίνητα στο CourierHub, είτε ήρθαν από e-shop. Δεν περιλαμβάνονται οι διαγραμμένες παραγγελίες.

WARNING

Θα πρέπει να συμπεριλάβετε το API Token σας σε κάθε αίτημα ως Bearer Token. Αντικαταστήστε το YOUR_TOKEN με το API Token του καταστήματος (chub_...). Δείτε το Overview.

MethodURIHeaders
GET/api/v2/ordersAuthorization: Bearer YOUR_TOKEN

Μεταβλητές αποστολής ​

Όλες οι παράμετροι είναι προαιρετικές και στέλνονται στο query string. Τα φίλτρα συνδυάζονται με AND.

Variable NameTypeUsageRequired
order_numberStringΟ αριθμός παραγγελίας, με ή χωρίς # (#1001 και 1001 δίνουν το ίδιο αποτέλεσμα), ή το order_id της παραγγελίας (π.χ. 20261015101200482). Ακριβής αντιστοίχιση, όχι αναζήτηση μέρους του αριθμού. Μέγιστο 100 χαρακτήρες.
statusStringΜία από τις καταστάσεις παραγγελίας: pending, processing, shipped, delivered, cancelled, refunded, store_pickup, store_pickup_ready, store_pickup_completed.
ordered_fromDate (Y-m-d)Παραγγελίες με order_date από αυτή την ημερομηνία και μετά (συμπεριλαμβάνεται, από τα μεσάνυχτα).
ordered_toDate (Y-m-d)Παραγγελίες με order_date μέχρι αυτή την ημερομηνία (συμπεριλαμβάνεται ολόκληρη η ημέρα). Πρέπει να είναι ίση ή μεταγενέστερη της ordered_from.
has_shipmentStringtrue / 1: μόνο παραγγελίες με εκδοθέν voucher. false / 0: μόνο παραγγελίες χωρίς voucher.
sortString-created_at (προεπιλογή, νεότερες πρώτα) ή created_at (παλαιότερες πρώτα). Η ταξινόμηση γίνεται με την ημερομηνία δημιουργίας στο CourierHub (created_at), όχι με το order_date.
per_pageInteger1 έως 100. Προεπιλογή 50.
cursorStringΤο meta.next_cursor / meta.prev_cursor προηγούμενης σελίδας.

Ημερομηνίες

Οι ημερομηνίες ordered_from / ordered_to ερμηνεύονται στη ζώνη ώρας της εφαρμογής (Europe/Athens), ενώ οι ώρες στην απάντηση είναι σε UTC. Μια παραγγελία με order_date 2026-10-14T22:30:00Z (01:30 ώρα Ελλάδας στις 15/10) επιστρέφεται με ordered_from=2026-10-15.

Αριθμός παραγγελίας

Ο αριθμός παραγγελίας (order_number) είναι ο δικός σας, ενώ το order_id είναι αριθμός που παράγει το CourierHub (ή το ID του e-shop). Το φίλτρο δέχεται και τα δύο. Επειδή η λίστα καλύπτει όλα τα καταστήματα, ο ίδιος αριθμός μπορεί να επιστρέψει μία παραγγελία ανά κατάστημα. Δείτε order_id και order_number.

Απάντηση αιτήματος ​

Η εφαρμογή σας επιστρέφει δεδομένα σε μορφή JSON με τη μορφή {data, links, meta}. Κάθε στοιχείο του data έχει τα πεδία που περιγράφονται στο GET /orders/{id}, χωρίς τα products και shipments. Για αυτά καλέστε το GET /orders/{id}.

Variable NameTypeDescription
dataArrayΟι παραγγελίες της σελίδας (αντικείμενα order χωρίς products / shipments). Κενός πίνακας αν δεν υπάρχουν αποτελέσματα.
links.next, links.prevString ή nullURL επόμενης / προηγούμενης σελίδας.
meta.per_pageIntegerΤο μέγεθος σελίδας.
meta.next_cursor, meta.prev_cursorString ή nullCursors επόμενης / προηγούμενης σελίδας.

Παράδειγμα επιτυχημένης αναζήτησης (per_page=2, πρώτη σελίδα).

json
{
    "data": [
        {
            "id": 4,
            "order_id": "20261015102700316",
            "order_number": "1004",
            "status": "store_pickup",
            "status_label": "Παραλαβή από Κατάστημα",
            "order_date": "2026-10-15T07:27:00Z",
            "recipient": {
                "name": "Νίκος Ιωάννου",
                "phone": "6900000000",
                "email": "nikos@example.com",
                "address": "Ερμού 1",
                "city": "Αθήνα",
                "postal_code": "10563",
                "country": "GR"
            },
            "receive_from_reception": true,
            "courier": null,
            "services": [],
            "locker_id": null,
            "payment_method": "other",
            "subtotal": "12.90",
            "shipping_cost": "0.00",
            "cod_cost": "0.00",
            "total_amount": "12.90",
            "weight": null,
            "notes": null,
            "has_shipment": false,
            "store": {
                "id": 1,
                "name": "Το Κατάστημά μου"
            },
            "created_at": "2026-10-15T07:27:00Z",
            "updated_at": "2026-10-15T07:27:00Z"
        },
        {
            "id": 3,
            "order_id": "20261015102200731",
            "order_number": "1003",
            "status": "pending",
            "status_label": "Εκκρεμής",
            "order_date": "2026-10-15T07:22:00Z",
            "recipient": {
                "name": "Ελένη Γεωργίου",
                "phone": "6977000111",
                "email": "eleni@example.com",
                "address": "Αγίου Δημητρίου 12",
                "city": "Πάτρα",
                "postal_code": "26221",
                "country": "GR"
            },
            "receive_from_reception": false,
            "courier": {
                "id": 10,
                "name": "Box Now"
            },
            "services": [],
            "locker_id": "4-123",
            "payment_method": "paypal",
            "subtotal": "18.00",
            "shipping_cost": "2.90",
            "cod_cost": "0.00",
            "total_amount": "20.90",
            "weight": null,
            "notes": null,
            "has_shipment": false,
            "store": {
                "id": 1,
                "name": "Το Κατάστημά μου"
            },
            "created_at": "2026-10-15T07:22:00Z",
            "updated_at": "2026-10-15T07:22:00Z"
        }
    ],
    "links": {
        "next": "https://courierhub.gr/api/v2/orders?per_page=2&cursor=eyJjcmVhdGVkX2F0IjoiMjAy...",
        "prev": null
    },
    "meta": {
        "per_page": 2,
        "next_cursor": "eyJjcmVhdGVkX2F0IjoiMjAy...",
        "prev_cursor": null
    }
}

Αναζήτηση με αριθμό παραγγελίας (?order_number=1001, η παραγγελία έχει αποθηκευτεί ως #1001).

json
{
    "data": [
        {
            "id": 1,
            "order_id": "20261015101200482",
            "order_number": "#1001",
            "status": "pending",
            "status_label": "Εκκρεμής",
            "order_date": "2026-10-15T07:05:00Z",
            "recipient": {
                "name": "Μαρία Παπαδοπούλου",
                "phone": "6941234567",
                "email": "maria@example.com",
                "address": "Ερμού 25",
                "city": "Αθήνα",
                "postal_code": "10563",
                "country": "GR"
            },
            "receive_from_reception": false,
            "courier": {
                "id": 8,
                "name": "ACS"
            },
            "services": [],
            "locker_id": null,
            "payment_method": "cod",
            "subtotal": "31.80",
            "shipping_cost": "3.50",
            "cod_cost": "1.50",
            "total_amount": "36.80",
            "weight": "1.200",
            "notes": "Κουδούνι: Παπαδοπούλου",
            "has_shipment": false,
            "store": {
                "id": 1,
                "name": "Το Κατάστημά μου"
            },
            "created_at": "2026-10-15T07:12:00Z",
            "updated_at": "2026-10-15T07:12:00Z"
        }
    ],
    "links": {
        "next": null,
        "prev": null
    },
    "meta": {
        "per_page": 50,
        "next_cursor": null,
        "prev_cursor": null
    }
}

Χωρίς αποτελέσματα (?order_number=99999)

json
{
    "data": [],
    "links": {
        "next": null,
        "prev": null
    },
    "meta": {
        "per_page": 50,
        "next_cursor": null,
        "prev_cursor": null
    }
}

Παράδειγμα σφάλματος (μη έγκυρες παράμετροι).

GET /api/v2/orders?status=lost&ordered_from=15-10-2026&has_shipment=yes&sort=order_date&per_page=500

json
{
    "message": "The given data was invalid.",
    "code": "validation_failed",
    "errors": {
        "per_page": [
            "The per page field must not be greater than 100."
        ],
        "status": [
            "The selected status is invalid."
        ],
        "ordered_from": [
            "The ordered from field must match the format Y-m-d."
        ],
        "has_shipment": [
            "The selected has shipment is invalid."
        ],
        "sort": [
            "The selected sort is invalid."
        ]
    }
}

Καταστάσεις παραγγελίας (status) ​

Η κατάσταση της παραγγελίας είναι διαφορετική από την κατάσταση της αποστολής (voucher).

statusstatus_labelΣημασία
pendingΕκκρεμήςΝέα παραγγελία. Προεπιλογή στη δημιουργία.
processingΕπεξεργασίαΣε επεξεργασία.
shippedΑποστολή με CourierΈχει εκδοθεί voucher.
deliveredΠαραδόθηκεΠαραδόθηκε.
cancelledΑκυρώθηκεΑκυρώθηκε.
refundedΕπιστράφηκεΕπιστράφηκαν τα χρήματα.
store_pickupΠαραλαβή από ΚατάστημαΠαραλαβή από το δικό σας κατάστημα (receive_from_reception: true).
store_pickup_readyΈτοιμο προς ΠαραλαβήΈτοιμη για παραλαβή από το κατάστημα.
store_pickup_completedΠαραλαβή ΟλοκληρώθηκεΟ πελάτης την παρέλαβε.

Από το API μπορείτε να ορίσετε μόνο τα pending και processing (δείτε POST /orders). Οι υπόλοιπες καταστάσεις ορίζονται από το CourierHub (έκδοση voucher, παραλαβή από κατάστημα) ή έρχονται από το e-shop.

Παραδείγματα κλήσεων ​

Οι παραγγελίες του Οκτωβρίου 2026 που δεν έχουν ακόμα voucher, παλαιότερες πρώτα:

bash
curl -G https://courierhub.gr/api/v2/orders \
  -H "Authorization: Bearer chub_YOUR_API_TOKEN" \
  -H "Accept: application/json" \
  --data-urlencode "has_shipment=false" \
  --data-urlencode "ordered_from=2026-10-01" \
  --data-urlencode "ordered_to=2026-10-31" \
  --data-urlencode "sort=created_at" \
  --data-urlencode "per_page=100"

Αναζήτηση με αριθμό παραγγελίας (το # πρέπει να γίνει %23 στο URL, γι' αυτό χρησιμοποιούμε --data-urlencode):

bash
curl -G https://courierhub.gr/api/v2/orders \
  -H "Authorization: Bearer chub_YOUR_API_TOKEN" \
  --data-urlencode "order_number=#1001"

Released under the MIT License.