← Choisir ou retrouver mon budget

Utiliser le budget PAYG par REST ou MCP

Choisissez entre 10 € et 10 000 € TTC. Après confirmation du paiement par l’acheteur, le solde HT finance les trois contrôles ci-dessous et, lorsque le statut live les annonce disponibles, EffectGuard et SpendTruth. Il n’y a ni abonnement ni recharge automatique. Les opérations EUDI historiques restent séparées de ce budget. Chaque achat a son propre code et son propre solde, sans expiration commerciale.

Opération disponiblePrix HTRoute POST
Rapprochement de facture structurée JSON0,005 €/v1/invoices/reconcile
Cohérence d’une spécification d’API OpenAPI JSON fournie — pas un contrat juridique0,010 €/v1/contracts/check
Contrôle d’un lot de 1 à 200 événements JSON0,002 €/v1/events/check

Contrôles d’agents avec le même budget

EffectGuard facture 0,00039 € HT par nouvelle décision logique. SpendTruth facture 0,00029 € HT par nouvelle réservation logique. Leurs replays exacts et opérations de récupération documentées ne créent pas un nouveau débit. Les deux outils effectuent zéro action fournisseur et restent fermés si leur gate live n’est pas complète. Consultez les limites et unités comptées.

Les contrôles utilisent des algorithmes déterministes, sans appel LLM, et portent sur les données JSON que vous fournissez. Le contrôle de contrat concerne une spécification d’API OpenAPI, pas un contrat juridique. Aucun PDF/OCR ni aucune connexion bancaire ; aucun appel ne prouve une livraison réelle. Ils ne réalisent aucun paiement fournisseur ni certification juridique. Les autres API EUDI historiques indiquées « Intégration en cours » ne sont pas accessibles avec ce budget.

Télécharger le kit PAYG Bearer — Python, JavaScript, curl, Postman et modèles HTTP n8n · OpenAPI des trois opérations · Guide complet

Les modèles n8n sont désactivés par défaut et ne sont pas qualifiés par une exécution n8n réelle. Le kit utilise HTTP Bearer et fournit un pont MCP local Node.js 20+ pour un client compatible ; il ne permet aucun achat autonome. Connecter ce budget à votre IA en trois étapes.

Connecter le budget à un client IA par MCP distant ou kit local · Guide MCP distant.

Adresse et accès

https://pfxxzsnboehxsefyajml.supabase.co/functions/v1/xynthera-ai-payg

Le code privé sauvegardé avant votre achat est votre clé d’accès : Authorization: Bearer votreCodePrive. Gardez-le côté serveur ou dans votre coffre de secrets. Une URL ou une clé publique ne doit jamais contenir ce code.

Pour lire le solde : GET /v1/status. Le budget est utilisable lorsque state vaut active. remaining est exprimé en millionièmes d’euro HT : 1 000 000 correspond à 1 €.

Vérifier votre accès sans consommer de crédit

Après le paiement, utilisez Vérifier mon achat. Votre code sauvegardé avant le paiement est déjà votre accès API : aucune autre clé à créer. Une lecture de statut est gratuite, mais demande le code privé.

const base = "https://pfxxzsnboehxsefyajml.supabase.co/functions/v1/xynthera-ai-payg";
const votreCodePrive = process.env.XYNTHERA_BUDGET_CODE;
if (!votreCodePrive) throw new Error("Configurez le secret serveur XYNTHERA_BUDGET_CODE");
const statutReponse = await fetch(base + "/v1/status", {
  headers: {Authorization: "Bearer " + votreCodePrive}, redirect: "error"
});
const statut = await statutReponse.json();
if (!statutReponse.ok) throw new Error("Lecture du budget impossible : HTTP " + statutReponse.status);
if (statut.state !== "active") throw new Error("Paiement non confirmé ou accès suspendu");
// Cette lecture n’effectue aucun contrôle payant.

Premier appel — JavaScript côté serveur

Exécutez ce code sur votre serveur (par exemple Node.js), jamais dans le navigateur de vos clients. Placez le code privé dans votre coffre de secrets ou une variable serveur ; ne le collez pas dans un frontend ou un dépôt.

Utilisez un identifiant request_id unique par contrôle. Une répétition strictement identique avec le même identifiant ne débite pas une deuxième fois. Si vous changez les données, utilisez un nouvel identifiant.

const reponse = await fetch("https://pfxxzsnboehxsefyajml.supabase.co/functions/v1/xynthera-ai-payg/v1/invoices/reconcile", {
  method: "POST", redirect: "error",
  headers: { "Content-Type": "application/json",
    Authorization: "Bearer " + votreCodePrive },
  body: JSON.stringify(facture)
});
const resultat = await reponse.json();
if (!reponse.ok) throw new Error("HTTP " + reponse.status + " : " + (resultat.error || "request_failed"));
// Un HTTP 200 peut signaler une incohérence métier : lisez receipt.report.analysis.
// Enregistrez le rapport et sa signature dans votre espace privé.

Exemples complets pour les trois services

Choisissez un seul exemple et vérifiez son coût avant l’appel. Ces fichiers contiennent des données fictives et un request_id fixe pour essayer le même appel sans second débit. Pour un nouveau contrôle, utilisez un nouvel identifiant ; après une réponse incertaine, gardez exactement le même fichier et le même identifiant.

Contrat d’API OpenAPI JSON — afficher le JSON
{
  "request_id": "synthetic-contract-001",
  "document": {
    "openapi": "3.0.3",
    "info": {
      "title": "Synthetic example",
      "version": "1.0.0"
    },
    "paths": {
      "/example": {
        "get": {
          "responses": {
            "200": {
              "description": "Successful synthetic response"
            }
          }
        }
      }
    }
  }
}
Lot d’événements JSON — afficher le JSON
{
  "request_id": "synthetic-events-001",
  "events": [
    {
      "id": "evt-001",
      "stream": "synthetic-stream",
      "sequence": 1,
      "timestamp": "2026-10-13T12:00:00Z"
    },
    {
      "id": "evt-002",
      "stream": "synthetic-stream",
      "sequence": 2,
      "timestamp": "2026-10-13T12:01:00Z"
    }
  ],
  "require_contiguous": true,
  "same_clock": true
}

Exemple de facture

Le nom facture dans l’exemple précédent désigne cet objet JSON. Les montants sont en centimes ; les références de bénéficiaire sont des empreintes fictives.

{
  "request_id": "mon-controle-001",
  "invoice": {
    "id": "INV-001",
    "supplier_id": "SUP-001",
    "currency": "EUR",
    "minor_digits": 2,
    "beneficiary_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
    "lines": [
      {
        "id": "LINE-1",
        "item_ref": "SKU-1",
        "quantity": 2,
        "unit_price_minor": 1000,
        "discount_minor": 100,
        "tax_minor": 380
      }
    ],
    "total_minor": 2280
  },
  "purchase_order": {
    "id": "PO-001",
    "supplier_id": "SUP-001",
    "currency": "EUR",
    "minor_digits": 2,
    "lines": [
      {
        "item_ref": "SKU-1",
        "quantity": 2,
        "unit_price_minor": 1000
      }
    ]
  },
  "receipts": [
    {
      "id": "GR-001",
      "po_id": "PO-001",
      "supplier_id": "SUP-001",
      "lines": [
        {
          "item_ref": "SKU-1",
          "quantity": 2
        }
      ]
    }
  ],
  "payments": [
    {
      "id": "PAY-001",
      "invoice_id": "INV-001",
      "supplier_id": "SUP-001",
      "currency": "EUR",
      "minor_digits": 2,
      "amount_minor": 2280,
      "beneficiary_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
    }
  ],
  "history": [],
  "supplier_profile": {
    "supplier_id": "SUP-001",
    "approved_beneficiary_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
  }
}

Enregistrez le rapport JSON complet et sa signature dès réception. Nous ne conservons ni les rapports ni les documents soumis. Des métadonnées limitées permettent de reproduire une réponse pendant 30 jours ; ce délai ne limite pas la validité du solde et ne remplace pas votre sauvegarde.

Un résultat signalant une incohérence reste un contrôle effectué et facturé. Les erreurs de validation des entrées ne consomment pas de crédit. Les usages mixtes partagent le même solde : les nombres maximaux affichés pour chaque API ne s’additionnent pas.

Conditions du budget API · Assistance