{"openapi":"3.1.0","info":{"title":"DzalekaPay public integrator API","version":"1.0.0","description":"Unauthenticated payment, campaign, event, storefront, receipt, and content endpoints for DzalekaPay.\nMerchant dashboard and admin APIs are not included. Human docs: https://pay.dzaleka.com/developer\n\n**Versioning.** Existing public URLs retain contract 1.0.0, reported by the response API-Version header. Request values are advisory and ignored, not a version pin. Breaking replacements use a new URL namespace; the merchant API uses /api/v1/.\n\n**Deprecation.** A surface scheduled for removal is served with the `Deprecation` header (RFC 9745) and a `Sunset` date (RFC 8594), plus a `Link` header with `rel=\"deprecation\"` pointing at the migration note. Removal follows at least 180 days after the Deprecation header first appears. Breaking changes ship as a new version rather than in place; additive fields are not breaking.\n\n**Rate limits.** Limited responses carry `RateLimit` and `RateLimit-Policy` (IETF draft-11) plus legacy `RateLimit-Limit`, `RateLimit-Remaining`, and `RateLimit-Reset`. A 429 adds `Retry-After`. Parser and authentication failures may precede quota checks. Never infer remaining quota from a policy alone.\n\n**Errors.** Every 4xx and 5xx JSON response uses the `Error` schema: branch on `error.code`, show `message` to a person.","contact":{"name":"DzalekaPay support","email":"info@mail.dzaleka.com","url":"https://pay.dzaleka.com/contact"}},"servers":[{"url":"https://pay.dzaleka.com"}],"paths":{"/api/health":{"get":{"operationId":"getApiHealth","summary":"Service health","description":"Unauthenticated liveness document. Use this to confirm DzalekaPay is reachable before calling checkout APIs.","tags":["meta"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"}],"responses":{"200":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Health document","properties":{"status":{"type":"string","enum":["ok"]},"service":{"type":"string"},"time":{"type":"string","format":"date-time"}},"required":["status","service","time"]}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/public/payment-methods":{"get":{"operationId":"getPublicPaymentMethods","summary":"Read collection and payout method availability","description":"Public JSON of which collection and payout methods are currently enabled. No authentication.","tags":["checkout"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"}],"responses":{"200":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/transactions/checkout":{"post":{"operationId":"createHostedCardCheckout","summary":"Start hosted card checkout","description":"Creates a pending collection and returns a PayChangu hosted checkout URL. Public; no API key. Amount is MWK. May return 404 when the publicCheckout feature is disabled.","tags":["checkout"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"}],"responses":{"201":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Checkout session","properties":{"checkout_url":{"type":"string","format":"uri"},"transactionId":{"type":"string","format":"uuid"}},"required":[]}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Hosted card checkout request","properties":{"merchantId":{"type":"string","format":"uuid"},"amount":{"type":"number","exclusiveMinimum":0},"email":{"type":"string","format":"email"},"first_name":{"type":"string"},"last_name":{"type":"string"}},"required":["merchantId","amount","email"]}}}}}},"/api/public/transactions/{id}/status":{"get":{"operationId":"getPublicTransactionStatus","summary":"Read public transaction status","description":"Poll payment status for a public checkout, donation, ticket, or order. Values include pending, completed, and failed. May return 404 when the publicCheckout feature is disabled.","tags":["checkout"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"id","in":"path","required":true,"description":"Resource UUID or public slug","schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Transaction status","properties":{"status":{"type":"string","enum":["pending","completed","failed","expired","refunded"]},"refundStatus":{"type":["string","null"]},"checkoutUrl":{"type":"string","format":"uri"}},"required":["status","refundStatus"]}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/public/transactions/{id}/receipt":{"get":{"operationId":"getPublicTransactionReceipt","summary":"Read public receipt metadata","description":"Public receipt fields for a completed or pending collection. Does not expose payer secrets. May return 404 when the publicCheckout feature is disabled.","tags":["checkout"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"id","in":"path","required":true,"description":"Resource UUID or public slug","schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/public/merchants/{merchantId}":{"get":{"operationId":"getPublicMerchantProfile","summary":"Read public merchant profile","description":"Public store name and lifecycle status for hosted checkout. acceptingPayments is true only when status is active. Unknown ids return 404. Does not return balances or owner identity documents. May return 404 when the publicCheckout feature is disabled.","tags":["merchants"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"merchantId","in":"path","required":true,"description":"Merchant UUID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/public/campaigns":{"get":{"operationId":"listPublicCampaigns","summary":"List public fundraising campaigns","description":"Published campaigns that currently accept donations. May return 404 when the publicCheckout feature is disabled.","tags":["campaigns"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"}],"responses":{"200":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/public/campaigns/{id}":{"get":{"operationId":"getPublicCampaign","summary":"Read public campaign detail","description":"Campaign story, goal, and donation state for a published fundraiser. {id} may be UUID or slug. Pass updatesPage (1-based) for five updates per page, newest first; the response includes updatesTotal, updatesPage and updatesLimit. Without updatesPage, the legacy updates array is returned. Supporter pagination uses supportersPage and supportersLimit independently. May return 404 when the publicCheckout feature is disabled.","tags":["campaigns"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"id","in":"path","required":true,"description":"Resource UUID or public slug","schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/public/campaigns/{id}/donations":{"post":{"operationId":"createCampaignDonation","summary":"Start a campaign donation","description":"Creates a pending donation collection. method is required: momo needs donorPhone; card needs donorEmail. Returns instructions for the selected enabled method. Check a returned transactionId before retrying a failed or uncertain request. May return 404 when the publicCheckout feature is disabled.","tags":["campaigns"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"id","in":"path","required":true,"description":"Resource UUID or public slug","schema":{"type":"string","minLength":1}}],"responses":{"201":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Donation request","properties":{"amount":{"type":"number","exclusiveMinimum":0,"maximum":100000000},"method":{"type":"string","enum":["momo","bank","card"]},"donorName":{"type":["string","null"],"maxLength":100},"donorEmail":{"type":["string","null"],"format":"email","maxLength":254},"donorPhone":{"type":["string","null"],"minLength":9,"maxLength":20},"message":{"type":["string","null"],"maxLength":500},"isAnonymous":{"type":"boolean","default":false}},"required":["amount","method"],"allOf":[{"if":{"properties":{"method":{"const":"momo"}},"required":["method"]},"then":{"required":["donorPhone"],"properties":{"donorPhone":{"type":"string","minLength":9}}}},{"if":{"properties":{"method":{"const":"card"}},"required":["method"]},"then":{"required":["donorEmail"],"properties":{"donorEmail":{"type":"string","format":"email","minLength":1}}}}]}}}}}},"/api/public/events":{"get":{"operationId":"listPublicEvents","summary":"List public events","description":"Up to 200 published events, soonest first by default. Query when=upcoming (default; includes events under way) or past, and q for title search. Returns an array, not a paginated envelope. May return 404 when the publicCheckout feature is disabled.","tags":["events"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"}],"responses":{"200":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"array","items":{"type":"object","additionalProperties":true}}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/public/events/{id}":{"get":{"operationId":"getPublicEvent","summary":"Read public event detail","description":"Event description, ticket tiers and aggregate availability. salesClosed is true once the event has ended (12 hours after the start when no end time is set), attending counts paid tickets, and hostStoreSlug names the organizer's active shop page when there is one. Optional pageContent includes programme sessions, lineup profiles, gallery photos, FAQs, accessibility, arrival and contact details. It never includes guest answers. May return 404 when the publicCheckout feature is disabled.","tags":["events"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"id","in":"path","required":true,"description":"Resource UUID or public slug","schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/public/events/{id}/tickets":{"post":{"operationId":"createEventTicketPurchase","summary":"Start an event ticket purchase","description":"Creates a pending ticket collection for 1-10 seats in a tier. method is required: momo needs phone; card needs email. A pending or uncertain payment must be checked before another purchase. May return 404 when the publicCheckout feature is disabled.","tags":["events"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"id","in":"path","required":true,"description":"Resource UUID or public slug","schema":{"type":"string","minLength":1}}],"responses":{"201":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Ticket purchase request","properties":{"tierId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"maximum":10,"default":1},"method":{"type":"string","enum":["momo","bank","card"]},"email":{"type":"string","format":"email"},"name":{"type":"string"},"phone":{"type":"string","minLength":9}},"required":["tierId","method"],"allOf":[{"if":{"properties":{"method":{"const":"momo"}},"required":["method"]},"then":{"required":["phone"],"properties":{"phone":{"type":"string","minLength":9}}}},{"if":{"properties":{"method":{"const":"card"}},"required":["method"]},"then":{"required":["email"],"properties":{"email":{"type":"string","format":"email","minLength":1}}}}]}}}}}},"/api/public/tickets/{id}":{"get":{"operationId":"getPublicTicket","summary":"Read public ticket details","description":"Ticket validity follows the backing payment, refund and event status. Includes eventId, startsAt, endsAt, guest information and optional questions/answers. Treat the ticket ID as a private bearer credential. The amount is the total linked payment, not a per-ticket price for a group order. emailDeliveryAvailable means an email was stored at checkout, not that delivery succeeded.","tags":["events"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"id","in":"path","required":true,"description":"Resource UUID or public slug","schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/public/storefronts/{slug}":{"get":{"operationId":"getPublicStorefront","summary":"Read public storefront","description":"Public catalog for a merchant storefront identified by slug. May return 404 when the publicCheckout feature is disabled.","tags":["storefronts"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"slug","in":"path","required":true,"description":"Public URL slug","schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/public/storefronts/{slug}/orders":{"post":{"operationId":"createStorefrontOrder","summary":"Start a storefront order","description":"Creates a pending collection for a storefront cart. The request body accepts `items` (up to 15 lines). It also accepts `productId` and `quantity` for one product. The collection amount is the sum of the line totals. Duplicate `productId` values in `items` are merged. May return 404 when the publicCheckout feature is disabled.","tags":["storefronts"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"slug","in":"path","required":true,"description":"Public URL slug","schema":{"type":"string","minLength":1}}],"responses":{"201":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"description":"Storefront order request","properties":{"method":{"type":"string","enum":["momo","bank","card"]},"productId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"maximum":25},"items":{"type":"array","minItems":1,"maxItems":15,"items":{"type":"object","additionalProperties":true,"description":"Cart line","properties":{"productId":{"type":"string","format":"uuid"},"quantity":{"type":"integer","minimum":1,"maximum":25}},"required":["productId","quantity"]}},"customerEmail":{"type":"string","format":"email"},"customerName":{"type":"string"},"customerPhone":{"type":"string"},"note":{"type":"string"},"fulfilmentType":{"type":"string","enum":["pickup","delivery","online"]},"deliveryArea":{"type":"string"},"deliveryAddress":{"type":"string"},"contactPhone":{"type":["string","null"],"minLength":9,"maxLength":20}},"required":["method"],"allOf":[{"if":{"properties":{"method":{"const":"momo"}},"required":["method"]},"then":{"required":["customerPhone"],"properties":{"customerPhone":{"type":"string","minLength":9}}}},{"if":{"properties":{"method":{"const":"card"}},"required":["method"]},"then":{"required":["customerEmail"],"properties":{"customerEmail":{"type":"string","format":"email","minLength":1}}}}]}}}}}},"/api/public/storefront-orders/{id}":{"get":{"operationId":"getPublicStorefrontOrder","summary":"Read storefront order status","description":"Returns payment status, fulfilmentStatus, the delivery method, the total and the line items for a storefront order. It never returns the buyer's name, phone, email or address. fulfilmentStatus is new, preparing, ready, done, or cancelled. The merchant arranges pickup, delivery, or online service. DzalekaPay does not run a courier. May return 404 when the publicCheckout feature is disabled.","tags":["storefronts"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"id","in":"path","required":true,"description":"Resource UUID or public slug","schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/public/blog-posts":{"get":{"operationId":"listPublicBlogPosts","summary":"List public blog posts","description":"Published DzalekaPay blog posts. Filter with category and language; the response includes per-category counts.","tags":["content"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"}],"responses":{"200":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/public/blog-posts/{slug}":{"get":{"operationId":"getPublicBlogPost","summary":"Read public blog post","description":"A published blog post body and metadata, with up to three related posts.","tags":["content"],"parameters":[{"$ref":"#/components/parameters/ApiVersion"},{"name":"slug","in":"path","required":true,"description":"Public URL slug","schema":{"type":"string","minLength":1}}],"responses":{"200":{"description":"Successful response","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"400":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"503":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"4XX":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"5XX":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"$ref":"#/components/headers/RateLimit"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"API-Version":{"$ref":"#/components/headers/API-Version"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"x-browser-entrypoints":[{"url":"https://pay.dzaleka.com/pay/{merchantId}","method":"GET","summary":"Hosted payment page for a merchant","description":"HTML checkout page for a registered store. Displays currently enabled collection methods. Payers do not need an account.","mediaType":"text/html","note":"Human checkout page rendered by the web app. Send a person here; it does not return JSON."}],"x-api-lifecycle":{"version":"1.0.0","versioningScheme":"stable-url","versionHeader":"API-Version","pathVersionedSurfaces":["/api/v1/"],"deprecationHeaders":["Deprecation","Sunset"],"minimumSunsetNoticeDays":180,"policyUrl":"https://pay.dzaleka.com/developer/api-lifecycle"},"components":{"schemas":{"Error":{"type":"object","additionalProperties":true,"description":"Typed error envelope returned by every 4xx and 5xx JSON response.","properties":{"message":{"type":"string","description":"Human-readable summary, safe to show a person."},"error":{"type":"object","additionalProperties":true,"properties":{"code":{"type":"string","description":"Stable machine-readable code. Branch on this, not on the message text.","examples":["bad_request","unauthorized","forbidden","not_found","conflict","rate_limited","provider_unconfirmed","internal_error"]},"message":{"type":"string"},"hint":{"type":"string","description":"Where to look next: docs or spec URL."}},"required":["code","message"]}},"required":["message","error"]}},"headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before the next request.","schema":{"type":"integer"}}},"parameters":{"ApiVersion":{"name":"API-Version","in":"header","required":false,"description":"Advisory only, not version negotiation. The current contract is 1.0.0; the response API-Version identifies it. All request values are ignored for compatibility.","schema":{"type":"string","default":"1.0.0"}}},"responses":{"ClientError":{"description":"Request rejected. Inspect error.code and any validation fields before retrying.","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"BadRequest":{"description":"Validation or business-rule error.","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unauthorized":{"description":"Missing or invalid credentials.","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"Record not found, or the feature is disabled for this platform.","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"RateLimited":{"description":"Too many requests. Wait for `Retry-After` seconds before retrying.","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}},"Retry-After":{"description":"Seconds to wait before the next request.","schema":{"type":"integer"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"ServerError":{"description":"Server or provider error. For a payment request, check any returned transactionId before retrying: a timeout does not prove failure.","headers":{"RateLimit":{"description":"Available quota and effective window, e.g. \"public-read\";r=1199;t=900. IETF draft-ietf-httpapi-ratelimit-headers-11.","schema":{"type":"string"}},"RateLimit-Policy":{"description":"Quota policy, e.g. \"public-read\";q=1200;w=900. Not a guarantee of capacity.","schema":{"type":"string"}},"Deprecation":{"description":"Only on deprecated endpoints: RFC 9745 Structured Field Date, @ followed by Unix seconds.","schema":{"type":"string"}},"Sunset":{"description":"Only when removal is scheduled: RFC 8594 HTTP-date.","schema":{"type":"string"}},"Link":{"description":"Lifecycle policy or migration note with rel=\"deprecation\".","schema":{"type":"string"}},"RateLimit-Limit":{"description":"Requests permitted in the current window.","schema":{"type":"integer"}},"RateLimit-Remaining":{"description":"Requests still available in the current window.","schema":{"type":"integer"}},"RateLimit-Reset":{"description":"Seconds until the current window resets.","schema":{"type":"integer"}},"API-Version":{"description":"Public API version that served this response.","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}