API λογαριασμού2026-11Προεπισκόπηση
Endpoints webhook
Τα URL στα οποία κάνουμε POST συμβάντα. Τα συμβάντα, τα payloads, η υπογραφή και οι επαναλήψεις είναι στα Webhooks.
Endpoints
- POST/v1/webhook_endpointsΔημιουργία endpoint
- GET/v1/webhook_endpointsΛίστα endpoints
- GET/v1/webhook_endpoints/{id}Ανάκτηση endpoint
- PATCH/v1/webhook_endpoints/{id}Ενημέρωση endpoint
- DELETE/v1/webhook_endpoints/{id}Διαγραφή endpoint
- POST/v1/webhook_endpoints/{id}/rotate_secretΕναλλαγή μυστικού
- POST/v1/webhook_endpoints/{id}/testΑποστολή δοκιμαστικού συμβάντος
- GET/v1/webhook_endpoints/{id}/deliveriesΛίστα παραδόσεων
- POST/v1/webhook_endpoints/{id}/deliveries/{delivery}/retryΝέα αποστολή παράδοσης
Το αντικείμενο Webhook endpoint
idstring- Ξεκινά με we_.
urlstring- Ένα δικό σας https URL που απαντά 2xx.
descriptionstring|null- Για εσάς.
events[]array- Οι τύποι συμβάντων προς αποστολή, ή
*για όλους, μαζί με όσους προστεθούν αργότερα: order.created, order.paid, order.bought, order.checked, order.shipped, product.cost_changed, product.out_of_stock, qc.issue. statusstring- enabled ή disabled (από εσάς, ή από εμάς μετά από πέντε ημέρες όπου απέτυχε κάθε παράδοση· σας στέλνουμε πρώτα email).
api_versionstring- Η έκδοση με την οποία γράφονται τα payloads των συμβάντων· του κλειδιού κατά τη δημιουργία.
secretstring- Το μυστικό υπογραφής. Μόνο στις απαντήσεις δημιουργίας και εναλλαγής.
{
"id": "we_3d8s",
"url": "https://acme-goods.com/hooks/ninjabuy",
"description": "Order sync",
"events": ["order.shipped", "product.out_of_stock", "qc.issue"],
"status": "enabled",
"api_version": "2026-11",
"created_at": "2026-11-01T08:00:00Z"
}Δημιουργία endpoint
POST/v1/webhook_endpoints
Επιστρέφει το μυστικό υπογραφής μία φορά: αποθηκεύστε το τώρα. Έως 16 endpoints ανά λογαριασμό.
Scopewebhooks:write
Σώμα
urlstringυποχρεωτικό- Μόνο https.
events[]arrayυποχρεωτικό- Τύποι συμβάντων, ή ["*"].
descriptionstring- Προαιρετικό.
Σφάλματα
| Κατάσταση | Τύπος | Πότε |
|---|---|---|
| 400 | bad-body | Το URL δεν είναι https ή ένας τύπος συμβάντος είναι άγνωστος. |
| 409 | invalid-state | Ο λογαριασμός έχει ήδη 16 endpoints. |
curl -X POST "https://www.ninjabuy.com/api/v1/webhook_endpoints" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"url": "https://acme-goods.com/hooks/ninjabuy",
"events": ["order.shipped", "product.out_of_stock", "qc.issue"],
"description": "Order sync"
}'HTTP/2 201 Created
{
"id": "we_3d8s",
"url": "https://acme-goods.com/hooks/ninjabuy",
"description": "Order sync",
"events": ["order.shipped", "product.out_of_stock", "qc.issue"],
"status": "enabled",
"api_version": "2026-11",
"created_at": "2026-11-01T08:00:00Z",
"secret": "whsec_MfKQ9r8GKYqrTwjUPD8ILPZIo2LaLaSw"
}Λίστα endpoints
GET/v1/webhook_endpoints
Όλα τα endpoints του λογαριασμού, χωρίς μυστικά.
Scopewebhooks:write
curl "https://www.ninjabuy.com/api/v1/webhook_endpoints" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11"HTTP/2 200 OK
{
"data": [
{
"id": "we_3d8s",
"url": "https://acme-goods.com/hooks/ninjabuy",
"description": "Order sync",
"events": ["order.shipped", "product.out_of_stock", "qc.issue"],
"status": "enabled",
"api_version": "2026-11",
"created_at": "2026-11-01T08:00:00Z"
}
],
"has_more": false,
"cursor": null
}Ανάκτηση endpoint
GET/v1/webhook_endpoints/{id}
Ένα endpoint, χωρίς το μυστικό του.
Scopewebhooks:write
Παράμετροι διαδρομής
idstringυποχρεωτικό- Το id του endpoint.
Σφάλματα
| Κατάσταση | Τύπος | Πότε |
|---|---|---|
| 404 | not-found | Δεν υπάρχει τέτοιο endpoint σε αυτόν τον λογαριασμό. |
curl "https://www.ninjabuy.com/api/v1/webhook_endpoints/we_3d8s" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11"HTTP/2 200 OK
{
"id": "we_3d8s",
"url": "https://acme-goods.com/hooks/ninjabuy",
"description": "Order sync",
"events": ["order.shipped", "product.out_of_stock", "qc.issue"],
"status": "enabled",
"api_version": "2026-11",
"created_at": "2026-11-01T08:00:00Z"
}Ενημέρωση endpoint
PATCH/v1/webhook_endpoints/{id}
Αλλάξτε το URL ή τα συμβάντα του, ή απενεργοποιήστε και ενεργοποιήστε το. Η ενεργοποίηση στέλνει ό,τι έχασε τις τελευταίες 3 ημέρες.
Scopewebhooks:write
Παράμετροι διαδρομής
idstringυποχρεωτικό- Το id του endpoint.
Σώμα
urlstring- Μόνο https.
events[]array- Τύποι συμβάντων, ή ["*"].
descriptionstring- Προαιρετικό.
statusstring- Προαιρετικό. enabled ή disabled.
Σφάλματα
| Κατάσταση | Τύπος | Πότε |
|---|---|---|
| 404 | not-found | Δεν υπάρχει τέτοιο endpoint σε αυτόν τον λογαριασμό. |
curl -X PATCH "https://www.ninjabuy.com/api/v1/webhook_endpoints/we_3d8s" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11" \
-H "Content-Type: application/json" \
-d '{ "events": ["*"] }'HTTP/2 200 OK
{
"id": "we_3d8s",
"url": "https://acme-goods.com/hooks/ninjabuy",
"description": "Order sync",
"events": ["*"],
"status": "enabled",
"api_version": "2026-11",
"created_at": "2026-11-01T08:00:00Z"
}Διαγραφή endpoint
DELETE/v1/webhook_endpoints/{id}
Σταματά αμέσως κάθε παράδοση προς αυτό, μαζί με τις επαναλήψεις.
Scopewebhooks:write
Παράμετροι διαδρομής
idstringυποχρεωτικό- Το id του endpoint.
Σφάλματα
| Κατάσταση | Τύπος | Πότε |
|---|---|---|
| 404 | not-found | Δεν υπάρχει τέτοιο endpoint σε αυτόν τον λογαριασμό. |
curl -X DELETE "https://www.ninjabuy.com/api/v1/webhook_endpoints/we_3d8s" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11"HTTP/2 200 OK
{ "id": "we_3d8s", "deleted": true }Εναλλαγή μυστικού
POST/v1/webhook_endpoints/{id}/rotate_secret
Επιστρέφει νέο μυστικό. Για 24 ώρες υπογράφουμε και με τα δύο, οπότε η κεφαλίδα webhook-signature φέρει δύο υπογραφές και επαληθεύεται με οποιαδήποτε: εγκαταστήστε το νέο και αφήστε το παλιό να λήξει.
Scopewebhooks:write
Παράμετροι διαδρομής
idstringυποχρεωτικό- Το id του endpoint.
Σφάλματα
| Κατάσταση | Τύπος | Πότε |
|---|---|---|
| 404 | not-found | Δεν υπάρχει τέτοιο endpoint σε αυτόν τον λογαριασμό. |
curl -X POST "https://www.ninjabuy.com/api/v1/webhook_endpoints/we_3d8s/rotate_secret" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11" \
-H "Idempotency-Key: $(uuidgen)"HTTP/2 200 OK
{
"id": "we_3d8s",
"secret": "whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD",
"previous_expires_at": "2026-11-05T09:30:00Z"
}Αποστολή δοκιμαστικού συμβάντος
POST/v1/webhook_endpoints/{id}/test
Στέλνει ένα δείγμα ενός τύπου συμβάντος, υπογεγραμμένο όπως κάθε άλλο, με test: true. Επιστρέφει πώς απάντησε το endpoint σας.
Scopewebhooks:write
Παράμετροι διαδρομής
idstringυποχρεωτικό- Το id του endpoint.
Σώμα
typestringυποχρεωτικό- Ένας τύπος συμβάντος.
Σφάλματα
| Κατάσταση | Τύπος | Πότε |
|---|---|---|
| 404 | not-found | Δεν υπάρχει τέτοιο endpoint σε αυτόν τον λογαριασμό. |
curl -X POST "https://www.ninjabuy.com/api/v1/webhook_endpoints/we_3d8s/test" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{ "type": "qc.issue" }'HTTP/2 200 OK
{
"delivery": "dlv_0k2p",
"event": "evt_test_6c3h",
"response_status": 200,
"duration_ms": 182
}Λίστα παραδόσεων
GET/v1/webhook_endpoints/{id}/deliveries
Κάθε προσπάθεια των τελευταίων 30 ημερών, οι νεότερες πρώτα: τι στείλαμε, τι απαντήσατε και πότε ξαναδοκιμάζουμε.
Scopewebhooks:write
Παράμετροι διαδρομής
idstringυποχρεωτικό- Το id του endpoint.
Παράμετροι ερωτήματος
statusstring- Προαιρετικό. succeeded, retrying ή failed.
eventstring- Προαιρετικό. Ένα id συμβάντος.
limit, cursor- Pagination
Σφάλματα
| Κατάσταση | Τύπος | Πότε |
|---|---|---|
| 404 | not-found | Δεν υπάρχει τέτοιο endpoint σε αυτόν τον λογαριασμό. |
curl "https://www.ninjabuy.com/api/v1/webhook_endpoints/we_3d8s/deliveries?status=retrying" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11"HTTP/2 200 OK
{
"data": [
{
"id": "dlv_0k3a",
"event": "evt_4m2x",
"type": "order.shipped",
"status": "retrying",
"attempts": 3,
"last_response_status": 502,
"next_attempt_at": "2026-11-03T08:35:00Z"
}
],
"has_more": false,
"cursor": null
}Νέα αποστολή παράδοσης
POST/v1/webhook_endpoints/{id}/deliveries/{delivery}/retry
Στέλνει το συμβάν τώρα, με το ίδιο webhook-id, όποια κι αν είναι η κατάστασή του. Οι ήδη προγραμματισμένες επαναλήψεις συνεχίζονται.
Scopewebhooks:write
Παράμετροι διαδρομής
idstringυποχρεωτικό- Το id του endpoint.
deliverystringυποχρεωτικό- Ένα id παράδοσης.
Σφάλματα
| Κατάσταση | Τύπος | Πότε |
|---|---|---|
| 404 | not-found | Δεν υπάρχει τέτοιο endpoint σε αυτόν τον λογαριασμό. |
curl -X POST "https://www.ninjabuy.com/api/v1/webhook_endpoints/we_3d8s/deliveries/dlv_0k3a/retry" \
-H "Authorization: Bearer $NINJABUY_API_KEY" \
-H "NinjaBuy-Version: 2026-11" \
-H "Idempotency-Key: $(uuidgen)"HTTP/2 202 Accepted
{
"delivery": "dlv_0k3a",
"status": "retrying",
"next_attempt_at": "2026-11-03T08:01:10Z"
}