Ga naar de hoofdinhoud
Een Fabrixa API-verzoek op het scherm — JSON-bestelgegevens met authenticatieheaders, tegen een achtergrond van geweven textiel
Ontwikkelaars · Integratiegids

Van auth tot fulfilment in vijftien minuten.

Er zijn twee manieren om bestellingen naar Fabrixa te verzenden: koppel de webwinkel die je al beheert — Shopify of WooCommerce — zonder te hoeven programmeren, of bouw rechtstreeks via de API-integratie. In deze handleiding komen beide manieren aan bod: koppel een verkoopkanaal binnen enkele minuten, of doorloop het hele proces van autorisatie tot afhandeling in een kwartier.

No-code Shopify & WooCommerce · REST + JSON API · Authenticatie met twee headers · 30 verzoeken/minuut

Geen code · Shopify & WooCommerce

Verkoop je al via Shopify of WooCommerce? Sluit je binnen enkele minuten aan.

De meeste winkels maken nooit gebruik van API. Voeg Fabrixa toe als verkoopkanaal en bestellingen uit je winkel worden direct naar de productie doorgestuurd — producten worden gesynchroniseerd, statussen worden teruggemeld, en je hoeft geen code te schrijven of te onderhouden. De API-route verderop is bedoeld voor aangepaste webwinkels en POD-platforms.

Kanaal aanmaken → kies hoe je verkoopt

Open in je dashboard Create channel en kies het type integratie. Elk kanaal behoudt zijn eigen producten, geïmporteerde bestellingen en importregels — je kunt er zoveel koppelen als je wilt.

  • Shopify — OAuth met één klik vanuit je Shopify-beheerdersgedeelte
  • WooCommerce — verbinding maken met REST API-sleutels
  • Aangepaste API — POD-platforms en op maat gemaakte webwinkels via de API-integratie
  • Drukwerkpartner — productieopdrachten ontvangen van een Fabrixa-partner
account.fabrixa.com/channels/create
Het scherm ‘Kanaal aanmaken’ van Fabrixa — een integratietype kiezen: Shopify, WooCommerce, Aangepaste API of een printpartner, via het WooCommerce-koppelingsformulierHet scherm ‘Kanaal aanmaken’ van Fabrixa — een integratietype kiezen: Shopify, WooCommerce, Aangepaste API of een printpartner, via het WooCommerce-koppelingsformulier
Shopify

OAuth met één klik

Er hoeven geen sleutels te worden gekopieerd. Geef Fabrixa toestemming via je Shopify-beheerderspaneel en de verbinding is actief.

  1. In Create channel, kies Shopify.
  2. Keur de verbinding goed vanuit je Shopify-beheerdersgedeelte (OAuth) — je hoeft geen sleutels te kopiëren.
  3. Producten en bestellingen worden automatisch gesynchroniseerd. Elke nieuwe Shopify-bestelling wordt geïmporteerd in Fabrixa en gaat in productie.
WooCommerce

Verbinding maken met REST API-sleutels

Een WordPress-webwinkel maakt verbinding via een REST-sleutelpaar voor lezen en schrijven — dat in WooCommerce wordt gegenereerd en eenmalig in Fabrixa wordt ingevoerd.

  1. In WooCommerce: Settings → Advanced → REST API → Add key met Lezen/Schrijven machtigingen.
  2. Plak de ck_ sleutel, cs_ het wachtwoord en het domein van je winkel in Fabrixa.
  3. Opslaan — bestellingen worden automatisch gesynchroniseerd zodra er verbinding is. Je kunt de importregels later aanpassen in de kanaalinstellingen.

Verkoop je producten op maat? Fabrixa Studio — de white-label-ontwerpeditor — is ook beschikbaar in Shopify- en WooCommerce-winkels, zodat je klanten producten onder jouw merknaam kunnen personaliseren. Zie Fabrixa Studio →

account.fabrixa.com/channels
Het overzicht ‘Fabrixa-kanalen’ — gekoppelde verkoopkanalen van Shopify, WooCommerce en API naast elkaar, met gesynchroniseerde producten, geïmporteerde bestellingen en omzet per kanaalHet overzicht ‘Fabrixa-kanalen’ — gekoppelde verkoopkanalen van Shopify, WooCommerce en API naast elkaar, met gesynchroniseerde producten, geïmporteerde bestellingen en omzet per kanaal
Eén dashboard

Elk kanaal, elke bestelling, één overzicht.

Aangesloten winkels staan naast je API- en partnerkanalen in het overzicht ‘Kanalen’ — gesynchroniseerde producten, ontvangen bestellingen, de laatst geïmporteerde referentie en omzet per kanaal. Zet een kanaal van ‘concept’ naar ‘live’ zodra je er klaar voor bent; er verandert verder niets in de keten.

Wil je liever een op maat gemaakte webwinkel bouwen of je eigen POD-platform? De rest van deze handleiding gaat over de API-aanpak: van authenticatie tot afhandeling in vier stappen.

Vereisten

Wat je nodig hebt voordat je begint.

Er zijn drie stappen die je van nul naar een live-order brengen. Deze worden allemaal in gang gezet via je Fabrixa-dashboard of door je solutions engineer.

01
API-inloggegevens

Een applicatietoegangstoken en een applicatiesleutel. Beide zijn bij elk verzoek vereist: het token in de Authorization-header en de sleutel in X-Application-Key. Maak een verkoopkanaal aan in je dashboard om ze direct te genereren — hiervoor is geen verzoek nodig.

02
Webhook-endpoint

Een voor het publiek toegankelijk HTTPS-endpoint dat JSON POST-verzoeken accepteert. Localhost werkt tijdens de ontwikkeling via een tunnel. Je controleert de HMAC-SHA256-handtekening van elke payload voordat je deze verwerkt.

03
Ontwerpbestanden

Je ontwerpbestand — PDF, TIFF, JPG of PNG — moet via HTTPS zonder authenticatie toegankelijk zijn. RGB-kleur, maximaal 50 MB en 15.000 px per zijde. Bij PDF’s met meerdere pagina’s geldt: één pagina per laag. Wij halen het bestand op en genereren de juiste drukbestanden wanneer we de opdracht verwerken.

Stap 1 — Inloggen

Controleer of je inloggegevens kloppen met een ping.

Elk verzoek wordt naar de basis-URL gestuurd https://api.fabrixa.com/v2/integration waarbij beide headers zijn ingesteld. GET /ping controleert of het token en de sleutel geldig zijn voordat je verdergaat.

A 401 betekent dat er een header ontbreekt of dat het token is ingetrokken. Een 403 betekent dat de inloggegevens weliswaar geldig zijn, maar dat er geen toestemming is voor de bron.

GET /v2/integration/ping
# Verify auth before anything else
curl https://api.fabrixa.com/v2/integration/ping \
  -H "Accept: application/json" \
  -H "Authorization: Bearer APPLICATION_ACCESS_TOKEN" \
  -H "X-Application-Key: APPLICATION_KEY"

# 200 OK   → credentials valid
# 401      → missing header or revoked token
# 403      → valid, but no access to the resource
Stap 2 — Producten ophalen

Bekijk welke SKU’s er voor je account beschikbaar zijn.

De catalogus geeft productvarianten weer met hun SKU en variant_id. Elk antwoord op de lijst wordt omgeven door de standaard links / meta / data envelope, dus pagineren met de next_page link. Lokaal in de cache opslaan — de catalogus wordt niet per verzoek opgevraagd.

Alle details over het veld staan in de Swagger-referentie.

GET /v2/integration/products
GET /v2/integration/products?page=1

{
  "links": {
    "self":      ".../products?page=1",
    "next_page": ".../products?page=2",
    "prev_page": null
  },
  "meta":  { "total": 248, "current_page": 1, "per_page": 10 },
  "data": [
    { "id": 1306, "name": "Unisex AOP T-shirt", "SKU": "COF099191" }
  ]
}
Stap 3 — Een bestelling plaatsen

Eén POST-verzoek zet de bestelling in productie.

Verzenden rows (SKU + aantal + een bron-PDF), customer en shipping_address. Stel je eigen number als referentie — laat deze weg en wij genereren er een. Sla het geretourneerde Fabrixa-order-id op bij je bestelling.

Bij Studio-bestellingen vervang je sources door een cart_item_key — al het andere is hetzelfde.

POST /v2/integration/orders
POST /v2/integration/orders

{
  "number":       "ORD-2026-0142",
  "purchased_at": "2026-05-28 14:22:01",
  "rows": [
    {
      "sku":      "COF099191",
      "quantity": 1,
      "sources": [
        { "type": "file", "url": "https://cdn.you.com/art/9812.pdf" }
      ]
    }
  ],
  "customer": {
    "first_name": "Maria", "last_name": "Silva",
    "email": "maria@example.com", "phone": "+351912345678"
  },
  "shipping_address": {
    "address": "Rua do Carmo 42", "city": "Lisboa",
    "postal_code": "1200-094",
    "country_code": "PT", "country": "Portugal"
  }
}
Stap 4 — Webhooks

Blijf op de hoogte van de levenscyclus van de bestelling.

Stel je webhook-URL in via het dashboard. We sturen daar een POST met order.created en order.updated naartoe, met de volledige body van de bestelling, een x-webhook-signature (HMAC-SHA256) en een x-webhook-topic header. Controleer de handtekening, stuur snel een 200 terug en verwerk asynchroon.

Alle gebeurtenissen en de verificatiefragmenten staan op de webhooks referentie.

POST → je endpoint
# Request headers
content-type:       application/json
x-webhook-topic:    order.updated
x-webhook-signature: YmEwNjBhMGMy...AxMw==

# Body (truncated)
{
  "id": 23069,
  "number": "1250211835",
  "status": "imported",
  "fulfillment_status": "unfulfilled",
  "updated_at": "2026-05-28T07:43:52Z"
}
Fouten en limieten

Wat je kunt verwachten als het misgaat.

Fouten worden weergegeven als JSON, nooit als HTML. De errors.messages array geeft aan wat er mis is gegaan; bij een 400-fout worden de velden weergegeven die niet zijn gevalideerd.

400 / 401 / 403 / 404

Validatiefout, ontbrekende of ingetrokken inloggegevens, onvoldoende rechten of onbekende bron.

429 Too Many Requests

30 verzoeken per applicatie per minuut. X-RateLimit-Limit en X-RateLimit-Remaining staan in elk antwoord.

5xx

Aan de serverzijde. Probeer het opnieuw met een back-off; als het probleem zich blijft voordoen, stuur dan het verzoek-ID naar je solutions engineer.

Foutreactie
{
  "links": { "self": ".../v2/integration/orders" },
  "meta":  [],
  "errors": {
    "messages": [
      "Application Key is not specified."
    ]
  }
}
Zit je vast?

Praat met een solutions engineer.

Voor ondersteuning bij integratie, problemen met inloggegevens of verkoopkanalen, specifieke vereisten of capaciteitsplanning: neem contact op met het technische SE-kanaal, niet met de verkoopafdeling. Reactie binnen één werkdag.