{
    "openapi": "3.0.3",
    "info": {
        "title": "Marketplace API",
        "version": "1"
    },
    "servers": [
        {
            "url": "https://onlineselling.org/api/v1"
        }
    ],
    "components": {
        "securitySchemes": {
            "bearer": {
                "type": "http",
                "scheme": "bearer"
            }
        }
    },
    "security": [
        {
            "bearer": []
        }
    ],
    "paths": {
        "/ping": {
            "get": {
                "summary": "Check the key",
                "tags": [
                    "Account"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                }
            }
        },
        "/balance": {
            "get": {
                "summary": "Wallet balance and money reserved by running orders",
                "tags": [
                    "Account"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                }
            }
        },
        "/transactions": {
            "get": {
                "summary": "Wallet history, newest first",
                "tags": [
                    "Account"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "description": "max 200",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "before",
                        "in": "query",
                        "required": false,
                        "description": "page: next_before of the last answer",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/coins": {
            "get": {
                "summary": "Coins open for top-ups",
                "tags": [
                    "Account"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                }
            }
        },
        "/deposit-address": {
            "post": {
                "summary": "Your permanent deposit address for a coin",
                "tags": [
                    "Account"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "example": {
                                "coin": "usdt-tron"
                            }
                        }
                    }
                }
            }
        },
        "/invoice": {
            "post": {
                "summary": "Payment page for an exact amount",
                "tags": [
                    "Account"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "example": {
                                "amount": 25
                            }
                        }
                    }
                }
            }
        },
        "/payments": {
            "get": {
                "summary": "Your last 50 top-ups",
                "tags": [
                    "Account"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                }
            }
        },
        "/sms/countries": {
            "get": {
                "summary": "Countries with numbers on sale",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                }
            }
        },
        "/sms/prices": {
            "get": {
                "summary": "Prices and stock",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "country",
                        "in": "query",
                        "required": false,
                        "description": "country id (187 = USA, 16 = UK ...)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "service",
                        "in": "query",
                        "required": false,
                        "description": "service code, e.g. wa",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "line",
                        "in": "query",
                        "required": false,
                        "description": "otp (one-time, default) or rent",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "tier",
                        "in": "query",
                        "required": false,
                        "description": "standard (default) or real_sim",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/sms/orders": {
            "post": {
                "summary": "Take a number for one code (price held, charged only when the code arrives). US real-SIM options (tier real_sim): carrier (at&t, verizon, t-mobile) + keep_carrier, area_codes + lock_area_code, number (10 digits), or services: [codes] for several on one number",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "example": {
                                "service": "wa",
                                "country": 16,
                                "tier": "standard",
                                "max_price": 1.5
                            }
                        }
                    }
                }
            },
            "get": {
                "summary": "Your one-time orders",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "description": "open (default) or all",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "description": "max 100",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/sms/us/area-codes": {
            "get": {
                "summary": "US area codes with numbers free now, for one service",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "service",
                        "in": "query",
                        "required": false,
                        "description": "service code",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/sms/orders/{id}": {
            "get": {
                "summary": "One order with its codes",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/sms/orders/{id}/cancel": {
            "post": {
                "summary": "Cancel (nothing charged); allowed from cancel_available_at",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/sms/orders/{id}/swap": {
            "post": {
                "summary": "Another number, same price",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/sms/orders/{id}/another": {
            "post": {
                "summary": "Another SMS on the same number (where the service allows)",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/sms/orders/{id}/finish": {
            "post": {
                "summary": "Done with this number",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/sms/rentals": {
            "post": {
                "summary": "Rent numbers (paid when assigned). Code-link numbers: \"type\": \"link\" (valid 5-80+ days, no \"days\")",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "example": {
                                "service": "wa",
                                "country": 16,
                                "days": 7,
                                "quantity": 1
                            }
                        }
                    }
                }
            },
            "get": {
                "summary": "Your rentals",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "description": "active (default) or all",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/sms/rentals/{id}/renew": {
            "post": {
                "summary": "Renew for the same length at today's price (when the rental shows can_renew: true)",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/sms/rentals/{id}/auto-renew": {
            "post": {
                "summary": "Renew automatically before the end",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "example": {
                                "on": true
                            }
                        }
                    }
                }
            }
        },
        "/sms/rentals/{id}": {
            "get": {
                "summary": "One rental with its messages and code link",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/sms/rentals/{id}/messages": {
            "get": {
                "summary": "New messages only",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "after_id",
                        "in": "query",
                        "required": false,
                        "description": "last message id you have",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/sms/rentals/{id}/cancel": {
            "post": {
                "summary": "Cancel and refund (only where allowed: first minutes, before any message)",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/sms/rentals/{id}/new-link": {
            "post": {
                "summary": "New code link (the old one stops working)",
                "tags": [
                    "Temp SMS"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/accounts/products": {
            "get": {
                "summary": "Accounts on sale: price, min / max per order (stock numbers when the shop shows them)",
                "tags": [
                    "Accounts"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "category",
                        "in": "query",
                        "required": false,
                        "description": "category address, e.g. hotmail-outlook",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/accounts/orders": {
            "post": {
                "summary": "Buy accounts (paid from the wallet; the logins are in the reply when delivered at once)",
                "tags": [
                    "Accounts"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "example": {
                                "product_id": 123,
                                "quantity": 2,
                                "promo": "OPTIONAL"
                            }
                        }
                    }
                }
            },
            "get": {
                "summary": "Your accounts orders, newest first (without the logins)",
                "tags": [
                    "Accounts"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "description": "max 100",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "before",
                        "in": "query",
                        "required": false,
                        "description": "page: next_before of the last answer",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/accounts/orders/{ref}": {
            "get": {
                "summary": "One order with its logins",
                "tags": [
                    "Accounts"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "ref",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/accounts/orders/{ref}/file": {
            "get": {
                "summary": "The delivered file (tdata / session zip) of an order",
                "tags": [
                    "Accounts"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "ref",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/giftcards": {
            "get": {
                "summary": "Gift cards on sale with the price of each amount",
                "tags": [
                    "Gift cards & eSIM"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "description": "search",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "country",
                        "in": "query",
                        "required": false,
                        "description": "2-letter country",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "page (100 per page)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/giftcards/orders": {
            "post": {
                "summary": "Buy a gift card (the code is in the reply when delivered at once)",
                "tags": [
                    "Gift cards & eSIM"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "example": {
                                "giftcard_id": 123,
                                "amount": 25,
                                "promo": "OPTIONAL"
                            }
                        }
                    }
                }
            }
        },
        "/esim/packages": {
            "get": {
                "summary": "eSIM data plans on sale",
                "tags": [
                    "Gift cards & eSIM"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "country",
                        "in": "query",
                        "required": false,
                        "description": "2-letter country",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "data",
                        "in": "query",
                        "required": false,
                        "description": "GB or unlimited",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "days",
                        "in": "query",
                        "required": false,
                        "description": "days",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "page (200 per page)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/esim/orders": {
            "post": {
                "summary": "Buy an eSIM plan (the LPA activation code is in the reply)",
                "tags": [
                    "Gift cards & eSIM"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "example": {
                                "package_id": 123,
                                "promo": "OPTIONAL"
                            }
                        }
                    }
                }
            }
        },
        "/kc/orders/{ref}": {
            "get": {
                "summary": "One gift card / eSIM order with its code",
                "tags": [
                    "Gift cards & eSIM"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "ref",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/cards/bins": {
            "get": {
                "summary": "Virtual card types on offer, with fees and load limits",
                "tags": [
                    "Virtual cards"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                }
            }
        },
        "/cards": {
            "post": {
                "summary": "Issue a virtual card with a first load (\"agree\": true = you accept the card terms)",
                "tags": [
                    "Virtual cards"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "example": {
                                "bin_id": 1,
                                "amount": 50,
                                "first_name": "Ann",
                                "last_name": "Lee",
                                "agree": true
                            }
                        }
                    }
                }
            }
        },
        "/cards/{ref}": {
            "get": {
                "summary": "One card; details=1 adds the live card number, CVV and transactions (limited per hour)",
                "tags": [
                    "Virtual cards"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "ref",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "description": "1 = live details",
                        "schema": {
                            "type": "string"
                        }
                    }
                ]
            }
        },
        "/cards/{ref}/topup": {
            "post": {
                "summary": "Load more money onto a card",
                "tags": [
                    "Virtual cards"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "ref",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "example": {
                                "amount": 25
                            }
                        }
                    }
                }
            }
        },
        "/cards/{ref}/freeze": {
            "post": {
                "summary": "Freeze or unfreeze a card",
                "tags": [
                    "Virtual cards"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "parameters": [
                    {
                        "name": "ref",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "example": {
                                "action": "freeze"
                            }
                        }
                    }
                }
            }
        },
        "/webhook": {
            "get": {
                "summary": "Your webhook settings",
                "tags": [
                    "Webhooks"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                }
            },
            "post": {
                "summary": "Set your webhook address and events",
                "tags": [
                    "Webhooks"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                },
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "example": {
                                "url": "https://example.com/hook",
                                "events": [
                                    "sms.received",
                                    "order.updated"
                                ]
                            }
                        }
                    }
                }
            }
        },
        "/webhook/test": {
            "post": {
                "summary": "Send a test event now",
                "tags": [
                    "Webhooks"
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    },
                    "401": {
                        "description": "Missing or unknown key"
                    },
                    "422": {
                        "description": "Not possible, see error.message"
                    },
                    "429": {
                        "description": "Too many requests"
                    }
                }
            }
        }
    }
}