{"openapi":"3.1.0","info":{"title":"LENO Agent Gateway","version":"1.0.0","description":"Agent-native Schnittstelle von LENO Innovations. MCP ist der bevorzugte Weg (https://agent.leno-innovations.com/mcp); dieses REST-API ist der universelle Rückfallweg mit derselben Geschäftslogik.\n\n**Grenze:** Ein Agent darf den Checkout vorbereiten, aber niemals bezahlen und nichts im Namen des Kunden bestätigen.","contact":{"email":"mail@leno-innovations.com","url":"https://agent.leno-innovations.com/"}},"servers":[{"url":"https://agent.leno-innovations.com/agent/v1"}],"tags":[{"name":"public","description":"Ohne Zugang nutzbar."},{"name":"offer","description":"Braucht den Angebots-Zugangscode."}],"paths":{"/company":{"get":{"tags":["public"],"summary":"Über LENO","operationId":"getCompany","responses":{"200":{"description":"Firmendaten","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/services":{"get":{"tags":["public"],"summary":"Leistungen","operationId":"getServices","parameters":[{"name":"locale","in":"query","schema":{"type":"string","enum":["de","en"]}}],"responses":{"200":{"description":"Leistungen","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/plans":{"get":{"tags":["public"],"summary":"Pakete und Preise","operationId":"comparePlans","parameters":[{"name":"currency","in":"query","schema":{"type":"string","enum":["EUR","AED"]}},{"name":"locale","in":"query","schema":{"type":"string","enum":["de","en"]}}],"responses":{"200":{"description":"Pakete mit Live-Preisen aus Stripe","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/legal":{"get":{"tags":["public"],"summary":"Rechtstexte","operationId":"getLegal","parameters":[{"name":"locale","in":"query","schema":{"type":"string","enum":["de","en"]}}],"responses":{"200":{"description":"AGB, Datenschutz, Impressum","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/faq":{"get":{"tags":["public"],"summary":"Häufige Fragen","operationId":"getFaq","parameters":[{"name":"locale","in":"query","schema":{"type":"string","enum":["de","en"]}}],"responses":{"200":{"description":"FAQ","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/tools":{"get":{"tags":["public"],"summary":"Werkzeugkatalog","operationId":"listTools","responses":{"200":{"description":"Alle Werkzeuge mit Schema und Risikoklasse","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/domain-check":{"get":{"tags":["public"],"summary":"Domain prüfen","operationId":"checkDomain","parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Verfügbarkeit","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/offers/{token}":{"get":{"tags":["offer"],"summary":"Angebot lesen","operationId":"getOffer","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"},"description":"Angebots-Zugangscode aus dem persönlichen Angebotslink."}],"responses":{"200":{"description":"Angebot, Entwurf, empfohlenes Paket","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/offers/{token}/onboarding":{"get":{"tags":["offer"],"summary":"Fortschritt und fehlende Angaben","operationId":"getMissingFields","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"},"description":"Angebots-Zugangscode aus dem persönlichen Angebotslink."}],"responses":{"200":{"description":"completion, missing[], collected{}","content":{"application/json":{"schema":{"type":"object"}}}}}},"patch":{"tags":["offer"],"summary":"Angaben ergänzen","operationId":"updateOnboarding","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"},"description":"Angebots-Zugangscode aus dem persönlichen Angebotslink."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company":{"type":"object"},"contact":{"type":"object"},"website":{"type":"object"},"domain":{"type":"object"},"plan":{"type":"object"}}}}}},"responses":{"200":{"description":"Neuer Fortschritt","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/offers/{token}/contract":{"get":{"tags":["offer"],"summary":"Vertragsübersicht","operationId":"getContractSummary","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"},"description":"Angebots-Zugangscode aus dem persönlichen Angebotslink."},{"name":"planId","in":"query","schema":{"type":"string"}},{"name":"billingCycle","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Eckdaten und Rechtstexte","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/offers/{token}/checkout":{"post":{"tags":["offer"],"summary":"Zahlung vorbereiten (Agent zahlt nicht)","operationId":"createCheckout","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"},"description":"Angebots-Zugangscode aus dem persönlichen Angebotslink."},{"name":"Idempotency-Key","in":"header","schema":{"type":"string"}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"planId":{"type":"string"},"billingCycle":{"type":"string"},"withSetupFee":{"type":"boolean"},"idempotencyKey":{"type":"string"}}}}}},"responses":{"200":{"description":"checkoutUrl für den Menschen","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/offers/{token}/payment":{"get":{"tags":["offer"],"summary":"Zahlungsstatus","operationId":"getPaymentStatus","parameters":[{"name":"token","in":"path","required":true,"schema":{"type":"string"},"description":"Angebots-Zugangscode aus dem persönlichen Angebotslink."},{"name":"orderRef","in":"query","schema":{"type":"string"}},{"name":"sessionId","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"Status der Bestellung","content":{"application/json":{"schema":{"type":"object"}}}}}}}}}