{"openapi":"3.0.3","info":{"title":"Izytop API","version":"1.0.0","description":"API publique Izytop pour int\u00e9gration revendeur."},"servers":[{"url":"\/api\/v1","description":"Serveur principal"}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API Key (izyt_...)"}},"schemas":{"Error":{"type":"object","properties":{"message":{"type":"string"},"code":{"type":"string"}},"required":["message"]}}},"paths":{"\/health":{"get":{"summary":"Sant\u00e9 de l'API","responses":{"200":{"description":"Service disponible"}}}},"\/openapi.json":{"get":{"summary":"R\u00e9cup\u00e8re la specification OpenAPI","responses":{"200":{"description":"Specification OpenAPI v1"}}}},"\/me":{"get":{"summary":"Profil du compte authentifi\u00e9","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Profil et wallet"},"401":{"description":"Cl\u00e9 API invalide","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/catalog\/products":{"get":{"summary":"Liste pagin\u00e9e des produits actifs","security":[{"bearerAuth":[]}],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"Catalogue"},"401":{"description":"Cl\u00e9 API invalide"}}}},"\/catalog\/orders":{"get":{"summary":"Lister les commandes catalogue du compte","security":[{"bearerAuth":[]}],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1}},{"name":"per_page","in":"query","schema":{"type":"integer","minimum":1,"maximum":50}},{"name":"status","in":"query","schema":{"type":"string","enum":["pending","processing","fulfilled","failed","cancelled"]}},{"name":"from","in":"query","description":"Date minimum (YYYY-MM-DD)","schema":{"type":"string","format":"date"}},{"name":"to","in":"query","description":"Date maximum (YYYY-MM-DD)","schema":{"type":"string","format":"date"}},{"name":"sort","in":"query","schema":{"type":"string","enum":["created_at","total"]}},{"name":"direction","in":"query","schema":{"type":"string","enum":["asc","desc"]}}],"responses":{"200":{"description":"Liste pagin\u00e9e des commandes"},"401":{"description":"Cl\u00e9 API invalide"}}},"post":{"summary":"Cr\u00e9er une commande catalogue","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application\/json":{"schema":{"type":"object","properties":{"product_id":{"type":"integer"},"quantity":{"type":"integer","minimum":1,"maximum":99,"default":1}},"required":["product_id"]}}}},"responses":{"201":{"description":"Commande cr\u00e9\u00e9e"},"401":{"description":"Cl\u00e9 API invalide"},"422":{"description":"Erreur de validation ou wallet insuffisant","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}},"502":{"description":"Erreur fournisseur","content":{"application\/json":{"schema":{"$ref":"#\/components\/schemas\/Error"}}}}}}},"\/catalog\/orders\/{order}\/items\/{orderItem}\/delivery":{"get":{"summary":"T\u00e9l\u00e9charger la livraison (fichier via la plateforme)","security":[{"bearerAuth":[]}],"parameters":[{"name":"order","in":"path","required":true,"schema":{"type":"integer"}},{"name":"orderItem","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Flux binaire ; en-t\u00eate Content-Disposition: attachment"},"401":{"description":"Cl\u00e9 API invalide"},"403":{"description":"Commande ou article non autoris\u00e9"},"404":{"description":"Livraison indisponible"},"502":{"description":"Impossible de r\u00e9cup\u00e9rer le fichier"}}}},"\/catalog\/orders\/{order}":{"get":{"summary":"Consulter une commande catalogue","security":[{"bearerAuth":[]}],"parameters":[{"name":"order","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"D\u00e9tail de la commande"},"401":{"description":"Cl\u00e9 API invalide"},"403":{"description":"Commande non autoris\u00e9e"},"404":{"description":"Commande introuvable"}}}}}}