Callbacks
Een callback is een uitgaande melding per verzoek die je aan een bestelling
koppelt, zodat SuperSpace naar je URL POSTt op het moment dat het asynchrone
werk van de bestelling klaar is — in plaats van dat jij de taak pollt. Je geeft
de callback op wanneer je de bestelling plaatst; SuperSpace vuurt hem af zodra de
taak van die bestelling een eindstatus bereikt (OK of FAILED).
Callback vs. billing-webhook
Een callback is per verzoek — hij hoort bij de ene bestelling waaraan je hem koppelt en vuurt één keer. Een billing-webhook is plan-niveau — geconfigureerd door een admin op het facturatieplan, vuurt bij elke site-/domein-levenscyclusgebeurtenis onder dat plan. Verschillende mechanismen; zie de vergelijking hieronder.
Hoe het werkt
- Je plaatst een bestelling met een
callback-object (POST /api/ordersofPOST /api/orders/domain). - SuperSpace accepteert de bestelling (
202 Accepted) en richt asynchroon in als een taak. - Wanneer de taak voltooid is (of mislukt), stuurt SuperSpace een HTTP
POSTnaar deurlvan je callback. - Als je geen callback registreert, poll dan in plaats daarvan
GET /api/tasks/{task-id}.
De callback is at-least-once: een levering die geen 2xx krijgt, wordt
opnieuw geprobeerd (zie Levering en retries), dus je
ontvanger moet idempotent zijn.
Een callback registreren
Voeg een callback-object toe aan de body van de bestelling. Het wordt op beide
bestel-endpoints ondersteund:
POST /api/orders— site-bestellingenPOST /api/orders/domain— bestellingen voor domeinregistratie/-verhuizing
Params
- callback: Object (optioneel) | Wordt afgevuurd wanneer de asynchrone taak van de bestelling voltooid is.
- url: String (vereist) | Volledig gekwalificeerde HTTPS-URL die de POST ontvangt.
- authorization: String (optioneel) | Wordt letterlijk als de
Authorization-header op de callback meegestuurd. Geef de volledige waarde op — bijv.Bearer 12345,Token 12345, of een ruw token.
curl -X POST https://control.superspace.nl/api/orders \
-H "Authorization: Bearer $SUPERSPACE_TOKEN" \
-H "X-Auth-Account: $ACCOUNT_ID" \
-H "Content-Type: application/json" \
-d '{
"order": { "plan": "basic", "term": "monthly" },
"callback": {
"url": "https://your-app.example.com/superspace/callback",
"authorization": "Bearer your-shared-secret"
}
}'
Wat SuperSpace verstuurt
Wanneer de taak klaar is, stuurt SuperSpace een POST naar je url:
- Headers:
Authorization: <jouw authorization-waarde>(letterlijk; weggelaten als je er geen hebt opgegeven) enAccept: application/json. - Body: JSON.
{
"timestamp": 1727303593,
"success": true,
"data": "Site provisioned. Primary domain: example.com"
}
Body-params
- timestamp: Integer | Unix-epoch (seconden) van de oorspronkelijke poging — stabiel over retries heen, dus bruikbaar als leveringssleutel.
- success: Boolean |
truewanneer de taak eindigde opOK,falsewanneer hij eindigde opFAILED. - data: String | Het
data-veld van de taak — dezelfde vrije resultaattekst dieGET /api/tasks/{task-id}retourneert.
Levering en retries
Callbacks delen de uitgaande leveringslaag van SuperSpace (dezelfde die door billing-webhooks wordt gebruikt):
- Timeout: 30 seconden per poging.
- Succes: elke HTTP
2xx. Al het andere — inclusief een verbindingsfout of timeout — is een mislukte levering. - Retries: een mislukte levering wordt opnieuw geprobeerd met backoff — elke 2 minuten gedurende de eerste 5 minuten, daarna elke 5 minuten tot 10 minuten oud, daarna elke 15 minuten — en SuperSpace geeft het 4 uur na de eerste poging op.
- Idempotentie: door retries kan dezelfde callback meer dan eens aankomen. Dedupliceer op
timestamp(stabiel per logische gebeurtenis).
Bereikbaarheid testen
GET /api/webhooks/task
Retourneert het bron-IP dat SuperSpace voor je verzoek ziet, zodat je netwerkbereikbaarheid / allow-listing kunt bevestigen voordat je op een callback vertrouwt.
Geretourneerde params
- ip_address: String
Een taakresultaat rapporteren
POST /api/webhooks/task/{task-id}
Dit is het endpoint dat een taak binnen SuperSpace als voltooid markeert — zo
rapporteert de provisioning-infrastructuur een resultaat terug, en het posten van
dat resultaat triggert je geregistreerde uitgaande callback. Het werkt de data
van de taak bij, zet de status (OK / FAILED) en vuurt vervolgens de callback af.
Account-scope vereist (X-Auth-Account). Niet beschikbaar via OAuth — dit
endpoint authenticeert met een back-end API-sleutel (het wordt normaal
gesproken aangeroepen door SuperSpace-infrastructuur, niet door integrators).
Retourneert altijd 200, zelfs voor een onbekende task-ID. Idempotent: een
herhaalde post met dezelfde data + success wordt op digest gededupliceerd en
is een no-op.
Params
- data: Any (optioneel) | Toegevoegd aan de
datavan de taak. - success: Boolean (vereist) |
true→ taakOK;false→ taakFAILED.
Callbacks vs. billing-webhooks
| Callback | Billing-webhook | |
|---|---|---|
| Geconfigureerd op | Per verzoek, in het callback-object op een bestelling |
Het facturatieplan (admin-UI) |
| Scope | De ene taak / bestelling waaraan hij was gekoppeld | Alle site- en domein-levenscyclusgebeurtenissen onder dat plan |
| Vuurt | Eén keer, wanneer die taak OK / FAILED bereikt |
Bij elke created / resized / registered / renewed / … gebeurtenis |
| Body | { "timestamp", "success", "data" } (het taakresultaat) |
{ "action", "site" } of { "action", "domain" } |
Zie Billing Webhooks voor het mechanisme op planniveau.