{
    "openapi": "3.1.1",
    "info": {
        "title": "VeliraPay API",
        "version": "v1",
        "description": "Accept crypto payments with server-side bearer API keys. Keys select live or test mode; payment resources are isolated by account and mode. Account settings, members and invitations are shared between modes. Test mode never moves real funds. Decimal response amounts are strings. Clients should tolerate additional response fields. Lists use page/per_page except assets, payout addresses and payout summaries. The API allows 120 requests per minute per key and 600 per client network; webhook sends and customer email also have narrower limits. Validation additionally checks current account state, asset availability, network addresses and business rules described on each operation."
    },
    "servers": [
        {
            "url": "https://api.velirapay.com"
        }
    ],
    "security": [
        {
            "bearerAuth": []
        }
    ],
    "externalDocs": {
        "description": "Integration guides and examples",
        "url": "https://velirapay.com/docs"
    },
    "tags": [
        {
            "name": "Account"
        },
        {
            "name": "PaymentSettings"
        },
        {
            "name": "Asset"
        },
        {
            "name": "PaymentLink"
        },
        {
            "name": "Coupon"
        },
        {
            "name": "Charge"
        },
        {
            "name": "Payout"
        },
        {
            "name": "Invoice"
        },
        {
            "name": "Event"
        },
        {
            "name": "WebhookEndpoint"
        },
        {
            "name": "ApiKey"
        },
        {
            "name": "Overview"
        },
        {
            "name": "PayoutAddress"
        },
        {
            "name": "Activity"
        },
        {
            "name": "Member"
        },
        {
            "name": "Invitation"
        },
        {
            "name": "Billing"
        }
    ],
    "paths": {
        "/v1/account": {
            "get": {
                "operationId": "account_show",
                "tags": [
                    "Account"
                ],
                "summary": "Show account",
                "description": "Any valid API key can access this operation. Account settings and membership are shared between live and test modes.",
                "x-permission": null,
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Account"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "mode": {
                                                    "$ref": "#/components/schemas/Mode"
                                                },
                                                "accepted_assets": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/AssetCode"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "mode",
                                                "accepted_assets"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    }
                }
            },
            "patch": {
                "operationId": "account_update",
                "tags": [
                    "Account"
                ],
                "summary": "Update account",
                "description": "Requires account:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin. Account settings and membership are shared between live and test modes.",
                "x-permission": "account:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Account"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "mode": {
                                                    "$ref": "#/components/schemas/Mode"
                                                },
                                                "accepted_assets": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/AssetCode"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "mode",
                                                "accepted_assets"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateAccount"
                            }
                        }
                    }
                }
            }
        },
        "/v1/payment-settings": {
            "patch": {
                "operationId": "payment_settings_update",
                "tags": [
                    "PaymentSettings"
                ],
                "summary": "Update payment settings",
                "description": "Requires payment_settings:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin. Account settings and membership are shared between live and test modes.",
                "x-permission": "payment_settings:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Account"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "mode": {
                                                    "$ref": "#/components/schemas/Mode"
                                                },
                                                "accepted_assets": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/AssetCode"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "mode",
                                                "accepted_assets"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdatePaymentSettings"
                            }
                        }
                    }
                }
            }
        },
        "/v1/assets": {
            "get": {
                "operationId": "assets_index",
                "tags": [
                    "Asset"
                ],
                "summary": "Index asset",
                "description": "Any valid API key can access this operation. Unpaginated. Currency defaults to the account default. An unavailable exchange rate is represented by null.",
                "x-permission": null,
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Asset"
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "mode": {
                                                    "$ref": "#/components/schemas/Mode"
                                                },
                                                "currencies": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "#/components/schemas/Currency"
                                                    }
                                                }
                                            },
                                            "required": [
                                                "mode",
                                                "currencies"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "name": "currency",
                        "in": "query",
                        "schema": {
                            "$ref": "#/components/schemas/Currency"
                        },
                        "description": "Fiat currency for exchange rates and minimum prices; defaults to the account default."
                    }
                ]
            }
        },
        "/v1/payment-links": {
            "get": {
                "operationId": "payment_links_index",
                "tags": [
                    "PaymentLink"
                ],
                "summary": "Index payment link",
                "description": "Requires payment_links:read. Results are paginated; unknown enum filter values are ignored.",
                "x-permission": "payment_links:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/PaymentLink"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/PaginationLinks"
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/Page"
                    },
                    {
                        "$ref": "#/components/parameters/PerPage"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "$ref": "#/components/schemas/PaymentLinkStatus"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            },
            "post": {
                "operationId": "payment_links_store",
                "tags": [
                    "PaymentLink"
                ],
                "summary": "Store payment link",
                "description": "Requires payment_links:write.",
                "x-permission": "payment_links:write",
                "responses": {
                    "201": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/PaymentLink"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreatePaymentLink"
                            }
                        }
                    }
                }
            }
        },
        "/v1/payment-links/{payment_link}": {
            "get": {
                "operationId": "payment_links_show",
                "tags": [
                    "PaymentLink"
                ],
                "summary": "Show payment link",
                "description": "Requires payment_links:read.",
                "x-permission": "payment_links:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/PaymentLink"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                },
                "parameters": [
                    {
                        "name": "payment_link",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            },
            "patch": {
                "operationId": "payment_links_update",
                "tags": [
                    "PaymentLink"
                ],
                "summary": "Update payment link",
                "description": "Requires payment_links:write.",
                "x-permission": "payment_links:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/PaymentLink"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "name": "payment_link",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdatePaymentLink"
                            }
                        }
                    }
                }
            }
        },
        "/v1/payment-links/{payment_link}/archive": {
            "post": {
                "operationId": "payment_links_archive",
                "tags": [
                    "PaymentLink"
                ],
                "summary": "Archive payment link",
                "description": "Requires payment_links:write.",
                "x-permission": "payment_links:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/PaymentLink"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    }
                },
                "parameters": [
                    {
                        "name": "payment_link",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            },
            "delete": {
                "operationId": "payment_links_restore",
                "tags": [
                    "PaymentLink"
                ],
                "summary": "Restore payment link",
                "description": "Requires payment_links:write.",
                "x-permission": "payment_links:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/PaymentLink"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    }
                },
                "parameters": [
                    {
                        "name": "payment_link",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            }
        },
        "/v1/coupons": {
            "get": {
                "operationId": "coupons_index",
                "tags": [
                    "Coupon"
                ],
                "summary": "Index coupon",
                "description": "Requires coupons:read. Results are paginated; unknown enum filter values are ignored.",
                "x-permission": "coupons:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Coupon"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/PaginationLinks"
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/Page"
                    },
                    {
                        "$ref": "#/components/parameters/PerPage"
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            },
            "post": {
                "operationId": "coupons_store",
                "tags": [
                    "Coupon"
                ],
                "summary": "Store coupon",
                "description": "Requires coupons:write.",
                "x-permission": "coupons:write",
                "responses": {
                    "201": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Coupon"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateCoupon"
                            }
                        }
                    }
                }
            }
        },
        "/v1/coupons/{coupon}": {
            "get": {
                "operationId": "coupons_show",
                "tags": [
                    "Coupon"
                ],
                "summary": "Show coupon",
                "description": "Requires coupons:read.",
                "x-permission": "coupons:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Coupon"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                },
                "parameters": [
                    {
                        "name": "coupon",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            },
            "patch": {
                "operationId": "coupons_update",
                "tags": [
                    "Coupon"
                ],
                "summary": "Update coupon",
                "description": "Requires coupons:write.",
                "x-permission": "coupons:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Coupon"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "name": "coupon",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateCoupon"
                            }
                        }
                    }
                }
            },
            "delete": {
                "operationId": "coupons_destroy",
                "tags": [
                    "Coupon"
                ],
                "summary": "Destroy coupon",
                "description": "Requires coupons:write.",
                "x-permission": "coupons:write",
                "responses": {
                    "204": {
                        "description": "Deleted successfully.",
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    }
                },
                "parameters": [
                    {
                        "name": "coupon",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            }
        },
        "/v1/charges": {
            "get": {
                "operationId": "charges_index",
                "tags": [
                    "Charge"
                ],
                "summary": "Index charge",
                "description": "Requires charges:read. Results are paginated; unknown enum filter values are ignored.",
                "x-permission": "charges:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Charge"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/PaginationLinks"
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/Page"
                    },
                    {
                        "$ref": "#/components/parameters/PerPage"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "$ref": "#/components/schemas/ChargeStatus"
                        }
                    },
                    {
                        "name": "asset",
                        "in": "query",
                        "schema": {
                            "$ref": "#/components/schemas/AssetCode"
                        }
                    },
                    {
                        "name": "payment_link",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "created_from",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "description": "UTC date or timestamp, inclusive."
                        }
                    },
                    {
                        "name": "created_to",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "description": "UTC date or timestamp, inclusive; a date includes the whole day."
                        }
                    }
                ]
            },
            "post": {
                "operationId": "charges_store",
                "tags": [
                    "Charge"
                ],
                "summary": "Store charge",
                "description": "Creates a pending payment and deposit address; share checkout_url with the customer. Account/link minimums and available assets are checked. Requires charges:write.",
                "x-permission": "charges:write",
                "responses": {
                    "201": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Charge"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateCharge"
                            }
                        }
                    }
                }
            }
        },
        "/v1/charges/{charge}": {
            "get": {
                "operationId": "charges_show",
                "tags": [
                    "Charge"
                ],
                "summary": "Show charge",
                "description": "Requires charges:read.",
                "x-permission": "charges:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Charge"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                },
                "parameters": [
                    {
                        "name": "charge",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/v1/charges/{charge}/cancel": {
            "post": {
                "operationId": "charges_cancel",
                "tags": [
                    "Charge"
                ],
                "summary": "Cancel charge",
                "description": "Only pending charges can be canceled. Requires charges:write.",
                "x-permission": "charges:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Charge"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    }
                },
                "parameters": [
                    {
                        "name": "charge",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            }
        },
        "/v1/charges/{charge}/refunds": {
            "post": {
                "operationId": "charges_refunds_store",
                "tags": [
                    "Charge"
                ],
                "summary": "Refund charge",
                "description": "Records an external refund; no coins are sent. Returns the updated charge including refunds. Requires charges:refund.",
                "x-permission": "charges:refund",
                "responses": {
                    "201": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Charge"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "name": "charge",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/RecordRefund"
                            }
                        }
                    }
                }
            }
        },
        "/v1/charges/{charge}/send": {
            "post": {
                "operationId": "charges_send",
                "tags": [
                    "Charge"
                ],
                "summary": "Send charge",
                "description": "Only a pending charge with customer email can be sent. Recipient policy and hourly limits apply. Requires charges:write.",
                "x-permission": "charges:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Charge"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    }
                },
                "parameters": [
                    {
                        "name": "charge",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            }
        },
        "/v1/charges/{charge}/accept": {
            "post": {
                "operationId": "charges_accept",
                "tags": [
                    "Charge"
                ],
                "summary": "Accept charge",
                "description": "Only an underpaid charge or a late payment can be accepted. Returns 409 otherwise. Requires charges:accept.",
                "x-permission": "charges:accept",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Charge"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    }
                },
                "parameters": [
                    {
                        "name": "charge",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            }
        },
        "/v1/charges/{charge}/simulate": {
            "post": {
                "operationId": "charges_simulate",
                "tags": [
                    "Charge"
                ],
                "summary": "Simulate charge",
                "description": "Test mode only. Live-mode or settled charges return 409; simulation may enqueue the usual test webhooks. Requires charges:write.",
                "x-permission": "charges:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Charge"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "name": "charge",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SimulateCharge"
                            }
                        }
                    }
                }
            }
        },
        "/v1/payouts": {
            "get": {
                "operationId": "payouts_index",
                "tags": [
                    "Payout"
                ],
                "summary": "Index payout",
                "description": "Requires payouts:read. Results are paginated; unknown enum filter values are ignored.",
                "x-permission": "payouts:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Payout"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/PaginationLinks"
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/Page"
                    },
                    {
                        "$ref": "#/components/parameters/PerPage"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "$ref": "#/components/schemas/PayoutStatus"
                        }
                    },
                    {
                        "name": "asset",
                        "in": "query",
                        "schema": {
                            "$ref": "#/components/schemas/AssetCode"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/v1/payouts/summary": {
            "get": {
                "operationId": "payouts_summary",
                "tags": [
                    "Payout"
                ],
                "summary": "Summary payout",
                "description": "Requires payouts:read. Unpaginated totals, grouped by asset.",
                "x-permission": "payouts:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/PayoutSummary"
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "mode": {
                                                    "$ref": "#/components/schemas/Mode"
                                                }
                                            },
                                            "required": [
                                                "mode"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    }
                }
            }
        },
        "/v1/payouts/{payout}": {
            "get": {
                "operationId": "payouts_show",
                "tags": [
                    "Payout"
                ],
                "summary": "Show payout",
                "description": "Requires payouts:read.",
                "x-permission": "payouts:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Payout"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                },
                "parameters": [
                    {
                        "name": "payout",
                        "in": "path",
                        "required": true,
                        "description": "Charge code identifying the payout.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/v1/invoices": {
            "get": {
                "operationId": "invoices_index",
                "tags": [
                    "Invoice"
                ],
                "summary": "Index invoice",
                "description": "Requires invoices:read. Results are paginated; unknown enum filter values are ignored.",
                "x-permission": "invoices:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Invoice"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/PaginationLinks"
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/Page"
                    },
                    {
                        "$ref": "#/components/parameters/PerPage"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "$ref": "#/components/schemas/InvoiceStatus"
                        }
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "overdue",
                        "in": "query",
                        "schema": {
                            "type": "boolean"
                        }
                    }
                ]
            },
            "post": {
                "operationId": "invoices_store",
                "tags": [
                    "Invoice"
                ],
                "summary": "Store invoice",
                "description": "Requires invoices:write.",
                "x-permission": "invoices:write",
                "responses": {
                    "201": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Invoice"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateInvoice"
                            }
                        }
                    }
                }
            }
        },
        "/v1/invoices/{invoice}": {
            "get": {
                "operationId": "invoices_show",
                "tags": [
                    "Invoice"
                ],
                "summary": "Show invoice",
                "description": "Requires invoices:read.",
                "x-permission": "invoices:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Invoice"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                },
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/v1/invoices/{invoice}/send": {
            "post": {
                "operationId": "invoices_send",
                "tags": [
                    "Invoice"
                ],
                "summary": "Send invoice",
                "description": "Email an open invoice. Recipient policy and hourly limits apply. Requires invoices:write.",
                "x-permission": "invoices:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Invoice"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    }
                },
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            }
        },
        "/v1/invoices/{invoice}/void": {
            "post": {
                "operationId": "invoices_void",
                "tags": [
                    "Invoice"
                ],
                "summary": "Void invoice",
                "description": "Void an open invoice; its pending charges are canceled. Requires invoices:write.",
                "x-permission": "invoices:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Invoice"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    }
                },
                "parameters": [
                    {
                        "name": "invoice",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            }
        },
        "/v1/events": {
            "get": {
                "operationId": "events_index",
                "tags": [
                    "Event"
                ],
                "summary": "Index event",
                "description": "Requires events:read. Results are paginated; unknown enum filter values are ignored. Embedded charge/invoice data reflects the current resource state, not a historical immutable snapshot.",
                "x-permission": "events:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Event"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/PaginationLinks"
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/Page"
                    },
                    {
                        "$ref": "#/components/parameters/PerPage"
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "schema": {
                            "$ref": "#/components/schemas/WebhookEvent"
                        }
                    },
                    {
                        "name": "charge",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "invoice",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/v1/events/{event}": {
            "get": {
                "operationId": "events_show",
                "tags": [
                    "Event"
                ],
                "summary": "Show event",
                "description": "Requires events:read. Embedded charge/invoice data reflects the current resource state, not a historical immutable snapshot.",
                "x-permission": "events:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Event"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                },
                "parameters": [
                    {
                        "name": "event",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    }
                ]
            }
        },
        "/v1/webhook-endpoints": {
            "get": {
                "operationId": "webhook_endpoints_index",
                "tags": [
                    "WebhookEndpoint"
                ],
                "summary": "Index webhook endpoint",
                "description": "Requires webhook_endpoints:read. Results are paginated; unknown enum filter values are ignored.",
                "x-permission": "webhook_endpoints:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/WebhookEndpoint"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/PaginationLinks"
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/Page"
                    },
                    {
                        "$ref": "#/components/parameters/PerPage"
                    }
                ]
            },
            "post": {
                "operationId": "webhook_endpoints_store",
                "tags": [
                    "WebhookEndpoint"
                ],
                "summary": "Store webhook endpoint",
                "description": "Attempts verification and returns verification_error if it fails. The new signing secret is shown once; save it securely. Requires webhook_endpoints:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin.",
                "x-permission": "webhook_endpoints:write",
                "responses": {
                    "201": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/WebhookEndpoint"
                                                },
                                                {
                                                    "required": [
                                                        "secret"
                                                    ]
                                                }
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "verification_error": {
                                                    "$ref": "#/components/schemas/NullableString"
                                                }
                                            },
                                            "required": [
                                                "verification_error"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateWebhookEndpoint"
                            }
                        }
                    }
                }
            }
        },
        "/v1/webhook-endpoints/{webhook_endpoint}": {
            "get": {
                "operationId": "webhook_endpoints_show",
                "tags": [
                    "WebhookEndpoint"
                ],
                "summary": "Show webhook endpoint",
                "description": "Requires webhook_endpoints:read.",
                "x-permission": "webhook_endpoints:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/WebhookEndpoint"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                },
                "parameters": [
                    {
                        "name": "webhook_endpoint",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string",
                            "pattern": "^[0-9]+$"
                        }
                    }
                ]
            },
            "patch": {
                "operationId": "webhook_endpoints_update",
                "tags": [
                    "WebhookEndpoint"
                ],
                "summary": "Update webhook endpoint",
                "description": "Changing the URL triggers verification again. Check verification_error in meta. Requires webhook_endpoints:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin.",
                "x-permission": "webhook_endpoints:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/WebhookEndpoint"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "verification_error": {
                                                    "$ref": "#/components/schemas/NullableString"
                                                }
                                            },
                                            "required": [
                                                "verification_error"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "name": "webhook_endpoint",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string",
                            "pattern": "^[0-9]+$"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateWebhookEndpoint"
                            }
                        }
                    }
                }
            },
            "delete": {
                "operationId": "webhook_endpoints_destroy",
                "tags": [
                    "WebhookEndpoint"
                ],
                "summary": "Destroy webhook endpoint",
                "description": "Requires webhook_endpoints:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin.",
                "x-permission": "webhook_endpoints:write",
                "responses": {
                    "204": {
                        "description": "Deleted successfully.",
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    }
                },
                "parameters": [
                    {
                        "name": "webhook_endpoint",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string",
                            "pattern": "^[0-9]+$"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            }
        },
        "/v1/webhook-endpoints/{webhook_endpoint}/deliveries": {
            "get": {
                "operationId": "webhook_endpoints_deliveries_index",
                "tags": [
                    "WebhookEndpoint"
                ],
                "summary": "Deliveries webhook endpoint",
                "description": "Requires webhook_endpoints:read. Results are paginated; unknown enum filter values are ignored.",
                "x-permission": "webhook_endpoints:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/WebhookDelivery"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/PaginationLinks"
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    }
                },
                "parameters": [
                    {
                        "name": "webhook_endpoint",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string",
                            "pattern": "^[0-9]+$"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/Page"
                    },
                    {
                        "$ref": "#/components/parameters/PerPage"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "pending",
                                "succeeded",
                                "failed"
                            ]
                        }
                    },
                    {
                        "name": "event",
                        "in": "query",
                        "schema": {
                            "$ref": "#/components/schemas/WebhookEvent"
                        }
                    }
                ]
            }
        },
        "/v1/webhook-endpoints/{webhook_endpoint}/secret": {
            "post": {
                "operationId": "webhook_endpoints_secret",
                "tags": [
                    "WebhookEndpoint"
                ],
                "summary": "Rotate secret webhook endpoint",
                "description": "Returns a new signing secret once. The previous secret remains valid until meta.previous_secret_expires_at; verify either signature during rotation. Requires webhook_endpoints:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin.",
                "x-permission": "webhook_endpoints:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/WebhookEndpoint"
                                                },
                                                {
                                                    "required": [
                                                        "secret"
                                                    ]
                                                }
                                            ]
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "previous_secret_expires_at": {
                                                    "$ref": "#/components/schemas/NullableDateTime"
                                                }
                                            },
                                            "required": [
                                                "previous_secret_expires_at"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    }
                },
                "parameters": [
                    {
                        "name": "webhook_endpoint",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string",
                            "pattern": "^[0-9]+$"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            }
        },
        "/v1/webhook-endpoints/{webhook_endpoint}/verify": {
            "post": {
                "operationId": "webhook_endpoints_verify",
                "tags": [
                    "WebhookEndpoint"
                ],
                "summary": "Verify webhook endpoint",
                "description": "Sends an endpoint verification challenge; 422 means verification failed. Requires webhook_endpoints:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin. These send operations share a limit of 10 per minute per key.",
                "x-permission": "webhook_endpoints:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/WebhookEndpoint"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "name": "webhook_endpoint",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string",
                            "pattern": "^[0-9]+$"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            }
        },
        "/v1/webhook-endpoints/{webhook_endpoint}/test": {
            "post": {
                "operationId": "webhook_endpoints_test",
                "tags": [
                    "WebhookEndpoint"
                ],
                "summary": "Test webhook endpoint",
                "description": "Queues a test charge.paid event to a verified endpoint. It does not create a real charge. Requires webhook_endpoints:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin. These send operations share a limit of 10 per minute per key.",
                "x-permission": "webhook_endpoints:write",
                "responses": {
                    "201": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/WebhookDelivery"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    }
                },
                "parameters": [
                    {
                        "name": "webhook_endpoint",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string",
                            "pattern": "^[0-9]+$"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            }
        },
        "/v1/webhook-endpoints/{webhook_endpoint}/deliveries/{delivery}/retry": {
            "post": {
                "operationId": "webhook_endpoints_deliveries_retry",
                "tags": [
                    "WebhookEndpoint"
                ],
                "summary": "Retry webhook endpoint",
                "description": "Queues the existing delivery again; the endpoint must be verified and active. Requires webhook_endpoints:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin. These send operations share a limit of 10 per minute per key.",
                "x-permission": "webhook_endpoints:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/WebhookDelivery"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    }
                },
                "parameters": [
                    {
                        "name": "webhook_endpoint",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string",
                            "pattern": "^[0-9]+$"
                        }
                    },
                    {
                        "name": "delivery",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string",
                            "format": "uuid"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            }
        },
        "/v1/api-keys": {
            "get": {
                "operationId": "api_keys_index",
                "tags": [
                    "ApiKey"
                ],
                "summary": "Index api key",
                "description": "Requires api_keys:read. Results are paginated; unknown enum filter values are ignored. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin.",
                "x-permission": "api_keys:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/ApiKey"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/PaginationLinks"
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/Page"
                    },
                    {
                        "$ref": "#/components/parameters/PerPage"
                    }
                ]
            },
            "post": {
                "operationId": "api_keys_store",
                "tags": [
                    "ApiKey"
                ],
                "summary": "Store api key",
                "description": "Returns the newly issued plaintext key once. Save it securely; later reads never expose it. Requires api_keys:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin.",
                "x-permission": "api_keys:write",
                "responses": {
                    "201": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/ApiKey"
                                                },
                                                {
                                                    "required": [
                                                        "key"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateApiKey"
                            }
                        }
                    }
                }
            }
        },
        "/v1/api-keys/{api_key}": {
            "patch": {
                "operationId": "api_keys_update",
                "tags": [
                    "ApiKey"
                ],
                "summary": "Update api key",
                "description": "Requires api_keys:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin.",
                "x-permission": "api_keys:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ApiKey"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "name": "api_key",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string",
                            "pattern": "^[0-9]+$"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": false,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateApiKey"
                            }
                        }
                    }
                }
            },
            "delete": {
                "operationId": "api_keys_destroy",
                "tags": [
                    "ApiKey"
                ],
                "summary": "Destroy api key",
                "description": "Requires api_keys:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin.",
                "x-permission": "api_keys:write",
                "responses": {
                    "204": {
                        "description": "Deleted successfully.",
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    }
                },
                "parameters": [
                    {
                        "name": "api_key",
                        "in": "path",
                        "required": true,
                        "description": "Resource identifier in the key's account and mode.",
                        "schema": {
                            "type": "string",
                            "pattern": "^[0-9]+$"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            }
        },
        "/v1/overview": {
            "get": {
                "operationId": "overview_show",
                "tags": [
                    "Overview"
                ],
                "summary": "Show overview",
                "description": "Requires overview:read. Figures cover the last 30 days; attention items reflect the current state.",
                "x-permission": "overview:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Overview"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "mode": {
                                                    "$ref": "#/components/schemas/Mode"
                                                }
                                            },
                                            "required": [
                                                "mode"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    }
                }
            }
        },
        "/v1/payout-addresses": {
            "get": {
                "operationId": "payout_addresses_index",
                "tags": [
                    "PayoutAddress"
                ],
                "summary": "Index payout address",
                "description": "Requires payout_addresses:read. Unpaginated, one entry per payout network available in this mode.",
                "x-permission": "payout_addresses:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/PayoutAddress"
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "mode": {
                                                    "$ref": "#/components/schemas/Mode"
                                                },
                                                "api_payout_address_changes": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "mode",
                                                "api_payout_address_changes"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    }
                }
            }
        },
        "/v1/payout-addresses/{payout_address}": {
            "put": {
                "operationId": "payout_addresses_update",
                "tags": [
                    "PayoutAddress"
                ],
                "summary": "Update payout address",
                "description": "Requires API payout-address changes to be enabled in the dashboard and a valid address for this network/mode. Requires payout_addresses:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin.",
                "x-permission": "payout_addresses:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/PayoutAddress"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "name": "payout_address",
                        "in": "path",
                        "required": true,
                        "description": "Network family, available for payout in this mode.",
                        "schema": {
                            "$ref": "#/components/schemas/AddressNetwork"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdatePayoutAddress"
                            }
                        }
                    }
                }
            },
            "delete": {
                "operationId": "payout_addresses_destroy",
                "tags": [
                    "PayoutAddress"
                ],
                "summary": "Destroy payout address",
                "description": "Removes the payout destination and returns the network entry with address null. Future payouts wait for a replacement. Requires payout_addresses:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin.",
                "x-permission": "payout_addresses:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/PayoutAddress"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    }
                },
                "parameters": [
                    {
                        "name": "payout_address",
                        "in": "path",
                        "required": true,
                        "description": "Network family, available for payout in this mode.",
                        "schema": {
                            "$ref": "#/components/schemas/AddressNetwork"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            }
        },
        "/v1/activity": {
            "get": {
                "operationId": "activity_index",
                "tags": [
                    "Activity"
                ],
                "summary": "Index activity",
                "description": "Requires activity:read. Results are paginated; unknown enum filter values are ignored. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin.",
                "x-permission": "activity:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Activity"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/PaginationLinks"
                                        },
                                        "meta": {
                                            "allOf": [
                                                {
                                                    "$ref": "#/components/schemas/PaginationMeta"
                                                },
                                                {
                                                    "type": "object",
                                                    "properties": {
                                                        "mode": {
                                                            "$ref": "#/components/schemas/Mode"
                                                        }
                                                    },
                                                    "required": [
                                                        "mode"
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/Page"
                    },
                    {
                        "$ref": "#/components/parameters/PerPage"
                    },
                    {
                        "name": "action",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "description": "Activity action or sensitive."
                        }
                    },
                    {
                        "name": "person",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "from",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "schema": {
                            "type": "string",
                            "format": "date"
                        }
                    },
                    {
                        "name": "network",
                        "in": "query",
                        "description": "Optional additional mode filter. Results still stay within the key mode; omitting it also includes mode-neutral activity such as sign-ins.",
                        "schema": {
                            "$ref": "#/components/schemas/Mode"
                        }
                    }
                ]
            }
        },
        "/v1/members": {
            "get": {
                "operationId": "members_index",
                "tags": [
                    "Member"
                ],
                "summary": "Index member",
                "description": "Requires members:read. Results are paginated; unknown enum filter values are ignored. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin. Account settings and membership are shared between live and test modes.",
                "x-permission": "members:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Member"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/PaginationLinks"
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/Page"
                    },
                    {
                        "$ref": "#/components/parameters/PerPage"
                    }
                ]
            }
        },
        "/v1/members/{member}": {
            "patch": {
                "operationId": "members_update",
                "tags": [
                    "Member"
                ],
                "summary": "Update member",
                "description": "Organization accounts only; owner role cannot be assigned or changed here. Requires members:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin. The key must have been created by an owner. Account settings and membership are shared between live and test modes.",
                "x-permission": "members:write",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Member"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "name": "member",
                        "in": "path",
                        "required": true,
                        "description": "Identifier in the key's account; membership and invitations are shared between modes.",
                        "schema": {
                            "type": "string",
                            "pattern": "^[0-9]+$"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/UpdateMember"
                            }
                        }
                    }
                }
            },
            "delete": {
                "operationId": "members_destroy",
                "tags": [
                    "Member"
                ],
                "summary": "Destroy member",
                "description": "Organization accounts only; owners cannot be removed through this endpoint. Requires members:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin. The key must have been created by an owner. Account settings and membership are shared between live and test modes.",
                "x-permission": "members:write",
                "responses": {
                    "204": {
                        "description": "Deleted successfully.",
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    }
                },
                "parameters": [
                    {
                        "name": "member",
                        "in": "path",
                        "required": true,
                        "description": "Identifier in the key's account; membership and invitations are shared between modes.",
                        "schema": {
                            "type": "string",
                            "pattern": "^[0-9]+$"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            }
        },
        "/v1/invitations": {
            "get": {
                "operationId": "invitations_index",
                "tags": [
                    "Invitation"
                ],
                "summary": "Index invitation",
                "description": "Requires members:read. Results are paginated; unknown enum filter values are ignored. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin. Account settings and membership are shared between live and test modes.",
                "x-permission": "members:read",
                "responses": {
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/components/schemas/Invitation"
                                            }
                                        },
                                        "links": {
                                            "$ref": "#/components/schemas/PaginationLinks"
                                        },
                                        "meta": {
                                            "$ref": "#/components/schemas/PaginationMeta"
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "links",
                                        "meta"
                                    ]
                                }
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/Page"
                    },
                    {
                        "$ref": "#/components/parameters/PerPage"
                    }
                ]
            },
            "post": {
                "operationId": "invitations_store",
                "tags": [
                    "Invitation"
                ],
                "summary": "Store invitation",
                "description": "Invite an admin or member to an organization. Personal accounts return 409; membership, role and plan limits apply. Requires members:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin. Account settings and membership are shared between live and test modes.",
                "x-permission": "members:write",
                "responses": {
                    "201": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/Invitation"
                                        }
                                    },
                                    "required": [
                                        "data"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateInvitation"
                            }
                        }
                    }
                }
            }
        },
        "/v1/invitations/{invitation}": {
            "delete": {
                "operationId": "invitations_destroy",
                "tags": [
                    "Invitation"
                ],
                "summary": "Destroy invitation",
                "description": "Requires members:write. This sensitive permission must be explicitly granted, and the key creator must remain an account owner or admin. Account settings and membership are shared between live and test modes.",
                "x-permission": "members:write",
                "responses": {
                    "204": {
                        "description": "Deleted successfully.",
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "404": {
                        "$ref": "#/components/responses/404"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    }
                },
                "parameters": [
                    {
                        "name": "invitation",
                        "in": "path",
                        "required": true,
                        "description": "Identifier in the key's account; membership and invitations are shared between modes.",
                        "schema": {
                            "type": "string",
                            "pattern": "^[0-9]+$"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ]
            }
        },
        "/v1/billing/pro": {
            "post": {
                "operationId": "billing_pro",
                "tags": [
                    "Billing"
                ],
                "summary": "Pro billing",
                "description": "Live mode only. Returns 201 when started or 200 when reusing the existing pending Pro payment. Requires billing:write.",
                "x-permission": "billing:write",
                "responses": {
                    "201": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ProPayment"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "started": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "started"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/401"
                    },
                    "403": {
                        "$ref": "#/components/responses/403"
                    },
                    "429": {
                        "$ref": "#/components/responses/429"
                    },
                    "500": {
                        "$ref": "#/components/responses/500"
                    },
                    "503": {
                        "$ref": "#/components/responses/503"
                    },
                    "400": {
                        "$ref": "#/components/responses/400"
                    },
                    "409": {
                        "$ref": "#/components/responses/409"
                    },
                    "422": {
                        "$ref": "#/components/responses/422"
                    },
                    "200": {
                        "description": "Successful response.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "#/components/schemas/ProPayment"
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "started": {
                                                    "type": "boolean"
                                                }
                                            },
                                            "required": [
                                                "started"
                                            ]
                                        }
                                    },
                                    "required": [
                                        "data",
                                        "meta"
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "Idempotent-Replayed": {
                                "$ref": "#/components/headers/IdempotentReplayed"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "$ref": "#/components/parameters/IdempotencyKey"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateProPayment"
                            }
                        }
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "bearerAuth": {
                "type": "http",
                "scheme": "bearer",
                "description": "Server-side vp_live_\u2026 or vp_test_\u2026 API key. Never expose it in browser or mobile code. Null permissions grants ordinary access; sensitive grants require an explicit list and a creator who remains an account owner/admin."
            }
        },
        "parameters": {
            "Page": {
                "name": "page",
                "in": "query",
                "description": "Page number, starting at 1.",
                "schema": {
                    "type": "integer",
                    "minimum": 1,
                    "default": 1
                }
            },
            "PerPage": {
                "name": "per_page",
                "in": "query",
                "description": "Results per page; clamped to 1\u2013100.",
                "schema": {
                    "type": "integer",
                    "minimum": 1,
                    "maximum": 100,
                    "default": 25
                }
            },
            "IdempotencyKey": {
                "name": "Idempotency-Key",
                "in": "header",
                "description": "Optional opaque key (at most 255 bytes), scoped to account, mode, method and path. Exact body/query replays are retained for 24 hours. Changed input or an in-progress operation returns 409. A response containing a newly issued key/secret cannot be replayed and also returns 409.",
                "schema": {
                    "type": "string",
                    "maxLength": 255
                }
            }
        },
        "schemas": {
            "Decimal": {
                "type": "string",
                "pattern": "^\\d+(?:\\.\\d+)?$",
                "description": "Exact decimal string; preserve precision when handling amounts."
            },
            "NullableDecimal": {
                "anyOf": [
                    {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    {
                        "type": "null"
                    }
                ]
            },
            "DateTime": {
                "type": "string",
                "format": "date-time"
            },
            "NullableDateTime": {
                "anyOf": [
                    {
                        "$ref": "#/components/schemas/DateTime"
                    },
                    {
                        "type": "null"
                    }
                ]
            },
            "NullableString": {
                "type": [
                    "string",
                    "null"
                ]
            },
            "Mode": {
                "type": "string",
                "enum": [
                    "live",
                    "test"
                ]
            },
            "Currency": {
                "type": "string",
                "enum": [
                    "USD",
                    "EUR",
                    "GBP",
                    "CAD",
                    "AUD",
                    "CHF",
                    "TRY"
                ]
            },
            "AssetCode": {
                "type": "string",
                "enum": [
                    "BTC",
                    "LTC",
                    "DOGE",
                    "BCH",
                    "ETH",
                    "XMR",
                    "SOL",
                    "BNB",
                    "TRX",
                    "USDT",
                    "USDC",
                    "USDT_TRON",
                    "USDC_BASE",
                    "USDC_POLYGON",
                    "USDT_BSC",
                    "USDC_BSC"
                ]
            },
            "AddressNetwork": {
                "type": "string",
                "enum": [
                    "bitcoin",
                    "litecoin",
                    "dogecoin",
                    "bitcoincash",
                    "evm",
                    "bsc",
                    "tron",
                    "monero",
                    "solana"
                ]
            },
            "ChargeStatus": {
                "type": "string",
                "enum": [
                    "pending",
                    "underpaid",
                    "paid",
                    "expired",
                    "canceled"
                ]
            },
            "InvoiceStatus": {
                "type": "string",
                "enum": [
                    "open",
                    "paid",
                    "void"
                ]
            },
            "PayoutStatus": {
                "type": "string",
                "enum": [
                    "pending",
                    "sending",
                    "sent",
                    "failed",
                    "manual"
                ]
            },
            "PaymentLinkStatus": {
                "type": "string",
                "enum": [
                    "active",
                    "archived"
                ]
            },
            "WebhookEvent": {
                "type": "string",
                "enum": [
                    "charge.created",
                    "charge.payment_detected",
                    "charge.paid",
                    "charge.underpaid",
                    "charge.late_payment",
                    "charge.refunded",
                    "charge.expired",
                    "charge.canceled",
                    "invoice.created",
                    "invoice.sent",
                    "invoice.viewed",
                    "invoice.paid",
                    "invoice.voided",
                    "payout.sent",
                    "payout.confirmed"
                ]
            },
            "Permission": {
                "type": "string",
                "enum": [
                    "charges:read",
                    "charges:write",
                    "charges:accept",
                    "charges:refund",
                    "invoices:read",
                    "invoices:write",
                    "payment_links:read",
                    "payment_links:write",
                    "coupons:read",
                    "coupons:write",
                    "payouts:read",
                    "events:read",
                    "webhook_endpoints:read",
                    "overview:read",
                    "payout_addresses:read",
                    "activity:read",
                    "account:write",
                    "payment_settings:write",
                    "payout_addresses:write",
                    "webhook_endpoints:write",
                    "api_keys:read",
                    "api_keys:write",
                    "members:read",
                    "members:write",
                    "billing:write"
                ],
                "description": "Required permission named by x-permission on each operation. Null key permissions cover ordinary permissions only; sensitive permissions must be granted explicitly and require the key creator to remain an account owner/admin."
            },
            "BusinessType": {
                "type": "string",
                "enum": [
                    "individual",
                    "company",
                    "non_profit"
                ]
            },
            "Industry": {
                "type": "string",
                "enum": [
                    "digital_products",
                    "software",
                    "hosting",
                    "gaming",
                    "retail",
                    "professional_services",
                    "education",
                    "media",
                    "marketplace",
                    "travel",
                    "donations",
                    "other"
                ]
            },
            "MonthlyVolume": {
                "type": "string",
                "enum": [
                    "under_1k",
                    "1k_10k",
                    "10k_50k",
                    "50k_250k",
                    "over_250k"
                ]
            },
            "CheckoutAppearance": {
                "type": "string",
                "enum": [
                    "auto",
                    "light",
                    "dark"
                ]
            },
            "ActivityAction": {
                "type": "string",
                "enum": [
                    "wallets.changed",
                    "wallets.api_access_changed",
                    "payment_settings.updated",
                    "profile.updated",
                    "business_details.updated",
                    "api_key.created",
                    "api_key.updated",
                    "api_key.revoked",
                    "webhook.created",
                    "webhook.updated",
                    "webhook.deleted",
                    "webhook.secret_rotated",
                    "member.invited",
                    "member.joined",
                    "member.role_changed",
                    "member.removed",
                    "payment_link.created",
                    "payment_link.updated",
                    "payment_link.archived",
                    "payment_link.restored",
                    "member.invitation_canceled",
                    "charge.payment_requested",
                    "webhook.disabled",
                    "charge.canceled",
                    "charge.accepted",
                    "refund.recorded",
                    "invoice.voided",
                    "plan.payment_started",
                    "plan.subscription_canceled",
                    "plan.subscription_resumed",
                    "auth.signed_in",
                    "auth.sign_in_failed",
                    "auth.password_changed",
                    "auth.two_factor_enabled",
                    "auth.two_factor_disabled",
                    "auth.signed_out_elsewhere",
                    "auth.two_factor_failed",
                    "auth.email_changed",
                    "auth.passkey_added",
                    "auth.passkey_removed",
                    "coupon.created",
                    "coupon.updated",
                    "coupon.deleted",
                    "auth.app_connected",
                    "auth.app_disconnected",
                    "chat.connected",
                    "chat.updated",
                    "chat.removed",
                    "chat.disabled",
                    "sanctions.matched",
                    "sanctions.accepted",
                    "sanctions.return_requested",
                    "auth.social_connected",
                    "auth.social_disconnected"
                ]
            },
            "Metadata": {
                "type": "object",
                "additionalProperties": {
                    "type": [
                        "string",
                        "number",
                        "boolean",
                        "null"
                    ]
                }
            },
            "MetadataInput": {
                "type": [
                    "object",
                    "array",
                    "null"
                ],
                "maxProperties": 20,
                "maxItems": 20,
                "propertyNames": {
                    "maxLength": 40
                },
                "additionalProperties": {
                    "type": [
                        "string",
                        "number",
                        "boolean",
                        "null"
                    ],
                    "maxLength": 500
                },
                "items": {
                    "type": [
                        "string",
                        "number",
                        "boolean",
                        "null"
                    ],
                    "maxLength": 500
                }
            },
            "PublicURL": {
                "anyOf": [
                    {
                        "type": "string",
                        "maxLength": 2048,
                        "format": "uri",
                        "pattern": "^https://",
                        "description": "Public HTTPS URL without credentials. Local, private and reserved destinations are refused."
                    },
                    {
                        "type": "null"
                    }
                ]
            },
            "CustomerInput": {
                "anyOf": [
                    {
                        "type": "object",
                        "properties": {
                            "email": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "maxLength": 255,
                                        "format": "email"
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "name": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "ip_address": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "description": "IPv4 or IPv6 address."
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "user_agent": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "maxLength": 1000
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "reference": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "phone": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "maxLength": 50
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "country": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "pattern": "^[A-Za-z]{2}$"
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "metadata": {
                                "$ref": "#/components/schemas/MetadataInput"
                            }
                        },
                        "additionalProperties": false
                    },
                    {
                        "type": "null"
                    }
                ]
            },
            "Customer": {
                "type": "object",
                "properties": {
                    "email": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "name": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "ip_address": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "user_agent": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "reference": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "phone": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "country": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "metadata": {
                        "$ref": "#/components/schemas/Metadata"
                    }
                },
                "required": [
                    "email",
                    "name",
                    "ip_address",
                    "user_agent",
                    "reference",
                    "phone",
                    "country",
                    "metadata"
                ]
            },
            "CustomFieldAnswer": {
                "type": "object",
                "properties": {
                    "label": {
                        "type": "string",
                        "maxLength": 60
                    },
                    "value": {
                        "type": "string",
                        "maxLength": 255
                    }
                },
                "required": [
                    "label",
                    "value"
                ]
            },
            "CheckoutQuestion": {
                "type": "object",
                "properties": {
                    "label": {
                        "type": "string",
                        "maxLength": 60
                    },
                    "required": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "label",
                    "required"
                ]
            },
            "Error": {
                "type": "object",
                "properties": {
                    "message": {
                        "type": "string"
                    },
                    "errors": {
                        "type": "object",
                        "additionalProperties": {
                            "type": "array",
                            "items": {
                                "type": "string"
                            }
                        }
                    }
                },
                "required": [
                    "message"
                ]
            },
            "PaginationLinks": {
                "type": "object",
                "properties": {
                    "first": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "last": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "prev": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "next": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "required": [
                    "first",
                    "last",
                    "prev",
                    "next"
                ]
            },
            "PaginationMeta": {
                "type": "object",
                "properties": {
                    "current_page": {
                        "type": "integer"
                    },
                    "from": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "last_page": {
                        "type": "integer"
                    },
                    "links": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "url": {
                                    "anyOf": [
                                        {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        {
                                            "type": "null"
                                        }
                                    ]
                                },
                                "label": {
                                    "type": "string"
                                },
                                "page": {
                                    "type": [
                                        "integer",
                                        "null"
                                    ]
                                },
                                "active": {
                                    "type": "boolean"
                                }
                            },
                            "required": [
                                "url",
                                "label",
                                "active"
                            ]
                        }
                    },
                    "path": {
                        "type": "string",
                        "format": "uri"
                    },
                    "per_page": {
                        "type": "integer"
                    },
                    "to": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "total": {
                        "type": "integer"
                    }
                },
                "required": [
                    "current_page",
                    "from",
                    "last_page",
                    "links",
                    "path",
                    "per_page",
                    "to",
                    "total"
                ]
            },
            "CreateCharge": {
                "type": "object",
                "properties": {
                    "payment_link": {
                        "anyOf": [
                            {
                                "type": "string",
                                "description": "Active payment-link code in this mode. A fixed link supplies amount and currency; an open link requires amount and supplies currency."
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "asset": {
                        "$ref": "#/components/schemas/AssetCode"
                    },
                    "amount": {
                        "description": "Decimal value from 0.01 through 9999999999999999.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                        "anyOf": [
                            {
                                "type": "string",
                                "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                            },
                            {
                                "type": "number",
                                "minimum": 0.01,
                                "maximum": 10000000000000000,
                                "multipleOf": 0.01
                            }
                        ],
                        "x-decimal-places": 2,
                        "x-decimal-minimum": "0.01",
                        "x-decimal-maximum": "9999999999999999.99"
                    },
                    "currency": {
                        "$ref": "#/components/schemas/Currency"
                    },
                    "customer_email": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 255,
                                "format": "email"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "customer": {
                        "$ref": "#/components/schemas/CustomerInput"
                    },
                    "coupon": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 32
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "description": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 500
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "metadata": {
                        "$ref": "#/components/schemas/MetadataInput"
                    },
                    "custom_fields": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/CustomFieldAnswer"
                                },
                                "maxItems": 5
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "success_url": {
                        "$ref": "#/components/schemas/PublicURL"
                    },
                    "cancel_url": {
                        "$ref": "#/components/schemas/PublicURL"
                    },
                    "success_message": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 1000
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "send_email": {
                        "type": "boolean",
                        "default": false
                    }
                },
                "required": [
                    "asset"
                ],
                "anyOf": [
                    {
                        "required": [
                            "amount",
                            "currency"
                        ]
                    },
                    {
                        "required": [
                            "payment_link"
                        ],
                        "properties": {
                            "payment_link": {
                                "type": "string",
                                "minLength": 1
                            }
                        }
                    }
                ],
                "description": "The asset must be accepted by the account/link and the amount must meet its limits. For a fixed link, amount is ignored; for any link, currency is ignored. Email delivery requires a permitted customer email.",
                "examples": [
                    {
                        "asset": "BTC",
                        "amount": "150.00",
                        "currency": "USD",
                        "description": "Order 1042",
                        "customer": {
                            "email": "customer@example.com",
                            "reference": "customer_42"
                        },
                        "metadata": {
                            "order_id": "1042"
                        }
                    },
                    {
                        "payment_link": "pl_example",
                        "asset": "BTC"
                    }
                ]
            },
            "RecordRefund": {
                "type": "object",
                "properties": {
                    "amount": {
                        "description": "Positive crypto amount with at most 18 fractional digits, no greater than the charge's remaining refundable amount. Send a decimal string to preserve precision.",
                        "anyOf": [
                            {
                                "type": "string",
                                "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,18})?$"
                            },
                            {
                                "type": "number",
                                "minimum": 1.0e-18,
                                "multipleOf": 1.0e-18
                            }
                        ],
                        "x-decimal-places": 18,
                        "x-decimal-minimum": "0.000000000000000001"
                    },
                    "txid": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 100,
                                "pattern": "^[A-Za-z0-9]+$"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "reason": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 255
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "required": [
                    "amount"
                ],
                "description": "Record a refund already sent outside VeliraPay. This operation never moves funds; the amount cannot exceed the remaining refundable crypto.",
                "examples": [
                    {
                        "amount": "0.001",
                        "txid": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                        "reason": "Returned order"
                    }
                ]
            },
            "SimulateCharge": {
                "type": "object",
                "properties": {
                    "amount": {
                        "anyOf": [
                            {
                                "description": "Decimal value from 0.000000000000000001 through 1000000000, with at most 18 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,18})?$"
                                    },
                                    {
                                        "type": "number",
                                        "minimum": 1.0e-18,
                                        "maximum": 1000000000,
                                        "multipleOf": 1.0e-18
                                    }
                                ],
                                "x-decimal-places": 18,
                                "x-decimal-minimum": "0.000000000000000001",
                                "x-decimal-maximum": "1000000000"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "description": "Test mode only. Omit amount to simulate the amount still due.",
                "examples": [
                    {
                        "amount": "0.0025"
                    }
                ]
            },
            "CreatePaymentLink": {
                "type": "object",
                "properties": {
                    "title": {
                        "type": "string",
                        "maxLength": 255,
                        "minLength": 1
                    },
                    "description": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 2000
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "pricing_type": {
                        "type": "string",
                        "enum": [
                            "fixed",
                            "open"
                        ]
                    },
                    "amount": {
                        "anyOf": [
                            {
                                "description": "Decimal value from 0.01 through 9999999999999999.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                                    },
                                    {
                                        "type": "number",
                                        "minimum": 0.01,
                                        "maximum": 10000000000000000,
                                        "multipleOf": 0.01
                                    }
                                ],
                                "x-decimal-places": 2,
                                "x-decimal-minimum": "0.01",
                                "x-decimal-maximum": "9999999999999999.99"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "suggested_amounts": {
                        "anyOf": [
                            {
                                "anyOf": [
                                    {
                                        "type": "array",
                                        "items": {
                                            "description": "Decimal value from 0.01 through 9999999999999999.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                            "anyOf": [
                                                {
                                                    "type": "string",
                                                    "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                                                },
                                                {
                                                    "type": "number",
                                                    "minimum": 0.01,
                                                    "maximum": 10000000000000000,
                                                    "multipleOf": 0.01
                                                }
                                            ],
                                            "x-decimal-places": 2,
                                            "x-decimal-minimum": "0.01",
                                            "x-decimal-maximum": "9999999999999999.99"
                                        },
                                        "maxItems": 4,
                                        "uniqueItems": true
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            {
                                "type": "string",
                                "description": "Comma-, semicolon- or whitespace-separated amounts; a JSON array is recommended."
                            }
                        ]
                    },
                    "min_amount": {
                        "anyOf": [
                            {
                                "description": "Decimal value from 0.01 through 9999999999999999.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                                    },
                                    {
                                        "type": "number",
                                        "minimum": 0.01,
                                        "maximum": 10000000000000000,
                                        "multipleOf": 0.01
                                    }
                                ],
                                "x-decimal-places": 2,
                                "x-decimal-minimum": "0.01",
                                "x-decimal-maximum": "9999999999999999.99"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "max_amount": {
                        "anyOf": [
                            {
                                "description": "Decimal value from 0.01 through 9999999999999999.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                                    },
                                    {
                                        "type": "number",
                                        "minimum": 0.01,
                                        "maximum": 10000000000000000,
                                        "multipleOf": 0.01
                                    }
                                ],
                                "x-decimal-places": 2,
                                "x-decimal-minimum": "0.01",
                                "x-decimal-maximum": "9999999999999999.99"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "currency": {
                        "$ref": "#/components/schemas/Currency"
                    },
                    "success_url": {
                        "$ref": "#/components/schemas/PublicURL"
                    },
                    "cancel_url": {
                        "$ref": "#/components/schemas/PublicURL"
                    },
                    "collect_name": {
                        "type": "boolean"
                    },
                    "require_email": {
                        "type": "boolean"
                    },
                    "success_message": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 1000
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "custom_fields": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/CheckoutQuestion"
                        },
                        "maxItems": 5
                    },
                    "expires_at": {
                        "anyOf": [
                            {
                                "type": "string",
                                "description": "Future date or timestamp. A YYYY-MM-DD date closes at the end of that day."
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "max_payments": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "minimum": 1,
                        "maximum": 1000000
                    },
                    "accepted_assets": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/AssetCode"
                                },
                                "minItems": 1,
                                "maxItems": 16,
                                "uniqueItems": true
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "required": [
                    "title",
                    "pricing_type",
                    "currency"
                ],
                "allOf": [
                    {
                        "if": {
                            "required": [
                                "pricing_type"
                            ],
                            "properties": {
                                "pricing_type": {
                                    "const": "fixed"
                                }
                            }
                        },
                        "then": {
                            "required": [
                                "amount"
                            ],
                            "properties": {
                                "amount": {
                                    "description": "Decimal value from 0.01 through 9999999999999999.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                    "anyOf": [
                                        {
                                            "type": "string",
                                            "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                                        },
                                        {
                                            "type": "number",
                                            "minimum": 0.01,
                                            "maximum": 10000000000000000,
                                            "multipleOf": 0.01
                                        }
                                    ],
                                    "x-decimal-places": 2,
                                    "x-decimal-minimum": "0.01",
                                    "x-decimal-maximum": "9999999999999999.99"
                                }
                            }
                        }
                    }
                ],
                "description": "Fixed pricing requires amount. Open pricing may set suggested amounts and min/max limits. Assets must be available to this account and mode.",
                "examples": [
                    {
                        "title": "Consultation",
                        "pricing_type": "fixed",
                        "amount": "150.00",
                        "currency": "USD",
                        "accepted_assets": [
                            "BTC",
                            "ETH"
                        ],
                        "custom_fields": [
                            {
                                "label": "Order number",
                                "required": true
                            }
                        ]
                    },
                    {
                        "title": "Support our work",
                        "pricing_type": "open",
                        "currency": "USD",
                        "suggested_amounts": [
                            "5.00",
                            "10.00",
                            "25.00"
                        ]
                    }
                ]
            },
            "UpdatePaymentLink": {
                "type": "object",
                "properties": {
                    "title": {
                        "type": "string",
                        "maxLength": 255,
                        "minLength": 1
                    },
                    "description": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 2000
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "pricing_type": {
                        "type": "string",
                        "enum": [
                            "fixed",
                            "open"
                        ]
                    },
                    "amount": {
                        "anyOf": [
                            {
                                "description": "Decimal value from 0.01 through 9999999999999999.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                                    },
                                    {
                                        "type": "number",
                                        "minimum": 0.01,
                                        "maximum": 10000000000000000,
                                        "multipleOf": 0.01
                                    }
                                ],
                                "x-decimal-places": 2,
                                "x-decimal-minimum": "0.01",
                                "x-decimal-maximum": "9999999999999999.99"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "suggested_amounts": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {
                                    "description": "Decimal value from 0.01 through 9999999999999999.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                    "anyOf": [
                                        {
                                            "type": "string",
                                            "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                                        },
                                        {
                                            "type": "number",
                                            "minimum": 0.01,
                                            "maximum": 10000000000000000,
                                            "multipleOf": 0.01
                                        }
                                    ],
                                    "x-decimal-places": 2,
                                    "x-decimal-minimum": "0.01",
                                    "x-decimal-maximum": "9999999999999999.99"
                                },
                                "maxItems": 4,
                                "uniqueItems": true
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "min_amount": {
                        "anyOf": [
                            {
                                "description": "Decimal value from 0.01 through 9999999999999999.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                                    },
                                    {
                                        "type": "number",
                                        "minimum": 0.01,
                                        "maximum": 10000000000000000,
                                        "multipleOf": 0.01
                                    }
                                ],
                                "x-decimal-places": 2,
                                "x-decimal-minimum": "0.01",
                                "x-decimal-maximum": "9999999999999999.99"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "max_amount": {
                        "anyOf": [
                            {
                                "description": "Decimal value from 0.01 through 9999999999999999.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                                    },
                                    {
                                        "type": "number",
                                        "minimum": 0.01,
                                        "maximum": 10000000000000000,
                                        "multipleOf": 0.01
                                    }
                                ],
                                "x-decimal-places": 2,
                                "x-decimal-minimum": "0.01",
                                "x-decimal-maximum": "9999999999999999.99"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "currency": {
                        "$ref": "#/components/schemas/Currency"
                    },
                    "success_url": {
                        "$ref": "#/components/schemas/PublicURL"
                    },
                    "cancel_url": {
                        "$ref": "#/components/schemas/PublicURL"
                    },
                    "collect_name": {
                        "type": "boolean"
                    },
                    "require_email": {
                        "type": "boolean"
                    },
                    "success_message": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 1000
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "custom_fields": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/CheckoutQuestion"
                        },
                        "maxItems": 5
                    },
                    "expires_at": {
                        "anyOf": [
                            {
                                "type": "string",
                                "description": "Future date or timestamp. A YYYY-MM-DD date closes at the end of that day."
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "max_payments": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "minimum": 1,
                        "maximum": 1000000
                    },
                    "accepted_assets": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/AssetCode"
                                },
                                "minItems": 1,
                                "maxItems": 16,
                                "uniqueItems": true
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "allOf": [
                    {
                        "if": {
                            "required": [
                                "pricing_type"
                            ],
                            "properties": {
                                "pricing_type": {
                                    "const": "fixed"
                                }
                            }
                        },
                        "then": {
                            "required": [
                                "amount"
                            ],
                            "properties": {
                                "amount": {
                                    "description": "Decimal value from 0.01 through 9999999999999999.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                    "anyOf": [
                                        {
                                            "type": "string",
                                            "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                                        },
                                        {
                                            "type": "number",
                                            "minimum": 0.01,
                                            "maximum": 10000000000000000,
                                            "multipleOf": 0.01
                                        }
                                    ],
                                    "x-decimal-places": 2,
                                    "x-decimal-minimum": "0.01",
                                    "x-decimal-maximum": "9999999999999999.99"
                                }
                            }
                        }
                    }
                ],
                "description": "Only present fields are updated. Fixed pricing requires amount when pricing_type is supplied. Limits and suggested amounts must agree.",
                "examples": [
                    {
                        "title": "Consultation session",
                        "require_email": true
                    }
                ]
            },
            "CreateCoupon": {
                "type": "object",
                "properties": {
                    "code": {
                        "type": "string",
                        "maxLength": 32,
                        "pattern": "^[A-Za-z0-9][A-Za-z0-9_-]{2,31}$"
                    },
                    "percent_off": {
                        "anyOf": [
                            {
                                "description": "Decimal value from 0.01 through 99.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                                    },
                                    {
                                        "type": "number",
                                        "minimum": 0.01,
                                        "maximum": 99.99,
                                        "multipleOf": 0.01
                                    }
                                ],
                                "x-decimal-places": 2,
                                "x-decimal-minimum": "0.01",
                                "x-decimal-maximum": "99.99"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "amount_off": {
                        "anyOf": [
                            {
                                "description": "Decimal value from 0.01 through 9999999999999999.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                                    },
                                    {
                                        "type": "number",
                                        "minimum": 0.01,
                                        "maximum": 10000000000000000,
                                        "multipleOf": 0.01
                                    }
                                ],
                                "x-decimal-places": 2,
                                "x-decimal-minimum": "0.01",
                                "x-decimal-maximum": "9999999999999999.99"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "currency": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Currency"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "min_amount": {
                        "anyOf": [
                            {
                                "description": "Decimal value from 0.01 through 9999999999999999.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                                    },
                                    {
                                        "type": "number",
                                        "minimum": 0.01,
                                        "maximum": 10000000000000000,
                                        "multipleOf": 0.01
                                    }
                                ],
                                "x-decimal-places": 2,
                                "x-decimal-minimum": "0.01",
                                "x-decimal-maximum": "9999999999999999.99"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "max_redemptions": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "minimum": 1,
                        "maximum": 1000000
                    },
                    "once_per_customer": {
                        "type": "boolean"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "expires_at": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "date-time",
                                "description": "Future timestamp."
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "payment_links": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                },
                                "maxItems": 100,
                                "uniqueItems": true
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "required": [
                    "code"
                ],
                "oneOf": [
                    {
                        "required": [
                            "percent_off"
                        ],
                        "properties": {
                            "percent_off": {
                                "description": "Decimal value from 0.01 through 99.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                                    },
                                    {
                                        "type": "number",
                                        "minimum": 0.01,
                                        "maximum": 99.99,
                                        "multipleOf": 0.01
                                    }
                                ],
                                "x-decimal-places": 2,
                                "x-decimal-minimum": "0.01",
                                "x-decimal-maximum": "99.99"
                            },
                            "amount_off": {
                                "type": "null"
                            }
                        }
                    },
                    {
                        "required": [
                            "amount_off",
                            "currency"
                        ],
                        "properties": {
                            "amount_off": {
                                "description": "Decimal value from 0.01 through 9999999999999999.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                                    },
                                    {
                                        "type": "number",
                                        "minimum": 0.01,
                                        "maximum": 10000000000000000,
                                        "multipleOf": 0.01
                                    }
                                ],
                                "x-decimal-places": 2,
                                "x-decimal-minimum": "0.01",
                                "x-decimal-maximum": "9999999999999999.99"
                            },
                            "currency": {
                                "$ref": "#/components/schemas/Currency"
                            },
                            "percent_off": {
                                "type": "null"
                            }
                        }
                    }
                ],
                "allOf": [
                    {
                        "if": {
                            "required": [
                                "min_amount"
                            ],
                            "properties": {
                                "min_amount": {
                                    "not": {
                                        "type": "null"
                                    }
                                }
                            }
                        },
                        "then": {
                            "required": [
                                "currency"
                            ],
                            "properties": {
                                "currency": {
                                    "$ref": "#/components/schemas/Currency"
                                }
                            }
                        }
                    }
                ],
                "description": "Choose exactly one discount type. Code is unique per account/mode. Linked payment links must belong to the same account/mode.",
                "examples": [
                    {
                        "code": "WELCOME10",
                        "percent_off": "10.00",
                        "max_redemptions": 100
                    },
                    {
                        "code": "SAVE5",
                        "amount_off": "5.00",
                        "currency": "USD",
                        "min_amount": "25.00"
                    }
                ]
            },
            "UpdateCoupon": {
                "type": "object",
                "properties": {
                    "max_redemptions": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "minimum": 1,
                        "maximum": 1000000
                    },
                    "once_per_customer": {
                        "type": "boolean"
                    },
                    "is_active": {
                        "type": "boolean"
                    },
                    "expires_at": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "date-time",
                                "description": "Future timestamp."
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "payment_links": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                },
                                "maxItems": 100,
                                "uniqueItems": true
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "description": "Only redemption limits, expiry, active state and payment links can change. Nonempty code, percent_off, amount_off, currency or min_amount values are prohibited.",
                "examples": [
                    {
                        "is_active": false
                    }
                ]
            },
            "CreateInvoice": {
                "type": "object",
                "properties": {
                    "customer_name": {
                        "type": "string",
                        "maxLength": 255,
                        "minLength": 1
                    },
                    "customer_email": {
                        "type": "string",
                        "maxLength": 255,
                        "format": "email"
                    },
                    "currency": {
                        "$ref": "#/components/schemas/Currency"
                    },
                    "amount": {
                        "description": "Decimal value from 0.01 through 9999999999999999.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                        "anyOf": [
                            {
                                "type": "string",
                                "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,2})?$"
                            },
                            {
                                "type": "number",
                                "minimum": 0.01,
                                "maximum": 10000000000000000,
                                "multipleOf": 0.01
                            }
                        ],
                        "x-decimal-places": 2,
                        "x-decimal-minimum": "0.01",
                        "x-decimal-maximum": "9999999999999999.99"
                    },
                    "items": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "description": {
                                    "type": "string",
                                    "maxLength": 255,
                                    "minLength": 1
                                },
                                "quantity": {
                                    "description": "Decimal value from 0.001 through 999999, with at most 3 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                    "anyOf": [
                                        {
                                            "type": "string",
                                            "pattern": "^(?=.*[1-9])\\d+(?:\\.\\d{1,3})?$"
                                        },
                                        {
                                            "type": "number",
                                            "minimum": 0.001,
                                            "maximum": 999999,
                                            "multipleOf": 0.001
                                        }
                                    ],
                                    "x-decimal-places": 3,
                                    "x-decimal-minimum": "0.001",
                                    "x-decimal-maximum": "999999"
                                },
                                "unit_amount": {
                                    "description": "Decimal value from 0 through 9999999999999.99, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                                    "anyOf": [
                                        {
                                            "type": "string",
                                            "pattern": "^\\d+(?:\\.\\d{1,2})?$"
                                        },
                                        {
                                            "type": "number",
                                            "minimum": 0,
                                            "maximum": 9999999999999.99,
                                            "multipleOf": 0.01
                                        }
                                    ],
                                    "x-decimal-places": 2,
                                    "x-decimal-minimum": "0",
                                    "x-decimal-maximum": "9999999999999.99"
                                }
                            },
                            "required": [
                                "description",
                                "quantity",
                                "unit_amount"
                            ]
                        },
                        "maxItems": 50
                    },
                    "memo": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 500
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "due_at": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "date",
                                "description": "Today or a future date."
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "send_email": {
                        "type": "boolean",
                        "default": false
                    }
                },
                "required": [
                    "customer_name",
                    "customer_email",
                    "currency"
                ],
                "anyOf": [
                    {
                        "required": [
                            "amount"
                        ]
                    },
                    {
                        "required": [
                            "items"
                        ],
                        "properties": {
                            "items": {
                                "type": "array",
                                "minItems": 1
                            }
                        }
                    }
                ],
                "description": "Give a positive amount or nonempty items; items determine the total when supplied. The computed total must be positive and within the amount limit.",
                "examples": [
                    {
                        "customer_name": "Alex Morgan",
                        "customer_email": "customer@example.com",
                        "currency": "USD",
                        "items": [
                            {
                                "description": "Consultation",
                                "quantity": "1.000",
                                "unit_amount": "150.00"
                            }
                        ]
                    },
                    {
                        "customer_name": "Alex Morgan",
                        "customer_email": "customer@example.com",
                        "currency": "USD",
                        "amount": "150.00"
                    }
                ]
            },
            "CreateApiKey": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 100,
                        "minLength": 1
                    },
                    "permissions": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/Permission"
                                },
                                "minItems": 1,
                                "uniqueItems": true
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "allowed_ips": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {
                                    "type": "string",
                                    "description": "IPv4/IPv6 address or CIDR range."
                                },
                                "maxItems": 20
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "required": [
                    "name"
                ],
                "description": "Created in the current mode. Permissions and IP ranges cannot widen the calling key's access. Null permissions grants ordinary access only: sensitive permissions always require an explicit permission list and an eligible key creator.",
                "examples": [
                    {
                        "name": "Payment service",
                        "permissions": [
                            "charges:read",
                            "charges:write"
                        ]
                    }
                ]
            },
            "UpdateApiKey": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 100,
                        "minLength": 1
                    },
                    "permissions": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/Permission"
                                },
                                "minItems": 1,
                                "uniqueItems": true
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "allowed_ips": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {
                                    "type": "string",
                                    "description": "IPv4/IPv6 address or CIDR range."
                                },
                                "maxItems": 20
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                },
                "description": "Only present fields change. The API cannot expand access beyond the calling key's grants or network restrictions.",
                "examples": [
                    {
                        "name": "Payment service production"
                    }
                ]
            },
            "CreateWebhookEndpoint": {
                "type": "object",
                "properties": {
                    "url": {
                        "type": "string",
                        "maxLength": 2048,
                        "format": "uri",
                        "pattern": "^https://",
                        "description": "Public HTTPS endpoint on port 443, without credentials. DNS/IP restrictions prevent private destinations, IP literals and the platform itself."
                    },
                    "description": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 255
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "events": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/WebhookEvent"
                        },
                        "minItems": 1,
                        "uniqueItems": true
                    },
                    "active": {
                        "type": "boolean"
                    }
                },
                "required": [
                    "url",
                    "events"
                ],
                "examples": [
                    {
                        "url": "https://merchant.example.com/webhooks/velirapay",
                        "events": [
                            "charge.paid",
                            "charge.refunded"
                        ],
                        "active": true
                    }
                ]
            },
            "UpdateWebhookEndpoint": {
                "type": "object",
                "properties": {
                    "url": {
                        "type": "string",
                        "maxLength": 2048,
                        "format": "uri",
                        "pattern": "^https://",
                        "description": "Public HTTPS endpoint on port 443, without credentials. DNS/IP restrictions prevent private destinations, IP literals and the platform itself."
                    },
                    "description": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 255
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "events": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/WebhookEvent"
                        },
                        "minItems": 1,
                        "uniqueItems": true
                    },
                    "active": {
                        "type": "boolean"
                    }
                },
                "examples": [
                    {
                        "active": false
                    }
                ]
            },
            "UpdatePayoutAddress": {
                "type": "object",
                "properties": {
                    "address": {
                        "type": "string",
                        "maxLength": 128,
                        "minLength": 1
                    }
                },
                "required": [
                    "address"
                ],
                "description": "Address must match the path network and key mode. Requires API payout-address changes to be enabled in the dashboard; this API cannot enable it."
            },
            "UpdateMember": {
                "type": "object",
                "properties": {
                    "role": {
                        "type": "string",
                        "enum": [
                            "admin",
                            "member"
                        ]
                    }
                },
                "required": [
                    "role"
                ],
                "examples": [
                    {
                        "role": "member"
                    }
                ]
            },
            "CreateInvitation": {
                "type": "object",
                "properties": {
                    "email": {
                        "type": "string",
                        "maxLength": 255,
                        "format": "email"
                    },
                    "role": {
                        "type": "string",
                        "enum": [
                            "admin",
                            "member"
                        ]
                    }
                },
                "required": [
                    "email",
                    "role"
                ],
                "examples": [
                    {
                        "email": "colleague@example.com",
                        "role": "admin"
                    }
                ]
            },
            "CreateProPayment": {
                "type": "object",
                "properties": {
                    "asset": {
                        "$ref": "#/components/schemas/AssetCode"
                    }
                },
                "required": [
                    "asset"
                ],
                "description": "Live mode only; asset must currently be accepted by the platform billing account for the Pro price.",
                "examples": [
                    {
                        "asset": "BTC"
                    }
                ]
            },
            "UpdateAccount": {
                "type": "object",
                "properties": {
                    "name": {
                        "type": "string",
                        "maxLength": 255,
                        "minLength": 1
                    },
                    "display_name": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 60
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "website_url": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 255,
                                "format": "uri",
                                "pattern": "^https://"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "support_email": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 255,
                                "format": "email"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "support_phone": {
                        "anyOf": [
                            {
                                "type": "string",
                                "maxLength": 32
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "terms_url": {
                        "$ref": "#/components/schemas/PublicURL"
                    },
                    "refund_policy_url": {
                        "$ref": "#/components/schemas/PublicURL"
                    },
                    "brand_color": {
                        "anyOf": [
                            {
                                "type": "string",
                                "pattern": "^#[0-9a-fA-F]{6}$"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "checkout": {
                        "type": "object",
                        "properties": {
                            "appearance": {
                                "$ref": "#/components/schemas/CheckoutAppearance"
                            },
                            "coin_order": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/AssetCode"
                                },
                                "uniqueItems": true
                            },
                            "default_coin": {
                                "anyOf": [
                                    {
                                        "$ref": "#/components/schemas/AssetCode"
                                    },
                                    {
                                        "type": "null"
                                    }
                                ],
                                "description": "The coin the checkout starts on. Null starts it on Litecoin, or else on the first coin listed."
                            },
                            "success_url": {
                                "$ref": "#/components/schemas/PublicURL"
                            },
                            "cancel_url": {
                                "$ref": "#/components/schemas/PublicURL"
                            },
                            "success_message": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "maxLength": 1000
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "hide_powered_by": {
                                "type": "boolean",
                                "description": "True requires Pro."
                            }
                        }
                    },
                    "invoices": {
                        "type": "object",
                        "properties": {
                            "number_prefix": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "maxLength": 12,
                                        "pattern": "^[A-Za-z0-9]+(-[A-Za-z0-9]+)*$"
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "footer": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "maxLength": 500
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "show_business_details": {
                                "type": "boolean"
                            }
                        }
                    },
                    "business": {
                        "type": "object",
                        "properties": {
                            "type": {
                                "anyOf": [
                                    {
                                        "$ref": "#/components/schemas/BusinessType"
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "legal_name": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "registration_number": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "maxLength": 64
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "tax_id": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "maxLength": 64
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "address": {
                                "type": "object",
                                "properties": {
                                    "line1": {
                                        "anyOf": [
                                            {
                                                "type": "string",
                                                "maxLength": 255
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    },
                                    "line2": {
                                        "anyOf": [
                                            {
                                                "type": "string",
                                                "maxLength": 255
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    },
                                    "city": {
                                        "anyOf": [
                                            {
                                                "type": "string",
                                                "maxLength": 120
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    },
                                    "postal_code": {
                                        "anyOf": [
                                            {
                                                "type": "string",
                                                "maxLength": 20
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    },
                                    "state": {
                                        "anyOf": [
                                            {
                                                "type": "string",
                                                "maxLength": 120
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    },
                                    "country": {
                                        "anyOf": [
                                            {
                                                "type": "string",
                                                "pattern": "^[A-Z]{2}$",
                                                "description": "Supported ISO 3166-1 alpha-2 country code."
                                            },
                                            {
                                                "type": "null"
                                            }
                                        ]
                                    }
                                }
                            },
                            "industry": {
                                "anyOf": [
                                    {
                                        "$ref": "#/components/schemas/Industry"
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "product_description": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "maxLength": 1000
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "monthly_volume": {
                                "anyOf": [
                                    {
                                        "$ref": "#/components/schemas/MonthlyVolume"
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "phone": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "maxLength": 32
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            }
                        }
                    }
                },
                "description": "Only supplied fields change. Profile names and addresses cannot impersonate the platform. URLs must be public HTTPS websites; phone numbers must be valid. Coin order contains coins available for payout in this mode.",
                "examples": [
                    {
                        "display_name": "Acme",
                        "checkout": {
                            "appearance": "dark"
                        }
                    }
                ]
            },
            "UpdatePaymentSettings": {
                "type": "object",
                "properties": {
                    "default_currency": {
                        "$ref": "#/components/schemas/Currency"
                    },
                    "underpayment_tolerance": {
                        "description": "Decimal value from 0 through 10, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                        "anyOf": [
                            {
                                "type": "string",
                                "pattern": "^\\d+(?:\\.\\d{1,2})?$"
                            },
                            {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 10,
                                "multipleOf": 0.01
                            }
                        ],
                        "x-decimal-places": 2,
                        "x-decimal-minimum": "0",
                        "x-decimal-maximum": "10"
                    },
                    "overpayment_threshold": {
                        "description": "Decimal value from 0 through 25, with at most 2 fractional digits. Send a decimal string to preserve precision. Numeric range and precision are also checked by the API.",
                        "anyOf": [
                            {
                                "type": "string",
                                "pattern": "^\\d+(?:\\.\\d{1,2})?$"
                            },
                            {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 25,
                                "multipleOf": 0.01
                            }
                        ],
                        "x-decimal-places": 2,
                        "x-decimal-minimum": "0",
                        "x-decimal-maximum": "25"
                    },
                    "checkout_locale": {
                        "anyOf": [
                            {
                                "type": "string",
                                "enum": [
                                    "en",
                                    "fr",
                                    "de",
                                    "es",
                                    "tr",
                                    "pt",
                                    "ru",
                                    "ar"
                                ]
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "invoice_reminders": {
                        "type": "boolean"
                    }
                },
                "description": "Only supplied fields change. API payout-address changes must be enabled through the dashboard.",
                "examples": [
                    {
                        "default_currency": "EUR",
                        "underpayment_tolerance": "1.00",
                        "checkout_locale": "en"
                    }
                ]
            },
            "Account": {
                "type": "object",
                "required": [
                    "id",
                    "object",
                    "type",
                    "name",
                    "display_name",
                    "logo_url",
                    "logo_dark_url",
                    "website_url",
                    "support_email",
                    "support_phone",
                    "brand_color",
                    "terms_url",
                    "refund_policy_url",
                    "business",
                    "checkout",
                    "invoices",
                    "default_currency",
                    "underpayment_tolerance",
                    "overpayment_threshold",
                    "checkout_locale",
                    "invoice_reminders",
                    "api_payout_address_changes",
                    "plan",
                    "created_at"
                ],
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "account"
                    },
                    "type": {
                        "type": "string",
                        "enum": [
                            "personal",
                            "organization"
                        ]
                    },
                    "name": {
                        "type": "string"
                    },
                    "display_name": {
                        "type": "string"
                    },
                    "logo_url": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "logo_dark_url": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "website_url": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "support_email": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "support_phone": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "brand_color": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "terms_url": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "refund_policy_url": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "business": {
                        "type": "object",
                        "required": [
                            "type",
                            "legal_name",
                            "registration_number",
                            "tax_id",
                            "address",
                            "industry",
                            "product_description",
                            "monthly_volume",
                            "phone"
                        ],
                        "properties": {
                            "type": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "enum": [
                                            "individual",
                                            "company",
                                            "non_profit"
                                        ]
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "legal_name": {
                                "$ref": "#/components/schemas/NullableString"
                            },
                            "registration_number": {
                                "$ref": "#/components/schemas/NullableString"
                            },
                            "tax_id": {
                                "$ref": "#/components/schemas/NullableString"
                            },
                            "address": {
                                "type": "object",
                                "required": [
                                    "line1",
                                    "line2",
                                    "city",
                                    "postal_code",
                                    "state",
                                    "country"
                                ],
                                "properties": {
                                    "line1": {
                                        "$ref": "#/components/schemas/NullableString"
                                    },
                                    "line2": {
                                        "$ref": "#/components/schemas/NullableString"
                                    },
                                    "city": {
                                        "$ref": "#/components/schemas/NullableString"
                                    },
                                    "postal_code": {
                                        "$ref": "#/components/schemas/NullableString"
                                    },
                                    "state": {
                                        "$ref": "#/components/schemas/NullableString"
                                    },
                                    "country": {
                                        "$ref": "#/components/schemas/NullableString"
                                    }
                                }
                            },
                            "industry": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "enum": [
                                            "digital_products",
                                            "software",
                                            "hosting",
                                            "gaming",
                                            "retail",
                                            "professional_services",
                                            "education",
                                            "media",
                                            "marketplace",
                                            "travel",
                                            "donations",
                                            "other"
                                        ]
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "product_description": {
                                "$ref": "#/components/schemas/NullableString"
                            },
                            "monthly_volume": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "enum": [
                                            "under_1k",
                                            "1k_10k",
                                            "10k_50k",
                                            "50k_250k",
                                            "over_250k"
                                        ]
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "phone": {
                                "$ref": "#/components/schemas/NullableString"
                            }
                        }
                    },
                    "checkout": {
                        "type": "object",
                        "required": [
                            "appearance",
                            "coin_order",
                            "default_coin",
                            "success_url",
                            "cancel_url",
                            "success_message",
                            "hide_powered_by"
                        ],
                        "properties": {
                            "appearance": {
                                "type": "string",
                                "enum": [
                                    "auto",
                                    "light",
                                    "dark"
                                ]
                            },
                            "coin_order": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/AssetCode"
                                }
                            },
                            "default_coin": {
                                "anyOf": [
                                    {
                                        "$ref": "#/components/schemas/AssetCode"
                                    },
                                    {
                                        "type": "null"
                                    }
                                ],
                                "description": "The coin the checkout starts on. When it is null or not on offer, the checkout starts on Litecoin, or else on the first coin listed."
                            },
                            "success_url": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "format": "uri"
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "cancel_url": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "format": "uri"
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "success_message": {
                                "$ref": "#/components/schemas/NullableString"
                            },
                            "hide_powered_by": {
                                "type": "boolean"
                            }
                        }
                    },
                    "invoices": {
                        "type": "object",
                        "required": [
                            "number_prefix",
                            "footer",
                            "show_business_details"
                        ],
                        "properties": {
                            "number_prefix": {
                                "$ref": "#/components/schemas/NullableString"
                            },
                            "footer": {
                                "$ref": "#/components/schemas/NullableString"
                            },
                            "show_business_details": {
                                "type": "boolean"
                            }
                        }
                    },
                    "default_currency": {
                        "$ref": "#/components/schemas/Currency"
                    },
                    "underpayment_tolerance": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "overpayment_threshold": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "checkout_locale": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "invoice_reminders": {
                        "type": "boolean"
                    },
                    "api_payout_address_changes": {
                        "type": "boolean"
                    },
                    "plan": {
                        "type": "object",
                        "required": [
                            "name",
                            "fee_percent",
                            "pro_ends_at"
                        ],
                        "properties": {
                            "name": {
                                "type": "string",
                                "enum": [
                                    "free",
                                    "pro"
                                ]
                            },
                            "fee_percent": {
                                "$ref": "#/components/schemas/Decimal"
                            },
                            "pro_ends_at": {
                                "$ref": "#/components/schemas/NullableDateTime"
                            }
                        }
                    },
                    "created_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    }
                }
            },
            "Transaction": {
                "type": "object",
                "required": [
                    "txid",
                    "amount",
                    "confirmations",
                    "required_confirmations",
                    "credited",
                    "explorer_url",
                    "seen_at"
                ],
                "properties": {
                    "txid": {
                        "type": "string"
                    },
                    "amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "confirmations": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "required_confirmations": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "credited": {
                        "type": "boolean"
                    },
                    "explorer_url": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "seen_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    }
                }
            },
            "Refund": {
                "type": "object",
                "required": [
                    "amount",
                    "txid",
                    "reason",
                    "explorer_url",
                    "created_at"
                ],
                "properties": {
                    "amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "txid": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "reason": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "explorer_url": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "created_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    }
                }
            },
            "Charge": {
                "type": "object",
                "required": [
                    "id",
                    "object",
                    "status",
                    "payment_link",
                    "invoice",
                    "description",
                    "fiat_amount",
                    "fiat_currency",
                    "coupon",
                    "discount_amount",
                    "asset",
                    "asset_amount",
                    "received_amount",
                    "remaining_amount",
                    "overpaid",
                    "refunded_amount",
                    "refunds",
                    "exchange_rate",
                    "deposit_address",
                    "transactions",
                    "customer_email",
                    "customer_name",
                    "customer",
                    "custom_fields",
                    "metadata",
                    "success_url",
                    "cancel_url",
                    "success_message",
                    "checkout_url",
                    "receipt_url",
                    "expires_at",
                    "paid_at",
                    "created_at"
                ],
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "charge"
                    },
                    "status": {
                        "$ref": "#/components/schemas/ChargeStatus"
                    },
                    "payment_link": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "invoice": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "description": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "fiat_amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "fiat_currency": {
                        "$ref": "#/components/schemas/Currency"
                    },
                    "coupon": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "discount_amount": {
                        "$ref": "#/components/schemas/NullableDecimal"
                    },
                    "asset": {
                        "$ref": "#/components/schemas/AssetCode"
                    },
                    "asset_amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "received_amount": {
                        "$ref": "#/components/schemas/NullableDecimal"
                    },
                    "remaining_amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "overpaid": {
                        "type": "boolean"
                    },
                    "refunded_amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "refunds": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Refund"
                        }
                    },
                    "exchange_rate": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "deposit_address": {
                        "type": "string"
                    },
                    "transactions": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Transaction"
                        }
                    },
                    "timeline": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "required": [
                                "event",
                                "time"
                            ],
                            "properties": {
                                "event": {
                                    "$ref": "#/components/schemas/WebhookEvent"
                                },
                                "time": {
                                    "$ref": "#/components/schemas/NullableDateTime"
                                }
                            }
                        },
                        "description": "Included when the charge timeline has been loaded."
                    },
                    "customer_email": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "customer_name": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "customer": {
                        "$ref": "#/components/schemas/Customer"
                    },
                    "custom_fields": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/CustomFieldAnswer"
                        }
                    },
                    "metadata": {
                        "$ref": "#/components/schemas/Metadata"
                    },
                    "success_url": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "cancel_url": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "success_message": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "checkout_url": {
                        "type": "string",
                        "format": "uri"
                    },
                    "receipt_url": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "expires_at": {
                        "$ref": "#/components/schemas/DateTime"
                    },
                    "paid_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "created_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    }
                }
            },
            "InvoiceItem": {
                "type": "object",
                "required": [
                    "description",
                    "quantity",
                    "unit_amount",
                    "total"
                ],
                "properties": {
                    "description": {
                        "type": "string"
                    },
                    "quantity": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "unit_amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "total": {
                        "$ref": "#/components/schemas/Decimal"
                    }
                }
            },
            "Invoice": {
                "type": "object",
                "required": [
                    "id",
                    "object",
                    "number",
                    "status",
                    "overdue",
                    "customer_name",
                    "customer_email",
                    "memo",
                    "amount",
                    "currency",
                    "items",
                    "due_at",
                    "hosted_url",
                    "document_url",
                    "charges",
                    "sent_at",
                    "viewed_at",
                    "paid_at",
                    "voided_at",
                    "created_at"
                ],
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "invoice"
                    },
                    "number": {
                        "type": "string"
                    },
                    "status": {
                        "$ref": "#/components/schemas/InvoiceStatus"
                    },
                    "overdue": {
                        "type": "boolean"
                    },
                    "customer_name": {
                        "type": "string"
                    },
                    "customer_email": {
                        "type": "string"
                    },
                    "memo": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "currency": {
                        "$ref": "#/components/schemas/Currency"
                    },
                    "items": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/InvoiceItem"
                        }
                    },
                    "due_at": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "date"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "hosted_url": {
                        "type": "string",
                        "format": "uri"
                    },
                    "document_url": {
                        "type": "string",
                        "format": "uri"
                    },
                    "charges": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "required": [
                                "id",
                                "status",
                                "asset"
                            ],
                            "properties": {
                                "id": {
                                    "type": "string"
                                },
                                "status": {
                                    "$ref": "#/components/schemas/ChargeStatus"
                                },
                                "asset": {
                                    "$ref": "#/components/schemas/AssetCode"
                                }
                            }
                        }
                    },
                    "sent_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "viewed_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "paid_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "voided_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "created_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    }
                }
            },
            "PaymentLink": {
                "type": "object",
                "required": [
                    "id",
                    "object",
                    "title",
                    "description",
                    "pricing_type",
                    "amount",
                    "suggested_amounts",
                    "min_amount",
                    "max_amount",
                    "currency",
                    "accepted_assets",
                    "status",
                    "success_url",
                    "cancel_url",
                    "collect_name",
                    "require_email",
                    "custom_fields",
                    "success_message",
                    "expires_at",
                    "max_payments",
                    "accepting_payments",
                    "views_count",
                    "checkout_url",
                    "created_at",
                    "updated_at"
                ],
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "payment_link"
                    },
                    "title": {
                        "type": "string"
                    },
                    "description": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "pricing_type": {
                        "type": "string",
                        "enum": [
                            "fixed",
                            "open"
                        ]
                    },
                    "amount": {
                        "$ref": "#/components/schemas/NullableDecimal"
                    },
                    "suggested_amounts": {
                        "type": "array",
                        "items": {
                            "anyOf": [
                                {
                                    "$ref": "#/components/schemas/Decimal"
                                },
                                {
                                    "type": "number",
                                    "minimum": 0
                                }
                            ]
                        }
                    },
                    "min_amount": {
                        "$ref": "#/components/schemas/NullableDecimal"
                    },
                    "max_amount": {
                        "$ref": "#/components/schemas/NullableDecimal"
                    },
                    "currency": {
                        "$ref": "#/components/schemas/Currency"
                    },
                    "accepted_assets": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/AssetCode"
                                }
                            },
                            {
                                "type": "null"
                            }
                        ],
                        "description": "Null accepts every asset the account can receive, including assets added later."
                    },
                    "status": {
                        "$ref": "#/components/schemas/PaymentLinkStatus"
                    },
                    "success_url": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "cancel_url": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "collect_name": {
                        "type": "boolean"
                    },
                    "require_email": {
                        "type": "boolean"
                    },
                    "custom_fields": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/CheckoutQuestion"
                        }
                    },
                    "success_message": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "expires_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "max_payments": {
                        "anyOf": [
                            {
                                "type": "integer",
                                "minimum": 0
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "accepting_payments": {
                        "type": "boolean"
                    },
                    "views_count": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "checkout_url": {
                        "type": "string",
                        "format": "uri"
                    },
                    "created_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "updated_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    }
                }
            },
            "Coupon": {
                "type": "object",
                "required": [
                    "id",
                    "object",
                    "code",
                    "percent_off",
                    "amount_off",
                    "currency",
                    "min_amount",
                    "max_redemptions",
                    "times_redeemed",
                    "once_per_customer",
                    "payment_links",
                    "active",
                    "expires_at",
                    "created_at",
                    "updated_at"
                ],
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "coupon"
                    },
                    "code": {
                        "type": "string"
                    },
                    "percent_off": {
                        "$ref": "#/components/schemas/NullableDecimal"
                    },
                    "amount_off": {
                        "$ref": "#/components/schemas/NullableDecimal"
                    },
                    "currency": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Currency"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "min_amount": {
                        "$ref": "#/components/schemas/NullableDecimal"
                    },
                    "max_redemptions": {
                        "anyOf": [
                            {
                                "type": "integer",
                                "minimum": 0
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "times_redeemed": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "once_per_customer": {
                        "type": "boolean"
                    },
                    "payment_links": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "active": {
                        "type": "boolean"
                    },
                    "expires_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "created_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "updated_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    }
                }
            },
            "Payout": {
                "type": "object",
                "required": [
                    "id",
                    "object",
                    "charge",
                    "status",
                    "asset",
                    "gross_amount",
                    "fee_percent",
                    "fee_amount",
                    "fee_fiat_amount",
                    "fiat_currency",
                    "exchange_rate",
                    "net_amount",
                    "network_fee",
                    "sent_amount",
                    "payout_address",
                    "payout_txid",
                    "explorer_url",
                    "attempts",
                    "last_error",
                    "next_attempt_at",
                    "sent_at",
                    "confirmed_at",
                    "created_at"
                ],
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "payout"
                    },
                    "charge": {
                        "type": "string"
                    },
                    "status": {
                        "$ref": "#/components/schemas/PayoutStatus"
                    },
                    "asset": {
                        "$ref": "#/components/schemas/AssetCode"
                    },
                    "gross_amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "fee_percent": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "fee_amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "fee_fiat_amount": {
                        "$ref": "#/components/schemas/NullableDecimal"
                    },
                    "fiat_currency": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Currency"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "exchange_rate": {
                        "$ref": "#/components/schemas/NullableDecimal"
                    },
                    "net_amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "network_fee": {
                        "$ref": "#/components/schemas/NullableDecimal"
                    },
                    "sent_amount": {
                        "$ref": "#/components/schemas/NullableDecimal"
                    },
                    "payout_address": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "payout_txid": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "explorer_url": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uri"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "attempts": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "last_error": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "next_attempt_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "sent_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "confirmed_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "created_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    }
                }
            },
            "PayoutSummary": {
                "type": "object",
                "required": [
                    "object",
                    "asset",
                    "payouts",
                    "gross_amount",
                    "fee_amount",
                    "owed_amount",
                    "in_flight_amount",
                    "paid_out_amount",
                    "network_fee_amount",
                    "waiting_for_address"
                ],
                "properties": {
                    "object": {
                        "type": "string",
                        "const": "payout_summary"
                    },
                    "asset": {
                        "$ref": "#/components/schemas/AssetCode"
                    },
                    "payouts": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "gross_amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "fee_amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "owed_amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "in_flight_amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "paid_out_amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "network_fee_amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "waiting_for_address": {
                        "type": "integer",
                        "minimum": 0
                    }
                }
            },
            "Asset": {
                "type": "object",
                "required": [
                    "id",
                    "object",
                    "name",
                    "ticker",
                    "network",
                    "contract_address",
                    "decimals",
                    "required_confirmations",
                    "confirmation_wait",
                    "accepted",
                    "currency",
                    "exchange_rate",
                    "minimum_amount",
                    "minimum_price"
                ],
                "properties": {
                    "id": {
                        "$ref": "#/components/schemas/AssetCode"
                    },
                    "object": {
                        "type": "string",
                        "const": "asset"
                    },
                    "name": {
                        "type": "string"
                    },
                    "ticker": {
                        "type": "string"
                    },
                    "network": {
                        "type": "string"
                    },
                    "contract_address": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "decimals": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "required_confirmations": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "confirmation_wait": {
                        "type": "string"
                    },
                    "accepted": {
                        "anyOf": [
                            {
                                "type": "boolean"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "currency": {
                        "$ref": "#/components/schemas/Currency"
                    },
                    "exchange_rate": {
                        "$ref": "#/components/schemas/NullableDecimal"
                    },
                    "minimum_amount": {
                        "$ref": "#/components/schemas/NullableDecimal"
                    },
                    "minimum_price": {
                        "$ref": "#/components/schemas/NullableDecimal"
                    }
                }
            },
            "Event": {
                "type": "object",
                "required": [
                    "id",
                    "object",
                    "type",
                    "details",
                    "created_at",
                    "charge",
                    "invoice"
                ],
                "properties": {
                    "id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "object": {
                        "type": "string",
                        "const": "event"
                    },
                    "type": {
                        "$ref": "#/components/schemas/WebhookEvent"
                    },
                    "details": {
                        "type": "object",
                        "additionalProperties": true
                    },
                    "created_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "charge": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Charge"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "invoice": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Invoice"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    }
                }
            },
            "ApiKey": {
                "type": "object",
                "required": [
                    "id",
                    "object",
                    "name",
                    "prefix",
                    "mode",
                    "permissions",
                    "allowed_ips",
                    "created_by",
                    "last_used_at",
                    "created_at"
                ],
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "api_key"
                    },
                    "name": {
                        "type": "string"
                    },
                    "prefix": {
                        "type": "string"
                    },
                    "key": {
                        "type": "string",
                        "description": "Returned only when the API key is created."
                    },
                    "mode": {
                        "$ref": "#/components/schemas/Mode"
                    },
                    "permissions": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/Permission"
                                }
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "allowed_ips": {
                        "anyOf": [
                            {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "created_by": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "last_used_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "created_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    }
                }
            },
            "Member": {
                "type": "object",
                "required": [
                    "id",
                    "object",
                    "name",
                    "email",
                    "role",
                    "joined_at"
                ],
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "member"
                    },
                    "name": {
                        "type": "string"
                    },
                    "email": {
                        "type": "string"
                    },
                    "role": {
                        "anyOf": [
                            {
                                "type": "string",
                                "enum": [
                                    "owner",
                                    "admin",
                                    "member"
                                ]
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "joined_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    }
                }
            },
            "Invitation": {
                "type": "object",
                "required": [
                    "id",
                    "object",
                    "email",
                    "role",
                    "invited_by",
                    "expired",
                    "expires_at",
                    "created_at"
                ],
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "invitation"
                    },
                    "email": {
                        "type": "string"
                    },
                    "role": {
                        "type": "string",
                        "enum": [
                            "admin",
                            "member"
                        ]
                    },
                    "invited_by": {
                        "type": "string"
                    },
                    "expired": {
                        "type": "boolean"
                    },
                    "expires_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "created_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    }
                }
            },
            "WebhookEndpoint": {
                "type": "object",
                "required": [
                    "id",
                    "object",
                    "url",
                    "description",
                    "events",
                    "active",
                    "verified",
                    "deliveries_count",
                    "failed_deliveries_count",
                    "verified_at",
                    "created_at"
                ],
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "webhook_endpoint"
                    },
                    "url": {
                        "type": "string",
                        "format": "uri"
                    },
                    "description": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "events": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/WebhookEvent"
                        }
                    },
                    "active": {
                        "type": "boolean"
                    },
                    "verified": {
                        "type": "boolean"
                    },
                    "secret": {
                        "type": "string",
                        "description": "Returned only when the endpoint is created or its secret is rotated."
                    },
                    "deliveries_count": {
                        "anyOf": [
                            {
                                "type": "integer",
                                "minimum": 0
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "failed_deliveries_count": {
                        "anyOf": [
                            {
                                "type": "integer",
                                "minimum": 0
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "verified_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "created_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    }
                }
            },
            "WebhookDelivery": {
                "type": "object",
                "required": [
                    "id",
                    "object",
                    "event",
                    "event_id",
                    "test",
                    "status",
                    "attempts",
                    "response_status",
                    "error",
                    "charge",
                    "invoice",
                    "created_at",
                    "last_attempted_at",
                    "delivered_at"
                ],
                "properties": {
                    "id": {
                        "type": "string",
                        "format": "uuid"
                    },
                    "object": {
                        "type": "string",
                        "const": "webhook_delivery"
                    },
                    "event": {
                        "$ref": "#/components/schemas/WebhookEvent"
                    },
                    "event_id": {
                        "anyOf": [
                            {
                                "type": "string",
                                "format": "uuid"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "test": {
                        "type": "boolean"
                    },
                    "status": {
                        "type": "string",
                        "enum": [
                            "pending",
                            "succeeded",
                            "failed"
                        ]
                    },
                    "attempts": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "response_status": {
                        "anyOf": [
                            {
                                "type": "integer",
                                "minimum": 100,
                                "maximum": 599
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "error": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "charge": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "invoice": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "created_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "last_attempted_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "delivered_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    }
                }
            },
            "Activity": {
                "type": "object",
                "required": [
                    "id",
                    "object",
                    "action",
                    "description",
                    "actor",
                    "subject",
                    "properties",
                    "ip_address",
                    "mode",
                    "created_at"
                ],
                "properties": {
                    "id": {
                        "type": "string"
                    },
                    "object": {
                        "type": "string",
                        "const": "activity"
                    },
                    "action": {
                        "type": "string",
                        "enum": [
                            "wallets.changed",
                            "wallets.api_access_changed",
                            "payment_settings.updated",
                            "profile.updated",
                            "business_details.updated",
                            "api_key.created",
                            "api_key.updated",
                            "api_key.revoked",
                            "webhook.created",
                            "webhook.updated",
                            "webhook.deleted",
                            "webhook.secret_rotated",
                            "member.invited",
                            "member.joined",
                            "member.role_changed",
                            "member.removed",
                            "payment_link.created",
                            "payment_link.updated",
                            "payment_link.archived",
                            "payment_link.restored",
                            "member.invitation_canceled",
                            "charge.payment_requested",
                            "webhook.disabled",
                            "charge.canceled",
                            "charge.accepted",
                            "refund.recorded",
                            "invoice.voided",
                            "plan.payment_started",
                            "plan.subscription_canceled",
                            "plan.subscription_resumed",
                            "auth.signed_in",
                            "auth.sign_in_failed",
                            "auth.password_changed",
                            "auth.two_factor_enabled",
                            "auth.two_factor_disabled",
                            "auth.signed_out_elsewhere",
                            "auth.two_factor_failed",
                            "auth.email_changed",
                            "auth.passkey_added",
                            "auth.passkey_removed",
                            "coupon.created",
                            "coupon.updated",
                            "coupon.deleted",
                            "auth.app_connected",
                            "auth.app_disconnected",
                            "chat.connected",
                            "chat.updated",
                            "chat.removed",
                            "chat.disabled",
                            "sanctions.matched",
                            "sanctions.accepted",
                            "sanctions.return_requested",
                            "auth.social_connected",
                            "auth.social_disconnected"
                        ]
                    },
                    "description": {
                        "type": "string"
                    },
                    "actor": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "subject": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "properties": {
                        "type": [
                            "object",
                            "array"
                        ],
                        "additionalProperties": true,
                        "items": []
                    },
                    "ip_address": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "mode": {
                        "anyOf": [
                            {
                                "$ref": "#/components/schemas/Mode"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "created_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    }
                }
            },
            "Overview": {
                "type": "object",
                "required": [
                    "object",
                    "period",
                    "currency",
                    "volume",
                    "volume_change_percent",
                    "sent_volume",
                    "paid_charges",
                    "conversion_rate_percent",
                    "pending_charges",
                    "active_payment_links",
                    "open_invoices",
                    "overdue_invoices",
                    "funnel",
                    "attention",
                    "assets",
                    "top_payment_links",
                    "setup",
                    "daily"
                ],
                "properties": {
                    "object": {
                        "type": "string",
                        "const": "overview"
                    },
                    "period": {
                        "type": "object",
                        "required": [
                            "from",
                            "to"
                        ],
                        "properties": {
                            "from": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            },
                            "to": {
                                "anyOf": [
                                    {
                                        "type": "string",
                                        "format": "date"
                                    },
                                    {
                                        "type": "null"
                                    }
                                ]
                            }
                        }
                    },
                    "currency": {
                        "$ref": "#/components/schemas/Currency"
                    },
                    "volume": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "volume_change_percent": {
                        "anyOf": [
                            {
                                "type": "number"
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "sent_volume": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "paid_charges": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "conversion_rate_percent": {
                        "anyOf": [
                            {
                                "type": "number",
                                "minimum": 0,
                                "maximum": 100
                            },
                            {
                                "type": "null"
                            }
                        ]
                    },
                    "pending_charges": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "active_payment_links": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "open_invoices": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "overdue_invoices": {
                        "type": "integer",
                        "minimum": 0
                    },
                    "funnel": {
                        "type": "object",
                        "required": [
                            "started",
                            "paid",
                            "waiting",
                            "abandoned",
                            "incomplete",
                            "assets"
                        ],
                        "properties": {
                            "started": {
                                "type": "integer",
                                "minimum": 0
                            },
                            "paid": {
                                "type": "integer",
                                "minimum": 0
                            },
                            "waiting": {
                                "type": "integer",
                                "minimum": 0
                            },
                            "abandoned": {
                                "type": "integer",
                                "minimum": 0
                            },
                            "incomplete": {
                                "type": "integer",
                                "minimum": 0
                            },
                            "assets": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "required": [
                                        "asset",
                                        "started",
                                        "paid",
                                        "abandoned"
                                    ],
                                    "properties": {
                                        "asset": {
                                            "$ref": "#/components/schemas/AssetCode"
                                        },
                                        "started": {
                                            "type": "integer",
                                            "minimum": 0
                                        },
                                        "paid": {
                                            "type": "integer",
                                            "minimum": 0
                                        },
                                        "abandoned": {
                                            "type": "integer",
                                            "minimum": 0
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "attention": {
                        "type": "object",
                        "required": [
                            "underpaid_charges",
                            "late_payments",
                            "payouts_waiting_for_address",
                            "failing_webhook_endpoints"
                        ],
                        "properties": {
                            "underpaid_charges": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "required": [
                                        "id",
                                        "asset",
                                        "amount",
                                        "received_amount"
                                    ],
                                    "properties": {
                                        "id": {
                                            "type": "string"
                                        },
                                        "asset": {
                                            "$ref": "#/components/schemas/AssetCode"
                                        },
                                        "amount": {
                                            "$ref": "#/components/schemas/Decimal"
                                        },
                                        "received_amount": {
                                            "$ref": "#/components/schemas/Decimal"
                                        }
                                    }
                                }
                            },
                            "late_payments": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "required": [
                                        "id",
                                        "asset",
                                        "amount",
                                        "received_amount"
                                    ],
                                    "properties": {
                                        "id": {
                                            "type": "string"
                                        },
                                        "asset": {
                                            "$ref": "#/components/schemas/AssetCode"
                                        },
                                        "amount": {
                                            "$ref": "#/components/schemas/Decimal"
                                        },
                                        "received_amount": {
                                            "$ref": "#/components/schemas/Decimal"
                                        }
                                    }
                                }
                            },
                            "payouts_waiting_for_address": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "required": [
                                        "asset",
                                        "count"
                                    ],
                                    "properties": {
                                        "asset": {
                                            "$ref": "#/components/schemas/AssetCode"
                                        },
                                        "count": {
                                            "type": "integer",
                                            "minimum": 0
                                        }
                                    }
                                }
                            },
                            "failing_webhook_endpoints": {
                                "type": "integer",
                                "minimum": 0
                            }
                        }
                    },
                    "assets": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "required": [
                                "asset",
                                "paid_charges",
                                "share_percent"
                            ],
                            "properties": {
                                "asset": {
                                    "$ref": "#/components/schemas/AssetCode"
                                },
                                "paid_charges": {
                                    "type": "integer",
                                    "minimum": 0
                                },
                                "share_percent": {
                                    "type": "number",
                                    "minimum": 0,
                                    "maximum": 100
                                }
                            }
                        }
                    },
                    "top_payment_links": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "required": [
                                "id",
                                "title",
                                "paid_charges"
                            ],
                            "properties": {
                                "id": {
                                    "$ref": "#/components/schemas/NullableString"
                                },
                                "title": {
                                    "$ref": "#/components/schemas/NullableString"
                                },
                                "paid_charges": {
                                    "type": "integer",
                                    "minimum": 0
                                }
                            }
                        }
                    },
                    "setup": {
                        "type": "object",
                        "required": [
                            "payout_address",
                            "payment_link",
                            "paid_charge",
                            "webhook_endpoint",
                            "public_profile"
                        ],
                        "properties": {
                            "payout_address": {
                                "type": "boolean"
                            },
                            "payment_link": {
                                "type": "boolean"
                            },
                            "paid_charge": {
                                "type": "boolean"
                            },
                            "webhook_endpoint": {
                                "type": "boolean"
                            },
                            "public_profile": {
                                "type": "boolean"
                            }
                        }
                    },
                    "daily": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "required": [
                                "date",
                                "volume",
                                "sent_volume",
                                "paid_charges"
                            ],
                            "properties": {
                                "date": {
                                    "type": "string",
                                    "format": "date"
                                },
                                "volume": {
                                    "$ref": "#/components/schemas/Decimal"
                                },
                                "sent_volume": {
                                    "$ref": "#/components/schemas/Decimal"
                                },
                                "paid_charges": {
                                    "type": "integer",
                                    "minimum": 0
                                }
                            }
                        }
                    }
                }
            },
            "ProPayment": {
                "type": "object",
                "required": [
                    "object",
                    "months",
                    "price",
                    "currency",
                    "asset",
                    "asset_amount",
                    "checkout_url",
                    "expires_at"
                ],
                "properties": {
                    "object": {
                        "type": "string",
                        "const": "pro_payment"
                    },
                    "months": {
                        "type": "integer",
                        "const": 1
                    },
                    "price": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "currency": {
                        "$ref": "#/components/schemas/Currency"
                    },
                    "asset": {
                        "$ref": "#/components/schemas/AssetCode"
                    },
                    "asset_amount": {
                        "$ref": "#/components/schemas/Decimal"
                    },
                    "checkout_url": {
                        "type": "string",
                        "format": "uri"
                    },
                    "expires_at": {
                        "$ref": "#/components/schemas/DateTime"
                    }
                }
            },
            "PayoutAddress": {
                "type": "object",
                "required": [
                    "object",
                    "network",
                    "name",
                    "address",
                    "assets",
                    "payouts_held_until",
                    "updated_at"
                ],
                "properties": {
                    "object": {
                        "type": "string",
                        "const": "payout_address"
                    },
                    "network": {
                        "type": "string",
                        "enum": [
                            "bitcoin",
                            "litecoin",
                            "dogecoin",
                            "bitcoincash",
                            "evm",
                            "bsc",
                            "tron",
                            "monero",
                            "solana"
                        ]
                    },
                    "name": {
                        "type": "string"
                    },
                    "address": {
                        "$ref": "#/components/schemas/NullableString"
                    },
                    "assets": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/AssetCode"
                        }
                    },
                    "payouts_held_until": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    },
                    "updated_at": {
                        "$ref": "#/components/schemas/NullableDateTime"
                    }
                }
            }
        },
        "responses": {
            "400": {
                "description": "Malformed request or idempotency key.",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        }
                    }
                }
            },
            "401": {
                "description": "Missing, invalid or revoked bearer API key, a deleted account, inconsistent key mode or a suspended account.",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        }
                    }
                }
            },
            "403": {
                "description": "Key permission, creator role or IP restriction refuses this operation.",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        }
                    }
                }
            },
            "404": {
                "description": "Resource not found in this account and mode.",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        }
                    }
                }
            },
            "409": {
                "description": "Current resource state, mode, quota or idempotency conflict prevents the operation.",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        }
                    }
                },
                "headers": {
                    "Retry-After": {
                        "description": "Present when an idempotent request is still being processed.",
                        "schema": {
                            "type": "string"
                        }
                    },
                    "Idempotent-Replayed": {
                        "$ref": "#/components/headers/IdempotentReplayed"
                    }
                }
            },
            "422": {
                "description": "Request validation failed or verification was refused. Field errors are included when available.",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        }
                    }
                }
            },
            "429": {
                "description": "Rate limit reached. Retry after the indicated delay.",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        }
                    }
                },
                "headers": {
                    "Retry-After": {
                        "description": "Seconds to wait before retrying.",
                        "schema": {
                            "type": "string"
                        }
                    }
                }
            },
            "500": {
                "description": "Unexpected server error.",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        }
                    }
                }
            },
            "503": {
                "description": "A required payment, exchange-rate or billing service is unavailable.",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        }
                    }
                }
            }
        },
        "headers": {
            "IdempotentReplayed": {
                "description": "Present with value true when the response was replayed from the idempotency cache. Secret-bearing responses replay as 409 without exposing the secret.",
                "schema": {
                    "type": "string",
                    "enum": [
                        "true"
                    ]
                }
            }
        }
    }
}