{
    "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.",
                "description": "A client token reads any buy order of its own client. An api-key is a public integration\nsecret, so it only reads the order of the end user whose credential accompanies it.",
                "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",
                                                "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": {
                                        "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."
                                        },
                                        "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": "Order status retrieved successfully.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Order"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/api/v2/buy/pay-by-bank/banks/by-iban": {
            "post": {
                "tags": [
                    "Buy"
                ],
                "summary": "Resolves a customer IBAN to the Pay by Bank bank(s) behind it, so the picker\ncan pre-select the customer's own bank. A POST on purpose: an IBAN is PII and\nmust never appear in URL paths or access logs. All resolution logic (BIC\nlookup, catalog matching) lives in Latinum; this endpoint proxies Latinum's\ntyped response.",
                "operationId": "post_app_v2_buy_paybybank_bankbyiban_banksbyiban",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/BankByIbanRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER056",
                                                "ER113",
                                                "ER190",
                                                "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."
                                        },
                                        "ER113": {
                                            "code": "ER113",
                                            "message": "No IBAN account provided.",
                                            "solution": "Provide a valid IBAN account."
                                        },
                                        "ER190": {
                                            "code": "ER190",
                                            "message": "Pay by Bank is temporarily unavailable.",
                                            "solution": "Please try again in a few minutes."
                                        },
                                        "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 bank(s) the IBAN resolved to, with the resolution outcome.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/BankByIbanResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    }
                ]
            }
        },
        "/api/v2/buy/pay-by-bank/banks": {
            "get": {
                "tags": [
                    "Buy"
                ],
                "summary": "Returns the banks available for Pay by Bank, filtered by payment flow and\n(optionally) country. All logic (filtering, shaping) lives in Latinum; this\nendpoint proxies Latinum's typed response.",
                "operationId": "get_app_v2_buy_paybybank_banks_banks",
                "parameters": [
                    {
                        "name": "flow",
                        "in": "query",
                        "description": "Payment flow to filter banks by.",
                        "required": false,
                        "schema": {
                            "$ref": "#/components/schemas/BankFlow"
                        },
                        "example": "one-off"
                    },
                    {
                        "name": "countryCode",
                        "in": "query",
                        "description": "ISO 3166-1 alpha-2 country code to filter banks by.",
                        "required": false,
                        "schema": {
                            "description": "ISO 3166-1 alpha-2 country code to filter banks by.",
                            "type": "string",
                            "default": null,
                            "example": "NL",
                            "nullable": true
                        },
                        "example": "NL"
                    }
                ],
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER061",
                                                "ER190",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER061": {
                                            "code": "ER061",
                                            "message": "Invalid ISO 3166-1 alpha-2 country code provided.",
                                            "solution": "Provide a valid ISO 3166-1 alpha-2 country code."
                                        },
                                        "ER190": {
                                            "code": "ER190",
                                            "message": "Pay by Bank is temporarily unavailable.",
                                            "solution": "Please try again in a few minutes."
                                        },
                                        "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 banks available for Pay by Bank.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/components/schemas/BankView"
                                    }
                                }
                            }
                        }
                    }
                },
                "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/onboarding": {
            "post": {
                "tags": [
                    "Sell"
                ],
                "summary": "Creates a URL that onboards a user for selling: the user signs in or registers (with your identifier\nlinked when you provide one), verifies a payout account (bank account, card or PayPal) and is handed\nback to your returnUrl. No order is placed; afterwards you place sell orders for the user through the API.",
                "operationId": "post_app_v2_sell_onboarding_onboarding",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/OnboardingRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER047",
                                                "ER053",
                                                "ER099",
                                                "ER102",
                                                "ER308",
                                                "ER331",
                                                "ER340",
                                                "ER367",
                                                "ER417",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER047": {
                                            "code": "ER047",
                                            "message": "Invalid return URL.",
                                            "solution": "Provide a valid return URL."
                                        },
                                        "ER053": {
                                            "code": "ER053",
                                            "message": "Missing identifier.",
                                            "solution": "Provide a valid identifier."
                                        },
                                        "ER099": {
                                            "code": "ER099",
                                            "message": "Invalid locale provided.",
                                            "solution": "Provide a valid locale."
                                        },
                                        "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."
                                        },
                                        "ER308": {
                                            "code": "ER308",
                                            "message": "Return URL should not be blank.",
                                            "solution": "Provide a valid Return URL."
                                        },
                                        "ER331": {
                                            "code": "ER331",
                                            "message": "Secret not set",
                                            "solution": "Please contact support for assistance."
                                        },
                                        "ER340": {
                                            "code": "ER340",
                                            "message": "Api Key not found.",
                                            "solution": "Please contact support for assistance."
                                        },
                                        "ER367": {
                                            "code": "ER367",
                                            "message": "KYC share token should not be blank.",
                                            "solution": "Provide a non-empty KYC share token or omit the field."
                                        },
                                        "ER417": {
                                            "code": "ER417",
                                            "message": "Invalid payout method.",
                                            "solution": "Use only bankTransfer, creditCard or paypal in payoutMethods, and at least one of them."
                                        },
                                        "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 onboarding URL",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/OnboardingResponse"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    }
                ]
            }
        },
        "/api/v2/sell/onboarding/verify": {
            "post": {
                "tags": [
                    "Sell"
                ],
                "summary": "Checks that a sell onboarding URL was built by this endpoint for the authenticated client and has not\nbeen tampered with. The checkout calls it with the parameters and signature the URL was opened with\nbefore acting on them: 204 when they are genuine, ER336 when they are not.",
                "operationId": "post_app_v2_sell_onboarding_verify",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/OnboardingVerifyRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER331",
                                                "ER336",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER331": {
                                            "code": "ER331",
                                            "message": "Secret not set",
                                            "solution": "Please contact support for assistance."
                                        },
                                        "ER336": {
                                            "code": "ER336",
                                            "message": "Signature is invalid.",
                                            "solution": "Provide a valid Signature."
                                        },
                                        "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": "The onboarding URL is genuine."
                    }
                },
                "security": [
                    {
                        "Client": []
                    }
                ]
            }
        },
        "/api/v2/sell/orders/{id}": {
            "get": {
                "tags": [
                    "Sell"
                ],
                "summary": "Retrieves Sell order information.",
                "description": "A client token reads any sell order of its own client. An api-key is a public integration\nsecret, so it only reads the order of the end user whose credential accompanies it.",
                "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",
                                                "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": {
                                        "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."
                                        },
                                        "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": "Order status retrieved successfully.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Order2"
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/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/dca-codes/{code}": {
            "patch": {
                "tags": [
                    "User"
                ],
                "summary": "Updates the display-intent metadata of a DCA plan owned by the authenticated user.",
                "description": "The request body uses merge-patch semantics: only the fields the client sends are updated,\nomitted fields keep their current value. A field sent as null clears the stored value. The\ngateway validates every provided field (frequency, intendedAmount, name) before forwarding to\nequinox, and returns 404 when the plan does not belong to the authenticated user.",
                "operationId": "patch_app_v2_user_dcacode_update",
                "parameters": [
                    {
                        "name": "code",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/DcaCodeUpdateRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER142",
                                                "ER143",
                                                "ER144",
                                                "ER800",
                                                "ER801",
                                                "ER802",
                                                "ER803",
                                                "ER805",
                                                "ER806",
                                                "ER999"
                                            ]
                                        },
                                        "message": {
                                            "type": "string"
                                        },
                                        "solution": {
                                            "type": "string"
                                        }
                                    },
                                    "required": [
                                        "code",
                                        "message",
                                        "solution"
                                    ]
                                },
                                "example": {
                                    "errors": {
                                        "ER142": {
                                            "code": "ER142",
                                            "message": "Invalid DCA plan frequency.",
                                            "solution": "Provide one of the supported frequencies: weekly, monthly, quarterly, half_yearly."
                                        },
                                        "ER143": {
                                            "code": "ER143",
                                            "message": "Invalid intended amount.",
                                            "solution": "Provide an intended amount greater than zero, in fiat minor units (EUR cents)."
                                        },
                                        "ER144": {
                                            "code": "ER144",
                                            "message": "DCA plan name is too long.",
                                            "solution": "Provide a name of at most 255 characters."
                                        },
                                        "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 plan updated successfully.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/DcaCodeResponse"
                                }
                            }
                        }
                    },
                    "404": {
                        "description": "DCA plan not found for this user."
                    }
                },
                "security": [
                    {
                        "Client": []
                    },
                    {
                        "User": []
                    }
                ]
            }
        },
        "/api/v2/user/limit": {
            "get": {
                "tags": [
                    "User"
                ],
                "summary": "Fetches the user limits from Genesis and returns them.",
                "description": "Genesis already embeds each account's resolved bank as `bankView`, so this\nendpoint is a stateless pass-through: it normalizes and forwards what Genesis\nreturned without any further matching or enrichment.",
                "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/link-identifier": {
            "post": {
                "tags": [
                    "User"
                ],
                "summary": "This endpoint links a partner identifier to the authenticated user, after the user has logged\nin and consented (the widget calls this once consent is given). The identifier is only ever\nlinked to the authenticated user, never to a user supplied in the request body. The raw\nidentifier is forwarded to genesis, which owns hashing, storage and the partner webhook.",
                "operationId": "post_app_v2_user_linkidentifier_linkidentifier",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/LinkIdentifierRequest"
                            }
                        }
                    }
                },
                "responses": {
                    "400": {
                        "description": "A list of possible errors for this endpoint.",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "code": {
                                            "type": "string",
                                            "enum": [
                                                "ER053",
                                                "ER102",
                                                "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": {
                                        "ER053": {
                                            "code": "ER053",
                                            "message": "Missing identifier.",
                                            "solution": "Provide a valid identifier."
                                        },
                                        "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."
                                        },
                                        "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": "User identifier linked successfully."
                    }
                },
                "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",
                                                "ER073",
                                                "ER081",
                                                "ER083",
                                                "ER085",
                                                "ER090",
                                                "ER102",
                                                "ER121",
                                                "ER122",
                                                "ER123",
                                                "ER125",
                                                "ER126",
                                                "ER127",
                                                "ER181",
                                                "ER182",
                                                "ER183",
                                                "ER184",
                                                "ER418",
                                                "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."
                                        },
                                        "ER073": {
                                            "code": "ER073",
                                            "message": "Invalid date of birth provided.",
                                            "solution": "Provide a valid date of birth."
                                        },
                                        "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."
                                        },
                                        "ER418": {
                                            "code": "ER418",
                                            "message": "The date of birth cannot be changed.",
                                            "solution": "The date of birth can no longer be changed through the API. Contact our support team if it is incorrect."
                                        },
                                        "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": [
                                "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": {
            "BankByIbanRequest": {
                "required": [
                    "iban"
                ],
                "properties": {
                    "iban": {
                        "description": "The customer IBAN to resolve to a bank.",
                        "type": "string",
                        "default": null,
                        "example": "NL37BUNQ2025406444",
                        "nullable": true
                    },
                    "flow": {
                        "$ref": "#/components/schemas/BankFlow"
                    }
                },
                "type": "object"
            },
            "BanksRequest": {
                "title": "Banks request",
                "description": "Query parameters for the Pay by Bank bank list.",
                "properties": {
                    "flow": {
                        "$ref": "#/components/schemas/BankFlow"
                    },
                    "countryCode": {
                        "description": "ISO 3166-1 alpha-2 country code to filter banks by.",
                        "type": "string",
                        "default": null,
                        "example": "NL",
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "PricesRequest": {
                "title": "Prices request",
                "description": "Price request model",
                "type": "string"
            },
            "OnboardingRequest": {
                "required": [
                    "returnUrl"
                ],
                "properties": {
                    "locale": {
                        "description": "Display language as an IETF locale, case-insensitive (e.g. nl-nl, en-gb, de-at). The language must be one of nl, en, de, fr, es; the region is free-form. Omit to show the onboarding in English.",
                        "type": "string",
                        "default": null,
                        "example": "nl-nl",
                        "nullable": true
                    },
                    "identifier": {
                        "description": "Your own identifier for the user, used to link the onboarding to a BTC Direct account. Provide it here to skip the separate register-identifier call. Must be 36-255 characters. The identifier embedded in the returned onboardingUrl is not this value, so always use onboardingUrl exactly as returned.",
                        "type": "string",
                        "default": null,
                        "maxLength": 255,
                        "minLength": 36,
                        "example": "partner-unique-user-id-at-least-36-characters-long",
                        "nullable": true
                    },
                    "returnUrl": {
                        "description": "URL the user is handed back to once a payout account is verified, typically a deep link into your app. Opened as-is.",
                        "type": "string",
                        "default": null,
                        "example": "https://example.com/return",
                        "nullable": true
                    },
                    "payoutMethods": {
                        "description": "The payout types you accept payouts on, as an allow-list of at least one. The user is only offered these (further limited to what your sell payment methods enable); when only one is left it is chosen for them. Omit the field to offer every enabled type; an empty list is refused. Ends up in the URL as one comma-separated `payoutMethod` parameter.",
                        "type": "array",
                        "items": {
                            "type": "string",
                            "enum": [
                                "bankTransfer",
                                "creditCard",
                                "paypal"
                            ]
                        },
                        "default": null,
                        "minItems": 1,
                        "example": [
                            "bankTransfer",
                            "paypal"
                        ],
                        "nullable": 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
                    }
                },
                "type": "object"
            },
            "OnboardingVerifyRequest": {
                "required": [
                    "signature"
                ],
                "properties": {
                    "signature": {
                        "description": "The signature parameter of the onboarding URL.",
                        "type": "string",
                        "default": null,
                        "example": "afnsifuhwaensdkfnsdsir9324989r3ssd",
                        "nullable": true
                    },
                    "identifier": {
                        "description": "The identifier parameter of the onboarding URL, unchanged.",
                        "type": "string",
                        "default": null,
                        "nullable": true
                    },
                    "returnUrl": {
                        "description": "The returnUrl parameter of the onboarding URL, unchanged.",
                        "type": "string",
                        "default": null,
                        "nullable": true
                    },
                    "locale": {
                        "description": "The locale parameter of the onboarding URL, unchanged.",
                        "type": "string",
                        "default": null,
                        "nullable": true
                    },
                    "payoutMethod": {
                        "description": "The payoutMethod parameter of the onboarding URL, unchanged (comma-separated).",
                        "type": "string",
                        "default": null,
                        "nullable": true
                    },
                    "kycShareToken": {
                        "description": "The kycShareToken parameter of the onboarding URL, unchanged.",
                        "type": "string",
                        "default": null,
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "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"
            },
            "LinkIdentifierRequest": {
                "required": [
                    "identifier"
                ],
                "properties": {
                    "identifier": {
                        "description": "The user identifier to link to the authenticated user. In the unified-checkout flow, pass the value as received in the checkout URL, unchanged.",
                        "type": "string",
                        "default": null,
                        "maxLength": 1024,
                        "minLength": 36,
                        "example": "c6fefe8d7ac0f4113876d634e8d15f65947f1b62d4859fffcd2464d2be58b2d8",
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "VerificationStatusQuery": {
                "properties": {
                    "level": {
                        "description": "The verification level whose requirements to return.",
                        "type": "string",
                        "default": null,
                        "enum": [
                            "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": {
                    "locale": {
                        "description": "Checkout display language as an IETF locale, case-insensitive (e.g. nl-nl, en-gb, de-at). The language must be one of nl, en, de, fr, es; the region is free-form and mapped to that language. Omit to show the checkout in English.",
                        "type": "string",
                        "default": null,
                        "example": "nl-nl",
                        "nullable": true
                    },
                    "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": "Your own identifier for the user, used to link the checkout to a BTC Direct account. Provide it here to skip the separate register-identifier call. Must be 36-255 characters. The identifier embedded in the returned checkoutUrl is not this value, so always use checkoutUrl exactly as returned.",
                        "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
                    },
                    "ipv4": {
                        "description": "Customer IPv4 address or CIDR range to lock the checkout link to. Optional. A bare address matches exactly; a range matches on its network (e.g. a /24).",
                        "type": "string",
                        "default": null,
                        "example": "203.0.113.0/24",
                        "nullable": true
                    },
                    "ipv6": {
                        "description": "Customer IPv6 address or CIDR range to lock the checkout link to. Optional. Matched on the /64 network prefix.",
                        "type": "string",
                        "default": null,
                        "example": "2001:db8::/64",
                        "nullable": 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": {
                        "description": "The URL to redirect the user to for checkout. Use it exactly as returned: do not modify it or read values out of it. If you supplied an identifier, it is included here in a transformed form and cannot be read back.",
                        "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
                    },
                    "ipv4": {
                        "description": "Encrypted IPv4 lock, forwarded verbatim from the checkout URL.",
                        "type": "string",
                        "default": null,
                        "nullable": true
                    },
                    "ipv6": {
                        "description": "Encrypted IPv6 lock, forwarded verbatim from the checkout URL.",
                        "type": "string",
                        "default": null,
                        "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"
            },
            "BankByIbanResponse": {
                "required": [
                    "outcome",
                    "country",
                    "banks"
                ],
                "properties": {
                    "outcome": {
                        "$ref": "#/components/schemas/BankByIbanOutcome"
                    },
                    "country": {
                        "description": "ISO 3166-1 alpha-2 country code derived from the IBAN; null when it could not be derived.",
                        "type": "string",
                        "default": null,
                        "example": "NL",
                        "nullable": true
                    },
                    "banks": {
                        "description": "The bank(s) the IBAN resolved to: one for match, one or more for candidates, empty for none and country-not-served. A single candidate is a real case \u2014 treat the count as a list length, not as the outcome.",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/BankView"
                        },
                        "default": []
                    }
                },
                "type": "object"
            },
            "BankView": {
                "required": [
                    "bankId",
                    "name",
                    "country",
                    "supportsOneOff",
                    "supportsRecurring",
                    "bic",
                    "requiredInput"
                ],
                "properties": {
                    "bankId": {
                        "description": "Unique identifier of the bank.",
                        "type": "string",
                        "example": "ABNANL2A"
                    },
                    "name": {
                        "description": "Display name of the bank.",
                        "type": "string",
                        "example": "ABN AMRO"
                    },
                    "country": {
                        "description": "ISO country code of the bank.",
                        "type": "string",
                        "example": "NL"
                    },
                    "supportsOneOff": {
                        "description": "Whether the bank supports one-off payment initiation (PIS).",
                        "type": "boolean",
                        "example": true
                    },
                    "supportsRecurring": {
                        "description": "Whether the bank supports recurring payment initiation (PIS_RECURRING).",
                        "type": "boolean",
                        "example": false
                    },
                    "bic": {
                        "description": "BIC(s) of the bank, for matching against a customer IBAN. Empty when none are published.",
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "default": [],
                        "example": [
                            "ABNANL2A"
                        ]
                    },
                    "logo": {
                        "description": "Central logo id for the bank, resolved by Latinum (banks of one chain share an id). Render the logo asset keyed by this id; null when the bank has no BIC to derive it from.",
                        "type": "string",
                        "default": null,
                        "example": "ing",
                        "nullable": true
                    },
                    "requiredInput": {
                        "description": "Extra input fields this bank requires before a Pay by Bank session can be created for it. Empty when the bank requires none.",
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/BankInputFieldView"
                        },
                        "default": []
                    }
                },
                "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."
                    },
                    "walletVerificationRequired": {
                        "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"
                    },
                    "requiresPayPalFraudWarning": {
                        "description": "Whether the PayPal payment step shows the fraud warning for this client.",
                        "type": "boolean",
                        "example": false
                    }
                },
                "type": "object"
            },
            "OnboardingResponse": {
                "properties": {
                    "onboardingUrl": {
                        "description": "The URL to send the user to. Use it exactly as returned: do not modify it or read values out of it. Your identifier is included in a transformed form and cannot be read back.",
                        "type": "string"
                    },
                    "returnUrl": {
                        "type": "string"
                    },
                    "partner": {
                        "type": "string"
                    },
                    "identifier": {
                        "description": "Your identifier for the user, as provided.",
                        "type": "string",
                        "default": null,
                        "nullable": true
                    },
                    "locale": {
                        "type": "string",
                        "default": null,
                        "nullable": true
                    },
                    "payoutMethods": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        },
                        "default": null,
                        "nullable": true
                    }
                },
                "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"
                    },
                    "name": {
                        "description": "The display name of the savings plan.",
                        "type": "string",
                        "example": "My pension",
                        "nullable": true
                    },
                    "intendedAmount": {
                        "description": "The intended deposit amount in fiat minor units (EUR cents). Display intent only.",
                        "type": "integer",
                        "example": 5000,
                        "nullable": true
                    },
                    "frequency": {
                        "description": "The intended deposit frequency. Display intent only.",
                        "type": "string",
                        "enum": [
                            "weekly",
                            "monthly",
                            "quarterly",
                            "half_yearly"
                        ],
                        "example": "monthly",
                        "nullable": true
                    },
                    "hidden": {
                        "description": "Whether the plan is hidden from the plan overview.",
                        "type": "boolean",
                        "example": false
                    },
                    "createdAt": {
                        "description": "When the plan was created (ISO-8601). The plan overview is sorted by this field, newest first.",
                        "type": "string",
                        "format": "date-time",
                        "example": "2026-06-29T10:23:42+00:00",
                        "nullable": true
                    },
                    "targetCurrency": {
                        "$ref": "#/components/schemas/CurrencyModel"
                    }
                },
                "type": "object"
            },
            "DcaCodeUpdateRequest": {
                "properties": {
                    "name": {
                        "description": "Display name for the savings plan.",
                        "type": "string",
                        "default": null,
                        "maxLength": 255,
                        "example": "My pension",
                        "nullable": true
                    },
                    "intendedAmount": {
                        "description": "Intended deposit amount in fiat minor units (EUR cents). Display intent only.",
                        "type": "integer",
                        "default": null,
                        "minimum": 0,
                        "exclusiveMinimum": true,
                        "example": 5000,
                        "nullable": true
                    },
                    "frequency": {
                        "description": "Intended deposit frequency. Display intent only.",
                        "type": "string",
                        "default": null,
                        "enum": [
                            "weekly",
                            "biweekly",
                            "monthly",
                            "quarterly",
                            "half_yearly"
                        ],
                        "example": "monthly",
                        "nullable": true
                    },
                    "hidden": {
                        "description": "Whether the plan is hidden from the plan overview.",
                        "type": "boolean",
                        "default": null,
                        "example": true,
                        "nullable": true
                    }
                },
                "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"
            },
            "BankFlow": {
                "type": "string",
                "enum": [
                    "one-off",
                    "recurring"
                ]
            },
            "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"
            },
            "BankByIbanOutcome": {
                "type": "string",
                "enum": [
                    "match",
                    "candidates",
                    "none",
                    "country-not-served"
                ]
            },
            "BankInputFieldView": {
                "required": [
                    "name",
                    "type",
                    "variant"
                ],
                "properties": {
                    "name": {
                        "description": "Machine name of the field; used as the request key when submitting the collected value on session create.",
                        "type": "string",
                        "example": "debtorIban"
                    },
                    "type": {
                        "description": "Input type hint for rendering and client-side validation of the field.",
                        "type": "string",
                        "example": "iban"
                    },
                    "variant": {
                        "description": "Which translated copy the frontend should render for this field instead of any vendor text. Null for a field with only one meaning (e.g. `debtorIban`), which the frontend renders from its own fixed copy for that field name. Documented values are not exhaustive: Latinum can add a new one before this list is updated to match.",
                        "type": "string",
                        "default": null,
                        "enum": [
                            "username",
                            "customerNumber",
                            "nationalId",
                            null
                        ],
                        "example": "username",
                        "nullable": true
                    }
                },
                "type": "object"
            },
            "PaymentMethod": {
                "required": [
                    "code",
                    "label",
                    "psp",
                    "limit",
                    "fee",
                    "expirationPeriod",
                    "openInNewTab",
                    "context",
                    "usesEstimatedQuote"
                ],
                "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"
                            }
                        ]
                    },
                    "usesEstimatedQuote": {
                        "description": "Whether this payment method uses an estimated quote: the exchange rate is finalized when the payment arrives instead of being locked at order time (as with bank transfer).",
                        "type": "boolean",
                        "default": false,
                        "example": true
                    }
                },
                "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
                    },
                    "bankView": {
                        "oneOf": [
                            {
                                "$ref": "#/components/schemas/BankView"
                            }
                        ],
                        "nullable": true,
                        "description": "The bank Genesis resolved for this account, or null when unknown. Lets the frontend render the bank without a separate bank-list fetch. Only set for bank-transfer accounts.",
                        "default": null
                    },
                    "fastAccessEnabled": {
                        "description": "Indicates whether this account supports fast-access (instant) coin-to-fiat payout. Null when unknown; only meaningful for card accounts.",
                        "type": "boolean",
                        "default": null,
                        "readOnly": true,
                        "example": true,
                        "nullable": 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"
        }
    ]
}