Hoppa till innehållet

Customers

Customers with their contact persons and delivery addresses. Addressed by customerNumber.

6 calls GET POST PATCH Base URL https://api.erp.fluit.cloud/preview

Authentication, error codes, rate limits, idempotency and pagination apply to every call and are documented once under Getting started.

GET /customers

List customers

Returns a paginated list of customers for the authenticated tenant. Sorted by customer number. ?modifiedSince= (ISO 8601 UTC datetime) returns records created or changed at or after that instant, and is the intended way to run an incremental sync.

Show the full description

A change anywhere inside the record counts: editing a line moves the parent's modifiedDate too, so no change can hide below the resource level. Deletions are not visible here: a deleted record is really gone, so it simply stops appearing, which is indistinguishable from "unchanged". Poll GET /preview/deletions?deletedSince= alongside this endpoint to learn what was removed.

Query parameters

Field Type Description
search string Matches customer number, name, organisation number and email, case-insensitively and on partial words.
isActive boolean Filters on whether the customer is active. Inactive customers cannot be placed on new orders.
modifiedSince string(date-time) Returns only records created or changed at or after this instant (ISO 8601 UTC datetime). A change anywhere inside the record counts, including on its lines.
page integer Page to return, 1-based. Default 1.
pageSize integer Number of records per page. Default 50, max 200.

Responses

200 PagedResult_PublicCustomerResponse

Paginated response: the fields below sit in items[], wrapped in totalCount, page, pageSize, totalPages, hasPreviousPage and hasNextPage. Paginated

Field Type Description
city string · nullable City name. Null if not set.
countryCode string · nullable ISO 3166-1 alpha-2 country code, e.g. `SE`, `DE`, `NO`. Null if not set.
createdDate string(date-time) UTC timestamp when the customer record was created.
customerGroupCode string · nullable Code of the customer group this customer belongs to. Null if not set.
customerGroupName string · nullable Name of the customer group this customer belongs to. Null if not set.
customerNumber string · nullable Unique customer number — business key used in all URL references.
defaultCurrencyCode string · nullable ISO 4217 currency code of the customer's default currency, e.g. `SEK`, `EUR`. Null if not set.
deliveryTermCode string · nullable Code of the customer's default delivery term — usable as `deliveryTermCode` in order creation. Null if not set.
deliveryTermName string · nullable Name of the customer's default delivery term. Null if not set.
id string(uuid) Internal unique identifier (UUID v7).
invoiceEmail string · nullable Primary email address for invoices and order confirmations. Null if not set.
isActive boolean Whether the customer is active. Inactive customers cannot be used on new orders.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
modifiedDate string(date-time) · nullable UTC timestamp of the last modification. Null if never modified after creation.
name string · nullable Full company or person name.
notes string · nullable Free-text internal notes (not visible to the customer). Null if not set.
organizationNumber string · nullable Company registration number / org.nr, e.g. `5560001234`. Null if not set.
paymentTermCode string · nullable Code of the customer's default payment term — usable as `paymentTermCode` in order creation. Null if not set.
paymentTermName string · nullable Name of the customer's default payment term. Null if not set.
phone string · nullable Primary phone number. Null if not set.
postalCode string · nullable Postal / ZIP code. Null if not set.
street1 string · nullable Street address line 1. Null if not set.
street2 string · nullable Street address line 2 (suite, c/o, etc.). Null if not set.
vatNumber string · nullable VAT registration number, e.g. `SE556000123401`. Null if not set.

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/customers" \
  -H "X-Api-Key: fluit_live_sk_..."
Response 200
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "items": [
    {
      "city": "Stockholm",
      "countryCode": "SE",
      "createdDate": "2026-06-11T09:24:13.418",
      "customerGroupCode": "STD",
      "customerGroupName": "Retail",
      "customerNumber": "CUST-001",
      "defaultCurrencyCode": "SEK",
      "deliveryTermCode": "STD",
      "deliveryTermName": "DAP Stockholm",
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "invoiceEmail": "order@acme.se",
      "isActive": true,
      "links": {
        "self": "string"
      },
      "modifiedDate": "2026-06-11T09:24:13.418",
      "name": "Acme AB",
      "notes": "string",
      "organizationNumber": "ABC-001",
      "paymentTermCode": "STD",
      "paymentTermName": "30 days net",
      "phone": "+46 8 123 45 67",
      "postalCode": "11122",
      "street1": "Storgatan 1",
      "street2": "string",
      "vatNumber": "ABC-001"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "totalCount": 137,
  "totalPages": 3
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

POST /customers

Create a customer

Creates a new customer for the authenticated tenant. Customer number is auto-generated if not provided. defaultBackorderBehavior controls what happens to unfulfillable quantities on this customer's orders; omit it to use CreateBackorder.

Show the full description

Allowed values: CreateBackorder, CancelRemaining, HoldOrder. The response body is the same representation as GET /preview/customers/{customerNumber}; the canonical URL is returned in the Location header and in links.self.

Body required

Field Type Description
city string · nullable City name.
countryCode string · nullable ISO 3166-1 alpha-2 country code, e.g. `SE`, `DE`, `NO`.
customerNumber string · nullable Unique customer number. Auto-generated from the tenant number sequence if omitted.
defaultBackorderBehavior enum CreateBackorder CancelRemaining HoldOrder
defaultCurrencyCode string · nullable ISO 4217 currency code, e.g. `SEK`, `EUR`. If omitted, the tenant default is used.
invoiceEmail string(email) · nullable Email address for invoices and order confirmations.
name Required string Full company or person name.
notes string · nullable Free-text internal notes (not visible to the customer).
organizationNumber string · nullable Company registration number / org.nr, e.g. `5560001234`.
phone string · nullable Primary phone number.
postalCode string · nullable Postal / ZIP code.
street1 string · nullable Street address line 1.
street2 string · nullable Street address line 2 — suite, c/o, etc.
vatNumber string · nullable VAT registration number, e.g. `SE556000123401`.

Responses

201 PublicCustomerResponse
  • Location — URL of the newly created resource.
Field Type Description
city string · nullable City name. Null if not set.
countryCode string · nullable ISO 3166-1 alpha-2 country code, e.g. `SE`, `DE`, `NO`. Null if not set.
createdDate string(date-time) UTC timestamp when the customer record was created.
customerGroupCode string · nullable Code of the customer group this customer belongs to. Null if not set.
customerGroupName string · nullable Name of the customer group this customer belongs to. Null if not set.
customerNumber string · nullable Unique customer number — business key used in all URL references.
defaultCurrencyCode string · nullable ISO 4217 currency code of the customer's default currency, e.g. `SEK`, `EUR`. Null if not set.
deliveryTermCode string · nullable Code of the customer's default delivery term — usable as `deliveryTermCode` in order creation. Null if not set.
deliveryTermName string · nullable Name of the customer's default delivery term. Null if not set.
id string(uuid) Internal unique identifier (UUID v7).
invoiceEmail string · nullable Primary email address for invoices and order confirmations. Null if not set.
isActive boolean Whether the customer is active. Inactive customers cannot be used on new orders.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
modifiedDate string(date-time) · nullable UTC timestamp of the last modification. Null if never modified after creation.
name string · nullable Full company or person name.
notes string · nullable Free-text internal notes (not visible to the customer). Null if not set.
organizationNumber string · nullable Company registration number / org.nr, e.g. `5560001234`. Null if not set.
paymentTermCode string · nullable Code of the customer's default payment term — usable as `paymentTermCode` in order creation. Null if not set.
paymentTermName string · nullable Name of the customer's default payment term. Null if not set.
phone string · nullable Primary phone number. Null if not set.
postalCode string · nullable Postal / ZIP code. Null if not set.
street1 string · nullable Street address line 1. Null if not set.
street2 string · nullable Street address line 2 (suite, c/o, etc.). Null if not set.
vatNumber string · nullable VAT registration number, e.g. `SE556000123401`. Null if not set.
400 ProblemDetails A field failed validation, for example an invalid email address or a field over its maximum length.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl -X POST "https://api.erp.fluit.cloud/preview/customers" \
  -H "X-Api-Key: fluit_live_sk_..." \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d @body.json
Create customer
{
  "city": "Stockholm",
  "countryCode": "SE",
  "customerNumber": "CUST-001",
  "invoiceEmail": "invoice@acme.se",
  "name": "Acme AB",
  "organizationNumber": "5560001234",
  "phone": "+46701234567",
  "postalCode": "11122",
  "street1": "Storgatan 1"
}
Response 201
{
  "city": "Stockholm",
  "countryCode": "SE",
  "createdDate": "2026-06-11T09:24:13.418",
  "customerGroupCode": "STD",
  "customerGroupName": "Retail",
  "customerNumber": "CUST-001",
  "defaultCurrencyCode": "SEK",
  "deliveryTermCode": "STD",
  "deliveryTermName": "DAP Stockholm",
  "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
  "invoiceEmail": "order@acme.se",
  "isActive": true,
  "links": {
    "self": "string"
  },
  "modifiedDate": "2026-06-11T09:24:13.418",
  "name": "Acme AB",
  "notes": "string",
  "organizationNumber": "ABC-001",
  "paymentTermCode": "STD",
  "paymentTermName": "30 days net",
  "phone": "+46 8 123 45 67",
  "postalCode": "11122",
  "street1": "Storgatan 1",
  "street2": "string",
  "vatNumber": "ABC-001"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

GET /customers/{customerNumber}

Get a customer by customer number

Returns the details of a customer belonging to the authenticated tenant. Responses carry a weak ETag; pass it back in If-None-Match to get 304 Not Modified while the record is unchanged. The validator follows the whole record, so a change to a nested part invalidates it too.

customers:read Supports ETag

Path parameters

Field Type Description
customerNumber Required string Customer number of the customer to read.

Responses

200 PublicCustomerResponse
  • ETag — Weak validator for this representation. Pass it back in If-None-Match to get 304 Not Modified while the record is unchanged.
Field Type Description
city string · nullable City name. Null if not set.
countryCode string · nullable ISO 3166-1 alpha-2 country code, e.g. `SE`, `DE`, `NO`. Null if not set.
createdDate string(date-time) UTC timestamp when the customer record was created.
customerGroupCode string · nullable Code of the customer group this customer belongs to. Null if not set.
customerGroupName string · nullable Name of the customer group this customer belongs to. Null if not set.
customerNumber string · nullable Unique customer number — business key used in all URL references.
defaultCurrencyCode string · nullable ISO 4217 currency code of the customer's default currency, e.g. `SEK`, `EUR`. Null if not set.
deliveryTermCode string · nullable Code of the customer's default delivery term — usable as `deliveryTermCode` in order creation. Null if not set.
deliveryTermName string · nullable Name of the customer's default delivery term. Null if not set.
id string(uuid) Internal unique identifier (UUID v7).
invoiceEmail string · nullable Primary email address for invoices and order confirmations. Null if not set.
isActive boolean Whether the customer is active. Inactive customers cannot be used on new orders.
links Links Hypermedia links for a public API resource. Exposed as a computed `links` property on the public response DTOs so that create and read responses carry the same self-reference — the canonical URL is derived from the business key already present on the DTO and can never drift from the route it points at.
modifiedDate string(date-time) · nullable UTC timestamp of the last modification. Null if never modified after creation.
name string · nullable Full company or person name.
notes string · nullable Free-text internal notes (not visible to the customer). Null if not set.
organizationNumber string · nullable Company registration number / org.nr, e.g. `5560001234`. Null if not set.
paymentTermCode string · nullable Code of the customer's default payment term — usable as `paymentTermCode` in order creation. Null if not set.
paymentTermName string · nullable Name of the customer's default payment term. Null if not set.
phone string · nullable Primary phone number. Null if not set.
postalCode string · nullable Postal / ZIP code. Null if not set.
street1 string · nullable Street address line 1. Null if not set.
street2 string · nullable Street address line 2 (suite, c/o, etc.). Null if not set.
vatNumber string · nullable VAT registration number, e.g. `SE556000123401`. Null if not set.
304 Empty body.
  • ETag — Weak validator for this representation. Pass it back in If-None-Match to get 304 Not Modified while the record is unchanged.
404 ProblemDetails No customer with that customer number.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/customers/{customerNumber}" \
  -H "X-Api-Key: fluit_live_sk_..."
Response 200
{
  "city": "Stockholm",
  "countryCode": "SE",
  "createdDate": "2026-06-11T09:24:13.418",
  "customerGroupCode": "STD",
  "customerGroupName": "Retail",
  "customerNumber": "CUST-001",
  "defaultCurrencyCode": "SEK",
  "deliveryTermCode": "STD",
  "deliveryTermName": "DAP Stockholm",
  "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
  "invoiceEmail": "order@acme.se",
  "isActive": true,
  "links": {
    "self": "string"
  },
  "modifiedDate": "2026-06-11T09:24:13.418",
  "name": "Acme AB",
  "notes": "string",
  "organizationNumber": "ABC-001",
  "paymentTermCode": "STD",
  "paymentTermName": "30 days net",
  "phone": "+46 8 123 45 67",
  "postalCode": "11122",
  "street1": "Storgatan 1",
  "street2": "string",
  "vatNumber": "ABC-001"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

PATCH /customers/{customerNumber}

Update a customer

Partially updates a customer. Only provided fields are updated (JSON Merge Patch semantics). Omitted fields are left unchanged. Pass null to clear a nullable field. Unknown fields are rejected with 400, naming the field and listing the ones this endpoint accepts.

customers:write

Path parameters

Field Type Description
customerNumber Required string Customer number of the customer to update.

Body required

Field Type Description
city string · nullable City name. Pass `null` to clear.
countryCode string · nullable ISO 3166-1 alpha-2 country code, e.g. `SE`, `DE`. Pass `null` to clear.
defaultCurrencyCode string · nullable ISO 4217 currency code, e.g. `SEK`, `EUR`. Pass `null` to clear.
invoiceEmail string(email) · nullable Email address for invoices and order confirmations. Pass `null` to clear.
isActive boolean · nullable Whether the customer is active. Inactive customers cannot be placed on new orders.
name string · nullable Full company or person name.
notes string · nullable Free-text internal notes. Pass `null` to clear.
organizationNumber string · nullable Company registration number / org.nr. Pass `null` to clear.
phone string · nullable Primary phone number. Pass `null` to clear.
postalCode string · nullable Postal / ZIP code. Pass `null` to clear.
street1 string · nullable Street address line 1. Pass `null` to clear.
street2 string · nullable Street address line 2 — suite, c/o, etc. Pass `null` to clear.
vatNumber string · nullable VAT registration number. Pass `null` to clear.

Responses

204 Empty body.
400 ProblemDetails The body is not a JSON object, contains a field this endpoint does not have, or a field present in it failed validation.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable
404 ProblemDetails No customer with that customer number.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl -X PATCH "https://api.erp.fluit.cloud/preview/customers/{customerNumber}" \
  -H "X-Api-Key: fluit_live_sk_..." \
  -H "Content-Type: application/json" \
  -d @body.json
Response 400
{
  "detail": "string",
  "instance": "string",
  "status": 42,
  "title": "string",
  "type": "string"
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

GET /customers/{customerNumber}/addresses

List customer delivery addresses

Returns a paginated list of the delivery addresses registered on the customer, default address first. Use the fields to populate deliveryAddress when creating orders.

customers:read Paginated

Path parameters

Field Type Description
customerNumber Required string Customer number of the customer whose addresses to list.

Query parameters

Field Type Description
page integer Page to return, 1-based. Default 1.
pageSize integer Number of records per page. Default 50, max 200.

Responses

200 PagedResult_PublicCustomerAddressResponse

Paginated response: the fields below sit in items[], wrapped in totalCount, page, pageSize, totalPages, hasPreviousPage and hasNextPage. Paginated

Field Type Description
city string · nullable City name.
contactPerson string · nullable Contact person at the delivery address. Null if not set.
countryCode string · nullable ISO 3166-1 alpha-2 country code, e.g. `SE`.
email string · nullable Email address at the delivery address. Null if not set.
id string(uuid) Internal unique identifier of the address.
isDefault boolean Whether this is the customer's default delivery address.
name string · nullable Recipient company or person name.
phone string · nullable Phone number at the delivery address. Null if not set.
postalCode string · nullable Postal / ZIP code.
street1 string · nullable Street address line 1.
street2 string · nullable Street address line 2 (c/o, suite, etc.). Null if not set.
404 ProblemDetails No customer with that customer number.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/customers/{customerNumber}/addresses" \
  -H "X-Api-Key: fluit_live_sk_..."
Response 200
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "items": [
    {
      "city": "Stockholm",
      "contactPerson": "string",
      "countryCode": "SE",
      "email": "order@acme.se",
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "isDefault": true,
      "name": "Acme AB",
      "phone": "+46 8 123 45 67",
      "postalCode": "11122",
      "street1": "Storgatan 1",
      "street2": "string"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "totalCount": 137,
  "totalPages": 3
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

GET /customers/{customerNumber}/contacts

List customer contacts

Returns a paginated list of the contact persons registered on the customer, default contact first. Use a contact's id as customerContactId when creating orders.

customers:read Paginated

Path parameters

Field Type Description
customerNumber Required string Customer number of the customer whose contacts to list.

Query parameters

Field Type Description
page integer Page to return, 1-based. Default 1.
pageSize integer Number of records per page. Default 50, max 200.

Responses

200 PagedResult_PublicCustomerContactResponse

Paginated response: the fields below sit in items[], wrapped in totalCount, page, pageSize, totalPages, hasPreviousPage and hasNextPage. Paginated

Field Type Description
email string · nullable Email address. Null if not set.
id string(uuid) Internal unique identifier — usable as `customerContactId` in order creation.
isDefault boolean Whether this is the customer's default contact.
mobile string · nullable Mobile phone number. Null if not set.
name string · nullable Full name of the contact person.
phone string · nullable Phone number. Null if not set.
title string · nullable Job title, e.g. `Purchasing Manager`. Null if not set.
404 ProblemDetails No customer with that customer number.
Field Type
detail string · nullable
instance string · nullable
status integer · nullable
title string · nullable
type string · nullable

Standard errors: 401 403 Errors

Examples

curl
curl "https://api.erp.fluit.cloud/preview/customers/{customerNumber}/contacts" \
  -H "X-Api-Key: fluit_live_sk_..."
Response 200
{
  "hasNextPage": true,
  "hasPreviousPage": true,
  "items": [
    {
      "email": "order@acme.se",
      "id": "0f8b2c1e-4d3a-4b7e-9f10-2a6c5d8e1b44",
      "isDefault": true,
      "mobile": "string",
      "name": "Anna Svensson",
      "phone": "+46 8 123 45 67",
      "title": "string"
    }
  ],
  "page": 1,
  "pageSize": 50,
  "totalCount": 137,
  "totalPages": 3
}

Base URL https://api.erp.fluit.cloud/preview. The response example is generated from the schema: the shape is right, the values are made up.

Schemas

The objects this group's calls refer to. The field tables above go one level deep and link here rather than repeating the same schema on every endpoint.