{
    "components": {
        "parameters": {
            "From": {
                "description": "A start date to filter on. Results returned will filter from this timestamp (including).",
                "in": "query",
                "name": "from",
                "schema": {
                    "$ref": "#/components/schemas/Timestamp"
                }
            },
            "MarketIdParam": {
                "in": "query",
                "name": "marketId",
                "schema": {
                    "$ref": "#/components/schemas/MarketId"
                }
            },
            "PageIndex": {
                "description": "Page Index the response will return from. Zero based indexing is used. Default value is 0.",
                "in": "query",
                "name": "pageIndex",
                "schema": {
                    "default": 0,
                    "maximum": 100,
                    "type": "integer"
                }
            },
            "PageSize": {
                "description": "Size of the page returned. Default page size is 100.",
                "in": "query",
                "name": "pageSize",
                "schema": {
                    "default": 100,
                    "maximum": 1000,
                    "type": "integer"
                }
            },
            "To": {
                "description": "A end date to filter on. Results returned will filter to this timestamp (excluding).",
                "in": "query",
                "name": "to",
                "schema": {
                    "$ref": "#/components/schemas/Timestamp"
                }
            },
            "WalletId": {
                "description": "Numeric ID of the wallet",
                "example": "012345678901234",
                "in": "path",
                "name": "walletId",
                "schema": {
                    "type": "string"
                }
            },
            "X-LAPI-ACCOUNT-ID": {
                "description": "ID of the owner account which the request will delegated to if the correct permissions are in place.",
                "in": "header",
                "name": "X-LAPI-ACCOUNT-ID",
                "schema": {
                    "format": "int64",
                    "type": "integer"
                }
            },
            "X-LAPI-KEY": {
                "description": "API authentication key.",
                "in": "header",
                "name": "X-LAPI-KEY",
                "schema": {
                    "type": "string"
                }
            },
            "X-LAPI-SIGNATURE": {
                "description": "Generated signature using request properties. Signed by API secret.",
                "in": "header",
                "name": "X-LAPI-SIGNATURE",
                "schema": {
                    "type": "string"
                }
            },
            "X-LAPI-TIMESTAMP": {
                "description": "Current timestamp in unix milliseconds.",
                "in": "header",
                "name": "X-LAPI-TIMESTAMP",
                "schema": {
                    "type": "integer"
                }
            }
        },
        "requestBodies": {
            "CreateFiatWithdrawalRequest": {
                "content": {
                    "application/json": {
                        "schema": {
                            "properties": {
                                "amount": {
                                    "allOf": [
                                        {
                                            "$ref": "#/components/schemas/Amount"
                                        }
                                    ],
                                    "description": "Amount to withdraw. The currency withdrawn depends on the type setting.",
                                    "example": 10000
                                },
                                "beneficiaryId": {
                                    "description": "The beneficiary ID of the bank account the withdrawal will be paid out to. This parameter is required if the user has set up multiple beneficiaries. The beneficiary ID can be found by using the /fiat/beneficiaries endpoint.",
                                    "example": "012345678901234",
                                    "type": "string"
                                },
                                "externalId": {
                                    "description": "Optional unique ID to associate with this withdrawal. Useful to prevent duplicate sends. This field supports all alphanumeric characters including \"-\" and \"_\".",
                                    "example": "123e4567-e89b-12d3-a456-426655440000",
                                    "type": "string"
                                },
                                "fast": {
                                    "description": "If true, it will be a fast withdrawal if possible. Fast withdrawals come with a fee. Currently fast withdrawals are only available for `type=ZAR_EFT`; for other types, an error is returned. Fast withdrawals are not possible for Bank of Baroda, Deutsche Bank, Merrill Lynch South Africa, UBS, Postbank and Tyme Bank. The fee to be charged is the same as when withdrawing from the UI.",
                                    "type": "boolean"
                                },
                                "type": {
                                    "description": "Withdrawal method",
                                    "example": "ZAR_EFT",
                                    "type": "string"
                                }
                            },
                            "required": [
                                "type",
                                "amount"
                            ],
                            "type": "object"
                        }
                    }
                },
                "required": true
            },
            "CreateReceiveAddressRequest": {
                "content": {
                    "application/json": {
                        "schema": {
                            "example": {
                                "currency": "XBT",
                                "name": "Test Receive Address 1",
                                "networkId": "1",
                                "walletId": "012345678901234"
                            },
                            "properties": {
                                "currency": {
                                    "description": "Currency of receive address to create",
                                    "type": "string"
                                },
                                "name": {
                                    "description": "Optional name of receive address",
                                    "type": "string"
                                },
                                "networkId": {
                                    "description": "Network identifier",
                                    "type": "string"
                                },
                                "walletId": {
                                    "description": "Optional wallet to link to receive address. If ommitted, default wallet will be used.",
                                    "type": "string"
                                }
                            },
                            "required": [
                                "currency"
                            ],
                            "type": "object"
                        }
                    }
                },
                "required": true
            },
            "CreateWalletRequest": {
                "content": {
                    "application/json": {
                        "schema": {
                            "properties": {
                                "currency": {
                                    "description": "The currency code for the Account you want to create. Please see the Currency section for a detailed list of currencies supported by the Luno platform.",
                                    "example": "XBT",
                                    "minLength": 1,
                                    "type": "string"
                                },
                                "name": {
                                    "description": "The label to use for this account",
                                    "maxLength": 100,
                                    "minLength": 1,
                                    "type": "string"
                                }
                            },
                            "required": [
                                "name",
                                "currency"
                            ],
                            "type": "object"
                        }
                    }
                },
                "required": true
            },
            "UpdateWalletRequest": {
                "content": {
                    "application/json": {
                        "schema": {
                            "properties": {
                                "name": {
                                    "description": "The new label to update the account with",
                                    "maxLength": 100,
                                    "minLength": 1,
                                    "type": "string"
                                }
                            },
                            "required": [
                                "name"
                            ],
                            "type": "object"
                        }
                    }
                },
                "required": true
            },
            "WalletTransferRequest": {
                "content": {
                    "application/json": {
                        "schema": {
                            "properties": {
                                "amount": {
                                    "allOf": [
                                        {
                                            "$ref": "#/components/schemas/Amount"
                                        }
                                    ],
                                    "description": "The amount to transfer"
                                },
                                "clientTransferId": {
                                    "description": "User defined transfer id",
                                    "example": "012345678901234",
                                    "type": "string"
                                },
                                "toWalletId": {
                                    "example": "012345678901234",
                                    "type": "string"
                                }
                            },
                            "required": [
                                "toWalletId",
                                "amount"
                            ],
                            "type": "object"
                        }
                    }
                },
                "required": true
            }
        },
        "responses": {
            "ErrorResponse": {
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        }
                    }
                },
                "description": "Request has encountered an error"
            }
        },
        "schemas": {
            "Amount": {
                "format": "decimal",
                "pattern": "^\\d{0,12}(\\.\\d{0,18})?$",
                "type": "string"
            },
            "AmountNeg": {
                "format": "decimal",
                "pattern": "^-?\\d{0,12}(\\.\\d{0,18})?$",
                "type": "string"
            },
            "BankAccountTypeEnum": {
                "description": "Type of bank account",
                "enum": [
                    "CURRENT/CHEQUE",
                    "SAVINGS",
                    "TRANSMISSION",
                    "MOBILE_MONEY",
                    "UNKNOWN"
                ],
                "type": "string"
            },
            "BaseAccountId": {
                "description": "The base account to use in trade.",
                "type": "string"
            },
            "CandleDurationEnum": {
                "description": "Valid candle durations",
                "enum": [
                    "1m",
                    "5m",
                    "15m",
                    "30m",
                    "1h",
                    "3h",
                    "4h",
                    "8h",
                    "24h",
                    "3d",
                    "7d"
                ],
                "type": "string"
            },
            "ClientOrderId": {
                "description": "Unique id to assign to orders that can be used for reconciliation",
                "type": "string"
            },
            "CounterAccountId": {
                "description": "The counter account to use in trade.",
                "type": "string"
            },
            "Country": {
                "description": "ISO 3166-1 alpha-2 country code.",
                "pattern": "^[A-Z]{2}$",
                "type": "string"
            },
            "CreateFiatBeneficiaryBase": {
                "properties": {
                    "accountHolder": {
                        "description": "Name of the account holder.",
                        "type": "string"
                    },
                    "accountNumber": {
                        "description": "Bank account number",
                        "type": "string"
                    },
                    "accountType": {
                        "$ref": "#/components/schemas/BankAccountTypeEnum"
                    }
                },
                "required": [
                    "accountNumber",
                    "accountType",
                    "accountHolder"
                ],
                "type": "object"
            },
            "CreateFiatBeneficiaryBranchCode": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/CreateFiatBeneficiaryBase"
                    },
                    {
                        "properties": {
                            "branchCode": {
                                "description": "Branch code of the bank.",
                                "type": "string"
                            },
                            "country": {
                                "$ref": "#/components/schemas/Country"
                            }
                        },
                        "required": [
                            "branchCode",
                            "country"
                        ],
                        "type": "object"
                    }
                ]
            },
            "CreateFiatBeneficiaryContainer": {
                "oneOf": [
                    {
                        "$ref": "#/components/schemas/CreateFiatBeneficiarySwift"
                    },
                    {
                        "$ref": "#/components/schemas/CreateFiatBeneficiaryBranchCode"
                    }
                ]
            },
            "CreateFiatBeneficiarySwift": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/CreateFiatBeneficiaryBase"
                    },
                    {
                        "properties": {
                            "swiftCode": {
                                "$ref": "#/components/schemas/SwiftCode"
                            }
                        },
                        "required": [
                            "swiftCode"
                        ],
                        "type": "object"
                    }
                ]
            },
            "CryptoBaseSendRequest": {
                "properties": {
                    "amount": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Amount to send to destination address."
                    },
                    "currency": {
                        "description": "Currency to send.",
                        "example": "XBT",
                        "type": "string"
                    },
                    "description": {
                        "description": "User description for the transaction to record on the account statement.",
                        "type": "string"
                    },
                    "externalId": {
                        "description": "Optional unique ID to associate with send transaction. Useful to prevent duplicate sends in case of failure.",
                        "example": "123e4567-e89b-12d3-a456-426655440000",
                        "type": "string"
                    },
                    "walletId": {
                        "description": "Optional source wallet in case of multiple wallets for specified currency. Default wallet will be used if omitted.",
                        "example": "012345678901234",
                        "type": "string"
                    }
                },
                "required": [
                    "currency",
                    "amount"
                ],
                "type": "object"
            },
            "CryptoNetwork": {
                "properties": {
                    "name": {
                        "description": "Name of the network",
                        "example": "Test Network Alias",
                        "type": "string"
                    },
                    "nativeCurrency": {
                        "description": "The native currency for the network",
                        "example": "ETH",
                        "type": "string"
                    },
                    "networkId": {
                        "description": "Network identifier",
                        "example": "012345678901234",
                        "type": "string"
                    }
                },
                "required": [
                    "networkId",
                    "name",
                    "nativeCurrency"
                ],
                "type": "object"
            },
            "CryptoReceive": {
                "properties": {
                    "amount": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Amount received"
                    },
                    "createdAt": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Time of transaction (Unix milliseconds)"
                    },
                    "currency": {
                        "description": "Currency of receive",
                        "example": "XBT",
                        "type": "string"
                    },
                    "id": {
                        "type": "string"
                    },
                    "networkId": {
                        "description": "Network identifier",
                        "example": "012345678901234",
                        "type": "string"
                    },
                    "targetAddress": {
                        "description": "Target crypto address of receive",
                        "type": "string"
                    },
                    "walletId": {
                        "description": "Target wallet of receive",
                        "example": "012345678901234",
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "walletId",
                    "targetAddress",
                    "createdAt",
                    "currency",
                    "amount",
                    "networkId"
                ],
                "type": "object"
            },
            "CryptoReceiveAddress": {
                "properties": {
                    "address": {
                        "description": "The crypto send address",
                        "type": "string"
                    },
                    "createdAt": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Creation timestamp of address (Unix milliseconds)"
                    },
                    "currency": {
                        "description": "Currency of the address",
                        "example": "XBT",
                        "type": "string"
                    },
                    "metaData": {
                        "items": {
                            "$ref": "#/components/schemas/ReceiveAddressMetaData"
                        },
                        "type": "array"
                    },
                    "name": {
                        "description": "Assigned name of address",
                        "type": "string"
                    },
                    "networkId": {
                        "description": "Network identifier",
                        "example": "012345678901234",
                        "type": "string"
                    },
                    "receiveFee": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Minimum receive fee for address"
                    },
                    "totalReceived": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Total amount received"
                    },
                    "totalUnconfirmed": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Total amount unconfirmed"
                    },
                    "walletId": {
                        "description": "Wallet linked to address",
                        "example": "012345678901234",
                        "type": "string"
                    }
                },
                "required": [
                    "address",
                    "currency",
                    "walletId",
                    "networkId",
                    "createdAt",
                    "totalReceived",
                    "totalUnconfirmed",
                    "receiveFee",
                    "metaData"
                ],
                "type": "object"
            },
            "CryptoSend": {
                "properties": {
                    "amount": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Amount sent"
                    },
                    "createdAt": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Time of transaction (Unix milliseconds)"
                    },
                    "currency": {
                        "description": "Currency to send",
                        "example": "XBT",
                        "type": "string"
                    },
                    "description": {
                        "description": "User description assigned to transaction",
                        "type": "string"
                    },
                    "fee": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Fee paid"
                    },
                    "id": {
                        "example": "012345678901234",
                        "type": "string"
                    },
                    "status": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/SendStatusEnum"
                            }
                        ],
                        "description": "Current status of send transaction"
                    },
                    "targetAddress": {
                        "description": "Target crypto send address",
                        "type": "string"
                    },
                    "updatedAt": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Time of last transaction status update (Unix milliseconds)"
                    },
                    "walletId": {
                        "description": "Source wallet of send",
                        "example": "01234567891234",
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "currency",
                    "walletId",
                    "targetAddress",
                    "createdAt",
                    "updatedAt",
                    "amount",
                    "fee",
                    "status"
                ],
                "type": "object"
            },
            "CryptoSendEstimate": {
                "properties": {
                    "currency": {
                        "type": "string"
                    },
                    "fee": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Estimated fee"
                    }
                },
                "required": [
                    "currency",
                    "fee"
                ],
                "type": "object"
            },
            "CryptoSendRequest": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/CryptoBaseSendRequest"
                    },
                    {
                        "description": "Send to a crypto destination wallet",
                        "properties": {
                            "address": {
                                "description": "Destination crypto address.",
                                "type": "string"
                            },
                            "destinationTag": {
                                "description": "Destination Tag or Memo to identify target recipient.",
                                "type": "string"
                            },
                            "forexNoticeSelfDeclaration": {
                                "description": "Foreign Exchange Notification to adhere to Malaysian FEN rules. Required to be true if user has exceeded his/her anual investment limit in foreign currency assets.",
                                "type": "boolean"
                            },
                            "isForex": {
                                "description": "Foreign Exchange Notification to adhere to Malaysian FEN rules. Used if sending to an address hosted outside of Malaysia or if user has Domestic Ringgit Borrowing (DRB).",
                                "type": "boolean"
                            }
                        },
                        "required": [
                            "address"
                        ],
                        "type": "object"
                    }
                ]
            },
            "CryptoSendRequestContainer": {
                "oneOf": [
                    {
                        "$ref": "#/components/schemas/CryptoSendRequest"
                    },
                    {
                        "$ref": "#/components/schemas/SocialSendRequest"
                    }
                ]
            },
            "DepositStatusEnum": {
                "enum": [
                    "REQUESTED",
                    "COMPLETED",
                    "FAILED",
                    "CANCELLED",
                    "CONFIRMED",
                    "SETTLED",
                    "DELETED",
                    "VOID_REQUIRED",
                    "VOID_COMPLETED",
                    "VOID_REQUESTED",
                    "REVERSED",
                    "UNKNOWN"
                ],
                "type": "string"
            },
            "Email": {
                "pattern": "^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$",
                "type": "string"
            },
            "Error": {
                "properties": {
                    "errorCode": {
                        "enum": [
                            "ErrActiveCryptoRequestExists",
                            "ErrAmountTooBig",
                            "ErrAmountTooSmall",
                            "ErrApiKeyRevoked",
                            "ErrBankNotFound",
                            "ErrBlocked",
                            "ErrDeadlineExceeded",
                            "ErrDebitAccountNotOwnedByUser",
                            "ErrDuplicateClientMoveID",
                            "ErrDuplicateClientOrderID",
                            "ErrDuplicateSend",
                            "ErrInternalServer",
                            "ErrInsufficientBalance",
                            "ErrInsufficientPermissions",
                            "ErrInvalidAddress",
                            "ErrInvalidAPIKey",
                            "ErrInvalidArguments",
                            "ErrInvalidDateRange",
                            "ErrLessThanMinToBound",
                            "ErrLessThanMinFromBound",
                            "ErrInvalidDestinationTag",
                            "ErrInvalidMarketVolume",
                            "ErrInvalidRequest",
                            "ErrInvalidAuth",
                            "ErrIncorrectHMACSignature",
                            "ErrMarketUnavailable",
                            "ErrMaxActiveRequests",
                            "ErrMultipleBeneficiaries",
                            "ErrNotEnoughLiquidity",
                            "ErrNotFound",
                            "ErrNotImplemented",
                            "ErrNotInAddressBook",
                            "ErrPostOnlyMode",
                            "ErrPostOnlyNotAllowed",
                            "ErrInvalidPrice",
                            "ErrInvalidStopPrice",
                            "ErrInvalidVolume",
                            "ErrRateLimitExceeded",
                            "ErrReceivesDisabled",
                            "ErrRequestBodyFormat",
                            "ErrRequestTypeDoesNotSupportFastWithdrawals",
                            "ErrResourceNotFound",
                            "ErrSocialSendsDisabled",
                            "ErrTravelRule",
                            "ErrUnauthorized",
                            "ErrUserNotVerifiedForCurrency",
                            "ErrUnderMaintenance",
                            "ErrInvalidIdFormat",
                            "ErrInvalidNetworkId",
                            "ErrLunoLabsNotEnabled"
                        ],
                        "type": "string"
                    },
                    "message": {
                        "type": "string"
                    }
                },
                "required": [
                    "message",
                    "errorCode"
                ],
                "type": "object"
            },
            "FiatBeneficiary": {
                "properties": {
                    "accountHolder": {
                        "description": "Name of the account holder.",
                        "type": "string"
                    },
                    "accountNumber": {
                        "description": "Bank Account number",
                        "type": "string"
                    },
                    "accountType": {
                        "$ref": "#/components/schemas/BankAccountTypeEnum"
                    },
                    "branchCode": {
                        "description": "Branch code of bank",
                        "type": "string"
                    },
                    "country": {
                        "$ref": "#/components/schemas/Country"
                    },
                    "createdTimestamp": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Time beneficiary was created (Unix milliseconds)"
                    },
                    "id": {
                        "description": "Unique Identifier for beneficiary",
                        "type": "string"
                    },
                    "supportsFastWithdrawals": {
                        "description": "If the bank account supports fast withdrawals",
                        "type": "boolean"
                    },
                    "swiftCode": {
                        "$ref": "#/components/schemas/SwiftCode"
                    }
                },
                "required": [
                    "id",
                    "country",
                    "accountNumber",
                    "accountType",
                    "accountHolder",
                    "supportsFastWithdrawals",
                    "createdTimestamp"
                ],
                "type": "object"
            },
            "FiatDeposit": {
                "properties": {
                    "amount": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Amount that was deposited"
                    },
                    "createdTimestamp": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Time deposit was created (Unix milliseconds)"
                    },
                    "currency": {
                        "description": "Currency of the deposit",
                        "example": "XBT",
                        "type": "string"
                    },
                    "fee": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Fee for making the deposit"
                    },
                    "id": {
                        "description": "Unique identifier for the deposit request",
                        "example": "012345678901234",
                        "type": "string"
                    },
                    "paymentId": {
                        "description": "Unique identifier for the payment",
                        "type": "string"
                    },
                    "providerReference": {
                        "description": "Reference given by the provider that facilitated the deposit",
                        "type": "string"
                    },
                    "status": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/DepositStatusEnum"
                            }
                        ],
                        "description": "Current status of deposit"
                    },
                    "statusNote": {
                        "description": "Extra information about the deposit status",
                        "type": "string"
                    },
                    "targetWalletId": {
                        "description": "Wallet into which the deposit is made",
                        "example": "012345678901234",
                        "type": "string"
                    },
                    "updatedTimestamp": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Time deposit was updated (Unix milliseconds)"
                    }
                },
                "required": [
                    "id",
                    "createdTimestamp",
                    "updatedTimestamp",
                    "targetWalletId",
                    "amount",
                    "fee",
                    "currency",
                    "status",
                    "statusNote",
                    "providerReference",
                    "paymentId"
                ],
                "type": "object"
            },
            "FiatWithdrawal": {
                "properties": {
                    "amount": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Amount to withdraw"
                    },
                    "createdTimestamp": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Time withdrawal request was created (Unix milliseconds)"
                    },
                    "currency": {
                        "description": "Currency of the withdrawal request",
                        "type": "string"
                    },
                    "externalId": {
                        "description": "Value that was passed with the withdrawal request to the 3rd party",
                        "type": "string"
                    },
                    "fee": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Withdrawal fee"
                    },
                    "id": {
                        "description": "Identifier of the withdrawal request",
                        "type": "string"
                    },
                    "status": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/WithdrawalStatusEnum"
                            }
                        ],
                        "description": "Current status of withdrawal"
                    },
                    "transferId": {
                        "description": "Transfer ID is the identifier of the Withdrawal's transfer once it completes.",
                        "type": "string"
                    },
                    "type": {
                        "description": "Type distinguishes between different withdrawal methods where more than one is supported for the given currency.",
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "amount",
                    "currency",
                    "fee",
                    "status",
                    "type",
                    "createdTimestamp"
                ],
                "type": "object"
            },
            "LimitOrderRequest": {
                "properties": {
                    "baseAccountId": {
                        "$ref": "#/components/schemas/BaseAccountId"
                    },
                    "clientOrderId": {
                        "$ref": "#/components/schemas/ClientOrderId"
                    },
                    "counterAccountId": {
                        "$ref": "#/components/schemas/CounterAccountId"
                    },
                    "marketId": {
                        "$ref": "#/components/schemas/MarketId"
                    },
                    "postOnly": {
                        "default": false,
                        "description": "Specify if order is placed as post-only which means it will cancel if it would have traded immediately.",
                        "type": "boolean"
                    },
                    "price": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Limit price to place order at."
                    },
                    "side": {
                        "$ref": "#/components/schemas/SideEnum"
                    },
                    "timeInForce": {
                        "$ref": "#/components/schemas/TimeInForceEnum"
                    },
                    "timestamp": {
                        "$ref": "#/components/schemas/OrderCreationTimestamp"
                    },
                    "ttl": {
                        "$ref": "#/components/schemas/OrderTTL"
                    },
                    "volume": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Amount of volume to buy or sell."
                    }
                },
                "required": [
                    "marketId",
                    "side",
                    "volume",
                    "price"
                ],
                "type": "object"
            },
            "LinkedAccount": {
                "properties": {
                    "createdTimestamp": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Time of the linked account provided permission (Unix milliseconds)."
                    },
                    "id": {
                        "description": "The account ID (user ID) the API client can act on behalf of.",
                        "type": "string"
                    },
                    "label": {
                        "description": "A reference to the linked account.",
                        "type": "string"
                    },
                    "permissions": {
                        "description": "A list of permissions granted to the API client over the linked account. These permissions are enforced when acting on behalf of the linked account.",
                        "items": {
                            "$ref": "#/components/schemas/PermissionsEnum"
                        },
                        "type": "array"
                    }
                },
                "required": [
                    "id",
                    "permissions",
                    "label",
                    "createdTimestamp"
                ],
                "type": "object"
            },
            "MarketCandle": {
                "properties": {
                    "close": {
                        "description": "Close price",
                        "format": "decimal",
                        "type": "string"
                    },
                    "high": {
                        "description": "High price",
                        "format": "decimal",
                        "type": "string"
                    },
                    "low": {
                        "description": "Low price",
                        "format": "decimal",
                        "type": "string"
                    },
                    "open": {
                        "description": "Open price",
                        "format": "decimal",
                        "type": "string"
                    },
                    "timestamp": {
                        "description": "Opening time of candle",
                        "format": "int64",
                        "type": "integer"
                    },
                    "volume": {
                        "description": "Volume traded",
                        "format": "decimal",
                        "type": "string"
                    }
                },
                "required": [
                    "timestamp",
                    "open",
                    "high",
                    "low",
                    "close",
                    "volume"
                ],
                "type": "object"
            },
            "MarketId": {
                "description": "Crosspair ticker market identifier",
                "example": "XBTZAR",
                "type": "string"
            },
            "MarketInfo": {
                "properties": {
                    "activationTime": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Activation time when market is in POSTONLY mode"
                    },
                    "baseCurrency": {
                        "description": "Base trading currency of market",
                        "type": "string"
                    },
                    "counterCurrency": {
                        "description": "Counter trading currency of market",
                        "type": "string"
                    },
                    "feeScale": {
                        "description": "Fee decimal places",
                        "type": "integer"
                    },
                    "marketId": {
                        "$ref": "#/components/schemas/MarketId"
                    },
                    "marketStatus": {
                        "$ref": "#/components/schemas/MarketStatusEnum"
                    },
                    "maxPrice": {
                        "description": "Maximum price in counter currency allowed",
                        "format": "decimal",
                        "type": "string"
                    },
                    "maxVolume": {
                        "description": "Maximum volume in base currency allowed",
                        "format": "decimal",
                        "type": "string"
                    },
                    "minPrice": {
                        "description": "Minimum price in counter currency allowed",
                        "format": "decimal",
                        "type": "string"
                    },
                    "minVolume": {
                        "description": "Minimum volume in base currency allowed",
                        "format": "decimal",
                        "type": "string"
                    },
                    "priceScale": {
                        "description": "Price decimal places",
                        "type": "integer"
                    },
                    "volumeScale": {
                        "description": "Volume decimal places",
                        "type": "integer"
                    }
                },
                "required": [
                    "marketId",
                    "baseCurrency",
                    "counterCurrency",
                    "minPrice",
                    "maxPrice",
                    "minVolume",
                    "maxVolume",
                    "priceScale",
                    "volumeScale",
                    "feeScale",
                    "marketStatus"
                ],
                "type": "object"
            },
            "MarketOrderBaseRequest": {
                "properties": {
                    "baseAccountId": {
                        "$ref": "#/components/schemas/BaseAccountId"
                    },
                    "clientOrderId": {
                        "$ref": "#/components/schemas/ClientOrderId"
                    },
                    "counterAccountId": {
                        "$ref": "#/components/schemas/CounterAccountId"
                    },
                    "marketId": {
                        "$ref": "#/components/schemas/MarketId"
                    },
                    "side": {
                        "$ref": "#/components/schemas/SideEnum"
                    },
                    "timestamp": {
                        "$ref": "#/components/schemas/OrderCreationTimestamp"
                    },
                    "ttl": {
                        "$ref": "#/components/schemas/OrderTTL"
                    }
                },
                "required": [
                    "marketId",
                    "side"
                ],
                "type": "object"
            },
            "MarketOrderBook": {
                "properties": {
                    "asks": {
                        "items": {
                            "$ref": "#/components/schemas/MarketOrderBookEntry"
                        },
                        "type": "array"
                    },
                    "bids": {
                        "items": {
                            "$ref": "#/components/schemas/MarketOrderBookEntry"
                        },
                        "type": "array"
                    },
                    "timestamp": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ]
                    }
                },
                "required": [
                    "timestamp",
                    "asks",
                    "bids"
                ],
                "type": "object"
            },
            "MarketOrderBookEntry": {
                "properties": {
                    "orderCount": {
                        "type": "integer"
                    },
                    "price": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ]
                    },
                    "volume": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ]
                    }
                },
                "required": [
                    "price",
                    "volume",
                    "orderCount"
                ],
                "type": "object"
            },
            "MarketOrderBuyRequest": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/MarketOrderBaseRequest"
                    },
                    {
                        "properties": {
                            "counterVolume": {
                                "allOf": [
                                    {
                                        "$ref": "#/components/schemas/Amount"
                                    }
                                ],
                                "description": "Volume in counter currency to trade"
                            }
                        },
                        "required": [
                            "counterVolume"
                        ],
                        "type": "object"
                    }
                ]
            },
            "MarketOrderRequest": {
                "discriminator": {
                    "mapping": {
                        "BUY": "#/components/schemas/MarketOrderBuyRequest",
                        "SELL": "#/components/schemas/MarketOrderSellRequest"
                    },
                    "propertyName": "side"
                },
                "oneOf": [
                    {
                        "$ref": "#/components/schemas/MarketOrderBuyRequest"
                    },
                    {
                        "$ref": "#/components/schemas/MarketOrderSellRequest"
                    }
                ]
            },
            "MarketOrderSellRequest": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/MarketOrderBaseRequest"
                    },
                    {
                        "properties": {
                            "baseVolume": {
                                "allOf": [
                                    {
                                        "$ref": "#/components/schemas/Amount"
                                    }
                                ],
                                "description": "Volume in base currency to trade"
                            }
                        },
                        "required": [
                            "baseVolume"
                        ],
                        "type": "object"
                    }
                ]
            },
            "MarketStatusEnum": {
                "description": "Current market status",
                "enum": [
                    "ACTIVE",
                    "DISABLED",
                    "POSTONLY"
                ],
                "type": "string"
            },
            "MarketTicker": {
                "properties": {
                    "highPrice": {
                        "description": "24hr highest executed trade price",
                        "format": "decimal",
                        "type": "string"
                    },
                    "lastTradedPrice": {
                        "description": "Last executed trade price",
                        "format": "decimal",
                        "type": "string"
                    },
                    "lastTradedVolume": {
                        "description": "Last executed trade volume",
                        "format": "decimal",
                        "type": "string"
                    },
                    "lowPrice": {
                        "description": "24hr lowest executed trade price",
                        "format": "decimal",
                        "type": "string"
                    },
                    "marketId": {
                        "$ref": "#/components/schemas/MarketId"
                    },
                    "marketStatus": {
                        "$ref": "#/components/schemas/MarketStatusEnum"
                    },
                    "openPrice": {
                        "description": "Open price of the past 24h period",
                        "format": "decimal",
                        "type": "string"
                    },
                    "openTimestamp": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Open timestamp of the past 24h period"
                    },
                    "timestamp": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Timestamp of ticker generation"
                    },
                    "topAsk": {
                        "description": "Current top market ask price",
                        "format": "decimal",
                        "type": "string"
                    },
                    "topAskVolume": {
                        "description": "Current top market ask volume",
                        "format": "decimal",
                        "type": "string"
                    },
                    "topBid": {
                        "description": "Current top market bid price",
                        "format": "decimal",
                        "type": "string"
                    },
                    "topBidVolume": {
                        "description": "Current top market bid volume",
                        "format": "decimal",
                        "type": "string"
                    },
                    "volume": {
                        "description": "24hr trade volume in market base currency",
                        "format": "decimal",
                        "type": "string"
                    }
                },
                "required": [
                    "marketId",
                    "timestamp",
                    "openTimestamp",
                    "volume",
                    "marketStatus"
                ],
                "type": "object"
            },
            "MarketTrade": {
                "properties": {
                    "id": {
                        "description": "Trade reference number",
                        "type": "string"
                    },
                    "price": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Price at which asset was traded"
                    },
                    "side": {
                        "$ref": "#/components/schemas/SideEnum"
                    },
                    "timestamp": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "UTC Unix timestamp of trade execution"
                    },
                    "volume": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Volume in base currency traded"
                    }
                },
                "required": [
                    "id",
                    "side",
                    "price",
                    "volume",
                    "timestamp"
                ],
                "type": "object"
            },
            "OrderCreationTimestamp": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/Timestamp"
                    }
                ],
                "description": "UTC Unix timestamp of order creation."
            },
            "OrderStatusEnum": {
                "description": "The current state of the order\n\n* `PENDING` The order has been accepted and is waiting to trade.\n* `COMPLETE` The order is no longer in the order book. It has been settled/filled or has been cancelled.\n",
                "enum": [
                    "PENDING",
                    "COMPLETE"
                ],
                "type": "string"
            },
            "OrderTTL": {
                "description": "Number of milliseconds after timestamp the request is valid for",
                "format": "int64",
                "type": "integer"
            },
            "OrderTypeEnum": {
                "description": "The order type",
                "enum": [
                    "MARKET",
                    "LIMIT",
                    "STOP_LIMIT"
                ],
                "type": "string"
            },
            "PermissionsEnum": {
                "description": "Permissions enforced during authentication.",
                "enum": [
                    "Perm_R_Balance",
                    "Perm_R_Transactions",
                    "Perm_W_Send",
                    "Perm_R_Addresses",
                    "Perm_W_Addresses",
                    "Perm_R_Orders",
                    "Perm_W_Orders",
                    "Perm_R_Withdrawals",
                    "Perm_W_Withdrawals",
                    "Perm_R_UserInfo",
                    "Perm_W_UserInfo",
                    "Perm_W_ClientDebit",
                    "Perm_W_ClientCredit",
                    "Perm_R_Beneficiaries",
                    "Perm_W_Beneficiaries",
                    "Perm_R_Transfers",
                    "Perm_W_Transfers",
                    "Perm_R_Staking",
                    "Perm_W_Staking"
                ],
                "type": "string"
            },
            "ReceiveAddressMetaData": {
                "properties": {
                    "label": {
                        "type": "string"
                    },
                    "value": {
                        "type": "string"
                    }
                },
                "required": [
                    "label",
                    "value"
                ],
                "type": "object"
            },
            "SendStatusEnum": {
                "enum": [
                    "PENDING",
                    "PROCESSING",
                    "COMPLETED",
                    "CANCELLING",
                    "CANCELED",
                    "UNKNOWN"
                ],
                "type": "string"
            },
            "SideEnum": {
                "description": "Buy or sell",
                "enum": [
                    "BUY",
                    "SELL"
                ],
                "type": "string"
            },
            "SocialSendRequest": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/CryptoBaseSendRequest"
                    },
                    {
                        "description": "Send to a destination identified by an email address.",
                        "properties": {
                            "emailAddress": {
                                "allOf": [
                                    {
                                        "$ref": "#/components/schemas/Email"
                                    }
                                ],
                                "description": "Destination email address."
                            },
                            "message": {
                                "description": "Message to recipient",
                                "type": "string"
                            }
                        },
                        "required": [
                            "emailAddress"
                        ],
                        "type": "object"
                    }
                ]
            },
            "SpotOrder": {
                "discriminator": {
                    "mapping": {
                        "LIMIT": "#/components/schemas/SpotOrderLimit",
                        "MARKET": "#/components/schemas/SpotOrderMarket",
                        "STOP_LIMIT": "#/components/schemas/SpotOrderStopLimit"
                    },
                    "propertyName": "type"
                },
                "oneOf": [
                    {
                        "$ref": "#/components/schemas/SpotOrderMarket"
                    },
                    {
                        "$ref": "#/components/schemas/SpotOrderLimit"
                    },
                    {
                        "$ref": "#/components/schemas/SpotOrderStopLimit"
                    }
                ]
            },
            "SpotOrderBase": {
                "properties": {
                    "baseAccountId": {
                        "$ref": "#/components/schemas/BaseAccountId"
                    },
                    "baseFilled": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Amount filled in base currency.\n\nUse this field and `side` to determine credit or debit of funds.\n"
                    },
                    "clientOrderId": {
                        "$ref": "#/components/schemas/ClientOrderId"
                    },
                    "completedTimestamp": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Time of order completion (Unix milliseconds)\n\nThis value is set at the time of this order leaving the order book, either immediately upon posting or later on due to a trade or cancellation. Whilst the order is still pending/live it will be 0.\n"
                    },
                    "counterAccountId": {
                        "$ref": "#/components/schemas/BaseAccountId"
                    },
                    "counterFilled": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Amount filled in counter currency.\n\nUse this field and `side` to determine credit or debit of funds.\n"
                    },
                    "creationTimestamp": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Time of order creation (Unix milliseconds)"
                    },
                    "expirationTimestamp": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Time of order expiration (Unix milliseconds)\n\nThis value is set at the time of processing a request from you to cancel the order, otherwise it will be 0.\n"
                    },
                    "feeBase": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/AmountNeg"
                            }
                        ],
                        "description": "Base amount of fees to be charged"
                    },
                    "feeCounter": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/AmountNeg"
                            }
                        ],
                        "description": "Counter amount of fees to be charged"
                    },
                    "id": {
                        "description": "Order reference number",
                        "example": "012345678901234",
                        "type": "string"
                    },
                    "marketId": {
                        "$ref": "#/components/schemas/MarketId"
                    },
                    "side": {
                        "$ref": "#/components/schemas/SideEnum"
                    },
                    "status": {
                        "$ref": "#/components/schemas/OrderStatusEnum"
                    },
                    "type": {
                        "$ref": "#/components/schemas/OrderTypeEnum"
                    }
                },
                "required": [
                    "id",
                    "marketId",
                    "baseFilled",
                    "counterFilled",
                    "feeBase",
                    "feeCounter",
                    "baseAccountId",
                    "counterAccountId",
                    "creationTimestamp",
                    "side",
                    "status",
                    "type"
                ],
                "type": "object"
            },
            "SpotOrderLimit": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/SpotOrderBase"
                    },
                    {
                        "properties": {
                            "limitPrice": {
                                "allOf": [
                                    {
                                        "$ref": "#/components/schemas/Amount"
                                    }
                                ],
                                "description": "Price at which the order should match"
                            },
                            "limitVolume": {
                                "allOf": [
                                    {
                                        "$ref": "#/components/schemas/Amount"
                                    }
                                ],
                                "description": "The amount of volume in base currency to trade"
                            },
                            "timeInForce": {
                                "$ref": "#/components/schemas/TimeInForceEnum"
                            }
                        },
                        "required": [
                            "limitPrice",
                            "limitVolume",
                            "timeInForce"
                        ],
                        "type": "object"
                    }
                ]
            },
            "SpotOrderMarket": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/SpotOrderBase"
                    }
                ]
            },
            "SpotOrderStopLimit": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/SpotOrderLimit"
                    },
                    {
                        "properties": {
                            "stopDirection": {
                                "$ref": "#/components/schemas/StopLimitDirectionEnum"
                            },
                            "stopPrice": {
                                "allOf": [
                                    {
                                        "$ref": "#/components/schemas/Amount"
                                    }
                                ],
                                "description": "Trigger trade price to activate this order. Must be specified in conjunction of stopDirection."
                            }
                        },
                        "required": [
                            "stopDirection",
                            "stopPrice"
                        ],
                        "type": "object"
                    }
                ]
            },
            "SpotTrade": {
                "properties": {
                    "baseFilled": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Amount filled in base currency\n"
                    },
                    "clientOrderId": {
                        "$ref": "#/components/schemas/ClientOrderId"
                    },
                    "counterFilled": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Amount filled in counter currency\n"
                    },
                    "feeBase": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Base amount of fees to be charged"
                    },
                    "feeCounter": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Counter amount of fees to be charged"
                    },
                    "id": {
                        "description": "Trade reference number",
                        "example": "012345678901234",
                        "type": "string"
                    },
                    "marketId": {
                        "$ref": "#/components/schemas/MarketId"
                    },
                    "orderId": {
                        "description": "Order reference number",
                        "example": "012345678901234",
                        "type": "string"
                    },
                    "price": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Price the trade executed at"
                    },
                    "timestamp": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Time of trade execution (Unix milliseconds)"
                    },
                    "type": {
                        "$ref": "#/components/schemas/TradeTypeEnum"
                    },
                    "volume": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "The volume filled by this trade"
                    }
                },
                "required": [
                    "id",
                    "orderId",
                    "baseFilled",
                    "counterFilled",
                    "feeBase",
                    "feeCounter",
                    "marketId",
                    "price",
                    "volume",
                    "timestamp",
                    "type"
                ],
                "type": "object"
            },
            "SpotTradingOrderRequestContainer": {
                "anyOf": [
                    {
                        "$ref": "#/components/schemas/LimitOrderRequest"
                    },
                    {
                        "$ref": "#/components/schemas/StopLimitOrderRequest"
                    },
                    {
                        "$ref": "#/components/schemas/MarketOrderRequest"
                    }
                ]
            },
            "StopLimitDirectionEnum": {
                "description": "Side of the trigger price to activate the order enum",
                "enum": [
                    "BELOW",
                    "ABOVE"
                ],
                "type": "string"
            },
            "StopLimitDirectionRequestEnum": {
                "description": "Side of the trigger price to activate the order enum",
                "enum": [
                    "BELOW",
                    "ABOVE",
                    "RELATIVE_LAST_TRADE"
                ],
                "type": "string"
            },
            "StopLimitOrderRequest": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/LimitOrderRequest"
                    },
                    {
                        "properties": {
                            "stopDirection": {
                                "$ref": "#/components/schemas/StopLimitDirectionRequestEnum"
                            },
                            "stopPrice": {
                                "allOf": [
                                    {
                                        "$ref": "#/components/schemas/Amount"
                                    }
                                ],
                                "description": "Trigger trade price to activate this order. Must be specified in conjunction of stopDirection."
                            }
                        },
                        "required": [
                            "stopDirection",
                            "stopPrice"
                        ],
                        "type": "object"
                    }
                ]
            },
            "SwiftCode": {
                "description": "A valid SWIFT code (also known as BIC) is an 8 or 11 character code used to identify a specific bank or financial institution.\nThe first four characters represent the bank code, the next two characters represent the country code, the next two characters represent the location code, and the last three characters (optional) represent the branch code.\n",
                "pattern": "^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$",
                "type": "string"
            },
            "TimeInForceEnum": {
                "default": "GTC",
                "description": "Trade behaviour of order",
                "enum": [
                    "GTC",
                    "IOC",
                    "FOK"
                ],
                "type": "string"
            },
            "Timestamp": {
                "format": "int64",
                "pattern": "^\\d{13}$",
                "type": "integer"
            },
            "TradeTypeEnum": {
                "description": "Ask or bid",
                "enum": [
                    "ASK",
                    "BID"
                ],
                "type": "string"
            },
            "TransferStatusEnum": {
                "description": "The current state of the transfer\n\n* `CREATED` The transfer is awaiting execution\n* `MOVING` The funds have been reserved and the transfer is being executed\n* `SUCCESSFUL` The transfer has completed successfully and should reflect in the available balance\n* `FAILED` The transfer has failed\n",
                "enum": [
                    "CREATED",
                    "MOVING",
                    "SUCCESSFUL",
                    "FAILED"
                ],
                "type": "string"
            },
            "UserTradeFee": {
                "properties": {
                    "makerFeeBuy": {
                        "format": "decimal",
                        "type": "string"
                    },
                    "makerFeeSell": {
                        "format": "decimal",
                        "type": "string"
                    },
                    "takerFeeBuy": {
                        "format": "decimal",
                        "type": "string"
                    },
                    "takerFeeSell": {
                        "format": "decimal",
                        "type": "string"
                    },
                    "thirtyDayVolume": {
                        "format": "decimal",
                        "type": "string"
                    },
                    "volumeCurrency": {
                        "type": "string"
                    }
                },
                "required": [
                    "makerFeeBuy",
                    "makerFeeSell",
                    "takerFeeBuy",
                    "takerFeeSell",
                    "thirtyDayVolume",
                    "volumeCurrency"
                ],
                "type": "object"
            },
            "Wallet": {
                "properties": {
                    "availableBalance": {
                        "type": "string"
                    },
                    "balance": {
                        "type": "string"
                    },
                    "currency": {
                        "type": "string"
                    },
                    "id": {
                        "type": "string"
                    },
                    "name": {
                        "type": "string"
                    }
                },
                "required": [
                    "id",
                    "currency",
                    "name",
                    "balance",
                    "availableBalance"
                ],
                "type": "object"
            },
            "WalletTransaction": {
                "properties": {
                    "available": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Available balance after transaction is applied"
                    },
                    "availableDelta": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Change in available balance caused by transaction"
                    },
                    "balance": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Balance after transaction is applied"
                    },
                    "balanceDelta": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "Change in balance caused by transaction"
                    },
                    "currency": {
                        "description": "Wallet currency",
                        "example": "XBT",
                        "type": "string"
                    },
                    "description": {
                        "description": "Description of transaction",
                        "type": "string"
                    },
                    "kind": {
                        "description": "The kind of transaction applied",
                        "example": "TRANSFER",
                        "type": "string"
                    },
                    "reference": {
                        "description": "The reference the statement entry relates to",
                        "type": "string"
                    },
                    "rowIndex": {
                        "description": "Row index representing transaction",
                        "type": "integer"
                    },
                    "timestamp": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Time of transaction (Unix milliseconds)"
                    },
                    "walletId": {
                        "description": "Numeric ID representing wallet",
                        "example": "012345678901234",
                        "type": "string"
                    }
                },
                "required": [
                    "rowIndex",
                    "walletId",
                    "currency",
                    "kind",
                    "timestamp",
                    "balance",
                    "balanceDelta",
                    "available",
                    "availableDelta",
                    "description",
                    "reference"
                ],
                "type": "object"
            },
            "WalletTransfer": {
                "properties": {
                    "amount": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Amount"
                            }
                        ],
                        "description": "The amount transfered to the target wallet"
                    },
                    "clientTransferId": {
                        "description": "User defined transfer id",
                        "type": "string"
                    },
                    "createdAt": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Time of transfer (Unix milliseconds)"
                    },
                    "fromWalletId": {
                        "type": "string"
                    },
                    "id": {
                        "type": "string"
                    },
                    "status": {
                        "$ref": "#/components/schemas/TransferStatusEnum"
                    },
                    "toWalletId": {
                        "type": "string"
                    },
                    "updatedAt": {
                        "allOf": [
                            {
                                "$ref": "#/components/schemas/Timestamp"
                            }
                        ],
                        "description": "Time of last status update (Unix milliseconds)"
                    }
                },
                "required": [
                    "id",
                    "createdAt",
                    "updatedAt",
                    "fromWalletId",
                    "toWalletId",
                    "amount",
                    "status"
                ],
                "type": "object"
            },
            "WithdrawalStatusEnum": {
                "enum": [
                    "PENDING",
                    "PROCESSING",
                    "COMPLETED",
                    "CANCELLED",
                    "WAITING",
                    "CANCELLING",
                    "UNKNOWN"
                ],
                "type": "string"
            }
        }
    },
    "info": {
        "description": "The Luno API provides developers with a set of tools to programmatically interact with Luno platform functionalities. Standard RESTful protocol is followed.\n\n# Security\n\nIn order to authenticate with the API endpoints, an api key and api secret is required with the appropriate permissions. API keys can be generated by visiting the [API Keys section](/wallet/settings/api_keys) on the settings page. Each endpoint will specify the required permission.\n\nThe security protocol used by the platform is HMAC. Requests to all authenticated endpoints must contain the following header fields:\n- X-LAPI-KEY - Generated api key from the settings page.\n- X-LAPI-SIGNATURE - Generated signature signed by the api secret.\n- X-LAPI-TIMESTAMP - Current unix timestamp in milliseconds.\n\nRequests to all authenticated endpoints must include a generated signature which is signed by the api secret. Do not include the api secret in clear text on a request. The signature is generated by using the following fields:\n- X-LAPI-TIMESTAMP (The same value as specified in the header value)\n- REST method (GET, POST, PUT, DELETE)\n- Request URI\n- Request BODY text\n\nAs an example, look at the following CURL request:\n\n    curl -X POST \\\n     -H \"X-LAPI-KEY: gttvhmtq2bp7p\" \\\n     -H \"X-LAPI-TIMESTAMP: 1744641421953\" \\\n     -H \"X-LAPI-SIGNATURE: 4TeDyAtl0ccRcCzClLTyLl22kpIfNL2/zVccRhWmKM8=\" \\\n     -H \"Content-Type: application/json\" \\\n     -d '{\"marketId\": \"XBTZAR\", \"counterVolume\": \"2000\", \"side\": \"BUY\"}' \\\n     \"https://api.luno.com/v2/spot/trading/marketorder\"\n\nTo generate the X-LAPI-SIGNATURE in the example, follow these steps:\n- Append the HMAC required fields with a new line character as delimiter\n\n      1744641421953\n      POST\n      /v2/spot/trading/marketorder\n      {\"marketId\": \"XBTZAR\", \"counterVolume\": \"2000\", \"side\": \"BUY\"}\n\n- Convert to BASE64\n\n      MTc0NDY0MTQyMTk1MwpQT1NUCi92Mi9zcG90L3RyYWRpbmcvbWFya2V0b3JkZXIKeyJtYXJrZXRJZCI6ICJYQlRaQVIiLCAiY291bnRlclZvbHVtZSI6ICIyMDAwIiwgInNpZGUiOiAiQlVZIn0=\n\n- Apply sha256 encryption using the api secret as key\n\n      4TeDyAtl0ccRcCzClLTyLl22kpIfNL2/zVccRhWmKM8=\n\n# Rate Limiting\n\nRequests are limited to 300 per minute. Calls made in excess will receive a `Code 429` response.\n\n# Conventions\n\nTimestamps are represented as Unix milliseconds (int64). `From` timestamp filter parameters are always inclusive while `To` timestamp parameters are always exclusive. As an example, requesting data for the month of January will require the `From` timestamp as the 1st (incl.) and the `To` timestamp as the 1st of February (excl.)\n\nAmounts (prices, volumes, etc.) are represented as decimal strings with at least 2 decimal places e.g. \"123.00\", \"542.254232\", etc.\n\n# Pagination\n\nPagination is available on endpoints that return a collection of items:\n- pageIndex: The page to start returning items. Default is 0 (first page). Maximum is 100.\n- pageSize: The size of the returned page. Default is 100. Maximum is 1000.\n\nIf requested data falls outside of the pagination bounds, rather use filter options to narrow down results (From, To, etc).\n",
        "title": "Luno API",
        "version": "2.0.0",
        "x-logo": {
            "altText": "Luno",
            "href": "/en/",
            "url": "/en/developers/api/v2/logo"
        }
    },
    "openapi": "3.0.0",
    "paths": {
        "/v2/accounts/linked-accounts": {
            "get": {
                "description": "Get a list of accounts linked to this API key including permissions.\n",
                "operationId": "GetLinkedAccounts",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "$ref": "#/components/parameters/PageIndex"
                    },
                    {
                        "$ref": "#/components/parameters/PageSize"
                    },
                    {
                        "$ref": "#/components/parameters/From"
                    },
                    {
                        "$ref": "#/components/parameters/To"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "accounts": {
                                            "items": {
                                                "$ref": "#/components/schemas/LinkedAccount"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "accounts"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "List of linked accounts"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Linked Accounts",
                "tags": [
                    "Accounts"
                ],
                "x-permission": "MP_None"
            }
        },
        "/v2/crypto/networks": {
            "get": {
                "description": "Luno supports multiple networks for supported currencies. Returns a list of networks supported by specified currency.\n",
                "operationId": "GetCryptoNetworks",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "description": "Currency to request networks for",
                        "examples": {
                            "Bitcoin": {
                                "value": "XBT"
                            },
                            "Ethereum": {
                                "value": "ETH"
                            },
                            "Ripple": {
                                "value": "XRP"
                            }
                        },
                        "in": "query",
                        "name": "currency",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "networks": {
                                            "items": {
                                                "$ref": "#/components/schemas/CryptoNetwork"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "networks"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "Available networks for currency"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Crypto Networks",
                "tags": [
                    "Crypto"
                ],
                "x-permission": "MP_None"
            }
        },
        "/v2/crypto/receive-addresses": {
            "get": {
                "description": "List crypto receive addresses linked to wallets. Multiple receive addresses can be linked to a single wallet.\n",
                "operationId": "GetCryptoReceiveAddresses",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "description": "Ticker of the currency for the requested addresses",
                        "examples": {
                            "Bitcoin": {
                                "value": "XBT"
                            },
                            "Ethereum": {
                                "value": "ETH"
                            },
                            "Ripple": {
                                "value": "XRP"
                            }
                        },
                        "in": "query",
                        "name": "currency",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "Network ID of requested addresses",
                        "example": 1,
                        "in": "query",
                        "name": "networkId",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CryptoReceiveAddress"
                                }
                            }
                        },
                        "description": "List of crypto receive addresses"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Crypto Addresses",
                "tags": [
                    "Crypto"
                ],
                "x-permission": "MP_Addresses"
            },
            "post": {
                "description": "Note that limitations exists to the number of addresses that can be created per currency.\n",
                "operationId": "CreateCryptoReceiveAddress",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/CreateReceiveAddressRequest"
                },
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CryptoReceiveAddress"
                                }
                            }
                        },
                        "description": "Newly created receive address"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Create Crypto Address",
                "tags": [
                    "Crypto"
                ],
                "x-permission": "MP_Addresses"
            }
        },
        "/v2/crypto/receives": {
            "get": {
                "description": "Returns a list of transactions where crypto was received into a Luno wallet.\n",
                "operationId": "GetCryptoReceives",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "$ref": "#/components/parameters/PageIndex"
                    },
                    {
                        "$ref": "#/components/parameters/PageSize"
                    },
                    {
                        "$ref": "#/components/parameters/From"
                    },
                    {
                        "$ref": "#/components/parameters/To"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "receives": {
                                            "items": {
                                                "$ref": "#/components/schemas/CryptoReceive"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "receives"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "List of crypto transactions received"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Crypto Receives",
                "tags": [
                    "Crypto"
                ],
                "x-permission": "MP_None"
            }
        },
        "/v2/crypto/receives/{id}": {
            "get": {
                "description": "Get receive identified by transaction id.\n",
                "operationId": "GetCryptoReceive",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "description": "Numeric ID of the receive",
                        "example": "012345678901234",
                        "in": "path",
                        "name": "id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CryptoReceive"
                                }
                            }
                        },
                        "description": "Receive information"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Get Crypto Receive",
                "tags": [
                    "Crypto"
                ],
                "x-permission": "MP_None"
            }
        },
        "/v2/crypto/sends": {
            "get": {
                "description": "Returns a list of transactions where crypto was sent from a Luno wallet.\n",
                "operationId": "GetCryptoSends",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "$ref": "#/components/parameters/PageIndex"
                    },
                    {
                        "$ref": "#/components/parameters/PageSize"
                    },
                    {
                        "$ref": "#/components/parameters/From"
                    },
                    {
                        "$ref": "#/components/parameters/To"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "sends": {
                                            "items": {
                                                "$ref": "#/components/schemas/CryptoSend"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "sends"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "List of crypto sends"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Crypto Sends",
                "tags": [
                    "Crypto"
                ],
                "x-permission": "MP_None"
            },
            "post": {
                "description": "Send crypto from a Luno wallet. Please note that the currency type sent must match the receive address of the same cryptocurrency of the same type - Bitcoin to Bitcoin, Ethereum to Ethereum, etc.\n\n**Note:** Users verified in countries with money travel rules must first validate the destination address by performing a send on the web or mobile frontend. Once the destination address is validated, sends will be allowed through the API.\n",
                "operationId": "CreateCryptoSend",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CryptoSendRequestContainer"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Id of created send",
                                    "type": "string"
                                }
                            }
                        },
                        "description": "Send Id"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "409": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Perform Crypto Send",
                "tags": [
                    "Crypto"
                ],
                "x-permission": "MP_Send"
            }
        },
        "/v2/crypto/sends/estimate": {
            "post": {
                "description": "Calculate fees involved when performing a crypto send.\n",
                "operationId": "CreateCryptoSendEstimate",
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CryptoSendRequestContainer"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CryptoSendEstimate"
                                }
                            }
                        },
                        "description": "Estimated value of the crypto send"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Estimate Crypto Send Fee",
                "tags": [
                    "Crypto"
                ],
                "x-permission": "MP_Optional"
            }
        },
        "/v2/crypto/sends/{id}": {
            "get": {
                "description": "Get send identified by transaction id.\n",
                "operationId": "GetCryptoSend",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "description": "Numeric ID of the crypto send",
                        "example": "012345678901234",
                        "in": "path",
                        "name": "id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/CryptoSend"
                                }
                            }
                        },
                        "description": "Send request information"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Get Crypto Send",
                "tags": [
                    "Crypto"
                ],
                "x-permission": "MP_None"
            }
        },
        "/v2/fiat/beneficiaries": {
            "get": {
                "description": "Returns a list of bank beneficiaries.\n",
                "operationId": "GetFiatBeneficiaries",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "$ref": "#/components/parameters/PageIndex"
                    },
                    {
                        "$ref": "#/components/parameters/PageSize"
                    },
                    {
                        "description": "Filter beneficiaries by account holder name.",
                        "example": "012345678901234",
                        "in": "query",
                        "name": "accountHolder",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "beneficiaries": {
                                            "items": {
                                                "$ref": "#/components/schemas/FiatBeneficiary"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "beneficiaries"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "List of beneficiaries"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Beneficiaries",
                "tags": [
                    "Fiat"
                ],
                "x-permission": "MP_Beneficiaries"
            },
            "post": {
                "description": "Create a new beneficiary.\n",
                "operationId": "CreateFiatBeneficiary",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/CreateFiatBeneficiaryContainer"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/FiatBeneficiary"
                                }
                            }
                        },
                        "description": "Beneficiary information"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Create Beneficiary",
                "tags": [
                    "Fiat"
                ],
                "x-permission": "MP_Beneficiaries"
            }
        },
        "/v2/fiat/beneficiaries/{id}": {
            "delete": {
                "operationId": "DeleteFiatBeneficiary",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "description": "ID of the beneficiary",
                        "example": "012345678901234",
                        "in": "path",
                        "name": "id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "description": "Successfully deleted beneficiary"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Delete Beneficiary",
                "tags": [
                    "Fiat"
                ],
                "x-permission": "MP_Beneficiaries"
            },
            "get": {
                "operationId": "GetFiatBeneficiary",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "description": "ID of the beneficiary",
                        "example": "012345678901234",
                        "in": "path",
                        "name": "id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/FiatBeneficiary"
                                }
                            }
                        },
                        "description": "Beneficiary information"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Get Beneficiary",
                "tags": [
                    "Fiat"
                ],
                "x-permission": "MP_Beneficiaries"
            }
        },
        "/v2/fiat/deposits": {
            "get": {
                "description": "List all fiat deposits.\n",
                "operationId": "GetFiatDeposits",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "$ref": "#/components/parameters/PageIndex"
                    },
                    {
                        "$ref": "#/components/parameters/PageSize"
                    },
                    {
                        "$ref": "#/components/parameters/From"
                    },
                    {
                        "$ref": "#/components/parameters/To"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "deposits": {
                                            "items": {
                                                "$ref": "#/components/schemas/FiatDeposit"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "deposits"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "List of deposits"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Fiat Deposits",
                "tags": [
                    "Fiat"
                ],
                "x-permission": "MP_Withdrawals"
            }
        },
        "/v2/fiat/deposits/{id}": {
            "get": {
                "operationId": "GetFiatDeposit",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "description": "Numeric ID of the deposit",
                        "example": "012345678901234",
                        "in": "path",
                        "name": "id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/FiatDeposit"
                                }
                            }
                        },
                        "description": "Deposit information"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Get Fiat Deposit",
                "tags": [
                    "Fiat"
                ],
                "x-permission": "MP_Withdrawals"
            }
        },
        "/v2/fiat/withdrawals": {
            "get": {
                "description": "List all fiat withdrawals.\n",
                "operationId": "GetFiatWithdrawals",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "$ref": "#/components/parameters/PageIndex"
                    },
                    {
                        "$ref": "#/components/parameters/PageSize"
                    },
                    {
                        "$ref": "#/components/parameters/From"
                    },
                    {
                        "$ref": "#/components/parameters/To"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "withdrawals": {
                                            "items": {
                                                "$ref": "#/components/schemas/FiatWithdrawal"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "withdrawals"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "List of withdrawals"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Fiat Withdrawals",
                "tags": [
                    "Fiat"
                ],
                "x-permission": "MP_Withdrawals"
            },
            "post": {
                "description": "Creates a new withdrawal request to the specified beneficiary.\n",
                "operationId": "CreateFiatWithdrawal",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/CreateFiatWithdrawalRequest"
                },
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/FiatWithdrawal"
                                }
                            }
                        },
                        "description": "Withdrawal information"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Create Fiat Withdrawal",
                "tags": [
                    "Fiat"
                ],
                "x-permission": "MP_Withdrawals"
            }
        },
        "/v2/fiat/withdrawals/{id}": {
            "delete": {
                "description": "Cancels a withdrawal request. This can only be done if the request is still in state ``PENDING``.\n",
                "operationId": "DeleteFiatWithdrawal",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "description": "Numeric ID of the withdrawal",
                        "example": "012345678901234",
                        "in": "path",
                        "name": "id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Withdrawal cancel request received"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Cancel Fiat Withdrawal",
                "tags": [
                    "Fiat"
                ],
                "x-permission": "MP_Withdrawals"
            },
            "get": {
                "operationId": "GetFiatWithdrawal",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "description": "Numeric ID of the withdrawal",
                        "example": "012345678901234",
                        "in": "path",
                        "name": "id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/FiatWithdrawal"
                                }
                            }
                        },
                        "description": "Withdrawal information"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Get Fiat Withdrawal",
                "tags": [
                    "Fiat"
                ],
                "x-permission": "MP_Withdrawals"
            }
        },
        "/v2/spot/markets": {
            "get": {
                "description": "List all tradeable markets along with trade parameters.\n",
                "operationId": "GetSpotMarkets",
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "markets": {
                                            "items": {
                                                "$ref": "#/components/schemas/MarketInfo"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "markets"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "Markets info response"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Markets",
                "tags": [
                    "Markets"
                ],
                "x-permission": "MP_Optional"
            }
        },
        "/v2/spot/markets/tickers": {
            "get": {
                "description": "Get rolling 24-hour window tickers for all markets.\n",
                "operationId": "GetSpotMarketTickers",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/PageIndex"
                    },
                    {
                        "$ref": "#/components/parameters/PageSize"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "tickers": {
                                            "items": {
                                                "$ref": "#/components/schemas/MarketTicker"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "tickers"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "List of market tickers"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Market Tickers",
                "tags": [
                    "Markets"
                ],
                "x-permission": "MP_Optional"
            }
        },
        "/v2/spot/markets/{id}": {
            "get": {
                "operationId": "GetSpotMarket",
                "parameters": [
                    {
                        "description": "Crosspair ticker market id",
                        "example": "XBTZAR",
                        "in": "path",
                        "name": "id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/MarketInfo"
                                }
                            }
                        },
                        "description": "Market info responses"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Get Market",
                "tags": [
                    "Markets"
                ],
                "x-permission": "MP_Optional"
            }
        },
        "/v2/spot/markets/{id}/candles": {
            "get": {
                "description": "Get candlestick market data for the requested period and duration.\n",
                "operationId": "GetSpotMarketCandles",
                "parameters": [
                    {
                        "description": "Request candles starting on or after this timestamp",
                        "in": "query",
                        "name": "from",
                        "required": true,
                        "schema": {
                            "$ref": "#/components/schemas/Timestamp"
                        }
                    },
                    {
                        "description": "Request candles ending on or before this timestamp",
                        "in": "query",
                        "name": "to",
                        "schema": {
                            "$ref": "#/components/schemas/Timestamp"
                        }
                    },
                    {
                        "description": "The duration of each candle",
                        "in": "query",
                        "name": "duration",
                        "required": true,
                        "schema": {
                            "$ref": "#/components/schemas/CandleDurationEnum"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/PageIndex"
                    },
                    {
                        "$ref": "#/components/parameters/PageSize"
                    },
                    {
                        "description": "Crosspair ticker market id",
                        "example": "XBTZAR",
                        "in": "path",
                        "name": "id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "candles": {
                                            "items": {
                                                "$ref": "#/components/schemas/MarketCandle"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "candles"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "List of requested market candles"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Market Candles",
                "tags": [
                    "Markets"
                ],
                "x-permission": "MP_Optional"
            }
        },
        "/v2/spot/markets/{id}/orderbook": {
            "get": {
                "description": "Request orderbook for the requested depth.\n",
                "operationId": "GetSpotMarketOrderBook",
                "parameters": [
                    {
                        "description": "Crosspair ticker market id",
                        "example": "XBTZAR",
                        "in": "path",
                        "name": "id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "Requested number of entries per side in orderbook",
                        "in": "query",
                        "name": "top",
                        "schema": {
                            "default": 100,
                            "maximum": 500,
                            "minimum": 1,
                            "type": "integer"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/MarketOrderBook"
                                }
                            }
                        },
                        "description": "Market order book info"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Get Market Orderbook",
                "tags": [
                    "Markets"
                ],
                "x-permission": "MP_Optional"
            }
        },
        "/v2/spot/markets/{id}/ticker": {
            "get": {
                "description": "Get rolling 24-hour window market ticker.\n",
                "operationId": "GetSpotMarketTicker",
                "parameters": [
                    {
                        "description": "Crosspair ticker market id",
                        "example": "XBTZAR",
                        "in": "path",
                        "name": "id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/MarketTicker"
                                }
                            }
                        },
                        "description": "Market ticker"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Get Market Ticker",
                "tags": [
                    "Markets"
                ],
                "x-permission": "MP_Optional"
            }
        },
        "/v2/spot/markets/{id}/trades": {
            "get": {
                "description": "List executed trades for the requested time period sorted chronologically in descending order.\n",
                "operationId": "GetSpotMarketTrades",
                "parameters": [
                    {
                        "description": "Crosspair ticker market id",
                        "example": "XBTZAR",
                        "in": "path",
                        "name": "id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "description": "Request trades starting after timestamp",
                        "in": "query",
                        "name": "from",
                        "schema": {
                            "$ref": "#/components/schemas/Timestamp"
                        }
                    },
                    {
                        "description": "Request trades up to and including timestamp",
                        "in": "query",
                        "name": "to",
                        "schema": {
                            "$ref": "#/components/schemas/Timestamp"
                        }
                    },
                    {
                        "$ref": "#/components/parameters/PageIndex"
                    },
                    {
                        "$ref": "#/components/parameters/PageSize"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "trades": {
                                            "items": {
                                                "$ref": "#/components/schemas/MarketTrade"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "trades"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "Market trade info"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Market Trades",
                "tags": [
                    "Markets"
                ],
                "x-permission": "MP_Optional"
            }
        },
        "/v2/spot/trading/fees/{marketId}": {
            "get": {
                "description": "Return user fee tier and last 24h trade volume.\n",
                "operationId": "GetSpotTradingFees",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "description": "Crosspair ticker market id",
                        "example": "XBTZAR",
                        "in": "path",
                        "name": "marketId",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/UserTradeFee"
                                }
                            }
                        },
                        "description": "User trade fee"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Get User Fee Tier",
                "tags": [
                    "Trading"
                ],
                "x-permission": "MP_Orders"
            }
        },
        "/v2/spot/trading/orders": {
            "get": {
                "description": "List placed orders for the requested time period sorted chronologically in descending order.\n",
                "operationId": "GetSpotTradingOrders",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "$ref": "#/components/parameters/MarketIdParam"
                    },
                    {
                        "$ref": "#/components/parameters/PageIndex"
                    },
                    {
                        "$ref": "#/components/parameters/PageSize"
                    },
                    {
                        "$ref": "#/components/parameters/From"
                    },
                    {
                        "$ref": "#/components/parameters/To"
                    },
                    {
                        "description": "The order status",
                        "in": "query",
                        "name": "status",
                        "schema": {
                            "$ref": "#/components/schemas/OrderStatusEnum"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "orders": {
                                            "items": {
                                                "$ref": "#/components/schemas/SpotOrder"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "orders"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "List of orders"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Trade Orders",
                "tags": [
                    "Trading"
                ],
                "x-permission": "MP_Orders"
            },
            "post": {
                "description": "Place a trade order to be executed. Note that placed orders that execute can't be reversed.\n",
                "operationId": "CreateSpotTradingOrder",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    }
                ],
                "requestBody": {
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/SpotTradingOrderRequestContainer"
                            }
                        }
                    }
                },
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Id of order created",
                                    "type": "string"
                                }
                            }
                        },
                        "description": "Order Id"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Create Trade Order",
                "tags": [
                    "Trading"
                ],
                "x-permission": "MP_Orders"
            }
        },
        "/v2/spot/trading/orders/{id}": {
            "delete": {
                "description": "Delete pending trade order.\n",
                "operationId": "DeleteSpotTradingOrder",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "description": "Identifier of the Order",
                        "example": "012345678901234",
                        "in": "path",
                        "name": "id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "202": {
                        "description": "Order cancel request received"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Delete Trade Order",
                "tags": [
                    "Trading"
                ],
                "x-permission": "MP_Orders"
            },
            "get": {
                "operationId": "GetSpotTradingOrder",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "description": "Numeric ID of the order",
                        "example": "012345678901234",
                        "in": "path",
                        "name": "id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SpotOrder"
                                }
                            }
                        },
                        "description": "Order information"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Get Trade Order",
                "tags": [
                    "Trading"
                ],
                "x-permission": "MP_Orders"
            }
        },
        "/v2/spot/trading/trades": {
            "get": {
                "description": "Return a list of executed trades.\n",
                "operationId": "GetSpotTradingTrades",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "$ref": "#/components/parameters/MarketIdParam"
                    },
                    {
                        "$ref": "#/components/parameters/From"
                    },
                    {
                        "$ref": "#/components/parameters/To"
                    },
                    {
                        "$ref": "#/components/parameters/PageIndex"
                    },
                    {
                        "$ref": "#/components/parameters/PageSize"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "trades": {
                                            "items": {
                                                "$ref": "#/components/schemas/SpotTrade"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "trades"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "List of trades"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Trades",
                "tags": [
                    "Trading"
                ],
                "x-permission": "MP_Orders"
            }
        },
        "/v2/spot/trading/trades/{id}": {
            "get": {
                "operationId": "GetSpotTradingTrade",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "description": "Numeric ID of the trade",
                        "example": "012345678901234",
                        "in": "path",
                        "name": "id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SpotTrade"
                                }
                            }
                        },
                        "description": "Trade information"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Get Trade",
                "tags": [
                    "Trading"
                ],
                "x-permission": "MP_Orders"
            }
        },
        "/v2/wallets": {
            "get": {
                "operationId": "GetWallets",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-ACCOUNT-ID"
                    },
                    {
                        "$ref": "#/components/parameters/PageIndex"
                    },
                    {
                        "$ref": "#/components/parameters/PageSize"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "wallets": {
                                            "items": {
                                                "$ref": "#/components/schemas/Wallet"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "wallets"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "List of wallets"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Wallets",
                "tags": [
                    "Wallets"
                ],
                "x-permission": "MP_Balance"
            },
            "post": {
                "operationId": "CreateWallet",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/CreateWalletRequest"
                },
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Wallet"
                                }
                            }
                        },
                        "description": "Wallet information"
                    },
                    "400": {
                        "description": "Bad Request"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Create Wallet",
                "tags": [
                    "Wallets"
                ],
                "x-permission": "MP_Addresses"
            }
        },
        "/v2/wallets/{walletId}": {
            "get": {
                "operationId": "GetWallet",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "$ref": "#/components/parameters/WalletId"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Wallet"
                                }
                            }
                        },
                        "description": "Wallet information"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Get Wallet",
                "tags": [
                    "Wallets"
                ],
                "x-permission": "MP_Balance"
            },
            "put": {
                "operationId": "UpdateWallet",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "$ref": "#/components/parameters/WalletId"
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/UpdateWalletRequest"
                },
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/Wallet"
                                }
                            }
                        },
                        "description": "Wallet information"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Update Wallet",
                "tags": [
                    "Wallets"
                ],
                "x-permission": "MP_Addresses"
            }
        },
        "/v2/wallets/{walletId}/transactions": {
            "get": {
                "operationId": "GetWalletTransactions",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "$ref": "#/components/parameters/PageIndex"
                    },
                    {
                        "$ref": "#/components/parameters/PageSize"
                    },
                    {
                        "$ref": "#/components/parameters/WalletId"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "transactions": {
                                            "items": {
                                                "$ref": "#/components/schemas/WalletTransaction"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "transactions"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "Wallet transactions"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Transactions",
                "tags": [
                    "Wallets"
                ],
                "x-permission": "MP_Transactions"
            }
        },
        "/v2/wallets/{walletId}/transactions/{id}": {
            "get": {
                "operationId": "GetWalletTransaction",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "$ref": "#/components/parameters/WalletId"
                    },
                    {
                        "description": "Row ID of the transaction",
                        "example": "012345678901234",
                        "in": "path",
                        "name": "id",
                        "required": true,
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/WalletTransaction"
                                }
                            }
                        },
                        "description": "Transaction information"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Get Transaction",
                "tags": [
                    "Wallets"
                ],
                "x-permission": "MP_Transactions"
            }
        },
        "/v2/wallets/{walletId}/transfers": {
            "get": {
                "operationId": "GetWalletTransfers",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "$ref": "#/components/parameters/WalletId"
                    },
                    {
                        "$ref": "#/components/parameters/PageIndex"
                    },
                    {
                        "$ref": "#/components/parameters/PageSize"
                    },
                    {
                        "$ref": "#/components/parameters/From"
                    },
                    {
                        "$ref": "#/components/parameters/To"
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "properties": {
                                        "transfers": {
                                            "items": {
                                                "$ref": "#/components/schemas/WalletTransfer"
                                            },
                                            "type": "array"
                                        }
                                    },
                                    "required": [
                                        "transfers"
                                    ],
                                    "type": "object"
                                }
                            }
                        },
                        "description": "Wallet information"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "List Transfers",
                "tags": [
                    "Wallets"
                ],
                "x-permission": "MP_Transfers"
            },
            "post": {
                "description": "Create a transfer between internal Luno wallets. No costs are incurred.\n",
                "operationId": "CreateWalletTransfer",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "$ref": "#/components/parameters/WalletId"
                    }
                ],
                "requestBody": {
                    "$ref": "#/components/requestBodies/WalletTransferRequest"
                },
                "responses": {
                    "201": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Id of transfer created",
                                    "type": "string"
                                }
                            }
                        },
                        "description": "Transfer Id"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Create Transfer",
                "tags": [
                    "Wallets"
                ],
                "x-permission": "MP_Transfers"
            }
        },
        "/v2/wallets/{walletId}/transfers/{id}": {
            "get": {
                "operationId": "GetWalletTransfer",
                "parameters": [
                    {
                        "$ref": "#/components/parameters/X-LAPI-KEY"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-SIGNATURE"
                    },
                    {
                        "$ref": "#/components/parameters/X-LAPI-TIMESTAMP"
                    },
                    {
                        "$ref": "#/components/parameters/WalletId"
                    },
                    {
                        "example": "012345678901234",
                        "in": "path",
                        "name": "id",
                        "schema": {
                            "description": "Numeric ID of transfer",
                            "type": "string"
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/WalletTransfer"
                                }
                            }
                        },
                        "description": "Transfer information"
                    },
                    "400": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "401": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "403": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "404": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "429": {
                        "$ref": "#/components/responses/ErrorResponse"
                    },
                    "500": {
                        "$ref": "#/components/responses/ErrorResponse"
                    }
                },
                "summary": "Get Transfer",
                "tags": [
                    "Wallets"
                ],
                "x-permission": "MP_Transfers"
            }
        }
    },
    "servers": [
        {
            "description": "Luno API",
            "url": "https://api.luno.com"
        }
    ],
    "tags": [
        {
            "description": "Manage Accounts",
            "name": "Accounts",
            "x-displayName": "Accounts"
        },
        {
            "description": "Send and Receive Crypto",
            "name": "Crypto",
            "x-displayName": "Crypto"
        },
        {
            "description": "Fiat Deposits and Withdrawals",
            "name": "Fiat",
            "x-displayName": "Fiat"
        },
        {
            "description": "Exchange Market Data",
            "name": "Markets",
            "x-displayName": "Markets"
        },
        {
            "description": "Exchange Trading",
            "name": "Trading",
            "x-displayName": "Trading"
        },
        {
            "description": "Manage Wallets",
            "name": "Wallets",
            "x-displayName": "Wallets"
        }
    ]
}