Skip to content

Domains

The domains module is the register of every domain you look after for a client: who the registrar is, where DNS lives, whether e-mail runs on it, when the renewal falls due and what that renewal costs. What public DNS says about it, schakl. fetches by itself every day.

The domain register with expiry date, status and who pays for it.

In the main menu under Domeinen & websites → Domeinen (Domains & websites → Domains). Two tabs sit above the list: Domeinen and TLD-tarieven (TLD rates). That second tab is also the screen behind Instellingen → Domeinen (Settings → Domains), “TLD-tarieven voor jaarlijkse verlengingsfacturen”. Every client page carries a Domeinen panel with that client’s domains, their price per year and their next renewal, and under them what they add up to per year (see below).

Nieuw domein (New domain) opens a single form:

  • Domeinnaam (Domain name). What you paste is reduced to the bare domain: https://WWW.Example.NL/pagina is stored as example.nl. Scheme, www., port and path are stripped, on import too.
  • Startdatum (Start date). When the registration began. The yearly renewal invoice hangs off it.
  • Afwijkende prijs (Agreed price). A price for this domain that overrides the TLD rate. Leave it empty and the extension’s rate is shown as a hint under the field.
  • Facturatie (Invoicing). Collapsed on a new domain, with the chosen answers in its header; open when you edit an existing one. It holds “Wel factureren / Niet factureren / Volg het register”, Automatisch factureren (Automatic invoicing), the Verlengdatum (renewal date) and Gefactureerd tot (invoiced until): the date up to which the domain has already been invoiced elsewhere, in your previous system for instance.
  • Klant (Client), Status (Actief, Doorverwijzing, Geparkeerd, Verlopen, Inactief) and, only on the Doorverwijzing status, Doorverwijzen naar (Redirect to).
  • Registrar and DNS-provider, both from your own provider list (Instellingen → Providers), plus a Registratiecontact (Registry contact): the agency, the client, an employee or a contact person.
  • E-mail actief (E-mail active); switch it on and E-mailprovider and E-mailcontact appear.

Every picker offers ”+ toevoegen”: a client, contact or provider that does not exist yet is created without leaving the form.

Beside the details, the domain page carries a DNS card with Nameservers, MX-records, DNSSEC and Laatst gecontroleerd (Last checked). It is a plain public DNS lookup, so it needs no registrar account and works for every domain. A nightly job refreshes every domain of every organisation, and a new domain is looked up once immediately after you save it, so it never sits on “Nooit” (Never). The Verversen (Refresh) button does it again on the spot.

A domain page with what the register reports, what the zone answers, and the panels of the integrations attached to it.

DNSSEC has three answers: Ja, Nee and Onbekend (Unknown). Unknown means the lookup could not answer, not that DNSSEC is off.

Renewal: the date, the price and the invoice

Section titled “Renewal: the date, the price and the invoice”

The start date sets the renewal date: schakl. takes the next anniversary still ahead, so a domain you registered years ago starts at its next birthday and never bills its history. A nightly job rolls that date a year forward and hands invoicing a line, Domeinverlenging <name> (<period>). How far that invoice gets on its own is per domain, under Automatisch factureren, or left on the organisation’s setting.

A renewal is billed in advance: the invoice of 01-10-2026 pays the register for the year that begins then, so the period on the line is 01-10-2026 - 01-10-2027. If the domain was already invoiced elsewhere, fill in Gefactureerd tot: years ending on or before that date are no longer offered and never created. On the domain page the Gefactureerde termijnen (invoiced periods) panel shows which years are already on an invoice, and on which one. Renewals that no invoice covers yet are picked in the invoice editor under Nog te factureren domeinverlengingen (Domain renewals still to invoice).

The price comes from the TLD-tarieven tab: one yearly rate per extension, with history.

  1. Open Domeinen → TLD-tarieven (or Instellingen → Domeinen).
  2. Prijs instellen (Set price) asks for the TLD, the Prijs per jaar (Price per year) and Geldig vanaf (Valid from). Today changes it immediately; a future date schedules it. An extension’s first price also applies to renewals before that date, so a rate you enter for the first time today also prices the renewals that were already waiting.
  3. For an across-the-board rise: Prijsverhoging (Price increase), with Percentage erbij, Vast bedrag erbij or Nieuw bedrag instellen, a Bereik (Scope: all TLDs or one) and an Ingangsdatum (Effective date).
  4. Voorbeeld (Preview) shows current → new per TLD and how many domains it touches. Only Doorvoeren (Apply) writes anything.

A wrong price row is removed with Prijsregel verwijderen (delete price row) in the row’s ⋯ menu; that works for a scheduled row and for the row in force now.

Bill it, don’t bill it, or follow the register

Section titled “Bill it, don’t bill it, or follow the register”

A domain list mixes names you renew with names the client registered themselves and merely asked you to point somewhere. Only a registrar’s register knows the difference, so the Facturatie field has three answers:

ChoiceWhat happens
Wel facturerenThe yearly renewal is charged to the client.
Niet facturerenNothing is charged for it.
Volg het registerBill it when a connected register says the agency holds the registration.

On “Volg het register” a sentence names what decided, for example “Staat in het register van OXXA, dus dit domein wordt gefactureerd” or “Er is nog geen register gekoppeld, dus dit domein wordt gefactureerd”.

The domains you invoice and the ones you don’t are added up separately, never netted against each other: your own agency’s domains are usually set to not invoiced and still cost their renewal. The Domeinen panel on the client page ends with a line such as “12 domeinen · € 180,00 / jaar gefactureerd · 2 niet gefactureerd (€ 25,00 / jaar)”, and says separately how many domains are zonder prijs (without a price) instead of counting them silently as zero. A not-invoiced domain says so under its price. The list carries the same figures above every client section, and at the foot of the table the total over everything you filtered, rows on other pages included.

The list is sectioned per client, and the sections fold: you usually know whose a domain is before you know what it is called. The Klant column stays, as the link to the client. Because the pager cuts the list into pages, a section counts the rows on this page; the screen says so.

You pick your own columns (Domeinnaam, Klant, Status, Registrar, DNS-provider, DNSSEC, E-mail actief, Volgende verlenging, Prijs, Gefactureerd, Aangemaakt, plus your own custom fields) and sort on them, within each section. Beside the column picker sit Export/Import and the ✎ that switches the checkboxes on. In bulk you can change Status, Klant, Registrar, DNS-provider, E-mailprovider, Facturatie (clearing it means “follow the register”), the Verlengdatum, Gefactureerd tot, the Startdatum and the Afwijkende prijs (agreed price). A portfolio entered in one afternoon carries that afternoon as every start date; this is how you put it right in one go. The start date cannot be emptied, the agreed price can: the TLD rate then applies again. The domain name is never bulk-editable — it is the record.

An import upserts on the domain name, normalised, so an export you edit and put back lands on the same rows. Nameservers, DNSSEC, MX, the next renewal date and the resolved price are export-only. The TLD rates are their own importable sheet.

At the bottom of the domain page sits the activity trail: who changed what, and when.

PermissionHeld by default
domains.domain.readAdministrator, Member, Client
domains.domain.writeAdministrator
domains.domain.deleteAdministrator
domains.tld_price.readAdministrator, Member
domains.tld_price.manageAdministrator

Editable per role under Instellingen → Rollen (Settings → Roles). A colleague or portal login limited to a subset of clients only ever sees those clients’ domains. If you would rather a client login did not see the Domeinen menu at all, take domains.domain.read off the Klant role.

  • Only the statuses Actief, Doorverwijzing and Geparkeerd renew. Verlopen and Inactief get no renewal date and therefore no invoice.
  • With no price at all (no TLD rate and no agreed price) nothing is drafted and the renewal stays outstanding. It is still listed on Nog te factureren, at zero, labelled geen prijs (no price), and the invoice editor names the period but refuses to add it as a € 0,00 line. The moment you price the TLD, billing resumes from the original due date; a year is never silently skipped.
  • Deleting a domain takes every website that sits on it with it. Not the other way round: deleting a website leaves the domain alone.
  • The Doorverwijzing status is a label on its own. The redirect itself is set up through the Cloudflare integration.