Aller directement au contenu principal
Une requête API Fabrixa à l'écran — payload de commande JSON avec en-têtes d'authentification, sur fond de textile tissé
Développeurs · Guide d'intégration

De Auth au fulfilment en quinze minutes.

Il existe deux façons d'envoyer des commandes à Fabrixa : connecter la boutique que vous gérez déjà (Shopify ou WooCommerce) sans avoir à écrire de code, ou développer directement sur l'API d'intégration. Ce guide couvre les deux méthodes : connectez un canal de vente en quelques minutes, ou passez de l'authentification au fulfilment en quinze minutes.

Shopify et WooCommerce sans code · REST + JSON API · Authentification à deux en-têtes · 30 requêtes/min

Sans code · Shopify et WooCommerce

Vous vendez déjà sur Shopify ou WooCommerce ? Connectez-vous en quelques minutes.

La plupart des boutiques ne touchent jamais à l'API. Ajoutez Fabrixa comme canal de vente et les commandes passées sur votre boutique sont directement transmises à la production : synchronisation des produits, mise à jour des statuts, sans avoir à écrire ni à maintenir de code. La méthode API présentée plus loin est destinée aux vitrines personnalisées et aux plateformes POD.

Créer un canal → choisir votre mode de vente

Dans votre tableau de bord, ouvrez Create channel et choisissez votre type d'intégration. Chaque canal conserve ses propres produits, commandes importées et règles d'importation : connectez-en autant que vous en utilisez.

  • Shopify — OAuth en un clic depuis votre interface d'administration Shopify
  • WooCommerce — se connecter à l'aide des clés REST API
  • Custom API — plateformes POD et vitrines personnalisées via l'API d'intégration
  • Partenaire d'impression — recevoir des commandes de production d'un partenaire Fabrixa
account.fabrixa.com/channels/create
L'écran de création de canal Fabrixa — choix d'un type d'intégration : Shopify, WooCommerce, API personnalisé ou partenaire d'impression, via le formulaire de connexion WooCommerceL'écran de création de canal Fabrixa — choix d'un type d'intégration : Shopify, WooCommerce, API personnalisé ou partenaire d'impression, via le formulaire de connexion WooCommerce
Shopify

OAuth en un clic

Aucune clé à copier. Autorisez Fabrixa depuis votre interface d'administration Shopify et la connexion est établie.

  1. Dans Create channel, sélectionnez Shopify.
  2. Validez la connexion depuis votre interface d'administration Shopify (OAuth) — aucune clé à copier.
  3. Les produits et les commandes se synchronisent automatiquement. Chaque nouvelle commande Shopify est importée dans Fabrixa et passe en production.
WooCommerce

Se connecter à l'aide des clés REST API

Une boutique WordPress se connecte à l'aide d'une paire de clés REST en lecture/écriture — générée dans WooCommerce, puis collée une seule fois dans Fabrixa.

  1. Dans WooCommerce : Settings → Advanced → REST API → Add key avec Lecture/Écriture autorisations.
  2. Collez la clé ck_ et le secret cs_ et le domaine de votre boutique dans Fabrixa.
  3. Enregistrez — les commandes se synchronisent automatiquement dès que la connexion est établie. Vous pourrez modifier les règles d'importation ultérieurement dans les paramètres du canal.

Vous vendez des produits personnalisés ? Fabrixa Studio — l'éditeur de design white-label — est également disponible sur les boutiques Shopify et WooCommerce, ce qui permet à vos clients de personnaliser les produits sous votre marque. Voir Fabrixa Studio →

account.fabrixa.com/channels
La vue « Canaux Fabrixa » : les canaux de vente Shopify, WooCommerce et API connectés s'affichent côte à côte, avec les produits synchronisés, les commandes importées et le chiffre d'affaires par canalLa vue « Canaux Fabrixa » : les canaux de vente Shopify, WooCommerce et API connectés s'affichent côte à côte, avec les produits synchronisés, les commandes importées et le chiffre d'affaires par canal
Un tableau de bord

Tous les canaux, toutes les commandes, une seule vue d'ensemble.

Les boutiques connectées apparaissent à côté de vos canaux API et partenaires dans la vue « Canaux » : produits synchronisés, commandes reçues, dernière référence importée et chiffre d'affaires par canal. Passez un canal du statut « Brouillon » au statut « Actif » lorsque vous êtes prêt ; cela n'entraîne aucun changement en aval.

Vous préférez créer une boutique en ligne personnalisée ou votre propre plateforme POD ? La suite de ce guide présente la méthode API : de l'authentification au fulfilment en quatre étapes.

Conditions préalables

Ce dont vous avez besoin avant de commencer.

Trois éléments vous permettent de passer de zéro à une commande réelle. Ils sont tous délivrés depuis votre tableau de bord Fabrixa ou par votre Solutions Engineer.

01
Identifiants API

Un Application Access Token et une Application Key. Ces deux éléments sont obligatoires pour chaque requête : le jeton doit figurer dans l'en-tête « Authorization », et la clé dans l'en-tête « X-Application-Key ». Créez un canal de vente dans votre tableau de bord pour les générer instantanément — aucune demande d'accès nécessaire.

02
Endpoint de webhook

Un endpoint HTTPS accessible au public qui accepte les requêtes POST au format JSON. « Localhost » fonctionne en mode développement via un tunnel. Vous vérifiez la signature HMAC-SHA256 de chaque payload avant de le traiter.

03
Fichiers d'impression

Votre fichier d'impression — au format PDF, TIFF, JPG ou PNG — accessible via HTTPS sans authentification. Couleurs RGB, jusqu’à 50 Mo et 15 000 px par côté. Les PDF de plusieurs pages doivent comporter une page par calque. Nous récupérons le fichier et générons les fichiers d'impression adaptés lors du rendu du travail.

Étape 1 — S'authentifier

Vérifiez vos identifiants à l'aide d'une commande ping.

Chaque requête est envoyée à l'URL de base https://api.fabrixa.com/v2/integration les deux en-têtes étant définis. GET /ping vérifie que le jeton et la clé sont valides avant toute autre opération.

Statut 401 signifie qu'un en-tête manque ou que le jeton a été révoqué. Statut 403 signifie que les identifiants sont valides mais qu'ils ne disposent pas des autorisations nécessaires pour accéder à la ressource.

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
Étape 2 — Répertorier les produits

Consultez les SKU disponibles sur votre compte.

Le catalogue affiche les variantes de produit avec leurs codes SKU et variant_id. Chaque réponse de la liste est encadrée par la balise standard links / meta / data enveloppe, donc numérotez les pages avec le next_page lien. Mise en cache locale — le catalogue n'est pas généré à chaque requête.

Le détail complet des champs figure dans la Référence Swagger.

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" }
  ]
}
Étape 3 — Passer une commande

Une seule requête POST suffit pour lancer la commande en production.

Envoyer rows (SKU + quantité + un fichier PDF source), customer et shipping_address. Définissez votre propre number en tant que référence — si vous ne l'indiquez pas, nous en générerons un. Enregistrez l'identifiant de commande Fabrixa renvoyé en association avec votre commande.

Les commandes des studios remplacent les sources fichier avec le cart_item_key du design enregistré ; tout le reste est identique.

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"
  }
}
Étape 4 — Webhooks

Restez informé à chaque étape du cycle de vie de la commande.

Configurez l'URL de votre webhook dans le tableau de bord. Nous y envoyons order.created et order.updated en POST avec le corps complet de la commande, un en-tête x-webhook-signature (HMAC-SHA256) et un en-tête x-webhook-topic et vérifiez la signature, renvoyez rapidement un 200 puis traitez de manière asynchrone.

Tous les événements et les extraits de code de vérification se trouvent dans la référence des webhooks.

POST → votre 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"
}
Erreurs et rate limits

Ce à quoi il faut s'attendre lorsque les choses tournent mal.

Les erreurs sont renvoyées au format JSON, jamais au format HTML. Le errors.messages array indique ce qui a échoué ; en cas d'erreur 400, il répertorie les champs qui n'ont pas été validés.

400 / 401 / 403 / 404

Erreur de validation, identifiants manquants ou révoqués, autorisations insuffisantes ou ressource inconnue.

429 Too Many Requests

30 requêtes par application et par minute. X-RateLimit-Limit et X-RateLimit-Remaining figurent dans chaque réponse.

5xx

Côté serveur. Réessayez avec back-off ; si le problème persiste, envoyez l'identifiant de la requête à votre Solutions Engineer.

Réponse d'erreur
{
  "links": { "self": ".../v2/integration/orders" },
  "meta":  [],
  "errors": {
    "messages": [
      "Application Key is not specified."
    ]
  }
}
FAQ

Intégration : les réponses à vos questions

Combien de requêtes API par minute Fabrixa autorise-t-il ?

Fabrixa autorise 30 requêtes par application et par minute ; tout dépassement de cette limite entraîne une réponse 429 « Too Many Requests ». Les en-têtes X-RateLimit-Limit et X-RateLimit-Remaining sont inclus dans chaque réponse, ce qui permet à une intégration de suivre son quota restant avant d'atteindre la limite.

Quels formats d'image Fabrixa accepte-t-il pour les fichiers d'impression ?

Fabrixa accepte les fichiers graphiques au format PDF, TIFF, JPG ou PNG en couleurs RGB, d'une taille maximale de 50 Mo et de 15 000 px par côté, accessibles via HTTPS sans authentification. Les PDF de plusieurs pages sont traités comme une page par calque, et Fabrixa récupère lui-même le fichier pour générer les fichiers d'impression corrects lors du rendu du travail.

Comment connecter une boutique WooCommerce à Fabrixa ?

Dans WooCommerce, accédez à « Paramètres », puis à « Avancé », puis à « REST API », et ajoutez une clé dotée des droits de lecture/écriture. Collez la clé ck_ générée, le secret cs_ et le domaine de votre boutique dans Fabrixa, enregistrez, et les commandes se synchroniseront automatiquement — les règles d’importation peuvent être modifiées ultérieurement dans les paramètres du canal.

De quoi ai-je besoin avant de passer ma première commande via l'API Fabrixa ?

Avant de passer une première commande, vous devez disposer d’un Application Access Token et d’une Application Key fournis par un canal de vente, d’un endpoint webhook HTTPS public permettant de vérifier la signature HMAC-SHA256 de chaque payload, ainsi que de visuels accessibles via HTTPS sans authentification. Ces trois éléments sont émis ou configurés depuis le tableau de bord Fabrixa, et les identifiants sont générés instantanément lors de la création du canal de vente.

Que signifie une réponse 403 provenant de l'API Fabrixa ?

Un code d'erreur 403 indique que l'Application Access Token et l'Application Key sont valides, mais qu'ils ne disposent pas des autorisations nécessaires pour accéder à la ressource demandée. Cela diffère d'un code 401, qui signifie qu'un en-tête obligatoire est manquant ou que le jeton a été révoqué ; ces deux cas peuvent être vérifiés à l'aide d'une requête GET /ping avant de poursuivre le développement.

Vous êtes bloqué ?

Adressez-vous à un Solutions Engineer.

Pour toute assistance en matière d'intégration, de problèmes liés aux identifiants ou aux canaux de vente, d'exigences spécifiques ou de planification des capacités, veuillez vous adresser au canal technique des Solutions Engineers (SE), et non au service commercial. Réponse sous un jour ouvré.

Base de connaissances

Vous avez des questions sur les intégrations et le modèle API ?

Les 8 réponses sur les intégrations et API → Parlez à notre équipe d'assistance →