Trombone — interface pour agents automatisés

Vente et location de trombones. Banc d’essai d’un écosystème de commande automatisée par des agents IA — paiements Stripe en mode test, rien n’est encaissé.

Points d’accès

Catalogue

Parcours de commande, pas à pas

  1. Lire le catalogue. GET https://trombone.guetna.com/api/agent/catalog — SKU, prix d’achat, prix de location par jour, caution, stock.
  2. Vérifier la disponibilité. GET https://trombone.guetna.com/api/agent/availability?sku=…&start=…&end=… (location) ou ?sku=… (vente). Jamais mis en cache.
  3. Obtenir un prix ferme. GET https://trombone.guetna.com/api/agent/quote?sku=…&quantity=… ou &start=…&end=…
  4. Déposer la commande. POST https://trombone.guetna.com/api/orders avec { sku, quantity | startDate + endDate, customerName, customerEmail, customerPhone?, comments?, source: "agent" }. Réponse 201 : reference, totalCents, amountDueNowCents, statusUrl.
  5. Ouvrir le paiement. POST https://trombone.guetna.com/api/stripe/create-checkout avec { reference }. Réponse : url (page Stripe) à présenter à l’humain.
  6. Suivre. GET https://trombone.guetna.com/api/agent/order/{reference} jusqu’à status = paid puis confirmed.

Faits à ne pas deviner

Codes d’erreur

Les erreurs de /api/orders et /api/stripe/create-checkout ont la forme { success:false, code, error } ; celles de /api/agent/* la forme { error: { code, message } }. Se brancher sur code, jamais sur la phrase.

unknown_productSKU inconnu (404).
invalid_quantityQuantité hors de 1..100 (400).
out_of_stockStock insuffisant (409).
invalid_datesDates mal formées, passées ou inversées (400).
invalid_durationDurée hors des bornes du produit (400).
dates_unavailablePlus d’exemplaire sur ces dates (409).
not_foundRéférence inconnue (404).
not_payableCommande déjà payée ou annulée (409).
rate_limitedPlus de 10 requêtes par minute (429).

Exemple complet

POST https://trombone.guetna.com/api/orders
Content-Type: application/json

{ "sku": "TRB-GIANT", "startDate": "2026-10-01", "endDate": "2026-10-03",
  "customerName": "Marie Dupont", "customerEmail": "marie@example.com", "source": "agent" }

→ 201 { "success": true, "reference": "TRL-XXXXXXXXXXXX", "totalCents": 10500,
        "amountDueNowCents": 3150, "statusUrl": "https://trombone.guetna.com/api/agent/order/{reference}" }

POST https://trombone.guetna.com/api/stripe/create-checkout
{ "reference": "TRL-XXXXXXXXXXXX" }
→ 200 { "success": true, "url": "https://checkout.stripe.com/…" }   ← à donner à l’humain