Overslaan naar hoofdinhoud

Integratiegids

Fabrixa API integratiegids - auth, eerste opdracht, webhook afhandeling, foutherstel
ONTWIKKELAARS - INTEGRATIEGIDS

Auth tot uitvoering in vijftien minuten.

Copy-paste walkthrough van de Fabrixa REST API: authenticeren, lijst met beschikbare producten, een bestelling plaatsen, een webhook registreren, de levenscyclusgebeurtenissen afhandelen. JSON over HTTPS, bearer-token auth, idempotente verzoeken, retry-veilige webhooks. Geen verrassingen.

REST + JSON - BEARER AUTH - IDEMPOTENT - WEBHOOK-GESTUURD

PREREQUISITES

Wat je nodig hebt voordat je begint.

01
API SLEUTEL

Uitgegeven vanuit je Fabrixa account dashboard. Sandbox sleutel voor ontwikkeling, productie sleutel voor live bestellingen. Beide zijn tokens aan toonder.

02
WEBHOOK EINDPUNT

Een publiekelijk bereikbaar HTTPS eindpunt aan jouw kant dat JSON POST verzoeken kan accepteren. Localhost werkt in dev via tunnelling tools.

03
KUNSTWERKEN BESTANDEN

Printklaar artwork toegankelijk via HTTPS URL. Adobe Illustrator, Photoshop, raster of vector. We halen het bestand op wanneer we de afdruktaak renderen.

STAP 1 - VERIFIËREN

Test de API-toets met een hello-oproep.

Bearer-token auth. Sandbox basis URL is https://sandbox.api.fabrixa.com/v1; productie verwisselt het subdomein.

GET /v1/account
# Auth- en accounttoegang verifiëren
krul https://sandbox.api.fabrixa.com/v1/account
  -H "Autorisatie: Bearer $FABRIXA_API_KEY" \
  -H "Accepteren: toepassing/json"

# 200 OK
{
  "account_id": "acct_4fK8B2qZ",
  "omgeving": "zandbak",
  "niveau": "productie",
  "webhook_url": nul
}

Een 401 betekent dat de sleutel verkeerd is of ingetrokken. Maak een nieuwe aan via het dashboard. Een 403 betekent dat de sleutel geldig is, maar dat je geen rechten hebt voor de bron (zeldzaam op /rekening).

STAP 2 - PRODUCTEN OPSOMMEN

Ontdek de SKU's die beschikbaar zijn voor jouw account.

Retourneert de catalogus met product-ID's, basismaterialen, maten en prijsniveaus. Lokaal cachen; de catalogus wordt niet per verzoek vernieuwd.

GET /v1/producten
GET /v1/producten?category=kleding&page=1&limit=20

# Antwoord (ingekort)
{
  "data": [
    {
      "product_id": "prod_tee_unisex_aop",
      "categorie": "kleding.tees-tops",
      "naam": "Unisex AOP T-shirt".",
      "basis": "organic-cotton-160gsm",
      "maten": ["XS","S","M","L","XL","XXL"],
      "afdrukken": "reactief-aop",
      "productie_hub": "PT",
      "lead_time_days": { "min": 6, "max": 9 }
    }
  ],
  "pagina": 1,
  "heeft_meer": Echt
}
STAP 3 - EEN BESTELLING PLAATSEN

Idempotente ordercreatie.

Stel in Idempotentie - sleutel op elk orderverzoek - veilig om dezelfde oproep opnieuw te proberen zonder dubbele orders aan te maken. Gebruik een UUID per logische order aan uw kant.

POST /v1/orders
POST /v1/orders
Idempotentie - sleutel: 8e6f4b2a-7c1d-4f3e-9a8b-1e2d3c4b5a6f

{
  "order_ref": "shopify-1042",
  "items": [
    {
      "product_id": "prod_tee_unisex_aop",
      "maat": "L",
      "hoeveelheid": 2,
      "artwork_url": "https://cdn.yourbrand.com/art/drop-001.png"
    }
  ],
  "ontvanger": {
    "naam": "Lena Costa",
    "adres_regel1": "Rua das Flores 12",
    "stad": "Porto",
    "land": "PT",
    "postcode": "4050-262"
  },
  "verpakking": "white-label"."
}

# 201 Gemaakt
{
  "order_id": "ord_8e6f4b2a",
  "status": "ontvangen",
  "geschatte_verzending": "2026-05-15",
  "webhook_events": ["order.printed","order.verzonden"]
}
STAP 4 - WEBHOOK EINDPUNT

Meld u aan voor de levenscyclus van een bestelling.

Stel de webhook URL eenmalig in op accountniveau. Elke levenscyclusgebeurtenis van een bestelling POST naar die URL. Controleer de HMAC-handtekening voor verwerking.

PUT /v1/account/webhook
PUT /v1/account/webhook

{
  "url": "https://api.yourbrand.com/fabrixa/webhook",
  "evenementen": [
    "order.received",
    "order.printed",
    "order.verzonden",
    "order.mislukt"
  ]
}

# Webhook payload (POST naar uw eindpunt)
{
  "gebeurtenis": "order.verzonden",
  "order_id": "ord_8e6f4b2a",
  "order_ref": "shopify-1042",
  "timestamp": "2026-05-15T11:32:08Z",
  "volgen": {
    "drager": "DHL",
    "tracking_number": "JJD0123456789",
    "tracking_url": "https://dhl.com/track/JJD0123456789"
  }
}

Volledige referentie van het evenement en verificatie van de handtekening op de webhooks pagina.

FOUTAFHANDELING & SNELHEIDSLIMIETEN

Wat je kunt verwachten als het misgaat.

FOUTRESPONSVORM

Fouten zijn JSON, nooit HTML.

Foutreactie
{
  "fout": {
    "code": "kunstwerk_onbereikbaar",
    "bericht": "GET op artwork_url mislukt (time-out 30s)",
    "request_id": "req_94kQ7r2L",
    "opnieuw proberen": Echt
  }
}

Codes zijn stabiele strings - veilig in te schakelen. opnieuw proberen: waar betekent veilig om opnieuw te proberen met dezelfde idempotentiesleutel.

TARIEFLIMIETEN

Schuifvenster, kopteksten vertellen je het budget.

  • Zandbak: 60 aanvraag / minuut per sleutel
  • Productie: 600 req / minuut per sleutel (verhogen op aanvraag)
  • Koppen: X-RateLimit-Remaining, X-RateLimit-Reset
  • 429 antwoord op teveel met Opnieuw proberen na seconden
  • Webhook leveringen tellen niet mee voor je inbound budget
STUCK?

Praat met een oplossingsengineer.

Voor ondersteuning bij integratie, problemen met sandbox-sleutels, aangepaste vereisten of capaciteitsplanning. Het technische SE-kanaal in plaats van de verkooplijn. Gemiddeld antwoord binnen één werkdag.

Winkelwagen (0 artikelen)

Maak je account aan