{"openapi":"3.1.0","info":{"title":"Supply Factory API","version":"1.0.0","description":"API publique Supply Factory pour intégrations marque. Auth via Bearer token (sf_…).","contact":{"email":"tech@supplyfactory.fr"}},"servers":[{"url":"https://api.supplyfactory.fr/public/v1","description":"Production"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"sf_<hex>"}}},"paths":{"/ping":{"get":{"summary":"Ping","responses":{"200":{"description":"pong"}},"security":[]}},"/me":{"get":{"summary":"Infos marque + scopes","responses":{"200":{"description":"ok"}}}},"/orders":{"get":{"summary":"Liste des commandes de la marque","parameters":[{"name":"status","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200}}],"responses":{"200":{"description":"liste"}}},"post":{"summary":"Créer une commande (facturation mensuelle)","requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["customer_email"],"properties":{"customer_email":{"type":"string","format":"email"},"amount_eur":{"type":"number"},"pickup_address":{"type":"string"},"delivery_address":{"type":"string"},"delivery_recipient":{"type":"string"},"delivery_phone":{"type":"string"},"delivery_email":{"type":"string","format":"email"}}}}}},"responses":{"200":{"description":"order créé"}}}},"/orders/{trackingRef}":{"get":{"summary":"Détail commande","parameters":[{"name":"trackingRef","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"order"},"404":{"description":"not_found"}}}},"/invoices":{"get":{"summary":"Liste factures","responses":{"200":{"description":"liste"}}}},"/rates":{"post":{"summary":"Tarifs + délais livrables au checkout (rates at checkout)","description":"Renvoie les services SF livrables pour une destination (prix TTC grille négociée + date promise en jours ouvrés). Hors zone ou grille incomplète → available:false, rates:[].","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"delivery_address":{"type":"string"},"delivery_zip":{"type":"string"},"unit_type":{"type":"string"},"quantity":{"type":"integer"},"unit_weight":{"type":"string"}}}}}},"responses":{"200":{"description":"available + rates[]"}}}}}}