Create customer
https://app.iteras.dk/api/customers/createcustomer/
The /api/customers/createcustomer/ endpoint creates a new customer.
For situations where a customer is actually putting in an order, you can also use the place order API instead to get an order registered in Iteras and let that create both the customer and the subscription.
Parameters
-
id stringOptional ID to force the customer to be created with. If the ID is provided and a customer with that ID already exists, an error is returned. If you instead want the customer updated, use the update customer endpoint with
createset. -
data objectThe customer attributes, e.g.
{"name": "Customer Name", "email": "john@example.com", "country": "NO"}. Valid attributes are the built-in ones and the customer fields setup inside Iteras for the account. You should usually include a country. Otherwise it may not be possible to invoice the customer because tax rules depend on knowing the country. -
use_external_lookup boolean Defaults to
truePassed as a query parameter, e.g.?use_external_lookup=0. Set tofalseor 0 if you don't want e-invoice recipients, VAT organization IDs and similar to be validated via external services.
You can set these built-in customer fields in data:
name,company,addressandcountryemailbilling_name,billing_company,billing_address,billing_countryandbilling_emailpassword- you can't retrieve it in clear text afterwards as it goes through a hashcreated
Note that a few of these fields have a different name in the retrieval API for backwards compatibility.
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.
Examples
Create a customer with an ID chosen by Iteras:
POST /api/customers/createcustomer/ HTTP/1.1
Content-Type: application/json{
"data": {
"name": "Customer Name",
"email": "foo@example.com",
"country": "DK",
"password": "secret",
"created": "2025-10-09T01:34:17",
"tax_registration_id": "DK35681558",
":Custom field": "Eksempeltekst",
":Custom date field": "2026-09-09"
}
}The endpoint returns the ID of the new customer:
{ "id": "6493264" }
To create the customer with a specific ID, pass id:
POST /api/customers/createcustomer/ HTTP/1.1
Content-Type: application/json{
"id": "12345",
"data": {
"name": "Customer Name",
"email": "foo@example.com",
"country": "DK"
}
}An invalid field value returns an error as described below.
Errors
Invalid requests due to programming error, e.g. invalid JSON, returns 400.
A well-formed operation where a supplied value is invalid is not executed and returns an HTTP 422 error. The response is a JSON object with the errors keyed by the field they concern, e.g. a custom date field:
{
":Custom date field": ["Enter a valid date."]
}
Errors that are not specific to a field are returned with the empty string as key:
{
"": ["Customer already exists."]
}