Shirtigo Cockpit API API Reference

API for the Shirtigo Cockpit application. The API supports API-Key as well as OAuth2 authentication. The API-key / access token has to be presented in the Authentication header such as Authentication: Bearer [key]. Additionally, it is recommended to set the Accept: application/json header. API Clients for several languages are available on github: https://github.com/shirtigo

API Endpoint
https://cockpit.shirtigo.com/api
Request Content-Types: application/json
Response Content-Types: application/json
Schemes: https
Version: 1.0.0

Authentication

cockpit_apikey

description

This API supports access via an API key. A key can be obtained from the integrations dashboard. The key must be presented in the 'Authorization' header, e.g. 'Authorization: Bearer [key]'.

name
Authorization
in
header

cockpit_oauth

description

This API supports OAuth2 with the authorization-code flow. A detailed tutorial on this topic can be found here. Note that the endpoint is /oauth/, not /api/oauth/ as indicated here in the documentation.

flow
accessCode
authorizationUrl
/oauth/authorize
tokenUrl
/oauth/token

oauth

This section contains endpoints related to the OAuth2 implementation.

Obtain authorization from user

GET /oauth/authorize

As part of the OAuth2 authorization-code flow, users have to be directed to this endpoint, with the query parameters filled in. If applicable, the user will then be prompted to log into their account and confirm that their data may be used by a third party client. For security reasons, the redirect URL has to be registered beforehand, the client ID and client secrets are also issued during registration.

response_type

Response type

type
string code
in
query
redirect_url

Redirect URL. Must match registered redirect URL.

type
string
in
query
client_id

Client ID (from registration)

type
string
in
query
client_secret

Client Secret (from registration)

type
string
in
query
200 OK

Success, body contains prompt for confirmation.

302 Found

Success, authorization has been previously granted, redirect to callback.

401 Unauthorized

Error, invalid client (client ID and/or secret is invalid).

Request access token

POST /oauth/token

This endpoint constitutes the second step of the OAuth2 authorization flow, obtaining an access token from the access code. This is done on the client side and does not require any user interaction.

grant_type

Grant type

type
string authorization_code
in
formData
code

Code received in callback from /oauth/authorize

type
string
in
formData
client_id

Client ID (from registration)

type
string
in
formData
client_secret

Client Secret (from registration)

type
string
in
formData
200 OK

Success, token issued.

400 Bad Request

Error.

401 Unauthorized

Error, invalid client (client ID or secret are wrong).

Response Example (200 OK)
{
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjVjZj...",
  "refresh_token": "tYI1iHjH7lGBLlBi+VD6uYYCn3pZo8Do/BSmcgzwTOuZ+f7v/z...",
  "expires_in": 31536000,
  "token_type": "Bearer"
}
Response Example (400 Bad Request)
{
  "error": "string",
  "message": "string",
  "hint": "string"
}
Response Example (401 Unauthorized)
{
  "error": "string",
  "message": "string",
  "hint": "string"
}

user

Endpoints in this section control data of the currently logged in user profile.

Get all transactions

GET /transactions

Retrieve all accounting transactions issued by the currently authenticated user. The result will be paginated, meta information is included in the response.

page

Page number

type
integer 1
in
query
items

Items per page

type
integer 12
in
query
search

Search query

type
integer
in
query
sort_col

Property to order by

type
string
in
query
sort_dir

Order direction

type
string asc, desc asc
in
query
period

Days to show (default: all)

type
integer
in
query
action

Action to filter for (default: none)

type
integer
in
query
200 OK

Success

Response Example (200 OK)
{
  "data": [
    {
      "id": "d1364568-4b15-4706-89f1-2452efe1261d",
      "status": "invoice",
      "status_title": "Erstattung",
      "payment_reference": "Kreditkarte",
      "order": {
        "reference": "ABCDXY1",
        "net_price": {
          "amount": 999,
          "currency_symbol": "€",
          "currency_code": "EUR",
          "currency_factor": 100
        },
        "gross_price": {
          "amount": 999,
          "currency_symbol": "€",
          "currency_code": "EUR",
          "currency_factor": 100
        },
        "vat_rate": 19,
        "vat_amount": {
          "amount": 999,
          "currency_symbol": "€",
          "currency_code": "EUR",
          "currency_factor": 100
        },
        "status": "Bestellung offen",
        "status_key": "",
        "invoice_reference": "string",
        "fulfillment": {},
        "delivery": {
          "title": "Dr.",
          "company": "Shirtigo GmbH",
          "firstname": "Max",
          "lastname": "Mustermann",
          "care_of": "Gift for Mrs. Doe",
          "street": "Musterstraße 12",
          "postcode": "12345",
          "city": "Köln",
          "country": "DE"
        },
        "sender": {
          "title": "Dr.",
          "company": "Shirtigo GmbH",
          "firstname": "Max",
          "lastname": "Mustermann",
          "care_of": "Gift for Mrs. Doe",
          "street": "Musterstraße 12",
          "postcode": "12345",
          "city": "Köln",
          "country": "DE"
        },
        "bill": {
          "title": "Dr.",
          "company": "Shirtigo GmbH",
          "firstname": "Max",
          "lastname": "Mustermann",
          "care_of": "Gift for Mrs. Doe",
          "street": "Musterstraße 12",
          "postcode": "12345",
          "city": "Köln",
          "country": "DE"
        },
        "total_items": 5,
        "add_delivery_receipt": true,
        "delivery_receipt_logo_reference": "A456HJ",
        "delivery_receipt_note": "Use voucher XYZ and get a 10% discount for your next order",
        "use_custom_product_name": true,
        "created_at": "2017-01-01 12:34:56",
        "updated_at": "2017-01-01 12:34:56",
        "products": {
          "data": [
            {
              "id": "integer",
              "amount": 1,
              "name": "Base product XY",
              "color": "Black",
              "size": "XL",
              "images": [
                {
                  "id": "1222",
                  "color": "Red",
                  "area": "front",
                  "urls": {
                    "small": "http://www.example.com/my-orders/small.png",
                    "large": "http://www.example.com/my-orders/large.png"
                  }
                }
              ],
              "net_total_price": 1375,
              "net_unit_price": {
                "amount": 999,
                "currency_symbol": "€"
              }
            }
          ]
        }
      }
    }
  ]
}

Get balance for current user

POST user/balance

Return a Money object for the users current balance

200 OK

Success

Response Example (200 OK)
{
  "amount": 999,
  "currency_symbol": "€",
  "currency_code": "EUR",
  "currency_factor": 100
}

Get user information

GET /user

Some of the listed resources are available as optional includes (add to the query ?include=firstInclude,secondInclude.subInclude). The available includes for this endpoint are: integrations, billingMethod, availableBillingMethods

200 OK

Success

Response Example (200 OK)
{
  "email": "mustermann@example.com",
  "firstname": "Max",
  "lastname": "Mustermann",
  "display_name": "Max Mustermann",
  "user_group": {
    "id": 1,
    "type": "premium",
    "cockpit_discount": 20,
    "quantity": 1000,
    "created_at": "2017-01-01 12:34:56",
    "updated_at": "2017-01-01 12:34:56"
  },
  "is_business": true,
  "title": "Dr.",
  "company_name": "Shirtigo GmbH",
  "street": "Musterstraße 12",
  "postcode": "12345",
  "city": "Köln",
  "country": "Deutschland",
  "phone": "004930123456",
  "sender_title": "string",
  "sender_company_name": "string",
  "sender_firstname": "string",
  "sender_lastname": "string",
  "sender_street": "string",
  "sender_postcode": "string",
  "sender_city": "string",
  "sender_state": "string",
  "sender_country": "string",
  "sender_type": "string",
  "fulfillment_key": "24h-express",
  "is_billing_valid": true,
  "has_orders": true,
  "integration_count": 2,
  "is_auto_onhold": true,
  "integrations": [
    {
      "id": 111,
      "app": "shopify",
      "name": "my-cool-shirtstore.myshopify.com",
      "reference": "154e3f69-c081-4e20-8706-d1c7477e15c8",
      "expires_in": "2018-01-01 12:34:56",
      "image_type": "png",
      "image_quality": "high",
      "fulfillment_mode_key": "24h-express",
      "is_token_revoked": true,
      "is_pull_orders": true,
      "is_auto_pull_orders": "true",
      "default_first_packin_reference": "ABC123",
      "default_second_packin_reference": "ABC123",
      "default_hangtag_reference": "ABC123",
      "default_imprint_reference": "ABC123",
      "default_label_reference": "ABC123",
      "default_product_packaging_reference": "ABC123",
      "default_order_packaging_reference": "ABC123",
      "default_sticker_reference": "ABC123",
      "add_delivery_receipt": true,
      "delivery_receipt_note": "Use voucher XYZ and get a 10% discount for your next order",
      "default_delivery_receipt_logo_reference": "ABC123",
      "delivery_receipt_logo": "https://example.com/custom_logo.png",
      "use_custom_product_name": true,
      "sticker_logo": "https://example.com/custom_logo.png",
      "is_auto_onhold": true,
      "is_refresh_token_expired": false
    }
  ],
  "updated_at": "2017-01-01 12:34:56",
  "add_delivery_receipt": true,
  "delivery_receipt_note": "Use voucher XYZ and get a 10% discount for your next order",
  "default_delivery_receipt_logo_reference": "ABC123",
  "delivery_receipt_logo": "https://example.com/custom_logo.png",
  "use_custom_product_name": true,
  "default_first_packin_reference": "ABC123",
  "default_second_packin_reference": "ABC123",
  "default_hangtag_reference": "ABC123",
  "sticker_logo": "https://example.com/custom_logo.png"
}

Update user information

POST /user

Update (some) fields of the currently authenticated user profile.

firstname: string

Update user information

Update (some) fields of the currently authenticated user profile.

lastname: string

Update user information

Update (some) fields of the currently authenticated user profile.

street: string

Update user information

Update (some) fields of the currently authenticated user profile.

postcode: string

Update user information

Update (some) fields of the currently authenticated user profile.

city: string

Update user information

Update (some) fields of the currently authenticated user profile.

country: string

Update user information

Update (some) fields of the currently authenticated user profile.

company_name: string

Update user information

Update (some) fields of the currently authenticated user profile.

phone: string

Update user information

Update (some) fields of the currently authenticated user profile.

is_business: boolean

Update user information

Update (some) fields of the currently authenticated user profile.

fulfillment_mode_key: boolean

Update user information

Update (some) fields of the currently authenticated user profile.

Request Example
{
  "firstname": "string",
  "lastname": "string",
  "street": "string",
  "postcode": "string",
  "city": "string",
  "country": "string",
  "company_name": "string",
  "phone": "string",
  "is_business": "boolean",
  "fulfillment_mode_key": "boolean"
}
204 No Content

User information updated.

422 Unprocessable Entity

Validation of inputs failed.

Upload a logo to be used on the delivery receipt for your customers

POST /user/delivery-receipt-logo

Upload a logo to your user account which is printed on the delivery receipt for your customers to increase the branding of your fulfillment

The file needs to be a png with 900px x 385px (width x height).

The endpoint returns an empty array with exit code 200.

file

Design file

type
file
in
formData
200 OK

Success, delivery receipt logo was uploaded

422 Unprocessable Entity

Error, image file does not meet requirements

Delete a Logo assigned to your account or integration

DELETE /user/delivery-receipt-logo/{integration_id}

The endpoint returns an empty array with exit code 200.

integration_id

Unique integration identifier

type
string
in
path
200 OK

Success, delivery receipt logo was deleted

Upload a sticker to be used on the delivery receipt for your customers

POST /user/sticker

Upload a sticker to your user account which is printed on packaging for your customers to increase the branding of your fulfillment

The file needs to be a png with 560px x 560px (width x height).

The endpoint returns an empty array with exit code 200.

file

Design file

type
file
in
formData
200 OK

Success, sticker was uploaded

422 Unprocessable Entity

Error, image file does not meet requirements

Delete a sticker assigned to your account or integration

DELETE /user/sticker/{integration_id}

The endpoint returns an empty array with exit code 200.

integration_id

Unique integration identifier

type
string
in
path
200 OK

Success, sticker was deleted

Update sender address

POST /user/sender-address

Update sender address fields of currently authenticated user.

sender_company_name: string (up to 30 chars)

Update sender address

Update sender address fields of currently authenticated user.

sender_firstname: string (up to 20 chars)

Update sender address

Update sender address fields of currently authenticated user.

sender_lastname: string (up to 20 chars)

Update sender address

Update sender address fields of currently authenticated user.

sender_street: string (up to 35 chars)

Update sender address

Update sender address fields of currently authenticated user.

sender_postcode: string (3 to 9 chars)

Update sender address

Update sender address fields of currently authenticated user.

sender_city: string (up to 30 chars)

Update sender address

Update sender address fields of currently authenticated user.

sender_country: string

Update sender address

Update sender address fields of currently authenticated user.

Request Example
{
  "sender_company_name": "string",
  "sender_firstname": "string",
  "sender_lastname": "string",
  "sender_street": "string",
  "sender_postcode": "string",
  "sender_city": "string",
  "sender_country": "string"
}
204 No Content

User information updated.

422 Unprocessable Entity

Validation of inputs failed.

Update user advanced

POST /user/advanced

Update advanced user settings.

locale: string

Update user advanced

Update advanced user settings.

accounting_email: string

Update user advanced

Update advanced user settings.

customs_email: string

Update user advanced

Update advanced user settings.

receives_mail_order_placed: boolean

Update user advanced

Update advanced user settings.

receives_mail_order_shipped: boolean

Update user advanced

Update advanced user settings.

use_tracking_de: boolean

Update user advanced

Update advanced user settings.

use_tracking_eu: boolean

Update user advanced

Update advanced user settings.

use_tracking_world: boolean

Update user advanced

Update advanced user settings.

add_delivery_receipt: boolean

Update user advanced

Update advanced user settings.

use_custom_product_name: boolean

Update user advanced

Update advanced user settings.

delivery_receipt_note: string

Update user advanced

Update advanced user settings.

default_first_packin_reference: string

Update user advanced

Update advanced user settings.

default_second_packin_reference: string

Update user advanced

Update advanced user settings.

default_hangtag_reference: string

Update user advanced

Update advanced user settings.

default_imprint_reference: string

Update user advanced

Update advanced user settings.

default_label_reference: string

Update user advanced

Update advanced user settings.

default_product_packaging_reference: string

Update user advanced

Update advanced user settings.

default_order_packaging_reference: string

Update user advanced

Update advanced user settings.

Request Example
{
  "locale": "string",
  "accounting_email": "string",
  "customs_email": "string",
  "receives_mail_order_placed": "boolean",
  "receives_mail_order_shipped": "boolean",
  "use_tracking_de": "boolean",
  "use_tracking_eu": "boolean",
  "use_tracking_world": "boolean",
  "add_delivery_receipt": "boolean",
  "use_custom_product_name": "boolean",
  "delivery_receipt_note": "string",
  "default_first_packin_reference": "string",
  "default_second_packin_reference": "string",
  "default_hangtag_reference": "string",
  "default_imprint_reference": "string",
  "default_label_reference": "string",
  "default_product_packaging_reference": "string",
  "default_order_packaging_reference": "string"
}
204 No Content

User information updated.

422 Unprocessable Entity

Validation of inputs failed.

design

Endpoints in this section manipulate (create, view, modify) designs by the currently logged in user.

Get all designs

GET /designs

Retrieve a paginated list of available designs of the currently authenticated user.

200 OK

Success

Response Example (200 OK)
{
  "data": [
    {
      "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
      "filename": "ABCDE",
      "name": "My cool design",
      "width": 5000,
      "height": 3000,
      "filetype": "png",
      "tags": "summer-collection",
      "processingmethod_key": "dtg",
      "colors": 5,
      "palette": [
        "A20061",
        "FFBC42",
        "1C838A",
        "021618",
        "A3AAAB"
      ],
      "complementary_color": "",
      "preview": "https://example.com/product_prev.png",
      "original_file": "https://example.com/product.png",
      "is_processed": true,
      "is_dark": true,
      "is_editable": true,
      "is_ai_generated": true,
      "created_at": "2017-01-01 12:34:56",
      "updated_at": "2017-01-01 12:34:56"
    }
  ]
}

Get design

GET /designs/{design-reference}

Retrieve information about a single design. Only searches designs that are available to the currently authenticated user.

design-reference

Unique design identifier

type
string
in
path
200 OK

Success

404 Not Found

Design not found

Response Example (200 OK)
{
  "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "filename": "ABCDE",
  "name": "My cool design",
  "width": 5000,
  "height": 3000,
  "filetype": "png",
  "tags": "summer-collection",
  "processingmethod_key": "dtg",
  "colors": 5,
  "palette": [
    "A20061",
    "FFBC42",
    "1C838A",
    "021618",
    "A3AAAB"
  ],
  "complementary_color": "",
  "preview": "https://example.com/product_prev.png",
  "original_file": "https://example.com/product.png",
  "is_processed": true,
  "is_dark": true,
  "is_editable": true,
  "is_ai_generated": true,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56"
}

Update design

PUT /designs/{design-reference}

Update a single design based on the parameters given in the form body.

name: string

name of the design

tags: string[]

List of tags for this design

colors: object[]

List of hex-color pairs with the currently used color and the color to replace. Only available for embroidery design files.

design-reference

Unique design identifier

type
string
in
path
Request Example
{
  "name": "string",
  "tags": [
    "string"
  ],
  "colors": [
    {
      "F2E9EA": "25282A",
      "D0DF00": "84754E"
    }
  ]
}
200 OK

Success

404 Not Found

Design not found

Response Example (200 OK)
{
  "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "filename": "ABCDE",
  "name": "My cool design",
  "width": 5000,
  "height": 3000,
  "filetype": "png",
  "tags": "summer-collection",
  "processingmethod_key": "dtg",
  "colors": 5,
  "palette": [
    "A20061",
    "FFBC42",
    "1C838A",
    "021618",
    "A3AAAB"
  ],
  "complementary_color": "",
  "preview": "https://example.com/product_prev.png",
  "original_file": "https://example.com/product.png",
  "is_processed": true,
  "is_dark": true,
  "is_editable": true,
  "is_ai_generated": true,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56"
}

Delete design

DELETE /designs/{design-reference}

Only designs by the currently authenticated user may be deleted.

design-reference

Unique design identifier

type
string
in
path
204 No Content

Success, design deleted

404 Not Found

Design not found

Create design from file

POST /designs/file

Create a new design from the submitted file.

The file must be at least 1000px in width or height and must be formatted either as PNG- or JPEG raster image.

The endpoint returns the created design.

processingmethod: string

The processingmethod for which the design will be used (dtg, embroidery, engraving)

name: string

name for the design

tags: string[]

List of tags for this design

file

Design file

type
file
in
formData
Request Content-Types: multipart/form-data
Request Example
{
  "processingmethod": "dtg",
  "name": "my-design",
  "tags": [
    "string"
  ]
}
200 OK

Success, all file has been processed

422 Unprocessable Entity

Error, image file does not meet requirements

Response Example (200 OK)
{
  "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "filename": "ABCDE",
  "name": "My cool design",
  "width": 5000,
  "height": 3000,
  "filetype": "png",
  "tags": "summer-collection",
  "processingmethod_key": "dtg",
  "colors": 5,
  "palette": [
    "A20061",
    "FFBC42",
    "1C838A",
    "021618",
    "A3AAAB"
  ],
  "complementary_color": "",
  "preview": "https://example.com/product_prev.png",
  "original_file": "https://example.com/product.png",
  "is_processed": true,
  "is_dark": true,
  "is_editable": true,
  "is_ai_generated": true,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56"
}

Create design from base64-encoded data

POST /designs/base64

Create a new design from the base64-encoded data

The endpoint returns the created design.

data: string

Base64-encoded data

original_filename: string

Original file name (optional)

processingmethod: string

The processingmethod for which the design will be used (dtg, embroidery, engraving)

name: string

name for the design

tags: string[]

List of tags for this design

Request Example
{
  "data": "string",
  "original_filename": "string",
  "processingmethod": "dtg",
  "name": "my-design",
  "tags": [
    "string"
  ]
}
200 OK

Success, URL has been processed

422 Unprocessable Entity

Error, URL / image file does not meet requirements

Response Example (200 OK)
{
  "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "filename": "ABCDE",
  "name": "My cool design",
  "width": 5000,
  "height": 3000,
  "filetype": "png",
  "tags": "summer-collection",
  "processingmethod_key": "dtg",
  "colors": 5,
  "palette": [
    "A20061",
    "FFBC42",
    "1C838A",
    "021618",
    "A3AAAB"
  ],
  "complementary_color": "",
  "preview": "https://example.com/product_prev.png",
  "original_file": "https://example.com/product.png",
  "is_processed": true,
  "is_dark": true,
  "is_editable": true,
  "is_ai_generated": true,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56"
}

Create design from URL

POST /designs/url

Create a new design from the submitted URL.

The endpoint returns the created design.

url: string

Design file URL

processingmethod: string

The processingmethod for which the design will be used (dtg, embroidery, engraving)

name: string

name for the design

tags: string[]

List of tags for this design

Request Example
{
  "url": "string",
  "processingmethod": "dtg",
  "name": "my-design",
  "tags": [
    "string"
  ]
}
200 OK

Success, URL has been processed

422 Unprocessable Entity

Error, URL / image file does not meet requirements

Response Example (200 OK)
{
  "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "filename": "ABCDE",
  "name": "My cool design",
  "width": 5000,
  "height": 3000,
  "filetype": "png",
  "tags": "summer-collection",
  "processingmethod_key": "dtg",
  "colors": 5,
  "palette": [
    "A20061",
    "FFBC42",
    "1C838A",
    "021618",
    "A3AAAB"
  ],
  "complementary_color": "",
  "preview": "https://example.com/product_prev.png",
  "original_file": "https://example.com/product.png",
  "is_processed": true,
  "is_dark": true,
  "is_editable": true,
  "is_ai_generated": true,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56"
}

product

Endpoints in this section retrieve customized products available to the currently logged in user.

Get all products

GET /products

Some of the listed resources are available as optional includes (add to the query ?include=firstInclude,secondInclude.subInclude). The available includes for this endpoint are: colors, base_product, active_integration_syncs, integration_sync_log, integration_products, projectProductColors

finished

Only return products where rendering is finished.

type
integer
in
query
search

A search term used to filter on the product and product group (collection) names.

type
string
in
query
project_id

Return only products for a given campaign

type
string
in
query
design_id

Return only products which contain a processingarea where the design for the given design_id is used

type
string
in
query
base_product_id

Return which are based on the given base product id

type
integer
in
query
tags

Filter for products containing a given tag

type
string
in
query
200 OK

Success

Response Example (200 OK)
{
  "data": [
    {
      "id": 123,
      "project": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
      "project_name": "Projekt 123",
      "name": "Base Product Name XY",
      "custom_name": "My cool product",
      "description": "string",
      "tags": [
        "string"
      ],
      "price": {
        "amount": 999,
        "currency_symbol": "€",
        "currency_code": "EUR",
        "currency_factor": 100
      },
      "shirtigo_price": {
        "amount": 999,
        "currency_symbol": "€",
        "currency_code": "EUR",
        "currency_factor": 100
      },
      "sort_position": 0,
      "colors": [
        {
          "id": 123,
          "color": "Black",
          "color_hex": "#000000",
          "is_colored": true,
          "sales_price": {
            "amount": 999,
            "currency_symbol": "€",
            "currency_code": "EUR",
            "currency_factor": 100
          },
          "sort_position": 1,
          "sizes": [
            {
              "id": 67,
              "size": "XL",
              "is_onlocalstock": true,
              "is_available": true,
              "sort_position": 1,
              "shirtigo_price": {
                "amount": 999,
                "currency_symbol": "€",
                "currency_code": "EUR",
                "currency_factor": 100
              }
            }
          ]
        }
      ],
      "is_available": true,
      "is_rendered": true,
      "has_express": false,
      "images": [
        {
          "id": "1222",
          "color": "Red",
          "area": "front",
          "urls": {
            "small": "http://www.example.com/my-orders/small.png",
            "large": "http://www.example.com/my-orders/large.png"
          }
        }
      ],
      "brandings": [
        {
          "reference": "ABC123",
          "name": "Greetings card",
          "type": "packin",
          "position": "seam-left",
          "size_id": "3",
          "color_ids": "['147','157']",
          "weight_gram": "10",
          "width_mm": "100",
          "height_mm": "100",
          "initial_inventory": "1000",
          "inventory": "1000",
          "preview_path": "https://s3.amazon.com/preview.png",
          "is_active": true,
          "stocking_costs": 50,
          "item_costs": 75
        }
      ],
      "base_product": {
        "id": 1,
        "name": "Base product XY",
        "original_name": "T-Shirt",
        "shipping_category": 1,
        "category_id": 5,
        "category": "Unisex-Shirts",
        "short_description": "string",
        "description": "string",
        "sizechart_image": "string",
        "is_active": "boolean",
        "manufacturer": {
          "id": 123,
          "name": "Musterfirma"
        },
        "images": {
          "data": [
            null
          ]
        }
      }
    }
  ]
}

Get product

GET /products/{product-id}

Some of the listed resources are available as optional includes (add to the query ?include=firstInclude,secondInclude.subInclude). The available includes for this endpoint are: colors, base_product, active_integration_syncs, integration_sync_log, integration_products, projectProductColors

product-id

Numerical product identifier

type
integer
in
path
include_stock

Include stock information for the product

type
boolean
in
query

Success

404 Not Found

Product not found

Response Example (200 OK)
{
  "id": 123,
  "project": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "project_name": "Projekt 123",
  "name": "Base Product Name XY",
  "custom_name": "My cool product",
  "description": "string",
  "tags": [
    "string"
  ],
  "price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "shirtigo_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "sort_position": 0,
  "colors": [
    {
      "id": 123,
      "color": "Black",
      "color_hex": "#000000",
      "is_colored": true,
      "sales_price": {
        "amount": 999,
        "currency_symbol": "€",
        "currency_code": "EUR",
        "currency_factor": 100
      },
      "sort_position": 1,
      "sizes": [
        {
          "id": 67,
          "size": "XL",
          "is_onlocalstock": true,
          "is_available": true,
          "sort_position": 1,
          "shirtigo_price": {
            "amount": 999,
            "currency_symbol": "€",
            "currency_code": "EUR",
            "currency_factor": 100
          }
        }
      ]
    }
  ],
  "is_available": true,
  "is_rendered": true,
  "has_express": false,
  "images": [
    {
      "id": "1222",
      "color": "Red",
      "area": "front",
      "urls": {
        "small": "http://www.example.com/my-orders/small.png",
        "large": "http://www.example.com/my-orders/large.png"
      }
    }
  ],
  "brandings": [
    {
      "reference": "ABC123",
      "name": "Greetings card",
      "type": "packin",
      "position": "seam-left",
      "size_id": "3",
      "color_ids": "['147','157']",
      "weight_gram": "10",
      "width_mm": "100",
      "height_mm": "100",
      "initial_inventory": "1000",
      "inventory": "1000",
      "preview_path": "https://s3.amazon.com/preview.png",
      "is_active": true,
      "stocking_costs": 50,
      "item_costs": 75
    }
  ],
  "base_product": {
    "id": 1,
    "name": "Base product XY",
    "original_name": "T-Shirt",
    "shipping_category": 1,
    "category_id": 5,
    "category": "Unisex-Shirts",
    "short_description": "string",
    "description": "string",
    "sizechart_image": "string",
    "is_active": "boolean",
    "manufacturer": {
      "id": 123,
      "name": "Musterfirma"
    },
    "images": {
      "data": [
        null
      ]
    },
    "colors": {}
  }
}

Update product

PUT /products/{product-id}

Update names, descriptions, prices and add/delete a product of the authenticated user.

custom_name: string

Product name

price: integer

Gross product price in Euro-cents

description: string

Short description

tags: string[]

List of tags for this product

colors: integer[]

List of color ids

delete_unmentioned_colors: bool

Set to true if colors which are stored but do not appear in the request should be deleted. Default: false

sort_position: integer

Set a sort position for this product within its project

product-id

Numerical product identifier

type
integer
in
path
Request Example
{
  "custom_name": "My cool product",
  "price": 400,
  "description": "string",
  "tags": [
    "string"
  ],
  "colors": [
    "integer"
  ],
  "delete_unmentioned_colors": "bool",
  "sort_position": "1"
}

Success

404 Not Found

Product not found

Response Example (200 OK)
{
  "id": 123,
  "project": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "project_name": "Projekt 123",
  "name": "Base Product Name XY",
  "custom_name": "My cool product",
  "description": "string",
  "tags": [
    "string"
  ],
  "price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "shirtigo_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "sort_position": 0,
  "colors": [
    {
      "id": 123,
      "color": "Black",
      "color_hex": "#000000",
      "is_colored": true,
      "sales_price": {
        "amount": 999,
        "currency_symbol": "€",
        "currency_code": "EUR",
        "currency_factor": 100
      },
      "sort_position": 1,
      "sizes": [
        {
          "id": 67,
          "size": "XL",
          "is_onlocalstock": true,
          "is_available": true,
          "sort_position": 1,
          "shirtigo_price": {
            "amount": 999,
            "currency_symbol": "€",
            "currency_code": "EUR",
            "currency_factor": 100
          }
        }
      ]
    }
  ],
  "is_available": true,
  "is_rendered": true,
  "has_express": false,
  "images": [
    {
      "id": "1222",
      "color": "Red",
      "area": "front",
      "urls": {
        "small": "http://www.example.com/my-orders/small.png",
        "large": "http://www.example.com/my-orders/large.png"
      }
    }
  ],
  "brandings": [
    {
      "reference": "ABC123",
      "name": "Greetings card",
      "type": "packin",
      "position": "seam-left",
      "size_id": "3",
      "color_ids": "['147','157']",
      "weight_gram": "10",
      "width_mm": "100",
      "height_mm": "100",
      "initial_inventory": "1000",
      "inventory": "1000",
      "preview_path": "https://s3.amazon.com/preview.png",
      "is_active": true,
      "stocking_costs": 50,
      "item_costs": 75
    }
  ],
  "base_product": {
    "id": 1,
    "name": "Base product XY",
    "original_name": "T-Shirt",
    "shipping_category": 1,
    "category_id": 5,
    "category": "Unisex-Shirts",
    "short_description": "string",
    "description": "string",
    "sizechart_image": "string",
    "is_active": "boolean",
    "manufacturer": {
      "id": 123,
      "name": "Musterfirma"
    },
    "images": {
      "data": [
        null
      ]
    },
    "colors": {}
  }
}

Delete product

DELETE /products/{product-id}
product-id

Numerical product identifier

type
integer
in
path
204 No Content

Success, product deleted

404 Not Found

Product not found

Synchronize integrations

POST /products/{product-id}/sync

Trigger synchronization for all requested integrations for this product. The synchronization is performed in the background. Its status can be observed by querying the active_integration_syncs field in the product response.

integrations: object[]

Integration ids

product-id

Numerical product identifier

type
integer
in
path
Request Example
{
  "integrations": [
    null
  ]
}
204 No Content

Success, all integrations processed

Create product

POST /customized-product

Use this endpoint to a create a product based on a specific baseProduct. The product can be customized on the baseProduct color level. This allows you to have a different design, size and positioning for each baseProduct color. Each processing can be associated to one or many colorIds. Multiple processings can be added. Workflow: create project, add customized-products

project_id: string

Identifier of existing project

base_product_id: integer

Identifier of desired base product

processings: object[]

List of processings to apply

Request Example
{
  "project_id": "CP94791DFD28",
  "base_product_id": 235,
  "processings": [
    {
      "processingarea_type": "front",
      "processingposition": "chest-center",
      "processingmethod": "dtg",
      "design_reference": "310ef229-2254-4f4f-9041-a8e02674ff36",
      "offset_top": 50,
      "offset_center": 0,
      "width": 200,
      "is_customizable": "false",
      "is_blank_design": "false",
      "force_position": "false",
      "colors": [
        {
          "colorId": 608,
          "price": 2195,
          "sortPosition": 1
        }
      ]
    }
  ]
}
200 OK

Success

401 Unauthorized

Unauthorized (no credentials or not eligible for ordering)

422 Unprocessable Entity

Validation failed, details in response body

Response Example (200 OK)
{
  "data": [
    {
      "id": 123,
      "project": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
      "project_name": "Projekt 123",
      "name": "Base Product Name XY",
      "custom_name": "My cool product",
      "description": "string",
      "tags": [
        "string"
      ],
      "price": {
        "amount": 999,
        "currency_symbol": "€",
        "currency_code": "EUR",
        "currency_factor": 100
      },
      "shirtigo_price": {
        "amount": 999,
        "currency_symbol": "€",
        "currency_code": "EUR",
        "currency_factor": 100
      },
      "sort_position": 0,
      "colors": [
        {
          "id": 123,
          "color": "Black",
          "color_hex": "#000000",
          "is_colored": true,
          "sales_price": {
            "amount": 999,
            "currency_symbol": "€",
            "currency_code": "EUR",
            "currency_factor": 100
          },
          "sort_position": 1,
          "sizes": [
            {
              "id": 67,
              "size": "XL",
              "is_onlocalstock": true,
              "is_available": true,
              "sort_position": 1,
              "shirtigo_price": {
                "amount": 999,
                "currency_symbol": "€",
                "currency_code": "EUR",
                "currency_factor": 100
              }
            }
          ]
        }
      ],
      "is_available": true,
      "is_rendered": true,
      "has_express": false,
      "images": [
        {
          "id": "1222",
          "color": "Red",
          "area": "front",
          "urls": {
            "small": "http://www.example.com/my-orders/small.png",
            "large": "http://www.example.com/my-orders/large.png"
          }
        }
      ],
      "brandings": [
        {
          "reference": "ABC123",
          "name": "Greetings card",
          "type": "packin",
          "position": "seam-left",
          "size_id": "3",
          "color_ids": "['147','157']",
          "weight_gram": "10",
          "width_mm": "100",
          "height_mm": "100",
          "initial_inventory": "1000",
          "inventory": "1000",
          "preview_path": "https://s3.amazon.com/preview.png",
          "is_active": true,
          "stocking_costs": 50,
          "item_costs": 75
        }
      ],
      "base_product": {
        "id": 1,
        "name": "Base product XY",
        "original_name": "T-Shirt",
        "shipping_category": 1,
        "category_id": 5,
        "category": "Unisex-Shirts",
        "short_description": "string",
        "description": "string",
        "sizechart_image": "string",
        "is_active": "boolean",
        "manufacturer": {
          "id": 123,
          "name": "Musterfirma"
        },
        "images": {
          "data": [
            null
          ]
        }
      }
    }
  ]
}

Update product colors

PUT /customized-product/{product-id}

Use this endpoint to update an existing product. The product can be customized on the baseProduct color level similar to the create endpoint. Each processing can be associated to one or many colorIds. Multiple processings can be added. Instead of the complete processing information (design, width, position info) it is possible to pass a baseProduct color id as a referenceColorId. In this case all processing information is created based on the existing processings for the reference color.

processings: object[]

List of processings to add / update

Request Example
{
  "processings": [
    {
      "processingarea_type": "front",
      "processingposition": "chest-center",
      "processingmethod": "dtg",
      "design_reference": "310ef229-2254-4f4f-9041-a8e02674ff36",
      "offset_top": 50,
      "offset_center": 0,
      "width": 200,
      "is_customizable": "false",
      "force_position": "false",
      "colors": [
        {
          "colorId": 608,
          "referenceColorId": 2195,
          "price": 2195,
          "sortPosition": 1
        }
      ]
    }
  ]
}
200 OK

Success

401 Unauthorized

Unauthorized (no credentials or not eligible for ordering)

422 Unprocessable Entity

Validation failed, details in response body

Response Example (200 OK)
{
  "data": [
    {
      "id": 123,
      "project": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
      "project_name": "Projekt 123",
      "name": "Base Product Name XY",
      "custom_name": "My cool product",
      "description": "string",
      "tags": [
        "string"
      ],
      "price": {
        "amount": 999,
        "currency_symbol": "€",
        "currency_code": "EUR",
        "currency_factor": 100
      },
      "shirtigo_price": {
        "amount": 999,
        "currency_symbol": "€",
        "currency_code": "EUR",
        "currency_factor": 100
      },
      "sort_position": 0,
      "colors": [
        {
          "id": 123,
          "color": "Black",
          "color_hex": "#000000",
          "is_colored": true,
          "sales_price": {
            "amount": 999,
            "currency_symbol": "€",
            "currency_code": "EUR",
            "currency_factor": 100
          },
          "sort_position": 1,
          "sizes": [
            {
              "id": 67,
              "size": "XL",
              "is_onlocalstock": true,
              "is_available": true,
              "sort_position": 1,
              "shirtigo_price": {
                "amount": 999,
                "currency_symbol": "€",
                "currency_code": "EUR",
                "currency_factor": 100
              }
            }
          ]
        }
      ],
      "is_available": true,
      "is_rendered": true,
      "has_express": false,
      "images": [
        {
          "id": "1222",
          "color": "Red",
          "area": "front",
          "urls": {
            "small": "http://www.example.com/my-orders/small.png",
            "large": "http://www.example.com/my-orders/large.png"
          }
        }
      ],
      "brandings": [
        {
          "reference": "ABC123",
          "name": "Greetings card",
          "type": "packin",
          "position": "seam-left",
          "size_id": "3",
          "color_ids": "['147','157']",
          "weight_gram": "10",
          "width_mm": "100",
          "height_mm": "100",
          "initial_inventory": "1000",
          "inventory": "1000",
          "preview_path": "https://s3.amazon.com/preview.png",
          "is_active": true,
          "stocking_costs": 50,
          "item_costs": 75
        }
      ],
      "base_product": {
        "id": 1,
        "name": "Base product XY",
        "original_name": "T-Shirt",
        "shipping_category": 1,
        "category_id": 5,
        "category": "Unisex-Shirts",
        "short_description": "string",
        "description": "string",
        "sizechart_image": "string",
        "is_active": "boolean",
        "manufacturer": {
          "id": 123,
          "name": "Musterfirma"
        },
        "images": {
          "data": [
            null
          ]
        }
      }
    }
  ]
}

Adds Product Image for Color

POST products/{product-id}/images
url

Url

type
string
in
query
style

Style

type
string
in
query
procesingarea_type

Processing Area type

type
string
in
query
name

Name

type
string
in
query
sort_weight

Sort weight

type
integer
in
query
200 OK

Success, product image was added

422 Unprocessable Entity

Error, image file does not meet requirements

baseProduct

Endpoints in this section retrieve baseProducts available for creating customized products.

Get all base products

GET /base-products

Retrieve a list of available base products. Optionally, a category can be passed for filtering.

category

Filter by category identifier (default: any)

type
integer
in
query
200 OK

Success

Response Example (200 OK)
{
  "data": [
    {
      "id": 1,
      "name": "Base product XY",
      "original_name": "T-Shirt",
      "shipping_category": 1,
      "category_id": 5,
      "category": "Unisex-Shirts",
      "short_description": "string",
      "description": "string",
      "sizechart_image": "string",
      "is_active": "boolean",
      "manufacturer": {
        "id": 123,
        "name": "Musterfirma"
      },
      "images": {
        "data": [
          null
        ]
      },
      "colors": {
        "data": [
          {
            "id": 123,
            "color": "Black",
            "color_hex": "#000000",
            "is_colored": true,
            "is_heathered": false,
            "sizes": [
              {
                "id": 67,
                "size": "XL",
                "base_product_sku": "STTU755C0021S",
                "is_onlocalstock": true,
                "is_available": true,
                "is_discontinued": false,
                "sort_position": 1,
                "weight_gram": 10,
                "stock": {
                  "local_stock": 100,
                  "wholesale_stock": 200,
                  "wholesale_delivery_duration": 7,
                  "inbound_date": "2024-02-15",
                  "replacement_stock": "object"
                },
                "print_dimensions": [
                  {
                    "processingarea_id": 1,
                    "processingarea_name": "string",
                    "width_in_mm": 300,
                    "height_in_mm": 400,
                    "distance_printarea_top_to_collar_mm": 50
                  }
                ]
              }
            ]
          }
        ]
      },
      "processing_areas": {
        "data": [
          {
            "position_id": 1,
            "position_name": "front",
            "width_in_mm": 100,
            "height_in_mm": 100,
            "width": 2000,
            "height": 2000,
            "printable_area_margin_from_top": 0,
            "template_width": 1000,
            "template_height": 1000,
            "template": "string"
          }
        ]
      },
      "price": {
        "data": [
          null
        ]
      },
      "sales_price": {
        "data": [
          null
        ]
      }
    }
  ]
}

Get base product

GET /base-products/{base-product-id}

Retrieve information on a single base product. To get stock level and end of life information please add ?include_stock=true to the request To get the actual print dimensions per variant add ?include_print_dimensions=true to the request

base-product-id

Numerical base product identifier

type
integer
in
path
include_stock

Include stock information for the product

type
boolean
in
query
200 OK

Success

404 Not Found

Product not found

Response Example (200 OK)
{
  "id": 1,
  "name": "Base product XY",
  "original_name": "T-Shirt",
  "shipping_category": 1,
  "category_id": 5,
  "category": "Unisex-Shirts",
  "short_description": "string",
  "description": "string",
  "sizechart_image": "string",
  "is_active": "boolean",
  "manufacturer": {
    "id": 123,
    "name": "Musterfirma"
  },
  "images": {
    "data": [
      null
    ]
  },
  "colors": {
    "data": [
      {
        "id": 123,
        "color": "Black",
        "color_hex": "#000000",
        "is_colored": true,
        "is_heathered": false,
        "sizes": [
          {
            "id": 67,
            "size": "XL",
            "base_product_sku": "STTU755C0021S",
            "is_onlocalstock": true,
            "is_available": true,
            "is_discontinued": false,
            "sort_position": 1,
            "weight_gram": 10,
            "stock": {
              "local_stock": 100,
              "wholesale_stock": 200,
              "wholesale_delivery_duration": 7,
              "inbound_date": "2024-02-15",
              "replacement_stock": "object"
            },
            "print_dimensions": [
              {
                "processingarea_id": 1,
                "processingarea_name": "string",
                "width_in_mm": 300,
                "height_in_mm": 400,
                "distance_printarea_top_to_collar_mm": 50
              }
            ]
          }
        ]
      }
    ]
  },
  "processing_areas": {
    "data": [
      {
        "position_id": 1,
        "position_name": "front",
        "width_in_mm": 100,
        "height_in_mm": 100,
        "width": 2000,
        "height": 2000,
        "printable_area_margin_from_top": 0,
        "template_width": 1000,
        "template_height": 1000,
        "template": "string"
      }
    ]
  },
  "price": {
    "data": [
      null
    ]
  },
  "sales_price": {
    "data": [
      null
    ]
  }
}

List available categories

GET /base-categories
200 OK

Success

Response Example (200 OK)
{
  "data": [
    {
      "id": 10,
      "name": "Unisex-Shirts",
      "sort_position": 1
    }
  ]
}

project

Endpoints in this section manipulate (create, view, modify) projects of the currently logged in user.

Get all projects / collections

GET /projects

Some of the listed resources are available as optional includes (add to the query ?include=firstInclude,secondInclude.subInclude). The available includes for this endpoint are: products, productInfo

page

Current page

type
integer 1
in
query
items

Number of items per page

type
integer 12
in
query
sort_col

Column used to sort the results. You can sort by: name, reference, url, default_preview_position, created_at, updated_at

type
string created_at
in
query
sort_dir

Direction for sorting

type
string DESC
in
query
200 OK

Success

Response Example (200 OK)
{
  "data": [
    {
      "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
      "name": "My cool project",
      "type": "ondemand",
      "products_count": 3,
      "is_published": true,
      "is_syncing": [
        {
          "12": true
        }
      ],
      "is_queueing": [
        {
          "12": true
        }
      ],
      "status": "Finalisiert",
      "updated_at": "2017-01-01 12:34:56",
      "created_at": "2017-01-01 12:34:56",
      "processings": {
        "data": [
          {
            "area": "front",
            "position": "center",
            "method": "print",
            "height": 300,
            "width": 200,
            "offset_top": 50,
            "offset_center": 0,
            "updated_at": "2017-01-01 12:34:56",
            "design": {
              "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
              "filename": "ABCDE",
              "name": "My cool design",
              "width": 5000,
              "height": 3000,
              "filetype": "png",
              "tags": "summer-collection",
              "processingmethod_key": "dtg",
              "colors": 5,
              "palette": [
                "A20061",
                "FFBC42",
                "1C838A",
                "021618",
                "A3AAAB"
              ],
              "complementary_color": "",
              "preview": "https://example.com/product_prev.png",
              "original_file": "https://example.com/product.png",
              "is_processed": true,
              "is_dark": true,
              "is_editable": true,
              "is_ai_generated": true,
              "created_at": "2017-01-01 12:34:56",
              "updated_at": "2017-01-01 12:34:56"
            }
          }
        ]
      }
    }
  ],
  "meta": {
    "pagination": {
      "total": 32,
      "count": 10,
      "per_page": 10,
      "current_page": 2,
      "total_pages": 4,
      "links": {
        "previous": "string",
        "next": "string"
      }
    }
  }
}

Create project / collection

POST /projects

Create a new project and return the inserted information. Associate the project with the currently authenticated user.

name: string

Project name

description: string

Project description

is_deprecated_campaign: boolean

indicates if deprecated way for product creation is used (use 1/0 instead of true/false)

Request Example
{
  "name": "My cool project",
  "description": "My cool project",
  "is_deprecated_campaign": "0"
}
200 OK

Success

Response Example (200 OK)
{
  "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "name": "My cool project",
  "type": "ondemand",
  "products_count": 3,
  "is_published": true,
  "is_syncing": [
    {
      "12": true
    }
  ],
  "is_queueing": [
    {
      "12": true
    }
  ],
  "status": "Finalisiert",
  "updated_at": "2017-01-01 12:34:56",
  "created_at": "2017-01-01 12:34:56",
  "processings": {
    "data": [
      {
        "area": "front",
        "position": "center",
        "method": "print",
        "height": 300,
        "width": 200,
        "offset_top": 50,
        "offset_center": 0,
        "updated_at": "2017-01-01 12:34:56",
        "design": {
          "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
          "filename": "ABCDE",
          "name": "My cool design",
          "width": 5000,
          "height": 3000,
          "filetype": "png",
          "tags": "summer-collection",
          "processingmethod_key": "dtg",
          "colors": 5,
          "palette": [
            "A20061",
            "FFBC42",
            "1C838A",
            "021618",
            "A3AAAB"
          ],
          "complementary_color": "",
          "preview": "https://example.com/product_prev.png",
          "original_file": "https://example.com/product.png",
          "is_processed": true,
          "is_dark": true,
          "is_editable": true,
          "is_ai_generated": true,
          "created_at": "2017-01-01 12:34:56",
          "updated_at": "2017-01-01 12:34:56"
        }
      }
    ]
  }
}

Get project / collection

GET /projects/{project-reference}

Some of the listed resources are available as optional includes (add to the query ?include=firstInclude,secondInclude.subInclude). The available includes for this endpoint are: products, productInfo

project-reference

Unique project identifier

type
string
in
path
include_stock

Include stock information for the products

type
boolean
in
query
200 OK

Success

404 Not Found

Project not found

Response Example (200 OK)
{
  "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "name": "My cool project",
  "type": "ondemand",
  "products_count": 3,
  "is_published": true,
  "is_syncing": [
    {
      "12": true
    }
  ],
  "is_queueing": [
    {
      "12": true
    }
  ],
  "status": "Finalisiert",
  "updated_at": "2017-01-01 12:34:56",
  "created_at": "2017-01-01 12:34:56",
  "processings": {
    "data": [
      {
        "area": "front",
        "position": "center",
        "method": "print",
        "height": 300,
        "width": 200,
        "offset_top": 50,
        "offset_center": 0,
        "updated_at": "2017-01-01 12:34:56",
        "design": {
          "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
          "filename": "ABCDE",
          "name": "My cool design",
          "width": 5000,
          "height": 3000,
          "filetype": "png",
          "tags": "summer-collection",
          "processingmethod_key": "dtg",
          "colors": 5,
          "palette": [
            "A20061",
            "FFBC42",
            "1C838A",
            "021618",
            "A3AAAB"
          ],
          "complementary_color": "",
          "preview": "https://example.com/product_prev.png",
          "original_file": "https://example.com/product.png",
          "is_processed": true,
          "is_dark": true,
          "is_editable": true,
          "is_ai_generated": true,
          "created_at": "2017-01-01 12:34:56",
          "updated_at": "2017-01-01 12:34:56"
        }
      }
    ]
  }
}

Update project / Collection

PUT /projects/{project-reference}

Change information about a project

name: string

Project name

project-reference

Unique project identifier

type
string
in
path
Request Example
{
  "name": "My cool project"
}
200 OK

Success

404 Not Found

Project not found

Response Example (200 OK)
{
  "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "name": "My cool project",
  "type": "ondemand",
  "products_count": 3,
  "is_published": true,
  "is_syncing": [
    {
      "12": true
    }
  ],
  "is_queueing": [
    {
      "12": true
    }
  ],
  "status": "Finalisiert",
  "updated_at": "2017-01-01 12:34:56",
  "created_at": "2017-01-01 12:34:56",
  "processings": {
    "data": [
      {
        "area": "front",
        "position": "center",
        "method": "print",
        "height": 300,
        "width": 200,
        "offset_top": 50,
        "offset_center": 0,
        "updated_at": "2017-01-01 12:34:56",
        "design": {
          "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
          "filename": "ABCDE",
          "name": "My cool design",
          "width": 5000,
          "height": 3000,
          "filetype": "png",
          "tags": "summer-collection",
          "processingmethod_key": "dtg",
          "colors": 5,
          "palette": [
            "A20061",
            "FFBC42",
            "1C838A",
            "021618",
            "A3AAAB"
          ],
          "complementary_color": "",
          "preview": "https://example.com/product_prev.png",
          "original_file": "https://example.com/product.png",
          "is_processed": true,
          "is_dark": true,
          "is_editable": true,
          "is_ai_generated": true,
          "created_at": "2017-01-01 12:34:56",
          "updated_at": "2017-01-01 12:34:56"
        }
      }
    ]
  }
}

Delete project / collection

DELETE /projects/{project-reference}

Delete the selected project.

project-reference

Unique project identifier

type
string
in
path
204 No Content

Success, project deleted

404 Not Found

Project not found

502 Bad Gateway

Project could not be dleted due to problems to delete product integrations

Get products for a project / collection

GET /projects/{project-reference}/products

Some of the listed resources are available as optional includes (add to the query ?include=firstInclude,secondInclude.subInclude). The available includes for this endpoint are: colors, base_product, active_integration_syncs, integration_sync_log, integration_products, projectProductColors

project-reference

Unique project identifier

type
string
in
path

Success

404 Not Found

Project not found

Response Example (200 OK)
[
  {
    "id": 123,
    "project": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
    "project_name": "Projekt 123",
    "name": "Base Product Name XY",
    "custom_name": "My cool product",
    "description": "string",
    "tags": [
      "string"
    ],
    "price": {
      "amount": 999,
      "currency_symbol": "€",
      "currency_code": "EUR",
      "currency_factor": 100
    },
    "shirtigo_price": {
      "amount": 999,
      "currency_symbol": "€",
      "currency_code": "EUR",
      "currency_factor": 100
    },
    "sort_position": 0,
    "colors": [
      {
        "id": 123,
        "color": "Black",
        "color_hex": "#000000",
        "is_colored": true,
        "sales_price": {
          "amount": 999,
          "currency_symbol": "€",
          "currency_code": "EUR",
          "currency_factor": 100
        },
        "sort_position": 1,
        "sizes": [
          {
            "id": 67,
            "size": "XL",
            "is_onlocalstock": true,
            "is_available": true,
            "sort_position": 1,
            "shirtigo_price": {
              "amount": 999,
              "currency_symbol": "€",
              "currency_code": "EUR",
              "currency_factor": 100
            }
          }
        ]
      }
    ],
    "is_available": true,
    "is_rendered": true,
    "has_express": false,
    "images": [
      {
        "id": "1222",
        "color": "Red",
        "area": "front",
        "urls": {
          "small": "http://www.example.com/my-orders/small.png",
          "large": "http://www.example.com/my-orders/large.png"
        }
      }
    ],
    "brandings": [
      {
        "reference": "ABC123",
        "name": "Greetings card",
        "type": "packin",
        "position": "seam-left",
        "size_id": "3",
        "color_ids": "['147','157']",
        "weight_gram": "10",
        "width_mm": "100",
        "height_mm": "100",
        "initial_inventory": "1000",
        "inventory": "1000",
        "preview_path": "https://s3.amazon.com/preview.png",
        "is_active": true,
        "stocking_costs": 50,
        "item_costs": 75
      }
    ],
    "base_product": {
      "id": 1,
      "name": "Base product XY",
      "original_name": "T-Shirt",
      "shipping_category": 1,
      "category_id": 5,
      "category": "Unisex-Shirts",
      "short_description": "string",
      "description": "string",
      "sizechart_image": "string",
      "is_active": "boolean",
      "manufacturer": {
        "id": 123,
        "name": "Musterfirma"
      },
      "images": {
        "data": [
          null
        ]
      }
    }
  }
]

Synchronize integrations

POST /projects/{project-reference}/sync

Trigger synchronization with all integrations defined for this campaign. The synchronization is performed in the background. Its status can be observed by querying for the attribute "status". It has the following enum-values:

  • 'is_queuing',
  • 'is_syncing',
  • 'is_completed'
  • 'has_errors'
integrations: object[]

Integration ids

project-reference

Unique project identifier

type
string
in
path
Request Example
{
  "integrations": [
    null
  ]
}
204 No Content

Success, all integrations processed

order

Endpoints in this section retrieve information about issued orders.

Get coupon info

GET /coupons/{coupon-code}

Retrieve information about a single order coupon.

coupon-code

Alphanumerical coupon identifier as provided to the customer

type
string
in
query
200 OK

Success

404 Not Found

Coupon not found

Response Example (200 OK)
{
  "coupon_code": "Shirt-coupon-XYZ",
  "coupon_type": "discount",
  "discount_type": "euro",
  "discount_percent": 10,
  "discount_netto": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "discount_brutto": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "is_active": true,
  "min_order_value": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "is_expired": false,
  "expiration_date": "2017-01-01 12:34:56",
  "n_activations": "1",
  "remaining_activations": "1",
  "new_user_only": "1",
  "rate_limit_exceeded": "1",
  "has_orders": "1"
}

Get all orders

GET /orders

Some of the listed resources are available as optional includes (add to the query ?include=firstInclude,secondInclude.subInclude). The available includes for this endpoint are: parent, children, comments, products, warehouseProducts, payments, orderStatusEntries, shipping, packins

page

Page number

type
integer 1
in
query
filter

Filter by order status id

type
integer 1
in
query
items

Items per page

type
integer 12
in
query
search

Search query

type
integer
in
query
sort_col

Property to order by

type
string
in
query
sort_dir

Order direction

type
string asc, desc asc
in
query
period

Days to show (default: all)

type
integer
in
query
secondary_filter

Secondary filter level (e.g. filter reprint orders)

type
string
in
query
200 OK

Success

Response Example (200 OK)
{
  "data": [
    {
      "reference": "ABCDXY1",
      "net_price": {
        "amount": 999,
        "currency_symbol": "€",
        "currency_code": "EUR",
        "currency_factor": 100
      },
      "gross_price": {
        "amount": 999,
        "currency_symbol": "€",
        "currency_code": "EUR",
        "currency_factor": 100
      },
      "vat_rate": 19,
      "vat_amount": {
        "amount": 999,
        "currency_symbol": "€",
        "currency_code": "EUR",
        "currency_factor": 100
      },
      "status": "Bestellung offen",
      "status_key": "",
      "invoice_reference": "string",
      "fulfillment": {},
      "delivery": {
        "title": "Dr.",
        "company": "Shirtigo GmbH",
        "firstname": "Max",
        "lastname": "Mustermann",
        "care_of": "Gift for Mrs. Doe",
        "street": "Musterstraße 12",
        "postcode": "12345",
        "city": "Köln",
        "country": "DE"
      },
      "sender": {
        "title": "Dr.",
        "company": "Shirtigo GmbH",
        "firstname": "Max",
        "lastname": "Mustermann",
        "care_of": "Gift for Mrs. Doe",
        "street": "Musterstraße 12",
        "postcode": "12345",
        "city": "Köln",
        "country": "DE"
      },
      "bill": {
        "title": "Dr.",
        "company": "Shirtigo GmbH",
        "firstname": "Max",
        "lastname": "Mustermann",
        "care_of": "Gift for Mrs. Doe",
        "street": "Musterstraße 12",
        "postcode": "12345",
        "city": "Köln",
        "country": "DE"
      },
      "total_items": 5,
      "add_delivery_receipt": true,
      "delivery_receipt_logo_reference": "A456HJ",
      "delivery_receipt_note": "Use voucher XYZ and get a 10% discount for your next order",
      "use_custom_product_name": true,
      "created_at": "2017-01-01 12:34:56",
      "updated_at": "2017-01-01 12:34:56",
      "products": {
        "data": [
          {
            "id": "integer",
            "amount": 1,
            "name": "Base product XY",
            "color": "Black",
            "size": "XL",
            "images": [
              {
                "id": "1222",
                "color": "Red",
                "area": "front",
                "urls": {
                  "small": "http://www.example.com/my-orders/small.png",
                  "large": "http://www.example.com/my-orders/large.png"
                }
              }
            ],
            "net_total_price": 1375,
            "net_unit_price": {
              "amount": 999,
              "currency_symbol": "€",
              "currency_code": "EUR",
              "currency_factor": 100
            },
            "campaign_reference": "F7S33M2",
            "campaign_name": "Example Project",
            "campaign_product_id": "123"
          }
        ]
      },
      "packins": {}
    }
  ]
}

Create order

POST /orders

Submit a new order for the currently authenticated user. The user must have at least one registered billing method. The sender information is optional, if not provided, the current user information will be used. You can either order an existing product from your account by entering the sku from the corresponding variant. The sku can be found in the product.colors.sizes array or by downloading the csv export for the collection/project. This way is also used to order warehouseProducts (sku starts with "WV-"). If you want to order non-existing products, please refer to the part of the example request that contains the base_product_sku. The base_product_sku defines the color-size variant of the baseProduct. Our complete catalog can be downloaded as xlsx in the Cockpit dashboard (Import -> Download -> product catalog). You can customize the baseProductVariant with multiple processing areas (front + back). to This workflow is commonly used if each order has a unique design (e.g. customized products).

delivery: OrderAddress

Create order

Submit a new order for the currently authenticated user. The user must have at least one registered billing method. The sender information is optional, if not provided, the current user information will be used. You can either order an existing product from your account by entering the sku from the corresponding variant. The sku can be found in the product.colors.sizes array or by downloading the csv export for the collection/project. This way is also used to order warehouseProducts (sku starts with "WV-"). If you want to order non-existing products, please refer to the part of the example request that contains the base_product_sku. The base_product_sku defines the color-size variant of the baseProduct. Our complete catalog can be downloaded as xlsx in the Cockpit dashboard (Import -> Download -> product catalog). You can customize the baseProductVariant with multiple processing areas (front + back). to This workflow is commonly used if each order has a unique design (e.g. customized products).

sender: OrderAddress

Create order

Submit a new order for the currently authenticated user. The user must have at least one registered billing method. The sender information is optional, if not provided, the current user information will be used. You can either order an existing product from your account by entering the sku from the corresponding variant. The sku can be found in the product.colors.sizes array or by downloading the csv export for the collection/project. This way is also used to order warehouseProducts (sku starts with "WV-"). If you want to order non-existing products, please refer to the part of the example request that contains the base_product_sku. The base_product_sku defines the color-size variant of the baseProduct. Our complete catalog can be downloaded as xlsx in the Cockpit dashboard (Import -> Download -> product catalog). You can customize the baseProductVariant with multiple processing areas (front + back). to This workflow is commonly used if each order has a unique design (e.g. customized products).

products: object[]

Selected products created upfront via create product endpoint. It is not possible to order blank baseProducts.

packaging_branding: object

Selected packaging brandings (optional)

default_product_branding: object

Selected default product brandings (optional)

is_onhold: boolean

Indicates if order is automatically pushed to production (default = false)

use_custom_product_name: boolean

Indicates if your custom product names are used on the delivery note (default = false)

add_delivery_receipt: boolean

Indicates if delivery receipt is added to delivery (default = true)

delivery_receipt_logo_reference: string

Logo printed on delivery receipt (optional)

delivery_receipt_note: string

Custom note printed on delivery receipt

fulfillment_mode_key: string

Choose a special fulfilment mode for this order.

billing_method_reference: string

Reference of billing method used for this order.

external_reference: string

Your internal reference for the order, that will be added to the delivery note.

check_unique_external_reference: boolean

This attribute validates whether the external reference provided has been used for any other order within your account, ensuring the prevention of duplicate orders.

Request Example
{
  "delivery": {
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "firstname": "Max",
    "lastname": "Mustermann",
    "care_of": "Gift for Mrs. Doe",
    "street": "Musterstraße 12",
    "postcode": "12345",
    "city": "Köln",
    "country": "DE"
  },
  "sender": {
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "firstname": "Max",
    "lastname": "Mustermann",
    "care_of": "Gift for Mrs. Doe",
    "street": "Musterstraße 12",
    "postcode": "12345",
    "city": "Köln",
    "country": "DE"
  },
  "products": [
    {
      "sku": "c123456.122.8",
      "amount": 2,
      "customizations": [
        {
          "my_textfield_1": "John",
          "my_textfield_2": "Doe"
        }
      ],
      "branding": {
        "hangtag_reference": "A12345",
        "product_packaging_reference": "A12345",
        "imprint_reference": "A12345",
        "label_reference": "A12345"
      }
    },
    {
      "sku": "WV-044E8BAB7F",
      "amount": 2
    },
    {
      "base_product_sku": "STTK909C71012",
      "external_reference": "EX-123",
      "custom_name": "My product name",
      "sales_price_gross": "2199",
      "amount": 1,
      "processings": [
        {
          "design_url": "https://mydomain.com/myimage.png",
          "width": 100,
          "height": 80,
          "processingarea_type": "front",
          "processingposition": "chest-center",
          "processingmethod": "dtg",
          "offset_top": 20,
          "offset_center": 0,
          "force_position": false,
          "extract_size_and_position": false
        }
      ]
    }
  ],
  "packaging_branding": {
    "first_packin_reference": "A12345",
    "second_packin_reference": "A12345",
    "order_packaging_reference": "A12345",
    "sticker_reference": "A12345"
  },
  "default_product_branding": {
    "hangtag_reference": "A12345",
    "imprint_reference": "A12345",
    "label_reference": "A12345",
    "product_packaging_reference": "A12345"
  },
  "is_onhold": true,
  "use_custom_product_name": true,
  "add_delivery_receipt": true,
  "delivery_receipt_logo_reference": "ABC123",
  "delivery_receipt_note": "Use Voucher XYZ for a 10% discount.",
  "fulfillment_mode_key": "24h-express",
  "billing_method_reference": "F80D66CF",
  "external_reference": "your internal order reference",
  "check_unique_external_reference": true
}
201 Created

Success, order has been created

401 Unauthorized

Unauthorized (no credentials or not eligible for ordering)

422 Unprocessable Entity

Validation failed, details in response body

Response Example (201 Created)
{
  "reference": "ABCDXY1",
  "net_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "gross_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "vat_rate": 19,
  "vat_amount": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "status": "Bestellung offen",
  "status_key": "",
  "invoice_reference": "string",
  "fulfillment": {},
  "delivery": {
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "firstname": "Max",
    "lastname": "Mustermann",
    "care_of": "Gift for Mrs. Doe",
    "street": "Musterstraße 12",
    "postcode": "12345",
    "city": "Köln",
    "country": "DE"
  },
  "sender": {
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "firstname": "Max",
    "lastname": "Mustermann",
    "care_of": "Gift for Mrs. Doe",
    "street": "Musterstraße 12",
    "postcode": "12345",
    "city": "Köln",
    "country": "DE"
  },
  "bill": {
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "firstname": "Max",
    "lastname": "Mustermann",
    "care_of": "Gift for Mrs. Doe",
    "street": "Musterstraße 12",
    "postcode": "12345",
    "city": "Köln",
    "country": "DE"
  },
  "total_items": 5,
  "add_delivery_receipt": true,
  "delivery_receipt_logo_reference": "A456HJ",
  "delivery_receipt_note": "Use voucher XYZ and get a 10% discount for your next order",
  "use_custom_product_name": true,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56",
  "products": {
    "data": [
      {
        "id": "integer",
        "amount": 1,
        "name": "Base product XY",
        "color": "Black",
        "size": "XL",
        "images": [
          {
            "id": "1222",
            "color": "Red",
            "area": "front",
            "urls": {
              "small": "http://www.example.com/my-orders/small.png",
              "large": "http://www.example.com/my-orders/large.png"
            }
          }
        ],
        "net_total_price": 1375,
        "net_unit_price": {
          "amount": 999,
          "currency_symbol": "€",
          "currency_code": "EUR",
          "currency_factor": 100
        },
        "campaign_reference": "F7S33M2",
        "campaign_name": "Example Project",
        "campaign_product_id": "123"
      }
    ]
  },
  "packins": {
    "data": [
      null
    ]
  }
}

Get order

GET /orders/{order-reference}

Some of the listed resources are available as optional includes (add to the query ?include=firstInclude,secondInclude.subInclude). The available includes for this endpoint are: parent, children, comments, products, warehouseProducts, payments, orderStatusEntries, shipping, packins

order-reference

Alphanumerical order identifier

type
string
in
path
200 OK

Success

404 Not Found

Order not found

Response Example (200 OK)
{
  "reference": "ABCDXY1",
  "net_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "gross_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "vat_rate": 19,
  "vat_amount": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "status": "Bestellung offen",
  "status_key": "",
  "invoice_reference": "string",
  "fulfillment": {},
  "delivery": {
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "firstname": "Max",
    "lastname": "Mustermann",
    "care_of": "Gift for Mrs. Doe",
    "street": "Musterstraße 12",
    "postcode": "12345",
    "city": "Köln",
    "country": "DE"
  },
  "sender": {
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "firstname": "Max",
    "lastname": "Mustermann",
    "care_of": "Gift for Mrs. Doe",
    "street": "Musterstraße 12",
    "postcode": "12345",
    "city": "Köln",
    "country": "DE"
  },
  "bill": {
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "firstname": "Max",
    "lastname": "Mustermann",
    "care_of": "Gift for Mrs. Doe",
    "street": "Musterstraße 12",
    "postcode": "12345",
    "city": "Köln",
    "country": "DE"
  },
  "total_items": 5,
  "add_delivery_receipt": true,
  "delivery_receipt_logo_reference": "A456HJ",
  "delivery_receipt_note": "Use voucher XYZ and get a 10% discount for your next order",
  "use_custom_product_name": true,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56",
  "products": {
    "data": [
      {
        "id": "integer",
        "amount": 1,
        "name": "Base product XY",
        "color": "Black",
        "size": "XL",
        "images": [
          {
            "id": "1222",
            "color": "Red",
            "area": "front",
            "urls": {
              "small": "http://www.example.com/my-orders/small.png",
              "large": "http://www.example.com/my-orders/large.png"
            }
          }
        ],
        "net_total_price": 1375,
        "net_unit_price": {
          "amount": 999,
          "currency_symbol": "€",
          "currency_code": "EUR",
          "currency_factor": 100
        },
        "campaign_reference": "F7S33M2",
        "campaign_name": "Example Project",
        "campaign_product_id": "123"
      }
    ]
  },
  "packins": {
    "data": [
      null
    ]
  }
}

Update / edit an existing order

POST /orders/{order-reference}
order_product_id: integer

Idenitifier of OrderProduct

order_status: integer

Numeric value of Order Status

color_id: integer

Identifier of Color

size_id: integer

ID of OrderProduct

address: OrderAddress

Order Address object

Request Example
{
  "order_product_id": "1",
  "order_status": "1",
  "color_id": "1",
  "size_id": "1",
  "address": {
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "firstname": "Max",
    "lastname": "Mustermann",
    "care_of": "Gift for Mrs. Doe",
    "street": "Musterstraße 12",
    "postcode": "12345",
    "city": "Köln",
    "country": "DE"
  }
}
204 No Content

Success, order has been updated

401 Unauthorized

Unauthorized (no credentials or not eligible for ordering)

422 Unprocessable Entity

Validation failed, details in response body

Release onhold

PUT /order/{reference}/release-onhold

Orders with Flag Onhold will not be send to production until flag is released. Only Orders having completely rendered Images can be released.

204 No Content

Success, orderProduct customized

Upload Merchant Invoice

POST orders/{order-reference}/merchant-invoice

Upload Merchant Invoice

invoice

Merchant invoice file

type
file
in
formData
201 Created

Success, merchant invoice has been uploaded

401 Unauthorized

Unauthorized (no credentials or not eligible for ordering)

422 Unprocessable Entity

Validation failed, details in response body

Set onhold

PUT /order/{reference}/set-onhold

Orders with Flag Onhold will not be send to production until flag is released. Orders can be set to onhold until they are pushed to production

204 No Content

Success, orderProduct customized

Calculate price

POST /orders/predict-price

Calculate the full price (incl. shipping and taxes) for the selected order candidate. This can be done before ordering. The parameters are the same as to the "Create Order" endpoint.

delivery: OrderAddress

Create order

Submit a new order for the currently authenticated user. The user must have at least one registered billing method. The sender information is optional, if not provided, the current user information will be used. You can either order an existing product from your account by entering the sku from the corresponding variant. The sku can be found in the product.colors.sizes array or by downloading the csv export for the collection/project. This way is also used to order warehouseProducts (sku starts with "WV-"). If you want to order non-existing products, please refer to the part of the example request that contains the base_product_sku. The base_product_sku defines the color-size variant of the baseProduct. Our complete catalog can be downloaded as xlsx in the Cockpit dashboard (Import -> Download -> product catalog). You can customize the baseProductVariant with multiple processing areas (front + back). to This workflow is commonly used if each order has a unique design (e.g. customized products).

sender: OrderAddress

Create order

Submit a new order for the currently authenticated user. The user must have at least one registered billing method. The sender information is optional, if not provided, the current user information will be used. You can either order an existing product from your account by entering the sku from the corresponding variant. The sku can be found in the product.colors.sizes array or by downloading the csv export for the collection/project. This way is also used to order warehouseProducts (sku starts with "WV-"). If you want to order non-existing products, please refer to the part of the example request that contains the base_product_sku. The base_product_sku defines the color-size variant of the baseProduct. Our complete catalog can be downloaded as xlsx in the Cockpit dashboard (Import -> Download -> product catalog). You can customize the baseProductVariant with multiple processing areas (front + back). to This workflow is commonly used if each order has a unique design (e.g. customized products).

products: object[]

Selected products created upfront via create product endpoint. It is not possible to order blank baseProducts.

packaging_branding: object

Selected packaging brandings (optional)

default_product_branding: object

Selected default product brandings (optional)

is_onhold: boolean

Indicates if order is automatically pushed to production (default = false)

use_custom_product_name: boolean

Indicates if your custom product names are used on the delivery note (default = false)

add_delivery_receipt: boolean

Indicates if delivery receipt is added to delivery (default = true)

delivery_receipt_logo_reference: string

Logo printed on delivery receipt (optional)

delivery_receipt_note: string

Custom note printed on delivery receipt

fulfillment_mode_key: string

Choose a special fulfilment mode for this order.

billing_method_reference: string

Reference of billing method used for this order.

external_reference: string

Your internal reference for the order, that will be added to the delivery note.

check_unique_external_reference: boolean

This attribute validates whether the external reference provided has been used for any other order within your account, ensuring the prevention of duplicate orders.

Request Example
{
  "delivery": {
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "firstname": "Max",
    "lastname": "Mustermann",
    "care_of": "Gift for Mrs. Doe",
    "street": "Musterstraße 12",
    "postcode": "12345",
    "city": "Köln",
    "country": "DE"
  },
  "sender": {
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "firstname": "Max",
    "lastname": "Mustermann",
    "care_of": "Gift for Mrs. Doe",
    "street": "Musterstraße 12",
    "postcode": "12345",
    "city": "Köln",
    "country": "DE"
  },
  "products": [
    {
      "sku": "c123456.122.8",
      "amount": 2,
      "customizations": [
        {
          "my_textfield_1": "John",
          "my_textfield_2": "Doe"
        }
      ],
      "branding": {
        "hangtag_reference": "A12345",
        "product_packaging_reference": "A12345",
        "imprint_reference": "A12345",
        "label_reference": "A12345"
      }
    },
    {
      "sku": "WV-044E8BAB7F",
      "amount": 2
    },
    {
      "base_product_sku": "STTK909C71012",
      "external_reference": "EX-123",
      "custom_name": "My product name",
      "sales_price_gross": "2199",
      "amount": 1,
      "processings": [
        {
          "design_url": "https://mydomain.com/myimage.png",
          "width": 100,
          "height": 80,
          "processingarea_type": "front",
          "processingposition": "chest-center",
          "processingmethod": "dtg",
          "offset_top": 20,
          "offset_center": 0,
          "force_position": false,
          "extract_size_and_position": false
        }
      ]
    }
  ],
  "packaging_branding": {
    "first_packin_reference": "A12345",
    "second_packin_reference": "A12345",
    "order_packaging_reference": "A12345",
    "sticker_reference": "A12345"
  },
  "default_product_branding": {
    "hangtag_reference": "A12345",
    "imprint_reference": "A12345",
    "label_reference": "A12345",
    "product_packaging_reference": "A12345"
  },
  "is_onhold": true,
  "use_custom_product_name": true,
  "add_delivery_receipt": true,
  "delivery_receipt_logo_reference": "ABC123",
  "delivery_receipt_note": "Use Voucher XYZ for a 10% discount.",
  "fulfillment_mode_key": "24h-express",
  "billing_method_reference": "F80D66CF",
  "external_reference": "your internal order reference",
  "check_unique_external_reference": true
}
200 OK

Success, price has been calculated

422 Unprocessable Entity

Validation failed, details in response body

Response Example (200 OK)
{
  "products_net_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "shipping_net_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "total_net_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "total_gross_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "included_tax": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "included_tax_rate": 19
}

Get Valid Cart

POST /order/cart

returns a valid cart with warehouseproducts, products and brandings

products

Products

type
object[]
in
formData
warehouse_products

Warehouse Products

type
object[]
in
formData
200 OK

successful operation

400 Bad Request

Invalid input

Get available fulfillment modes

POST /orders/available-fulfillment-modes

Get a list of all fulfillment modes which can be used for this order. This endpoint can be used to collect the available options in a checkout process.

delivery: OrderAddress

Create order

Submit a new order for the currently authenticated user. The user must have at least one registered billing method. The sender information is optional, if not provided, the current user information will be used. You can either order an existing product from your account by entering the sku from the corresponding variant. The sku can be found in the product.colors.sizes array or by downloading the csv export for the collection/project. This way is also used to order warehouseProducts (sku starts with "WV-"). If you want to order non-existing products, please refer to the part of the example request that contains the base_product_sku. The base_product_sku defines the color-size variant of the baseProduct. Our complete catalog can be downloaded as xlsx in the Cockpit dashboard (Import -> Download -> product catalog). You can customize the baseProductVariant with multiple processing areas (front + back). to This workflow is commonly used if each order has a unique design (e.g. customized products).

sender: OrderAddress

Create order

Submit a new order for the currently authenticated user. The user must have at least one registered billing method. The sender information is optional, if not provided, the current user information will be used. You can either order an existing product from your account by entering the sku from the corresponding variant. The sku can be found in the product.colors.sizes array or by downloading the csv export for the collection/project. This way is also used to order warehouseProducts (sku starts with "WV-"). If you want to order non-existing products, please refer to the part of the example request that contains the base_product_sku. The base_product_sku defines the color-size variant of the baseProduct. Our complete catalog can be downloaded as xlsx in the Cockpit dashboard (Import -> Download -> product catalog). You can customize the baseProductVariant with multiple processing areas (front + back). to This workflow is commonly used if each order has a unique design (e.g. customized products).

products: object[]

Selected products created upfront via create product endpoint. It is not possible to order blank baseProducts.

packaging_branding: object

Selected packaging brandings (optional)

default_product_branding: object

Selected default product brandings (optional)

is_onhold: boolean

Indicates if order is automatically pushed to production (default = false)

use_custom_product_name: boolean

Indicates if your custom product names are used on the delivery note (default = false)

add_delivery_receipt: boolean

Indicates if delivery receipt is added to delivery (default = true)

delivery_receipt_logo_reference: string

Logo printed on delivery receipt (optional)

delivery_receipt_note: string

Custom note printed on delivery receipt

fulfillment_mode_key: string

Choose a special fulfilment mode for this order.

billing_method_reference: string

Reference of billing method used for this order.

external_reference: string

Your internal reference for the order, that will be added to the delivery note.

check_unique_external_reference: boolean

This attribute validates whether the external reference provided has been used for any other order within your account, ensuring the prevention of duplicate orders.

Request Example
{
  "delivery": {
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "firstname": "Max",
    "lastname": "Mustermann",
    "care_of": "Gift for Mrs. Doe",
    "street": "Musterstraße 12",
    "postcode": "12345",
    "city": "Köln",
    "country": "DE"
  },
  "sender": {
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "firstname": "Max",
    "lastname": "Mustermann",
    "care_of": "Gift for Mrs. Doe",
    "street": "Musterstraße 12",
    "postcode": "12345",
    "city": "Köln",
    "country": "DE"
  },
  "products": [
    {
      "sku": "c123456.122.8",
      "amount": 2,
      "customizations": [
        {
          "my_textfield_1": "John",
          "my_textfield_2": "Doe"
        }
      ],
      "branding": {
        "hangtag_reference": "A12345",
        "product_packaging_reference": "A12345",
        "imprint_reference": "A12345",
        "label_reference": "A12345"
      }
    },
    {
      "sku": "WV-044E8BAB7F",
      "amount": 2
    },
    {
      "base_product_sku": "STTK909C71012",
      "external_reference": "EX-123",
      "custom_name": "My product name",
      "sales_price_gross": "2199",
      "amount": 1,
      "processings": [
        {
          "design_url": "https://mydomain.com/myimage.png",
          "width": 100,
          "height": 80,
          "processingarea_type": "front",
          "processingposition": "chest-center",
          "processingmethod": "dtg",
          "offset_top": 20,
          "offset_center": 0,
          "force_position": false,
          "extract_size_and_position": false
        }
      ]
    }
  ],
  "packaging_branding": {
    "first_packin_reference": "A12345",
    "second_packin_reference": "A12345",
    "order_packaging_reference": "A12345",
    "sticker_reference": "A12345"
  },
  "default_product_branding": {
    "hangtag_reference": "A12345",
    "imprint_reference": "A12345",
    "label_reference": "A12345",
    "product_packaging_reference": "A12345"
  },
  "is_onhold": true,
  "use_custom_product_name": true,
  "add_delivery_receipt": true,
  "delivery_receipt_logo_reference": "ABC123",
  "delivery_receipt_note": "Use Voucher XYZ for a 10% discount.",
  "fulfillment_mode_key": "24h-express",
  "billing_method_reference": "F80D66CF",
  "external_reference": "your internal order reference",
  "check_unique_external_reference": true
}
200 OK

Success

422 Unprocessable Entity

Validation failed, details in response body

Response Example (200 OK)
{
  "data": [
    {
      "key": "24h-express",
      "name": "24h Express",
      "description": "The order is produced and handed to the carrier within 24h",
      "is_per_order": "true",
      "price_net": {
        "amount": 999,
        "currency_symbol": "€",
        "currency_code": "EUR",
        "currency_factor": 100
      },
      "fulfillment_days": "1",
      "sort_weight": "22"
    }
  ]
}

Retry payment

POST /orders/{order-reference}/repay

Set the order payment method to the current user's payment method and retry credit card capture.

order-reference

Alphanumerical order identifier

type
string
in
path
204 No Content

Success, order has been paid.

400 Bad Request

Payment failed (either duplicate payment or an error occured).

Cancel order

POST /orders/{order-reference}/cancel

Set the order status to canceled.

order-reference

Alphanumerical order identifier

type
string
in
path
204 No Content

Success, order has been canceled.

404 Not Found

Order not found

Create order comment

POST /orders/{order-reference}/comments

Creates a new comment for a given order. Expects the comment text.

order-reference

Alphanumerical order identifier

type
string
in
path
204 No Content

Success, comment has been created.

404 Not Found

Order not found

integration

Endpoints in this section control data about integrations to 3rd party applications for fullfilments. Integrations may only be updated or deleted via API while the initial installation of integrations is performed in the user dashboard

Get UserIntegration

GET /integrations/{integration-id}

Some of the listed resources are available as optional includes (add to the query ?include=firstInclude,secondInclude.subInclude). The available includes for this endpoint are: fulfillmentPolicy, regions, defaultStock

syncs: integer

Includes current product states

Request Example
{
  "syncs": "integer"
}

Success

404 Not Found

integration not found

Response Example (200 OK)
{
  "id": 111,
  "app": "shopify",
  "name": "my-cool-shirtstore.myshopify.com",
  "reference": "154e3f69-c081-4e20-8706-d1c7477e15c8",
  "expires_in": "2018-01-01 12:34:56",
  "image_type": "png",
  "image_quality": "high",
  "fulfillment_mode_key": "24h-express",
  "is_token_revoked": true,
  "is_pull_orders": true,
  "is_auto_pull_orders": "true",
  "default_first_packin_reference": "ABC123",
  "default_second_packin_reference": "ABC123",
  "default_hangtag_reference": "ABC123",
  "default_imprint_reference": "ABC123",
  "default_label_reference": "ABC123",
  "default_product_packaging_reference": "ABC123",
  "default_order_packaging_reference": "ABC123",
  "default_sticker_reference": "ABC123",
  "add_delivery_receipt": true,
  "delivery_receipt_note": "Use voucher XYZ and get a 10% discount for your next order",
  "default_delivery_receipt_logo_reference": "ABC123",
  "delivery_receipt_logo": "https://example.com/custom_logo.png",
  "use_custom_product_name": true,
  "sticker_logo": "https://example.com/custom_logo.png",
  "is_auto_onhold": true,
  "is_refresh_token_expired": false
}

Update UserIntegration

PUT /integrations/{integration-id}

Update settings for a single user integration.

The endpoint returns the updated integration.

image_type: string

The image file format. Available options are jpg and png

image_quality: string

Image resolution quality flag for transferred images. Available options are low and high

is_auto_onhold: boolean

Indicates if order is automatically pushed to production (default = false)

is_auto_pull_orders: boolean

Indicates if orders will be pulled and processed by Cockpit automatically (default = false)

default_first_packin_reference: string

Default first packin added to orders received via this intergrations (optional)

default_second_packin_reference: string

Default second packin added to orders received via this intergrations (optional)

default_hangtag_reference: string

Default hangtag added to all textil products of orders received via this intergrations (optional)

default_imprint_reference: string

Default imprinted added to all tagless textil products of orders received via this intergrations (optional)

default_label_reference: string

Default label added to all textil products of orders received via this intergrations (optional)

default_product_packaging_reference: string

Default packaging used for all textil products of orders received via this intergrations (optional)

default_order_packaging_reference: string

Default packging used for all orders received via this intergrations (optional)

default_sticker_reference: string

Default sticker applied to packaging of orders received via this intergrations (optional)

add_delivery_receipt: boolean

Indicates if delivery receipt is added to orders received via this intergrations

delivery_receipt_note: string

Custom note on delivery receipt

use_custom_product_name: boolean

Indicates if custom product name is used on delivery receipt

default_product_inventory: integer

Default stock-inventory for UserIntegration (Optional)

fulfillment_mode_key: string

Key of the fulfillment mode to be used if available for orders with this integration

fulfillmentPolicy: object[]

Fulfillment-Policy

regions: object[]

Declaration of regions a packet will be sent to

Request Example
{
  "image_type": "string",
  "image_quality": "string",
  "is_auto_onhold": true,
  "is_auto_pull_orders": true,
  "default_first_packin_reference": "ABC123",
  "default_second_packin_reference": "ABC123",
  "default_hangtag_reference": "ABC123",
  "default_imprint_reference": "ABC123",
  "default_label_reference": "ABC123",
  "default_product_packaging_reference": "ABC123",
  "default_order_packaging_reference": "ABC123",
  "default_sticker_reference": "ABC123",
  "add_delivery_receipt": true,
  "delivery_receipt_note": "Use voucher XYZ and get a 10% discount for your next order",
  "use_custom_product_name": true,
  "default_product_inventory": "5",
  "fulfillment_mode_key": "24h-express",
  "fulfillmentPolicy": [
    {
      "national_shipping_cost": "2.00",
      "international_shipping_cost": "2.00",
      "international_additional_shipping_cost": "2.00",
      "handling_time": "5"
    }
  ],
  "regions": [
    {
      "region_included": "Worldwide"
    }
  ]
}
200 OK

Success, URL has been processed

422 Unprocessable Entity

Error, Something goes wrong

Delete UserIntegration

DELETE /integrations/{integration-id}

Uninstall this integration from your 3rd party store and delete the integration. IMPORTANT: all synchronized products will be deleted as well in the 3rd party store.

design-reference

Unique design identifier

type
string
in
path
204 No Content

Success, integration uninstalled and deleted

404 Not Found

integration not found

Get UserIntegration

GET /integrations/{integration-id}/products

Some of the listed resources are available as optional includes (add to the query ?include=firstInclude,secondInclude.subInclude). The available includes for this endpoint are: colors, base_product, active_integration_syncs, integration_sync_log, integration_products, projectProductColors

syncs: integer

Includes current product states

Request Example
{
  "syncs": "integer"
}

Success

404 Not Found

integration not found

Response Example (200 OK)
{
  "id": 111,
  "app": "shopify",
  "name": "my-cool-shirtstore.myshopify.com",
  "reference": "154e3f69-c081-4e20-8706-d1c7477e15c8",
  "expires_in": "2018-01-01 12:34:56",
  "image_type": "png",
  "image_quality": "high",
  "fulfillment_mode_key": "24h-express",
  "is_token_revoked": true,
  "is_pull_orders": true,
  "is_auto_pull_orders": "true",
  "default_first_packin_reference": "ABC123",
  "default_second_packin_reference": "ABC123",
  "default_hangtag_reference": "ABC123",
  "default_imprint_reference": "ABC123",
  "default_label_reference": "ABC123",
  "default_product_packaging_reference": "ABC123",
  "default_order_packaging_reference": "ABC123",
  "default_sticker_reference": "ABC123",
  "add_delivery_receipt": true,
  "delivery_receipt_note": "Use voucher XYZ and get a 10% discount for your next order",
  "default_delivery_receipt_logo_reference": "ABC123",
  "delivery_receipt_logo": "https://example.com/custom_logo.png",
  "use_custom_product_name": true,
  "sticker_logo": "https://example.com/custom_logo.png",
  "is_auto_onhold": true,
  "is_refresh_token_expired": false
}

Get OrderReference

GET integration/{integrationreference}/{integrationOrderId}/reference

Get shirtigo order reference for given integrationId and integration orderId

204 No Content

Success, orderProduct customized

other

This section contains miscellaneous endpoints.

Calculate production cost

POST /calculation

Calculate the net production cost for a given product, set of print areas and color information. The VAT rate rate is preliminary, the final rate depends on the shipping target, involvement of business customers and other factors.

is_colored: boolean

Is this a color print?

printareas: integer[]

Desired print areas

product_id: integer

Desired base product

Request Example
{
  "is_colored": true,
  "printareas": [
    "integer"
  ],
  "product_id": 375
}
200 OK

Success

404 Not Found

Product not found

Response Example (200 OK)
{
  "vat_rate": 19,
  "amount": 999,
  "currency_symbol": "€",
  "currency_code": "EUR",
  "currency_factor": 100
}

Get delivery targets

GET /delivery-countries

Retrieve a list of valid delivery target countries. The result is presented as associative array: The array keys consist of upper-case two-letter country codes, the corresponding values are the human readable country names.

200 OK

Success

Response Example (200 OK)
{
  "data": [
    {
      "iso": "DE",
      "name": "Germany"
    }
  ]
}

Get selling statistics

GET /selling-statistics

Retrieve statistics about the current user's sales. This endpoint reports the number of sales and the total net amount for four different reporting periods: Last 24 hours, last 7 days, last 30 days and total.

200 OK

Success

Response Example (200 OK)
{
  "total": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "month": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "week": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "today": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "total_amount": 36,
  "month_amount": 14,
  "week_amount": 3,
  "today_amount": 1
}

Get order statistics

GET /orders-statistics

Retrieve statistics about the current user's order status distribution. This endpoint reports the number of open orders (non-shipped, non-canceled) per status (open, preparation, production, clarification)

200 OK

Success

Response Example (200 OK)
{
  "n_open_orders": 14,
  "n_preparation_orders": 234,
  "n_production_orders": 122,
  "n_clarification_orders": 7
}

Get all fulfillment_modes

GET /fulfillment-modes

Retrieve a list of available fulfillment_modes, which are available to authenticated user.

200 OK

Success

Response Example (200 OK)
{
  "data": [
    {
      "key": "24h-express",
      "name": "24h Express",
      "description": "The order is produced and handed to the carrier within 24h",
      "is_per_order": "true",
      "price_net": {
        "amount": 999,
        "currency_symbol": "€",
        "currency_code": "EUR",
        "currency_factor": 100
      },
      "fulfillment_days": "1",
      "sort_weight": "22"
    }
  ]
}

AI

AI

Generate media using AI

POST /api/ai/generate-image
n_images

Number of images to generate

type
integer
in
query
prompt

Prompt for image generation

type
string
in
query
style_id

ID of prefered MediaStyle

type
integer
in
query

Successful operation

422 Unprocessable Entity

Validation error or insufficient credits

Response Example (200 OK)
{
  "reference": "string",
  "prompt": "string",
  "user_prompt": "string",
  "created_at": "string (date-time)",
  "variations": [
    {
      "reference": "string",
      "url": "string (uri)",
      "resolution": "string",
      "status": "string",
      "response_prompt": "string",
      "has_design": "boolean",
      "safety_system_fail": "boolean"
    }
  ],
  "mediaStyle": {
    "id": "integer",
    "name": "string",
    "description": "string",
    "key": "string",
    "url": "string"
  }
}
AI

Upscale a variation

POST /api/ai/variations/{reference}/upscale
200 OK

Successful operation

Response Example (200 OK)
{
  "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "filename": "ABCDE",
  "name": "My cool design",
  "width": 5000,
  "height": 3000,
  "filetype": "png",
  "tags": "summer-collection",
  "processingmethod_key": "dtg",
  "colors": 5,
  "palette": [
    "A20061",
    "FFBC42",
    "1C838A",
    "021618",
    "A3AAAB"
  ],
  "complementary_color": "",
  "preview": "https://example.com/product_prev.png",
  "original_file": "https://example.com/product.png",
  "is_processed": true,
  "is_dark": true,
  "is_editable": true,
  "is_ai_generated": true,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56"
}
AI

Upscale a design

POST /api/ai/designs/{reference}/upscale
200 OK

Successful operation

Response Example (200 OK)
{
  "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "filename": "ABCDE",
  "name": "My cool design",
  "width": 5000,
  "height": 3000,
  "filetype": "png",
  "tags": "summer-collection",
  "processingmethod_key": "dtg",
  "colors": 5,
  "palette": [
    "A20061",
    "FFBC42",
    "1C838A",
    "021618",
    "A3AAAB"
  ],
  "complementary_color": "",
  "preview": "https://example.com/product_prev.png",
  "original_file": "https://example.com/product.png",
  "is_processed": true,
  "is_dark": true,
  "is_editable": true,
  "is_ai_generated": true,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56"
}
AI

Remove background from a design

POST /api/ai/designs/{reference}/remove-background
200 OK

Successful operation

422 Unprocessable Entity

Validation error or insufficient credits

Response Example (200 OK)
{
  "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "filename": "ABCDE",
  "name": "My cool design",
  "width": 5000,
  "height": 3000,
  "filetype": "png",
  "tags": "summer-collection",
  "processingmethod_key": "dtg",
  "colors": 5,
  "palette": [
    "A20061",
    "FFBC42",
    "1C838A",
    "021618",
    "A3AAAB"
  ],
  "complementary_color": "",
  "preview": "https://example.com/product_prev.png",
  "original_file": "https://example.com/product.png",
  "is_processed": true,
  "is_dark": true,
  "is_editable": true,
  "is_ai_generated": true,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56"
}
AI

Get a list of generated media

GET /api/ai/media
sort_col

Column to sort by (default: created_at)

type
string
in
query
sort_dir

Sort direction (default: desc)

type
string
in
query
filtered_status

Comma-separated list of filtered statuses

type
string
in
query

Successful operation

Response Example (200 OK)
{
  "reference": "string",
  "prompt": "string",
  "user_prompt": "string",
  "created_at": "string (date-time)",
  "variations": [
    {
      "reference": "string",
      "url": "string (uri)",
      "resolution": "string",
      "status": "string",
      "response_prompt": "string",
      "has_design": "boolean",
      "safety_system_fail": "boolean"
    }
  ],
  "mediaStyle": {
    "id": "integer",
    "name": "string",
    "description": "string",
    "key": "string",
    "url": "string"
  }
}
AI

Get details of a generated media by reference

GET /api/ai/media/{reference}
reference

Reference of the generated media

type
string
in
path

Successful operation

Response Example (200 OK)
{
  "reference": "string",
  "prompt": "string",
  "user_prompt": "string",
  "created_at": "string (date-time)",
  "variations": [
    {
      "reference": "string",
      "url": "string (uri)",
      "resolution": "string",
      "status": "string",
      "response_prompt": "string",
      "has_design": "boolean",
      "safety_system_fail": "boolean"
    }
  ],
  "mediaStyle": {
    "id": "integer",
    "name": "string",
    "description": "string",
    "key": "string",
    "url": "string"
  }
}
AI

Get a list of media styles

GET /api/ai/media-styles
200 OK

Successful operation

Response Example (200 OK)
{
  "id": "integer",
  "name": "string",
  "description": "string",
  "key": "string",
  "url": "string"
}

invoice

Upload Merchant Invoice

POST orders/{order-reference}/merchant-invoice

Upload Merchant Invoice

invoice

Merchant invoice file

type
file
in
formData
201 Created

Success, merchant invoice has been uploaded

401 Unauthorized

Unauthorized (no credentials or not eligible for ordering)

422 Unprocessable Entity

Validation failed, details in response body

orderProduct

Customize OrderProduct

PUT /orderproduct/{reference}/customize

Customize an existing OrderProduct for the currently authenticated user.

design_reference

Reference of design

type
string
in
query
processingarea_type_id

Processingarea to be customized. 1 = front, 2 = back

type
integer
in
query
width

Width of design in millimeter

type
integer
in
query
offset_top

Offset to collar in millimeter

type
integer
in
query
offset_center

x-shift to centerline in millimeter

type
integer
in
query
204 No Content

Success, orderProduct customized

Update OrderProduct

PUT /orderproduct/{reference}

Update an existing OrderProducts size or/and color for the currently authenticated user.

color_id

ID for new color

type
integer
in
query
size_id

ID for new size

type
integer
in
query
replacement_requested

Use replacement product in case current Product is not available

type
boolean
in
query
204 No Content

Success, orderProduct updated

Delete OrderProduct

DELETE /orderproduct/{reference}

Delete an existing OrderProducts for the currently authenticated user.

204 No Content

Success, orderProduct deleted

warehousing

GET /inbound/{reference}

Return the WarehouseInboundShipment. Some of the listed resources are available as optional includes (add to the query ?include=firstInclude,secondInclude.subInclude). The available includes for this endpoint are: items

reference

Reference of the Variant to be updated

type
string
in
query
include

Which linked entities you want to include into the response, separated by comma. Available includes are Items

type
string
in
query

Success

404 Not Found

WarehouseInboundShipment not found

Response Example (200 OK)
{
  "id": "1",
  "reference": "A1234567",
  "name": "Warehouse inbound shipment",
  "carrier": "DHL",
  "tracking_number": "AA123345567BB",
  "url": "https://dhl.com/tracking",
  "count": 5,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56",
  "deleted_at": "2017-01-01 12:34:56"
}

DELETE /inbound/{reference}

Deletes WarehouseInboundShipment

reference

Reference of the InboundShipment to be deleted

type
string
in
query

Success

404 Not Found

WarehouseInboundShipment not found

Response Example (200 OK)
{
  "id": "1",
  "reference": "A1234567",
  "name": "Warehouse inbound shipment",
  "carrier": "DHL",
  "tracking_number": "AA123345567BB",
  "url": "https://dhl.com/tracking",
  "count": 5,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56",
  "deleted_at": "2017-01-01 12:34:56"
}

GET /warehousing/inventory

Returns the list of WarehouseProductVariants assiciated with the particular User.

include

Which linked entities you want to include into the response, separated by comma. Available includes are Image and Product

type
string Image
in
query
search

Search in in variants by the name

type
string
in
query
page

Current page

type
integer 1
in
query
items

Number of items per page

type
integer 12
in
query
sort

Column used to sort the results. You can sort by: name, reference, created_at, updated_at

type
string name
in
query
order

Direction for sorting

type
string ASC
in
query
type

Type of the products to query. Options are warehouse, return and all.

type
string warehouse
in
query
200 OK

Success

Response Example (200 OK)
{
  "data": [
    {
      "id": "1",
      "reference": "A12345",
      "product_reference": "A12345",
      "name": "Warehouse product variant name",
      "description": "Warehouse product variant description",
      "color_id": "1",
      "size_id": "1",
      "color": "Red",
      "size": "XL",
      "width_cm": 20,
      "height_cm": 20,
      "depth_cm": 30,
      "weight_gram": 500,
      "item_value": 300,
      "net_sales_price": 25,
      "shirtigo_price": 20,
      "min_stock_quantity": 100,
      "needs_box_shipping": true,
      "country_of_origin": "DE",
      "hs_code": "A123123",
      "created_at": "2017-01-01 12:34:56",
      "updated_at": "2017-01-01 12:34:56",
      "deleted_at": "2017-01-01 12:34:56",
      "is_stored": true,
      "is_approved": true,
      "is_rejected": "false",
      "stock_amount": 100
    }
  ],
  "meta": {
    "pagination": {
      "total": 32,
      "count": 10,
      "per_page": 10,
      "current_page": 2,
      "total_pages": 4,
      "links": {
        "previous": "string",
        "next": "string"
      }
    }
  }
}

GET /warehousing/products/{reference}

Return the WarehouseProduct. Some of the listed resources are available as optional includes (add to the query ?include=firstInclude,secondInclude.subInclude). The available includes for this endpoint are: variant, variants

reference

Reference of the Variant to be updated

type
string
in
query
include

Which linked entities you want to include into the response, separated by comma. Available includes are Variant and Variants

type
string Variants
in
query

Success

404 Not Found

WarehouseProduct not found

Response Example (200 OK)
{
  "id": "1",
  "reference": "A12345",
  "name": "Warehouse product name",
  "description": "Warehouse product description",
  "hs_code": "A123123",
  "country_of_origin": "DE",
  "color_id": "1",
  "item_value": 300,
  "net_sales_price": 25,
  "width_cm": 20,
  "height_cm": 20,
  "depth_cm": 30,
  "weight_gram": 500,
  "needs_box_shipping": true,
  "min_stock_quantity": 100,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56",
  "deleted_at": "2017-01-01 12:34:56"
}

PUT /warehousing/products/{reference}

Updates WarehouseProduct with default Variant and associated Variants

name: string

Project name

description: string

Project description

size: string

Size of the default product's variant

color: string

Color of the default product's variant

hs_code: string

HS Code of default product's variant

country_of_origin: string

Country of Origin of default product's variant

item_value: integer

Item value in cents of default product's variant

net_sales_price: integer

Net sales price in cents of default product's variant

depth_cm: integer

Depth in cm of default product's variant

width_cm: integer

Width in cm of default product's variant

height_cm: integer

Height in cm of default product's variant

weight_gram: integer

Weight in grams of default product's variant

needs_box_shipping: boolean

Indicates whether the default product's variant should be shipping in a box

min_stock_quantity: integer

Minimal stock quantity of default product's variant

image: Media

WarehouseProduct variant image

variants: WarehouseProductVariant

The array of variants of the WarehouseProduct, excluding default one

reference

Reference of the WarehouseProduct to be updated

type
string
in
query
Request Example
{
  "name": "My cool warehouse product",
  "description": "My cool warehouse product's description",
  "size": "S",
  "color": "white",
  "hs_code": "DE123456",
  "country_of_origin": "DE",
  "item_value": "52000",
  "net_sales_price": "1250",
  "depth_cm": "30",
  "width_cm": "30",
  "height_cm": "30",
  "weight_gram": "30",
  "needs_box_shipping": "false",
  "min_stock_quantity": "100",
  "image": {
    "reference": "A12345",
    "url": "https://example.com/image.png",
    "filename": "image.png"
  },
  "variants": [
    {
      "id": "1",
      "reference": "A12345",
      "product_reference": "A12345",
      "name": "Warehouse product variant name",
      "description": "Warehouse product variant description",
      "color_id": "1",
      "size_id": "1",
      "color": "Red",
      "size": "XL",
      "width_cm": 20,
      "height_cm": 20,
      "depth_cm": 30,
      "weight_gram": 500,
      "item_value": 300,
      "net_sales_price": 25,
      "shirtigo_price": 20,
      "min_stock_quantity": 100,
      "needs_box_shipping": true,
      "country_of_origin": "DE",
      "hs_code": "A123123",
      "created_at": "2017-01-01 12:34:56",
      "updated_at": "2017-01-01 12:34:56",
      "deleted_at": "2017-01-01 12:34:56",
      "is_stored": true,
      "is_approved": true,
      "is_rejected": "false",
      "stock_amount": 100
    }
  ]
}

Success

404 Not Found

WarehouseProduct not found

Response Example (200 OK)
{
  "id": "1",
  "reference": "A12345",
  "name": "Warehouse product name",
  "description": "Warehouse product description",
  "hs_code": "A123123",
  "country_of_origin": "DE",
  "color_id": "1",
  "item_value": 300,
  "net_sales_price": 25,
  "width_cm": 20,
  "height_cm": 20,
  "depth_cm": 30,
  "weight_gram": 500,
  "needs_box_shipping": true,
  "min_stock_quantity": 100,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56",
  "deleted_at": "2017-01-01 12:34:56"
}

POST /warehousing/products

Creates WarehouseProduct with default Variant and associated Variants

name: string

Project name

description: string

Project description

size: string

Size of the default product's variant

color: string

Color of the default product's variant

hs_code: string

HS Code of default product's variant

country_of_origin: string

Country of Origin of default product's variant

item_value: integer

Item value in cents of default product's variant

net_sales_price: integer

Net sales price in cents of default product's variant

depth_cm: integer

Depth in cm of default product's variant

width_cm: integer

Width in cm of default product's variant

height_cm: integer

Height in cm of default product's variant

weight_gram: integer

Weight in grams of default product's variant

needs_box_shipping: boolean

Indicates whether the default product's variant should be shipping in a box

min_stock_quantity: integer

Minimal stock quantity of default product's variant

image: Media

WarehouseProduct image

variants: WarehouseProductVariant

The array of variants of the WarehouseProduct, excluding default one

Request Example
{
  "name": "My cool warehouse product",
  "description": "My cool warehouse product's description",
  "size": "S",
  "color": "white",
  "hs_code": "DE123456",
  "country_of_origin": "DE",
  "item_value": "52000",
  "net_sales_price": "1250",
  "depth_cm": "30",
  "width_cm": "30",
  "height_cm": "30",
  "weight_gram": "30",
  "needs_box_shipping": "false",
  "min_stock_quantity": "100",
  "image": {
    "reference": "A12345",
    "url": "https://example.com/image.png",
    "filename": "image.png"
  },
  "variants": [
    {
      "id": "1",
      "reference": "A12345",
      "product_reference": "A12345",
      "name": "Warehouse product variant name",
      "description": "Warehouse product variant description",
      "color_id": "1",
      "size_id": "1",
      "color": "Red",
      "size": "XL",
      "width_cm": 20,
      "height_cm": 20,
      "depth_cm": 30,
      "weight_gram": 500,
      "item_value": 300,
      "net_sales_price": 25,
      "shirtigo_price": 20,
      "min_stock_quantity": 100,
      "needs_box_shipping": true,
      "country_of_origin": "DE",
      "hs_code": "A123123",
      "created_at": "2017-01-01 12:34:56",
      "updated_at": "2017-01-01 12:34:56",
      "deleted_at": "2017-01-01 12:34:56",
      "is_stored": true,
      "is_approved": true,
      "is_rejected": "false",
      "stock_amount": 100
    }
  ]
}

Success

Response Example (200 OK)
{
  "id": "1",
  "reference": "A12345",
  "name": "Warehouse product name",
  "description": "Warehouse product description",
  "hs_code": "A123123",
  "country_of_origin": "DE",
  "color_id": "1",
  "item_value": 300,
  "net_sales_price": 25,
  "width_cm": 20,
  "height_cm": 20,
  "depth_cm": 30,
  "weight_gram": 500,
  "needs_box_shipping": true,
  "min_stock_quantity": 100,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56",
  "deleted_at": "2017-01-01 12:34:56"
}

PUT /warehousing/products/{product_reference}/variants/{reference}

Updates WarehouseProductVariant

name: string

Project name

description: string

Project description

size: string

Size of the product's variant

color: string

Color of the product's variant

hs_code: string

HS Code of product's variant

country_of_origin: string

Country of Origin of product's variant

item_value: integer

Item value in cents of product's variant

net_sales_price: integer

Net sales price in cents of product's variant

depth_cm: integer

Depth in cm of product's variant

width_cm: integer

Width in cm of product's variant

height_cm: integer

Height in cm of product's variant

weight_gram: integer

Weight in grams of product's variant

needs_box_shipping: boolean

Indicates whether the product's variant should be shipping in a box

min_stock_quantity: integer

Minimal stock quantity of product's variant

image: Media

WarehouseProduct variant image

product_reference

Reference of the WarehouseProduct to which the updated Variant belongs to

type
string
in
query
reference

Reference of the Variant to be updated

type
string
in
query
Request Example
{
  "name": "My cool warehouse product variant",
  "description": "My cool warehouse product variant's description",
  "size": "S",
  "color": "white",
  "hs_code": "DE123456",
  "country_of_origin": "DE",
  "item_value": "52000",
  "net_sales_price": "1250",
  "depth_cm": "30",
  "width_cm": "30",
  "height_cm": "30",
  "weight_gram": "30",
  "needs_box_shipping": "false",
  "min_stock_quantity": "100",
  "image": {
    "reference": "A12345",
    "url": "https://example.com/image.png",
    "filename": "image.png"
  }
}

Success

404 Not Found

WarehouseProductVariant not found

Response Example (200 OK)
{
  "id": "1",
  "reference": "A12345",
  "product_reference": "A12345",
  "name": "Warehouse product variant name",
  "description": "Warehouse product variant description",
  "color_id": "1",
  "size_id": "1",
  "color": "Red",
  "size": "XL",
  "width_cm": 20,
  "height_cm": 20,
  "depth_cm": 30,
  "weight_gram": 500,
  "item_value": 300,
  "net_sales_price": 25,
  "shirtigo_price": 20,
  "min_stock_quantity": 100,
  "needs_box_shipping": true,
  "country_of_origin": "DE",
  "hs_code": "A123123",
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56",
  "deleted_at": "2017-01-01 12:34:56",
  "is_stored": true,
  "is_approved": true,
  "is_rejected": "false",
  "stock_amount": 100
}

DELETE /warehousing/products/{product_reference}/variants/{reference}

Deletes WarehouseProductVariant

product_reference

Reference of the WarehouseProduct to which the deleted Variant belongs to

type
string
in
query
reference

Reference of the Variant to be deleted

type
string
in
query

Success

404 Not Found

WarehouseProductVariant not found

Response Example (200 OK)
{
  "id": "1",
  "reference": "A12345",
  "product_reference": "A12345",
  "name": "Warehouse product variant name",
  "description": "Warehouse product variant description",
  "color_id": "1",
  "size_id": "1",
  "color": "Red",
  "size": "XL",
  "width_cm": 20,
  "height_cm": 20,
  "depth_cm": 30,
  "weight_gram": 500,
  "item_value": 300,
  "net_sales_price": 25,
  "shirtigo_price": 20,
  "min_stock_quantity": 100,
  "needs_box_shipping": true,
  "country_of_origin": "DE",
  "hs_code": "A123123",
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56",
  "deleted_at": "2017-01-01 12:34:56",
  "is_stored": true,
  "is_approved": true,
  "is_rejected": "false",
  "stock_amount": 100
}

webhooks

List webhooks

GET /webhooks

Returns a list of webhooks with pagination and optional filtering. The following events are available: Order (.created, .updated, .shipped, .canceled, .clarification), Design (.created, .updated, .rendering-failed, .deleted), Product (.created, .updated, .deleted), OrderProductItem.updated

items

Number of items per page

type
integer 10
in
query
sort_col

Column to sort by

type
string created_at
in
query
sort_dir

Sort direction (asc or desc)

type
string asc
in
query
resource

Filter by resource. See WebhookTypes objects for available options.

type
string
in
query
action

Filter by action. See WebhookTypes objects for available options.

type
string
in
query
is_active

Filter by active status

type
boolean
in
query
include

Comma-separated list of related resources to include in the response. Available resources: type, calls

type
string
in
query
loaded_webhook_calls

Number of loaded webhook calls when the calls include is used

type
integer 10
in
query
200 OK

Successful operation

400 Bad Request

Bad request

401 Unauthorized

Unauthorized

Response Content-Types: application/json
Response Example (200 OK)

Create a new webhook

POST /webhooks

Create a new webhook based on the provided data

resource

Resource for which this webhook should be registered. Required together with action if no types array is passed.

type
string
in
formData
action

Action for which this webhook should be registered. Required together with resource if no types array is passed.

type
string
in
formData
types

Array of webhook type keys as an alternative to providing resource and action.

type
string[]
in
formData
url

URL

type
string
in
formData
secret

Secret used to hash the payload with the SHA256 algorithm to create the signature in webhook calls.

type
string
in
formData
signature_header

Header parameter named used to identify the webhook signature in the request.

type
string
in
formData
is_active

Indicates if the webhook is active.

type
boolean
in
formData
201 Created

webhook created successfully

400 Bad Request

Invalid input data

401 Unauthorized

Unauthorized

Response Content-Types: application/json
Response Example (201 Created)
{
  "data": [
    {
      "id": "ABC123DEF5",
      "user_webhook_type_key": "Order.created",
      "url": "https://example.com/webhook",
      "secret": "mysecretkey",
      "signature_header": "signature",
      "is_active": true,
      "created_at": "2023-01-01T00:00:00",
      "updated_at": "2023-01-02T00:00:00"
    }
  ],
  "meta": {
    "pagination": {
      "total": 32,
      "count": 10,
      "per_page": 10,
      "current_page": 2,
      "total_pages": 4,
      "links": {
        "previous": "string",
        "next": "string"
      }
    }
  }
}

Get a single webhook by ID

GET /webhooks/{id}

Retrieve a single webhook by its reference ID.

id

The reference ID of the webhook.

type
string
in
path
include

Comma-separated list of related resources to include in the response. Available resources: type, calls

type
string
in
query
200 OK

webhook retrieved successfully.

401 Unauthorized

Unauthorized.

404 Not Found

webhook not found.

Response Example (200 OK)
{
  "id": "ABC123DEF5",
  "user_webhook_type_key": "Order.created",
  "url": "https://example.com/webhook",
  "secret": "mysecretkey",
  "signature_header": "signature",
  "is_active": true,
  "created_at": "2023-01-01T00:00:00",
  "updated_at": "2023-01-02T00:00:00"
}

Update a webhook

PUT /webhooks/{id}

Updates the specified webhook with the provided information.

id

webhook reference

type
string
in
path
url

URL for the webhook.

type
string (url)
in
formData
secret

Secret for the webhook, used to hash the payload with the SHA-256 algorithm to create the signature in webhook calls.

type
string
in
formData
signature_header

Signature header for the webhook, used to identify the webhook signature in the request header.

type
string
in
formData
is_active

Whether the webhook is active.

type
boolean
in
formData
200 OK

Successful operation

400 Bad Request

Bad Request

401 Unauthorized

Unauthorized

404 Not Found

Not Found

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "ABC123DEF5",
  "user_webhook_type_key": "Order.created",
  "url": "https://example.com/webhook",
  "secret": "mysecretkey",
  "signature_header": "signature",
  "is_active": true,
  "created_at": "2023-01-01T00:00:00",
  "updated_at": "2023-01-02T00:00:00"
}
Response Example (400 Bad Request)
Response Example (401 Unauthorized)
Response Example (404 Not Found)

Delete a webhook

DELETE /webhooks/{id}

Delete a webhook by its reference.

id

Reference of the webhook to delete.

type
string
in
path
204 No Content

webhook successfully deleted.

401 Unauthorized

Unauthorized. Access token is missing or invalid.

403 Forbidden

Forbidden. The user does not have the necessary permissions.

404 Not Found

Not Found. The specified webhook could not be found.

Response Content-Types: application/json

Bulk Update webhook with same URL

PUT /webhooks/

Updates the specified webhooks for the given URL with the provided information.

url

URL for the webhooks.

type
string (url)
in
formData
secret

Secret for the webhooks, used to hash the payload with the SHA-256 algorithm to create the signature in webhook calls.

type
string
in
formData
signature_header

Signature header for the webhooks, used to identify the webhook signature in the request header.

type
string
in
formData
is_active

Whether the updated webhooks are active.

type
boolean
in
formData
drop_unlisted

Remove all webhooks for this URL, which are not part of the listed types.

type
boolean
in
formData
200 OK

Successful operation

400 Bad Request

Bad Request

401 Unauthorized

Unauthorized

404 Not Found

Not Found

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": [
    {
      "id": "ABC123DEF5",
      "user_webhook_type_key": "Order.created",
      "url": "https://example.com/webhook",
      "secret": "mysecretkey",
      "signature_header": "signature",
      "is_active": true,
      "created_at": "2023-01-01T00:00:00",
      "updated_at": "2023-01-02T00:00:00"
    }
  ]
}
Response Example (400 Bad Request)
Response Example (401 Unauthorized)
Response Example (404 Not Found)

Test a webook

POST /webhooks/{id}/test

Test a webhook for a given resource.

id

Reference of the webhook to delete.

type
string
in
path
resource_id

Reference of the resource used to create thhe test webhook.

type
string
in
formData
204 No Content

test webhook successfully send.

401 Unauthorized

Unauthorized. Access token is missing or invalid.

403 Forbidden

Forbidden. The user does not have the necessary permissions.

404 Not Found

Not Found. The specified webhook could not be found.

Response Content-Types: application/json

Get all User Webhook Types

GET /webhook-types

Retrieve a list of all available User Webhook Types

200 OK

A list of User Webhook Types

Response Content-Types: application/json
Response Example (200 OK)
[
  null
]

Schema Definitions

Payment: object

id: string

Unique transaction identifier

status: string

Payment type

status_title: string

Payment description

payment_reference: string

Payment reference

order: Order

Order

net_amount: Money

Net price

gross_amount: Money

Gross price

vat_amount: Money

VAT amount

vat_rate: integer

VAT rate in percent

created_at: string

Timestamp of creation

Example
{
  "id": "d1364568-4b15-4706-89f1-2452efe1261d",
  "status": "invoice",
  "status_title": "Erstattung",
  "payment_reference": "Kreditkarte",
  "order": {
    "reference": "ABCDXY1",
    "net_price": {
      "amount": 999,
      "currency_symbol": "€",
      "currency_code": "EUR",
      "currency_factor": 100
    },
    "gross_price": {
      "amount": 999,
      "currency_symbol": "€",
      "currency_code": "EUR",
      "currency_factor": 100
    },
    "vat_rate": 19,
    "vat_amount": {
      "amount": 999,
      "currency_symbol": "€",
      "currency_code": "EUR",
      "currency_factor": 100
    },
    "status": "Bestellung offen",
    "status_key": "",
    "invoice_reference": "string",
    "fulfillment": {},
    "delivery": {
      "title": "Dr.",
      "company": "Shirtigo GmbH",
      "firstname": "Max",
      "lastname": "Mustermann",
      "care_of": "Gift for Mrs. Doe",
      "street": "Musterstraße 12",
      "postcode": "12345",
      "city": "Köln",
      "country": "DE"
    },
    "sender": {
      "title": "Dr.",
      "company": "Shirtigo GmbH",
      "firstname": "Max",
      "lastname": "Mustermann",
      "care_of": "Gift for Mrs. Doe",
      "street": "Musterstraße 12",
      "postcode": "12345",
      "city": "Köln",
      "country": "DE"
    },
    "bill": {
      "title": "Dr.",
      "company": "Shirtigo GmbH",
      "firstname": "Max",
      "lastname": "Mustermann",
      "care_of": "Gift for Mrs. Doe",
      "street": "Musterstraße 12",
      "postcode": "12345",
      "city": "Köln",
      "country": "DE"
    },
    "total_items": 5,
    "add_delivery_receipt": true,
    "delivery_receipt_logo_reference": "A456HJ",
    "delivery_receipt_note": "Use voucher XYZ and get a 10% discount for your next order",
    "use_custom_product_name": true,
    "created_at": "2017-01-01 12:34:56",
    "updated_at": "2017-01-01 12:34:56",
    "products": {
      "data": [
        {
          "id": "integer",
          "amount": 1,
          "name": "Base product XY",
          "color": "Black",
          "size": "XL",
          "images": [
            {
              "id": "1222",
              "color": "Red",
              "area": "front",
              "urls": {
                "small": "http://www.example.com/my-orders/small.png",
                "large": "http://www.example.com/my-orders/large.png"
              }
            }
          ],
          "net_total_price": 1375,
          "net_unit_price": {
            "amount": 999,
            "currency_symbol": "€",
            "currency_code": "EUR",
            "currency_factor": 100
          },
          "campaign_reference": "F7S33M2"
        }
      ]
    }
  }
}

CampaignIntegrationProduct: object

integration_id: integer

The cockpit internal id of the used user integration

integration_product_id: string

The identifier used by the integration application

updated_at: string

Timestamp of last update

Example
{
  "integration_id": 111,
  "integration_product_id": "9286211826",
  "updated_at": "2017-01-01 12:34:56"
}

ProjectPrint: object

area: string

Processing site

position: string

Processing position

method: string

Processing method

height: integer

Design height in millimeters

width: integer

Design width in millimeters

offset_top: integer

Vertical offset from top in millimeters

offset_center: integer

Horizontal offset from center in millimeters

updated_at: string

Timestamp of last update

design: Design
Example
{
  "area": "front",
  "position": "center",
  "method": "print",
  "height": 300,
  "width": 200,
  "offset_top": 50,
  "offset_center": 0,
  "updated_at": "2017-01-01 12:34:56",
  "design": {
    "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
    "filename": "ABCDE",
    "name": "My cool design",
    "width": 5000,
    "height": 3000,
    "filetype": "png",
    "tags": "summer-collection",
    "processingmethod_key": "dtg",
    "colors": 5,
    "palette": [
      "A20061",
      "FFBC42",
      "1C838A",
      "021618",
      "A3AAAB"
    ],
    "complementary_color": "",
    "preview": "https://example.com/product_prev.png",
    "original_file": "https://example.com/product.png",
    "is_processed": true,
    "is_dark": true,
    "is_editable": true,
    "is_ai_generated": true,
    "created_at": "2017-01-01 12:34:56",
    "updated_at": "2017-01-01 12:34:56"
  }
}

CampaignProductColor: object

id: integer

Numerical identifier

color: string

Color name

color_hex: string

Hexadecimal RGB color value

is_colored: boolean

Is this a non trivial (b/w) color?

sales_price: Money

The price ypu specifiet for the product

sort_position: integer

Numerical index used for sorting

sizes: object[]

Available sizes

Example
{
  "id": 123,
  "color": "Black",
  "color_hex": "#000000",
  "is_colored": true,
  "sales_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "sort_position": 1,
  "sizes": [
    {
      "id": 67,
      "size": "XL",
      "is_onlocalstock": true,
      "is_available": true,
      "sort_position": 1,
      "shirtigo_price": {
        "amount": 999,
        "currency_symbol": "€",
        "currency_code": "EUR",
        "currency_factor": 100
      }
    }
  ]
}

CampaignProductIntegrationSync: object

integration_name: string

Name of the integration application

integration_id: integer

The cockpit internal id of the used user integration

integration_product_id: string

The identifier used by the integration application

is_syncing: boolean

Is the product available?

is_successful: boolean

Has the product been rendered?

in_queue: boolean

Is the current sync-process still in queue?

error: string

Error message

updated_at: string

Timestamp of last update

Example
{
  "integration_name": "shopify",
  "integration_id": 111,
  "integration_product_id": "9286211826",
  "is_syncing": true,
  "is_successful": true,
  "in_queue": true,
  "error": "Invalid or missing auth.",
  "updated_at": "2017-01-01 12:34:56"
}

CampaignProduct: object

id: integer

Numerical identifier

project: string

Project reference

project_name: string

Project name

name: string

Product name

custom_name: string

User defined product name

description: string

Short description in HTML format

tags: string[]

List of tags for this design

price: Money

Net price

shirtigo_price: Money

Your price for the first color/size variant

sort_position: integer

Numerical identifier

colors: CampaignProductColor

List of available colors

is_available: boolean

Is the product available?

is_rendered: boolean

Has the product been rendered?

has_express: boolean

Is the product available for express processing?

images: UtilProductImage

Product images

brandings: UserPackin

Product branding options

base_product: Product

Base product

active_integration_syncs: CampaignProductIntegrationSync

List of currently active synchronizations with integrations

integration_sync_log: CampaignProductIntegrationSync

History of synchronizations with integrations for this product

integration_products: CampaignIntegrationProduct

List of integration products (e.g. products in shopify) for this products

updated_at: string

Timestamp of last update

Example
{
  "id": 123,
  "project": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "project_name": "Projekt 123",
  "name": "Base Product Name XY",
  "custom_name": "My cool product",
  "description": "string",
  "tags": [
    "string"
  ],
  "price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "shirtigo_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "sort_position": 0,
  "colors": [
    {
      "id": 123,
      "color": "Black",
      "color_hex": "#000000",
      "is_colored": true,
      "sales_price": {
        "amount": 999,
        "currency_symbol": "€",
        "currency_code": "EUR",
        "currency_factor": 100
      },
      "sort_position": 1,
      "sizes": [
        {
          "id": 67,
          "size": "XL",
          "is_onlocalstock": true,
          "is_available": true,
          "sort_position": 1,
          "shirtigo_price": {
            "amount": 999,
            "currency_symbol": "€",
            "currency_code": "EUR",
            "currency_factor": 100
          }
        }
      ]
    }
  ],
  "is_available": true,
  "is_rendered": true,
  "has_express": false,
  "images": [
    {
      "id": "1222",
      "color": "Red",
      "area": "front",
      "urls": {
        "small": "http://www.example.com/my-orders/small.png",
        "large": "http://www.example.com/my-orders/large.png"
      }
    }
  ],
  "brandings": [
    {
      "reference": "ABC123",
      "name": "Greetings card",
      "type": "packin",
      "position": "seam-left",
      "size_id": "3",
      "color_ids": "['147','157']",
      "weight_gram": "10",
      "width_mm": "100",
      "height_mm": "100",
      "initial_inventory": "1000",
      "inventory": "1000",
      "preview_path": "https://s3.amazon.com/preview.png",
      "is_active": true,
      "stocking_costs": 50,
      "item_costs": 75
    }
  ],
  "base_product": {
    "id": 1,
    "name": "Base product XY",
    "original_name": "T-Shirt",
    "shipping_category": 1,
    "category_id": 5,
    "category": "Unisex-Shirts",
    "short_description": "string",
    "description": "string",
    "sizechart_image": "string",
    "is_active": "boolean",
    "manufacturer": {
      "id": 123,
      "name": "Musterfirma"
    },
    "images": {
      "data": [
        null
      ]
    },
    "colors": {
      "data": [
        null
      ]
    }
  }
}

UtilProductImage: object

id: integer

id of the image object

color: string

Color name

area: string

Processing area name

urls: object

Product name

Example
{
  "id": "1222",
  "color": "Red",
  "area": "front",
  "urls": {
    "small": "http://www.example.com/my-orders/small.png",
    "large": "http://www.example.com/my-orders/large.png"
  }
}

Project: object

reference: string

Unique identifier of this project

name: string

Project name

type: string

Type

products_count: integer

Number of products

is_published: boolean

Has the project been published?

is_syncing: boolean[][]

Array with a list of all CampaignProductIntegrationSyncs of this campaign and its status, if it is currently syncing.

is_queueing: boolean[][]

Array with a list of all CampaignProductIntegrationSyncs of this campaign and its status, if it is currently in queue.

status: string

Project status

updated_at: string

Timestamp of last update

created_at: string

Timestamp of initial creation

processings: object

Processings associated with this project

Example
{
  "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "name": "My cool project",
  "type": "ondemand",
  "products_count": 3,
  "is_published": true,
  "is_syncing": [
    {
      "12": true
    }
  ],
  "is_queueing": [
    {
      "12": true
    }
  ],
  "status": "Finalisiert",
  "updated_at": "2017-01-01 12:34:56",
  "created_at": "2017-01-01 12:34:56",
  "processings": {
    "data": [
      {
        "area": "front",
        "position": "center",
        "method": "print",
        "height": 300,
        "width": 200,
        "offset_top": 50,
        "offset_center": 0,
        "updated_at": "2017-01-01 12:34:56",
        "design": {
          "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
          "filename": "ABCDE",
          "name": "My cool design",
          "width": 5000,
          "height": 3000,
          "filetype": "png",
          "tags": "summer-collection",
          "processingmethod_key": "dtg",
          "colors": 5,
          "palette": [
            "A20061",
            "FFBC42",
            "1C838A",
            "021618",
            "A3AAAB"
          ],
          "complementary_color": "",
          "preview": "https://example.com/product_prev.png",
          "original_file": "https://example.com/product.png",
          "is_processed": true,
          "is_dark": true,
          "is_editable": true,
          "is_ai_generated": true,
          "created_at": "2017-01-01 12:34:56",
          "updated_at": "2017-01-01 12:34:56"
        }
      }
    ]
  }
}

ProjectWithProducts:

products: Product

Products associated with this Project

Example
{
  "products": [
    {
      "id": 1,
      "name": "Base product XY",
      "original_name": "T-Shirt",
      "shipping_category": 1,
      "category_id": 5,
      "category": "Unisex-Shirts",
      "short_description": "string",
      "description": "string",
      "sizechart_image": "string",
      "is_active": "boolean",
      "manufacturer": {
        "id": 123,
        "name": "Musterfirma"
      },
      "images": {
        "data": [
          null
        ]
      },
      "colors": {
        "data": [
          {
            "id": 123,
            "color": "Black",
            "color_hex": "#000000",
            "is_colored": true,
            "is_heathered": false,
            "sizes": [
              {
                "id": 67,
                "size": "XL",
                "base_product_sku": "STTU755C0021S",
                "is_onlocalstock": true,
                "is_available": true,
                "is_discontinued": false,
                "sort_position": 1,
                "weight_gram": 10,
                "stock": {
                  "local_stock": 100,
                  "wholesale_stock": 200,
                  "wholesale_delivery_duration": 7,
                  "inbound_date": "2024-02-15",
                  "replacement_stock": "object"
                },
                "print_dimensions": [
                  {
                    "processingarea_id": 1,
                    "processingarea_name": "string",
                    "width_in_mm": 300,
                    "height_in_mm": 400
                  }
                ]
              }
            ]
          }
        ]
      }
    }
  ],
  "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "name": "My cool project",
  "type": "ondemand",
  "products_count": 3,
  "is_published": true,
  "is_syncing": [
    {
      "12": true
    }
  ],
  "is_queueing": [
    {
      "12": true
    }
  ],
  "status": "Finalisiert",
  "updated_at": "2017-01-01 12:34:56",
  "created_at": "2017-01-01 12:34:56",
  "processings": {
    "data": [
      {
        "area": "front",
        "position": "center",
        "method": "print",
        "height": 300,
        "width": 200,
        "offset_top": 50,
        "offset_center": 0,
        "updated_at": "2017-01-01 12:34:56",
        "design": {
          "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
          "filename": "ABCDE",
          "name": "My cool design",
          "width": 5000,
          "height": 3000,
          "filetype": "png",
          "tags": "summer-collection",
          "processingmethod_key": "dtg",
          "colors": 5,
          "palette": [
            "A20061",
            "FFBC42",
            "1C838A",
            "021618",
            "A3AAAB"
          ],
          "complementary_color": "",
          "preview": "https://example.com/product_prev.png",
          "original_file": "https://example.com/product.png",
          "is_processed": true,
          "is_dark": true,
          "is_editable": true,
          "is_ai_generated": true,
          "created_at": "2017-01-01 12:34:56",
          "updated_at": "2017-01-01 12:34:56"
        }
      }
    ]
  }
}

Coupon: object

coupon_code: string

The identifier on the promo coupon

coupon_type: string

The type of the coupon (discount, free shipping, etc.)

discount_type: string

The type of discount, either percentage or euro

discount_percent: integer

The granted discount in percent on the cart value without handling and shipping (filled for discount type percentage)

discount_netto: Money

The granted discount without sales taxes in euro cent (filled for discount type euro)

discount_brutto: Money

The gross granted discount in euro cent (filled for discount type euro)

is_active: boolean

Activation status of coupon

min_order_value: Money

Minimal total value in euro cents for an order to make this coupon applicable

is_expired: boolean

Flag to indicate if the coupon is expired

expiration_date: string

Timestamp for the validity of the coupon code

n_activations: integer

Number of usages for this coupon

remaining_activations: integer

Number of remaining usages for this coupon

new_user_only: integer

Flag to indicate if the coupon is for new users only

rate_limit_exceeded: integer

Flag to indicate if the coupon was used too often in the last hour.

has_orders: integer

Flag to indicate if orders for user exist.

Example
{
  "coupon_code": "Shirt-coupon-XYZ",
  "coupon_type": "discount",
  "discount_type": "euro",
  "discount_percent": 10,
  "discount_netto": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "discount_brutto": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "is_active": true,
  "min_order_value": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "is_expired": false,
  "expiration_date": "2017-01-01 12:34:56",
  "n_activations": "1",
  "remaining_activations": "1",
  "new_user_only": "1",
  "rate_limit_exceeded": "1",
  "has_orders": "1"
}

Country: object

iso: string

Two-letter identifier according to ISO 3166-1

name: string

Country name

Example
{
  "iso": "DE",
  "name": "Germany"
}

Design: object

reference: string

Unique identifier of this design

filename: string

Design file name

name: string

Design Name

width: integer

Width of the design file in pixels

height: integer

Height of the design file in pixels

filetype: string

Extension of the design file name

tags: string[]

List of tags for this design

processingmethod_key: string

Indicates for which processingmethod the design can be used

colors: integer

Total number of colors in the color palette

palette: string[]

List of hex-codes of representative colors

complementary_color: string

Complementary color

preview: string

URL to preview image

original_file: string

URL to full resolution image

is_processed: boolean

Has the design been rendered?

is_dark: boolean

Is this a design with dark colors?

is_editable: boolean

Indicates if design colors can be updated

is_ai_generated: boolean

Indicated if design has been generated by AI

created_at: string

Timestamp of creation

updated_at: string

Timestamp of last update

Example
{
  "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "filename": "ABCDE",
  "name": "My cool design",
  "width": 5000,
  "height": 3000,
  "filetype": "png",
  "tags": "summer-collection",
  "processingmethod_key": "dtg",
  "colors": 5,
  "palette": [
    "A20061",
    "FFBC42",
    "1C838A",
    "021618",
    "A3AAAB"
  ],
  "complementary_color": "",
  "preview": "https://example.com/product_prev.png",
  "original_file": "https://example.com/product.png",
  "is_processed": true,
  "is_dark": true,
  "is_editable": true,
  "is_ai_generated": true,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56"
}

FulfillmentMode: object

key: string

A unique key to identify a fulfillment mode

name: string

The name of the fulfillment mode

description: string

A description of the fulfillment conditions for this mode

is_per_order: boolean

Flag to indicate if the surcharge for this mode is per order or per item

price_net: Money

The net price, either per order or per item, dependent in the is_per_order_setting

fulfillment_days: string

The number of fulfillment days for this fulfillment mode

sort_weight: string

Country name

Example
{
  "key": "24h-express",
  "name": "24h Express",
  "description": "The order is produced and handed to the carrier within 24h",
  "is_per_order": "true",
  "price_net": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "fulfillment_days": "1",
  "sort_weight": "22"
}

GeneratedMedia:

reference: string
prompt: string
user_prompt: string
created_at: string (date-time)
variations: GeneratedMediaVariation
mediaStyle: MediaStyle
Example
{
  "reference": "string",
  "prompt": "string",
  "user_prompt": "string",
  "created_at": "string (date-time)",
  "variations": [
    {
      "reference": "string",
      "url": "string (uri)",
      "resolution": "string",
      "status": "string",
      "response_prompt": "string",
      "has_design": "boolean",
      "safety_system_fail": "boolean"
    }
  ],
  "mediaStyle": {
    "id": "integer",
    "name": "string",
    "description": "string",
    "key": "string",
    "url": "string"
  }
}

GeneratedMediaVariation:

reference: string
url: string (uri)
resolution: string
status: string pending, processing, done, failed
response_prompt: string
has_design: boolean
safety_system_fail: boolean
Example
{
  "reference": "string",
  "url": "string (uri)",
  "resolution": "string",
  "status": "string",
  "response_prompt": "string",
  "has_design": "boolean",
  "safety_system_fail": "boolean"
}

MediaStyle:

id: integer
name: string
description: string
key: string
url: string
Example
{
  "id": "integer",
  "name": "string",
  "description": "string",
  "key": "string",
  "url": "string"
}

Media:

reference: string

Reference

url: string

Media url

filename: string

The basename of the file

Example
{
  "reference": "A12345",
  "url": "https://example.com/image.png",
  "filename": "image.png"
}

NewsPost:

id: integer
name: string
description: string
key: string
Example
{
  "id": "integer",
  "name": "string",
  "description": "string",
  "key": "string"
}

OrderComment: object

id: integer

ID of the order comment

comment: string

Text of the order comment

created_at: string

Timestamp of creation

Example
{
  "id": "integer",
  "comment": "Great communication with customer",
  "created_at": "2017-01-01 12:34:56"
}

OrderPackin: object

id: integer

Packin id

amount: integer

Number of items

name: string

Packin name

type: string

Packin type (hangtag or packin)

net_total_price: Money

Total price (net_unit_price*amount)

net_unit_price: Money

Net unit price

Example
{
  "id": "integer",
  "amount": 1,
  "name": "Greeting card",
  "type": "hangtag",
  "net_total_price": 75,
  "net_unit_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  }
}

OrderPayment: object

id: string

Unique transaction identifier

status: string

Payment status

status_details: string

Payment error description (if there is any)

type: string

Payment type

net_amount: Money

Net price

gross_amount: Money

Gross price

vat_amount: Money

VAT amount

vat_rate: integer

VAT rate in percent

updated_at: string

Timestamp of last update

Example
{
  "id": "d1364568-4b15-4706-89f1-2452efe1261d",
  "status": "paid",
  "status_details": "An error occured.",
  "type": "creditcard",
  "net_amount": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "gross_amount": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "vat_amount": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "vat_rate": 19,
  "updated_at": "2017-01-01 12:34:56"
}

OrderProductItem: object

reference: string

Product reference

preview_image_url: string

Preview image url

status_name: string

Item Status name

status_key: string

Color name

status_description: string

Status description

status_group: string

Status group

availability: string

availability

Example
{
  "reference": "OP-12345678",
  "preview_image_url": "url",
  "status_name": "Print (DTG)",
  "status_key": "dtg",
  "status_description": "Product is being printed.",
  "status_group": "processing",
  "availability": "stock"
}

OrderProduct: object

id: integer

Product id

amount: integer

Number of items

name: string

Product name

color: string

Color name

size: string

Size name

images: UtilProductImage

Available image URLs

net_total_price: Money

Total price (net_unit_price*amount)

net_unit_price: Money

Net unit price

campaign_reference: string

Reference of the campaign

campaign_name: string

Name of the campaign

campaign_product_id: int

ID of the campaign product

Example
{
  "id": "integer",
  "amount": 1,
  "name": "Base product XY",
  "color": "Black",
  "size": "XL",
  "images": [
    {
      "id": "1222",
      "color": "Red",
      "area": "front",
      "urls": {
        "small": "http://www.example.com/my-orders/small.png",
        "large": "http://www.example.com/my-orders/large.png"
      }
    }
  ],
  "net_total_price": 1375,
  "net_unit_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "campaign_reference": "F7S33M2",
  "campaign_name": "Example Project",
  "campaign_product_id": "123"
}

OrderRelation: object

reference: string

Unique identifier of this order

net_price: Money

Total net price of this order

gross_price: Money

Total gross price of this order

vat_rate: integer

VAT rate in percent

vat_amount: Money

VAT amount

status: string

Human readable order status

status_key: string

Number of products

total_items: integer

Total number of items in the order

created_at: string

Timestamp of creation

updated_at: string

Timestamp of last update

Example
{
  "reference": "ABCDXY1",
  "net_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "gross_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "vat_rate": 19,
  "vat_amount": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "status": "Bestellung offen",
  "status_key": "",
  "total_items": 5,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56"
}

OrderShipping: object

type: string

Shipping type

cost: Money

Shipping price

is_shipped: boolean

Has the order been shipped yet?

country_code: string

Two letter country code

tracking_code: string

Carrier tracking code

tracking_url: string

Carrier tracking URL

created_at: string

Timestamp of creation

updated_at: string

Timestamp of last update

Example
{
  "type": "delivery",
  "cost": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "is_shipped": false,
  "country_code": "DE",
  "tracking_code": "string",
  "tracking_url": "string",
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56"
}

OrderStatusEntry: object

key: string

Order status key

status: string

Human readable status

description: integer

Verbose status description

created_at: string

Timestamp of creation

updated_at: string

Timestamp of last update

Example
{
  "key": "string",
  "status": "string",
  "description": "integer",
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56"
}

Order: object

reference: string

Unique identifier of this order

net_price: Money

Total net price of this order

gross_price: Money

Total gross price of this order

vat_rate: integer

VAT rate in percent

vat_amount: Money

VAT amount

status: string

Human readable order status

status_key: string

Number of products

invoice_reference: string

Invoice reference

fulfillment: object

Fulfillment details or false if no details are available

delivery: OrderAddress

Delivery address

sender: OrderAddress

Sender address

bill: OrderAddress

Billing address

total_items: integer

Total number of items in the order

add_delivery_receipt: boolean

Indicates if delivery receipt is added to order

delivery_receipt_logo_reference: string

Media reference for the logo added to delivery_receipt

delivery_receipt_note: string

Custom note on delivery receipt

use_custom_product_name: boolean

Use custom product name on delivery receipt

created_at: string

Timestamp of creation

updated_at: string

Timestamp of last update

products: object

Array of products in this order

packins: object

Array of packins and hangtags in this order

payments: object

Array of payments associated with this order

orderStatusEntries: object

Array of status messages associated with this order

shipping: OrderShipping

Details on the shipping method, status and tracking (only present if order is being or has been shipped)

Example
{
  "reference": "ABCDXY1",
  "net_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "gross_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "vat_rate": 19,
  "vat_amount": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "status": "Bestellung offen",
  "status_key": "",
  "invoice_reference": "string",
  "fulfillment": {},
  "delivery": {
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "firstname": "Max",
    "lastname": "Mustermann",
    "care_of": "Gift for Mrs. Doe",
    "street": "Musterstraße 12",
    "postcode": "12345",
    "city": "Köln",
    "country": "DE"
  },
  "sender": {
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "firstname": "Max",
    "lastname": "Mustermann",
    "care_of": "Gift for Mrs. Doe",
    "street": "Musterstraße 12",
    "postcode": "12345",
    "city": "Köln",
    "country": "DE"
  },
  "bill": {
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "firstname": "Max",
    "lastname": "Mustermann",
    "care_of": "Gift for Mrs. Doe",
    "street": "Musterstraße 12",
    "postcode": "12345",
    "city": "Köln",
    "country": "DE"
  },
  "total_items": 5,
  "add_delivery_receipt": true,
  "delivery_receipt_logo_reference": "A456HJ",
  "delivery_receipt_note": "Use voucher XYZ and get a 10% discount for your next order",
  "use_custom_product_name": true,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56",
  "products": {
    "data": [
      {
        "id": "integer",
        "amount": 1,
        "name": "Base product XY",
        "color": "Black",
        "size": "XL",
        "images": [
          {
            "id": "1222",
            "color": "Red",
            "area": "front",
            "urls": {
              "small": "http://www.example.com/my-orders/small.png",
              "large": "http://www.example.com/my-orders/large.png"
            }
          }
        ],
        "net_total_price": 1375,
        "net_unit_price": {
          "amount": 999,
          "currency_symbol": "€",
          "currency_code": "EUR",
          "currency_factor": 100
        },
        "campaign_reference": "F7S33M2",
        "campaign_name": "Example Project",
        "campaign_product_id": "123"
      }
    ]
  },
  "packins": {
    "data": [
      {}
    ]
  }
}

OrderAddress: object

Address

title: string

(Academic) title

company: string

Company name

firstname: string

First name

lastname: string

Last name

care_of: string

Care of (c/o)

street: string

Street and number

postcode: string

ZIP/area code

city: string

City

country: string

A country iso-code (ISO 3166-1 alpha2) as listed in the /delivery-countries endpoint

Example
{
  "title": "Dr.",
  "company": "Shirtigo GmbH",
  "firstname": "Max",
  "lastname": "Mustermann",
  "care_of": "Gift for Mrs. Doe",
  "street": "Musterstraße 12",
  "postcode": "12345",
  "city": "Köln",
  "country": "DE"
}

OrderWarehouseProductItem: object

reference: string

Product Reference

sku: string

SKU of ordered warehouseProductVariant

Example
{
  "reference": "string",
  "sku": "WP-12345"
}

OrderWarehouseProduct: object

reference: string

Product Reference

amount: integer

Number of items

name: string

Product name

sku: string

SKU of ordered warehouseProductVariant

net_total_price: Money

Total price (net_unit_price*amount)

net_unit_price: Money

Net unit price

Example
{
  "reference": "string",
  "amount": 1,
  "name": "Base product XY",
  "sku": "WP-12345",
  "net_total_price": 1375,
  "net_unit_price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  }
}

Plan: object

key: string

A unique key to identify a plan

name: string

The name of the plan

description: string

The description of the plan

type: string

The type of the plan

invoice_period: integer

number of month in interval

invoice_interval: string

runtime of plan

price_net: Money

The net price for the plan and the given priode

sort_weight: integer

sort weight of the plan

Example
{
  "key": "warehousing",
  "name": "Warehousing",
  "description": "Warehousing",
  "type": "warehousing",
  "invoice_period": "1",
  "invoice_interval": "month",
  "price_net": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "sort_weight": "1"
}

ProductColor: object

id: integer

Numerical identifier

color: string

Color name

color_hex: string

Hexadecimal RGB color value

is_colored: boolean

Is this a non trivial (b/w) color?

is_heathered: boolean

Indicates if the fabric is heathered

sizes: object[]

Available sizes

Example
{
  "id": 123,
  "color": "Black",
  "color_hex": "#000000",
  "is_colored": true,
  "is_heathered": false,
  "sizes": [
    {
      "id": 67,
      "size": "XL",
      "base_product_sku": "STTU755C0021S",
      "is_onlocalstock": true,
      "is_available": true,
      "is_discontinued": false,
      "sort_position": 1,
      "weight_gram": 10,
      "stock": {
        "local_stock": 100,
        "wholesale_stock": 200,
        "wholesale_delivery_duration": 7,
        "inbound_date": "2024-02-15",
        "replacement_stock": "object"
      },
      "print_dimensions": [
        {
          "processingarea_id": 1,
          "processingarea_name": "string",
          "width_in_mm": 300,
          "height_in_mm": 400,
          "distance_printarea_top_to_collar_mm": 50
        }
      ]
    }
  ]
}

ProductDimensions: object

size: string

Product size name

width: integer

Width in mm

height: integer

Height in mm

Example
{
  "size": "XL",
  "width": 200,
  "height": 500
}

ProductManufacturer: object

id: integer

Numerical identifier

name: string

Manufacturer name

Example
{
  "id": 123,
  "name": "Musterfirma"
}

ProductProcessingArea: object

position_id: integer

Numerical identifier

position_name: string

Name of the printarea

width_in_mm: integer

Width of the printarea in millimeters

height_in_mm: integer

Height of the printarea in millimeters

width: integer

Width of the printarea in pixels

height: integer

Height of the printarea in pixels

printable_area_margin_from_top: integer

Distance between top and processable area top

template_width: integer

Default template width

template_height: integer

Default template height

template: string

Template

Example
{
  "position_id": 1,
  "position_name": "front",
  "width_in_mm": 100,
  "height_in_mm": 100,
  "width": 2000,
  "height": 2000,
  "printable_area_margin_from_top": 0,
  "template_width": 1000,
  "template_height": 1000,
  "template": "string"
}

Product: object

id: integer

Numeric identifier of this product

name: string

Product name

original_name: string

Base product name

shipping_category: integer

Shipping category

category_id: integer

Numerical category identifier

category: string

Category name

short_description: string

Short description

description: string

Detailed description

sizechart_image: string

URL of the product size table image

is_active: boolean

Activation status. Base products may not be available for orders in rare cases.

manufacturer: ProductManufacturer

Manufacturer information

images: object

Product images

colors: object

Color information

processing_areas: object

Available processing areas

price: object

Pricing information

sales_price: object

Pricing information on sales

Example
{
  "id": 1,
  "name": "Base product XY",
  "original_name": "T-Shirt",
  "shipping_category": 1,
  "category_id": 5,
  "category": "Unisex-Shirts",
  "short_description": "string",
  "description": "string",
  "sizechart_image": "string",
  "is_active": "boolean",
  "manufacturer": {
    "id": 123,
    "name": "Musterfirma"
  },
  "images": {
    "data": [
      null
    ]
  },
  "colors": {
    "data": [
      {
        "id": 123,
        "color": "Black",
        "color_hex": "#000000",
        "is_colored": true,
        "is_heathered": false,
        "sizes": [
          {
            "id": 67,
            "size": "XL",
            "base_product_sku": "STTU755C0021S",
            "is_onlocalstock": true,
            "is_available": true,
            "is_discontinued": false,
            "sort_position": 1,
            "weight_gram": 10,
            "stock": {
              "local_stock": 100,
              "wholesale_stock": 200,
              "wholesale_delivery_duration": 7,
              "inbound_date": "2024-02-15",
              "replacement_stock": "object"
            },
            "print_dimensions": [
              {
                "processingarea_id": 1,
                "processingarea_name": "string",
                "width_in_mm": 300,
                "height_in_mm": 400,
                "distance_printarea_top_to_collar_mm": 50
              }
            ]
          }
        ]
      }
    ]
  },
  "processing_areas": {
    "data": [
      {
        "position_id": 1,
        "position_name": "front",
        "width_in_mm": 100,
        "height_in_mm": 100,
        "width": 2000,
        "height": 2000,
        "printable_area_margin_from_top": 0,
        "template_width": 1000,
        "template_height": 1000,
        "template": "string"
      }
    ]
  },
  "price": {
    "data": [
      null
    ]
  },
  "sales_price": {
    "data": [
      null
    ]
  }
}

ProvisionalProduct: object

name: string

Product name

description: string

Short description

colors: ProductColor

List of available colors

price: Money

Net price

base_product: Product

Base product

Example
{
  "name": "Base product XY",
  "description": "string",
  "colors": [
    {
      "id": 123,
      "color": "Black",
      "color_hex": "#000000",
      "is_colored": true,
      "is_heathered": false,
      "sizes": [
        {
          "id": 67,
          "size": "XL",
          "base_product_sku": "STTU755C0021S",
          "is_onlocalstock": true,
          "is_available": true,
          "is_discontinued": false,
          "sort_position": 1,
          "weight_gram": 10,
          "stock": {
            "local_stock": 100,
            "wholesale_stock": 200,
            "wholesale_delivery_duration": 7,
            "inbound_date": "2024-02-15",
            "replacement_stock": "object"
          },
          "print_dimensions": [
            {
              "processingarea_id": 1,
              "processingarea_name": "string",
              "width_in_mm": 300,
              "height_in_mm": 400,
              "distance_printarea_top_to_collar_mm": 50
            }
          ]
        }
      ]
    }
  ],
  "price": {
    "amount": 999,
    "currency_symbol": "€",
    "currency_code": "EUR",
    "currency_factor": 100
  },
  "base_product": {
    "id": 1,
    "name": "Base product XY",
    "original_name": "T-Shirt",
    "shipping_category": 1,
    "category_id": 5,
    "category": "Unisex-Shirts",
    "short_description": "string",
    "description": "string",
    "sizechart_image": "string",
    "is_active": "boolean",
    "manufacturer": {
      "id": 123,
      "name": "Musterfirma"
    },
    "images": {
      "data": [
        null
      ]
    },
    "colors": {
      "data": [
        {
          "id": 123,
          "color": "Black",
          "color_hex": "#000000",
          "is_colored": true,
          "is_heathered": false,
          "sizes": [
            {
              "id": 67,
              "size": "XL",
              "base_product_sku": "STTU755C0021S",
              "is_onlocalstock": true,
              "is_available": true,
              "is_discontinued": false,
              "sort_position": 1,
              "weight_gram": 10,
              "stock": {
                "local_stock": 100,
                "wholesale_stock": 200,
                "wholesale_delivery_duration": 7,
                "inbound_date": "2024-02-15",
                "replacement_stock": "object"
              },
              "print_dimensions": [
                {
                  "processingarea_id": 1,
                  "processingarea_name": "string",
                  "width_in_mm": 300,
                  "height_in_mm": 400,
                  "distance_printarea_top_to_collar_mm": 50
                }
              ]
            }
          ]
        }
      ]
    },
    "processing_areas": {
      "data": [
        {
          "position_id": 1,
          "position_name": "front",
          "width_in_mm": 100,
          "height_in_mm": 100,
          "width": 2000
        }
      ]
    }
  }
}

ShipmentStatus: object

key: string

ShipmentStatus key

status_group: string

ShipmentStatus status group

name: string

Name of the ShipmentStatus

description: string

Description of the ShipmentStatus

Example
{
  "key": "preparation",
  "status_group": "PRE_TRANSIT",
  "name": "Preparation",
  "description": "The package is in preparation"
}

UserBillingMethodReferenceAccount: object

bank_owner: ABC123

Billing method reference

bank_iban: integer

The amount in cents used to auto recharge wallet

bank_bic: string

billing method type

Example
{
  "bank_owner": "ABC123",
  "bank_iban": "10000",
  "bank_bic": "stripe, prepayment, wallet"
}

UserBillingMethod: object

reference: ABC123

Billing method reference

recharge_amount: integer

The amount in cents used to auto recharge wallet

gateway: string

billing method type

last4: string

last 4 digits of credit card

provider: string

credit card provider

exp_month: string

month credit card will expire

exp_year: string

year credit card will expire

is_active: boolean

indicates if billing method is the primary billing method for the user account

Example
{
  "reference": "ABC123",
  "recharge_amount": "10000",
  "gateway": "stripe, prepayment, wallet",
  "last4": "4242",
  "provider": "visa",
  "exp_month": "12",
  "exp_year": "2023",
  "is_active": true
}

UserCreditBalance: object

credit_balance: integer

The credit balance of the user

image_generation: object

Details about the user's daily image generation limit

image_optimizations: object

Details about the user's daily image optimization limit

Example
{
  "credit_balance": 100,
  "image_generation": {
    "daily_limit": 10,
    "remaining": 5
  },
  "image_optimizations": {
    "daily_limit": 10,
    "remaining": 5
  }
}

UserInboundShippingItemStatus: object

id: integer

Status Id

name: string

Status name

description: string

Status description

key: string

Status key

group: string

Status group

Example
{
  "id": 8,
  "name": "Failed",
  "description": "Failed",
  "key": "failed",
  "group": "done"
}

UserInboundShippingItem: object

reference: string

Inbound shipping item reference

amount: integer

Amount of the inbound shipping item

should_store: boolean

Flag indicating if the item should be stored

created_at: string

Timestamp when the inbound shipping item was created

updated_at: string

Timestamp when the inbound shipping item was last updated

warehouse_product_variant: WarehouseProductVariant

warehouse_product_variant

user_packin: UserPackin

user_packin

order_product_item: OrderProductItem

order_product_item

order_warehouse_product_item: OrderWarehouseProductItem

order_warehouse_product_item

rejection_type: rejection_type

rejection_type

status: UserInboundShippingItemStatus

status

Example
{
  "reference": "FC0459",
  "amount": 10,
  "should_store": true,
  "created_at": "2023-03-25T12:34:56",
  "updated_at": "2023-03-25T12:34:56",
  "warehouse_product_variant": {
    "id": "1",
    "reference": "A12345",
    "product_reference": "A12345",
    "name": "Warehouse product variant name",
    "description": "Warehouse product variant description",
    "color_id": "1",
    "size_id": "1",
    "color": "Red",
    "size": "XL",
    "width_cm": 20,
    "height_cm": 20,
    "depth_cm": 30,
    "weight_gram": 500,
    "item_value": 300,
    "net_sales_price": 25,
    "shirtigo_price": 20,
    "min_stock_quantity": 100,
    "needs_box_shipping": true,
    "country_of_origin": "DE",
    "hs_code": "A123123",
    "created_at": "2017-01-01 12:34:56",
    "updated_at": "2017-01-01 12:34:56",
    "deleted_at": "2017-01-01 12:34:56",
    "is_stored": true,
    "is_approved": true,
    "is_rejected": "false",
    "stock_amount": 100
  },
  "user_packin": {
    "reference": "ABC123",
    "name": "Greetings card",
    "type": "packin",
    "position": "seam-left",
    "size_id": "3",
    "color_ids": "['147','157']",
    "weight_gram": "10",
    "width_mm": "100",
    "height_mm": "100",
    "initial_inventory": "1000",
    "inventory": "1000",
    "preview_path": "https://s3.amazon.com/preview.png",
    "is_active": true,
    "stocking_costs": 50,
    "item_costs": 75
  },
  "order_product_item": {
    "reference": "OP-12345678",
    "preview_image_url": "url",
    "status_name": "Print (DTG)",
    "status_key": "dtg",
    "status_description": "Product is being printed.",
    "status_group": "processing",
    "availability": "stock"
  },
  "order_warehouse_product_item": {
    "reference": "string",
    "sku": "WP-12345"
  },
  "status": {
    "id": 8,
    "name": "Failed",
    "description": "Failed",
    "key": "failed",
    "group": "done"
  }
}

UserInboundShippingReason: object

key: string

Reason key

group: string

Reason group

name: string

Localized name

description: string

Localized description

user_action_required: boolean

Indicates if user action is required

item_check_required: boolean

Indicates if item check is required

max_open_days: integer

Maximum number of open days

Example
{
  "key": "no-pickup",
  "group": "shipping-issue",
  "name": "Package not picked up",
  "description": "The order was not collected by the customer.",
  "user_action_required": true,
  "item_check_required": false,
  "max_open_days": 14
}

UserInboundShippingRejectionType: object

id: integer

Rejection type Id

key: string

Rejection type key

name: string

Rejection type name

description: string

Rejection type description

Example
{
  "id": 1,
  "key": "print-damaged",
  "name": "print damaged",
  "description": "The print on this product is damaged."
}

UserInboundShippingSolution:

id: integer (int64)
key: string
name: string
description: string
has_shipping_fee: boolean
can_use_solution: boolean
created_at: string (date-time)
updated_at: string (date-time)
reasons: UserInboundShippingReason

List of reasons

Example
{
  "id": 1,
  "key": "ship-again",
  "name": "Ship again",
  "description": "The order is send to the customer again and the shipping costs are charged to you.",
  "has_shipping_fee": true,
  "can_use_solution": true,
  "created_at": "2023-03-25T12:34:56.789Z",
  "updated_at": "2023-03-25T12:34:56.789Z",
  "reasons": [
    {
      "key": "no-pickup",
      "group": "shipping-issue",
      "name": "Package not picked up",
      "description": "The order was not collected by the customer.",
      "user_action_required": true,
      "item_check_required": false,
      "max_open_days": 14
    }
  ]
}

UserInboundShippingStatus: object

id: integer

User inbound shipping status id

name: string

User inbound shipping statuss name

key: string

User inbound shipping status key

description: string

User inbound shipping status description

Example
{
  "id": "1",
  "name": "Return received",
  "key": "pending",
  "description": "Return received"
}

UserInboundShipping: object

reference: string

Inbound shipping reference

name: string

Inbound shipping name

carrier: string

Carrier for the inbound shipping

tracking_number: string

Tracking number for the inbound shipping

url: string

URL for the inbound shipping details PDF

count: integer

Total number of items in the inbound shipping

created_at: string

Timestamp when the inbound shipping was created

updated_at: string

Timestamp when the inbound shipping was last updated

deleted_at: string

Timestamp when the inbound shipping was deleted (null if not deleted)

shipmentStatus: ShipmentStatus

shipmentStatus

userInboundShippingStatus: UserInboundShippingStatus

userInboundShippingStatus

reason: UserInboundShippingReason

reason

solution: UserInboundShippingSolution

solution

items: UserInboundShippingItem

List of items

order: Order

order

billingOrder: Order

billingOrder

Example
{
  "reference": "ABC123",
  "name": "Sample shipment",
  "carrier": "DHL",
  "tracking_number": "1234567890",
  "url": "https://example.com/inbound/shipment",
  "count": 25,
  "created_at": "2023-03-25T12:34:56",
  "updated_at": "2023-03-25T12:34:56",
  "deleted_at": "2023-03-25T12:34:56",
  "shipmentStatus": {
    "key": "preparation",
    "status_group": "PRE_TRANSIT",
    "name": "Preparation",
    "description": "The package is in preparation"
  },
  "userInboundShippingStatus": {
    "id": "1",
    "name": "Return received",
    "key": "pending",
    "description": "Return received"
  },
  "reason": {
    "key": "no-pickup",
    "group": "shipping-issue",
    "name": "Package not picked up",
    "description": "The order was not collected by the customer.",
    "user_action_required": true,
    "item_check_required": false,
    "max_open_days": 14
  },
  "solution": {
    "id": 1,
    "key": "ship-again",
    "name": "Ship again",
    "description": "The order is send to the customer again and the shipping costs are charged to you.",
    "has_shipping_fee": true,
    "can_use_solution": true,
    "created_at": "2023-03-25T12:34:56.789Z",
    "updated_at": "2023-03-25T12:34:56.789Z",
    "reasons": [
      {
        "key": "no-pickup",
        "group": "shipping-issue",
        "name": "Package not picked up",
        "description": "The order was not collected by the customer.",
        "user_action_required": true,
        "item_check_required": false,
        "max_open_days": 14
      }
    ]
  },
  "items": [
    {
      "reference": "FC0459",
      "amount": 10,
      "should_store": true,
      "created_at": "2023-03-25T12:34:56",
      "updated_at": "2023-03-25T12:34:56",
      "warehouse_product_variant": {
        "id": "1",
        "reference": "A12345",
        "product_reference": "A12345",
        "name": "Warehouse product variant name",
        "description": "Warehouse product variant description",
        "color_id": "1",
        "size_id": "1",
        "color": "Red",
        "size": "XL",
        "width_cm": 20,
        "height_cm": 20,
        "depth_cm": 30,
        "weight_gram": 500,
        "item_value": 300,
        "net_sales_price": 25,
        "shirtigo_price": 20,
        "min_stock_quantity": 100,
        "needs_box_shipping": true,
        "country_of_origin": "DE",
        "hs_code": "A123123",
        "created_at": "2017-01-01 12:34:56",
        "updated_at": "2017-01-01 12:34:56",
        "deleted_at": "2017-01-01 12:34:56",
        "is_stored": true,
        "is_approved": true,
        "is_rejected": "false",
        "stock_amount": 100
      },
      "user_packin": {
        "reference": "ABC123",
        "name": "Greetings card",
        "type": "packin",
        "position": "seam-left",
        "size_id": "3",
        "color_ids": "['147','157']",
        "weight_gram": "10",
        "width_mm": "100",
        "height_mm": "100",
        "initial_inventory": "1000"
      }
    }
  ]
}

UserIntegration: object

id: integer

The internal cockpit id of the used user integration

app: string

Name of the integration application

name: string

The name of the integration, i.e. the shop URL

reference: uuid

Reference of the integration

expires_in: string

Date of expire

image_type: string

Type of image transfered to external shop

image_quality: string

Quality of image transfered to external shop

fulfillment_mode_key: string

The fulfillment mode used when orders are placed via this integration

is_token_revoked: boolean

Flag if the access token has been revoked and needs to be updated

is_pull_orders: boolean

Flag if manually reimporting of orders is enabled.

is_auto_pull_orders: boolean

Flag if automatically reimporting of orders is enabled.

default_first_packin_reference: string

Default first packin added to orders received via this intergrations (optional)

default_second_packin_reference: string

Default second packin added to orders received via this intergrations (optional)

default_hangtag_reference: string

Default hangtag added to all textil products of orders received via this intergrations (optional)

default_imprint_reference: string

Default imprinted added to all tagless textil products of orders received via this intergrations (optional)

default_label_reference: string

Default label added to all textil products of orders received via this intergrations (optional)

default_product_packaging_reference: string

Default packaging used for all textil products of orders received via this intergrations (optional)

default_order_packaging_reference: string

Default packging used for all orders received via this intergrations (optional)

default_sticker_reference: string

Default sticker applied to packaging of orders received via this intergrations (optional)

add_delivery_receipt: boolean

Indicates if delivery receipt is added to orders received via this intergrations

delivery_receipt_note: string

Custom note on delivery receipt

default_delivery_receipt_logo_reference: string

Default delivery receipt logo used for orders received via this intergrations (optional)

delivery_receipt_logo: string

Url to custom logo added to delivery slip for orders received via this intergrations (optional)

use_custom_product_name: boolean

Indicates if custom product name is used on delivery receipt

sticker_logo: string

Url to custom sticker logo for orders received via this intergrations (optional)

is_auto_onhold: boolean

Indicates if order is automatically pushed to production (default = false)

is_refresh_token_expired: boolean

Indicates if the (OAuth-)refresh-token is expired. Currently only used for ebay. (default = false)

Example
{
  "id": 111,
  "app": "shopify",
  "name": "my-cool-shirtstore.myshopify.com",
  "reference": "154e3f69-c081-4e20-8706-d1c7477e15c8",
  "expires_in": "2018-01-01 12:34:56",
  "image_type": "png",
  "image_quality": "high",
  "fulfillment_mode_key": "24h-express",
  "is_token_revoked": true,
  "is_pull_orders": true,
  "is_auto_pull_orders": "true",
  "default_first_packin_reference": "ABC123",
  "default_second_packin_reference": "ABC123",
  "default_hangtag_reference": "ABC123",
  "default_imprint_reference": "ABC123",
  "default_label_reference": "ABC123",
  "default_product_packaging_reference": "ABC123",
  "default_order_packaging_reference": "ABC123",
  "default_sticker_reference": "ABC123",
  "add_delivery_receipt": true,
  "delivery_receipt_note": "Use voucher XYZ and get a 10% discount for your next order",
  "default_delivery_receipt_logo_reference": "ABC123",
  "delivery_receipt_logo": "https://example.com/custom_logo.png",
  "use_custom_product_name": true,
  "sticker_logo": "https://example.com/custom_logo.png",
  "is_auto_onhold": true,
  "is_refresh_token_expired": false
}

UserPackin: object

reference: ABC123

Packin reference

name: string

Packin name

type: string

Packin type (packin or hangtag)

position: string

Position of Label

size_id: integer

Product size ID for which imprint will be applied

color_ids: string

Array of product color ids for which imprint or label will be applied

weight_gram: integer

Weight of one single packin in gram

width_mm: integer

Width of the packin in millimeter

height_mm: integer

Height of the packin in millimeter

initial_inventory: integer

Initial stock level of packin

inventory: integer

Actual stock level of packin

preview_path: string

Path to packin preview

is_active: boolean

Packins receives status is_active, when article is checked and warehoused

stocking_costs: Money

Daily costs for stocking packin

item_costs: Money

Costs for adding one packin to an order

Example
{
  "reference": "ABC123",
  "name": "Greetings card",
  "type": "packin",
  "position": "seam-left",
  "size_id": "3",
  "color_ids": "['147','157']",
  "weight_gram": "10",
  "width_mm": "100",
  "height_mm": "100",
  "initial_inventory": "1000",
  "inventory": "1000",
  "preview_path": "https://s3.amazon.com/preview.png",
  "is_active": true,
  "stocking_costs": 50,
  "item_costs": 75
}

UserPayment: object

reference: string

payment reference

type: string

payment type

status: string

payment status

amount: integer

payment amount

billing_method_reference: string

reference of the associated billing method

is_auto_recharged: boolean

indicates if payment was trigger by user or via auto-recharge

Example
{
  "reference": "UPD7FF829231CB",
  "type": "paypal",
  "status": "paid",
  "amount": "10000",
  "billing_method_reference": "E60C9604",
  "is_auto_recharged": "1"
}

UserReturnPortal: object

name: string

The name of the return portal

reference: string

reference of the return portal

subdomain: string

subdomain of the return portal

url: string

url of the return portal

legal_imprint_url: string

url to the shop imprint

legal_privacy_url: string

url to the privacy policy

is_active: boolean

indicates if return portal is active

accept_complaints_only: boolean

indicates if return portal accepts complaints only and no withdrawals

accept_personalized_items: boolean

indicates if customer can return personalized items

allow_refund_for_personalized_items: boolean

indicates if customer can select refund as solution of persoanlized items or just a exchange

allow_exchange: boolean

Indicates whether a product can be exchanged for another colour or size

withdrawal_period_days: integer

Indicates how many days after shipment a product can be returned

complaint_period_days: integer

Indicates how many days after shipment a product can be complained

mobile_logo_url: string

url of the logo of the mobile viewport

desktop_logo_url: string

url of the logo of the desktop viewport

primary_color_hex: string

hex code for the primary css color

Example
{
  "name": "Best Shirts",
  "reference": "",
  "subdomain": "bestshirts",
  "url": "bestshirts.myreturns.online",
  "legal_imprint_url": "https://www.bestshirts.xyz/imprint",
  "legal_privacy_url": "https://www.bestshirts.xyz/privacy",
  "is_active": "1",
  "accept_complaints_only": "1",
  "accept_personalized_items": "1",
  "allow_refund_for_personalized_items": "1",
  "allow_exchange": "1",
  "withdrawal_period_days": "14",
  "complaint_period_days": "60",
  "mobile_logo_url": "https://www.bestshirts.xyz/mobile_logo.png",
  "desktop_logo_url": "https://www.bestshirts.xyz/desktop_logo.png",
  "primary_color_hex": "000000"
}

UserSubscription: object

name: string

The name of the plan

valid_from: string

The date from which is subscription is valid

valid_until: string

The date until which the subscription is valid

is_canceled: boolean

indicates if subscription was canceled

is_renewed: boolean

indicates if subscription was renewed

is_valid: boolean

indicates if subscription is still valid

Example
{
  "name": "Warehousing",
  "valid_from": "2022-09-01 08:00:00",
  "valid_until": "2022-09-01 08:00:00",
  "is_canceled": "1",
  "is_renewed": "1",
  "is_valid": "1"
}

UserGroup: object

id: integer

Numerical group identifier

type: string

Group name

cockpit_discount: integer

Discount in percent

quantity: integer

Required number of sold products

created_at: string

Timestamp of creation

updated_at: string

Timestamp of last update

Example
{
  "id": 1,
  "type": "premium",
  "cockpit_discount": 20,
  "quantity": 1000,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56"
}

User: object

email: string

Email address

firstname: string

First name(s)

lastname: string

Last name

display_name: string

Display name, e.g. first + last name

user_group: UserGroup
is_business: boolean

Is a business customer

title: string

(Academical) title

company_name: string

Company name

street: string

Street and number, used for billing

postcode: string

ZIP code, used for billing

city: string

City, used for billing

country: string

Country, used for billing

phone: string

Phone nubmer

sender_title: string
sender_company_name: string
sender_firstname: string
sender_lastname: string
sender_street: string
sender_postcode: string
sender_city: string
sender_state: string
sender_country: string
sender_type: string full, company, legacy
fulfillment_key: string

The desired fulfillment mode

is_billing_valid: boolean

Have billing options been filled out?

has_orders: boolean

Does user have orders?

integration_count: number

Number of active integrations

is_auto_onhold: boolean

Indicates if order is automatically pushed to production (default = false)

integrations: UserIntegration

List of integrations (connected applications) for this user

updated_at: string

Timestamp of last update

add_delivery_receipt: boolean

Indicates if delivery receipt is added to orders received via this intergrations

delivery_receipt_note: string

Custom note on delivery receipt

default_delivery_receipt_logo_reference: string

Default delivery receipt logo used for orders placed via dashboard

delivery_receipt_logo: string

Url to custom logo added to delivery slip and shipping lable for orders placed via dashboard

use_custom_product_name: boolean

Indicates if custom product name is used on delivery receipt

default_first_packin_reference: string

Default first packin added to orders placed via dashboard (optional)

default_second_packin_reference: string

Default second packin added to orders placed via dashboard (optional)

default_hangtag_reference: string

Default hangtag added to all textil products of orders placed via dashboard (optional)

sticker_logo: string

Url to custom sticker logo for orders placed via dashboard (optional)

Example
{
  "email": "mustermann@example.com",
  "firstname": "Max",
  "lastname": "Mustermann",
  "display_name": "Max Mustermann",
  "user_group": {
    "id": 1,
    "type": "premium",
    "cockpit_discount": 20,
    "quantity": 1000,
    "created_at": "2017-01-01 12:34:56",
    "updated_at": "2017-01-01 12:34:56"
  },
  "is_business": true,
  "title": "Dr.",
  "company_name": "Shirtigo GmbH",
  "street": "Musterstraße 12",
  "postcode": "12345",
  "city": "Köln",
  "country": "Deutschland",
  "phone": "004930123456",
  "sender_title": "string",
  "sender_company_name": "string",
  "sender_firstname": "string",
  "sender_lastname": "string",
  "sender_street": "string",
  "sender_postcode": "string",
  "sender_city": "string",
  "sender_state": "string",
  "sender_country": "string",
  "sender_type": "string",
  "fulfillment_key": "24h-express",
  "is_billing_valid": true,
  "has_orders": true,
  "integration_count": 2,
  "is_auto_onhold": true,
  "integrations": [
    {
      "id": 111,
      "app": "shopify",
      "name": "my-cool-shirtstore.myshopify.com",
      "reference": "154e3f69-c081-4e20-8706-d1c7477e15c8",
      "expires_in": "2018-01-01 12:34:56",
      "image_type": "png",
      "image_quality": "high",
      "fulfillment_mode_key": "24h-express",
      "is_token_revoked": true,
      "is_pull_orders": true,
      "is_auto_pull_orders": "true",
      "default_first_packin_reference": "ABC123",
      "default_second_packin_reference": "ABC123",
      "default_hangtag_reference": "ABC123",
      "default_imprint_reference": "ABC123",
      "default_label_reference": "ABC123",
      "default_product_packaging_reference": "ABC123",
      "default_order_packaging_reference": "ABC123",
      "default_sticker_reference": "ABC123",
      "add_delivery_receipt": true,
      "delivery_receipt_note": "Use voucher XYZ and get a 10% discount for your next order",
      "default_delivery_receipt_logo_reference": "ABC123",
      "delivery_receipt_logo": "https://example.com/custom_logo.png",
      "use_custom_product_name": true,
      "sticker_logo": "https://example.com/custom_logo.png",
      "is_auto_onhold": true,
      "is_refresh_token_expired": false
    }
  ],
  "updated_at": "2017-01-01 12:34:56",
  "add_delivery_receipt": true,
  "delivery_receipt_note": "Use voucher XYZ and get a 10% discount for your next order",
  "default_delivery_receipt_logo_reference": "ABC123",
  "delivery_receipt_logo": "https://example.com/custom_logo.png",
  "use_custom_product_name": true,
  "default_first_packin_reference": "ABC123",
  "default_second_packin_reference": "ABC123",
  "default_hangtag_reference": "ABC123",
  "sticker_logo": "https://example.com/custom_logo.png"
}

Webhook: object

id: string

Unique identifier for the User Webhook

user_webhook_type_key: string

Key for the associated User Webhook Type

url: string

URL for the User Webhook

secret: string

Secret for the User Webhook

signature_header: string

Signature header for the User Webhook

is_active: boolean

Indicates if the User Webhook is active

created_at: string

Creation timestamp of the User Webhook

updated_at: string

Update timestamp of the User Webhook

Example
{
  "id": "ABC123DEF5",
  "user_webhook_type_key": "Order.created",
  "url": "https://example.com/webhook",
  "secret": "mysecretkey",
  "signature_header": "signature",
  "is_active": true,
  "created_at": "2023-01-01T00:00:00",
  "updated_at": "2023-01-02T00:00:00"
}

WarehouseInboundShipment:

id: 1

id

reference: string

Reference

name: string

Name of the Warehouse inbound shipment

carrier: string

Carrier's name

tracking_number: string

Shipment tracking number

url: string

Inbound shipment URL

count: string

Count of the items in the shipment

created_at: string

Timestamp when the record was created

updated_at: string

Timestamp when the record was updated

deleted_at: string

Timestamp when the record was deleted

Example
{
  "id": "1",
  "reference": "A1234567",
  "name": "Warehouse inbound shipment",
  "carrier": "DHL",
  "tracking_number": "AA123345567BB",
  "url": "https://dhl.com/tracking",
  "count": 5,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56",
  "deleted_at": "2017-01-01 12:34:56"
}

WarehouseProduct:

id: 1

id

reference: string

Reference

name: string

Name of the Warehouse product

description: string

Description of the Warehouse product

hs_code: string

HS code of the item

country_of_origin: string

The name the country of origin

color_id: string

ID of the color of the item

item_value: integer

Value of the item

net_sales_price: integer

Net sales price of the item

width_cm: integer

Width of the item in cm

height_cm: integer

Height of the item in cm

depth_cm: integer

Depth of the item in cm

weight_gram: integer

Weight of the item in gramm

needs_box_shipping: boolean

Boolean if the item needs extra package for shipping

min_stock_quantity: integer

Minimum stock quantity of the item

created_at: string

Timestamp when the record was created

updated_at: string

Timestamp when the record was updated

deleted_at: string

Timestamp when the record was deleted

Example
{
  "id": "1",
  "reference": "A12345",
  "name": "Warehouse product name",
  "description": "Warehouse product description",
  "hs_code": "A123123",
  "country_of_origin": "DE",
  "color_id": "1",
  "item_value": 300,
  "net_sales_price": 25,
  "width_cm": 20,
  "height_cm": 20,
  "depth_cm": 30,
  "weight_gram": 500,
  "needs_box_shipping": true,
  "min_stock_quantity": 100,
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56",
  "deleted_at": "2017-01-01 12:34:56"
}

WarehouseProductVariant:

id: 1

id

reference: string

Reference

product_reference: string

Warehouse Product reference

name: string

Name of the Warehouse product variant

description: string

Description of the Warehouse product variant

color_id: string

ID of the color of the item

size_id: string

ID of the size of the item

color: string

Name of the color of the item

size: string

Name of the size of the item

width_cm: integer

Width of the item in cm

height_cm: integer

Height of the item in cm

depth_cm: integer

Depth of the item in cm

weight_gram: integer

Weight of the item in gramm

item_value: integer

Value of the item

net_sales_price: integer

Net sales price of the item

shirtigo_price: integer

Shirtigo sales price of the item

min_stock_quantity: integer

Minimum stock quantity of the item

needs_box_shipping: boolean

Boolean if the item needs extra package for shipping

country_of_origin: string

The name the country of origin

hs_code: string

HS code of the item

created_at: string

Timestamp when the record was created

updated_at: string

Timestamp when the record was updated

deleted_at: string

Timestamp when the record was deleted

is_stored: boolean

Boolean if the item is stored

is_approved: boolean

Boolean if the item is approved

is_rejected: boolean

Boolean if the item is rejected to store

stock_amount: integer

Current stock amount of the item

Example
{
  "id": "1",
  "reference": "A12345",
  "product_reference": "A12345",
  "name": "Warehouse product variant name",
  "description": "Warehouse product variant description",
  "color_id": "1",
  "size_id": "1",
  "color": "Red",
  "size": "XL",
  "width_cm": 20,
  "height_cm": 20,
  "depth_cm": 30,
  "weight_gram": 500,
  "item_value": 300,
  "net_sales_price": 25,
  "shirtigo_price": 20,
  "min_stock_quantity": 100,
  "needs_box_shipping": true,
  "country_of_origin": "DE",
  "hs_code": "A123123",
  "created_at": "2017-01-01 12:34:56",
  "updated_at": "2017-01-01 12:34:56",
  "deleted_at": "2017-01-01 12:34:56",
  "is_stored": true,
  "is_approved": true,
  "is_rejected": "false",
  "stock_amount": 100
}

Money: object

amount: integer

Price in cents

currency_symbol: string

Currency symbol

currency_code: string

Three letter ISO 4217 code

currency_factor: integer

Number of cents in one unit of currency

Example
{
  "amount": 999,
  "currency_symbol": "€",
  "currency_code": "EUR",
  "currency_factor": 100
}

MoneyVatInclude:

vat_rate: integer

Value added tax (VAT) rate in percent as an integer

Example
{
  "vat_rate": 19
}

MoneyWithVat: object

Example
{
  "vat_rate": 19,
  "amount": 999,
  "currency_symbol": "€",
  "currency_code": "EUR",
  "currency_factor": 100
}

OAuthServerException: object

error: string

Machine readable error type.

message: string

Human readable error message.

hint: string

A helper hint.

Example
{
  "error": "string",
  "message": "string",
  "hint": "string"
}

Pagination: object

Pagination information

total: integer

Total number of items

count: integer

Number of items on current page

per_page: integer

Default number of items per page

current_page: integer

Index of current page

total_pages: integer

Total number of pages

links: object

URLs of adjacent pages

Example
{
  "total": 32,
  "count": 10,
  "per_page": 10,
  "current_page": 2,
  "total_pages": 4,
  "links": {
    "previous": "string",
    "next": "string"
  }
}