Developer documentation

Create override

post https://app.iteras.dk/api/customers/createoverride/

The /api/customers/createoverride/ endpoint creates an override of an aspect on the customer or on a subscription for the customer, e.g. the delivery address, or a suspended delivery. Iteras uses this to model vacations, scheduled future changes and internally also suspensions due to missing payments.

The concept is useful if the modification is only temporary or in the future, otherwise you'd just change the customer or subscription directly. Scheduled future changes are applied automatically by Iteras when their time comes.

If you need to change or delete an override, use the update customer override or delete customer override endpoint. Some fields are locked once an override is active, and only overrides that have not taken effect yet can be deleted.

Available override types

Name Description
Future change of fields
(customer or subscription)
change-fields
Set begin to when the change takes effect and new_values with the fields to change.
Future change of delivery address
(customer or subscription)
change-delivery-address
Set begin to when the new address takes effect and address.
Future change of billing address
(customer or subscription)
change-billing-address
Set begin to when the new address takes effect and address.
Pause deliveries
(subscription)
pause-delivery
Set subscription_id, begin and end for the interval deliveries are paused.
Pause deliveries and donate
(subscription)
pause-delivery-donate
Set subscription_id, begin and end for the interval deliveries are paused and donated.
Send to another address
(subscription)
alternative-delivery
Set subscription_id, begin and end for the interval the subscription is sent to address; optionally weekdays.
Pause subscription
(subscription)
pause-subscription
Set subscription_id, begin and end for the period the subscription is paused; optionally pause_reason, e.g. "Vacation".

An address change on a subscription only works if the subscription has an address field for the relevant address type.

Parameters

  • id string required
    ID of the customer.
  • subscription_id string
    ID of the subscription. Required for the subscription-only overrides pause-delivery, pause-delivery-donate, alternative-delivery and pause-subscription.
  • override_type string required
    The type of override. One of change-fields, change-delivery-address, change-billing-address, pause-delivery, pause-delivery-donate, alternative-delivery or pause-subscription.
  • begin string
    When the override takes effect, e.g. 2026-11-09T01:35:26. The default is now.
  • end string
    When the override ends. Required for alternative-delivery, pause-delivery, pause-delivery-donate and pause-subscription, and not valid for the future change overrides.
  • address object
    The new address, for the overrides that change the delivery or billing address, or send to another address, e.g. {"name": "John Doe", "address": "Main Street 12\n8000 Aarhus", "country": "DK"}. address, country and name are required, or company instead of name for the address types that allow a company. The country must be the customer's own where the subscription's policy does not allow sending to another country.
  • new_values object
    The fields to change and their new values, for a change-fields override. Reference built-in fields by name and custom fields by their field ID, e.g. {"name": "New Name", ":Membership level": "Gold"}. The field ID is the field name with a colon prepended or, if defined, the external identifier of the field. See the custom fields set up for your account below.
  • pause_reason string
    A reason for pausing, for a pause-subscription override, e.g. "Vacation".
  • weekdays array
    The weekdays the override applies to, for an address override, given as numbers with 1 being Monday and 7 being Sunday, e.g. [1, 3, 5].
  • skip_processing boolean
    Set to true to register the override without processing it, for importing older overrides. The effective date and overlapping checks are skipped in this mode.

A change-fields override can change a built-in customer or subscription field, or a custom field.

You can set any custom customer field, using its field id (the field name with a colon prepended, or its external identifier).

Log in, or send your API key as a bearer token, to see the custom customer fields set up for your account.

You can set any custom subscription field, using its field id (the field name with a colon prepended, or its external identifier).

Log in, or send your API key as a bearer token, to see the custom subscription fields set up for your account.

Examples

Suspend deliveries for a period:

POST /api/customers/createoverride/ HTTP/1.1
Content-Type: application/json{
  "id": "12345",
  "override_type": "pause-delivery",
  "end": "2026-11-09T01:35:26"
}

Change the delivery address at a future date:

POST /api/customers/createoverride/ HTTP/1.1
Content-Type: application/json{
  "id": "12345",
  "override_type": "change-delivery-address",
  "begin": "2026-11-09T01:35:26",
  "address": {
    "name": "John Doe",
    "address": "Main Street 12\n8000 Aarhus",
    "country": "DK"
  }
}

Change a built-in and a custom field at a future date:

POST /api/customers/createoverride/ HTTP/1.1
Content-Type: application/json{
  "id": "12345",
  "override_type": "change-fields",
  "begin": "2026-10-23T01:35:26",
  "new_values": {
    "name": "New Name",
    ":Custom field": "Eksempeltekst"
  }
}

The endpoint returns the ID of the new override:

{ "override_id": "77642" }

Errors

Invalid requests due to programming error, e.g. invalid JSON, returns 400. This also covers giving neither id nor subscription_id, a missing subscription_id for a subscription-only override, an unknown override_type, a field with the wrong type, a field that does not belong to the override type, e.g. new_values for an address override or end for a future change override, and a missing required field, e.g. new_values for a change-fields override, end for a vacation override or address for an address override.

A well-formed operation where a supplied value is invalid is not executed and returns an HTTP 422 error. This covers an end that isn't later than begin, an invalid new_values or address, an override type the subscription's policy does not allow, an override that takes effect before the earliest possible delivery date or on a date blocked for delivery changes, and an override that overlaps an existing one. Errors that are not specific to a field are returned with the empty string as key, e.g. an unknown subscription:

{
  "": ["Subscription does not exist."]
}

A subscription that belongs to a different customer is reported under subscription_id:

{
  "subscription_id": ["The subscription does not belong to the customer."]
}