Knippin ICT Reseller API OpenAPI (JSON) Sleutels beheren

Reseller API

Registreer, verhuis en beheer domeinnamen voor je eigen klanten, tegen wholesale-prijzen, vanuit je eigen systeem. De opbouw volgt gangbare registrar-API's: REST, JSON, vaste foutcodes.

Toegang: de API is beschikbaar voor resellers. Nog geen reseller-account? Neem contact op via knippin.eu. Daarna maak je zelf sleutels aan in het klantenpaneel onder Reseller-API.

Authenticatie

Stuur bij elk verzoek je sleutel mee als Bearer-token. Een sleutel zie je één keer bij het aanmaken; bewaar hem veilig. Je kunt per sleutel een IP-whitelist instellen (aanbevolen) en een sleutel op elk moment intrekken.

curl https://api.knippin.eu/v1/user/permissions \
  -H "Authorization: Bearer kn_live_xxxxxxxx_…" \
  -H "Accept: application/json"

Verzoeken met een body stuur je als JSON (Content-Type: application/json). Maximaal 120 verzoeken per minuut per sleutel; daarboven krijg je HTTP 429.

Live en test

Livehttps://api.knippin.eu/v1
Sleutels kn_live_…. Echte registraties, kosten worden verrekend.
Testhttps://api-test.knippin.eu/v1
Sleutels kn_test_…. Registraties gaan naar een testregistry, zonder kosten. Testdomeinen zijn alleen via de test-API zichtbaar.

De beschikbaarheidscheck geeft ook in de testomgeving actuele gegevens.

Kosten en saldo

Alle bedragen zijn in euro, exclusief btw. Je prijzen haal je op met /tlds/pricing. Hoe je betaalt, staat per account ingesteld:

Domeinen met auto_renewal worden op de vervaldatum automatisch verlengd en dan verrekend. Wil je een domein niet verlengen, zet auto_renewal dan tijdig uit of hef het domein op. Een mislukte verhuizing wordt automatisch teruggeboekt.

Fouten

Bij een fout krijg je een HTTP-status van 400 of hoger en een lijst fouten:

{
  "errors": [
    { "error": "VA-PR01", "parameter": "period", "message": "Invalid parameter", "details": "The selected period is invalid." }
  ]
}
HTTPCodeBetekenis
400VA-PR01Ongeldige parameter; parameter noemt het veld, details de reden.
401AU-KY01Ontbrekende of ongeldige API-sleutel.
402FN-BL01Onvoldoende saldo of kredietlimiet bereikt.
403AU-IP01Je IP-adres staat niet op de whitelist van de sleutel.
403AU-KY02 / AU-KY03Livesleutel op de testomgeving of andersom.
403AU-RS01Je account is (nog) niet vrijgegeven voor de API.
400DN-EX01Het domein staat al in ons systeem.
400DN-TL01 / DN-PR01Extensie niet beschikbaar of geen prijs bekend.
400CT-HL01 / CT-HL02Ongeldige of al bestaande handle.
400CT-IU01Contact is nog aan een domein gekoppeld.
404GN-NF01, DN-NF01, CT-NF01, TR-NF01Niet gevonden (of niet van jou).
429GN-RL01Meer dan 120 verzoeken per minuut.
400/502RG-ER01 en registry-codesDe registry weigerde de actie; de code van de registry wordt doorgegeven.
500GN-SY01Onverwachte fout aan onze kant.

Lijsten zijn gepagineerd met page en per_page en bevatten een pagination-object (current_page, per_page, total_pages, total_results).

Account en saldo

Gegevens van je sleutel, je saldo en alle afname. Bedragen zijn in euro, exclusief btw.

GET /v1/user/permissions

Sleutel en rechten

Geeft je account, de gebruikte sleutel (omgeving, IP-whitelist) en de rechten terug. Handig om je koppeling te testen.

Voorbeeld
curl -X GET https://api.knippin.eu/v1/user/permissions \
  -H "Authorization: Bearer $KEY"
Antwoord
{
    "account": {
        "customer_id": 1042,
        "name": "Voorbeeld Hosting B.V.",
        "billing": "prepaid",
        "price_group": "Reseller Brons"
    },
    "key": {
        "name": "Productie",
        "prefix": "a1b2c3d4",
        "environment": "live",
        "allowed_ips": [
            "203.0.113.10"
        ],
        "created_at": "2026-11-03T10:00:00+01:00"
    },
    "permissions": {
        "domains": [
            "read",
            "register",
            "renew",
            "transfer",
            "delete",
            "restore",
            "update"
        ],
        "contacts": [
            "read",
            "create",
            "delete"
        ],
        "finance": [
            "read",
            "deposit"
        ]
    }
}
GET /v1/finance/balance

Saldo

Prepaid: je tegoed. Achteraf betalen: de nog niet gefactureerde afname (negatief) en wat er binnen je kredietlimiet nog beschikbaar is (null = geen limiet).

Voorbeeld
curl -X GET https://api.knippin.eu/v1/finance/balance \
  -H "Authorization: Bearer $KEY"
Antwoord
{
    "currency": "EUR",
    "billing": "prepaid",
    "vat_included": false,
    "balance": "184.50",
    "available": "184.50",
    "credit_limit": null,
    "pending_deposits": "0.00",
    "sandbox": false
}
GET /v1/finance/transactions

Transacties

Alle afname en opwaarderingen, nieuwste eerst. Filter optioneel op type (registration, renewal, transfer, restore, trade, deposit, refund, correction) of object (domeinnaam).

Queryparameters
page integer Pagina, standaard 1.
per_page integer Resultaten per pagina, 1-100 (standaard 25).
type string Filter op soort.
object string Filter op domeinnaam.
Voorbeeld
curl -X GET https://api.knippin.eu/v1/finance/transactions \
  -H "Authorization: Bearer $KEY"
Antwoord
{
    "data": [
        {
            "id": 311,
            "type": "registration",
            "description": "Registratie",
            "object": "voorbeeld.nl",
            "amount": "-4.95",
            "period": 12,
            "status": "booked",
            "invoice": null,
            "created_at": "2026-11-03T10:12:00+01:00"
        }
    ],
    "pagination": {
        "current_page": 1,
        "per_page": 25,
        "total_pages": 1,
        "total_results": 1
    }
}
POST /v1/finance/deposits

Tegoed opwaarderen

Alleen voor prepaid. Maakt een factuur (bedrag + btw) en geeft een betaallink. Zodra de factuur betaald is, staat het tegoed op je saldo.

Velden
amount verplicht number Bedrag excl. btw, minimaal 25.
Voorbeeld
curl -X POST https://api.knippin.eu/v1/finance/deposits \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"amount":250}'
Antwoord
{
    "invoice": "F2026-0412",
    "amount": "250.00",
    "amount_incl_vat": "302.50",
    "status": "pending",
    "payment_url": "https://mijn.knippin.eu/betalen/…"
}

Extensies en prijzen

Jouw wholesale-prijzen per extensie (per jaar, excl. btw) en de technische eigenschappen van een extensie.

GET /v1/tlds/pricing

Prijslijst

Jouw prijzen voor registratie, verlenging en verhuizing. Zonder filter krijg je alle extensies (gepagineerd).

Queryparameters
page integer Pagina, standaard 1.
per_page integer Resultaten per pagina, 1-100 (standaard 25).
tld string Kommagescheiden, bv. nl,com,eu.
Voorbeeld
curl -X GET https://api.knippin.eu/v1/tlds/pricing \
  -H "Authorization: Bearer $KEY"
Antwoord
{
    "data": [
        {
            "tld": "nl",
            "currency": "EUR",
            "vat_included": false,
            "pricing_standard": [
                {
                    "period": 12,
                    "register": "4.95",
                    "renew": "4.95",
                    "transfer": "4.95"
                }
            ]
        }
    ],
    "pagination": {
        "current_page": 1,
        "per_page": 25,
        "total_pages": 1,
        "total_results": 1
    }
}
GET /v1/tlds/info/{tld}

Eigenschappen extensie

Ondersteunde periodes, IDN, DNSSEC en het aantal nameservers.

Voorbeeld
curl -X GET https://api.knippin.eu/v1/tlds/info/{tld} \
  -H "Authorization: Bearer $KEY"
Antwoord
{
    "tld": "nl",
    "category": "country",
    "continent": "europe",
    "country_code": "NL",
    "syntax_idn_supported": true,
    "dnssec_supported": true,
    "periods_create_months": [
        12
    ],
    "periods_renew_months": [
        12
    ],
    "nameservers_min": 2,
    "nameservers_max": 13
}

Beschikbaarheid

Controleer tot 50 domeinnamen tegelijk. Werkt ook met een testsleutel (altijd actuele gegevens).

POST /v1/domain-availability

Beschikbaarheid controleren

status is free, active of een andere registry-status. Premiumdomeinen hebben geen vaste prijs en kunnen niet via de API geregistreerd worden.

Velden
domain_names verplicht array Lijst domeinnamen (max. 50).
Voorbeeld
curl -X POST https://api.knippin.eu/v1/domain-availability \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain_names":["voorbeeld.nl","voorbeeld.com"]}'
Antwoord
{
    "data": [
        {
            "domain_name": "voorbeeld.nl",
            "status": "free",
            "premium": false,
            "price_register": "4.95",
            "price_transfer": "4.95",
            "currency": "EUR"
        }
    ]
}

Domeinen

Registreren, verlengen, opheffen en beheren. Kosten worden direct van je saldo afgeschreven (of op je maandfactuur gezet); bij onvoldoende saldo krijg je HTTP 402 en gebeurt er niets.

GET /v1/domains

Domeinen in je portfolio

Alle domeinen die je via de API beheert.

Queryparameters
page integer Pagina, standaard 1.
per_page integer Resultaten per pagina, 1-100 (standaard 25).
status string registered of deleted.
search string Deel van de domeinnaam.
expires_before date Alleen domeinen die vóór deze datum (YYYY-MM-DD) verlopen.
Voorbeeld
curl -X GET https://api.knippin.eu/v1/domains \
  -H "Authorization: Bearer $KEY"
Antwoord
{
    "data": [
        {
            "domain_name": "voorbeeld.nl",
            "status": "registered",
            "registrant": "klant-001",
            "contacts": [
                {
                    "type": "admin",
                    "handle": "klant-001"
                },
                {
                    "type": "tech",
                    "handle": "mijn-tech"
                },
                {
                    "type": "billing",
                    "handle": "klant-001"
                }
            ],
            "dns_hosted": false,
            "nameservers": [
                "ns1.mijnhosting.nl",
                "ns2.mijnhosting.nl"
            ],
            "auto_renewal": true,
            "registered_at": "2026-11-03",
            "expires_at": "2027-11-03",
            "paid_until": "2027-11-03"
        }
    ],
    "pagination": {
        "current_page": 1,
        "per_page": 25,
        "total_pages": 1,
        "total_results": 1
    }
}
GET /v1/domains/{domain}

Domeingegevens

Gegevens van één domein uit je portfolio.

Voorbeeld
curl -X GET https://api.knippin.eu/v1/domains/{domain} \
  -H "Authorization: Bearer $KEY"
Antwoord
{
    "domain_name": "voorbeeld.nl",
    "status": "registered",
    "registrant": "klant-001",
    "contacts": [
        {
            "type": "admin",
            "handle": "klant-001"
        },
        {
            "type": "tech",
            "handle": "mijn-tech"
        },
        {
            "type": "billing",
            "handle": "klant-001"
        }
    ],
    "dns_hosted": false,
    "nameservers": [
        "ns1.mijnhosting.nl",
        "ns2.mijnhosting.nl"
    ],
    "auto_renewal": true,
    "registered_at": "2026-11-03",
    "expires_at": "2027-11-03",
    "paid_until": "2027-11-03"
}
POST /v1/domains/{domain}

Domein registreren

Registreert het domein. Het antwoord bevat ook het afgeschreven bedrag (charged).

Velden
registrant verplicht string Handle van de houder (eerst aanmaken via /contacts).
contacts array Lijst {type, handle} voor admin, tech en billing. Ontbrekende rollen krijgen de houder.
nameservers array 2 tot 13 hostnamen. Leeg = DNS bij ons (dns_hosted).
auto_renewal boolean Automatisch verlengen, standaard true (voor .nl verplicht).
period integer Periode in maanden (12, 24, … 120), standaard 12.
Voorbeeld
curl -X POST https://api.knippin.eu/v1/domains/{domain} \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"registrant":"klant-001","contacts":[{"type":"tech","handle":"mijn-tech"}],"nameservers":["ns1.mijnhosting.nl","ns2.mijnhosting.nl"],"period":12}'
Antwoord
{
    "domain_name": "voorbeeld.nl",
    "status": "registered",
    "registrant": "klant-001",
    "contacts": [
        {
            "type": "admin",
            "handle": "klant-001"
        },
        {
            "type": "tech",
            "handle": "mijn-tech"
        },
        {
            "type": "billing",
            "handle": "klant-001"
        }
    ],
    "dns_hosted": false,
    "nameservers": [
        "ns1.mijnhosting.nl",
        "ns2.mijnhosting.nl"
    ],
    "auto_renewal": true,
    "registered_at": "2026-11-03",
    "expires_at": "2027-11-03",
    "paid_until": "2027-11-03",
    "charged": "4.95"
}
POST /v1/domains/{domain}/renew

Verlengen

Verlengt het domein extra. Domeinen met auto_renewal worden ook automatisch verlengd; die verlenging wordt op de vervaldatum verrekend.

Velden
period verplicht integer Periode in maanden (12, 24, …).
Voorbeeld
curl -X POST https://api.knippin.eu/v1/domains/{domain}/renew \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"period":12}'
Antwoord
{
    "domain_name": "voorbeeld.nl",
    "status": "registered",
    "registrant": "klant-001",
    "contacts": [
        {
            "type": "admin",
            "handle": "klant-001"
        },
        {
            "type": "tech",
            "handle": "mijn-tech"
        },
        {
            "type": "billing",
            "handle": "klant-001"
        }
    ],
    "dns_hosted": false,
    "nameservers": [
        "ns1.mijnhosting.nl",
        "ns2.mijnhosting.nl"
    ],
    "auto_renewal": true,
    "registered_at": "2026-11-03",
    "expires_at": "2027-11-03",
    "paid_until": "2027-11-03",
    "charged": "4.95"
}
DELETE /v1/domains/{domain}

Opheffen

Heft het domein op. Het gaat bij de registry in quarantaine en kan daar nog worden hersteld. Er volgt geen terugbetaling.

Voorbeeld
curl -X DELETE https://api.knippin.eu/v1/domains/{domain} \
  -H "Authorization: Bearer $KEY"
Antwoord
204 No Content
POST /v1/domains/{domain}/restore

Herstellen uit quarantaine

Herstelt een opgeheven domein. Kosten: verlengprijs plus eventuele hersteltoeslag.

Voorbeeld
curl -X POST https://api.knippin.eu/v1/domains/{domain}/restore \
  -H "Authorization: Bearer $KEY"
Antwoord
{
    "domain_name": "voorbeeld.nl",
    "status": "registered",
    "registrant": "klant-001",
    "contacts": [
        {
            "type": "admin",
            "handle": "klant-001"
        },
        {
            "type": "tech",
            "handle": "mijn-tech"
        },
        {
            "type": "billing",
            "handle": "klant-001"
        }
    ],
    "dns_hosted": false,
    "nameservers": [
        "ns1.mijnhosting.nl",
        "ns2.mijnhosting.nl"
    ],
    "auto_renewal": true,
    "registered_at": "2026-11-03",
    "expires_at": "2027-11-03",
    "paid_until": "2027-11-03",
    "charged": "4.95"
}
PATCH /v1/domains/{domain}/auto_renewal

Automatisch verlengen

Zet automatisch verlengen aan of uit. Uit = het domein vervalt op de vervaldatum.

Velden
auto_renewal verplicht boolean true of false.
Voorbeeld
curl -X PATCH https://api.knippin.eu/v1/domains/{domain}/auto_renewal \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"auto_renewal":false}'
Antwoord
{
    "domain_name": "voorbeeld.nl",
    "status": "registered",
    "registrant": "klant-001",
    "contacts": [
        {
            "type": "admin",
            "handle": "klant-001"
        },
        {
            "type": "tech",
            "handle": "mijn-tech"
        },
        {
            "type": "billing",
            "handle": "klant-001"
        }
    ],
    "dns_hosted": false,
    "nameservers": [
        "ns1.mijnhosting.nl",
        "ns2.mijnhosting.nl"
    ],
    "auto_renewal": true,
    "registered_at": "2026-11-03",
    "expires_at": "2027-11-03",
    "paid_until": "2027-11-03"
}
POST /v1/domains/{domain}/auth_code

Verhuiscode opvragen

Geeft de auth-/EPP-code. Bij sommige extensies stuurt de registry de code rechtstreeks naar de houder (sent_to_registrant = true).

Voorbeeld
curl -X POST https://api.knippin.eu/v1/domains/{domain}/auth_code \
  -H "Authorization: Bearer $KEY"
Antwoord
{
    "domain_name": "voorbeeld.nl",
    "auth_code": "Xk7-p2Qa-9fRt",
    "expiry": "2026-11-10",
    "sent_to_registrant": false
}
PUT /v1/domains/{domain}/contacts

Contacten wijzigen

Wijzigt admin-, tech- en/of billing-contact. De houder wijzig je met /trade.

Velden
contacts verplicht array Lijst {type, handle}; type is admin, tech of billing.
Voorbeeld
curl -X PUT https://api.knippin.eu/v1/domains/{domain}/contacts \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"contacts":[{"type":"tech","handle":"mijn-tech"}]}'
Antwoord
{
    "domain_name": "voorbeeld.nl",
    "status": "registered",
    "registrant": "klant-001",
    "contacts": [
        {
            "type": "admin",
            "handle": "klant-001"
        },
        {
            "type": "tech",
            "handle": "mijn-tech"
        },
        {
            "type": "billing",
            "handle": "klant-001"
        }
    ],
    "dns_hosted": false,
    "nameservers": [
        "ns1.mijnhosting.nl",
        "ns2.mijnhosting.nl"
    ],
    "auto_renewal": true,
    "registered_at": "2026-11-03",
    "expires_at": "2027-11-03",
    "paid_until": "2027-11-03"
}
PUT /v1/domains/{domain}/trade

Houderwijziging

Zet het domein op een andere houder.

Velden
registrant verplicht string Handle van de nieuwe houder.
auth_code string Verplicht bij sommige extensies.
Voorbeeld
curl -X PUT https://api.knippin.eu/v1/domains/{domain}/trade \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"registrant":"nieuwe-houder"}'
Antwoord
{
    "domain_name": "voorbeeld.nl",
    "status": "registered",
    "registrant": "klant-001",
    "contacts": [
        {
            "type": "admin",
            "handle": "klant-001"
        },
        {
            "type": "tech",
            "handle": "mijn-tech"
        },
        {
            "type": "billing",
            "handle": "klant-001"
        }
    ],
    "dns_hosted": false,
    "nameservers": [
        "ns1.mijnhosting.nl",
        "ns2.mijnhosting.nl"
    ],
    "auto_renewal": true,
    "registered_at": "2026-11-03",
    "expires_at": "2027-11-03",
    "paid_until": "2027-11-03"
}
PATCH /v1/domains/{domain}/ns

Nameservers wijzigen

Eigen nameservers instellen, of dns_hosted: true voor DNS bij ons.

Velden
nameservers array 2 tot 13 hostnamen.
dns_hosted boolean true = DNS bij ons (in plaats van nameservers).
Voorbeeld
curl -X PATCH https://api.knippin.eu/v1/domains/{domain}/ns \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"nameservers":["ns1.mijnhosting.nl","ns2.mijnhosting.nl"]}'
Antwoord
{
    "domain_name": "voorbeeld.nl",
    "status": "registered",
    "registrant": "klant-001",
    "contacts": [
        {
            "type": "admin",
            "handle": "klant-001"
        },
        {
            "type": "tech",
            "handle": "mijn-tech"
        },
        {
            "type": "billing",
            "handle": "klant-001"
        }
    ],
    "dns_hosted": false,
    "nameservers": [
        "ns1.mijnhosting.nl",
        "ns2.mijnhosting.nl"
    ],
    "auto_renewal": true,
    "registered_at": "2026-11-03",
    "expires_at": "2027-11-03",
    "paid_until": "2027-11-03"
}

Contacten

Houders en contactpersonen. Je kiest zelf de handle (5-20 tekens: letters, cijfers en streepjes); daarmee verwijs je ernaar bij registraties.

GET /v1/contacts

Contacten

Al je contacten.

Queryparameters
page integer Pagina, standaard 1.
per_page integer Resultaten per pagina, 1-100 (standaard 25).
search string Zoek op naam, bedrijf, e-mail of handle.
Voorbeeld
curl -X GET https://api.knippin.eu/v1/contacts \
  -H "Authorization: Bearer $KEY"
Antwoord
{
    "data": [
        {
            "handle": "klant-001",
            "name": "Jan Jansen",
            "company_name": "Jansen B.V.",
            "address_1": "Dorpsstraat 1",
            "address_2": null,
            "postal_code": "1234 AB",
            "city": "Amsterdam",
            "state": null,
            "country": "NL",
            "phone": "+31.201234567",
            "email": "jan@jansen.nl",
            "created_at": "2026-11-03T10:00:00+01:00"
        }
    ],
    "pagination": {
        "current_page": 1,
        "per_page": 25,
        "total_pages": 1,
        "total_results": 1
    }
}
GET /v1/contacts/{handle}

Contactgegevens

Eén contact.

Voorbeeld
curl -X GET https://api.knippin.eu/v1/contacts/{handle} \
  -H "Authorization: Bearer $KEY"
Antwoord
Zie de lijst/het object hierboven.
POST /v1/contacts/{handle}

Contact aanmaken

Maakt het contact aan onder de gekozen handle. Een contact wijzigen kan niet: maak een nieuw contact aan en koppel dat.

Velden
name verplicht string Volledige naam van de contactpersoon.
company_name string Bedrijfsnaam (leeg voor particulieren).
address_1 verplicht string Straat en huisnummer.
address_2 string Tweede adresregel.
postal_code verplicht string Postcode.
city verplicht string Plaats.
state string Provincie/staat.
country verplicht string Landcode ISO 3166-1 alpha-2, bv. NL.
phone verplicht string Telefoon als +CC.NUMMER, bv. +31.201234567.
email verplicht string E-mailadres.
Voorbeeld
curl -X POST https://api.knippin.eu/v1/contacts/{handle} \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Jan Jansen","company_name":"Jansen B.V.","address_1":"Dorpsstraat 1","postal_code":"1234 AB","city":"Amsterdam","country":"NL","phone":"+31.201234567","email":"jan@jansen.nl"}'
Antwoord
Zie de lijst/het object hierboven.
DELETE /v1/contacts/{handle}

Contact verwijderen

Alleen als het contact niet meer aan een domein gekoppeld is.

Voorbeeld
curl -X DELETE https://api.knippin.eu/v1/contacts/{handle} \
  -H "Authorization: Bearer $KEY"
Antwoord
204 No Content
POST /v1/contacts/{handle}/tlddata/{registry}

Registry-gegevens

Extra gegevens die een registry vraagt, bv. voor SIDN (.nl) de rechtsvorm van een bedrijf: registry = sidn.

Velden
legal_form string Bv. BV, EENMANSZAAK, PERSOON.
legal_form_regno string KvK-nummer.
Voorbeeld
curl -X POST https://api.knippin.eu/v1/contacts/{handle}/tlddata/{registry} \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"legal_form":"BV","legal_form_regno":"12345678"}'
Antwoord
Zie de lijst/het object hierboven.

Verhuizingen

Een domein van een andere registrar naar jouw portfolio verhuizen. De verhuisprijs wordt bij de aanvraag afgeschreven en teruggeboekt als de verhuizing mislukt. Na afronding staat het domein in /domains.

POST /v1/transfers/{domain}

Verhuizing aanvragen

Start de verhuizing.

Velden
auth_code verplicht string Verhuiscode van de huidige registrar.
registrant verplicht string Handle van de houder (eerst aanmaken via /contacts).
contacts array Lijst {type, handle} voor admin, tech en billing. Ontbrekende rollen krijgen de houder.
nameservers array 2 tot 13 hostnamen. Leeg = DNS bij ons (dns_hosted).
auto_renewal boolean Automatisch verlengen, standaard true (voor .nl verplicht).
Voorbeeld
curl -X POST https://api.knippin.eu/v1/transfers/{domain} \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{"auth_code":"Xk7-p2Qa-9fRt","registrant":"klant-001"}'
Antwoord
{
    "id": 18,
    "domain_name": "voorbeeld.com",
    "status": "pending",
    "message": null,
    "created_at": "2026-11-03T10:20:00+01:00",
    "completed_at": null,
    "charged": "8.95"
}
GET /v1/transfers

Verhuizingen

Al je verhuizingen.

Queryparameters
page integer Pagina, standaard 1.
per_page integer Resultaten per pagina, 1-100 (standaard 25).
status string pending, completed of failed.
Voorbeeld
curl -X GET https://api.knippin.eu/v1/transfers \
  -H "Authorization: Bearer $KEY"
Antwoord
Zie de lijst/het object hierboven.
GET /v1/transfers/{domain}/{id}

Status verhuizing

Haalt de actuele status op bij de registry (id is optioneel: zonder id de laatste aanvraag).

Voorbeeld
curl -X GET https://api.knippin.eu/v1/transfers/{domain}/{id} \
  -H "Authorization: Bearer $KEY"
Antwoord
{
    "id": 18,
    "domain_name": "voorbeeld.com",
    "status": "completed",
    "message": null,
    "created_at": "2026-11-03T10:20:00+01:00",
    "completed_at": "2026-11-08T03:00:00+01:00"
}

Knippin ICT · Reseller API v1 · Vragen? Mail info@knippin.eu.