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. See the available override types for what it can do.

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.

Parameters

  • id string required
    ID of the customer.
  • subscription_id string
    ID of the subscription. Required if the override concerns a subscription.
  • override_type string required
    The type of override. See the available override types.
  • begin string
    When the override takes effect, e.g. 2026-11-30T23:57:02. 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]. Only relevant for weekdays-based distribution.
  • skip_processing bool
    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.
  • exclude_from_webhooks bool Defaults to false
    Set to true to keep every event the request causes from being sent to webhooks, invoice and payment events included, e.g. "exclude_from_webhooks": true. The events are still added to the history.

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.

A yes/no field (type bool) is true or false, and has no value when it isn't set. Set it with true or false, and clear it with null.

A date and time field (type datetime) can be set up to follow other fields, so it is set to the time one of them changes. If the same update changes the date and time field itself, that value is kept.

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.

A yes/no field (type bool) is true or false, and has no value when it isn't set. Set it with true or false, and clear it with null.

Examples

While the temporary subscription overrides can be used for several things, a common need is vacations.

Vacation with pause

Pause the whole subscription for a period, e.g. because of a vacation. You can give a reason with pause_reason:

POST /api/customers/createoverride/ HTTP/1.1
Content-Type: application/json{
  "id": "12345",
  "subscription_id": "34567",
  "override_type": "pause-subscription",
  "begin": "2026-10-31T23:57:02",
  "end": "2026-11-14T23:57:02",
  "pause_reason": "Vacation"
}

Vacation with paused deliveries

Pause deliveries for a period, e.g. a vacation where there's still access to an online part, but no physical product:

POST /api/customers/createoverride/ HTTP/1.1
Content-Type: application/json{
  "id": "12345",
  "subscription_id": "34567",
  "override_type": "pause-delivery",
  "begin": "2026-11-29T23:57:02",
  "end": "2026-12-06T23:57:02"
}

Vacation with delivery to vacation destination

Send the subscription to another address for a period, e.g. a vacation destination. Optionally restrict it to certain weekdays:

POST /api/customers/createoverride/ HTTP/1.1
Content-Type: application/json{
  "id": "12345",
  "subscription_id": "34567",
  "override_type": "alternative-delivery",
  "begin": "2026-11-01T23:57:02",
  "end": "2026-11-14T23:57:02",
  "address": {
    "name": "John Doe",
    "address": "Holiday Road 1\n8000 Aarhus",
    "country": "DK"
  },
  "weekdays": [1, 3, 5]
}

Future changes

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-30T23:57:02",
  "address": {
    "name": "John Doe",
    "address": "Main Street 12\n8000 Aarhus",
    "country": "DK"
  }
}

Change field values at a future date:

POST /api/customers/createoverride/ HTTP/1.1
Content-Type: application/json{
  "id": "12345",
  "override_type": "change-fields",
  "begin": "2026-11-13T23:57:02",
  "new_values": {
    "name": "New Name",
    ":Custom field": "Example text"
  }
}

Return value

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."]
}