Démarrage rapide

Ce guide vous accompagne dans votre premier appel authentifié à l'API de la plateforme Inklura. L'API repose sur tRPC : vous appelez une procédure par son nom router.procedure et vous lui passez une entrée JSON.

1. Obtenir une session

Une session est créée lorsque vous vous connectez à manage.inklura.fr. Pour un accès programmatique, vous envoyez cette session sous forme de JWT Bearer, signé par la plateforme, dans l'en-tête Authorization. La page Authentification présente toutes les manières d'en obtenir un. Pour un premier test, le plus rapide est de copier la valeur du cookie __Secure-authjs.session-token depuis un navigateur connecté à la console.

export INKLURA_TOKEN="<your session JWT>"
export INKLURA_BASE="https://manage.inklura.fr"

2. Vérifier votre identité

auth.getSession renvoie la session attachée à votre token : votre utilisateur, avec son locataire et son site. C'est un bon premier appel pour confirmer que l'authentification fonctionne.

curl -s "$INKLURA_BASE/api/trpc/auth.getSession" \
  -H "Authorization: Bearer $INKLURA_TOKEN" | jq

Une requête tRPC sans entrée est un simple GET. La réponse est une enveloppe superjson :

{
  "result": {
    "data": {
      "json": {
        "user": { "id": "…", "email": "…", "tenantId": "…", "siteId": "…" },
        "expires": "…"
      }
    }
  }
}

La valeur utile se trouve sous result.data.json. Sans token valide, l'appel échoue avec UNAUTHORIZED (HTTP 401). auth.getSession demande aussi la permission auth:read : si votre compte ne l'a pas, l'appel échoue avec FORBIDDEN (HTTP 403) alors que le token est valide.

3. Lire des données

La plupart des lectures prennent un objet en entrée. Pour une query, passez-le encodé dans l'URL sous la forme ?input={"json":<value>}. products.list prend une page numérotée à partir de 0 et une limit :

curl -s -G "$INKLURA_BASE/api/trpc/products.list" \
  -H "Authorization: Bearer $INKLURA_TOKEN" \
  --data-urlencode 'input={"json":{"page":0,"limit":20}}' | jq '.result.data.json'

Sans valeur, page vaut 0 (la première page) et limit vaut 10. Parmi les filtres facultatifs : search (cherche dans le nom, la description, la référence ou le SKU), active et vendorId. Le résultat contient items, total, page, limit et pages.

4. Écrire des données

Les mutations sont des POST, avec l'entrée dans le corps JSON (encapsulée dans {"json": …}). clients.create exige un name ; email est facultatif :

curl -s -X POST "$INKLURA_BASE/api/trpc/clients.create" \
  -H "Authorization: Bearer $INKLURA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"json":{"name":"Acme SARL","email":"contact@acme.fr"}}' | jq '.result.data.json'

La création de clients demande la permission clients:write sur votre compte.

Astuce

Pour un client TypeScript, pointez le client tRPC officiel (@trpc/client avec httpBatchLink et le transformer superjson) vers https://manage.inklura.fr/api/trpc et définissez l'en-tête Authorization. Un exemple complet figure dans Procédures tRPC.

Étapes suivantes