{
    "openapi": "3.0.0",
    "info": {
        "title": "BTC Direct API V2",
        "description": "API for requesting user details and buying/selling cryptocurrency on BTC Direct's platform. See https://developer.btcdirect.eu/api/ for full documentation.",
        "version": "2"
    },
    "paths": {
        "/api/v2/buy/checkout": {
            "post": {
                "tags": [
                    "Buy"
                ],
                "summary": "This endpoint can be used to create a checkout url for checkout.",
                "operationId": "post_app_v2_buy_checkout_checkout",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CheckoutRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER300",
                                                "ER301",
                                                "ER303",
                                                "ER304",
                                                "ER305",
                                                "ER306",
                                                "ER307",
                                                "ER308",
                                                "ER309",
                                                "ER310",
                                                "ER311",
                                                "ER312",
                                                "ER313",
                                                "ER314",
                                                "ER315",
                                                "ER316",
                                                "ER317",
                                                "ER318",
                                                "ER319",
                                                "ER320",
                                                "ER321",
                                                "ER322",
                                                "ER323",
                                                "ER324",
                                                "ER325",
                                                "ER326",
                                                "ER327",
                                                "ER328",
                                                "ER329",
                                                "ER330",
                                                "ER331",
                                                "ER332",
                                                "ER333",
                                                "ER334",
                                                "ER335",
                                                "ER336",
                                                "ER337",
                                                "ER338",
                                                "ER339",
                                                "ER359",
                                                "ER366",
                                                "ER367",
                                                "ER402",
                                                "ER403",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER300": {
                                            "code": "ER300",
                                            "message": "Base Currency should not be blank when Fixed Currency is set.",
                                            "solution": "Provide a valid Base Currency."
                                        },
                                        "ER301": {
                                            "code": "ER301",
                                            "message": "Base Currency should be a string.",
                                            "solution": "Provide a valid string for Base Currency."
                                        },
                                        "ER303": {
                                            "code": "ER303",
                                            "message": "Quote Currency should be a string.",
                                            "solution": "Provide a valid string for Quote Currency."
                                        },
                                        "ER304": {
                                            "code": "ER304",
                                            "message": "Base Currency Amount should be a number.",
                                            "solution": "Provide a valid number for Base Currency Amount."
                                        },
                                        "ER305": {
                                            "code": "ER305",
                                            "message": "Quote Currency Amount should be a number.",
                                            "solution": "Provide a valid number for Quote Currency Amount."
                                        },
                                        "ER306": {
                                            "code": "ER306",
                                            "message": "Payment Method should not be blank when Fixed Payment Method is set.",
                                            "solution": "Provide a valid Payment Method."
                                        },
                                        "ER307": {
                                            "code": "ER307",
                                            "message": "Payment Method should be a string.",
                                            "solution": "Provide a valid string for Payment Method."
                                        },
                                        "ER308": {
                                            "code": "ER308",
                                            "message": "Return URL should not be blank.",
                                            "solution": "Provide a valid Return URL."
                                        },
                                        "ER309": {
                                            "code": "ER309",
                                            "message": "Return URL should be a string.",
                                            "solution": "Provide a valid string for Return URL."
                                        },
                                        "ER310": {
                                            "code": "ER310",
                                            "message": "Callback URL should be a string or null.",
                                            "solution": "Provide a valid string for Callback URL or leave it null for default value."
                                        },
                                        "ER311": {
                                            "code": "ER311",
                                            "message": "Partner Order Identifier should be a string or null.",
                                            "solution": "Provide a valid string for Partner Order Identifier or leave it null."
                                        },
                                        "ER312": {
                                            "code": "ER312",
                                            "message": "Wallet Address should be a string or null.",
                                            "solution": "Provide a valid string for Wallet Address or leave it null."
                                        },
                                        "ER313": {
                                            "code": "ER313",
                                            "message": "Wallet Address Tag should be a string or null.",
                                            "solution": "Provide a valid string for Wallet Address Tag or leave it null."
                                        },
                                        "ER314": {
                                            "code": "ER314",
                                            "message": "Expire Time should be a int or null.",
                                            "solution": "Provide a valid int for Expire Time or leave it null for default value."
                                        },
                                        "ER315": {
                                            "code": "ER315",
                                            "message": "Fee should be a number or null.",
                                            "solution": "Provide a valid number for Fee or leave it null for default value."
                                        },
                                        "ER316": {
                                            "code": "ER316",
                                            "message": "Fixed Amount should be a boolean or null.",
                                            "solution": "Provide a valid boolean for Fixed Amount or leave it null."
                                        },
                                        "ER317": {
                                            "code": "ER317",
                                            "message": "Fixed Currency should be a boolean or null.",
                                            "solution": "Provide a valid boolean for Fixed Currency or leave it null."
                                        },
                                        "ER318": {
                                            "code": "ER318",
                                            "message": "Fixed Payment Method should be a boolean or null.",
                                            "solution": "Provide a valid boolean for Fixed Payment Method or leave it null."
                                        },
                                        "ER319": {
                                            "code": "ER319",
                                            "message": "Show Wallet Address should be a boolean or null.",
                                            "solution": "Provide a valid boolean for Show Wallet Address or leave it null."
                                        },
                                        "ER320": {
                                            "code": "ER320",
                                            "message": "Exactly one or none of baseCurrencyAmount or quoteCurrencyAmount must be set.",
                                            "solution": "Set Exactly one or none of baseCurrencyAmount or quoteCurrencyAmount."
                                        },
                                        "ER321": {
                                            "code": "ER321",
                                            "message": "Callback URL should not be blank.",
                                            "solution": "Provide a valid Callback URL."
                                        },
                                        "ER322": {
                                            "code": "ER322",
                                            "message": "Expire Time should not be blank.",
                                            "solution": "Provide a valid Expire Time."
                                        },
                                        "ER323": {
                                            "code": "ER323",
                                            "message": "Fee should not be blank.",
                                            "solution": "Provide a valid Fee."
                                        },
                                        "ER324": {
                                            "code": "ER324",
                                            "message": "Something went wrong.",
                                            "solution": "Please contact support for assistance."
                                        },
                                        "ER325": {
                                            "code": "ER325",
                                            "message": "Wallet address is required",
                                            "solution": "Please provide a valid wallet address."
                                        },
                                        "ER326": {
                                            "code": "ER326",
                                            "message": "Invalid Base Currency and Quote Currency combination.",
                                            "solution": "Please provide a valid Base Currency and Quote Currency combination."
                                        },
                                        "ER327": {
                                            "code": "ER327",
                                            "message": "Invalid payment method.",
                                            "solution": "Please provide a valid payment method."
                                        },
                                        "ER328": {
                                            "code": "ER328",
                                            "message": "Something went wrong.",
                                            "solution": "Please contact support for assistance."
                                        },
                                        "ER329": {
                                            "code": "ER329",
                                            "message": "Invalid expire time.",
                                            "solution": "Please provide a valid expire time"
                                        },
                                        "ER330": {
                                            "code": "ER330",
                                            "message": "Exactly one of baseCurrencyAmount or quoteCurrencyAmount must be set when Fixed Amount is set.",
                                            "solution": "Set Exactly one of baseCurrencyAmount or quoteCurrencyAmount."
                                        },
                                        "ER331": {
                                            "code": "ER331",
                                            "message": "Secret not set",
                                            "solution": "Please contact support for assistance."
                                        },
                                        "ER332": {
                                            "code": "ER332",
                                            "message": "Payment Method should not be null.",
                                            "solution": "Provide a valid Payment Method or leave it out of the request."
                                        },
                                        "ER333": {
                                            "code": "ER333",
                                            "message": "Login token not found.",
                                            "solution": "Provide a valid login token and uuid."
                                        },
                                        "ER334": {
                                            "code": "ER334",
                                            "message": "Login token has expired.",
                                            "solution": "Request a new login token."
                                        },
                                        "ER335": {
                                            "code": "ER335",
                                            "message": "Login token has no user attached.",
                                            "solution": "Request a new login token."
                                        },
                                        "ER336": {
                                            "code": "ER336",
                                            "message": "Signature is invalid.",
                                            "solution": "Provide a valid Signature."
                                        },
                                        "ER337": {
                                            "code": "ER337",
                                            "message": "Base Currency should not be blank.",
                                            "solution": "Provide a valid Base Currency."
                                        },
                                        "ER338": {
                                            "code": "ER338",
                                            "message": "Signature should be a string.",
                                            "solution": "Provide a valid string for Signature."
                                        },
                                        "ER339": {
                                            "code": "ER339",
                                            "message": "Signature is required when Wallet Address, Fee, Return Url or Callback Url is set.",
                                            "solution": "Provide a valid Signature."
                                        },
                                        "ER359": {
                                            "code": "ER359",
                                            "message": "Wallet address unknown.",
                                            "solution": "Please provide a valid wallet address."
                                        },
                                        "ER366": {
                                            "code": "ER366",
                                            "message": "KYC share token should be a string.",
                                            "solution": "Provide a valid string for the KYC share token."
                                        },
                                        "ER367": {
                                            "code": "ER367",
                                            "message": "KYC share token should not be blank.",
                                            "solution": "Provide a non-empty KYC share token or omit the field."
                                        },
                                        "ER402": {
                                            "code": "ER402",
                                            "message": "targetCurrency contains an unsupported CAIP-19 identifier.",
                                            "solution": "Provide a valid and supported CAIP-19 identifier for targetCurrency."
                                        },
                                        "ER403": {
                                            "code": "ER403",
                                            "message": "sourceCurrency contains an unsupported CAIP-19 identifier.",
                                            "solution": "Provide a valid and supported CAIP-19 identifier for sourceCurrency."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "201": {
                        "description": "Returns a checkout URL",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CheckoutResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    }
                ]
            }
        },
        "/api/v2/buy/confirm": {
            "post": {
                "tags": [
                    "Buy"
                ],
                "summary": "This endpoint can be used to confirm a fiat to crypto quote.",
                "operationId": "post_app_v2_buy_confirm_confirm",
                "requestBody": {
                    "description": "To confirm, you should submit a quote, offerId and walletAddress. Optional parameters are walletAddressTag and walletType.",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/ConfirmRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER006",
                                                "ER007",
                                                "ER008",
                                                "ER009",
                                                "ER014",
                                                "ER015",
                                                "ER044",
                                                "ER045",
                                                "ER046",
                                                "ER047",
                                                "ER048",
                                                "ER124",
                                                "ER131",
                                                "ER132",
                                                "ER133",
                                                "ER134",
                                                "ER135",
                                                "ER136",
                                                "ER137",
                                                "ER138",
                                                "ER139",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER006": {
                                            "code": "ER006",
                                            "message": "The provided quote has expired.",
                                            "solution": "Request a new quote."
                                        },
                                        "ER007": {
                                            "code": "ER007",
                                            "message": "The provided quote contains invalid data. It is possible it has been tampered with.",
                                            "solution": "Provide a valid quote."
                                        },
                                        "ER008": {
                                            "code": "ER008",
                                            "message": "The selected currency is down for maintenance.",
                                            "solution": "Check /api/v1/system/currency-pairs to see whether the selected currency is enabled, and try again."
                                        },
                                        "ER009": {
                                            "code": "ER009",
                                            "message": "The provided quote is not a buy quote.",
                                            "solution": "Request a new buy quote."
                                        },
                                        "ER014": {
                                            "code": "ER014",
                                            "message": "Invalid wallet address.",
                                            "solution": "Provide a valid wallet address for the selected currency pair."
                                        },
                                        "ER015": {
                                            "code": "ER015",
                                            "message": "Invalid destination tag.",
                                            "solution": "Provide a valid destination tag."
                                        },
                                        "ER044": {
                                            "code": "ER044",
                                            "message": "Destination tag not supported for this currency pair.",
                                            "solution": "Leave the destination tag empty."
                                        },
                                        "ER045": {
                                            "code": "ER045",
                                            "message": "Missing quote.",
                                            "solution": "Provide a valid quote."
                                        },
                                        "ER046": {
                                            "code": "ER046",
                                            "message": "Invalid callback URL.",
                                            "solution": "Provide a valid callback URL."
                                        },
                                        "ER047": {
                                            "code": "ER047",
                                            "message": "Invalid return URL.",
                                            "solution": "Provide a valid return URL."
                                        },
                                        "ER048": {
                                            "code": "ER048",
                                            "message": "Invalid JSON data provided.",
                                            "solution": "Provide valid JSON data."
                                        },
                                        "ER124": {
                                            "code": "ER124",
                                            "message": "User is disabled.",
                                            "solution": "Please contact support for assistance."
                                        },
                                        "ER131": {
                                            "code": "ER131",
                                            "message": "Invalid offerId provided, offer already confirmed.",
                                            "solution": "Provide an offerId that has not yet been confirmed."
                                        },
                                        "ER132": {
                                            "code": "ER132",
                                            "message": "Invalid offerId provided, offer not found.",
                                            "solution": "Provide an existing offerId."
                                        },
                                        "ER133": {
                                            "code": "ER133",
                                            "message": "The offer is expired.",
                                            "solution": "You can only confirm non-expired offers."
                                        },
                                        "ER134": {
                                            "code": "ER134",
                                            "message": "The amount is fixed and cannot be changed.",
                                            "solution": "You can only confirm this offer for the original amount."
                                        },
                                        "ER135": {
                                            "code": "ER135",
                                            "message": "The currency is fixed and cannot be changed.",
                                            "solution": "You can only confirm this offer for the original currency."
                                        },
                                        "ER136": {
                                            "code": "ER136",
                                            "message": "The payment method is fixed and cannot be changed.",
                                            "solution": "You can only confirm this offer for the original payment method."
                                        },
                                        "ER137": {
                                            "code": "ER137",
                                            "message": "The fee is fixed and cannot be changed.",
                                            "solution": "You can only confirm this offer for the original fee."
                                        },
                                        "ER138": {
                                            "code": "ER138",
                                            "message": "The account type does not support the quoted payment method.",
                                            "solution": "Choose an account type that supports the quoted payment method."
                                        },
                                        "ER139": {
                                            "code": "ER139",
                                            "message": "The account is not verified.",
                                            "solution": "Provide a verified account or verify the account first."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "201": {
                        "description": "Returns a URL to pay for the order.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Confirmation"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/api/v2/buy/{id}/identification/liveness": {
            "get": {
                "tags": [
                    "Buy"
                ],
                "summary": "This endpoint can be used to get the liveness check status for the order.",
                "operationId": "get_app_v2_buy_identification_liveness",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER033",
                                                "ER034",
                                                "ER035",
                                                "ER150",
                                                "ER700",
                                                "ER702",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER033": {
                                            "code": "ER033",
                                            "message": "Missing order id parameter.",
                                            "solution": "Supply an order id parameter."
                                        },
                                        "ER034": {
                                            "code": "ER034",
                                            "message": "Invalid order id parameter.",
                                            "solution": "Order id parameter can only be a number."
                                        },
                                        "ER035": {
                                            "code": "ER035",
                                            "message": "An order with the supplied id was not found.",
                                            "solution": "Supply a valid order id."
                                        },
                                        "ER150": {
                                            "code": "ER150",
                                            "message": "Provided orderId does not belong to authenticated user.",
                                            "solution": "Provide an orderId that belongs to the user."
                                        },
                                        "ER700": {
                                            "code": "ER700",
                                            "message": "User authorization token not found.",
                                            "solution": "Provide a user authorization token."
                                        },
                                        "ER702": {
                                            "code": "ER702",
                                            "message": "User authorization token is invalid.",
                                            "solution": "Provide a valid user authorization token."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "The response contains the liveness check status for the order.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Status"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/api/v2/buy/offer": {
            "post": {
                "tags": [
                    "Buy"
                ],
                "summary": "This endpoint can be used to create an offer.",
                "operationId": "post_app_v2_buy_offercreate_create",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateOfferRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER300",
                                                "ER301",
                                                "ER302",
                                                "ER303",
                                                "ER304",
                                                "ER305",
                                                "ER306",
                                                "ER307",
                                                "ER308",
                                                "ER309",
                                                "ER310",
                                                "ER311",
                                                "ER312",
                                                "ER313",
                                                "ER314",
                                                "ER315",
                                                "ER316",
                                                "ER317",
                                                "ER318",
                                                "ER319",
                                                "ER320",
                                                "ER321",
                                                "ER322",
                                                "ER323",
                                                "ER324",
                                                "ER325",
                                                "ER326",
                                                "ER327",
                                                "ER328",
                                                "ER329",
                                                "ER330",
                                                "ER331",
                                                "ER332",
                                                "ER333",
                                                "ER334",
                                                "ER335",
                                                "ER336",
                                                "ER337",
                                                "ER338",
                                                "ER339",
                                                "ER402",
                                                "ER403",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER300": {
                                            "code": "ER300",
                                            "message": "Base Currency should not be blank when Fixed Currency is set.",
                                            "solution": "Provide a valid Base Currency."
                                        },
                                        "ER301": {
                                            "code": "ER301",
                                            "message": "Base Currency should be a string.",
                                            "solution": "Provide a valid string for Base Currency."
                                        },
                                        "ER302": {
                                            "code": "ER302",
                                            "message": "Quote Currency should not be blank.",
                                            "solution": "Provide a valid Quote Currency."
                                        },
                                        "ER303": {
                                            "code": "ER303",
                                            "message": "Quote Currency should be a string.",
                                            "solution": "Provide a valid string for Quote Currency."
                                        },
                                        "ER304": {
                                            "code": "ER304",
                                            "message": "Base Currency Amount should be a number.",
                                            "solution": "Provide a valid number for Base Currency Amount."
                                        },
                                        "ER305": {
                                            "code": "ER305",
                                            "message": "Quote Currency Amount should be a number.",
                                            "solution": "Provide a valid number for Quote Currency Amount."
                                        },
                                        "ER306": {
                                            "code": "ER306",
                                            "message": "Payment Method should not be blank when Fixed Payment Method is set.",
                                            "solution": "Provide a valid Payment Method."
                                        },
                                        "ER307": {
                                            "code": "ER307",
                                            "message": "Payment Method should be a string.",
                                            "solution": "Provide a valid string for Payment Method."
                                        },
                                        "ER308": {
                                            "code": "ER308",
                                            "message": "Return URL should not be blank.",
                                            "solution": "Provide a valid Return URL."
                                        },
                                        "ER309": {
                                            "code": "ER309",
                                            "message": "Return URL should be a string.",
                                            "solution": "Provide a valid string for Return URL."
                                        },
                                        "ER310": {
                                            "code": "ER310",
                                            "message": "Callback URL should be a string or null.",
                                            "solution": "Provide a valid string for Callback URL or leave it null for default value."
                                        },
                                        "ER311": {
                                            "code": "ER311",
                                            "message": "Partner Order Identifier should be a string or null.",
                                            "solution": "Provide a valid string for Partner Order Identifier or leave it null."
                                        },
                                        "ER312": {
                                            "code": "ER312",
                                            "message": "Wallet Address should be a string or null.",
                                            "solution": "Provide a valid string for Wallet Address or leave it null."
                                        },
                                        "ER313": {
                                            "code": "ER313",
                                            "message": "Wallet Address Tag should be a string or null.",
                                            "solution": "Provide a valid string for Wallet Address Tag or leave it null."
                                        },
                                        "ER314": {
                                            "code": "ER314",
                                            "message": "Expire Time should be a int or null.",
                                            "solution": "Provide a valid int for Expire Time or leave it null for default value."
                                        },
                                        "ER315": {
                                            "code": "ER315",
                                            "message": "Fee should be a number or null.",
                                            "solution": "Provide a valid number for Fee or leave it null for default value."
                                        },
                                        "ER316": {
                                            "code": "ER316",
                                            "message": "Fixed Amount should be a boolean or null.",
                                            "solution": "Provide a valid boolean for Fixed Amount or leave it null."
                                        },
                                        "ER317": {
                                            "code": "ER317",
                                            "message": "Fixed Currency should be a boolean or null.",
                                            "solution": "Provide a valid boolean for Fixed Currency or leave it null."
                                        },
                                        "ER318": {
                                            "code": "ER318",
                                            "message": "Fixed Payment Method should be a boolean or null.",
                                            "solution": "Provide a valid boolean for Fixed Payment Method or leave it null."
                                        },
                                        "ER319": {
                                            "code": "ER319",
                                            "message": "Show Wallet Address should be a boolean or null.",
                                            "solution": "Provide a valid boolean for Show Wallet Address or leave it null."
                                        },
                                        "ER320": {
                                            "code": "ER320",
                                            "message": "Exactly one or none of baseCurrencyAmount or quoteCurrencyAmount must be set.",
                                            "solution": "Set Exactly one or none of baseCurrencyAmount or quoteCurrencyAmount."
                                        },
                                        "ER321": {
                                            "code": "ER321",
                                            "message": "Callback URL should not be blank.",
                                            "solution": "Provide a valid Callback URL."
                                        },
                                        "ER322": {
                                            "code": "ER322",
                                            "message": "Expire Time should not be blank.",
                                            "solution": "Provide a valid Expire Time."
                                        },
                                        "ER323": {
                                            "code": "ER323",
                                            "message": "Fee should not be blank.",
                                            "solution": "Provide a valid Fee."
                                        },
                                        "ER324": {
                                            "code": "ER324",
                                            "message": "Something went wrong.",
                                            "solution": "Please contact support for assistance."
                                        },
                                        "ER325": {
                                            "code": "ER325",
                                            "message": "Wallet address is required",
                                            "solution": "Please provide a valid wallet address."
                                        },
                                        "ER326": {
                                            "code": "ER326",
                                            "message": "Invalid Base Currency and Quote Currency combination.",
                                            "solution": "Please provide a valid Base Currency and Quote Currency combination."
                                        },
                                        "ER327": {
                                            "code": "ER327",
                                            "message": "Invalid payment method.",
                                            "solution": "Please provide a valid payment method."
                                        },
                                        "ER328": {
                                            "code": "ER328",
                                            "message": "Something went wrong.",
                                            "solution": "Please contact support for assistance."
                                        },
                                        "ER329": {
                                            "code": "ER329",
                                            "message": "Invalid expire time.",
                                            "solution": "Please provide a valid expire time"
                                        },
                                        "ER330": {
                                            "code": "ER330",
                                            "message": "Exactly one of baseCurrencyAmount or quoteCurrencyAmount must be set when Fixed Amount is set.",
                                            "solution": "Set Exactly one of baseCurrencyAmount or quoteCurrencyAmount."
                                        },
                                        "ER331": {
                                            "code": "ER331",
                                            "message": "Secret not set",
                                            "solution": "Please contact support for assistance."
                                        },
                                        "ER332": {
                                            "code": "ER332",
                                            "message": "Payment Method should not be null.",
                                            "solution": "Provide a valid Payment Method or leave it out of the request."
                                        },
                                        "ER333": {
                                            "code": "ER333",
                                            "message": "Login token not found.",
                                            "solution": "Provide a valid login token and uuid."
                                        },
                                        "ER334": {
                                            "code": "ER334",
                                            "message": "Login token has expired.",
                                            "solution": "Request a new login token."
                                        },
                                        "ER335": {
                                            "code": "ER335",
                                            "message": "Login token has no user attached.",
                                            "solution": "Request a new login token."
                                        },
                                        "ER336": {
                                            "code": "ER336",
                                            "message": "Signature is invalid.",
                                            "solution": "Provide a valid Signature."
                                        },
                                        "ER337": {
                                            "code": "ER337",
                                            "message": "Base Currency should not be blank.",
                                            "solution": "Provide a valid Base Currency."
                                        },
                                        "ER338": {
                                            "code": "ER338",
                                            "message": "Signature should be a string.",
                                            "solution": "Provide a valid string for Signature."
                                        },
                                        "ER339": {
                                            "code": "ER339",
                                            "message": "Signature is required when Wallet Address, Fee, Return Url or Callback Url is set.",
                                            "solution": "Provide a valid Signature."
                                        },
                                        "ER402": {
                                            "code": "ER402",
                                            "message": "targetCurrency contains an unsupported CAIP-19 identifier.",
                                            "solution": "Provide a valid and supported CAIP-19 identifier for targetCurrency."
                                        },
                                        "ER403": {
                                            "code": "ER403",
                                            "message": "sourceCurrency contains an unsupported CAIP-19 identifier.",
                                            "solution": "Provide a valid and supported CAIP-19 identifier for sourceCurrency."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "201": {
                        "description": "Returns an UUID and expire time",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CreateOfferResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    }
                ]
            }
        },
        "/api/v2/buy/orders/{id}": {
            "get": {
                "tags": [
                    "Buy"
                ],
                "summary": "Retrieves Buy order information for any buy order for the authenticated client.",
                "operationId": "get_app_v2_buy_order_orderdetails",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER033",
                                                "ER034",
                                                "ER035",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER033": {
                                            "code": "ER033",
                                            "message": "Missing order id parameter.",
                                            "solution": "Supply an order id parameter."
                                        },
                                        "ER034": {
                                            "code": "ER034",
                                            "message": "Invalid order id parameter.",
                                            "solution": "Order id parameter can only be a number."
                                        },
                                        "ER035": {
                                            "code": "ER035",
                                            "message": "An order with the supplied id was not found.",
                                            "solution": "Supply a valid order id."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Order status retrieved successfully.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Order"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    }
                ]
            }
        },
        "/api/v2/buy/payment-methods": {
            "get": {
                "tags": [
                    "Buy"
                ],
                "summary": "This endpoint can be used to get the available payment methods.",
                "operationId": "get_app_v2_buy_paymentmethods_paymentmethods",
                "parameters": [
                    {
                        "name": "countryCode",
                        "in": "query",
                        "description": "The countryCode will be used to determine the payment method order, but only when no user is provided. If no user and no countryCode is provided the default order will be used.",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "enum": [
                                "at",
                                "be",
                                "bg",
                                "ch",
                                "cy",
                                "cz",
                                "de",
                                "dk",
                                "ee",
                                "es",
                                "fi",
                                "fr",
                                "gb",
                                "gr",
                                "hr",
                                "hu",
                                "ie",
                                "it",
                                "lt",
                                "lu",
                                "lv",
                                "mt",
                                "nl",
                                "no",
                                "pl",
                                "pt",
                                "ro",
                                "se",
                                "sk",
                                "sl"
                            ]
                        }
                    }
                ],
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Returns a list of available payment methods. Order of the payment methods is determined by the user and/or (user|input)country and is representing the preferred payment methods.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PaymentMethodsResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/api/v2/client/info": {
            "get": {
                "tags": [
                    "Client"
                ],
                "summary": "Returns information about the current authenticated Api client.",
                "operationId": "get_app_v2_client_info_info",
                "responses": {
                    "200": {
                        "description": "Client info retrieved successfully.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ClientInfoResponse"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v2/prices": {
            "get": {
                "tags": [
                    "System"
                ],
                "summary": "Returns buy and sell prices per currency pair, with full currency metadata.",
                "description": "Pairs with no available price are omitted. The buy or sell field is omitted when that direction is disabled or unavailable.\nThere is an optional fee you may include by appending the Query parameter ?fee=3 to your request, where 3 will be the fee percentage (3%) added to the returned prices.",
                "operationId": "get_app_v2_prices_prices_prices",
                "parameters": [
                    {
                        "name": "fee",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number",
                            "example": 1.5
                        }
                    }
                ],
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER050",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER050": {
                                            "code": "ER050",
                                            "message": "Invalid fee provided.",
                                            "solution": "Provide a number between 0 and 5.0 inclusive."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Returns buy and sell prices per currency pair with currency metadata.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                },
                                "example": {
                                    "BTC-EUR": {
                                        "sourceCurrency": {
                                            "code": "BTC",
                                            "ticker": "BTC",
                                            "chain": null,
                                            "name": "Bitcoin",
                                            "decimals": 8,
                                            "supportsTag": false,
                                            "smartContractAddress": null,
                                            "caip19": "bip122:000000000019d6689c085ae165831e93/slip44:0"
                                        },
                                        "targetCurrency": {
                                            "code": "EUR",
                                            "name": "Euro",
                                            "decimals": 2,
                                            "caip19": "swift:0/iso4217:EUR"
                                        },
                                        "buy": 54355.9,
                                        "sell": 52722.66
                                    }
                                }
                            }
                        }
                    }
                }
            }
        },
        "/api/v2/sell/orders/{id}": {
            "get": {
                "tags": [
                    "Sell"
                ],
                "summary": "Retrieves Sell order information for any sell order for the authenticated client.",
                "operationId": "get_app_v2_sell_order_orderdetails",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER033",
                                                "ER034",
                                                "ER035",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER033": {
                                            "code": "ER033",
                                            "message": "Missing order id parameter.",
                                            "solution": "Supply an order id parameter."
                                        },
                                        "ER034": {
                                            "code": "ER034",
                                            "message": "Invalid order id parameter.",
                                            "solution": "Order id parameter can only be a number."
                                        },
                                        "ER035": {
                                            "code": "ER035",
                                            "message": "An order with the supplied id was not found.",
                                            "solution": "Supply a valid order id."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Order status retrieved successfully.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Order2"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    }
                ]
            }
        },
        "/api/v2/user/accounts/iban": {
            "post": {
                "tags": [
                    "User"
                ],
                "summary": "Submit an unverified IBAN account for the authenticated user.",
                "description": "If the IBAN already exists for this user, a 201 response is returned without creating a duplicate.",
                "operationId": "post_app_v2_user_accounts_iban_addibanaccount",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/AddIbanAccountRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER056",
                                                "ER086",
                                                "ER113",
                                                "ER187",
                                                "ER188",
                                                "ER700",
                                                "ER701",
                                                "ER702",
                                                "ER703",
                                                "ER704",
                                                "ER705",
                                                "ER706",
                                                "ER707",
                                                "ER708",
                                                "ER709",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER056": {
                                            "code": "ER056",
                                            "message": "Invalid IBAN number provided.",
                                            "solution": "Provide a valid IBAN number."
                                        },
                                        "ER086": {
                                            "code": "ER086",
                                            "message": "Disabled IBAN account provided.",
                                            "solution": "Provide a non-disabled IBAN account. A list of valid accounts can be retrieved from /api/v1/user/info."
                                        },
                                        "ER113": {
                                            "code": "ER113",
                                            "message": "No IBAN account provided.",
                                            "solution": "Provide a valid IBAN account."
                                        },
                                        "ER187": {
                                            "code": "ER187",
                                            "message": "Invalid holder name.",
                                            "solution": "Provide a valid holder name."
                                        },
                                        "ER188": {
                                            "code": "ER188",
                                            "message": "The account cannot be instantly verified.",
                                            "solution": "The account could not be automatically verified. It may still be verified by support."
                                        },
                                        "ER700": {
                                            "code": "ER700",
                                            "message": "User authorization token not found.",
                                            "solution": "Provide a user authorization token."
                                        },
                                        "ER701": {
                                            "code": "ER701",
                                            "message": "User authorization token has expired.",
                                            "solution": "Request a new authorization token, or refresh the token."
                                        },
                                        "ER702": {
                                            "code": "ER702",
                                            "message": "User authorization token is invalid.",
                                            "solution": "Provide a valid user authorization token."
                                        },
                                        "ER703": {
                                            "code": "ER703",
                                            "message": "User identifier does not belong to the user in the user authorization token.",
                                            "solution": "Provide a valid user identifier, or remove the user identifier header."
                                        },
                                        "ER704": {
                                            "code": "ER704",
                                            "message": "No user identifier found in headers.",
                                            "solution": "Provide a valid user identifier, or use the user/password authentication mechanism to request a user token and send that."
                                        },
                                        "ER705": {
                                            "code": "ER705",
                                            "message": "User identifier is not linked to a user.",
                                            "solution": "Provide a valid user identifier, link this user identifier to a user account, or use the user/password authentication mechanism."
                                        },
                                        "ER706": {
                                            "code": "ER706",
                                            "message": "User identifier is invalid.",
                                            "solution": "Provide a valid user identifier, a unique identifier string for the user account that is not already in use."
                                        },
                                        "ER707": {
                                            "code": "ER707",
                                            "message": "User identifier is invalid.",
                                            "solution": "Please provide an identifier, consisting of 36 - 255 characters, numeric or alphanumeric only."
                                        },
                                        "ER708": {
                                            "code": "ER708",
                                            "message": "There is a pending document for this side.",
                                            "solution": "Wait for the pending document to be reviewed."
                                        },
                                        "ER709": {
                                            "code": "ER709",
                                            "message": "User not found, or user has been deleted.",
                                            "solution": "Provide a valid user identifier."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "201": {
                        "description": "IBAN account successfully submitted.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AddIbanAccountResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/api/v2/user/accounts/paypal": {
            "post": {
                "tags": [
                    "User/Accounts"
                ],
                "operationId": "post_app_v2_user_accounts_paypal_createpaypalaccount",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreatePaypalAccountRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER393",
                                                "ER700",
                                                "ER701",
                                                "ER702",
                                                "ER703",
                                                "ER704",
                                                "ER705",
                                                "ER706",
                                                "ER707",
                                                "ER708",
                                                "ER709",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER393": {
                                            "code": "ER393",
                                            "message": "Token cannot be an empty string.",
                                            "solution": "Provide a valid token."
                                        },
                                        "ER700": {
                                            "code": "ER700",
                                            "message": "User authorization token not found.",
                                            "solution": "Provide a user authorization token."
                                        },
                                        "ER701": {
                                            "code": "ER701",
                                            "message": "User authorization token has expired.",
                                            "solution": "Request a new authorization token, or refresh the token."
                                        },
                                        "ER702": {
                                            "code": "ER702",
                                            "message": "User authorization token is invalid.",
                                            "solution": "Provide a valid user authorization token."
                                        },
                                        "ER703": {
                                            "code": "ER703",
                                            "message": "User identifier does not belong to the user in the user authorization token.",
                                            "solution": "Provide a valid user identifier, or remove the user identifier header."
                                        },
                                        "ER704": {
                                            "code": "ER704",
                                            "message": "No user identifier found in headers.",
                                            "solution": "Provide a valid user identifier, or use the user/password authentication mechanism to request a user token and send that."
                                        },
                                        "ER705": {
                                            "code": "ER705",
                                            "message": "User identifier is not linked to a user.",
                                            "solution": "Provide a valid user identifier, link this user identifier to a user account, or use the user/password authentication mechanism."
                                        },
                                        "ER706": {
                                            "code": "ER706",
                                            "message": "User identifier is invalid.",
                                            "solution": "Provide a valid user identifier, a unique identifier string for the user account that is not already in use."
                                        },
                                        "ER707": {
                                            "code": "ER707",
                                            "message": "User identifier is invalid.",
                                            "solution": "Please provide an identifier, consisting of 36 - 255 characters, numeric or alphanumeric only."
                                        },
                                        "ER708": {
                                            "code": "ER708",
                                            "message": "There is a pending document for this side.",
                                            "solution": "Wait for the pending document to be reviewed."
                                        },
                                        "ER709": {
                                            "code": "ER709",
                                            "message": "User not found, or user has been deleted.",
                                            "solution": "Provide a valid user identifier."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "202": {
                        "description": "The PayPal verification process has been started successfully."
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/api/v2/user/accounts/cards/worldpay": {
            "post": {
                "tags": [
                    "User/Accounts"
                ],
                "operationId": "post_app_v2_user_accounts_worldpay_create_createcardaccount",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateCardAccountRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER109",
                                                "ER114",
                                                "ER188",
                                                "ER393",
                                                "ER399",
                                                "ER401",
                                                "ER700",
                                                "ER701",
                                                "ER702",
                                                "ER703",
                                                "ER704",
                                                "ER705",
                                                "ER706",
                                                "ER707",
                                                "ER708",
                                                "ER709",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER109": {
                                            "code": "ER109",
                                            "message": "No currency provided.",
                                            "solution": "Provide a supported currency."
                                        },
                                        "ER114": {
                                            "code": "ER114",
                                            "message": "Unsupported currency provided.",
                                            "solution": "Provide a supported currency."
                                        },
                                        "ER188": {
                                            "code": "ER188",
                                            "message": "The account cannot be instantly verified.",
                                            "solution": "The account could not be automatically verified. It may still be verified by support."
                                        },
                                        "ER393": {
                                            "code": "ER393",
                                            "message": "Token cannot be an empty string.",
                                            "solution": "Provide a valid token."
                                        },
                                        "ER399": {
                                            "code": "ER399",
                                            "message": "Cardholder name is missing on the account.",
                                            "solution": "Ensure the account has a cardholder name before requesting verification."
                                        },
                                        "ER401": {
                                            "code": "ER401",
                                            "message": "Unable to create payment account.",
                                            "solution": "Please try again later. If the problem persists, contact support."
                                        },
                                        "ER700": {
                                            "code": "ER700",
                                            "message": "User authorization token not found.",
                                            "solution": "Provide a user authorization token."
                                        },
                                        "ER701": {
                                            "code": "ER701",
                                            "message": "User authorization token has expired.",
                                            "solution": "Request a new authorization token, or refresh the token."
                                        },
                                        "ER702": {
                                            "code": "ER702",
                                            "message": "User authorization token is invalid.",
                                            "solution": "Provide a valid user authorization token."
                                        },
                                        "ER703": {
                                            "code": "ER703",
                                            "message": "User identifier does not belong to the user in the user authorization token.",
                                            "solution": "Provide a valid user identifier, or remove the user identifier header."
                                        },
                                        "ER704": {
                                            "code": "ER704",
                                            "message": "No user identifier found in headers.",
                                            "solution": "Provide a valid user identifier, or use the user/password authentication mechanism to request a user token and send that."
                                        },
                                        "ER705": {
                                            "code": "ER705",
                                            "message": "User identifier is not linked to a user.",
                                            "solution": "Provide a valid user identifier, link this user identifier to a user account, or use the user/password authentication mechanism."
                                        },
                                        "ER706": {
                                            "code": "ER706",
                                            "message": "User identifier is invalid.",
                                            "solution": "Provide a valid user identifier, a unique identifier string for the user account that is not already in use."
                                        },
                                        "ER707": {
                                            "code": "ER707",
                                            "message": "User identifier is invalid.",
                                            "solution": "Please provide an identifier, consisting of 36 - 255 characters, numeric or alphanumeric only."
                                        },
                                        "ER708": {
                                            "code": "ER708",
                                            "message": "There is a pending document for this side.",
                                            "solution": "Wait for the pending document to be reviewed."
                                        },
                                        "ER709": {
                                            "code": "ER709",
                                            "message": "User not found, or user has been deleted.",
                                            "solution": "Provide a valid user identifier."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "201": {
                        "description": "The Worldpay card account has been created successfully.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CardAccountResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/api/v2/user/dca-codes": {
            "get": {
                "tags": [
                    "User"
                ],
                "summary": "This endpoint can be used to get all DCA codes for the user.",
                "operationId": "get_app_v2_user_dcacode_list",
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "DCA codes retrieved successfully.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/DcaCodeResponse"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/api/v2/user/limit": {
            "get": {
                "tags": [
                    "User"
                ],
                "summary": "Fetches the user limits from Genesis and returns them.",
                "operationId": "get_app_v2_user_limit_getlimits",
                "parameters": [
                    {
                        "name": "groups",
                        "in": "query",
                        "description": "the Limits you want to receive.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "examples": {
                            "userLimits,accountLimits": {
                                "summary": "shows both the account and user limits. This value is also used when the query param is omitted.",
                                "value": "userLimits,accountLimits"
                            },
                            "userLimits": {
                                "summary": "only show the user limits",
                                "value": "userLimits"
                            },
                            "accountLimits": {
                                "summary": "only show the account limits",
                                "value": "accountLimits"
                            }
                        }
                    }
                ],
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER038",
                                                "ER700",
                                                "ER701",
                                                "ER702",
                                                "ER703",
                                                "ER704",
                                                "ER705",
                                                "ER706",
                                                "ER707",
                                                "ER709",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER038": {
                                            "code": "ER038",
                                            "message": "Bad credentials.",
                                            "solution": "Provide valid credentials."
                                        },
                                        "ER700": {
                                            "code": "ER700",
                                            "message": "User authorization token not found.",
                                            "solution": "Provide a user authorization token."
                                        },
                                        "ER701": {
                                            "code": "ER701",
                                            "message": "User authorization token has expired.",
                                            "solution": "Request a new authorization token, or refresh the token."
                                        },
                                        "ER702": {
                                            "code": "ER702",
                                            "message": "User authorization token is invalid.",
                                            "solution": "Provide a valid user authorization token."
                                        },
                                        "ER703": {
                                            "code": "ER703",
                                            "message": "User identifier does not belong to the user in the user authorization token.",
                                            "solution": "Provide a valid user identifier, or remove the user identifier header."
                                        },
                                        "ER704": {
                                            "code": "ER704",
                                            "message": "No user identifier found in headers.",
                                            "solution": "Provide a valid user identifier, or use the user/password authentication mechanism to request a user token and send that."
                                        },
                                        "ER705": {
                                            "code": "ER705",
                                            "message": "User identifier is not linked to a user.",
                                            "solution": "Provide a valid user identifier, link this user identifier to a user account, or use the user/password authentication mechanism."
                                        },
                                        "ER706": {
                                            "code": "ER706",
                                            "message": "User identifier is invalid.",
                                            "solution": "Provide a valid user identifier, a unique identifier string for the user account that is not already in use."
                                        },
                                        "ER707": {
                                            "code": "ER707",
                                            "message": "User identifier is invalid.",
                                            "solution": "Please provide an identifier, consisting of 36 - 255 characters, numeric or alphanumeric only."
                                        },
                                        "ER709": {
                                            "code": "ER709",
                                            "message": "User not found, or user has been deleted.",
                                            "solution": "Provide a valid user identifier."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Returns the limits of the user, and limits per account.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/LimitResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/api/v2/user/login-with-token": {
            "post": {
                "tags": [
                    "User"
                ],
                "summary": "This endpoint can be used to authenticate a user using a temporary token.",
                "operationId": "post_app_v2_user_login_login",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/LoginTokenRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "User logged in successfully.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/TokenResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    }
                ]
            }
        },
        "/api/v2/user": {
            "post": {
                "tags": [
                    "User"
                ],
                "summary": "This endpoint can be used to register a user.",
                "description": "Take note to send only valid website locales. See the list of supported locales in the model V1\\System\\WebsiteLocale below.",
                "operationId": "post_app_v2_user_user_register",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/RegistrationRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER001",
                                                "ER002",
                                                "ER003",
                                                "ER053",
                                                "ER059",
                                                "ER061",
                                                "ER062",
                                                "ER063",
                                                "ER064",
                                                "ER081",
                                                "ER083",
                                                "ER084",
                                                "ER085",
                                                "ER090",
                                                "ER102",
                                                "ER121",
                                                "ER122",
                                                "ER123",
                                                "ER125",
                                                "ER126",
                                                "ER127",
                                                "ER181",
                                                "ER182",
                                                "ER183",
                                                "ER184",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER001": {
                                            "code": "ER001",
                                            "message": "Email address is invalid.",
                                            "solution": "Provide a valid email address."
                                        },
                                        "ER002": {
                                            "code": "ER002",
                                            "message": "Email address already registered.",
                                            "solution": "Tell the user to log in to their existing account, or provide a link to the 'forgot password' procedure."
                                        },
                                        "ER003": {
                                            "code": "ER003",
                                            "message": "No email address provided.",
                                            "solution": "Provide a valid email address."
                                        },
                                        "ER053": {
                                            "code": "ER053",
                                            "message": "Missing identifier.",
                                            "solution": "Provide a valid identifier."
                                        },
                                        "ER059": {
                                            "code": "ER059",
                                            "message": "Invalid phone number provided.",
                                            "solution": "Provide a valid phone number."
                                        },
                                        "ER061": {
                                            "code": "ER061",
                                            "message": "Invalid ISO 3166-1 alpha-2 country code provided.",
                                            "solution": "Provide a valid ISO 3166-1 alpha-2 country code."
                                        },
                                        "ER062": {
                                            "code": "ER062",
                                            "message": "No country code provided.",
                                            "solution": "Provide a valid country code."
                                        },
                                        "ER063": {
                                            "code": "ER063",
                                            "message": "Invalid country code provided.",
                                            "solution": "Provide a valid country code."
                                        },
                                        "ER064": {
                                            "code": "ER064",
                                            "message": "Invalid business country code provided.",
                                            "solution": "Provide a valid business country code."
                                        },
                                        "ER081": {
                                            "code": "ER081",
                                            "message": "Invalid website language provided.",
                                            "solution": "Provide a valid website language."
                                        },
                                        "ER083": {
                                            "code": "ER083",
                                            "message": "Invalid website country provided.",
                                            "solution": "Provide a valid website country."
                                        },
                                        "ER084": {
                                            "code": "ER084",
                                            "message": "Invalid website language/country combination provided.",
                                            "solution": "Provide a valid website language/country combination."
                                        },
                                        "ER085": {
                                            "code": "ER085",
                                            "message": "User is not 18 years old yet.",
                                            "solution": "Users need to be 18 years or older to be able to register via the API."
                                        },
                                        "ER090": {
                                            "code": "ER090",
                                            "message": "Invalid email verification code.",
                                            "solution": "Provide a valid email verification code."
                                        },
                                        "ER102": {
                                            "code": "ER102",
                                            "message": "User identifier length out of bounds.",
                                            "solution": "Provide a user identifier with a minimum of 36 characters and a maximum of 255."
                                        },
                                        "ER121": {
                                            "code": "ER121",
                                            "message": "Invalid Chamber of Commerce number provided.",
                                            "solution": "Provide a valid, Chamber of Commerce number."
                                        },
                                        "ER122": {
                                            "code": "ER122",
                                            "message": "Invalid password length",
                                            "solution": "Your password should be at least 8 characters in length."
                                        },
                                        "ER123": {
                                            "code": "ER123",
                                            "message": "Invalid password length",
                                            "solution": "Your password can't have more than 64 characters."
                                        },
                                        "ER125": {
                                            "code": "ER125",
                                            "message": "Invalid business name.",
                                            "solution": "Remove any emoji, < or > characters from the business name."
                                        },
                                        "ER126": {
                                            "code": "ER126",
                                            "message": "Invalid first name.",
                                            "solution": "Remove any emoji, < or > characters from the first name."
                                        },
                                        "ER127": {
                                            "code": "ER127",
                                            "message": "Invalid last name.",
                                            "solution": "Remove any emoji, < or > characters from the last name."
                                        },
                                        "ER181": {
                                            "code": "ER181",
                                            "message": "Invalid residential address provided.",
                                            "solution": "Provide a valid residential address."
                                        },
                                        "ER182": {
                                            "code": "ER182",
                                            "message": "Invalid residential address number provided.",
                                            "solution": "Provide a valid residential address number."
                                        },
                                        "ER183": {
                                            "code": "ER183",
                                            "message": "Invalid residential city provided.",
                                            "solution": "Provide a valid residential city."
                                        },
                                        "ER184": {
                                            "code": "ER184",
                                            "message": "Invalid residential postcal code provided.",
                                            "solution": "Provide a valid residential postcal code."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "User information updated successfully.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/UserInfoResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    }
                ]
            },
            "patch": {
                "tags": [
                    "User"
                ],
                "summary": "This endpoint can be used to update an existing user.",
                "description": "Take note to send only valid website locales. See the list of supported locales in the model V1\\System\\WebsiteLocale below.",
                "operationId": "patch_app_v2_user_user_patch",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/PatchRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER001",
                                                "ER003",
                                                "ER053",
                                                "ER059",
                                                "ER061",
                                                "ER062",
                                                "ER063",
                                                "ER064",
                                                "ER081",
                                                "ER083",
                                                "ER085",
                                                "ER090",
                                                "ER102",
                                                "ER121",
                                                "ER122",
                                                "ER123",
                                                "ER125",
                                                "ER126",
                                                "ER127",
                                                "ER181",
                                                "ER182",
                                                "ER183",
                                                "ER184",
                                                "ER700",
                                                "ER701",
                                                "ER702",
                                                "ER703",
                                                "ER704",
                                                "ER705",
                                                "ER706",
                                                "ER707",
                                                "ER708",
                                                "ER709",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER001": {
                                            "code": "ER001",
                                            "message": "Email address is invalid.",
                                            "solution": "Provide a valid email address."
                                        },
                                        "ER003": {
                                            "code": "ER003",
                                            "message": "No email address provided.",
                                            "solution": "Provide a valid email address."
                                        },
                                        "ER053": {
                                            "code": "ER053",
                                            "message": "Missing identifier.",
                                            "solution": "Provide a valid identifier."
                                        },
                                        "ER059": {
                                            "code": "ER059",
                                            "message": "Invalid phone number provided.",
                                            "solution": "Provide a valid phone number."
                                        },
                                        "ER061": {
                                            "code": "ER061",
                                            "message": "Invalid ISO 3166-1 alpha-2 country code provided.",
                                            "solution": "Provide a valid ISO 3166-1 alpha-2 country code."
                                        },
                                        "ER062": {
                                            "code": "ER062",
                                            "message": "No country code provided.",
                                            "solution": "Provide a valid country code."
                                        },
                                        "ER063": {
                                            "code": "ER063",
                                            "message": "Invalid country code provided.",
                                            "solution": "Provide a valid country code."
                                        },
                                        "ER064": {
                                            "code": "ER064",
                                            "message": "Invalid business country code provided.",
                                            "solution": "Provide a valid business country code."
                                        },
                                        "ER081": {
                                            "code": "ER081",
                                            "message": "Invalid website language provided.",
                                            "solution": "Provide a valid website language."
                                        },
                                        "ER083": {
                                            "code": "ER083",
                                            "message": "Invalid website country provided.",
                                            "solution": "Provide a valid website country."
                                        },
                                        "ER085": {
                                            "code": "ER085",
                                            "message": "User is not 18 years old yet.",
                                            "solution": "Users need to be 18 years or older to be able to register via the API."
                                        },
                                        "ER090": {
                                            "code": "ER090",
                                            "message": "Invalid email verification code.",
                                            "solution": "Provide a valid email verification code."
                                        },
                                        "ER102": {
                                            "code": "ER102",
                                            "message": "User identifier length out of bounds.",
                                            "solution": "Provide a user identifier with a minimum of 36 characters and a maximum of 255."
                                        },
                                        "ER121": {
                                            "code": "ER121",
                                            "message": "Invalid Chamber of Commerce number provided.",
                                            "solution": "Provide a valid, Chamber of Commerce number."
                                        },
                                        "ER122": {
                                            "code": "ER122",
                                            "message": "Invalid password length",
                                            "solution": "Your password should be at least 8 characters in length."
                                        },
                                        "ER123": {
                                            "code": "ER123",
                                            "message": "Invalid password length",
                                            "solution": "Your password can't have more than 64 characters."
                                        },
                                        "ER125": {
                                            "code": "ER125",
                                            "message": "Invalid business name.",
                                            "solution": "Remove any emoji, < or > characters from the business name."
                                        },
                                        "ER126": {
                                            "code": "ER126",
                                            "message": "Invalid first name.",
                                            "solution": "Remove any emoji, < or > characters from the first name."
                                        },
                                        "ER127": {
                                            "code": "ER127",
                                            "message": "Invalid last name.",
                                            "solution": "Remove any emoji, < or > characters from the last name."
                                        },
                                        "ER181": {
                                            "code": "ER181",
                                            "message": "Invalid residential address provided.",
                                            "solution": "Provide a valid residential address."
                                        },
                                        "ER182": {
                                            "code": "ER182",
                                            "message": "Invalid residential address number provided.",
                                            "solution": "Provide a valid residential address number."
                                        },
                                        "ER183": {
                                            "code": "ER183",
                                            "message": "Invalid residential city provided.",
                                            "solution": "Provide a valid residential city."
                                        },
                                        "ER184": {
                                            "code": "ER184",
                                            "message": "Invalid residential postcal code provided.",
                                            "solution": "Provide a valid residential postcal code."
                                        },
                                        "ER700": {
                                            "code": "ER700",
                                            "message": "User authorization token not found.",
                                            "solution": "Provide a user authorization token."
                                        },
                                        "ER701": {
                                            "code": "ER701",
                                            "message": "User authorization token has expired.",
                                            "solution": "Request a new authorization token, or refresh the token."
                                        },
                                        "ER702": {
                                            "code": "ER702",
                                            "message": "User authorization token is invalid.",
                                            "solution": "Provide a valid user authorization token."
                                        },
                                        "ER703": {
                                            "code": "ER703",
                                            "message": "User identifier does not belong to the user in the user authorization token.",
                                            "solution": "Provide a valid user identifier, or remove the user identifier header."
                                        },
                                        "ER704": {
                                            "code": "ER704",
                                            "message": "No user identifier found in headers.",
                                            "solution": "Provide a valid user identifier, or use the user/password authentication mechanism to request a user token and send that."
                                        },
                                        "ER705": {
                                            "code": "ER705",
                                            "message": "User identifier is not linked to a user.",
                                            "solution": "Provide a valid user identifier, link this user identifier to a user account, or use the user/password authentication mechanism."
                                        },
                                        "ER706": {
                                            "code": "ER706",
                                            "message": "User identifier is invalid.",
                                            "solution": "Provide a valid user identifier, a unique identifier string for the user account that is not already in use."
                                        },
                                        "ER707": {
                                            "code": "ER707",
                                            "message": "User identifier is invalid.",
                                            "solution": "Please provide an identifier, consisting of 36 - 255 characters, numeric or alphanumeric only."
                                        },
                                        "ER708": {
                                            "code": "ER708",
                                            "message": "There is a pending document for this side.",
                                            "solution": "Wait for the pending document to be reviewed."
                                        },
                                        "ER709": {
                                            "code": "ER709",
                                            "message": "User not found, or user has been deleted.",
                                            "solution": "Provide a valid user identifier."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "User information updated successfully.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/UserInfoResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/api/v2/user/verification-status": {
            "get": {
                "tags": [
                    "User"
                ],
                "summary": "This endpoint can be used to retrieve the verification status of an existing user.",
                "description": "If the result is an empty array, the user is fully verified.",
                "operationId": "get_app_v2_user_user_verificationstatus",
                "parameters": [
                    {
                        "name": "level",
                        "in": "query",
                        "description": "The verification level whose requirements to return.",
                        "required": false,
                        "schema": {
                            "description": "The verification level whose requirements to return.",
                            "type": "string",
                            "default": null,
                            "enum": [
                                "newbie",
                                "verified",
                                "hero",
                                "satoshi",
                                "trader",
                                "bronze",
                                "silver",
                                "gold"
                            ],
                            "nullable": true
                        }
                    }
                ],
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER404",
                                                "ER700",
                                                "ER701",
                                                "ER702",
                                                "ER703",
                                                "ER704",
                                                "ER705",
                                                "ER706",
                                                "ER707",
                                                "ER708",
                                                "ER709",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER404": {
                                            "code": "ER404",
                                            "message": "Invalid user verification level provided.",
                                            "solution": "Provide a valid user verification level (bronze, silver, or gold)."
                                        },
                                        "ER700": {
                                            "code": "ER700",
                                            "message": "User authorization token not found.",
                                            "solution": "Provide a user authorization token."
                                        },
                                        "ER701": {
                                            "code": "ER701",
                                            "message": "User authorization token has expired.",
                                            "solution": "Request a new authorization token, or refresh the token."
                                        },
                                        "ER702": {
                                            "code": "ER702",
                                            "message": "User authorization token is invalid.",
                                            "solution": "Provide a valid user authorization token."
                                        },
                                        "ER703": {
                                            "code": "ER703",
                                            "message": "User identifier does not belong to the user in the user authorization token.",
                                            "solution": "Provide a valid user identifier, or remove the user identifier header."
                                        },
                                        "ER704": {
                                            "code": "ER704",
                                            "message": "No user identifier found in headers.",
                                            "solution": "Provide a valid user identifier, or use the user/password authentication mechanism to request a user token and send that."
                                        },
                                        "ER705": {
                                            "code": "ER705",
                                            "message": "User identifier is not linked to a user.",
                                            "solution": "Provide a valid user identifier, link this user identifier to a user account, or use the user/password authentication mechanism."
                                        },
                                        "ER706": {
                                            "code": "ER706",
                                            "message": "User identifier is invalid.",
                                            "solution": "Provide a valid user identifier, a unique identifier string for the user account that is not already in use."
                                        },
                                        "ER707": {
                                            "code": "ER707",
                                            "message": "User identifier is invalid.",
                                            "solution": "Please provide an identifier, consisting of 36 - 255 characters, numeric or alphanumeric only."
                                        },
                                        "ER708": {
                                            "code": "ER708",
                                            "message": "There is a pending document for this side.",
                                            "solution": "Wait for the pending document to be reviewed."
                                        },
                                        "ER709": {
                                            "code": "ER709",
                                            "message": "User not found, or user has been deleted.",
                                            "solution": "Provide a valid user identifier."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "User verification status returned successfully.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/Status2"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/api/v2/user/upgrade": {
            "post": {
                "tags": [
                    "User"
                ],
                "summary": "Initiates a verification upgrade for the authenticated user. The response envelope mirrors\nGET /api/v2/buy/{id}/identification/liveness \u2014 `name`, `type`, `status`, `data` \u2014 and adds\n`currentLevel` and `nextLevel`. `data` carries the provider-specific payload the WebSDK needs\n(e.g. an `accessToken` for SumSub).",
                "operationId": "post_app_v2_user_user_upgrade",
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER700",
                                                "ER701",
                                                "ER702",
                                                "ER703",
                                                "ER704",
                                                "ER705",
                                                "ER706",
                                                "ER707",
                                                "ER708",
                                                "ER709",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER700": {
                                            "code": "ER700",
                                            "message": "User authorization token not found.",
                                            "solution": "Provide a user authorization token."
                                        },
                                        "ER701": {
                                            "code": "ER701",
                                            "message": "User authorization token has expired.",
                                            "solution": "Request a new authorization token, or refresh the token."
                                        },
                                        "ER702": {
                                            "code": "ER702",
                                            "message": "User authorization token is invalid.",
                                            "solution": "Provide a valid user authorization token."
                                        },
                                        "ER703": {
                                            "code": "ER703",
                                            "message": "User identifier does not belong to the user in the user authorization token.",
                                            "solution": "Provide a valid user identifier, or remove the user identifier header."
                                        },
                                        "ER704": {
                                            "code": "ER704",
                                            "message": "No user identifier found in headers.",
                                            "solution": "Provide a valid user identifier, or use the user/password authentication mechanism to request a user token and send that."
                                        },
                                        "ER705": {
                                            "code": "ER705",
                                            "message": "User identifier is not linked to a user.",
                                            "solution": "Provide a valid user identifier, link this user identifier to a user account, or use the user/password authentication mechanism."
                                        },
                                        "ER706": {
                                            "code": "ER706",
                                            "message": "User identifier is invalid.",
                                            "solution": "Provide a valid user identifier, a unique identifier string for the user account that is not already in use."
                                        },
                                        "ER707": {
                                            "code": "ER707",
                                            "message": "User identifier is invalid.",
                                            "solution": "Please provide an identifier, consisting of 36 - 255 characters, numeric or alphanumeric only."
                                        },
                                        "ER708": {
                                            "code": "ER708",
                                            "message": "There is a pending document for this side.",
                                            "solution": "Wait for the pending document to be reviewed."
                                        },
                                        "ER709": {
                                            "code": "ER709",
                                            "message": "User not found, or user has been deleted.",
                                            "solution": "Provide a valid user identifier."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "200": {
                        "description": "Upgrade flow initiated; returns the provider payload the WebSDK needs.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/UpgradeResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/api/v2/user/wallet-address-book": {
            "post": {
                "tags": [
                    "User"
                ],
                "summary": "This endpoint can be used to add a wallet address to the user's address book.",
                "operationId": "post_app_v2_user_walletaddressbook_addwalletaddresstoaddressbook",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/AddWalletAddressBookRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER014",
                                                "ER015",
                                                "ER044",
                                                "ER109",
                                                "ER114",
                                                "ER325",
                                                "ER357",
                                                "ER700",
                                                "ER701",
                                                "ER702",
                                                "ER703",
                                                "ER704",
                                                "ER705",
                                                "ER706",
                                                "ER707",
                                                "ER708",
                                                "ER709",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER014": {
                                            "code": "ER014",
                                            "message": "Invalid wallet address.",
                                            "solution": "Provide a valid wallet address for the selected currency pair."
                                        },
                                        "ER015": {
                                            "code": "ER015",
                                            "message": "Invalid destination tag.",
                                            "solution": "Provide a valid destination tag."
                                        },
                                        "ER044": {
                                            "code": "ER044",
                                            "message": "Destination tag not supported for this currency pair.",
                                            "solution": "Leave the destination tag empty."
                                        },
                                        "ER109": {
                                            "code": "ER109",
                                            "message": "No currency provided.",
                                            "solution": "Provide a supported currency."
                                        },
                                        "ER114": {
                                            "code": "ER114",
                                            "message": "Unsupported currency provided.",
                                            "solution": "Provide a supported currency."
                                        },
                                        "ER325": {
                                            "code": "ER325",
                                            "message": "Wallet address is required",
                                            "solution": "Please provide a valid wallet address."
                                        },
                                        "ER357": {
                                            "code": "ER357",
                                            "message": "Wallet address name is required and should be a string.",
                                            "solution": "Please provide a valid wallet address name."
                                        },
                                        "ER700": {
                                            "code": "ER700",
                                            "message": "User authorization token not found.",
                                            "solution": "Provide a user authorization token."
                                        },
                                        "ER701": {
                                            "code": "ER701",
                                            "message": "User authorization token has expired.",
                                            "solution": "Request a new authorization token, or refresh the token."
                                        },
                                        "ER702": {
                                            "code": "ER702",
                                            "message": "User authorization token is invalid.",
                                            "solution": "Provide a valid user authorization token."
                                        },
                                        "ER703": {
                                            "code": "ER703",
                                            "message": "User identifier does not belong to the user in the user authorization token.",
                                            "solution": "Provide a valid user identifier, or remove the user identifier header."
                                        },
                                        "ER704": {
                                            "code": "ER704",
                                            "message": "No user identifier found in headers.",
                                            "solution": "Provide a valid user identifier, or use the user/password authentication mechanism to request a user token and send that."
                                        },
                                        "ER705": {
                                            "code": "ER705",
                                            "message": "User identifier is not linked to a user.",
                                            "solution": "Provide a valid user identifier, link this user identifier to a user account, or use the user/password authentication mechanism."
                                        },
                                        "ER706": {
                                            "code": "ER706",
                                            "message": "User identifier is invalid.",
                                            "solution": "Provide a valid user identifier, a unique identifier string for the user account that is not already in use."
                                        },
                                        "ER707": {
                                            "code": "ER707",
                                            "message": "User identifier is invalid.",
                                            "solution": "Please provide an identifier, consisting of 36 - 255 characters, numeric or alphanumeric only."
                                        },
                                        "ER708": {
                                            "code": "ER708",
                                            "message": "There is a pending document for this side.",
                                            "solution": "Wait for the pending document to be reviewed."
                                        },
                                        "ER709": {
                                            "code": "ER709",
                                            "message": "User not found, or user has been deleted.",
                                            "solution": "Provide a valid user identifier."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "201": {
                        "description": "Successfully added wallet address to user's address book."
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/api/v2/user/wallet-address-book/{id}": {
            "delete": {
                "tags": [
                    "User"
                ],
                "summary": "This endpoint can be used to remove a wallet address from the user's address book.",
                "operationId": "delete_app_v2_user_walletaddressbook_deletewalletaddressfromaddressbook",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the wallet address.",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 189632
                    }
                ],
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER358",
                                                "ER700",
                                                "ER701",
                                                "ER702",
                                                "ER703",
                                                "ER704",
                                                "ER705",
                                                "ER706",
                                                "ER707",
                                                "ER708",
                                                "ER709",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER358": {
                                            "code": "ER358",
                                            "message": "Wallet address id is invalid.",
                                            "solution": "Please provide a valid wallet address id."
                                        },
                                        "ER700": {
                                            "code": "ER700",
                                            "message": "User authorization token not found.",
                                            "solution": "Provide a user authorization token."
                                        },
                                        "ER701": {
                                            "code": "ER701",
                                            "message": "User authorization token has expired.",
                                            "solution": "Request a new authorization token, or refresh the token."
                                        },
                                        "ER702": {
                                            "code": "ER702",
                                            "message": "User authorization token is invalid.",
                                            "solution": "Provide a valid user authorization token."
                                        },
                                        "ER703": {
                                            "code": "ER703",
                                            "message": "User identifier does not belong to the user in the user authorization token.",
                                            "solution": "Provide a valid user identifier, or remove the user identifier header."
                                        },
                                        "ER704": {
                                            "code": "ER704",
                                            "message": "No user identifier found in headers.",
                                            "solution": "Provide a valid user identifier, or use the user/password authentication mechanism to request a user token and send that."
                                        },
                                        "ER705": {
                                            "code": "ER705",
                                            "message": "User identifier is not linked to a user.",
                                            "solution": "Provide a valid user identifier, link this user identifier to a user account, or use the user/password authentication mechanism."
                                        },
                                        "ER706": {
                                            "code": "ER706",
                                            "message": "User identifier is invalid.",
                                            "solution": "Provide a valid user identifier, a unique identifier string for the user account that is not already in use."
                                        },
                                        "ER707": {
                                            "code": "ER707",
                                            "message": "User identifier is invalid.",
                                            "solution": "Please provide an identifier, consisting of 36 - 255 characters, numeric or alphanumeric only."
                                        },
                                        "ER708": {
                                            "code": "ER708",
                                            "message": "There is a pending document for this side.",
                                            "solution": "Wait for the pending document to be reviewed."
                                        },
                                        "ER709": {
                                            "code": "ER709",
                                            "message": "User not found, or user has been deleted.",
                                            "solution": "Provide a valid user identifier."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "204": {
                        "description": "Successfully removed wallet address from user's address book."
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            },
            "patch": {
                "tags": [
                    "User"
                ],
                "summary": "This endpoint can be used to update the name of a wallet address in the user's address book.",
                "operationId": "patch_app_v2_user_walletaddressbook_changewalletaddressnameinaddressbook",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "description": "The id of the wallet address.",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "example": 189632
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/RenameWalletAddressInAddressBookRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER357",
                                                "ER358",
                                                "ER700",
                                                "ER701",
                                                "ER702",
                                                "ER703",
                                                "ER704",
                                                "ER705",
                                                "ER706",
                                                "ER707",
                                                "ER708",
                                                "ER709",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER357": {
                                            "code": "ER357",
                                            "message": "Wallet address name is required and should be a string.",
                                            "solution": "Please provide a valid wallet address name."
                                        },
                                        "ER358": {
                                            "code": "ER358",
                                            "message": "Wallet address id is invalid.",
                                            "solution": "Please provide a valid wallet address id."
                                        },
                                        "ER700": {
                                            "code": "ER700",
                                            "message": "User authorization token not found.",
                                            "solution": "Provide a user authorization token."
                                        },
                                        "ER701": {
                                            "code": "ER701",
                                            "message": "User authorization token has expired.",
                                            "solution": "Request a new authorization token, or refresh the token."
                                        },
                                        "ER702": {
                                            "code": "ER702",
                                            "message": "User authorization token is invalid.",
                                            "solution": "Provide a valid user authorization token."
                                        },
                                        "ER703": {
                                            "code": "ER703",
                                            "message": "User identifier does not belong to the user in the user authorization token.",
                                            "solution": "Provide a valid user identifier, or remove the user identifier header."
                                        },
                                        "ER704": {
                                            "code": "ER704",
                                            "message": "No user identifier found in headers.",
                                            "solution": "Provide a valid user identifier, or use the user/password authentication mechanism to request a user token and send that."
                                        },
                                        "ER705": {
                                            "code": "ER705",
                                            "message": "User identifier is not linked to a user.",
                                            "solution": "Provide a valid user identifier, link this user identifier to a user account, or use the user/password authentication mechanism."
                                        },
                                        "ER706": {
                                            "code": "ER706",
                                            "message": "User identifier is invalid.",
                                            "solution": "Provide a valid user identifier, a unique identifier string for the user account that is not already in use."
                                        },
                                        "ER707": {
                                            "code": "ER707",
                                            "message": "User identifier is invalid.",
                                            "solution": "Please provide an identifier, consisting of 36 - 255 characters, numeric or alphanumeric only."
                                        },
                                        "ER708": {
                                            "code": "ER708",
                                            "message": "There is a pending document for this side.",
                                            "solution": "Wait for the pending document to be reviewed."
                                        },
                                        "ER709": {
                                            "code": "ER709",
                                            "message": "User not found, or user has been deleted.",
                                            "solution": "Provide a valid user identifier."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "204": {
                        "description": "Successfully changed wallet address name in user's address book."
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/api/v2/user/wallet-address": {
            "get": {
                "tags": [
                    "User"
                ],
                "operationId": "get_app_v2_user_walletaddress_getwalletaddress",
                "parameters": [
                    {
                        "name": "address",
                        "in": "query",
                        "description": "The wallet address to query.",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "example": "3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5"
                    },
                    {
                        "name": "destinationTag",
                        "in": "query",
                        "description": "The destination tag or memo to query.",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "example": "12345"
                    },
                    {
                        "name": "destination_tag",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string",
                            "default": null,
                            "nullable": true
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Returns the user's wallet address book.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/UserWalletAddress"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "User wallet address book not found."
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/api/v2/user/wallet-address/{id}": {
            "patch": {
                "tags": [
                    "User"
                ],
                "summary": "This endpoint can be used to set the wallet type.",
                "operationId": "patch_app_v2_user_walletaddress_updatewalletaddress",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string",
                            "pattern": "\\d+"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "description": "Update the wallet type, will be ignored if previously set.",
                                "properties": {
                                    "type": {
                                        "description": "The wallet type to set.",
                                        "type": "string",
                                        "enum": [
                                            "vasp",
                                            "unhosted"
                                        ],
                                        "example": "unhosted"
                                    }
                                },
                                "type": "object"
                            },
                            "example": {
                                "type": "unhosted"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER358",
                                                "ER395",
                                                "ER700",
                                                "ER701",
                                                "ER702",
                                                "ER703",
                                                "ER704",
                                                "ER705",
                                                "ER706",
                                                "ER707",
                                                "ER708",
                                                "ER709",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER358": {
                                            "code": "ER358",
                                            "message": "Wallet address id is invalid.",
                                            "solution": "Please provide a valid wallet address id."
                                        },
                                        "ER395": {
                                            "code": "ER395",
                                            "message": "Invalid wallet address type provided.",
                                            "solution": "Provide a valid wallet address type."
                                        },
                                        "ER700": {
                                            "code": "ER700",
                                            "message": "User authorization token not found.",
                                            "solution": "Provide a user authorization token."
                                        },
                                        "ER701": {
                                            "code": "ER701",
                                            "message": "User authorization token has expired.",
                                            "solution": "Request a new authorization token, or refresh the token."
                                        },
                                        "ER702": {
                                            "code": "ER702",
                                            "message": "User authorization token is invalid.",
                                            "solution": "Provide a valid user authorization token."
                                        },
                                        "ER703": {
                                            "code": "ER703",
                                            "message": "User identifier does not belong to the user in the user authorization token.",
                                            "solution": "Provide a valid user identifier, or remove the user identifier header."
                                        },
                                        "ER704": {
                                            "code": "ER704",
                                            "message": "No user identifier found in headers.",
                                            "solution": "Provide a valid user identifier, or use the user/password authentication mechanism to request a user token and send that."
                                        },
                                        "ER705": {
                                            "code": "ER705",
                                            "message": "User identifier is not linked to a user.",
                                            "solution": "Provide a valid user identifier, link this user identifier to a user account, or use the user/password authentication mechanism."
                                        },
                                        "ER706": {
                                            "code": "ER706",
                                            "message": "User identifier is invalid.",
                                            "solution": "Provide a valid user identifier, a unique identifier string for the user account that is not already in use."
                                        },
                                        "ER707": {
                                            "code": "ER707",
                                            "message": "User identifier is invalid.",
                                            "solution": "Please provide an identifier, consisting of 36 - 255 characters, numeric or alphanumeric only."
                                        },
                                        "ER708": {
                                            "code": "ER708",
                                            "message": "There is a pending document for this side.",
                                            "solution": "Wait for the pending document to be reviewed."
                                        },
                                        "ER709": {
                                            "code": "ER709",
                                            "message": "User not found, or user has been deleted.",
                                            "solution": "Provide a valid user identifier."
                                        },
                                        "ER800": {
                                            "code": "ER800",
                                            "message": "Authorization token is invalid.",
                                            "solution": "Provide a valid authorization token."
                                        },
                                        "ER801": {
                                            "code": "ER801",
                                            "message": "Authorization token has expired.",
                                            "solution": "Request a new authorization token."
                                        },
                                        "ER802": {
                                            "code": "ER802",
                                            "message": "Authorization token not found.",
                                            "solution": "Provide an authorization token."
                                        },
                                        "ER803": {
                                            "code": "ER803",
                                            "message": "Multiple authorization methods used.",
                                            "solution": "Use exactly one authorization method."
                                        },
                                        "ER805": {
                                            "code": "ER805",
                                            "message": "API key is invalid.",
                                            "solution": "Provide a valid API key."
                                        },
                                        "ER806": {
                                            "code": "ER806",
                                            "message": "API key not found.",
                                            "solution": "Provide an API key."
                                        },
                                        "ER999": {
                                            "code": "ER999",
                                            "message": "A general error has occurred. Please contact our support team.",
                                            "solution": "Contact our support team."
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "204": {
                        "description": "Returns the user's wallet address book.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/UserWalletAddress"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        }
    },
    "components": {
        "schemas": {
            "PricesRequest": {
                "title": "Prices request",
                "description": "Price request model",
                "type": "string"
            },
            "CreatePaypalAccountRequest": {
                "required": [
                    "access_token"
                ],
                "properties": {
                    "access_token": {
                        "description": "The access token obtained from PayPal to verify the user account.",
                        "type": "string",
                        "default": null,
                        "example": "foobarbaz",
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "CreateCardAccountRequest": {
                "required": [
                    "sessionIdentifier",
                    "cardHolderName",
                    "currencyCode"
                ],
                "properties": {
                    "sessionIdentifier": {
                        "description": "The Worldpay session identifier from the card collection session.",
                        "type": "string",
                        "default": null,
                        "example": "eyJhbGciOiJSUzI1NiJ9",
                        "nullable": true
                    },
                    "cardHolderName": {
                        "description": "The name of the card holder as it appears on the card.",
                        "type": "string",
                        "default": null,
                        "example": "John Doe",
                        "nullable": true
                    },
                    "currencyCode": {
                        "description": "The ISO 4217 currency code.",
                        "type": "string",
                        "default": null,
                        "example": "EUR",
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "VerificationStatusQuery": {
                "properties": {
                    "level": {
                        "description": "The verification level whose requirements to return.",
                        "type": "string",
                        "default": null,
                        "enum": [
                            "newbie",
                            "verified",
                            "hero",
                            "satoshi",
                            "trader",
                            "bronze",
                            "silver",
                            "gold"
                        ],
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "WalletAddressQuery": {
                "properties": {
                    "address": {
                        "type": "string"
                    },
                    "destination_tag": {
                        "type": "string",
                        "default": null,
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "CheckoutRequest": {
                "required": [
                    "paymentMethod"
                ],
                "properties": {
                    "baseCurrency": {
                        "description": "Base currency",
                        "type": "string",
                        "default": "BTC",
                        "example": "ETH"
                    },
                    "quoteCurrency": {
                        "description": "Quote currency",
                        "type": "string",
                        "default": "EUR",
                        "example": "EUR"
                    },
                    "paymentMethod": {
                        "description": "Payment method",
                        "type": "string",
                        "default": "creditCard",
                        "example": "iDeal"
                    },
                    "baseCurrencyAmount": {
                        "description": "BaseCurrency amount, must be null if quoteCurrencyAmount is filled.",
                        "type": "number",
                        "format": "float",
                        "default": null,
                        "example": 0.1,
                        "nullable": true
                    },
                    "quoteCurrencyAmount": {
                        "description": "QuoteCurrency amount, must be null if baseCurrencyAmount is filled.",
                        "type": "number",
                        "format": "float",
                        "default": 100,
                        "example": 0.1,
                        "nullable": true
                    },
                    "returnUrl": {
                        "description": "URL to which the user will be redirected after they pay for the order.",
                        "type": "string",
                        "default": null,
                        "example": "https://example.com/return",
                        "nullable": true
                    },
                    "callbackUrl": {
                        "description": "URL to receive callbacks on.",
                        "type": "string",
                        "default": null,
                        "example": "https://example.com/callback",
                        "nullable": true
                    },
                    "partnerOrderIdentifier": {
                        "description": "Identifier that can be used to link to the order in your system.",
                        "type": "string",
                        "default": null,
                        "example": "123456789",
                        "nullable": true
                    },
                    "identifier": {
                        "description": "User identifier to link with a BTC Direct account. Eliminates the need for a separate register-identifier call. Must be 36-255 characters.",
                        "type": "string",
                        "default": null,
                        "maxLength": 255,
                        "minLength": 36,
                        "example": "partner-unique-user-id-at-least-36-characters-long",
                        "nullable": true
                    },
                    "walletAddress": {
                        "description": "Wallet address to which the coins will be sent, omit to let the user decide.",
                        "type": "string",
                        "default": null,
                        "example": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
                        "nullable": true
                    },
                    "walletAddressTag": {
                        "description": "Wallet address tag",
                        "type": "string",
                        "default": null,
                        "example": "123456789",
                        "nullable": true
                    },
                    "expireTime": {
                        "description": "Checkout session expiry in seconds. Omit or pass null to use the default.",
                        "type": "integer",
                        "default": null,
                        "maximum": 86400,
                        "minimum": 3600,
                        "example": 3600,
                        "nullable": true
                    },
                    "fixedAmount": {
                        "description": "Make the amount fixed, customers won't be able to change the amount.",
                        "type": "boolean",
                        "default": false,
                        "enum": [
                            true,
                            false,
                            1,
                            0
                        ],
                        "example": true
                    },
                    "fixedCurrency": {
                        "description": "Make the currency fixed, customers won't be able to change the currency.",
                        "type": "boolean",
                        "default": false,
                        "enum": [
                            true,
                            false,
                            1,
                            0
                        ],
                        "example": true
                    },
                    "fixedPaymentMethod": {
                        "description": "Make the payment method fixed, customers won't be able to change the payment method.",
                        "type": "boolean",
                        "default": false,
                        "enum": [
                            true,
                            false,
                            1,
                            0
                        ],
                        "example": true
                    },
                    "showWalletAddress": {
                        "description": "Whether the wallet address is visible on the checkout page.",
                        "type": "boolean",
                        "default": true,
                        "enum": [
                            true,
                            false,
                            1,
                            0
                        ],
                        "example": true
                    },
                    "kycShareToken": {
                        "description": "Optional Sumsub KYC share token. When provided, the user's existing KYC data is imported at registration, reducing verification steps.",
                        "type": "string",
                        "default": null,
                        "example": null,
                        "nullable": true
                    },
                    "attemptDirectConfirm": {
                        "description": "When true and the user is logged in, skips the quote confirmation step and goes directly to order confirmation.",
                        "type": "boolean",
                        "default": false,
                        "enum": [
                            true,
                            false,
                            1,
                            0
                        ],
                        "example": true
                    },
                    "sourceCurrency": {
                        "description": "CAIP-19 identifier for the source currency. When provided together with targetCurrency, baseCurrency and quoteCurrency are derived from the registry.",
                        "type": "string",
                        "default": null,
                        "example": "swift:0/iso4217:EUR",
                        "nullable": true
                    },
                    "targetCurrency": {
                        "description": "CAIP-19 identifier for the target currency. When provided together with sourceCurrency, baseCurrency and quoteCurrency are derived from the registry.",
                        "type": "string",
                        "default": null,
                        "example": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/spl:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
                        "nullable": true
                    }
                },
                "type": "object",
                "oneOf": [
                    {
                        "title": "CAIP-19 currencies",
                        "required": [
                            "sourceCurrency",
                            "targetCurrency"
                        ]
                    },
                    {
                        "title": "Currency codes",
                        "required": [
                            "baseCurrency",
                            "quoteCurrency"
                        ]
                    }
                ]
            },
            "CheckoutResponse": {
                "properties": {
                    "checkoutUrl": {
                        "type": "string"
                    },
                    "baseCurrency": {
                        "type": "string"
                    },
                    "quoteCurrency": {
                        "type": "string"
                    },
                    "paymentMethod": {
                        "type": "string"
                    },
                    "returnUrl": {
                        "type": "string",
                        "default": null,
                        "nullable": true
                    },
                    "callbackUrl": {
                        "type": "string",
                        "default": null,
                        "nullable": true
                    },
                    "baseCurrencyAmount": {
                        "type": "number",
                        "default": null,
                        "nullable": true
                    },
                    "quoteCurrencyAmount": {
                        "type": "number",
                        "default": null,
                        "nullable": true
                    },
                    "partnerOrderIdentifier": {
                        "type": "string",
                        "default": null,
                        "nullable": true
                    },
                    "identifier": {
                        "description": "User identifier linked with a BTC Direct account.",
                        "type": "string",
                        "default": null,
                        "nullable": true
                    },
                    "walletAddress": {
                        "type": "string",
                        "default": null,
                        "nullable": true
                    },
                    "walletAddressTag": {
                        "type": "string",
                        "default": null,
                        "nullable": true
                    },
                    "expireTime": {
                        "type": "integer",
                        "default": null,
                        "nullable": true
                    },
                    "fixedAmount": {
                        "type": "boolean",
                        "default": false
                    },
                    "fixedCurrency": {
                        "type": "boolean",
                        "default": false
                    },
                    "fixedPaymentMethod": {
                        "type": "boolean",
                        "default": false
                    },
                    "showWalletAddress": {
                        "type": "boolean",
                        "default": true
                    },
                    "signature": {
                        "type": "string",
                        "default": null,
                        "nullable": true
                    },
                    "partner": {
                        "type": "string",
                        "default": null,
                        "nullable": true
                    },
                    "sourceCurrency": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/CurrencyModel"
                            }
                        ],
                        "nullable": true,
                        "description": "Source currency with optional CAIP-19 identifier.",
                        "default": null
                    },
                    "targetCurrency": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/CurrencyModel"
                            }
                        ],
                        "nullable": true,
                        "description": "Target currency with optional CAIP-19 identifier.",
                        "default": null
                    }
                },
                "type": "object"
            },
            "ConfirmRequest": {
                "required": [
                    "offerId",
                    "walletAddress",
                    "quote"
                ],
                "properties": {
                    "walletAddress": {
                        "description": "The wallet address we send the cryptos to after the payment is completed.",
                        "type": "string",
                        "example": "3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5"
                    },
                    "walletAddressTag": {
                        "description": "The destination tag where we send the cryptos to after the payment is completed.",
                        "type": "string",
                        "example": "104506660",
                        "nullable": true
                    },
                    "partnerOrderIdentifier": {
                        "description": "Unique identifier provided by the partner.",
                        "type": "string",
                        "example": "4ea2b5e9-a413-4359-a8f6-9263ae8a0ee7"
                    },
                    "quote": {
                        "description": "The quote generated by the sell/quote endpoint.",
                        "required": [
                            "true"
                        ],
                        "type": "string",
                        "example": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJlbmNyeXB0ZWQiOiJ0b2tlbiJ9.gj80-9FPf_Wl7CGg2eDEFHokoEVtXIT7l4F88ztgxnhGIuhjOrhZ6xZLT3vuJPKXam_jQskm1PuM7T0OQdawDw"
                    },
                    "offerId": {
                        "description": "the offer of the Uuid",
                        "required": [
                            "true"
                        ],
                        "type": "string",
                        "example": "28060342-758a-4fb5-b583-c28886a271ce"
                    },
                    "walletType": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/WalletType"
                            }
                        ],
                        "nullable": true,
                        "description": "The type of wallet to which the funds will be sent.",
                        "required": [
                            "false"
                        ],
                        "type": "string",
                        "example": "unhosted"
                    }
                },
                "type": "object"
            },
            "Confirmation": {
                "required": [
                    "orderId",
                    "paymentUrl"
                ],
                "properties": {
                    "orderId": {
                        "description": "The order id.",
                        "type": "integer",
                        "example": 1234
                    },
                    "paymentUrl": {
                        "description": "The URL the user should be redirected to, to complete their payment.",
                        "type": "string",
                        "example": "https://www.example.com/pay?id=1234"
                    },
                    "expiresAt": {
                        "description": "The expiry date-time that expires this confirmed quote. After this period it's no longer possible to pay for this order. The date does not apply for order that are paid through bank transfer.",
                        "type": "string",
                        "format": "date-time",
                        "default": null,
                        "example": "2025-04-07T18:30:00Z",
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "Status": {
                "required": [
                    "name",
                    "status"
                ],
                "properties": {
                    "name": {
                        "description": "Name of the identification status",
                        "type": "string"
                    },
                    "type": {
                        "description": "The type of the identification.",
                        "type": "string",
                        "nullable": true
                    },
                    "status": {
                        "description": "The current status of the specific identification status response.",
                        "type": "string"
                    },
                    "data": {
                        "description": "Additional data related to the specific identification status response.",
                        "type": "object",
                        "default": null,
                        "example": {
                            "accessToken": "fooToken"
                        },
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "CreateOfferRequest": {
                "required": [
                    "baseCurrency",
                    "quoteCurrency",
                    "paymentMethod"
                ],
                "properties": {
                    "sourceCurrency": {
                        "description": "CAIP-19 identifier for the source (fiat) currency. Alternative to quoteCurrency \u2014 when both sourceCurrency and targetCurrency are provided, quoteCurrency and baseCurrency are derived automatically.",
                        "type": "string",
                        "example": "swift:0/iso4217:EUR",
                        "nullable": true
                    },
                    "targetCurrency": {
                        "description": "CAIP-19 identifier for the target (crypto) currency. Alternative to baseCurrency \u2014 when both sourceCurrency and targetCurrency are provided, quoteCurrency and baseCurrency are derived automatically.",
                        "type": "string",
                        "example": "bip122:000000000019d6689c085ae165831e93/slip44:0",
                        "nullable": true
                    },
                    "baseCurrency": {
                        "description": "Base currency",
                        "type": "string",
                        "example": "ETH"
                    },
                    "quoteCurrency": {
                        "description": "Quote currency",
                        "type": "string",
                        "example": "EUR"
                    },
                    "paymentMethod": {
                        "description": "Payment method",
                        "type": "string",
                        "example": "iDeal"
                    },
                    "baseCurrencyAmount": {
                        "description": "BaseCurrency amount, must be null if quoteCurrencyAmount is filled.",
                        "type": "number",
                        "format": "float",
                        "example": 0.1,
                        "nullable": true
                    },
                    "quoteCurrencyAmount": {
                        "description": "QuoteCurrency amount, must be null if baseCurrencyAmount is filled.",
                        "type": "number",
                        "format": "float",
                        "example": 0.1,
                        "nullable": true
                    },
                    "returnUrl": {
                        "description": "URL to which the user will be redirected after they pay the order.",
                        "type": "string",
                        "default": null,
                        "example": "https://example.com/return",
                        "nullable": true
                    },
                    "callbackUrl": {
                        "description": "URL to receive callbacks on.",
                        "type": "string",
                        "default": null,
                        "example": "https://example.com/callback",
                        "nullable": true
                    },
                    "partnerOrderIdentifier": {
                        "description": "Identifier that can be used to link to the order in your system.",
                        "type": "string",
                        "default": null,
                        "example": "123456789",
                        "nullable": true
                    },
                    "walletAddress": {
                        "description": "Wallet address",
                        "type": "string",
                        "default": null,
                        "example": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
                        "nullable": true
                    },
                    "walletAddressTag": {
                        "description": "Wallet address tag",
                        "type": "string",
                        "default": null,
                        "example": "123456789",
                        "nullable": true
                    },
                    "expireTime": {
                        "description": "Offer expiry in seconds. Omit or pass null to use the default.",
                        "type": "integer",
                        "default": null,
                        "maximum": 86400,
                        "minimum": 3600,
                        "example": 3600,
                        "nullable": true
                    },
                    "fixedAmount": {
                        "description": "Make the amount fixed, customers won't be able to change the amount.",
                        "type": "boolean",
                        "default": null,
                        "enum": [
                            true,
                            false,
                            1,
                            0
                        ],
                        "example": true,
                        "nullable": true
                    },
                    "fixedCurrency": {
                        "description": "Make the currency fixed, customers won't be able to change the currency.",
                        "type": "boolean",
                        "default": null,
                        "enum": [
                            true,
                            false,
                            1,
                            0
                        ],
                        "example": true,
                        "nullable": true
                    },
                    "fixedPaymentMethod": {
                        "description": "Make the payment method fixed, customers won't be able to change the payment method.",
                        "type": "boolean",
                        "default": null,
                        "enum": [
                            true,
                            false,
                            1,
                            0
                        ],
                        "example": true,
                        "nullable": true
                    },
                    "showWalletAddress": {
                        "description": "Whether the wallet address is visible on the checkout page.",
                        "type": "boolean",
                        "default": null,
                        "enum": [
                            true,
                            false,
                            1,
                            0
                        ],
                        "example": true,
                        "nullable": true
                    },
                    "signature": {
                        "description": "Signature",
                        "type": "string",
                        "default": null,
                        "example": "afnsifuhwaensdkfnsdsir9324989r3ssd",
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "CreateOfferResponse": {
                "properties": {
                    "offerUuid": {
                        "type": "string"
                    },
                    "returnUrl": {
                        "type": "string"
                    },
                    "expiresAt": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "Order": {
                "required": [
                    "id",
                    "date",
                    "currencyPair",
                    "paymentMethod",
                    "walletAddress",
                    "status",
                    "isDcaOrder",
                    "isEstimatedQuote",
                    "fiatAmount",
                    "cryptoAmount",
                    "fees"
                ],
                "properties": {
                    "id": {
                        "description": "The order id.",
                        "type": "integer",
                        "example": 1
                    },
                    "date": {
                        "description": "The date and time of the order.",
                        "type": "string",
                        "format": "date-time",
                        "example": "2019-11-11T16:11:02Z"
                    },
                    "partnerOrderIdentifier": {
                        "description": "Unique identifier provided by the partner.",
                        "type": "string",
                        "example": "4ea2b5e9-a413-4359-a8f6-9263ae8a0ee7",
                        "nullable": true
                    },
                    "currencyPair": {
                        "description": "The currency pair of the order.",
                        "type": "string",
                        "example": "BTC-EUR"
                    },
                    "paymentMethod": {
                        "description": "The payment method used for the order.",
                        "type": "string",
                        "example": "iDeal"
                    },
                    "walletAddress": {
                        "description": "The address of the wallet.",
                        "type": "string",
                        "example": "test-wallet-happy-flow"
                    },
                    "destinationTag": {
                        "description": "The destination tag which should be used to send the coins. This depends on the coin type and can be a string or an integer. For XRP it is an integer, for other coins it is a string.",
                        "type": "string|integer",
                        "example": {
                            "default": "ABC1234",
                            "XRP": 12341
                        },
                        "nullable": true
                    },
                    "status": {
                        "description": "The current status of the order.",
                        "type": "string",
                        "example": "cancelled"
                    },
                    "isDcaOrder": {
                        "description": "The order was created because of a DCA deposit.",
                        "type": "boolean",
                        "example": false
                    },
                    "isEstimatedQuote": {
                        "description": "The order was created based on an estimated quote.",
                        "type": "boolean",
                        "example": false
                    },
                    "fiatAmount": {
                        "$ref": "#/components/schemas/FiatMoney"
                    },
                    "cryptoAmount": {
                        "$ref": "#/components/schemas/CryptoMoney"
                    },
                    "fees": {
                        "$ref": "#/components/schemas/Fees"
                    },
                    "blockchainInfo": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/BlockChainInfo"
                            }
                        ],
                        "nullable": true,
                        "description": "The blockchain information involved in this order."
                    },
                    "expiresAt": {
                        "description": "The expiry date-time that expires this confirmed quote. After this period it is no longer possible to pay for this order.",
                        "type": "string",
                        "format": "date-time",
                        "default": null,
                        "example": "2025-04-07T18:30:00Z",
                        "nullable": true
                    },
                    "sourceCurrency": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/CurrencyModel"
                            }
                        ],
                        "nullable": true,
                        "description": "The source currency (fiat) of the order, including optional CAIP-19 identifier.",
                        "default": null
                    },
                    "targetCurrency": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/CurrencyModel"
                            }
                        ],
                        "nullable": true,
                        "description": "The target currency (crypto) of the order, including optional CAIP-19 identifier.",
                        "default": null
                    }
                },
                "type": "object"
            },
            "PaymentMethodsResponse": {
                "properties": {
                    "paymentMethods": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/PaymentMethod"
                        }
                    }
                },
                "type": "object"
            },
            "ClientInfoResponse": {
                "required": [
                    "slug",
                    "displayName",
                    "walletVerificationRequired",
                    "myBtcRedirectsNewTab",
                    "usesEstimatedQuotes",
                    "canReturnUrlBeOpenedInBrowser",
                    "appendOrderInfoToReturnUrl",
                    "orderFailedActionUrl"
                ],
                "properties": {
                    "slug": {
                        "description": "The client slug.",
                        "type": "string",
                        "example": "btcdirect"
                    },
                    "displayName": {
                        "description": "The client display name.",
                        "type": "string",
                        "example": "BTC Direct europe BV."
                    },
                    "requiresWalletVerification": {
                        "description": "Whether the users have to do wallet verification when coming from this client.",
                        "type": "boolean",
                        "example": false
                    },
                    "myBtcRedirectsNewTab": {
                        "description": "Whether the myBtc redirect should open in a new tab.",
                        "type": "boolean",
                        "example": false
                    },
                    "usesEstimatedQuotes": {
                        "description": "Whether the client uses estimated quotes for bank transfers.",
                        "type": "boolean",
                        "example": true,
                        "deprecated": true
                    },
                    "canReturnUrlBeOpenedInBrowser": {
                        "description": "Whether the return url can be opened in the browser.",
                        "type": "boolean",
                        "example": true
                    },
                    "appendOrderInfoToReturnUrl": {
                        "description": "Whether the order info should be appended to the return url, for example the orderId.",
                        "type": "boolean",
                        "example": true
                    },
                    "orderFailedActionUrl": {
                        "description": "The URL to which the user will be returned if an order fails unexpectedly.",
                        "type": "string",
                        "example": "https://dashboard.btcdirect.eu",
                        "nullable": true
                    },
                    "walletType": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/WalletType"
                            }
                        ],
                        "nullable": true,
                        "description": "The type of wallet linked to this client.",
                        "type": "string",
                        "example": "unhosted"
                    },
                    "webviewRisk": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/WebviewRisk"
                            }
                        ],
                        "nullable": true,
                        "description": "Platforms where the partner runs inside a locked-down WebView. When the user platform matches (or this is \"all\"), the widget shows the iDEAL fallback dialog. Null means no risk.",
                        "type": "string",
                        "example": "android"
                    }
                },
                "type": "object"
            },
            "Order2": {
                "required": [
                    "id",
                    "date",
                    "currencyPair",
                    "walletAddress",
                    "status",
                    "isDcaOrder",
                    "isEstimatedQuote",
                    "fiatAmount",
                    "cryptoAmount",
                    "fees"
                ],
                "properties": {
                    "id": {
                        "description": "The order id.",
                        "type": "integer",
                        "example": 1
                    },
                    "date": {
                        "description": "The date and time of the order.",
                        "type": "string",
                        "format": "date-time",
                        "example": "2019-11-11T16:11:02Z"
                    },
                    "partnerOrderIdentifier": {
                        "description": "Unique identifier provided by the partner.",
                        "type": "string",
                        "example": "4ea2b5e9-a413-4359-a8f6-9263ae8a0ee7",
                        "nullable": true
                    },
                    "currencyPair": {
                        "description": "The currency pair of the order.",
                        "type": "string",
                        "example": "BTC-EUR"
                    },
                    "walletAddress": {
                        "description": "The address to which the coins should be sent.",
                        "type": "string",
                        "example": "test-wallet-happy-flow",
                        "nullable": true
                    },
                    "destinationTag": {
                        "description": "The destination tag which should be used to send the coins. This depends on the coin type and can be a string or an integer. For XRP it is an integer, for other coins it is a string.",
                        "type": "string|integer",
                        "example": {
                            "default": "ABC1234",
                            "XRP": 12341
                        },
                        "nullable": true
                    },
                    "status": {
                        "description": "The current status of the order.",
                        "type": "string",
                        "example": "cancelled"
                    },
                    "isDcaOrder": {
                        "description": "The order was created because of a DCA deposit.",
                        "type": "boolean",
                        "example": false
                    },
                    "isEstimatedQuote": {
                        "description": "The order was created based on an estimated quote.",
                        "type": "boolean",
                        "example": false
                    },
                    "fiatAmount": {
                        "$ref": "#/components/schemas/FiatMoney"
                    },
                    "cryptoAmount": {
                        "$ref": "#/components/schemas/CryptoMoney"
                    },
                    "fees": {
                        "$ref": "#/components/schemas/Fees"
                    },
                    "blockchainInfo": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/BlockChainInfo"
                            }
                        ],
                        "nullable": true,
                        "description": "The blockchain information involved in this order."
                    },
                    "expiresAt": {
                        "description": "The expiry date-time that expires this confirmed quote. After this period it is no longer possible to pay for this order.",
                        "type": "string",
                        "format": "date-time",
                        "default": null,
                        "example": "2025-04-07T18:30:00Z",
                        "nullable": true
                    },
                    "sourceCurrency": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/CurrencyModel"
                            }
                        ],
                        "nullable": true,
                        "description": "The source currency (crypto) of the order, including optional CAIP-19 identifier.",
                        "default": null
                    },
                    "targetCurrency": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/CurrencyModel"
                            }
                        ],
                        "nullable": true,
                        "description": "The target currency (fiat) of the order, including optional CAIP-19 identifier.",
                        "default": null
                    }
                },
                "type": "object"
            },
            "AddIbanAccountRequest": {
                "required": [
                    "iban"
                ],
                "properties": {
                    "holder": {
                        "description": "The name of the account holder.",
                        "type": "string",
                        "default": "",
                        "example": "John Doe"
                    },
                    "iban": {
                        "description": "The IBAN account number.",
                        "type": "string",
                        "default": "",
                        "example": "NL37BUNQ2025406444"
                    }
                },
                "type": "object"
            },
            "AddIbanAccountResponse": {
                "required": [
                    "accountIdentifier"
                ],
                "properties": {
                    "accountIdentifier": {
                        "description": "The account identifier (IBAN).",
                        "type": "string",
                        "example": "NL37BUNQ2025406444"
                    }
                },
                "type": "object"
            },
            "CardAccountResponse": {
                "properties": {
                    "accountIdentifier": {
                        "description": "The masked card identifier.",
                        "type": "string",
                        "example": "404010_1234_12_2026"
                    },
                    "accountHolderName": {
                        "description": "The name of the card holder.",
                        "type": "string",
                        "example": "John Doe"
                    }
                },
                "type": "object"
            },
            "DcaCodeResponse": {
                "required": [
                    "code",
                    "cryptoCurrency",
                    "walletAddress",
                    "bankName",
                    "bankIban",
                    "bankBic",
                    "targetCurrency"
                ],
                "properties": {
                    "code": {
                        "description": "The DCA-code that should be included in the bank transfer deposit.",
                        "type": "string",
                        "example": "ABCDEFG9"
                    },
                    "apiClientName": {
                        "description": "The API client name.",
                        "type": "string",
                        "example": "Foo",
                        "nullable": true
                    },
                    "cryptoCurrency": {
                        "description": "The crypto currency that is purchased with this DCA-code.",
                        "type": "string",
                        "example": "BTC"
                    },
                    "walletAddress": {
                        "description": "The wallet address the coins are sent to when the DCA order is executed.",
                        "type": "string",
                        "example": "3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5"
                    },
                    "destinationTag": {
                        "description": "The destination tag which should be used to send the coins. This depends on the coin type and can be a string or an integer. For XRP it is an integer, for other coins it is a string.",
                        "type": "string|integer",
                        "example": {
                            "default": "ABC1234",
                            "XRP": 12341
                        },
                        "nullable": true
                    },
                    "bankName": {
                        "description": "The name of the bank where the fiat needs to be sent to.",
                        "type": "string",
                        "example": "BTC Direct Europe B.V."
                    },
                    "bankIban": {
                        "description": "The IBAN where the fiat needs to be sent to.",
                        "type": "string",
                        "example": "NL37BUNQ2025406444"
                    },
                    "bankBic": {
                        "description": "The BIC of the bank.",
                        "type": "string",
                        "example": "BUNQNL2A"
                    },
                    "targetCurrency": {
                        "$ref": "#/components/schemas/CurrencyModel"
                    }
                },
                "type": "object"
            },
            "LimitResponse": {
                "properties": {
                    "limits": {
                        "properties": {
                            "user_day_limit": {
                                "$ref": "#/components/schemas/MoneyLimit"
                            },
                            "non_raised_limit_account_limit": {
                                "$ref": "#/components/schemas/MoneyLimit"
                            },
                            "new_limited_account_limit": {
                                "$ref": "#/components/schemas/MoneyLimit"
                            },
                            "number_of_non_raised_accounts_limit": {
                                "$ref": "#/components/schemas/IntegerLimit"
                            }
                        },
                        "type": "object"
                    },
                    "accounts": {
                        "type": "object",
                        "example": {
                            "545454_54_0330": {
                                "identifier": "545454_54_0330",
                                "name": "Development",
                                "type": "creditcard",
                                "disabled": false,
                                "verified": true,
                                "limitRaised": false,
                                "totalSpent": {
                                    "amount": 3000,
                                    "currency": "EUR"
                                },
                                "limit": null,
                                "isStoredCard": true,
                                "lastUsedAt": "2025-09-01T00:00:00Z"
                            },
                            "123456_78_9101": {
                                "identifier": "123456_78_9101",
                                "name": "Testing",
                                "type": "savings",
                                "disabled": false,
                                "verified": true,
                                "limitRaised": true,
                                "totalSpent": {
                                    "amount": 1500,
                                    "currency": "USD"
                                },
                                "limit": {
                                    "type": "user",
                                    "blockType": "hard",
                                    "subType": "account_limit",
                                    "boundaryType": "maximum",
                                    "limit": 10,
                                    "remainingLimit": 5
                                },
                                "isStoredCard": true,
                                "lastUsedAt": "2025-09-01T00:00:00Z"
                            }
                        },
                        "additionalProperties": {
                            "$ref": "#/components/schemas/LimitedAccount"
                        }
                    },
                    "limitedAccountTypes": {
                        "description": "List of payment method types where an account can be limited",
                        "type": "array",
                        "items": {
                            "type": "string",
                            "enum": [
                                "applepay",
                                "googlepay",
                                "creditCard",
                                "bancontact"
                            ]
                        },
                        "example": [
                            "applepay",
                            "googlepay",
                            "creditcard",
                            "bancontact"
                        ]
                    }
                },
                "type": "object"
            },
            "LoginTokenRequest": {
                "properties": {
                    "uuid": {
                        "type": "string",
                        "default": ""
                    },
                    "token": {
                        "type": "string",
                        "default": ""
                    }
                },
                "type": "object"
            },
            "TokenResponse": {
                "properties": {
                    "uuid": {
                        "description": "UUID of the user.",
                        "type": "string",
                        "format": "string",
                        "example": "60bd85f1-1b05-427f-9226-915b6b13f39e"
                    },
                    "token": {
                        "description": "Authentication token. Use this to request resources requiring user authentication.",
                        "type": "string",
                        "format": "string",
                        "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
                    },
                    "refreshToken": {
                        "description": "Refresh token. Use this to request a new authenticatoin token.",
                        "type": "string",
                        "format": "string",
                        "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
                    }
                },
                "type": "object"
            },
            "RegistrationRequest": {
                "required": [
                    "email",
                    "country",
                    "identifier"
                ],
                "properties": {
                    "emailCode": {
                        "description": "Verification code, used to verify the e-mail address.",
                        "type": "string",
                        "minimum": 0,
                        "exclusiveMinimum": true,
                        "example": 152367
                    },
                    "email": {
                        "description": "Email address of the user.",
                        "type": "string",
                        "example": "info@example.com"
                    },
                    "chamberOfCommerce": {
                        "description": "Chamber of Commerce number.",
                        "type": "string",
                        "minimum": 0,
                        "exclusiveMinimum": true,
                        "example": 152367
                    },
                    "businessName": {
                        "description": "Name of the business.",
                        "type": "string",
                        "example": "BTC Direct"
                    },
                    "businessCountry": {
                        "description": "ISO 3166-1 alpha-2 country code of the country where the business is registered.",
                        "type": "string",
                        "example": "GB"
                    },
                    "amld5QuestionAnswers": {
                        "description": "The user's anwers to the AMLD5 questions.",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "example": {
                            "kyc-amld5-annual-net-income": "From 10.000 to 30.000",
                            "kyc-amld5-employment-status": "Employed",
                            "kyc-amld5-main-source-income": "Salary",
                            "kyc-amld5-why-account-created": "Investing",
                            "kyc-amld5-which-industry": "Cryptocurrency, (Online) gambling & casino",
                            "kyc-amld5-annual-net-profit": "Above 250.000"
                        }
                    },
                    "phoneNumber": {
                        "description": "Phone number of the user, in the format +countrycodenumber (no dashes, spaces or other special characters).",
                        "type": "string",
                        "example": "+31612345678"
                    },
                    "dateOfBirth": {
                        "description": "Date of birth of the user, in the ISO 8601 format (YYYY-MM-DD).",
                        "type": "string",
                        "example": "1984-12-27"
                    },
                    "firstName": {
                        "description": "First name of the user.",
                        "type": "string",
                        "example": "John"
                    },
                    "lastName": {
                        "description": "Last name of the user.",
                        "type": "string",
                        "example": "Doe"
                    },
                    "country": {
                        "description": "ISO 3166-1 alpha-2 country code of the user.",
                        "type": "string",
                        "example": "DE"
                    },
                    "address": {
                        "description": "Streetname of the users address.",
                        "type": "string",
                        "example": "Street"
                    },
                    "addressNo": {
                        "description": "Housenumber of the users address.",
                        "type": "string",
                        "example": "12a"
                    },
                    "postalCode": {
                        "description": "Postalcode of the users address.",
                        "type": "string",
                        "example": "1234AB"
                    },
                    "city": {
                        "description": "City of the users address.",
                        "type": "string",
                        "example": "Amsterdam"
                    },
                    "websiteCountry": {
                        "description": "ISO 3166-1 alpha-2 country code of the user.",
                        "type": "string",
                        "example": "NL"
                    },
                    "websiteLanguage": {
                        "description": "ISO 3166-1 alpha-2 language code of the user.",
                        "type": "string",
                        "example": "NL"
                    },
                    "isBusiness": {
                        "description": "Determines whether a user is a business user or not.",
                        "type": "boolean",
                        "example": false
                    },
                    "privacyAgreement": {
                        "description": "Determines whether a user has agreed to the privacy agreement.",
                        "type": "boolean",
                        "example": false
                    },
                    "identityDocument": {
                        "description": "Identity document of the user.",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/IdentityDocument"
                        },
                        "example": [
                            {
                                "documentType": "IdentityCard",
                                "documentSide": "Front",
                                "data": "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAVP3pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjavZpnchw5EoX/4xR7BLiEOQ5sxN5gj7/fq27Ka1bSTKw4wyabxSogzTMJuvOff1/3L/6Zxeyy1VZ6KZ5/ueceB180//r3eg0+P58//oX356/ed5++jLwmXtPrB+W8f2vwvn3+hZrf78+v33d1vb6I7X2jjye/b5j05MgX7+va+0Ypvt4P7+9df//eyF9s5+P/k57b2fum336fK8HYxv1SdPGkkDyfo56SWEFqafBa+BwSb/PZ+DryOlJK+cexcz8L3s9i58f7/fR1KJwv7wvKNzF6vx/sx7F7IvTlisLnJ3/1g7o/wvh97O7d7d7z2t3IhUgV997Ux1aer7hwEsr0/Frho/K/8XV9PjofjS0uHrXJ5uRjudBDJNo35LDDCDec53WFxRJzPLHyGuMi1nqvpRp7XE9Ssj7CjTX1tB05immRNfKR4qe1hOe5/XneCo0n78CVMXCzwG989+F+9OaffHy60b0q3RB8+xQr1hVV0yxDmdNnriIF4b5jak98nw/3Rd34LxKbyKA9YW5scPj5usW08Lm20pPnxHXms/O"
                            }
                        ]
                    },
                    "newsletterSubscription": {
                        "description": "Determines whether a user will be subscribed to the BTC Direct newsletter.",
                        "type": "boolean",
                        "example": false
                    },
                    "identifier": {
                        "description": "The user identifier of the user.",
                        "type": "string",
                        "maxLength": 255,
                        "minLength": 36,
                        "example": "c6fefe8d7ac0f4113876d634e8d15f65947f1b62d4859fffcd2464d2be58b2d8"
                    },
                    "password": {
                        "description": "Password for the user to login (optional)",
                        "type": "string",
                        "example": "donotusethisexamplep@ssw0rd!"
                    },
                    "shareToken": {
                        "description": "The Sumsub share token of this user.",
                        "type": "string",
                        "example": "_act-sbx-jwt-fyJqdGkiOiJfYWN0LXNieC0wZjQ5OGZkYS0xZGVhLTQ4NPMtOTkzZi0yYWJiYWFhZjljZWIiLCJ1cmwiOiJofHRwczovL2FwaS5zbA1zdWIuY29tFn5"
                    }
                },
                "type": "object"
            },
            "UserInfoResponse": {
                "properties": {
                    "email": {
                        "description": "Email address of the user.",
                        "type": "string",
                        "example": "email@domain.com"
                    },
                    "firstName": {
                        "description": "First name of the user.",
                        "type": "string",
                        "example": "John"
                    },
                    "lastName": {
                        "description": "Last name of the user.",
                        "type": "string",
                        "example": "Doe"
                    },
                    "phoneNumber": {
                        "description": "Phone number of the user.",
                        "type": "string",
                        "example": ""
                    },
                    "country": {
                        "description": "Country or preferred language.",
                        "type": "string",
                        "example": "NL"
                    },
                    "isBusiness": {
                        "description": "Determines if this account is a business account or not.",
                        "type": "boolean",
                        "example": false
                    },
                    "registrationDate": {
                        "description": "Registration date of the user.",
                        "type": "string",
                        "example": "2019-01-01T14:13:55Z"
                    },
                    "activationDate": {
                        "description": "The date and time the user account was activated.",
                        "type": "string",
                        "example": "2019-01-02T12:43:25Z"
                    }
                },
                "type": "object"
            },
            "PatchRequest": {
                "required": [
                    "email",
                    "country"
                ],
                "properties": {
                    "emailCode": {
                        "description": "Verification code, used to verify the e-mail address.",
                        "type": "string",
                        "minimum": 0,
                        "exclusiveMinimum": true,
                        "example": 152367
                    },
                    "email": {
                        "description": "Email address of the user.",
                        "type": "string",
                        "example": "info@example.com"
                    },
                    "chamberOfCommerce": {
                        "description": "Chamber of Commerce number.",
                        "type": "string",
                        "minimum": 0,
                        "exclusiveMinimum": true,
                        "example": 152367
                    },
                    "businessName": {
                        "description": "Name of the business.",
                        "type": "string",
                        "example": "BTC Direct"
                    },
                    "businessCountry": {
                        "description": "ISO 3166-1 alpha-2 country code of the country where the business is registered.",
                        "type": "string",
                        "example": "GB"
                    },
                    "amld5QuestionAnswers": {
                        "description": "The user's anwers to the AMLD5 questions.",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "example": {
                            "kyc-amld5-annual-net-income": "From 10.000 to 30.000",
                            "kyc-amld5-employment-status": "Employed",
                            "kyc-amld5-main-source-income": "Salary",
                            "kyc-amld5-why-account-created": "Investing",
                            "kyc-amld5-which-industry": "Cryptocurrency, (Online) gambling & casino",
                            "kyc-amld5-annual-net-profit": "Above 250.000"
                        }
                    },
                    "phoneNumber": {
                        "description": "Phone number of the user, in the format +countrycodenumber (no dashes, spaces or other special characters).",
                        "type": "string",
                        "example": "+31612345678"
                    },
                    "dateOfBirth": {
                        "description": "Date of birth of the user, in the ISO 8601 format (YYYY-MM-DD).",
                        "type": "string",
                        "example": "1984-12-27"
                    },
                    "firstName": {
                        "description": "First name of the user.",
                        "type": "string",
                        "example": "John"
                    },
                    "lastName": {
                        "description": "Last name of the user.",
                        "type": "string",
                        "example": "Doe"
                    },
                    "country": {
                        "description": "ISO 3166-1 alpha-2 country code of the user.",
                        "type": "string",
                        "example": "DE"
                    },
                    "address": {
                        "description": "Streetname of the users address.",
                        "type": "string",
                        "example": "Street"
                    },
                    "addressNo": {
                        "description": "Housenumber of the users address.",
                        "type": "string",
                        "example": "12a"
                    },
                    "postalCode": {
                        "description": "Postalcode of the users address.",
                        "type": "string",
                        "example": "1234AB"
                    },
                    "city": {
                        "description": "City of the users address.",
                        "type": "string",
                        "example": "Amsterdam"
                    },
                    "websiteCountry": {
                        "description": "ISO 3166-1 alpha-2 country code of the user.",
                        "type": "string",
                        "example": "NL"
                    },
                    "websiteLanguage": {
                        "description": "ISO 3166-1 alpha-2 language code of the user.",
                        "type": "string",
                        "example": "NL"
                    },
                    "isBusiness": {
                        "description": "Determines whether a user is a business user or not.",
                        "type": "boolean",
                        "example": false
                    },
                    "privacyAgreement": {
                        "description": "Determines whether a user has agreed to the privacy agreement.",
                        "type": "boolean",
                        "example": false
                    },
                    "identityDocument": {
                        "description": "Identity document of the user.",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/IdentityDocument"
                        },
                        "example": [
                            {
                                "documentType": "IdentityCard",
                                "documentSide": "Front",
                                "data": "iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAVP3pUWHRSYXcgcHJvZmlsZSB0eXBlIGV4aWYAAHjavZpnchw5EoX/4xR7BLiEOQ5sxN5gj7/fq27Ka1bSTKw4wyabxSogzTMJuvOff1/3L/6Zxeyy1VZ6KZ5/ueceB180//r3eg0+P58//oX356/ed5++jLwmXtPrB+W8f2vwvn3+hZrf78+v33d1vb6I7X2jjye/b5j05MgX7+va+0Ypvt4P7+9df//eyF9s5+P/k57b2fum336fK8HYxv1SdPGkkDyfo56SWEFqafBa+BwSb/PZ+DryOlJK+cexcz8L3s9i58f7/fR1KJwv7wvKNzF6vx/sx7F7IvTlisLnJ3/1g7o/wvh97O7d7d7z2t3IhUgV997Ux1aer7hwEsr0/Frho/K/8XV9PjofjS0uHrXJ5uRjudBDJNo35LDDCDec53WFxRJzPLHyGuMi1nqvpRp7XE9Ssj7CjTX1tB05immRNfKR4qe1hOe5/XneCo0n78CVMXCzwG989+F+9OaffHy60b0q3RB8+xQr1hVV0yxDmdNnriIF4b5jak98nw/3Rd34LxKbyKA9YW5scPj5usW08Lm20pPnxHXms/O"
                            }
                        ]
                    },
                    "newsletterSubscription": {
                        "description": "Determines whether a user will be subscribed to the BTC Direct newsletter.",
                        "type": "boolean",
                        "example": false
                    }
                },
                "type": "object"
            },
            "Status2": {
                "required": [
                    "name",
                    "status"
                ],
                "properties": {
                    "name": {
                        "description": "Name of the verification status",
                        "type": "string"
                    },
                    "type": {
                        "description": "The status type.",
                        "type": "string"
                    },
                    "status": {
                        "description": "The current status of the specific verification status response.",
                        "type": "string"
                    },
                    "data": {
                        "description": "Additional data related to the specific verification status response.",
                        "type": "object",
                        "default": null,
                        "example": [
                            {
                                "name": "isBusiness",
                                "status": "missing",
                                "type": "boolean"
                            },
                            {
                                "name": "emailCode",
                                "status": "pending",
                                "type": "string"
                            },
                            {
                                "name": "nationality",
                                "status": "missing",
                                "type": "choice",
                                "data": {
                                    "Netherlands": "NL",
                                    "German": "DE"
                                }
                            },
                            {
                                "name": "AMLD5Questions",
                                "status": "missing",
                                "type": "question",
                                "data": [
                                    {
                                        "key": "Question1",
                                        "label": "This is the actual question 1?",
                                        "answerOptions": [
                                            "answer1",
                                            "answer2",
                                            "answer3"
                                        ]
                                    },
                                    {
                                        "key": "Question2",
                                        "label": "This is the actual question 2?",
                                        "answerOptions": [
                                            "answer1",
                                            "answer2",
                                            "answer3"
                                        ]
                                    }
                                ]
                            },
                            {
                                "name": "idDocument",
                                "status": "missing",
                                "type": "document",
                                "data": [
                                    {
                                        "type": "passport",
                                        "data": [
                                            {
                                                "name": "front",
                                                "type": "file"
                                            },
                                            {
                                                "name": "back",
                                                "type": "file"
                                            }
                                        ]
                                    }
                                ]
                            },
                            {
                                "name": "verificationFlag",
                                "status": "pending",
                                "type": "boolean"
                            }
                        ],
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "UpgradeResponse": {
                "required": [
                    "currentLevel"
                ],
                "properties": {
                    "currentLevel": {
                        "description": "The verification level the user currently holds.",
                        "type": "string",
                        "example": "hero"
                    },
                    "nextLevel": {
                        "description": "The verification level the upgrade flow targets, or null when no upgrade flow is available for this user.",
                        "type": "string",
                        "example": "satoshi",
                        "nullable": true
                    },
                    "upgrade": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/UpgradeProviderSession"
                            }
                        ],
                        "nullable": true,
                        "description": "Provider-specific payload the WebSDK needs to start the upgrade flow, or null when no upgrade is available."
                    }
                },
                "type": "object"
            },
            "AddWalletAddressBookRequest": {
                "required": [
                    "name",
                    "currency",
                    "address"
                ],
                "properties": {
                    "name": {
                        "description": "The name for the wallet address in the user's wallet address book.",
                        "type": "string",
                        "default": "",
                        "example": "My savings wallet"
                    },
                    "currency": {
                        "description": "The currency of the wallet address.",
                        "type": "string",
                        "default": "",
                        "example": "BTC"
                    },
                    "address": {
                        "description": "The address of the wallet address.",
                        "type": "string",
                        "example": "3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5"
                    },
                    "destinationTag": {
                        "description": "The (optional) destination tag or memo of the wallet address.",
                        "type": "string|integer",
                        "default": null,
                        "example": "ABC12345",
                        "nullable": true
                    },
                    "walletType": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/WalletType"
                            }
                        ],
                        "nullable": true,
                        "description": "The type of wallet to which the funds will be sent.",
                        "required": [
                            "false"
                        ],
                        "type": "string",
                        "default": null,
                        "example": "unhosted"
                    }
                },
                "type": "object"
            },
            "RenameWalletAddressInAddressBookRequest": {
                "required": [
                    "name"
                ],
                "properties": {
                    "name": {
                        "description": "The new name of the wallet address in the user's wallet address book.",
                        "type": "string",
                        "example": "My extra wallet"
                    }
                },
                "type": "object"
            },
            "UserWalletAddress": {
                "properties": {
                    "currency": {
                        "description": "The currency.",
                        "type": "string",
                        "example": "BTC"
                    },
                    "address": {
                        "description": "The address.",
                        "type": "string",
                        "example": "3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5"
                    },
                    "destinationTag": {
                        "description": "The destination tag which should be used to send the coins. This depends on the coin type and can be a string or an integer. For XRP it is an integer, for other coins it is a string.",
                        "type": "string|integer",
                        "default": {},
                        "example": {
                            "default": "ABC1234",
                            "XRP": 12341
                        },
                        "nullable": true
                    },
                    "name": {
                        "description": "A descriptive name.",
                        "type": "string",
                        "default": null,
                        "example": "My BTC wallet 1",
                        "nullable": true
                    },
                    "status": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/UserWalletAddressBookState"
                            }
                        ],
                        "nullable": true,
                        "description": "The status of the wallet address.",
                        "type": "string",
                        "default": null,
                        "example": "verified"
                    },
                    "walletType": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/WalletType"
                            }
                        ],
                        "nullable": true,
                        "description": "The type of wallet to which the funds will be sent.",
                        "type": "string",
                        "default": null,
                        "example": "unhosted"
                    },
                    "verificationStatus": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/UserWalletAddressVerification"
                            }
                        ],
                        "nullable": true,
                        "description": "The verification status of the wallet address.",
                        "type": "string",
                        "default": null,
                        "example": "required"
                    },
                    "id": {
                        "description": "The id.",
                        "type": "integer",
                        "example": 189632
                    }
                },
                "type": "object"
            },
            "CurrencyModel": {
                "description": "Currency details including optional CAIP-19 asset identifier",
                "required": [
                    "code",
                    "ticker",
                    "name",
                    "caip19"
                ],
                "properties": {
                    "code": {
                        "description": "The currency code.",
                        "type": "string",
                        "example": "USDC_SOL"
                    },
                    "ticker": {
                        "description": "The currency ticker.",
                        "type": "string",
                        "example": "USDC"
                    },
                    "name": {
                        "description": "The human-readable currency name.",
                        "type": "string",
                        "example": "USD Coin (Solana)"
                    },
                    "caip19": {
                        "description": "CAIP-19 chain-agnostic asset identifier, e.g. solana:5eykt.../spl:EPjFWdd5...",
                        "type": "string",
                        "example": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/spl:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v"
                    }
                },
                "type": "object"
            },
            "WalletType": {
                "type": "string",
                "enum": [
                    "vasp",
                    "unhosted"
                ]
            },
            "FiatMoney": {
                "required": [
                    "amount",
                    "currencyCode"
                ],
                "properties": {
                    "amount": {
                        "description": "The fiat amount.",
                        "type": "number",
                        "format": "float",
                        "example": 3000
                    },
                    "currencyCode": {
                        "description": "The fiat currency code.",
                        "type": "string",
                        "example": "EUR"
                    }
                },
                "type": "object"
            },
            "CryptoMoney": {
                "required": [
                    "amount",
                    "currencyCode"
                ],
                "properties": {
                    "amount": {
                        "description": "The amount of the cryptocurrency.",
                        "type": "number",
                        "format": "float",
                        "example": 0.5
                    },
                    "currencyCode": {
                        "description": "The currency code.",
                        "type": "string",
                        "example": "BTC"
                    }
                },
                "type": "object"
            },
            "Fees": {
                "required": [
                    "partnerFee",
                    "paymentMethodFee",
                    "networkFee",
                    "btcdirectFee",
                    "spreadFee",
                    "affiliateFee"
                ],
                "properties": {
                    "partnerFee": {
                        "$ref": "#/components/schemas/FiatMoney"
                    },
                    "partnerFeePercentage": {
                        "description": "The fee earned by the partner in terms of a percentage for this order.",
                        "type": "number",
                        "example": 1.5,
                        "nullable": true
                    },
                    "paymentMethodFee": {
                        "$ref": "#/components/schemas/FiatMoney"
                    },
                    "networkFee": {
                        "$ref": "#/components/schemas/FiatMoney"
                    },
                    "btcdirectFee": {
                        "$ref": "#/components/schemas/FiatMoney"
                    },
                    "spreadFee": {
                        "$ref": "#/components/schemas/FiatMoney"
                    },
                    "affiliateFee": {
                        "$ref": "#/components/schemas/FiatMoney"
                    }
                },
                "type": "object"
            },
            "BlockChainInfo": {
                "required": [
                    "walletAddress",
                    "walletExplorer",
                    "transactionId",
                    "transactionExplorer"
                ],
                "properties": {
                    "walletAddress": {
                        "description": "The address of the wallet.",
                        "type": "string",
                        "default": "",
                        "example": "3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5"
                    },
                    "walletExplorer": {
                        "description": "Link to the wallet on the wallet explorer.",
                        "type": "string",
                        "default": "",
                        "example": "https://www.blockchain.com/btc/address/3FZbgi29cpjq2GjdwV8eyHuJJnkLtktZc5"
                    },
                    "transactionId": {
                        "description": "The unique transaction id.",
                        "type": "string",
                        "default": "",
                        "example": "f5d8ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6"
                    },
                    "transactionExplorer": {
                        "description": "Link to the transaction on the blockchain explorer.",
                        "type": "string",
                        "default": "",
                        "example": "https://www.blockchain.com/btc/tx/f5d8ee39a430901c91a5917b9f2dc19d6d1a0e9cea205b009ca73dd04470b9a6"
                    }
                },
                "type": "object"
            },
            "PaymentMethod": {
                "required": [
                    "code",
                    "label",
                    "psp",
                    "limit",
                    "fee",
                    "expirationPeriod",
                    "openInNewTab",
                    "context"
                ],
                "properties": {
                    "code": {
                        "description": "The BTC Direct payment method code.",
                        "type": "string",
                        "example": "creditCard"
                    },
                    "label": {
                        "description": "Payment method label.",
                        "type": "string",
                        "example": "Credit card"
                    },
                    "psp": {
                        "description": "The PSP that will be used for this payment method.",
                        "type": "string",
                        "example": "cm"
                    },
                    "limit": {
                        "description": "The maximum amount for this payment method.",
                        "type": "number",
                        "format": "float",
                        "example": "1000.01"
                    },
                    "fees": {
                        "$ref": "#/components/schemas/PaymentMethodFee"
                    },
                    "expirationPeriod": {
                        "description": "The number of seconds a user has to pay the order",
                        "type": "number",
                        "format": "int",
                        "example": "420"
                    },
                    "openInNewTab": {
                        "description": "Indicates if the payment method should open in a new tab.",
                        "type": "boolean",
                        "default": false,
                        "example": true
                    },
                    "context": {
                        "description": "Optional metadata that provides additional configuration for the payment method. Each context item specifies a type and corresponding value. For example, it may define which card brands are supported or a PSP-specific checkout identifier. The required context types depend on the PSP and selected payment method.",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/PaymentMethodContext"
                        },
                        "default": [],
                        "example": [
                            {
                                "type": "acceptedCards",
                                "value": [
                                    "visa",
                                    "mastercard"
                                ]
                            },
                            {
                                "type": "identifier",
                                "value": "checkout-identifier-123"
                            }
                        ]
                    }
                },
                "type": "object"
            },
            "WebviewRisk": {
                "type": "string",
                "enum": [
                    "ios",
                    "android",
                    "all"
                ]
            },
            "MoneyLimit": {
                "properties": {
                    "type": {
                        "description": "the type of limit.",
                        "readOnly": true,
                        "example": "user",
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/LimitType"
                            }
                        ]
                    },
                    "blockType": {
                        "description": "the type of block if the limit is to be exceeded.",
                        "readOnly": true,
                        "example": "hard",
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/LimitBlockType"
                            }
                        ]
                    },
                    "subType": {
                        "description": "subtype of the limit.",
                        "default": null,
                        "readOnly": true,
                        "example": "user_day_limit",
                        "nullable": true,
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/LimitSubType"
                            }
                        ]
                    },
                    "boundaryType": {
                        "description": "the type of boundary of the limit this can be maximum or minimum",
                        "default": "maximum",
                        "readOnly": true,
                        "example": "maximum",
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/LimitBoundaryType"
                            }
                        ]
                    },
                    "limit": {
                        "description": "the total limit. This does not reflect the current state.",
                        "readOnly": true,
                        "example": {
                            "amount": "4000",
                            "currency": "EUR"
                        },
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/Money"
                            }
                        ]
                    },
                    "remainingLimit": {
                        "description": "The remaining limit to not exceed the threshold.",
                        "readOnly": true,
                        "example": {
                            "amount": "1000",
                            "currency": "EUR"
                        },
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/Money"
                            }
                        ]
                    }
                },
                "type": "object"
            },
            "IntegerLimit": {
                "properties": {
                    "type": {
                        "description": "the type of limit.",
                        "readOnly": true,
                        "example": "user",
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/LimitType"
                            }
                        ]
                    },
                    "blockType": {
                        "description": "the type of block if the limit is to be exceeded.",
                        "readOnly": true,
                        "example": "hard",
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/LimitBlockType"
                            }
                        ]
                    },
                    "subType": {
                        "description": "subtype of the limit.",
                        "default": null,
                        "readOnly": true,
                        "example": "user_day_limit",
                        "nullable": true,
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/LimitSubType"
                            }
                        ]
                    },
                    "boundaryType": {
                        "description": "the type of boundary of the limit this can be maximum or minimum",
                        "default": "maximum",
                        "readOnly": true,
                        "example": "maximum",
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/LimitBoundaryType"
                            }
                        ]
                    },
                    "limit": {
                        "description": "the total limit. This does not reflect the current state.",
                        "type": "integer",
                        "readOnly": true,
                        "example": 10
                    },
                    "remainingLimit": {
                        "description": "The remaining limit to not exceed the threshold.",
                        "type": "integer",
                        "readOnly": true,
                        "example": 5
                    }
                },
                "type": "object"
            },
            "LimitedAccount": {
                "required": [
                    "identifier",
                    "name",
                    "type",
                    "disabled",
                    "verified",
                    "limitRaised",
                    "totalSpent",
                    "isStoredCard",
                    "lastUsedAt"
                ],
                "properties": {
                    "identifier": {
                        "description": "Identifier for the users monetary account.",
                        "type": "string",
                        "readOnly": true,
                        "example": "545454_54_0330"
                    },
                    "name": {
                        "description": "Name of the holder of the monetary account.",
                        "type": "string",
                        "readOnly": true,
                        "example": "Development"
                    },
                    "type": {
                        "description": "The type of monetary account.",
                        "type": "string",
                        "readOnly": true,
                        "example": "creditcard"
                    },
                    "disabled": {
                        "description": "Indicates if the monetary account is disabled",
                        "type": "boolean",
                        "readOnly": true,
                        "example": false
                    },
                    "verified": {
                        "description": "Indicates if the monetary account is verified.",
                        "type": "boolean",
                        "readOnly": true,
                        "example": true
                    },
                    "limitRaised": {
                        "description": "Indicates if the monetary account has a raised limit",
                        "type": "boolean",
                        "readOnly": true,
                        "example": false
                    },
                    "totalSpent": {
                        "description": "The amount spent on the monetary account in total.",
                        "readOnly": true,
                        "example": {
                            "amount": "3000",
                            "currency": "EUR"
                        },
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/Money"
                            }
                        ]
                    },
                    "limit": {
                        "description": "The limit for this account",
                        "readOnly": true,
                        "example": {
                            "type": "user",
                            "blockType": "hard",
                            "subType": "account_limit",
                            "boundaryType": "maximum",
                            "limit": 10,
                            "remainingLimit": 5
                        },
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/MoneyLimit"
                            }
                        ]
                    },
                    "isStoredCard": {
                        "description": "Determines if the account can be used as a stored card.",
                        "type": "boolean",
                        "readOnly": true,
                        "example": false
                    },
                    "lastUsedAt": {
                        "description": "Date the account was last used.",
                        "type": "string",
                        "format": "date-time",
                        "example": "2025-09-01T00:00:00Z"
                    },
                    "isCoinToFiatAllowed": {
                        "description": "Indicates if coin-to-fiat orders are allowed for this account.",
                        "type": "boolean",
                        "readOnly": true,
                        "example": true
                    }
                },
                "type": "object"
            },
            "IdentityDocument": {
                "properties": {
                    "document_type": {
                        "type": "string"
                    },
                    "document_side": {
                        "type": "string"
                    },
                    "uploaded_file": {
                        "$ref": "#/components/schemas/UploadedFile"
                    }
                },
                "type": "object"
            },
            "UpgradeProviderSession": {
                "properties": {
                    "access_token": {
                        "type": "string"
                    },
                    "status": {
                        "type": "string"
                    },
                    "provider": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "UserWalletAddressBookState": {
                "type": "string",
                "enum": [
                    "open",
                    "pending",
                    "disabled",
                    "verified",
                    "rejected"
                ]
            },
            "UserWalletAddressVerification": {
                "type": "string",
                "enum": [
                    "required",
                    "travel_rule_required"
                ]
            },
            "PaymentMethodFee": {
                "properties": {
                    "fixed": {
                        "description": "Fixed fee amount",
                        "type": "number",
                        "format": "float",
                        "example": "0.35"
                    },
                    "percentage": {
                        "description": "Fee percentage",
                        "type": "number",
                        "format": "float",
                        "example": "1.9"
                    }
                },
                "type": "object"
            },
            "PaymentMethodContext": {
                "required": [
                    "type",
                    "value"
                ],
                "properties": {
                    "type": {
                        "$ref": "#/components/schemas/PaymentMethodContextType"
                    },
                    "value": {
                        "description": "The value associated with the context type. This is dynamically typed: it can be a string, array, boolean, or integer depending on the context type. For example, for \"acceptedCards\", this will be an array of strings (e.g., [\"visa\", \"mastercard\"]).",
                        "type": "{}",
                        "readOnly": true
                    }
                },
                "type": "object"
            },
            "LimitType": {
                "type": "string",
                "enum": [
                    "user",
                    "paymentMethod",
                    "currency"
                ]
            },
            "LimitBlockType": {
                "type": "string",
                "enum": [
                    "soft",
                    "hard"
                ]
            },
            "LimitSubType": {
                "type": "string",
                "enum": [
                    "user_day_limit",
                    "user_day_limit_fiat_to_coin",
                    "user_day_limit_coin_to_fiat",
                    "non_raised_limit_account_limit",
                    "new_limited_account_limit",
                    "number_of_non_raised_accounts_limit",
                    "account_limit",
                    "disabled_account_limit",
                    "paypal_limit"
                ]
            },
            "LimitBoundaryType": {
                "type": "string",
                "enum": [
                    "maximum",
                    "minimum"
                ]
            },
            "Money": {
                "properties": {
                    "amount": {
                        "title": "Internal value.",
                        "description": "Amount, expressed in the smallest currency units (eg cents).",
                        "type": "string"
                    },
                    "calculator": {
                        "type": "string",
                        "default": "Money\\Calculator\\BcMathCalculator"
                    },
                    "currency": {
                        "$ref": "#/components/schemas/Currency"
                    }
                },
                "type": "object"
            },
            "UploadedFile": {
                "properties": {
                    "test": {
                        "type": "boolean",
                        "default": false
                    },
                    "original_name": {
                        "type": "string"
                    },
                    "mime_type": {
                        "type": "string",
                        "default": null,
                        "nullable": true
                    },
                    "error": {
                        "type": "integer",
                        "default": null,
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "PaymentMethodContextType": {
                "type": "string",
                "enum": [
                    "acceptedCards",
                    "clientId",
                    "countries",
                    "country",
                    "currency",
                    "disableFunding",
                    "displayName",
                    "enableFunding",
                    "features",
                    "identifier",
                    "intent",
                    "scope"
                ]
            },
            "Currency": {
                "properties": {
                    "code": {
                        "title": "Currency code.",
                        "type": "string"
                    }
                },
                "type": "object"
            }
        },
        "securitySchemes": {
            "Client": {
                "type": "apiKey",
                "description": "Value: Bearer {jwt}",
                "name": "Authorization",
                "in": "header"
            },
            "User": {
                "type": "apiKey",
                "description": "Value: Bearer {jwt}",
                "name": "User-Authorization",
                "in": "header"
            },
            "XPUB": {
                "type": "apiKey",
                "description": "Value: {xpub}",
                "name": "XPUB",
                "in": "header"
            }
        }
    },
    "tags": [
        {
            "name": "Buy"
        },
        {
            "name": "Client"
        },
        {
            "name": "System"
        },
        {
            "name": "Sell"
        },
        {
            "name": "User"
        },
        {
            "name": "User/Accounts"
        }
    ]
}