API userguide (draft)
This guide explains how to use the Probo API to automate ordering a digital printed product which is made of Dibond Budget sheet material with dimension of 20x40 cm and have it delivering to Fortuinweg 17, 9101 PE Dokkum The Nederlands.
The steps in this use case include
- authorize
- select product
- configure product
- receive price for product and delivery
- upload print file
- order the product
- receive status updates of the order
Authorization
Add the Authorization header to each API call. Header value should include "Bearer {token}". Where {token} is the API key.
GET /products
Host: api.proboprints.com
Authorization: Bearer {your API key}
Selection product
Call the /products endpoint (GET) to retrieve a list of available products. The list includes high level information about the products:
- active: indicates if the product is active. If not active it cannot be ordered
- code: code to identify a product
- article_group_name: indicates if the product is a Material or a Composed product *see background*.
- unit_code: defines the unit for ordering 1=square meter, 2 = length meter, 3 = per piece etc.
- translations[]: product name translations
Background:
- In the Probo backend products are defined by option trees.
- An option tree includes the configurable options for a product.
- The options for a product can only be configured in a fixed sequence.
- The next available option depends on the previously selected option.
- An option tree may include single or multiple materials. Example 1: airtex is defined by an option tree including options for only the Airtex material, such as size, amount and finishing. Example 2: dibond is defined by an option tree including options such as size, amount and finishing and the possibility to choose from multiple materials. Example 1 is identified as a Material, Example 2 is identified as a Composed Product.
GET /products response example
{
"meta": {
"page": x,
"pages": xx,
"items": xxx,
"per_page": xx
},
"data": [
{
"active": true,
"code": "airtex",
"article_group_name": "Material",
"unit_code": 1,
"translations": {
"en": {
"title": "Airtex®",
"description": "Airtex®"
},
"de": {
"title": "Airtex®",
"description": "Airtex®"
},
"nl": {
"title": "Airtex®",
"description": "Airtex®"
},
"fr": {
"title": "Airtex®",
"description": "Airtex®"
}
},
"created_at": "2018-01-12T10:24:33+0000",
"updated_at": "2025-02-18T14:20:10+0000"
},
...
{
"active": true,
"code": "dibond",
"article_group_name": "Composed product",
"unit_code": 1,
"translations": {
"en": {
"title": "Dibond®",
"description": "Dibond"
},
"de": {
"title": "Aluminiumverbundplatte (Dibond®)",
"description": "Aluminiumverbundplatte"
},
"nl": {
"title": "Dibond®",
"description": null
},
"fr": {
"title": null,
"description": null
}
},
"created_at": "2018-01-23T08:31:03+0000",
"updated_at": "2024-11-06T11:36:34+0000"
}
]
}
Configure product
Call the Call the /products/configure endpoint (POST) to configure (the option tree) of a product. The payload includes the product code (from the previous step) and an id for this configuration. This step is equal to how a the option tree for the product is configured on the Probo platform.
This endpoint needs to be called repeatedly for all options in the tree.
The endpoint will return some high level information, the available options and the selected options for the product.
high level information includes:
- id: the given id for the configuration
- can_order: when false the product configuration is not complete yet. When true, the product configuration is complete and the product can be ordered using the selected options, price information is now available.
- dimensions and amount: after the first configuration step the dimensions and amount is configured. This information is part of the selectyed options, but will be presented as high level information as well.
available options includes:
- the next available option in the option tree that needs to be configured
selected options:
- the options and the selected values from previous calls to the configure endpoint for this configuration
Important notes
- The intended use for the configuration endpoint is to offer users of your application a way to configure print products themselves (for ordering or quoting purposes).
- Once a product has been configured, your application may store the configuration and reuse as payload in future calls to the order or price endpoints. Use the price endpoint to retrieve the latest price for the configured product.
- It is possible to copy a configuration from a product configuration made on the Probo Platform. This may be convenient when your application is offering a product with a fixed configuration: configure the product manually and copy the configuration to use it in the order payload of your application.
- Option trees for a product may change in the Probo backend. This may result in a situation where the stored configuration is not possible to be ordered any more. Follow product changes carefully and update stored configurations accordingly in case you reuse the configuration payload.
Product configuration - iteration 1
Request payload (iteration 1):
{
"products": [
{
"code": "dibond",
"id": 512
}
]
}
Response (iteration 1):
{
"status": "ok",
"code": 200,
"message": "Options calculated",
"products": [
{
"id": 512,
"code": "dibond",
"can_order": false,
"amount": 0,
"width": 0,
"height": 0,
"length": 0,
"available_options": [
{
"name": "Afmeting",
"label": null,
"code": "size",
"can_order": null,
"amount": null,
"width": null,
"height": null,
"length": null,
"available": true,
"unit_code": null,
"price": null,
"children": [
{
"type_code": "width",
"name": "Breedte",
"label": null,
"description": null,
"value": null,
"code": "width",
"default_value": null,
"min_value": 0,
"max_value": 99999,
"step_size": null,
"scale": 1,
"reversible": true,
"last_option": false,
"available": true,
"unit_code": "cm",
"price": null,
"images": [
]
},
{
"type_code": "height",
"name": "Hoogte",
"label": null,
"description": null,
"value": null,
"code": "height",
"default_value": null,
"min_value": 0,
"max_value": 99999,
"step_size": null,
"scale": 1,
"reversible": true,
"last_option": false,
"available": true,
"unit_code": "cm",
"price": null,
"images": [
]
}
]
},
{
"name": "Hoeveelheid",
"label": null,
"code": "amount",
"can_order": null,
"amount": null,
"width": null,
"height": null,
"length": null,
"available": true,
"unit_code": null,
"price": null,
"children": [
{
"type_code": "amount",
"name": "Hoeveelheid",
"label": null,
"description": null,
"value": null,
"code": "amount",
"default_value": null,
"min_value": null,
"max_value": null,
"step_size": null,
"scale": null,
"reversible": null,
"last_option": false,
"available": true,
"unit_code": "pc",
"price": null,
"images": [
]
}
]
}
],
"selected_options": [
]
}
]
}
Product configuration - iteration 2
Request payload (iteration 2):
{
"products": [
{
"code": "dibond",
"id": 0,
"options":[
{
"code": "width",
"value": 30
},
{
"code": "height",
"value": 30
},
{
"code": "amount",
"value": 1
}
]
}
]
}
Response (iteration 2):
{
"status": "ok",
"code": 200,
"message": "Options calculated",
"products": [
{
"id": 0,
"code": "dibond",
"can_order": false,
"amount": 1,
"width": 30,
"height": 30,
"length": 0,
"available_options": [
{
"name": "Samenstelling",
"label": null,
"code": "print-material",
"can_order": null,
"amount": null,
"width": null,
"height": null,
"length": null,
"available": true,
"unit_code": null,
"price": null,
"children": [
{
"type_code": "radio",
"name": "Direct printen op plaat",
"label": null,
"description": "We printen rechtstreeks op de plaat.",
"value": null,
"code": "direct-to-plate",
"default_value": null,
"min_value": null,
"max_value": null,
"step_size": null,
"scale": null,
"reversible": null,
"last_option": false,
"available": true,
"unit_code": null,
"price": null,
"images": [
{
"language": "all",
"url": "https://cdn-test.print-uploader.com/201808/1529/4a7e94c2e6723434.svg"
}
]
},
{
"type_code": "radio",
"name": "Print op folie",
"label": null,
"description": "Voor een scherpere print, printen we op folie. Deze plakken we op een plaat van 3 mm.",
"value": null,
"code": "print-on-film",
"default_value": null,
"min_value": null,
"max_value": null,
"step_size": null,
"scale": null,
"reversible": null,
"last_option": false,
"available": true,
"unit_code": null,
"price": null,
"images": [
{
"language": "all",
"url": "https://cdn-test.print-uploader.com/201808/1530/a159b83aaee437c5.svg"
}
]
}
]
}
],
"selected_options": [
{
"type_code": "width",
"name": "Breedte",
"label": null,
"description": null,
"value": "30",
"code": "width",
"default_value": null,
"min_value": 0,
"max_value": 99999,
"step_size": null,
"scale": 1,
"reversible": true,
"parent_code": "size",
"parent_name": "Afmeting",
"unit_code": "cm",
"images": [
]
},
{
"type_code": "height",
"name": "Hoogte",
"label": null,
"description": null,
"value": "30",
"code": "height",
"default_value": null,
"min_value": 0,
"max_value": 99999,
"step_size": null,
"scale": 1,
"reversible": true,
"parent_code": "size",
"parent_name": "Afmeting",
"unit_code": "cm",
"images": [
]
},
{
"type_code": "amount",
"name": "Hoeveelheid",
"label": null,
"description": null,
"value": "1",
"code": "amount",
"default_value": null,
"min_value": null,
"max_value": null,
"step_size": null,
"scale": null,
"reversible": null,
"parent_code": "amount",
"parent_name": "Hoeveelheid",
"unit_code": "pc",
"images": [
]
}
]
}
]
}
After iteration 2 this userguide fast forwards to the can_order iteration where the configuration is completed and the response will indicate the pricing for this configuration which now can be ordered,
Product configuration - can_order iteration
The response now includes:
- available cross sell products which can be added to the configuration
- selected options (the minimum configuration which now can be ordered)
- Uploader: the data required to initiate an uploader session for the print file for this configuration
- Linked product
- Prices: the price for the product (total price and price per piece) per the number of production hours (less production hours, means the product is produced faster).
- Calculation id: an id for this claculation
Request payload (can_order iteration)
{
"products": [
{
"code": "dibond",
"id": 0,
"options":[
{
"code": "width",
"value": 40
},
{
"code": "height",
"value": 20
},
{
"code": "amount",
"value": 1
},
{
"code": "direct-to-plate"
},
{
"code": "single-sided"
},
{
"code": "dibond-budget"
},
{
"code": "3mm"
},
{
"code": "milling"
},
{
"code": "no-drillholes"
}
,
{
"code": "customer-supplied-file"
}
]
}
]
}
Response (can_order iteration):
{
"status": "ok",
"code": 200,
"message": "Options calculated",
"products": [
{
"id": 0,
"code": "dibond",
"can_order": true,
"amount": 1,
"width": 40,
"height": 20,
"length": 0,
"available_options": [
{
"name": "Accessoires",
"label": null,
"code": "accessories-cross-sell",
"can_order": null,
"amount": null,
"width": null,
"height": null,
"length": null,
"available": true,
"unit_code": null,
"price": null,
"children": [
{
"type_code": "cross_sell_pc",
"name": "Zijgriphouder RVS in- en outdoor - 2 t/m 5 mm",
"label": null,
"description": "Set van 4 stuks",
"value": null,
"code": "side-grip-spacer-2-5mm",
"default_value": 1,
"min_value": null,
"max_value": null,
"step_size": null,
"scale": null,
"reversible": null,
"last_option": null,
"available": true,
"unit_code": null,
"price": {
"purchase_base_price": 7,
"purchase_rush_surcharge": 0,
"purchase_price": 7,
"purchase_price_incl_vat": 7,
"sales_price": 17.5,
"sales_price_incl_vat": 17.5
},
"images": [
{
"language": "all",
"url": "https://cdn-test.print-uploader.com/201901/1756/f8a2b3dad0a99f46.jpg"
}
]
},
{
"type_code": "cross_sell_pc",
"name": "Ophangplaten - 7 x 7 cm",
"label": null,
"description": "Te gebruiken voor platen met een maximaal gewicht tot 3 kg.",
"value": null,
"code": "mounting-plates-7x7cm",
"default_value": 1,
"min_value": null,
"max_value": null,
"step_size": null,
"scale": null,
"reversible": null,
"last_option": null,
"available": true,
"unit_code": null,
"price": {
"purchase_base_price": 3.25,
"purchase_rush_surcharge": 0,
"purchase_price": 3.25,
"purchase_price_incl_vat": 3.25,
"sales_price": 8.125,
"sales_price_incl_vat": 8.125
},
"images": [
{
"language": "all",
"url": "https://cdn-test.print-uploader.com/201901/1754/fb27390877547d7e.jpg"
}
]
},
{
"type_code": "cross_sell_pc",
"name": "Ophangplaten - 10 x 10 cm",
"label": null,
"description": "Te gebruiken voor platen met een maximaal gewicht tot 6 kg.",
"value": null,
"code": "mounting-plates-10x10cm",
"default_value": 1,
"min_value": null,
"max_value": null,
"step_size": null,
"scale": null,
"reversible": null,
"last_option": null,
"available": true,
"unit_code": null,
"price": {
"purchase_base_price": 6,
"purchase_rush_surcharge": 0,
"purchase_price": 6,
"purchase_price_incl_vat": 6,
"sales_price": 15,
"sales_price_incl_vat": 15
},
"images": [
{
"language": "all",
"url": "https://cdn-test.print-uploader.com/201901/1753/888169b3a9035325.jpg"
}
]
},
{
"type_code": "cross_sell_pc",
"name": "Ophangplaten - 10 x 20 cm",
"label": null,
"description": "Te gebruiken voor platen met een maximaal gewicht tot 12 kg.",
"value": null,
"code": "mounting-plates-10x20cm",
"default_value": 1,
"min_value": null,
"max_value": null,
"step_size": null,
"scale": null,
"reversible": null,
"last_option": null,
"available": true,
"unit_code": null,
"price": {
"purchase_base_price": 7.5,
"purchase_rush_surcharge": 0,
"purchase_price": 7.5,
"purchase_price_incl_vat": 7.5,
"sales_price": 18.75,
"sales_price_incl_vat": 18.75
},
"images": [
{
"language": "all",
"url": "https://cdn-test.print-uploader.com/201901/1752/9b18720b7c8aea2e.jpg"
}
]
}
]
}
],
"selected_options": [
{
"type_code": "width",
"name": "Breedte",
"label": null,
"description": null,
"value": "40",
"code": "width",
"default_value": null,
"min_value": 0,
"max_value": 99999,
"step_size": null,
"scale": 1,
"reversible": true,
"parent_code": "size",
"parent_name": "Afmeting",
"unit_code": "cm",
"images": [
]
},
{
"type_code": "height",
"name": "Hoogte",
"label": null,
"description": null,
"value": "20",
"code": "height",
"default_value": null,
"min_value": 0,
"max_value": 99999,
"step_size": null,
"scale": 1,
"reversible": true,
"parent_code": "size",
"parent_name": "Afmeting",
"unit_code": "cm",
"images": [
]
},
{
"type_code": "amount",
"name": "Hoeveelheid",
"label": null,
"description": null,
"value": "1",
"code": "amount",
"default_value": null,
"min_value": null,
"max_value": null,
"step_size": null,
"scale": null,
"reversible": null,
"parent_code": "amount",
"parent_name": "Hoeveelheid",
"unit_code": "pc",
"images": [
]
},
{
"type_code": "radio",
"name": "Direct printen op plaat",
"label": null,
"description": "We printen rechtstreeks op de plaat.",
"value": null,
"code": "direct-to-plate",
"default_value": null,
"min_value": null,
"max_value": null,
"step_size": null,
"scale": null,
"reversible": null,
"parent_code": "print-material",
"parent_name": "Samenstelling",
"unit_code": null,
"images": [
{
"language": "all",
"url": "https://cdn-test.print-uploader.com/201808/1529/4a7e94c2e6723434.svg"
}
]
},
{
"type_code": "radio",
"name": "Enkelzijdig",
"label": null,
"description": null,
"value": null,
"code": "single-sided",
"default_value": null,
"min_value": null,
"max_value": null,
"step_size": null,
"scale": null,
"reversible": null,
"parent_code": "print-side",
"parent_name": "Print",
"unit_code": null,
"images": [
{
"language": "all",
"url": "https://cdn-test.print-uploader.com/201803/122/1157641fbfa8a2d9.svg"
}
]
},
{
"type_code": "radio",
"name": "Dibond® Budget",
"label": null,
"description": "Scherp geprijsd en in meerdere diktes verkrijgbaar.",
"value": null,
"code": "dibond-budget",
"default_value": null,
"min_value": null,
"max_value": null,
"step_size": null,
"scale": null,
"reversible": null,
"parent_code": "material-type",
"parent_name": "Soort",
"unit_code": null,
"images": [
{
"language": "all",
"url": "https://cdn-test.print-uploader.com/201803/142/d5d5906f682cb114.jpg"
}
]
},
{
"type_code": "radio",
"name": "3 mm",
"label": null,
"description": null,
"value": null,
"code": "3mm",
"default_value": null,
"min_value": null,
"max_value": null,
"step_size": null,
"scale": null,
"reversible": null,
"parent_code": "material-thickness",
"parent_name": "Dikte",
"unit_code": null,
"images": [
{
"language": "all",
"url": "https://cdn-test.print-uploader.com/201803/145/d8920b82223291a3.svg"
}
]
},
{
"type_code": "radio",
"name": "Frezen",
"label": null,
"description": "We frezen de plaat op het gewenste formaat.",
"value": null,
"code": "milling",
"default_value": null,
"min_value": null,
"max_value": null,
"step_size": null,
"scale": null,
"reversible": null,
"parent_code": "finishing",
"parent_name": "Gewenste afwerking",
"unit_code": null,
"images": [
{
"language": "all",
"url": "https://cdn-test.print-uploader.com/201803/799/f5fcd86b245a41e8.jpg"
}
]
},
{
"type_code": "radio",
"name": "Geen boorgaten",
"label": null,
"description": null,
"value": null,
"code": "no-drillholes",
"default_value": null,
"min_value": null,
"max_value": null,
"step_size": null,
"scale": null,
"reversible": null,
"parent_code": "drill-holes",
"parent_name": "Boorgaten",
"unit_code": null,
"images": [
{
"language": "all",
"url": "https://cdn-test.print-uploader.com/201803/136/14fe18832d7e6c11.svg"
}
]
},
{
"type_code": "radio",
"name": "Eigen ontwerp",
"label": null,
"description": "Je levert een eigen bestand aan.",
"value": null,
"code": "customer-supplied-file",
"default_value": null,
"min_value": null,
"max_value": null,
"step_size": null,
"scale": null,
"reversible": null,
"parent_code": "uploader-application",
"parent_name": "Ontwerp",
"unit_code": null,
"images": [
{
"language": "all",
"url": "https://cdn-test.print-uploader.com/202011/4744/1a47be3862236f95.png"
}
]
}
],
"upload": true,
"uploaders": [
{
"type": "single",
"amount": 1,
"width": 40,
"height": 20,
"length": 0,
"minimal_dpi": 72,
"mirror_enabled": true,
"fill_enabled": true,
"rotation_enabled": true,
"file_limit": null,
"require_white_spot": false,
"required_cut_names": [
],
"optional_cut_names": [
],
"tiling_enabled": true,
"tiling_mandatory": false,
"tiling_direction": null,
"max_width_excl_overlap": 146,
"max_height_excl_overlap": 301,
"max_width_incl_overlap": 146,
"max_height_incl_overlap": 301,
"bleed_top": 1,
"bleed_right": 1,
"bleed_bottom": 1,
"bleed_left": 1
}
],
"linked_products": [
{
"title": null,
"description": null,
"code": "dibond-budget-3",
"article_group_code": "MA",
"unit_code": "m2",
"shipping_weight": 4.32
}
],
"prices_total": {
"18": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"24": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"48": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"72": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"96": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"120": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"144": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"168": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"192": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"216": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"240": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"264": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"288": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"312": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"336": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"360": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"384": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"408": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"432": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"456": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"480": {
"purchase_base_price": 1.88,
"purchase_rush_surcharge": 0,
"purchase_price": 1.88,
"purchase_price_incl_vat": 1.88,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
}
},
"prices_per_product": {
"18": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"24": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"48": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"72": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"96": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"120": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"144": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"168": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"192": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"216": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"240": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"264": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"288": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"312": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"336": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"360": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"384": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"408": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"432": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"456": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
},
"480": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
}
}
}
],
"calculation_id": 60650
}
Receive price for product and delivery
Call the /price endpoint (POST) to retrieve pricing for the configured product and available delivery options.
The previous step returned pricing information for the product based on production hours.
This step will return product and delivery pricing. Based on the request payload this will be the all available delivery options for the requested delivery date, or for a specific delivery method.
Request payload:
- language: this determines which language will be used for the description such as for the delivery methods
- deliveries: the delivery address and the delivery date
- shipping_method_code: the shipment method to be used for the delivery. Omit this parameter to receive all available shipment methods
- products: the product configuration as created in the previous step
POST /price example
Request payload (price)
{
"language": "en",
"deliveries": [{
"address": {
"company_name": "Probo",
"first_name": "Mr.",
"last_name": "Print",
"street": "Fortuinweg",
"house_number": "17",
"addition": "",
"postal_code": "9101PE",
"city": "Dokkum",
"country": "NL",
"phone": "31612345678",
"email": ""
},
"delivery_date": "2025-03-12",
"shipping_method_code": "onbezorgd-standard"
}
],
"products": [
{
"code": "dibond",
"options":[
{
"code": "height",
"value": 40
},
{
"code": "width",
"value": 20
},
{
"code": "amount",
"value": 5
},
{
"code": "direct-to-plate"
},
{
"code": "single-sided"
},
{
"code": "dibond-budget"
},
{
"code": "3mm"
},
{
"code": "milling"
},
{
"code": "no-drillholes"
}
,
{
"code": "customer-supplied-file"
}
]
}
]
}
Response (Price)
{
"status": "ok",
"code": 200,
"message": "Price calculated",
"prices": [
{
"products_purchase_base_price": 9.38,
"products_purchase_rush_surcharge": 0,
"products_purchase_price": 9.38,
"products_purchase_price_incl_vat": 9.38,
"products_sales_price": 23.45,
"products_sales_price_incl_vat": 23.45,
"delivery_date": "2025-03-12T00:00:00+0000",
"shipping_date": "2025-03-10T23:59:00+0000",
"production_hours": 480,
"products": [
{
"id": 1,
"prices_total": {
"purchase_base_price": 9.38,
"purchase_rush_surcharge": 0,
"purchase_price": 9.38,
"purchase_price_incl_vat": 9.38,
"sales_price": 23.45,
"sales_price_incl_vat": 23.45
},
"prices_per_product": {
"purchase_base_price": 1.876,
"purchase_rush_surcharge": 0,
"purchase_price": 1.876,
"purchase_price_incl_vat": 1.876,
"sales_price": 4.69,
"sales_price_incl_vat": 4.69
}
}
],
"deliveries": [
{
"shipping_method_api_code": "onbezorgd-standard",
"shipping_method_name": "ONB - Standard",
"shipping_method_description": "description EN",
"shipping_method_short_description": "",
"shipping_method_icon": "https://cdn.print-uploader.com/shipping_method_icons/onb.svg",
"transit_days": 1,
"prices": {
"purchase_base_price": 11.95,
"purchase_rush_surcharge": 0,
"purchase_packaging_price": 0,
"purchase_shipping_price": 11.95,
"purchase_price": 11.95,
"purchase_price_incl_vat": 11.95,
"sales_price": 0,
"sales_price_incl_vat": 0
}
}
]
}
],
"calculation_id": 60684
}