{"openapi":"3.0.3","info":{"title":"Paygate API","version":"1.0.0","description":"Crypto payment gateway. Flow: create invoice → redirect buyer to /pay/{id} → receive a signed webhook (X-Signature = HMAC-SHA256(body, api_secret))."},"servers":[{"url":"/","description":"this instance"}],"security":[{"ApiKeyAuth":[]}],"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"string"}}},"Invoice":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"status":{"type":"string","enum":["pending","detected","paid","underpaid","overpaid","expired","cancelled","settled"]},"network":{"type":"string","example":"ton"},"asset":{"type":"string","example":"USDT"},"amount_expected":{"type":"string","example":"25.00"},"amount_received":{"type":"string","example":"0"},"pay_address":{"type":"string"},"pay_uri":{"type":"string"},"order_id":{"type":"string","nullable":true},"expires_at":{"type":"string","format":"date-time"}}},"CreateInvoice":{"type":"object","required":["network","asset","amount"],"properties":{"network":{"type":"string","example":"ton"},"asset":{"type":"string","example":"USDT"},"amount":{"type":"string","example":"25.00"},"quote_currency":{"type":"string","example":"USD"},"order_id":{"type":"string"},"callback_url":{"type":"string","description":"per-invoice webhook override"}}}}},"paths":{"/v1/networks":{"get":{"summary":"List supported networks and assets","security":[],"responses":{"200":{"description":"OK"}}}},"/v1/quote":{"get":{"summary":"Rate quote before creating an invoice","parameters":[{"name":"asset","in":"query","required":true,"schema":{"type":"string"}},{"name":"quote_currency","in":"query","schema":{"type":"string","default":"USD"}},{"name":"amount","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK"},"503":{"description":"rate unavailable"}}}},"/v1/invoices":{"post":{"summary":"Create an invoice","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string"},"description":"retry-safe create"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateInvoice"}}}},"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Invoice"}}}},"400":{"description":"validation error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"rate unavailable"}}},"get":{"summary":"List invoices","parameters":[{"name":"status","in":"query","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200}}],"responses":{"200":{"description":"OK"}}}},"/v1/invoices/{id}":{"get":{"summary":"Get invoice status","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Invoice"}}}},"404":{"description":"not found"}}}},"/v1/invoices/{id}/cancel":{"post":{"summary":"Cancel an unpaid invoice","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"cancelled"},"404":{"description":"not found"},"409":{"description":"wrong state"}}}}}}