Met de Customix Integrations API haal je je gepersonaliseerde bestellingen op in je eigen systemen: de printbestanden die Customix heeft gegenereerd en alles wat je klanten tijdens het personaliseren hebben ingevoerd, zoals namen, eigen tekst, kleuren en gekozen lay-outs. Gebruik de API wanneer een productietool, een spreadsheet of een automatiseringsplatform zoals Make je bestelgegevens nodig heeft zonder dat iemand ze met de hand hoeft over te nemen.
Voor een API-sleutel ga je in de linkerzijbalk naar Instellingen, open je het tabblad Integraties en klik je in de kaart API-sleutel op Sleutel aanmaken. Zie Hoe krijg ik een Customix-API-sleutel voor de details.
🔑 Authenticatie
Alle verzoeken vereisen je API-sleutel in de header:
Authorization: Bearer <your_api_key>🌐 Base URL
https://app.customix.io/api/integrations/v1📘 Endpoints
1. Lijst met bestellingen ophalen
Endpoint:
GET /ordersBeschrijving: haal je gepersonaliseerde bestellingen op, standaard de nieuwste eerst.
Parameters:
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
shop | string | ✅ | Naam van de Shopify-winkel. Als de URL van je winkel abcdef.myshopify.com is, dan is shop=abcdef |
limit | integer | ⬜ | Standaard is 50, maximumwaarde is 250 |
created_at_min | date | ⬜ | Toon bestellingen die op of na deze datum zijn aangemaakt (formaat: 2025-01-21) |
created_at_max | date | ⬜ | Toon bestellingen die op of vóór deze datum zijn aangemaakt (formaat: 2025-01-30) |
order_status | string | ⬜ | created: toon alleen open bestellingen. paid: toon alleen betaalde bestellingen. fulfilled: toon alleen afgehandelde bestellingen. |
order_by | string | ⬜ | Standaard is 'ordered_at desc'. Kan ook 'ordered_at asc', 'id asc' of 'id desc' zijn |
Headers:
| Header | Waarde |
|---|---|
Authorization | Bearer API_KEY |
Voorbeeldverzoek:
GET https://app.customix.io/api/integrations/v1/orders?shop=abcdef&limit=2Respons:
{
"data": [
{
"shop": "abcdef.myshopify.com",
"order_id": 123456789,
"order_number": "#1001",
"currency": "USD",
"customer": "John Doe",
"email": "[email protected]",
"ip": "123.123.123.123",
"total_price": 123.45,
"financial_status": "paid",
"fulfillment_status": "fulfilled",
"ordered_at": "2025-01-21 01:01:01",
"customizations": [
{
"id": "01jjavmg7t7vqj5z6qvxwie14b",
"public_customization_id": "01jjavmg7t7vqj5z6qvxwpc9kd",
"campaign_id": "01jphjdfmtxhaio94h0wd0kv0c",
"shopify_line_item_id": 11106133639222,
"shopify_product_id": 11179841648222,
"shopify_variant_id": 11191300929074,
"platform": "shopify",
"line_item_quantity": 1,
"files": [
{
"id": "01jb3092vabc7m8qw4cdqv09we",
"name": "default",
"path": "https://d6opbaohxg209.cloudfront.net/temp/extracted_67d7d664c7awe/Accessory/Laptop.png"
}
],
"values": [
{ "key": "100001", "label": "Name", "type": "text-field", "value": "Emma" },
{ "key": "layout_100003", "label": "Layout", "type": "layout-swatch", "value": "Portrait" },
{ "key": "100004", "label": "Color", "type": "color-picker", "value": "#1a2b3c" }
]
}
]
}
]
}Foutreacties:
| Code | Bericht | Beschrijving |
|---|---|---|
| 401 | Unauthorized | Ongeldig of ontbrekend token |
| 403 | Forbidden | Je hebt geen toestemming om bestellingen van deze winkel te bekijken |
2. Een specifieke bestelling ophalen
Endpoint:
GET /orders/{id}Beschrijving: haal één bestelling op, met de printbestanden en personalisatiewaarden.
Parameters:
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
shop | string | ✅ | Naam van de Shopify-winkel. Als de URL van je winkel abcdef.myshopify.com is, dan is shop=abcdef |
id | integer | ✅ | Shopify-bestel-ID, in het pad |
Headers:
| Header | Waarde |
|---|---|
Authorization | Bearer API_KEY |
Content-Type | application/json |
Voorbeeldverzoek:
GET https://app.customix.io/api/integrations/v1/orders/123456789?shop=abcdefRespons: één bestelling in data, met dezelfde velden als één item uit de bovenstaande lijst:
{
"data": {
"shop": "abcdef.myshopify.com",
"order_id": 123456789,
"order_number": "#1001",
"customizations": [
{
"id": "01jjavmg7t7vqj5z6qvxwie14b",
"public_customization_id": "01jjavmg7t7vqj5z6qvxwpc9kd",
"line_item_quantity": 1,
"files": [
{ "id": "01jb3092vabc7m8qw4cdqv09we", "name": "default", "path": "https://d6opbaohxg209.cloudfront.net/temp/extracted_67d7d664c7awe/Accessory/Laptop.png" }
],
"values": [
{ "key": "100001", "label": "Name", "type": "text-field", "value": "Emma" }
]
}
]
}
}(Hier ingekort: de echte respons bevat alle velden uit het voorbeeld van de lijst.)
Foutreacties:
| Code | Bericht | Beschrijving |
|---|---|---|
| 401 | Unauthorized | Ongeldig of ontbrekend token |
| 403 | Forbidden | Je hebt geen toestemming om deze bestelling te bekijken |
| 404 | Not Found | Bestelling niet gevonden |
3. De personalisatie van een specifieke bestelling ophalen
Endpoint:
GET /orders/{order_id}/customizations/{public_customization_id}Beschrijving: haal één personalisatie van een bestelling op.
Parameters:
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
shop | string | ✅ | Naam van de Shopify-winkel. Als de URL van je winkel abcdef.myshopify.com is, dan is shop=abcdef |
order_id | integer | ✅ | Shopify-bestel-ID, in het pad |
public_customization_id | string | ✅ | De public_customization_id van de personalisatie, in het pad. Je vindt hem in de respons van de bestelling en bij de bestelling in Shopify als itemeigenschap _cm-customization-id |
Headers:
| Header | Waarde |
|---|---|
Authorization | Bearer API_KEY |
Content-Type | application/json |
Voorbeeldverzoek:
GET https://app.customix.io/api/integrations/v1/orders/123456789/customizations/01jjavmg7t7vqj5z6qvxwpc9kd?shop=abcdefRespons: de personalisatie zelf, niet verpakt in data:
{
"id": "01jjavmg7t7vqj5z6qvxwie14b",
"public_customization_id": "01jjavmg7t7vqj5z6qvxwpc9kd",
"campaign_id": "01jphjdfmtxhaio94h0wd0kv0c",
"shopify_line_item_id": 11106133639222,
"shopify_product_id": 11179841648222,
"shopify_variant_id": 11191300929074,
"platform": "shopify",
"line_item_quantity": 1,
"files": [
{
"id": "01jb3092vabc7m8qw4cdqv09we",
"name": "default",
"path": "https://d6opbaohxg209.cloudfront.net/temp/extracted_67d7d664c7awe/Accessory/Laptop.png"
}
],
"values": [
{ "key": "100001", "label": "Name", "type": "text-field", "value": "Emma" },
{ "key": "layout_100003", "label": "Layout", "type": "layout-swatch", "value": "Portrait" }
]
}Foutreacties:
| Code | Bericht | Beschrijving |
|---|---|---|
| 401 | Unauthorized | Ongeldig of ontbrekend token |
| 403 | Forbidden | Je hebt geen toestemming om deze personalisatie te bekijken |
| 404 | Not Found | Bestelling niet gevonden, of personalisatie niet gevonden |
🖊️ Personalisatiewaarden
Elke personalisatie bevat values: één item voor elk personalisatieveld dat bij de bestelling is opgeslagen, dezelfde gegevens die je in Shopify als itemeigenschappen bij de bestelling ziet. Elk item heeft:
- key: de identificatie van het veld in je sjabloon. Deze blijft van bestelling tot bestelling gelijk voor hetzelfde veld van hetzelfde sjabloon, dus gebruik hem om velden in je integratie te koppelen.
- label: de optienaam die je klanten zagen, bijvoorbeeld "Name". Bij oudere bestellingen kan dit leeg zijn.
- type: het soort optie, bijvoorbeeld
text-field,color-picker,font-swatch,image-swatch,layout-swatch,date-pickeroffile-upload. - value: wat je klant heeft gekozen of ingevoerd, altijd als tekst.
Zo ziet value eruit voor elk soort optie:
- Tekst: precies wat je klant heeft getypt.
- Kleurkiezer: de kleurcode die je klant heeft gekozen.
- Lettertype-, afbeeldings-, kleur- en lijnstalen: de waarde van het staal dat je klant heeft gekozen.
- Lay-outstalen: de naam van de lay-out die je klant heeft gekozen, zoals die heette toen de bestelling werd geplaatst.
- Datum- en tijdkiezers: de datum of tijd die je klant heeft gekozen.
- Bestands- en vectoruploads: een link naar het bestand dat je klant heeft geüpload.
- Paletten en lettertypen voor woordenwolken: de kleuren of lettertypen die je klant heeft gekozen, gescheiden door komma's.
- Opties die geen tekstvorm hebben, zoals kaartstijlen, locaties of Spotify-nummers, komen terug met een lege waarde. Gebruik hiervoor de printbestanden.
⚠️ Veelvoorkomende foutcodes
| Code | Beschrijving |
|---|---|
| 400 | Bad Request |
| 401 | Unauthorized — ongeldige of ontbrekende API-sleutel |
| 403 | Forbidden — geen toestemming voor deze winkel, of API-toegang is niet beschikbaar in je huidige abonnement |
| 404 | Not Found |
| 422 | Winkelnaam ontbreekt — de parameter shop is verplicht |
| 500 | Internal Server Error |
📌 Opmerkingen
- Alle responsen zijn in JSON.
- Limiet:
2 requests/second. - Neem contact op met [email protected] voor vragen.
Bijgewerkt op: 14/09/2026