API

Alles wat het paneel doet, is via twee afzonderlijke API's beschikbaar. Beide gebruiken hetzelfde account, hetzelfde saldo en dezelfde catalogus; ze verschillen in formaat en in wat ze kunnen.

Alles wat het paneel doet, is via twee afzonderlijke API's beschikbaar. Beide gebruiken hetzelfde account, hetzelfde saldo en dezelfde catalogus; ze verschillen in formaat en in wat ze kunnen.

Waarom twee API's?

De klassieke reseller-API (v2) die de hele branche gebruikt, stuurt een formulier naar één endpoint en antwoordt altijd met HTTP 200. Dat is precies het formaat dat kant-en-klare panelsoftware verwacht, dus het blijft ongewijzigd. Wie zijn eigen systeem schrijft, liep juist voortdurend tegen de grenzen ervan aan: fouten waren niet van elkaar te onderscheiden, de catalogus kwam in één stuk binnen en de status van een bestelling moest eindeloos worden opgevraagd. v3 is daarvoor geschreven.

De legacy-API wordt niet uitgezet. Er is geen einddatum; je hoeft een werkende koppeling nooit aan te passen.

Vergelijking

FunctieLegacy (v2)Nieuw (v3)
FormaatEén endpoint, formulierverzending, parameter actionResourcegerichte REST, JSON-body
HTTP-statuscodeAltijd 200, ook bij een foutEchte codes (400, 401, 402, 404, 409, 429, 502)
FoutenVrije teksttype + vaste code + vertaald bericht + param + doc_url
BestelstatusAlleen vertaalde tekstVaste machinewaarde plus een apart weergavelabel
DienstomschrijvingNiet aanwezigOmschrijving in 10 talen, gemiddelde levertijd, platform, categorie
BestelveldenAfgeleid uit de naam van het typeElke dienst publiceert zijn eigen veldschema
PrijseenheidNiet vermeld (bron van fouten van factor 1000 bij pakketten)Expliciet vermeld als per_1000 of per_order
CatalogusAlle diensten in één antwoordFilters plus paginering met cursor
Bescherming tegen dubbele bestellingenNiet aanwezigIdempotency-Key
StatusmeldingVoortdurend opvragenOndertekende webhooks of een gebeurtenisstroom
SchemaNiet aanwezigOpenAPI 3.1
TalenEngels en Turks (aparte adressen)10 talen (via header of parameter)

Welke moet ik kiezen?

Legacy (v2)

Kies de legacy-API als je kant-en-klare panelsoftware, een bot of een resellerpaneel gebruikt. De meeste vragen je alleen het API-adres en de sleutel aan te passen, en werken binnen enkele minuten.

Nieuwe API (v3)

Kies v3 als je je eigen applicatie, webshop of automatisering schrijft. Foutafhandeling, bescherming tegen dubbele bestellingen en meldingen zitten er al in, en je kunt je bestelformulier rechtstreeks uit het dienstschema opbouwen.

Aan de slag

  1. 1Maak een API-sleutel aan op het tabblad Sleutels.
  2. 2Haal de dienstenlijst op en bekijk de id en het veldschema van de dienst die je nodig hebt.
  3. 3Controleer de bestelling eerst met preview en maak hem daarna pas aan.
  4. 4Registreer een webhook, of lees de gebeurtenisstroom, om statuswijzigingen te volgen.

Fouten (48)

CodeStatusBeschrijving
missing_api_key401Geen API-sleutel meegestuurd. Stuur deze mee als 'Authorization: Bearer <key>'.
invalid_api_key401De opgegeven API-sleutel is niet geldig.
revoked_api_key401Deze API-sleutel is ingetrokken en kan niet meer worden gebruikt.
account_banned403Dit account is geblokkeerd.
account_suspended403Dit account is opgeschort.
insufficient_scope403Deze API-sleutel heeft geen rechten voor dit endpoint.
invalid_json400De body van het verzoek is geen geldige JSON.
unsupported_content_type415Niet-ondersteund Content-Type. Gebruik application/json of application/x-www-form-urlencoded.
method_not_allowed405Deze HTTP-methode is niet toegestaan op dit endpoint.
payload_too_large413De body van het verzoek is te groot.
missing_parameter400Een verplichte parameter ontbreekt.
invalid_parameter400Een parameter heeft een ongeldige waarde.
invalid_quantity400De hoeveelheid is geen geldig positief geheel getal.
quantity_out_of_range400De hoeveelheid valt buiten het bereik dat deze dienst toestaat.
invalid_comments400Het veld met reacties is leeg of bevat te veel regels.
invalid_username400De gebruikersnaam is niet geldig voor deze dienst.
invalid_subscription400De abonnementsparameters zijn niet geldig.
invalid_runs400De waarde van 'runs' is niet geldig voor gespreide levering.
invalid_interval400De waarde van 'interval' is niet geldig voor gespreide levering.
dripfeed_not_supported400Deze dienst ondersteunt geen gespreide levering.
missing_required_field400Een veld dat voor dit type dienst vereist is, ontbreekt of is ongeldig.
service_inactive400Deze dienst is op dit moment niet bestelbaar.
invalid_cursor400De paginatiecursor is niet geldig.
invalid_limit400De parameter 'limit' valt buiten het toegestane bereik.
invalid_webhook_url400De webhook-URL moet een openbaar https://-adres zijn.
invalid_events400Een of meer van de opgegeven gebeurtenistypen zijn onbekend.
batch_too_large400Te veel items in één batchverzoek.
cancel_not_supported400Deze dienst ondersteunt annuleren niet.
refill_not_supported400Deze dienst biedt geen aanvulling.
unknown_endpoint404Onbekend endpoint. De beschikbare routes staan in de API-referentie.
service_not_found404Er bestaat geen dienst met dit id.
order_not_found404Er bestaat geen bestelling met dit id op uw account.
refill_not_found404Er bestaat geen aanvulling met dit id op uw account.
webhook_not_found404Er bestaat geen webhook-endpoint met dit id op uw account.
order_not_cancelable409Deze bestelling kan door haar huidige status niet meer worden geannuleerd.
cancel_rejected409De leverancier heeft het annuleringsverzoek geweigerd.
order_not_completed409Aanvulling kan alleen worden aangevraagd voor een voltooide bestelling.
idempotency_key_reuse409Deze Idempotency-Key is al gebruikt met een andere verzoekbody.
idempotency_in_progress409Een verzoek met deze Idempotency-Key wordt nog verwerkt. Probeer het zo opnieuw.
webhook_limit_reached409U hebt het maximale aantal webhook-endpoints bereikt.
insufficient_balance402Uw saldo is niet toereikend voor deze bestelling.
rate_limit_exceeded429Verzoeklimiet overschreden. Zie de Retry-After responseheader.
provider_error502De leverancier gaf een fout terug. Probeer het opnieuw.
refill_failed502Het aanvullingsverzoek is door de leverancier geweigerd.
service_temporarily_unavailable503Deze dienst is tijdelijk niet beschikbaar. Probeer het later opnieuw.
internal_error500Er is aan onze kant een onverwachte fout opgetreden.