API REST · Classement douanier justifié

    Le bon code douanier, preuve à l'appui, directement dans vos systèmes

    Quatre points d'accès, une clé API. Classez un article, un lot de 1 à 100 articles, ou un même article vers plusieurs pays parmi l'UE, le Royaume-Uni, les États-Unis, la Norvège et le Canada. Chaque réponse contient un code final justifié ou la question précise qui manque. Une clé de test gratuite vous permet de valider l'intégration avant la production.

    4 points d'accès REST
    Lots de 1 à 100 articles
    5 pays disponibles · 4 destinations par requête
    Clé de test gratuite
    Référence — Requête HTTP
    Astuce : dans Postman, Insomnia ou votre code, collez seulement le bloc JSON dans le champ Body. L'URL, la méthode et les en-têtes se règlent à part. Le bloc cURL s'utilise dans un terminal.
    1. Endpoint
    POST https://bxrocmhthszinptwduze.supabase.co/functions/v1/classify-api
    2. Headers
    Content-Type: application/json
    X-API-Key: VOTRE_CLE_API
    3. Body (JSON) — à coller dans le champ « Body » de Postman / Insomnia
    {
      "reference": "SKU-ROBE-001",
      "description": "Robe pour femme en tissu de soie (chaîne et trame), 100 % soie, sans doublure",
      "materials": "100 % soie",
      "origin": "CN",
      "jurisdiction": "EU-FR"
    }

    Juridictions : EU-FR, UK, US, NO, CA (UE, TARIC), UK, US, NO, CA. Le code EU est accepté et appliqué comme EU-FR ; la réponse indique le code reçu et le code appliqué. La référence est obligatoire : c'est la clé de l'article (une même référence met à jour l'article existant, par pays). Sans référence, ou avec une référence vide, la requête est refusée avec une erreur 400 missing_reference, avant tout débit de crédit.

    4. Équivalent cURL (terminal uniquement) — copiez le bloc entier
    curl -X POST https://bxrocmhthszinptwduze.supabase.co/functions/v1/classify-api \
      -H "Content-Type: application/json" \
      -H "X-API-Key: VOTRE_CLE_API" \
      -d '{
        "reference": "SKU-ROBE-001",
        "description": "Robe pour femme en tissu de soie (chaîne et trame), 100 % soie, sans doublure",
        "materials": "100 % soie",
        "origin": "CN",
        "jurisdiction": "EU-FR"
      }'
    Réponse · 200 OK
    {
      "success": true,
      "data": {
        "reference": "SKU-ROBE-001",
        "status": "code",
        "hs_code": "6204491000",
        "question": null,
        "cited_text": null,
        "codes_in_play": [],
        "explanation": "Robe pour femmes, autre qu'en bonneterie : position 6204. Sous-position 6204.49 (d'autres matières textiles), puis 6204.49.10 « de soie ou de déchets de soie ».",
        "jurisdiction": "EU-FR",
        "jurisdiction_input": { "received": "EU-FR", "applied": "EU-FR", "normalized": false },
        "citations": ["RGI 1", "RGI 6"],
        "requires_review": false,
        "missing_info": null,
        "image_analysis": null,
        "inherited_hs6_from": null
      }
    }
    Réponse · 200 OK — question ouverte
    {
      "success": true,
      "data": {
        "reference": "SKU-ROBE-002",
        "status": "open_question",
        "hs_code": null,
        "question": "Le tissu de votre robe est-il en soie (chaîne et trame) ou en fibres synthétiques ?",
        "cited_text": "6204.4 — Robes : 6204.43 de fibres synthétiques ; 6204.49 d'autres matières textiles",
        "codes_in_play": [
          { "code": "6204430000", "description": "de fibres synthétiques" },
          { "code": "6204491000", "description": "de soie ou de déchets de soie" }
        ],
        "explanation": "La matière du tissu n'est pas déclarée : elle seule départage les sous-positions.",
        "jurisdiction": "EU-FR",
        "jurisdiction_input": { "received": "EU-FR", "applied": "EU-FR", "normalized": false },
        "citations": ["RGI 1", "RGI 6"],
        "requires_review": true,
        "missing_info": { "question": "Le tissu de votre robe est-il en soie (chaîne et trame) ou en fibres synthétiques ?" },
        "image_analysis": null,
        "inherited_hs6_from": null
      }
    }
    Réponse mode bac à sable (cbrd_test_)
    {
      "sandbox": true,
      "warning": "⚠️ MODE BAC À SABLE — Les codes douaniers retournés sont FACTICES et générés à des fins de test technique uniquement (même description = même code). Ne JAMAIS utiliser ces codes pour une déclaration douanière réelle.",
      "success": true,
      "data": {
        "reference": "SKU-ROBE-001",
        "status": "code",
        "hs_code": "8472.48.46.16",
        "question": null,
        "cited_text": null,
        "codes_in_play": [],
        "explanation": "CODE FACTICE généré par le bac à sable CrossbordIA. Ne pas utiliser pour une déclaration douanière réelle.",
        "jurisdiction": "EU-FR",
        "jurisdiction_input": { "received": "EU-FR", "applied": "EU-FR", "normalized": false },
        "citations": ["SANDBOX — citation factice"],
        "requires_review": false,
        "missing_info": null,
        "image_analysis": null,
        "sandbox_fake_code": true
      }
    }
    4
    Points d'accès REST
    5
    Pays : UE, Royaume-Uni, États-Unis, Norvège, Canada
    1
    Crédit par article et par pays
    0
    Crédit débité en cas d'erreur
    Fonctionnalités

    Ce que l'API vous apporte

    Des réponses que votre code peut traiter sans interprétation : un code final justifié, ou une question précise avec les codes en jeu.

    Simplicité

    Quatre points d'accès

    Unitaire synchrone, masse de 1 à 100 articles, multi-pays, masse multi-pays. Même authentification, mêmes champs article.

    Sécurité

    Authentification X-API-Key

    La clé complète n'est affichée qu'une fois ; seule son empreinte SHA-256 est conservée. Désactivez ou supprimez une clé depuis votre espace.

    International

    Cinq marchés en une requête

    Classez un article vers EU-FR (TARIC), UK (UK Global Tariff), US (HTS), NO (Tolltariffen) et CA (Tarif des douanes). Les 6 premiers chiffres (SH) sont repris tels quels d'un pays à l'autre ; seuls les chiffres nationaux sont classés.

    Photo

    Photo en base64

    Joignez une photo à un classement unitaire ou multi-pays. Elle ne sert qu'aux propriétés visibles et n'établit jamais la matière, le poids ou l'usage. Une photo qui contredit la description déclenche une question.

    Fiabilité

    Jamais de code deviné

    S'il manque un fait (poids, matière, usage…), la réponse s'arrête au rang atteint et contient la question à poser, la règle qui la motive et les codes en jeu.

    Robustesse

    Erreurs explicites

    Codes HTTP standard et code d'erreur stable (missing_reference, unknown_jurisdiction, rate_limit_exceeded, insufficient_credits, FEATURE_NOT_INCLUDED…), avec retry_after en cas de dépassement.

    Quotas

    Limites par offre

    Gratuit : 10 requêtes/min et 100/jour. Premium : 60/min et 5 000/jour. Pro : 120/min et 20 000/jour. Clés de test : 20/min et 100/jour. L'API n'est pas incluse dans l'offre Standard.

    Asynchrone

    Lots et webhooks

    Les lots (1 à 100 articles, ou 1 à 50 articles vers plusieurs pays) renvoient un identifiant de suivi. Le résultat peut être poussé vers votre adresse webhook_url, signé (HMAC), avec 3 tentatives.

    Intégration

    4 étapes jusqu'à votre premier code

    De la création du compte à votre première réponse justifiée.

    01

    Créez votre compte

    L'API est incluse dans l'offre Gratuit et dans les offres Premium et Pro (pas dans Standard).

    02

    Générez une clé

    Une clé de test (codes factices, sans crédit) pour intégrer, puis une clé de production.

    03

    Envoyez un article

    Un POST avec la référence, la description, les attributs déclarés et le pays visé.

    04

    Recevez un code ou une question

    Un code final justifié, ou la question précise qui manque, avec les codes en jeu.

    Prêt à intégrer ?

    Branchez le classement douanier justifié sur vos systèmes

    Pour vos développeurs : une API REST documentée, une clé de test sans crédit et des erreurs explicites. Pour vos décideurs : un code justifié par les textes officiels pour chaque article, une question quand un fait manque, et 1 crédit par article et par pays, rien en cas d'erreur.

    Documentation complète · Clé de test gratuite · 10 crédits offerts à l'essai