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.de/api
Request Content-Types: application/json
Response Content-Types: application/json
Schemes: https
Version: 1.0.0

Authentication

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.

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

cockpit_apikey

in
header
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

oauth

This section contains endpoints related to the OAuth2 implementation.

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)
{
  "refresh_token": "tYI1iHjH7lGBLlBi+VD6uYYCn3pZo8Do/BSmcgzwTOuZ+f7v/z...",
  "token_type": "Bearer",
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjVjZj...",
  "expires_in": 31536000
}
Response Example (400 Bad Request)
{
  "message": "string",
  "error": "string",
  "hint": "string"
}
Response Example (401 Unauthorized)
{
  "message": "string",
  "error": "string",
  "hint": "string"
}

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).

user

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

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

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

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_title": "Erstattung",
      "vat_rate": 19,
      "vat_amount": {
        "currency_factor": 100,
        "amount": 999,
        "currency_code": "EUR",
        "currency_symbol": "€"
      },
      "payment_reference": "Kreditkarte",
      "net_amount": {
        "currency_factor": 100,
        "amount": 999,
        "currency_code": "EUR",
        "currency_symbol": "€"
      },
      "status": "invoice",
      "created_at": "2017-01-01 12:34:56",
      "gross_amount": {
        "currency_factor": 100,
        "amount": 999,
        "currency_code": "EUR",
        "currency_symbol": "€"
      },
      "order": {
        "sender": {
          "city": "Köln",
          "title": "Dr.",
          "company": "Shirtigo GmbH",
          "lastname": "Mustermann",
          "postcode": "12345",
          "country": "DE",
          "firstname": "Max",
          "street": "Musterstraße 12"
        },
        "vat_rate": 19,
        "vat_amount": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        },
        "updated_at": "2017-01-01 12:34:56",
        "reference": "ABCDXY1",
        "delivery_receipt_logo_reference": "A456HJ",
        "delivery": {
          "city": "Köln",
          "title": "Dr.",
          "company": "Shirtigo GmbH",
          "lastname": "Mustermann",
          "postcode": "12345",
          "country": "DE",
          "firstname": "Max",
          "street": "Musterstraße 12"
        },
        "payments": {
          "data": [
            {
              "updated_at": "2017-01-01 12:34:56",
              "id": "d1364568-4b15-4706-89f1-2452efe1261d",
              "vat_rate": 19,
              "type": "creditcard",
              "vat_amount": {
                "currency_factor": 100,
                "amount": 999,
                "currency_code": "EUR",
                "currency_symbol": "€"
              },
              "net_amount": {
                "currency_factor": 100,
                "amount": 999,
                "currency_code": "EUR",
                "currency_symbol": "€"
              },
              "status_details": "An error occured.",
              "status": "paid",
              "gross_amount": {
                "currency_factor": 100,
                "amount": 999,
                "currency_code": "EUR",
                "currency_symbol": "€"
              }
            }
          ]
        },
        "bill": {
          "city": "Köln",
          "title": "Dr.",
          "company": "Shirtigo GmbH",
          "lastname": "Mustermann",
          "postcode": "12345",
          "country": "DE",
          "firstname": "Max",
          "street": "Musterstraße 12"
        },
        "net_price": {}
      }
    }
  ]
}

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

Update user advanced

POST /user/advanced

Update advanced user settings.

default_second_packin_reference: string

Update user advanced

Update advanced user settings.

default_imprint_reference: 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.

add_delivery_receipt: boolean

Update user advanced

Update advanced user settings.

default_hangtag_reference: string

Update user advanced

Update advanced user settings.

customs_email: string

Update user advanced

Update advanced user settings.

use_custom_product_name: boolean

Update user advanced

Update advanced user settings.

default_order_packaging_reference: string

Update user advanced

Update advanced user settings.

use_tracking_world: boolean

Update user advanced

Update advanced user settings.

accounting_email: string

Update user advanced

Update advanced user settings.

locale: string

Update user advanced

Update advanced user settings.

default_label_reference: string

Update user advanced

Update advanced user settings.

use_tracking_eu: boolean

Update user advanced

Update advanced user settings.

delivery_receipt_note: string

Update user advanced

Update advanced user settings.

use_tracking_de: boolean

Update user advanced

Update advanced user settings.

default_first_packin_reference: string

Update user advanced

Update advanced user settings.

default_product_packaging_reference: string

Update user advanced

Update advanced user settings.

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

User information updated.

422 Unprocessable Entity

Validation of inputs failed.

Get balance for current user

POST user/balance

Return a Money object for the users current balance

200 OK

Success

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

Update sender address

POST /user/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_city: string (up to 30 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_country: string

Update 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.

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

User information updated.

422 Unprocessable Entity

Validation of inputs failed.

Update user information

POST /user

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

city: 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.

lastname: 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.

company_name: 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.

firstname: 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.

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

User information updated.

422 Unprocessable Entity

Validation of inputs failed.

Get user information

GET /user

Retrieve information about the currently authenticated user.

200 OK

Success

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

design

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

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)

Request Example
{
  "data": "string",
  "original_filename": "string"
}
200 OK

Success, URL has been processed

422 Unprocessable Entity

Error, URL / image file does not meet requirements

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

Update design

PUT /designs/{design-reference}

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

name: string

Update design

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

design-reference

Unique design identifier

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

Success

404 Not Found

Design not found

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

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)
{
  "width": 5000,
  "preview": "https://example.com/product_prev.png",
  "name": "My cool design",
  "updated_at": "2017-01-01 12:34:56",
  "palette": [
    "A20061",
    "FFBC42",
    "1C838A",
    "021618",
    "A3AAAB"
  ],
  "original_file": "https://example.com/product.png",
  "height": 3000,
  "created_at": "2017-01-01 12:34:56",
  "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "colors": 5,
  "is_processed": true,
  "filename": "ABCDE",
  "complementary_color": "",
  "is_dark": true,
  "filetype": "png"
}

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.

file

Design file

type
file
in
formData
200 OK

Success, all file has been processed

422 Unprocessable Entity

Error, image file does not meet requirements

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

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

Request Example
{
  "url": "string"
}
200 OK

Success, URL has been processed

422 Unprocessable Entity

Error, URL / image file does not meet requirements

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

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": [
    {
      "width": 5000,
      "preview": "https://example.com/product_prev.png",
      "name": "My cool design",
      "updated_at": "2017-01-01 12:34:56",
      "palette": [
        "A20061",
        "FFBC42",
        "1C838A",
        "021618",
        "A3AAAB"
      ],
      "original_file": "https://example.com/product.png",
      "height": 3000,
      "created_at": "2017-01-01 12:34:56",
      "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
      "colors": 5,
      "is_processed": true,
      "filename": "ABCDE",
      "complementary_color": "",
      "is_dark": true,
      "filetype": "png"
    }
  ]
}

product

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

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

Update product

PUT /products/{product-id}

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

colors: integer[]

List of color ids

price: integer

Gross product price in Euro-cents

delete_unmentioned_colors: bool

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

description: string

Short description

sort_position: integer

Set a sort position for this product within its project

custom_name: string

Product name

product-id

Numerical product identifier

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

Success

404 Not Found

Product not found

Response Example (200 OK)
{
  "id": 123,
  "is_rendered": true,
  "is_available": true,
  "active_integration_syncs": [
    {
      "integration_name": "shopify",
      "integration_product_id": "9286211826",
      "is_syncing": true,
      "updated_at": "2017-01-01 12:34:56",
      "integration_id": 111,
      "error": "Invalid or missing auth.",
      "in_queue": true,
      "is_successful": true
    }
  ],
  "base_product": {
    "id": 1,
    "original_name": "T-Shirt",
    "is_active": "boolean",
    "name": "Base product XY",
    "short_description": "string",
    "shipping_category": 1,
    "images": {
      "data": [
        {
          "sort_position": 1,
          "url": "https://www.example.com/image.jpg"
        }
      ]
    },
    "sales_price": {
      "data": [
        {
          "type": "generic",
          "price": {
            "currency_factor": 100,
            "amount": 999,
            "currency_code": "EUR",
            "currency_symbol": "€"
          }
        }
      ]
    },
    "colors": {
      "data": [
        {
          "is_colored": true,
          "id": 123,
          "color_hex": "#000000",
          "sizes": [
            {
              "is_onlocalstock": true,
              "id": 67,
              "size": "XL",
              "is_available": true,
              "sort_position": 1
            }
          ],
          "color": "Black"
        }
      ]
    },
    "processing_areas": {
      "data": [
        {
          "width": 2000,
          "template": "string",
          "template_height": 1000,
          "position_name": "front",
          "template_width": 1000,
          "position_id": 1,
          "height_in_mm": 100,
          "printable_area_margin_from_top": 0,
          "height": 2000,
          "width_in_mm": 100
        }
      ]
    },
    "price": {
      "data": [
        {
          "type": "generic",
          "price": {
            "currency_factor": 100,
            "amount": 999,
            "currency_code": "EUR",
            "currency_symbol": "€"
          }
        }
      ]
    },
    "description": "string",
    "category_id": 5,
    "category": "Unisex-Shirts",
    "sizechart_image": "string",
    "manufacturer": {
      "id": 123,
      "name": "Musterfirma"
    }
  },
  "images": [
    {
      "color": "Red",
      "area": "front",
      "urls": {
        "small": "http://www.example.com/my-orders/small.png",
        "large": "http://www.example.com/my-orders/large.png"
      }
    }
  ],
  "sort_position": 0,
  "custom_name": "My cool product",
  "has_express": false
}

Get product

GET /products/{product-id}

Retrieve information on a single product.

product-id

Numerical product identifier

type
integer
in
path

Success

404 Not Found

Product not found

Response Example (200 OK)
{
  "id": 123,
  "is_rendered": true,
  "is_available": true,
  "active_integration_syncs": [
    {
      "integration_name": "shopify",
      "integration_product_id": "9286211826",
      "is_syncing": true,
      "updated_at": "2017-01-01 12:34:56",
      "integration_id": 111,
      "error": "Invalid or missing auth.",
      "in_queue": true,
      "is_successful": true
    }
  ],
  "base_product": {
    "id": 1,
    "original_name": "T-Shirt",
    "is_active": "boolean",
    "name": "Base product XY",
    "short_description": "string",
    "shipping_category": 1,
    "images": {
      "data": [
        {
          "sort_position": 1,
          "url": "https://www.example.com/image.jpg"
        }
      ]
    },
    "sales_price": {
      "data": [
        {
          "type": "generic",
          "price": {
            "currency_factor": 100,
            "amount": 999,
            "currency_code": "EUR",
            "currency_symbol": "€"
          }
        }
      ]
    },
    "colors": {
      "data": [
        {
          "is_colored": true,
          "id": 123,
          "color_hex": "#000000",
          "sizes": [
            {
              "is_onlocalstock": true,
              "id": 67,
              "size": "XL",
              "is_available": true,
              "sort_position": 1
            }
          ],
          "color": "Black"
        }
      ]
    },
    "processing_areas": {
      "data": [
        {
          "width": 2000,
          "template": "string",
          "template_height": 1000,
          "position_name": "front",
          "template_width": 1000,
          "position_id": 1,
          "height_in_mm": 100,
          "printable_area_margin_from_top": 0,
          "height": 2000,
          "width_in_mm": 100
        }
      ]
    },
    "price": {
      "data": [
        {
          "type": "generic",
          "price": {
            "currency_factor": 100,
            "amount": 999,
            "currency_code": "EUR",
            "currency_symbol": "€"
          }
        }
      ]
    },
    "description": "string",
    "category_id": 5,
    "category": "Unisex-Shirts",
    "sizechart_image": "string",
    "manufacturer": {
      "id": 123,
      "name": "Musterfirma"
    }
  },
  "images": [
    {
      "color": "Red",
      "area": "front",
      "urls": {
        "small": "http://www.example.com/my-orders/small.png",
        "large": "http://www.example.com/my-orders/large.png"
      }
    }
  ],
  "sort_position": 0,
  "custom_name": "My cool product",
  "has_express": false
}

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

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": [
    {
      "processingmethod": "dtg",
      "offset_top": 50,
      "processingposition": "chest-center",
      "processingarea_type": "front",
      "colors": [
        {
          "sortPosition": 1,
          "price": 2195,
          "colorId": 608,
          "referenceColorId": 2195
        }
      ],
      "force_position": "false",
      "width": 200,
      "offset_center": 0,
      "is_customizable": "false",
      "design_reference": "310ef229-2254-4f4f-9041-a8e02674ff36"
    }
  ]
}
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,
      "is_rendered": true,
      "is_available": true,
      "active_integration_syncs": [
        {
          "integration_name": "shopify",
          "integration_product_id": "9286211826",
          "is_syncing": true,
          "updated_at": "2017-01-01 12:34:56",
          "integration_id": 111,
          "error": "Invalid or missing auth.",
          "in_queue": true,
          "is_successful": true
        }
      ],
      "base_product": {
        "id": 1,
        "original_name": "T-Shirt",
        "is_active": "boolean",
        "name": "Base product XY",
        "short_description": "string",
        "shipping_category": 1,
        "images": {
          "data": [
            {
              "sort_position": 1,
              "url": "https://www.example.com/image.jpg"
            }
          ]
        },
        "sales_price": {
          "data": [
            {
              "type": "generic",
              "price": {
                "currency_factor": 100,
                "amount": 999,
                "currency_code": "EUR",
                "currency_symbol": "€"
              }
            }
          ]
        },
        "colors": {
          "data": [
            {
              "is_colored": true,
              "id": 123,
              "color_hex": "#000000",
              "sizes": [
                {
                  "is_onlocalstock": true,
                  "id": 67,
                  "size": "XL",
                  "is_available": true,
                  "sort_position": 1
                }
              ],
              "color": "Black"
            }
          ]
        },
        "processing_areas": {
          "data": [
            {
              "width": 2000,
              "template": "string",
              "template_height": 1000,
              "position_name": "front",
              "template_width": 1000,
              "position_id": 1,
              "height_in_mm": 100,
              "printable_area_margin_from_top": 0,
              "height": 2000,
              "width_in_mm": 100
            }
          ]
        },
        "price": {
          "data": [
            {
              "type": "generic",
              "price": {
                "currency_factor": 100,
                "amount": 999,
                "currency_code": "EUR",
                "currency_symbol": "€"
              }
            }
          ]
        },
        "description": "string",
        "category_id": 5,
        "category": "Unisex-Shirts",
        "sizechart_image": "string",
        "manufacturer": {
          "id": 123,
          "name": "Musterfirma"
        }
      },
      "images": [
        {
          "color": "Red",
          "area": "front",
          "urls": {
            "small": "http://www.example.com/my-orders/small.png",
            "large": "http://www.example.com/my-orders/large.png"
          }
        }
      ],
      "sort_position": 0
    }
  ]
}

Get all products

GET /products
finished

Only return products where rendering is finished.

type
integer
in
query
200 OK

Success

Response Example (200 OK)
{
  "data": [
    {
      "id": 123,
      "is_rendered": true,
      "is_available": true,
      "active_integration_syncs": [
        {
          "integration_name": "shopify",
          "integration_product_id": "9286211826",
          "is_syncing": true,
          "updated_at": "2017-01-01 12:34:56",
          "integration_id": 111,
          "error": "Invalid or missing auth.",
          "in_queue": true,
          "is_successful": true
        }
      ],
      "base_product": {
        "id": 1,
        "original_name": "T-Shirt",
        "is_active": "boolean",
        "name": "Base product XY",
        "short_description": "string",
        "shipping_category": 1,
        "images": {
          "data": [
            {
              "sort_position": 1,
              "url": "https://www.example.com/image.jpg"
            }
          ]
        },
        "sales_price": {
          "data": [
            {
              "type": "generic",
              "price": {
                "currency_factor": 100,
                "amount": 999,
                "currency_code": "EUR",
                "currency_symbol": "€"
              }
            }
          ]
        },
        "colors": {
          "data": [
            {
              "is_colored": true,
              "id": 123,
              "color_hex": "#000000",
              "sizes": [
                {
                  "is_onlocalstock": true,
                  "id": 67,
                  "size": "XL",
                  "is_available": true,
                  "sort_position": 1
                }
              ],
              "color": "Black"
            }
          ]
        },
        "processing_areas": {
          "data": [
            {
              "width": 2000,
              "template": "string",
              "template_height": 1000,
              "position_name": "front",
              "template_width": 1000,
              "position_id": 1,
              "height_in_mm": 100,
              "printable_area_margin_from_top": 0,
              "height": 2000,
              "width_in_mm": 100
            }
          ]
        },
        "price": {
          "data": [
            {
              "type": "generic",
              "price": {
                "currency_factor": 100,
                "amount": 999,
                "currency_code": "EUR",
                "currency_symbol": "€"
              }
            }
          ]
        },
        "description": "string",
        "category_id": 5,
        "category": "Unisex-Shirts",
        "sizechart_image": "string",
        "manufacturer": {
          "id": 123,
          "name": "Musterfirma"
        }
      },
      "images": [
        {
          "color": "Red",
          "area": "front",
          "urls": {
            "small": "http://www.example.com/my-orders/small.png",
            "large": "http://www.example.com/my-orders/large.png"
          }
        }
      ],
      "sort_position": 0
    }
  ]
}

DEPRECATED: Create provisional product

POST /products/provisional/{base_product_id}

This endpoint is deprecated. Use the customized-product endpoint instead. (Retrieve information for a draft product.)

base_product_id

Identifier of desired base product

type
integer
in
path

Success

Response Example (200 OK)
{
  "base_product": {
    "id": 1,
    "original_name": "T-Shirt",
    "is_active": "boolean",
    "name": "Base product XY",
    "short_description": "string",
    "shipping_category": 1,
    "images": {
      "data": [
        {
          "sort_position": 1,
          "url": "https://www.example.com/image.jpg"
        }
      ]
    },
    "sales_price": {
      "data": [
        {
          "type": "generic",
          "price": {
            "currency_factor": 100,
            "amount": 999,
            "currency_code": "EUR",
            "currency_symbol": "€"
          }
        }
      ]
    },
    "colors": {
      "data": [
        {
          "is_colored": true,
          "id": 123,
          "color_hex": "#000000",
          "sizes": [
            {
              "is_onlocalstock": true,
              "id": 67,
              "size": "XL",
              "is_available": true,
              "sort_position": 1
            }
          ],
          "color": "Black"
        }
      ]
    },
    "processing_areas": {
      "data": [
        {
          "width": 2000,
          "template": "string",
          "template_height": 1000,
          "position_name": "front",
          "template_width": 1000,
          "position_id": 1,
          "height_in_mm": 100,
          "printable_area_margin_from_top": 0,
          "height": 2000,
          "width_in_mm": 100
        }
      ]
    },
    "price": {
      "data": [
        {
          "type": "generic",
          "price": {
            "currency_factor": 100,
            "amount": 999,
            "currency_code": "EUR",
            "currency_symbol": "€"
          }
        }
      ]
    },
    "description": "string",
    "category_id": 5,
    "category": "Unisex-Shirts",
    "sizechart_image": "string",
    "manufacturer": {
      "id": 123,
      "name": "Musterfirma"
    }
  },
  "description": "string",
  "name": "Base product XY",
  "price": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "colors": [
    {
      "is_colored": true,
      "id": 123,
      "color_hex": "#000000",
      "sizes": [
        {
          "is_onlocalstock": true,
          "id": 67,
          "size": "XL",
          "is_available": true,
          "sort_position": 1
        }
      ],
      "color": "Black"
    }
  ]
}

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

base_product_id: integer

Identifier of desired base product

processings: object[]

List of processings to apply

project_id: string

Identifier of existing project

Request Example
{
  "base_product_id": 235,
  "processings": [
    {
      "processingmethod": "dtg",
      "offset_top": 50,
      "processingposition": "chest-center",
      "processingarea_type": "front",
      "colors": [
        {
          "sortPosition": 1,
          "colorId": 608,
          "price": 2195
        }
      ],
      "force_position": "false",
      "width": 200,
      "design": "310ef229-2254-4f4f-9041-a8e02674ff36",
      "is_customizable": "false",
      "offset_center": 0
    }
  ],
  "project_id": "CP94791DFD28"
}
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,
      "is_rendered": true,
      "is_available": true,
      "active_integration_syncs": [
        {
          "integration_name": "shopify",
          "integration_product_id": "9286211826",
          "is_syncing": true,
          "updated_at": "2017-01-01 12:34:56",
          "integration_id": 111,
          "error": "Invalid or missing auth.",
          "in_queue": true,
          "is_successful": true
        }
      ],
      "base_product": {
        "id": 1,
        "original_name": "T-Shirt",
        "is_active": "boolean",
        "name": "Base product XY",
        "short_description": "string",
        "shipping_category": 1,
        "images": {
          "data": [
            {
              "sort_position": 1,
              "url": "https://www.example.com/image.jpg"
            }
          ]
        },
        "sales_price": {
          "data": [
            {
              "type": "generic",
              "price": {
                "currency_factor": 100,
                "amount": 999,
                "currency_code": "EUR",
                "currency_symbol": "€"
              }
            }
          ]
        },
        "colors": {
          "data": [
            {
              "is_colored": true,
              "id": 123,
              "color_hex": "#000000",
              "sizes": [
                {
                  "is_onlocalstock": true,
                  "id": 67,
                  "size": "XL",
                  "is_available": true,
                  "sort_position": 1
                }
              ],
              "color": "Black"
            }
          ]
        },
        "processing_areas": {
          "data": [
            {
              "width": 2000,
              "template": "string",
              "template_height": 1000,
              "position_name": "front",
              "template_width": 1000,
              "position_id": 1,
              "height_in_mm": 100,
              "printable_area_margin_from_top": 0,
              "height": 2000,
              "width_in_mm": 100
            }
          ]
        },
        "price": {
          "data": [
            {
              "type": "generic",
              "price": {
                "currency_factor": 100,
                "amount": 999,
                "currency_code": "EUR",
                "currency_symbol": "€"
              }
            }
          ]
        },
        "description": "string",
        "category_id": 5,
        "category": "Unisex-Shirts",
        "sizechart_image": "string",
        "manufacturer": {
          "id": 123,
          "name": "Musterfirma"
        }
      },
      "images": [
        {
          "color": "Red",
          "area": "front",
          "urls": {
            "small": "http://www.example.com/my-orders/small.png",
            "large": "http://www.example.com/my-orders/large.png"
          }
        }
      ],
      "sort_position": 0
    }
  ]
}

baseProduct

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

Get base product

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

Retrieve information on a single base product.

base-product-id

Numerical base product identifier

type
integer
in
path
200 OK

Success

404 Not Found

Product not found

Response Example (200 OK)
{
  "id": 1,
  "original_name": "T-Shirt",
  "is_active": "boolean",
  "name": "Base product XY",
  "short_description": "string",
  "shipping_category": 1,
  "images": {
    "data": [
      {
        "sort_position": 1,
        "url": "https://www.example.com/image.jpg"
      }
    ]
  },
  "sales_price": {
    "data": [
      {
        "type": "generic",
        "price": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        }
      }
    ]
  },
  "colors": {
    "data": [
      {
        "is_colored": true,
        "id": 123,
        "color_hex": "#000000",
        "sizes": [
          {
            "is_onlocalstock": true,
            "id": 67,
            "size": "XL",
            "is_available": true,
            "sort_position": 1
          }
        ],
        "color": "Black"
      }
    ]
  },
  "processing_areas": {
    "data": [
      {
        "width": 2000,
        "template": "string",
        "template_height": 1000,
        "position_name": "front",
        "template_width": 1000,
        "position_id": 1,
        "height_in_mm": 100,
        "printable_area_margin_from_top": 0,
        "height": 2000,
        "width_in_mm": 100
      }
    ]
  },
  "price": {
    "data": [
      {
        "type": "generic",
        "price": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        }
      }
    ]
  },
  "description": "string",
  "category_id": 5,
  "category": "Unisex-Shirts",
  "sizechart_image": "string",
  "manufacturer": {
    "id": 123,
    "name": "Musterfirma"
  }
}

List available categories

GET /base-categories
200 OK

Success

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

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,
      "original_name": "T-Shirt",
      "is_active": "boolean",
      "name": "Base product XY",
      "short_description": "string",
      "shipping_category": 1,
      "images": {
        "data": [
          {
            "sort_position": 1,
            "url": "https://www.example.com/image.jpg"
          }
        ]
      },
      "sales_price": {
        "data": [
          {
            "type": "generic",
            "price": {
              "currency_factor": 100,
              "amount": 999,
              "currency_code": "EUR",
              "currency_symbol": "€"
            }
          }
        ]
      },
      "colors": {
        "data": [
          {
            "is_colored": true,
            "id": 123,
            "color_hex": "#000000",
            "sizes": [
              {
                "is_onlocalstock": true,
                "id": 67,
                "size": "XL",
                "is_available": true,
                "sort_position": 1
              }
            ],
            "color": "Black"
          }
        ]
      },
      "processing_areas": {
        "data": [
          {
            "width": 2000,
            "template": "string",
            "template_height": 1000,
            "position_name": "front",
            "template_width": 1000,
            "position_id": 1,
            "height_in_mm": 100,
            "printable_area_margin_from_top": 0,
            "height": 2000,
            "width_in_mm": 100
          }
        ]
      },
      "price": {
        "data": [
          {
            "type": "generic",
            "price": {
              "currency_factor": 100,
              "amount": 999,
              "currency_code": "EUR",
              "currency_symbol": "€"
            }
          }
        ]
      },
      "description": "string",
      "category_id": 5,
      "category": "Unisex-Shirts",
      "sizechart_image": "string",
      "manufacturer": {
        "id": 123,
        "name": "Musterfirma"
      }
    }
  ]
}

project

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

DEPRECATED: Add processing

POST /projects/{project-reference}/processings

This endpoint is deprecated. Use the customized-product endpoint instead. (Add processing information to a single campaign.)

undefined
project-reference

Unique project identifier

type
string
in
path
Request Example
{
  "method": "print",
  "offset_top": 50,
  "position": "center",
  "width": 200,
  "design": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "area": "front",
  "offset_center": 0
}
204 No Content

Success

404 Not Found

Project not found

DEPRECATED: Update processing

PUT /projects/{project-reference}/processings/{area}/{position}

This endpoint is deprecated. Use the customized-product endpoint instead. (Update processing information on a single campaign.)

undefined
project-reference

Unique project identifier

type
string
in
path
area

Processing site to remove

type
string
in
path
position

Processing position to remove

type
string
in
path
Request Example
{
  "method": "print",
  "offset_top": 50,
  "position": "center",
  "width": 200,
  "design": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "area": "front",
  "offset_center": 0
}
204 No Content

Success

404 Not Found

Project not found

cockpit_apikey
cockpit_oauth write-campaign

DEPRECATED: Remove processing

DELETE /projects/{project-reference}/processings/{area}/{position}

This endpoint is deprecated. Use the customized-product endpoint instead. (Remove processing from specified processing area.)

project-reference

Unique project identifier

type
string
in
path
area

Processing site to remove

type
string
in
path
position

Processing position to remove

type
string
in
path
204 No Content

Success

422 Unprocessable Entity

Campaign or processing not found

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

DEPRECATED: Create product

POST /products

This endpoint is deprecated. Use the customized-product endpoint instead. (Add a product to a project from the catalog of available base products.)

colors: integer[]

List of colors ids

project_id: string

Identifier of existing project

price: integer

Price in Euro-cents

sort_position: integer

Set a sort position for this product within its project

custom_name: string

Set a custom name for this product, will be filled with a generated placeholder of the form '{project_name} - {product_name}' if not set

base_product_id: integer

Identifier of desired base product

Request Example
{
  "colors": [
    "212,239"
  ],
  "project_id": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "price": "1999",
  "sort_position": "1",
  "custom_name": "My fancy product name",
  "base_product_id": 25
}
200 OK

Success

404 Not Found

Project or base product not found

422 Unprocessable Entity

Requirements not fulfilled

Response Example (200 OK)
{
  "data": [
    {
      "id": 123,
      "is_rendered": true,
      "is_available": true,
      "active_integration_syncs": [
        {
          "integration_name": "shopify",
          "integration_product_id": "9286211826",
          "is_syncing": true,
          "updated_at": "2017-01-01 12:34:56",
          "integration_id": 111,
          "error": "Invalid or missing auth.",
          "in_queue": true,
          "is_successful": true
        }
      ],
      "base_product": {
        "id": 1,
        "original_name": "T-Shirt",
        "is_active": "boolean",
        "name": "Base product XY",
        "short_description": "string",
        "shipping_category": 1,
        "images": {
          "data": [
            {
              "sort_position": 1,
              "url": "https://www.example.com/image.jpg"
            }
          ]
        },
        "sales_price": {
          "data": [
            {
              "type": "generic",
              "price": {
                "currency_factor": 100,
                "amount": 999,
                "currency_code": "EUR",
                "currency_symbol": "€"
              }
            }
          ]
        },
        "colors": {
          "data": [
            {
              "is_colored": true,
              "id": 123,
              "color_hex": "#000000",
              "sizes": [
                {
                  "is_onlocalstock": true,
                  "id": 67,
                  "size": "XL",
                  "is_available": true,
                  "sort_position": 1
                }
              ],
              "color": "Black"
            }
          ]
        },
        "processing_areas": {
          "data": [
            {
              "width": 2000,
              "template": "string",
              "template_height": 1000,
              "position_name": "front",
              "template_width": 1000,
              "position_id": 1,
              "height_in_mm": 100,
              "printable_area_margin_from_top": 0,
              "height": 2000,
              "width_in_mm": 100
            }
          ]
        },
        "price": {
          "data": [
            {
              "type": "generic",
              "price": {
                "currency_factor": 100,
                "amount": 999,
                "currency_code": "EUR",
                "currency_symbol": "€"
              }
            }
          ]
        },
        "description": "string",
        "category_id": 5,
        "category": "Unisex-Shirts",
        "sizechart_image": "string",
        "manufacturer": {
          "id": 123,
          "name": "Musterfirma"
        }
      },
      "images": [
        {
          "color": "Red",
          "area": "front",
          "urls": {
            "small": "http://www.example.com/my-orders/small.png",
            "large": "http://www.example.com/my-orders/large.png"
          }
        }
      ],
      "sort_position": 0
    }
  ]
}

Create project

POST /projects

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

description: string

Project description

is_deprecated_campaign: boolean

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

name: string

Project name

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

Success

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

Get all projects

GET /projects

Retrieve all projects available for the currently authenticated user. The projects are automatically paginated, meta information is included in the response.

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

Update project

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

Get project

GET /projects/{project-reference}

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

project-reference

Unique project identifier

type
string
in
path
200 OK

Success

404 Not Found

Project not found

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

Delete project

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

GET /projects/{project-reference}/products

Retrieve information about the products for a single project. Only searches projects that are available to the currently authenticated user.

project-reference

Unique project identifier

type
string
in
path

Success

404 Not Found

Project not found

Response Example (200 OK)
[
  {
    "id": 123,
    "is_rendered": true,
    "is_available": true,
    "active_integration_syncs": [
      {
        "integration_name": "shopify",
        "integration_product_id": "9286211826",
        "is_syncing": true,
        "updated_at": "2017-01-01 12:34:56",
        "integration_id": 111,
        "error": "Invalid or missing auth.",
        "in_queue": true,
        "is_successful": true
      }
    ],
    "base_product": {
      "id": 1,
      "original_name": "T-Shirt",
      "is_active": "boolean",
      "name": "Base product XY",
      "short_description": "string",
      "shipping_category": 1,
      "images": {
        "data": [
          {
            "sort_position": 1,
            "url": "https://www.example.com/image.jpg"
          }
        ]
      },
      "sales_price": {
        "data": [
          {
            "type": "generic",
            "price": {
              "currency_factor": 100,
              "amount": 999,
              "currency_code": "EUR",
              "currency_symbol": "€"
            }
          }
        ]
      },
      "colors": {
        "data": [
          {
            "is_colored": true,
            "id": 123,
            "color_hex": "#000000",
            "sizes": [
              {
                "is_onlocalstock": true,
                "id": 67,
                "size": "XL",
                "is_available": true,
                "sort_position": 1
              }
            ],
            "color": "Black"
          }
        ]
      },
      "processing_areas": {
        "data": [
          {
            "width": 2000,
            "template": "string",
            "template_height": 1000,
            "position_name": "front",
            "template_width": 1000,
            "position_id": 1,
            "height_in_mm": 100,
            "printable_area_margin_from_top": 0,
            "height": 2000,
            "width_in_mm": 100
          }
        ]
      },
      "price": {
        "data": [
          {
            "type": "generic",
            "price": {
              "currency_factor": 100,
              "amount": 999,
              "currency_code": "EUR",
              "currency_symbol": "€"
            }
          }
        ]
      },
      "description": "string",
      "category_id": 5,
      "category": "Unisex-Shirts",
      "sizechart_image": "string",
      "manufacturer": {
        "id": 123,
        "name": "Musterfirma"
      }
    },
    "images": [
      {
        "color": "Red",
        "area": "front",
        "urls": {
          "small": "http://www.example.com/my-orders/small.png",
          "large": "http://www.example.com/my-orders/large.png"
        }
      }
    ],
    "sort_position": 0,
    "custom_name": "My cool product"
  }
]

DEPRECATED: Publish project

POST /projects/{project-reference}/publish

This endpoint is deprecated. Use the customized-product endpoint instead. (Publish project draft. To be eligible for publication, a project must have at least one product and one print attached to it.)

project-reference

Unique project identifier

type
string
in
path
204 No Content

Success, project transferred

404 Not Found

Project not found

422 Unprocessable Entity

Requirements not fulfilled

order

Endpoints in this section retrieve information about issued orders.

Get order

GET /orders/{order-reference}

Retrieve information about a single order. Only orders visible by the currently authenticated user may be retrieved.

order-reference

Alphanumerical order identifier

type
string
in
path
200 OK

Success

404 Not Found

Order not found

Response Example (200 OK)
{
  "sender": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "vat_rate": 19,
  "vat_amount": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "updated_at": "2017-01-01 12:34:56",
  "reference": "ABCDXY1",
  "delivery_receipt_logo_reference": "A456HJ",
  "delivery": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "payments": {
    "data": [
      {
        "updated_at": "2017-01-01 12:34:56",
        "id": "d1364568-4b15-4706-89f1-2452efe1261d",
        "vat_rate": 19,
        "type": "creditcard",
        "vat_amount": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        },
        "net_amount": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        },
        "status_details": "An error occured.",
        "status": "paid",
        "gross_amount": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        }
      }
    ]
  },
  "bill": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "net_price": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "created_at": "2017-01-01 12:34:56",
  "packins": {
    "data": [
      {
        "id": "integer",
        "amount": 1,
        "name": "Greeting card",
        "net_unit_price": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        },
        "net_total_price": 75,
        "type": "hangtag"
      }
    ]
  },
  "use_custom_product_name": "true",
  "shipping": {
    "updated_at": "2017-01-01 12:34:56",
    "created_at": "2017-01-01 12:34:56",
    "type": "delivery",
    "tracking_code": "string",
    "country_code": "DE"
  }
}

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

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).

Create Quick-Order

POST /quickorder

Create a design, a product and place an order - in a single step.

sender: OrderAddress

Create Quick-Order

Create a design, a product and place an order - in a single step.

packins: object[]

Selected packins (optional)

add_delivery_receipt: boolean

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

delivery: OrderAddress

Create Quick-Order

Create a design, a product and place an order - in a single step.

delivery_receipt_note: string

Custom note printed on delivery receipt

jobs: object[]

Processing jobs

delivery_receipt_logo_reference: string

Logo printed on delivery receipt (optional)

Request Example
{
  "sender": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "packins": [
    {
      "sticker_reference": "A12345",
      "order_packaging_reference": "A12345",
      "second_packin_reference": "A12345",
      "first_packin_reference": "A12345",
      "imprint_reference": "A12345",
      "label_reference": "A12345",
      "hangtag_reference": "A12345",
      "product_packaging_reference": "A12345"
    }
  ],
  "add_delivery_receipt": "true",
  "delivery": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "delivery_receipt_note": "Use Voucher XYZ for a 10% discount.",
  "jobs": [
    {
      "base_products": [
        {
          "id": 235,
          "colors": [
            {
              "id": 326,
              "sizes": [
                {
                  "id": 1,
                  "amount": "integer"
                }
              ]
            }
          ]
        }
      ],
      "processings": [
        {
          "method": "print",
          "offset_top": 50,
          "position": "center",
          "width": 200,
          "design": {
            "url": "https://myurl/myimage.png"
          },
          "area": "front",
          "offset_center": 0
        }
      ]
    }
  ],
  "delivery_receipt_logo_reference": "ABC123"
}
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)
{
  "sender": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "vat_rate": 19,
  "vat_amount": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "updated_at": "2017-01-01 12:34:56",
  "reference": "ABCDXY1",
  "delivery_receipt_logo_reference": "A456HJ",
  "delivery": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "payments": {
    "data": [
      {
        "updated_at": "2017-01-01 12:34:56",
        "id": "d1364568-4b15-4706-89f1-2452efe1261d",
        "vat_rate": 19,
        "type": "creditcard",
        "vat_amount": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        },
        "net_amount": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        },
        "status_details": "An error occured.",
        "status": "paid",
        "gross_amount": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        }
      }
    ]
  },
  "bill": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "net_price": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "created_at": "2017-01-01 12:34:56",
  "packins": {
    "data": [
      {
        "id": "integer",
        "amount": 1,
        "name": "Greeting card",
        "net_unit_price": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        },
        "net_total_price": 75,
        "type": "hangtag"
      }
    ]
  },
  "use_custom_product_name": "true",
  "shipping": {
    "updated_at": "2017-01-01 12:34:56",
    "created_at": "2017-01-01 12:34:56",
    "type": "delivery",
    "tracking_code": "string",
    "country_code": "DE"
  }
}

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.

is_onhold: boolean

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

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.

delivery_receipt_note: string

Custom note printed on delivery receipt

packins: object[]

Selected packins (optional)

add_delivery_receipt: boolean

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

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.

delivery_receipt_logo_reference: string

Logo printed on delivery receipt (optional)

products: object[]

Selected products

Request Example
{
  "is_onhold": "true",
  "sender": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "delivery_receipt_note": "Use Voucher XYZ for a 10% discount.",
  "packins": [
    {
      "sticker_reference": "A12345",
      "order_packaging_reference": "A12345",
      "second_packin_reference": "A12345",
      "first_packin_reference": "A12345",
      "imprint_reference": "A12345",
      "label_reference": "A12345",
      "hangtag_reference": "A12345",
      "product_packaging_reference": "A12345"
    }
  ],
  "add_delivery_receipt": "true",
  "delivery": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "delivery_receipt_logo_reference": "ABC123",
  "products": [
    {
      "amount": 1,
      "sizeId": 1,
      "productId": 235,
      "colorId": 326
    }
  ]
}
200 OK

Success, price has been calculated

422 Unprocessable Entity

Validation failed, details in response body

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

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
200 OK

Success

404 Not Found

Coupon not found

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

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

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

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.

is_onhold: boolean

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

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.

delivery_receipt_note: string

Custom note printed on delivery receipt

packins: object[]

Selected packins (optional)

add_delivery_receipt: boolean

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

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.

delivery_receipt_logo_reference: string

Logo printed on delivery receipt (optional)

products: object[]

Selected products

Request Example
{
  "is_onhold": "true",
  "sender": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "delivery_receipt_note": "Use Voucher XYZ for a 10% discount.",
  "packins": [
    {
      "sticker_reference": "A12345",
      "order_packaging_reference": "A12345",
      "second_packin_reference": "A12345",
      "first_packin_reference": "A12345",
      "imprint_reference": "A12345",
      "label_reference": "A12345",
      "hangtag_reference": "A12345",
      "product_packaging_reference": "A12345"
    }
  ],
  "add_delivery_receipt": "true",
  "delivery": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "delivery_receipt_logo_reference": "ABC123",
  "products": [
    {
      "amount": 1,
      "sizeId": 1,
      "productId": 235,
      "colorId": 326
    }
  ]
}
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)
{
  "sender": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "vat_rate": 19,
  "vat_amount": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "updated_at": "2017-01-01 12:34:56",
  "reference": "ABCDXY1",
  "delivery_receipt_logo_reference": "A456HJ",
  "delivery": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "payments": {
    "data": [
      {
        "updated_at": "2017-01-01 12:34:56",
        "id": "d1364568-4b15-4706-89f1-2452efe1261d",
        "vat_rate": 19,
        "type": "creditcard",
        "vat_amount": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        },
        "net_amount": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        },
        "status_details": "An error occured.",
        "status": "paid",
        "gross_amount": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        }
      }
    ]
  },
  "bill": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "net_price": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "created_at": "2017-01-01 12:34:56",
  "packins": {
    "data": [
      {
        "id": "integer",
        "amount": 1,
        "name": "Greeting card",
        "net_unit_price": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        },
        "net_total_price": 75,
        "type": "hangtag"
      }
    ]
  },
  "use_custom_product_name": "true",
  "shipping": {
    "updated_at": "2017-01-01 12:34:56",
    "created_at": "2017-01-01 12:34:56",
    "type": "delivery",
    "tracking_code": "string",
    "country_code": "DE"
  }
}

Get all orders

GET /orders

Retrieve all orders 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
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": [
    {
      "sender": {
        "city": "Köln",
        "title": "Dr.",
        "company": "Shirtigo GmbH",
        "lastname": "Mustermann",
        "postcode": "12345",
        "country": "DE",
        "firstname": "Max",
        "street": "Musterstraße 12"
      },
      "vat_rate": 19,
      "vat_amount": {
        "currency_factor": 100,
        "amount": 999,
        "currency_code": "EUR",
        "currency_symbol": "€"
      },
      "updated_at": "2017-01-01 12:34:56",
      "reference": "ABCDXY1",
      "delivery_receipt_logo_reference": "A456HJ",
      "delivery": {
        "city": "Köln",
        "title": "Dr.",
        "company": "Shirtigo GmbH",
        "lastname": "Mustermann",
        "postcode": "12345",
        "country": "DE",
        "firstname": "Max",
        "street": "Musterstraße 12"
      },
      "payments": {
        "data": [
          {
            "updated_at": "2017-01-01 12:34:56",
            "id": "d1364568-4b15-4706-89f1-2452efe1261d",
            "vat_rate": 19,
            "type": "creditcard",
            "vat_amount": {
              "currency_factor": 100,
              "amount": 999,
              "currency_code": "EUR",
              "currency_symbol": "€"
            },
            "net_amount": {
              "currency_factor": 100,
              "amount": 999,
              "currency_code": "EUR",
              "currency_symbol": "€"
            },
            "status_details": "An error occured.",
            "status": "paid",
            "gross_amount": {
              "currency_factor": 100,
              "amount": 999,
              "currency_code": "EUR",
              "currency_symbol": "€"
            }
          }
        ]
      },
      "bill": {
        "city": "Köln",
        "title": "Dr.",
        "company": "Shirtigo GmbH",
        "lastname": "Mustermann",
        "postcode": "12345",
        "country": "DE",
        "firstname": "Max",
        "street": "Musterstraße 12"
      },
      "net_price": {
        "currency_factor": 100,
        "amount": 999,
        "currency_code": "EUR",
        "currency_symbol": "€"
      },
      "created_at": "2017-01-01 12:34:56",
      "packins": {
        "data": [
          {
            "id": "integer",
            "amount": 1,
            "name": "Greeting card",
            "net_unit_price": {
              "currency_factor": 100,
              "amount": 999,
              "currency_code": "EUR",
              "currency_symbol": "€"
            },
            "net_total_price": 75,
            "type": "hangtag"
          }
        ]
      },
      "use_custom_product_name": "true",
      "shipping": {
        "updated_at": "2017-01-01 12:34:56",
        "created_at": "2017-01-01 12:34:56",
        "type": "delivery"
      }
    }
  ]
}

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 OrderReference

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

Get shirtigo order reference for given integrationId and integration orderId

204 No Content

Success, orderProduct customized

Get UserIntegration

GET /integrations/{integration-id}/products

Get a single user integration.

The endpoint returns the integration.

syncs: integer

Includes current product states

Request Example
{
  "syncs": "integer"
}

Success

404 Not Found

integration not found

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

Get UserIntegration

GET /integrations/{integration-id}

Get a single user integration.

The endpoint returns the integration.

syncs: integer

Includes current product states

Request Example
{
  "syncs": "integer"
}

Success

404 Not Found

integration not found

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

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

other

This section contains miscellaneous endpoints.

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

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?

product_id: integer

Desired base product

printareas: integer[]

Desired print areas

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

Success

404 Not Found

Product not found

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

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)
{
  "week": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "total": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "today": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "week_amount": 3,
  "total_amount": 36,
  "month_amount": 14,
  "month": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "today_amount": 1
}

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

Schema Definitions

MoneyVatInclude:

vat_rate: integer

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

Example
{
  "vat_rate": 19
}

UtilProductImage: object

color: string

Color name

area: string

Processing area name

urls: object

Product name

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

CampaignProductIntegrationSync: object

integration_name: string

Name of the integration application

integration_product_id: string

The identifier used by the integration application

is_syncing: boolean

Is the product available?

updated_at: string

Timestamp of last update

integration_id: integer

The cockpit internal id of the used user integration

error: string

Error message

in_queue: boolean

Is the current sync-process still in queue?

is_successful: boolean

Has the product been rendered?

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

ProjectWithProducts:

products: Product

Products associated with this Project

Example
{
  "products": [
    {
      "id": 1,
      "original_name": "T-Shirt",
      "is_active": "boolean",
      "name": "Base product XY",
      "short_description": "string",
      "shipping_category": 1,
      "images": {
        "data": [
          {
            "sort_position": 1,
            "url": "https://www.example.com/image.jpg"
          }
        ]
      },
      "sales_price": {
        "data": [
          {
            "type": "generic",
            "price": {
              "currency_factor": 100,
              "amount": 999,
              "currency_code": "EUR",
              "currency_symbol": "€"
            }
          }
        ]
      },
      "colors": {
        "data": [
          {
            "is_colored": true,
            "id": 123,
            "color_hex": "#000000",
            "sizes": [
              {
                "is_onlocalstock": true,
                "id": 67,
                "size": "XL",
                "is_available": true,
                "sort_position": 1
              }
            ],
            "color": "Black"
          }
        ]
      },
      "processing_areas": {
        "data": [
          {
            "width": 2000,
            "template": "string",
            "template_height": 1000,
            "position_name": "front",
            "template_width": 1000,
            "position_id": 1,
            "height_in_mm": 100,
            "printable_area_margin_from_top": 0,
            "height": 2000,
            "width_in_mm": 100
          }
        ]
      },
      "price": {
        "data": [
          null
        ]
      }
    }
  ],
  "name": "My cool project",
  "is_syncing": {
    "12": true
  },
  "status": "Finalisiert",
  "processings": {
    "data": [
      {
        "method": "print",
        "width": 200,
        "offset_top": 50,
        "position": "center",
        "updated_at": "2017-01-01 12:34:56",
        "design": {
          "width": 5000,
          "preview": "https://example.com/product_prev.png",
          "name": "My cool design",
          "updated_at": "2017-01-01 12:34:56",
          "palette": [
            "A20061",
            "FFBC42",
            "1C838A",
            "021618",
            "A3AAAB"
          ],
          "original_file": "https://example.com/product.png",
          "height": 3000,
          "created_at": "2017-01-01 12:34:56",
          "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
          "colors": 5,
          "is_processed": true,
          "filename": "ABCDE",
          "complementary_color": "",
          "is_dark": true,
          "filetype": "png"
        },
        "area": "front",
        "height": 300,
        "offset_center": 0
      }
    ]
  },
  "type": "ondemand",
  "products_count": 3,
  "updated_at": "2017-01-01 12:34:56",
  "is_queueing": {
    "12": true
  },
  "is_published": true,
  "created_at": "2017-01-01 12:34:56",
  "reference": "9e7aba40-3bce-4639-9caa-9a9a0397cbff"
}

User: object

phone: string

Phone nubmer

email: string

Email address

postcode: string

ZIP code, used for billing

updated_at: string

Timestamp of last update

sender_title: string
default_hangtag_reference: string

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

default_delivery_receipt_logo_reference: string

Default delivery receipt logo used for orders placed via dashboard

street: string

Street and number, used for billing

city: string

City, used for billing

sender_lastname: string
sender_company_name: string
sender_country: string
lastname: string

Last name

default_second_packin_reference: string

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

sender_type: string full, company, legacy
integration_count: number

Number of active integrations

sender_city: string
has_orders: boolean

Does user have orders?

sender_street: string
user_group: UserGroup
sender_postcode: string
is_business: boolean

Is a business customer

default_first_packin_reference: string

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

add_delivery_receipt: boolean

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

company_name: string

Company name

integrations: UserIntegration

List of integrations (connected applications) for this user

firstname: string

First name(s)

delivery_receipt_note: string

Custom note on delivery receipt

title: string

(Academical) title

is_billing_valid: boolean

Have billing options been filled out?

sticker_logo: string

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

sender_state: string
display_name: string

Display name, e.g. first + last name

is_auto_onhold: boolean

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

delivery_receipt_logo: string

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

country: string

Country, used for billing

use_custom_product_name: boolean

Indicates if custom product name is used on delivery receipt

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

OrderAddress: object

Address

city: string

City

title: string

(Academic) title

company: string

Company name

lastname: string

Last name

postcode: string

ZIP/area code

country: string

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

firstname: string

First name

street: string

Street and number

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

ProductImage: object

sort_position: integer

Numerical index used for sorting

url: string

URL of the image file

Example
{
  "sort_position": 1,
  "url": "https://www.example.com/image.jpg"
}

CampaignProduct: object

id: integer

Numerical identifier

is_rendered: boolean

Has the product been rendered?

is_available: boolean

Is the product available?

active_integration_syncs: CampaignProductIntegrationSync

List of currently active synchronizations with integrations

base_product: Product

Base product

images: UtilProductImage

Product images

sort_position: integer

Numerical identifier

custom_name: string

User defined product name

has_express: boolean

Is the product available for express processing?

integration_products: CampaignIntegrationProduct

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

updated_at: string

Timestamp of last update

colors: ProductColor

List of available colors

integration_sync_log: CampaignProductIntegrationSync

History of synchronizations with integrations for this product

price: Money

Net price

project: string

Project reference

description: string

Short description in HTML format

project_name: string

Project name

name: string

Product name

Example
{
  "id": 123,
  "is_rendered": true,
  "is_available": true,
  "active_integration_syncs": [
    {
      "integration_name": "shopify",
      "integration_product_id": "9286211826",
      "is_syncing": true,
      "updated_at": "2017-01-01 12:34:56",
      "integration_id": 111,
      "error": "Invalid or missing auth.",
      "in_queue": true,
      "is_successful": true
    }
  ],
  "base_product": {
    "id": 1,
    "original_name": "T-Shirt",
    "is_active": "boolean",
    "name": "Base product XY",
    "short_description": "string",
    "shipping_category": 1,
    "images": {
      "data": [
        {
          "sort_position": 1,
          "url": "https://www.example.com/image.jpg"
        }
      ]
    },
    "sales_price": {
      "data": [
        {
          "type": "generic",
          "price": {
            "currency_factor": 100,
            "amount": 999,
            "currency_code": "EUR",
            "currency_symbol": "€"
          }
        }
      ]
    },
    "colors": {
      "data": [
        {
          "is_colored": true,
          "id": 123,
          "color_hex": "#000000",
          "sizes": [
            {
              "is_onlocalstock": true,
              "id": 67,
              "size": "XL",
              "is_available": true,
              "sort_position": 1
            }
          ],
          "color": "Black"
        }
      ]
    },
    "processing_areas": {
      "data": [
        {
          "width": 2000,
          "template": "string",
          "template_height": 1000,
          "position_name": "front",
          "template_width": 1000,
          "position_id": 1,
          "height_in_mm": 100,
          "printable_area_margin_from_top": 0,
          "height": 2000,
          "width_in_mm": 100
        }
      ]
    },
    "price": {
      "data": [
        {
          "type": "generic",
          "price": {
            "currency_factor": 100,
            "amount": 999,
            "currency_code": "EUR",
            "currency_symbol": "€"
          }
        }
      ]
    },
    "description": "string",
    "category_id": 5,
    "category": "Unisex-Shirts",
    "sizechart_image": "string",
    "manufacturer": {
      "id": 123,
      "name": "Musterfirma"
    }
  },
  "images": [
    {
      "color": "Red",
      "area": "front",
      "urls": {
        "small": "http://www.example.com/my-orders/small.png",
        "large": "http://www.example.com/my-orders/large.png"
      }
    }
  ],
  "sort_position": 0,
  "custom_name": "My cool product",
  "has_express": false,
  "integration_products": [
    null
  ]
}

Product: object

id: integer

Numeric identifier of this product

original_name: string

Base product name

is_active: boolean

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

name: string

Product name

short_description: string

Short description

shipping_category: integer

Shipping category

images: object

Product images

sales_price: object

Pricing information on sales

colors: object

Color information

processing_areas: object

Available processing areas

price: object

Pricing information

description: string

Detailed description

category_id: integer

Numerical category identifier

category: string

Category name

sizechart_image: string

URL of the product size table image

manufacturer: ProductManufacturer

Manufacturer information

Example
{
  "id": 1,
  "original_name": "T-Shirt",
  "is_active": "boolean",
  "name": "Base product XY",
  "short_description": "string",
  "shipping_category": 1,
  "images": {
    "data": [
      {
        "sort_position": 1,
        "url": "https://www.example.com/image.jpg"
      }
    ]
  },
  "sales_price": {
    "data": [
      {
        "type": "generic",
        "price": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        }
      }
    ]
  },
  "colors": {
    "data": [
      {
        "is_colored": true,
        "id": 123,
        "color_hex": "#000000",
        "sizes": [
          {
            "is_onlocalstock": true,
            "id": 67,
            "size": "XL",
            "is_available": true,
            "sort_position": 1
          }
        ],
        "color": "Black"
      }
    ]
  },
  "processing_areas": {
    "data": [
      {
        "width": 2000,
        "template": "string",
        "template_height": 1000,
        "position_name": "front",
        "template_width": 1000,
        "position_id": 1,
        "height_in_mm": 100,
        "printable_area_margin_from_top": 0,
        "height": 2000,
        "width_in_mm": 100
      }
    ]
  },
  "price": {
    "data": [
      {
        "type": "generic",
        "price": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        }
      }
    ]
  },
  "description": "string",
  "category_id": 5,
  "category": "Unisex-Shirts",
  "sizechart_image": "string",
  "manufacturer": {
    "id": 123,
    "name": "Musterfirma"
  }
}

MoneyWithVat: object

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

UserIntegration: object

name: string

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

delivery_receipt_logo: string

Url to custom logo added to delivery slip for 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_label_reference: string

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

default_sticker_reference: string

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

reference: uuid

Reference of the integration

default_second_packin_reference: string

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

is_auto_pull_orders: boolean

Flag if automatically reimporting of orders is enabled.

default_order_packaging_reference: string

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

image_quality: string

Quality of image transfered to external shop

image_type: string

Type of image transfered to external shop

default_imprint_reference: string

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

id: integer

The internal cockpit id of the used user integration

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 received via this intergrations (optional)

add_delivery_receipt: boolean

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

sticker_logo: string

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

default_delivery_receipt_logo_reference: string

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

expires_in: string

Date of expire

app: string

Name of the integration application

delivery_receipt_note: string

Custom note on delivery receipt

is_pull_orders: boolean

Flag if manually reimporting of orders is enabled.

default_product_packaging_reference: string

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

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

ProductManufacturer: object

id: integer

Numerical identifier

name: string

Manufacturer name

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

OrderPackin: object

id: integer

Packin id

amount: integer

Number of items

name: string

Packin name

net_unit_price: Money

Net unit price

net_total_price: Money

Total price (net_unit_price*amount)

type: string

Packin type (hangtag or packin)

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

Pagination: object

Pagination information

count: integer

Number of items on current page

total: integer

Total number of items

current_page: integer

Index of current page

links: object

URLs of adjacent pages

per_page: integer

Default number of items per page

total_pages: integer

Total number of pages

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

ProductColor: object

is_colored: boolean

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

id: integer

Numerical identifier

color_hex: string

Hexadecimal RGB color value

sizes: object[]

Available sizes

color: string

Color name

Example
{
  "is_colored": true,
  "id": 123,
  "color_hex": "#000000",
  "sizes": [
    {
      "is_onlocalstock": true,
      "id": 67,
      "size": "XL",
      "is_available": true,
      "sort_position": 1
    }
  ],
  "color": "Black"
}

OrderProduct: object

campaign_product_id: int

ID of the campaign product

id: integer

Product id

amount: integer

Number of items

net_total_price: Money

Total price (net_unit_price*amount)

net_unit_price: Money

Net unit price

name: string

Product name

images: UtilProductImage

Available image URLs

color: string

Color name

campaign_name: string

Name of the campaign

size: string

Size name

campaign_reference: string

Reference of the campaign

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

Payment: object

id: string

Unique transaction identifier

status_title: string

Payment description

vat_rate: integer

VAT rate in percent

vat_amount: Money

VAT amount

payment_reference: string

Payment reference

net_amount: Money

Net price

status: string

Payment type

created_at: string

Timestamp of creation

gross_amount: Money

Gross price

order: Order

Order

Example
{
  "id": "d1364568-4b15-4706-89f1-2452efe1261d",
  "status_title": "Erstattung",
  "vat_rate": 19,
  "vat_amount": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "payment_reference": "Kreditkarte",
  "net_amount": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "status": "invoice",
  "created_at": "2017-01-01 12:34:56",
  "gross_amount": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "order": {
    "sender": {
      "city": "Köln",
      "title": "Dr.",
      "company": "Shirtigo GmbH",
      "lastname": "Mustermann",
      "postcode": "12345",
      "country": "DE",
      "firstname": "Max",
      "street": "Musterstraße 12"
    },
    "vat_rate": 19,
    "vat_amount": {
      "currency_factor": 100,
      "amount": 999,
      "currency_code": "EUR",
      "currency_symbol": "€"
    },
    "updated_at": "2017-01-01 12:34:56",
    "reference": "ABCDXY1",
    "delivery_receipt_logo_reference": "A456HJ",
    "delivery": {
      "city": "Köln",
      "title": "Dr.",
      "company": "Shirtigo GmbH",
      "lastname": "Mustermann",
      "postcode": "12345",
      "country": "DE",
      "firstname": "Max",
      "street": "Musterstraße 12"
    },
    "payments": {
      "data": [
        {
          "updated_at": "2017-01-01 12:34:56",
          "id": "d1364568-4b15-4706-89f1-2452efe1261d",
          "vat_rate": 19,
          "type": "creditcard",
          "vat_amount": {
            "currency_factor": 100,
            "amount": 999,
            "currency_code": "EUR",
            "currency_symbol": "€"
          },
          "net_amount": {
            "currency_factor": 100,
            "amount": 999,
            "currency_code": "EUR",
            "currency_symbol": "€"
          },
          "status_details": "An error occured.",
          "status": "paid",
          "gross_amount": {
            "currency_factor": 100,
            "amount": 999,
            "currency_code": "EUR",
            "currency_symbol": "€"
          }
        }
      ]
    },
    "bill": {
      "city": "Köln",
      "title": "Dr.",
      "company": "Shirtigo GmbH",
      "lastname": "Mustermann",
      "postcode": "12345",
      "country": "DE",
      "firstname": "Max",
      "street": "Musterstraße 12"
    },
    "net_price": {
      "currency_factor": 100,
      "amount": 999,
      "currency_code": "EUR"
    }
  }
}

ProjectPrint: object

method: string

Processing method

width: integer

Design width in millimeters

offset_top: integer

Vertical offset from top in millimeters

position: string

Processing position

updated_at: string

Timestamp of last update

design: Design
area: string

Processing site

height: integer

Design height in millimeters

offset_center: integer

Horizontal offset from center in millimeters

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

OrderWarehouseProduct: object

amount: integer

Number of items

name: string

Product name

net_unit_price: Money

Net unit price

net_total_price: Money

Total price (net_unit_price*amount)

reference: string

Product Reference

sku: string

SKU of ordered warehouseProductVariant

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

Country: object

iso: string

Two-letter identifier according to ISO 3166-1

name: string

Country name

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

ProductPrice: object

type: string

Variant

price: Money

Price

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

Design: object

width: integer

Width of the design file in pixels

preview: string

URL to preview image

name: string

Design Name

updated_at: string

Timestamp of last update

palette: string[]

List of hex-codes of representative colors

original_file: string

URL to full resolution image

height: integer

Height of the design file in pixels

created_at: string

Timestamp of creation

reference: string

Unique identifier of this design

colors: integer

Total number of colors in the color palette

is_processed: boolean

Has the design been rendered?

filename: string

Design file name

complementary_color: string

Complementary color

is_dark: boolean

Is this a design with dark colors?

filetype: string

Extension of the design file name

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

Processing: object

Processing to apply

method: string center

Processing method

offset_top: integer

Vertical offset from top in millimeters

position: string center

Processing position

width: string 120

Design width in millimeters

design: string

Design reference

area: string

Processing area

offset_center: integer

Horizontal offset from center in millimeters

Example
{
  "method": "print",
  "offset_top": 50,
  "position": "center",
  "width": 200,
  "design": "9e7aba40-3bce-4639-9caa-9a9a0397cbff",
  "area": "front",
  "offset_center": 0
}

Money: object

currency_factor: integer

Number of cents in one unit of currency

amount: integer

Price in cents

currency_code: string

Three letter ISO 4217 code

currency_symbol: string

Currency symbol

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

OrderRelation: object

total_items: integer

Total number of items in the order

gross_price: Money

Total gross price of this order

vat_amount: Money

VAT amount

vat_rate: integer

VAT rate in percent

updated_at: string

Timestamp of last update

net_price: Money

Total net price of this order

status: string

Human readable order status

reference: string

Unique identifier of this order

created_at: string

Timestamp of creation

status_key: string

Number of products

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

ProvisionalProduct: object

base_product: Product

Base product

description: string

Short description

name: string

Product name

price: Money

Net price

colors: ProductColor

List of available colors

Example
{
  "base_product": {
    "id": 1,
    "original_name": "T-Shirt",
    "is_active": "boolean",
    "name": "Base product XY",
    "short_description": "string",
    "shipping_category": 1,
    "images": {
      "data": [
        {
          "sort_position": 1,
          "url": "https://www.example.com/image.jpg"
        }
      ]
    },
    "sales_price": {
      "data": [
        {
          "type": "generic",
          "price": {
            "currency_factor": 100,
            "amount": 999,
            "currency_code": "EUR",
            "currency_symbol": "€"
          }
        }
      ]
    },
    "colors": {
      "data": [
        {
          "is_colored": true,
          "id": 123,
          "color_hex": "#000000",
          "sizes": [
            {
              "is_onlocalstock": true,
              "id": 67,
              "size": "XL",
              "is_available": true,
              "sort_position": 1
            }
          ],
          "color": "Black"
        }
      ]
    },
    "processing_areas": {
      "data": [
        {
          "width": 2000,
          "template": "string",
          "template_height": 1000,
          "position_name": "front",
          "template_width": 1000,
          "position_id": 1,
          "height_in_mm": 100,
          "printable_area_margin_from_top": 0,
          "height": 2000,
          "width_in_mm": 100
        }
      ]
    },
    "price": {
      "data": [
        {
          "type": "generic",
          "price": {
            "currency_factor": 100,
            "amount": 999,
            "currency_code": "EUR",
            "currency_symbol": "€"
          }
        }
      ]
    },
    "description": "string",
    "category_id": 5,
    "category": "Unisex-Shirts",
    "sizechart_image": "string",
    "manufacturer": {
      "id": 123,
      "name": "Musterfirma"
    }
  },
  "description": "string",
  "name": "Base product XY",
  "price": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "colors": [
    {
      "is_colored": true,
      "id": 123,
      "color_hex": "#000000",
      "sizes": [
        {
          "is_onlocalstock": true,
          "id": 67,
          "size": "XL",
          "is_available": true,
          "sort_position": 1
        }
      ],
      "color": "Black"
    }
  ]
}

ProductProcessingArea: object

width: integer

Width of the printarea in pixels

template: string

Template

template_height: integer

Default template height

position_name: string

Name of the printarea

template_width: integer

Default template width

position_id: integer

Numerical identifier

height_in_mm: integer

Height of the printarea in millimeters

printable_area_margin_from_top: integer

Distance between top and processable area top

height: integer

Height of the printarea in pixels

width_in_mm: integer

Width of the printarea in millimeters

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

OrderShipping: object

updated_at: string

Timestamp of last update

created_at: string

Timestamp of creation

type: string

Shipping type

tracking_code: string

Carrier tracking code

country_code: string

Two letter country code

is_shipped: boolean

Has the order been shipped yet?

tracking_url: string

Carrier tracking URL

cost: Money

Shipping price

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

OAuthServerException: object

message: string

Human readable error message.

error: string

Machine readable error type.

hint: string

A helper hint.

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

ProductDimensions: object

width: integer

Width in mm

size: string

Product size name

height: integer

Height in mm

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

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

UserPackin: object

height_mm: integer

Height of the packin in millimeter

stocking_costs: Money

Daily costs for stocking packin

is_active: boolean

Packins receives status is_active, when article is checked and warehoused

type: string

Packin type (packin or hangtag)

position: string

Position of Label

size_id: integer

Product size ID for which imprint will be applied

reference: ABC123

Packin reference

weight_gram: integer

Weight of one single packin in gram

inventory: integer

Actual stock level of packin

width_mm: integer

Width of the packin in millimeter

color_ids: string

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

initial_inventory: integer

Initial stock level of packin

preview_path: string

Path to packin preview

name: string

Packin name

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

CampaignIntegrationProduct: object

updated_at: string

Timestamp of last update

integration_product_id: string

The identifier used by the integration application

integration_id: integer

The cockpit internal id of the used user integration

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

OrderPayment: object

updated_at: string

Timestamp of last update

id: string

Unique transaction identifier

vat_rate: integer

VAT rate in percent

type: string

Payment type

vat_amount: Money

VAT amount

net_amount: Money

Net price

status_details: string

Payment error description (if there is any)

status: string

Payment status

gross_amount: Money

Gross price

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

Project: object

name: string

Project name

is_syncing: array

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

status: string

Project status

processings: object

Processings associated with this project

type: string

Type

products_count: integer

Number of products

updated_at: string

Timestamp of last update

is_queueing: array

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

is_published: boolean

Has the project been published?

created_at: string

Timestamp of initial creation

reference: string

Unique identifier of this project

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

Order: object

sender: OrderAddress

Sender address

vat_rate: integer

VAT rate in percent

vat_amount: Money

VAT amount

updated_at: string

Timestamp of last update

reference: string

Unique identifier of this order

delivery_receipt_logo_reference: string

Media reference for the logo added to delivery_receipt

delivery: OrderAddress

Delivery address

payments: object

Array of payments associated with this order

bill: OrderAddress

Billing address

net_price: Money

Total net price of this order

created_at: string

Timestamp of creation

packins: object

Array of packins and hangtags in this order

use_custom_product_name: boolean

Use custom product name on delivery receipt

shipping: OrderShipping

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

gross_price: Money

Total gross price of this order

fulfillment: object

Fulfillment details or false if no details are available

add_delivery_receipt: boolean

Indicates if delivery receipt is added to order

status: string

Human readable order status

total_items: integer

Total number of items in the order

status_key: string

Number of products

orderStatusEntries: object

Array of status messages associated with this order

invoice_reference: string

Invoice reference

delivery_receipt_note: string

Custom note on delivery receipt

products: object

Array of products in this order

Example
{
  "sender": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "vat_rate": 19,
  "vat_amount": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "updated_at": "2017-01-01 12:34:56",
  "reference": "ABCDXY1",
  "delivery_receipt_logo_reference": "A456HJ",
  "delivery": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "payments": {
    "data": [
      {
        "updated_at": "2017-01-01 12:34:56",
        "id": "d1364568-4b15-4706-89f1-2452efe1261d",
        "vat_rate": 19,
        "type": "creditcard",
        "vat_amount": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        },
        "net_amount": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        },
        "status_details": "An error occured.",
        "status": "paid",
        "gross_amount": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        }
      }
    ]
  },
  "bill": {
    "city": "Köln",
    "title": "Dr.",
    "company": "Shirtigo GmbH",
    "lastname": "Mustermann",
    "postcode": "12345",
    "country": "DE",
    "firstname": "Max",
    "street": "Musterstraße 12"
  },
  "net_price": {
    "currency_factor": 100,
    "amount": 999,
    "currency_code": "EUR",
    "currency_symbol": "€"
  },
  "created_at": "2017-01-01 12:34:56",
  "packins": {
    "data": [
      {
        "id": "integer",
        "amount": 1,
        "name": "Greeting card",
        "net_unit_price": {
          "currency_factor": 100,
          "amount": 999,
          "currency_code": "EUR",
          "currency_symbol": "€"
        },
        "net_total_price": 75,
        "type": "hangtag"
      }
    ]
  },
  "use_custom_product_name": "true",
  "shipping": {
    "updated_at": "2017-01-01 12:34:56",
    "created_at": "2017-01-01 12:34:56",
    "type": "delivery",
    "tracking_code": "string",
    "country_code": "DE",
    "is_shipped": false
  }
}

UserGroup: object

id: integer

Numerical group identifier

cockpit_discount: integer

Discount in percent

type: string

Group name

updated_at: string

Timestamp of last update

quantity: integer

Required number of sold products

created_at: string

Timestamp of creation

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

OrderStatusEntry: object

key: string

Order status key

description: integer

Verbose status description

status: string

Human readable status

updated_at: string

Timestamp of last update

created_at: string

Timestamp of creation

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

Coupon: object

discount_type: string

The type of discount, either percentage or euro

has_orders: integer

Flag to indicate if orders for user exist.

discount_netto: Money

The granted discount without sales taxes 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

coupon_code: string

The identifier on the promo coupon

coupon_type: string

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

rate_limit_exceeded: integer

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

new_user_only: integer

Flag to indicate if the coupon is for new users only

expiration_date: string

Timestamp for the validity of the coupon code

remaining_activations: integer

Number of remaining usages for this coupon

discount_percent: integer

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

discount_brutto: Money

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

n_activations: integer

Number of usages for this coupon

is_expired: boolean

Flag to indicate if the coupon is expired

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