{"openapi":"3.1.0","info":{"title":"JT's Book Bundles API","version":"1.0.0","description":"Discover PDF bundles, create Stripe Checkout, and retrieve downloads after paid-session verification. Checkout creation does not charge the buyer. No merchant API key is required by consumers."},"servers":[{"url":"https://books.jtversity.com"}],"paths":{"/catalog.json":{"get":{"operationId":"listProducts","summary":"List products and availability","responses":{"200":{"description":"Catalog, including drafts marked in_preparation","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/products/{productId}":{"get":{"operationId":"getProduct","parameters":[{"name":"productId","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9-]+$"}}],"responses":{"200":{"description":"Product","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Unknown product","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/checkout":{"post":{"operationId":"createCheckout","summary":"Create checkout; does not charge or grant access","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["productId"],"properties":{"productId":{"type":"string","pattern":"^[a-z0-9-]+$"},"requestId":{"type":"string","format":"uuid","description":"Reuse for retries of the same intended checkout"}}}}}},"responses":{"200":{"description":"checkoutUrl, sessionId, mode, paymentRequired","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Product not available","content":{"application/json":{"schema":{"type":"object"}}}},"503":{"description":"Checkout unavailable","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/download":{"post":{"operationId":"getDownload","summary":"Verify payment and return a first-party PDF download URL","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["sessionId"],"properties":{"sessionId":{"type":"string","description":"Private Checkout Session ID from this purchase. Treat as a bearer credential."}}}}}},"responses":{"200":{"description":"title, url, fileName, license","content":{"application/json":{"schema":{"type":"object"}}}},"403":{"description":"Invalid or reversed purchase","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"Payment unconfirmed","content":{"application/json":{"schema":{"type":"object"}}}},"503":{"description":"Temporarily unavailable; retry without buying again","content":{"application/json":{"schema":{"type":"object"}}}}}}},"/api/file":{"get":{"operationId":"downloadFile","summary":"Reverify a paid purchase and stream its PDF from this store","parameters":[{"name":"session_id","in":"query","required":true,"schema":{"type":"string","description":"Private Checkout Session ID; never share this URL."}}],"responses":{"200":{"description":"Purchased PDF attachment","content":{"application/pdf":{"schema":{"type":"string","format":"binary"}}}},"403":{"description":"Invalid or reversed purchase","content":{"application/json":{"schema":{"type":"object"}}}},"409":{"description":"Payment unconfirmed","content":{"application/json":{"schema":{"type":"object"}}}},"503":{"description":"Temporarily unavailable; retry without buying again","content":{"application/json":{"schema":{"type":"object"}}}}}}}}}