All updates
Non-Breaking

MNP Netherlands — Support for Early Termination and Continuation

·By ksanchez

MNP Netherlands — Early Termination and Continuation Support

Non-Breaking Changes

  • Portings (all countries, port-out): A new processing object has been added to every port-out porting response (GET /portings, GET /portings/{porting-id}), containing action, an optional phone_number, and (for NL, ES, IE) processing_at.

    • processing.action mirrors the value previously exposed via the now-deprecated root processing_action field.
    • For NL specifically, processing.action can also be terminate_early, in addition to terminate and swap_phone_number.
    • Existing integrations reading the deprecated root fields are unaffected — this is purely additive.
  • Portings (NL, port-in): Introduces an optional contract_action field inside donor_details when creating an NL port-in, controlling how the donor contract should be handled:

    • terminate_at_expiry — standard behaviour: terminate the donor contract if possible (default when omitted).
    • terminate_early — terminate the donor contract even if an active commitment exists.
    • swap_phone_number — keep the donor contract active and swap in a new phone number.

    Existing integrations that don't send this field keep getting the default terminate_at_expiry behaviour.

  • Portings (deprecations): The root-level processing_action field (all countries) and processing_at field (NL, ES, IE) are now marked deprecated. They remain present and populated for backward compatibility — use processing.action and processing.processing_at instead going forward.


Scope

  • API versions affected: 2026-02-05.
  • Schemas affected: CreateDonorDetailsNL, PortingDonorDetailsNL (port-in), and every PortingOut*<COUNTRY> response schema (port-out) — DE, PL, NL, ES, GB, IE.

Example — Create Porting (NL) with contract_action

{
  "direction": "in",
  "country": "NL",
  "subscription_id": "subs_01JXHRZ848P7D1KMN3EK1P8RDE",
  "phone_number_id": "pn_01JXHRZ875YFVHHG4RPM704623",
  "msisdn": "+31651528362",
  "donor_details": {
    "account": {
      "account_number": "123456789"
    },
    "contract_action": "swap_phone_number"
  }
}

Example — Port-Out response processing object

{
  "processing_action": "terminate",
  "processing": {
    "action": "terminate",
    "processing_at": "2026-09-01T10:00:00.000Z"
  }
}

Summary of Changes

CapabilityChangeEndpoint / Contract
donor_details.contract_action (NL)+ Added (optional)POST /portings — CreateDonorDetailsNL / GET responses — PortingDonorDetailsNL
processing object (all countries)+ Added (required)GET /portings, GET /portings/{porting-id} — all port-out response schemas
processing.action = terminate_early (NL)+ Added enum valuePortingProcessingActionNL
processing_action (all countries)~ DeprecatedAll port-out response schemas
processing_at (NL, ES, IE)~ DeprecatedPortingOutProcessingNL, PortingOutProcessingES, PortingOutProcessingIE