{
    "openapi": "3.0.3",
    "info": {
        "title": "Deliora Store API",
        "version": "3.1.1",
        "description": "Store-owner automation: orders, customers, licenses, deal codes, stats. Auth: Authorization: Bearer <api key> (Admin \u2192 API & Webhooks). Outbound webhooks: order.paid, order.refunded, code.redeemed, license.activated (X-Deliora-Signature HMAC). The buyer license API (/license/check, /license/activate) is separate and keyed by the license itself."
    },
    "servers": [
        {
            "url": "http://ownware.io"
        }
    ],
    "components": {
        "securitySchemes": {
            "bearerAuth": {
                "type": "http",
                "scheme": "bearer"
            }
        }
    },
    "security": [
        {
            "bearerAuth": []
        }
    ],
    "paths": {
        "/api/ping": {
            "get": {
                "summary": "Verify the API key",
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/orders": {
            "get": {
                "summary": "List orders (?status=paid|refunded, ?provider=)",
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/orders/{ref}": {
            "get": {
                "summary": "One order by order_ref",
                "parameters": [
                    {
                        "name": "ref",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/customers": {
            "get": {
                "summary": "Customers with paid-order counts",
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/licenses": {
            "get": {
                "summary": "Licenses (?sku=)",
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/api/redeem-codes": {
            "get": {
                "summary": "Code batches summary (?batch=, ?status=)",
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            },
            "post": {
                "summary": "Mint codes {count, sku, tier?, batch?} \u2192 returns plaintext codes ONCE",
                "responses": {
                    "201": {
                        "description": "Minted"
                    }
                }
            }
        },
        "/api/stats": {
            "get": {
                "summary": "Store totals",
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    }
}
