Tuindeco

Tuindeco - Customer API v1 (1.0.0)

Download OpenAPI specification:

OAuth

Issue an OAuth token

Issues an access token using either the client_credentials or refresh_token grant type. This endpoint does not require authentication.

Request Body schema: application/json
required
grant_type
required
string
client_id
required
string non-empty
client_secret
required
string non-empty

Responses

Response Schema: application/json
access_token
required
string
token_type
required
string
expires_in
required
integer <int32>
refresh_token
string or null

Request samples

Content type
application/json
Example
{
  • "grant_type": "client_credentials",
  • "client_id": "my-client-id",
  • "client_secret": "my-client-secret"
}

Response samples

Content type
application/json
{
  • "access_token": "string",
  • "token_type": "Bearer",
  • "expires_in": 3600,
  • "refresh_token": "string"
}

Order

Create an order from line items

Creates an order for the authenticated customer. Note: If a productNumber cannot be resolved, it is added as a cart error internally. This endpoint still returns 201 without a response body.

Authorizations:
BearerAuth
Request Body schema: application/json
required
required
Array of objects (order_create_line_item) non-empty
shippingAddressId
string or null <uuid>

Optional shipping address id to override the customer's active shipping address.

deliveryWeek
integer >= 1

Optional delivery week number (positive integer). If omitted, the server defaults to the current ISO week.

reference
string or null

Optional order reference.

object or null

Optional one-time delivery address for dropshipment. When provided the order is shipped to this address instead of the customer's active shipping address. The address is not saved to the customer's address book.

Responses

Request samples

Content type
application/json
Example
{
  • "lineItems": [
    ]
}

Response samples

Content type
application/json
{
  • "error": "Invalid request body.",
  • "exception": "Expected a non-empty-string at key lineItems.0.productNumber"
}

List orders

Returns a paginated list of customer orders. Optionally filter by status.

Authorizations:
BearerAuth
query Parameters
language
string >= 2 characters
Default: "nl"

Language code (nl, en, de)

page
integer <int32> >= 1
Default: 1

Page number (1-based)

limit
integer <int32> <= 100
Default: 100

Page size (maximum 100)

status
string (order_status)
Enum: "Open" "Done" "Paid" "Paid In Full" "Pending Approval" "Pending Fulfillment" "Partially Fulfilled" "Fulfilled" "Partially Billed" "Billed" "Closed" "Cancelled" "In Progress" "Shipped (partially)" "Paid (partially)" "Shipped" "Pending Billing" "Pending Billing/Partially Fulfilled"

Optional order status filter (status key).

from
string <date>
Example: from=2026-01-01

Start date (inclusive) for filtering orders.

to
string <date>
Example: to=2026-12-31

End date (inclusive) for filtering orders.

Responses

Response Schema: application/json
required
object (_meta)

Standard pagination metadata

required
Array of objects (order)

Response samples

Content type
application/json
{
  • "_meta": {
    },
  • "results": [
    ]
}

Profile

Get customer profile

Returns the authenticated customer's profile.

Authorizations:
BearerAuth

Responses

Response Schema: application/json
required
object (customer_profile)

Response samples

Content type
application/json
{
  • "customer": {
    }
}

Pricing

Get assortment product numbers

Returns a paginated list of product numbers that belong to the customer's assortment.

Authorizations:
BearerAuth
query Parameters
language
string >= 2 characters
Default: "nl"

Language code (nl, en, de)

page
integer <int32> >= 1
Default: 1

Page number (1-based)

limit
integer <int32> <= 100
Default: 100

Page size (maximum 100)

Responses

Response Schema: application/json
required
object (_meta)

Standard pagination metadata

results
required
Array of strings

Response samples

Content type
application/json
{
  • "_meta": {
    },
  • "results": [
    ]
}

Lookup prices by product numbers

Returns price information for the given comma-separated productNumbers. Only products in the customer's assortment are considered.

Authorizations:
BearerAuth
query Parameters
productNumbers
required
string non-empty
Example: productNumbers=SW-10001,SW-10002

Comma-separated list of product numbers. Example: "SW-10001,SW-10002"

language
string >= 2 characters
Default: "nl"

Language code (nl, en, de)

limit
integer <int32> <= 100
Default: 100

Page size (maximum 100)

Responses

Response Schema: application/json
required
object (_meta)

Standard pagination metadata

required
Array of objects (price_result)

Response samples

Content type
application/json
{
  • "_meta": {
    },
  • "results": [
    ]
}

Lookup stock by product numbers

Returns a paginated stock mapping for the given comma-separated productNumbers. Only products in the customer's assortment are considered.

Authorizations:
BearerAuth
query Parameters
productNumbers
required
string non-empty
Example: productNumbers=SW-10001,SW-10002

Comma-separated list of product numbers. Example: "SW-10001,SW-10002"

language
string >= 2 characters
Default: "nl"

Language code (nl, en, de)

page
integer <int32> >= 1
Default: 1

Page number (1-based)

limit
integer <int32> <= 100
Default: 100

Page size (maximum 100)

Responses

Response Schema: application/json
required
object (_meta)

Standard pagination metadata

required
object

Map of productNumber to stock info (stock is optionally capped by threshold)

Response samples

Content type
application/json
{
  • "_meta": {
    },
  • "results": {
    }
}

Assortment

Get assortment product numbers

Returns a paginated list of product numbers that belong to the customer's assortment.

Authorizations:
BearerAuth
query Parameters
language
string >= 2 characters
Default: "nl"

Language code (nl, en, de)

page
integer <int32> >= 1
Default: 1

Page number (1-based)

limit
integer <int32> <= 100
Default: 100

Page size (maximum 100)

Responses

Response Schema: application/json
required
object (_meta)

Standard pagination metadata

results
required
Array of strings

Response samples

Content type
application/json
{
  • "_meta": {
    },
  • "results": [
    ]
}

Stock

Lookup stock by product numbers

Returns a paginated stock mapping for the given comma-separated productNumbers. Only products in the customer's assortment are considered.

Authorizations:
BearerAuth
query Parameters
productNumbers
required
string non-empty
Example: productNumbers=SW-10001,SW-10002

Comma-separated list of product numbers. Example: "SW-10001,SW-10002"

language
string >= 2 characters
Default: "nl"

Language code (nl, en, de)

page
integer <int32> >= 1
Default: 1

Page number (1-based)

limit
integer <int32> <= 100
Default: 100

Page size (maximum 100)

Responses

Response Schema: application/json
required
object (_meta)

Standard pagination metadata

required
object

Map of productNumber to stock info (stock is optionally capped by threshold)

Response samples

Content type
application/json
{
  • "_meta": {
    },
  • "results": {
    }
}

Product

Get product configurators

Returns a paginated list of product configurators in the customer's assortment.

Authorizations:
BearerAuth
query Parameters
productIds
required
string non-empty
Example: productIds=e1aad7c3052a443bb1c0e081fffb9dd5,fc6d36cca5fd46738d76e82509525148

Comma-separated list of product IDs. Example: "e1aad7c3052a443bb1c0e081fffb9dd5,fc6d36cca5fd46738d76e82509525148"

language
string >= 2 characters
Default: "nl"

Language code (nl, en, de)

page
integer <int32> >= 1
Default: 1

Page number (1-based)

limit
integer <int32> <= 100
Default: 100

Page size (maximum 100)

Responses

Response Schema: application/json
required
object (_meta)

Standard pagination metadata

required
Array of objects (product_configurator)

Response samples

Content type
application/json
{
  • "_meta": {
    },
  • "results": [
    ]
}

List products

Returns a paginated list of products in the customer's assortment. Optionally filter by productNumbers (comma-separated).

Authorizations:
BearerAuth
query Parameters
language
string >= 2 characters
Default: "nl"

Language code (nl, en, de)

page
integer <int32> >= 1
Default: 1

Page number (1-based)

limit
integer <int32> <= 100
Default: 100

Page size (maximum 100)

productNumbers
required
string non-empty
Example: productNumbers=SW-10001,SW-10002

Comma-separated list of product numbers. Example: "SW-10001,SW-10002"

Responses

Response Schema: application/json
required
object (_meta)

Standard pagination metadata

required
Array of objects (product)

Response samples

Content type
application/json
{
  • "_meta": {
    },
  • "results": [
    ]
}

Get product models

Returns a paginated list of product models in the customer's assortment. Optionally filter by productNumbers (comma-separated).

Authorizations:
BearerAuth
query Parameters
productNumbers
required
string non-empty
Example: productNumbers=SW-10001,SW-10002

Comma-separated list of product numbers. Example: "SW-10001,SW-10002"

language
string >= 2 characters
Default: "nl"

Language code (nl, en, de)

page
integer <int32> >= 1
Default: 1

Page number (1-based)

limit
integer <int32> <= 100
Default: 100

Page size (maximum 100)

Responses

Response Schema: application/json
required
object (_meta)

Standard pagination metadata

results
required
Array of any (product_model)

Response samples

Content type
application/json
{
  • "_meta": {
    },
  • "results": [
    ]
}