> ## Documentation Index
> Fetch the complete documentation index at: https://docs.orbit.devotel.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Netherlands Number & Sender Rules (ACM)

> The Netherlands posture expanded from the country-requirements matrix: ACM consumer enforcement, the Bel-me-niet opt-out register, silent-call posture, and the exact compliance-profile packet a Dutch number purchase requires.

# Netherlands Number & Sender Rules (ACM)

The Netherlands (`NL`) sits in Orbit's regulated number-purchase set, so a
Dutch DID order opens only after an approved compliance profile is
attached. On the traffic side, Dutch marketing communications sit under
the Telecommunications Act's (Telecommunicatiewet) ePrivacy provisions
and ACM (Autoriteit Consument & Markt) consumer enforcement, with the
Bel-me-niet register as the national opt-out list. This page expands the
NL row of the
[country-requirements matrix](/compliance/country-requirements) so you can
assemble the profile before your first Dutch order and run Dutch traffic
on a posture your counsel can review.

The Netherlands is a **tenant-owned burden**. Orbit keeps the
country-rules reference and the purchase gate; the legal posture is
yours.

<Note>
  This page is documentation, not legal advice. ACM enforcement and the
  Dutch marketing-consent provisions apply against the sender, and the
  Bel-me-niet register is maintained outside Orbit. Have counsel review
  your consent capture and list hygiene; Orbit supplies the surfaces.
</Note>

***

## Where Orbit gates Dutch number purchases

`NL` is a member of the platform's `phone_number_purchase` regulated set
(DE, GB, FR, BR, MX, IN, JP, FI, NL, SE) — the same registry that drives
the compliance-profile wizard. For a Dutch order the gate works like
this:

<Steps>
  <Step title="Create the profile">
    `POST /api/v1/compliance/compliance-profiles` with
    `country_code: "NL"` and `use_case: "phone_number_purchase"`. The
    wizard surfaces the Dutch packet: a **required** business
    registration certificate (`business_doc`) and proof of address
    (`address_proof`), plus an **optional** government-issued ID
    (`id_proof`). The ID is optional because the carrier's compound
    requirement accepts either an identity document or the company
    registration; upload it when your registration extract alone is
    thin. The data fields are the business identity block (registered
    name, registration number, address, contact person, email, phone)
    plus `website` and the use-case description with sub-allocation
    disclosure.
  </Step>

  <Step title="Submit and wait for carrier review">
    Submission fans the bundle to the carrier for review, typically a
    few business days. Track status on the profile; the gate opens only
    on `approved`. See the
    [KYC Profile Submission Runbook](/compliance/kyc-profile-submission-runbook).
  </Step>

  <Step title="Order the number">
    Place the Dutch order with the approved profile attached
    (`compliance_profile_id`). Without an approved profile the order
    gate answers the same 422 as a missing profile
    (`COMPLIANCE_PROFILE_REQUIRED` / `COMPLIANCE_PROFILE_NOT_APPROVED`),
    and a number bought ahead of approval lands at
    `pending_compliance`. It cannot originate traffic until the profile
    is attached and the carrier confirms.
  </Step>
</Steps>

***

## ACM posture: consent, Bel-me-niet, silent calls

Three Dutch obligations drive the tenant-side configuration:

| Dutch obligation | What it means for you | Orbit surface |
| - | - | - |
| Prior consent for marketing SMS/email | Dutch ePrivacy law is opt-in for electronic marketing: consent must exist before dispatch and be provable afterwards. | [Consent Management](/compliance/consent-management) with `sms` scope, backed by the [GDPR Posture Guide](/compliance/gdpr-posture-guide); [Double-Opt-In](/compliance/double-opt-in) for the evidence chain. |
| Bel-me-niet register scrubbing | Consumers (and, in scope, businesses) registered in the Bel-me-niet register must be excluded from campaign lists, even where you hold a customer relationship. | [DNC Scrub](/compliance/dnc-scrub) against your campaign audience before every send; the suppression ledger carries the exclusion. |
| Opt-out handling | A Dutch recipient revoking consent must stop traffic on every channel; `STOP` in Dutch-language traffic ("stop", "stoppen") must land in the same suppression entry. | [Opt-Out Keyword Alias Table](/compliance/opt-out-keyword-alias-table) and the suppression ledger; opt-outs propagate channel-wide. |
| Silent-call and abandoned-call posture | ACM treats silent and abandoned outbound calls as consumer harm; dialer campaigns that over-dial and drop unanswered or unanswered-by-human calls attract enforcement. | [Dialer Abandoned-Call Safe Harbor](/compliance/dialer-abandoned-call-safe-harbor) for pacing, abandonment ratio, and answer supervision on voice campaigns. |

***

## The NL country-rules row

Read the live row first; the snapshot here is orientation:

```bash theme={null}
curl "https://api.orbit.devotel.io/api/v1/compliance/country-rules?country=NL" \
  -H "Authorization: Bearer $ORBIT_API_KEY"
```

```json theme={null}
{
  "country": "NL",
  "sender_types": ["alphanumeric", "long_code"],
  "registration": "none",
  "content_restrictions": ["opt-in marketing under Dutch ePrivacy + GDPR", "Bel-me-niet registered recipients excluded"],
  "stop_requirement": "STOP honored; Dutch-language aliases map to the same suppression entry"
}
```

`registration: none` means no statutory alphanumeric sender registry;
carrier relabeling of unregistered senders is still a deliverability
posture, so register the sender where identity stability matters.

***

## Worked `phone_number_purchase` profile for NL

```bash theme={null}
curl -X POST https://api.orbit.devotel.io/api/v1/compliance/compliance-profiles \
  -H "Authorization: Bearer $ORBIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "country_code": "NL",
    "use_case": "phone_number_purchase",
    "data": {
      "business_name": "Voorbeeld B.V.",
      "business_registration_number": "12345678",
      "address_street": "Keizersgracht 1",
      "address_city": "Amsterdam",
      "address_postal_code": "1015 AA",
      "address_country": "NL",
      "contact_name": "J. de Vries",
      "contact_email": "compliance@voorbeeld.example",
      "contact_phone": "+31201234567",
      "website": "https://voorbeeld.example",
      "business_description": "Customer care and delivery notifications for our own end users; no sub-allocation to third parties."
    }
  }'
```

Attach the uploaded trade-register extract as `business_doc` and a
recent utility bill as `address_proof`; add the signatory's passport as
the optional `id_proof` if the carrier asks for the identity branch of
its compound requirement. Then attach the approved profile at order
time exactly as the
[KYC runbook](/compliance/kyc-profile-submission-runbook) shows.

***

## Related references

* [Regional Posture Hub](/compliance/country-rules-directory) — the index
  this page is listed in.
* [Country Compliance Requirements](/compliance/country-requirements) —
  the live NL row this page expands.
* [KYC Profile Submission Runbook](/compliance/kyc-profile-submission-runbook) —
  the submit, renew, and failure-mode flow for the attached profile.
* [Finland (Traficom / Ficora) Rules](/compliance/finland-ficora-rules) and
  [Sweden (PTS) Rules](/compliance/sweden-pts-rules) — the sibling
  regulated-purchase markets.
* [DNC Scrub](/compliance/dnc-scrub) — where Bel-me-niet exclusions land.
* [Dialer Abandoned-Call Safe Harbor](/compliance/dialer-abandoned-call-safe-harbor) —
  the silent-call posture ACM's enforcement argues for.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.