{
  "components" : {
    "schemas" : {
      "AbaAccountResponse" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/FiatWithdrawalAccountDetailsResponse"
        }, {
          "properties" : {
            "accountNumber" : {
              "description" : "Bank account number.",
              "example" : "123456789",
              "type" : "string"
            },
            "address" : {
              "description" : "Street address of the account holder.",
              "example" : "Example Street 1",
              "type" : "string"
            },
            "bankName" : {
              "description" : "Beneficiary bank name.",
              "example" : "JPMorgan Chase Bank",
              "type" : "string"
            },
            "city" : {
              "description" : "City of the account holder.",
              "example" : "Example City",
              "type" : "string"
            },
            "country" : {
              "description" : "ISO 3166-1 alpha-2 country code of the account holder.",
              "example" : "US",
              "type" : "string"
            },
            "postalCode" : {
              "description" : "Postal code of the account holder.",
              "example" : "10101",
              "type" : "string"
            },
            "routingNumber" : {
              "description" : "ABA routing number (US domestic wire).",
              "example" : "021000021",
              "type" : "string"
            }
          },
          "type" : "object"
        } ]
      },
      "AssetTo" : {
        "properties" : {
          "code" : {
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL", "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "type" : "string"
          },
          "merchantAsset" : {
            "type" : "boolean"
          },
          "name" : {
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "BankAccountTo" : {
        "properties" : {
          "accountNumber" : {
            "maxLength" : 34,
            "minLength" : 0,
            "type" : "string"
          },
          "swift" : {
            "maxLength" : 11,
            "minLength" : 0,
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "BankSettlementMethodTo" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/SettlementMethodToObject"
        }, {
          "properties" : {
            "currency" : {
              "description" : "ISO 4217 code of the payment method's fiat currency",
              "enum" : [ "CZK", "EUR", "GBP", "HUF", "PLN", "USD" ],
              "example" : "EUR",
              "type" : "string"
            },
            "settlementAccount" : {
              "$ref" : "#/components/schemas/BankAccountTo",
              "description" : "The account where to send money. One of BankAccountTo or CryptoAccountTo.",
              "example" : "{'accountNumber': 'CZ123456789', 'swift': 'AAAACZBB'} or {'address': 'bc1...456', 'currency': 'BTC'}"
            }
          },
          "type" : "object"
        } ],
        "required" : [ "keepMinBalance", "type" ]
      },
      "BicAccountResponse" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/FiatWithdrawalAccountDetailsResponse"
        }, {
          "properties" : {
            "accountNumber" : {
              "description" : "Bank account number.",
              "example" : "123456789",
              "type" : "string"
            },
            "address" : {
              "description" : "Street address of the account holder.",
              "example" : "Example Street 1",
              "type" : "string"
            },
            "bankName" : {
              "description" : "Beneficiary bank name, if provided.",
              "example" : "JPMorgan Chase Bank",
              "type" : "string"
            },
            "bic" : {
              "description" : "BIC/SWIFT code.",
              "example" : "ABCDGB2L",
              "type" : "string"
            },
            "city" : {
              "description" : "City of the account holder.",
              "example" : "Example City",
              "type" : "string"
            },
            "country" : {
              "description" : "ISO 3166-1 alpha-2 country code of the account holder.",
              "example" : "GB",
              "type" : "string"
            },
            "postalCode" : {
              "description" : "Postal code of the account holder.",
              "example" : "AB12 3CD",
              "type" : "string"
            }
          },
          "type" : "object"
        } ]
      },
      "CompanyProfileTo" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/ProfileTo"
        }, {
          "properties" : {
            "registeredName" : {
              "description" : "Registered company name.",
              "example" : "ACME Inc.",
              "maxLength" : 255,
              "minLength" : 0,
              "type" : "string"
            },
            "registrationNumber" : {
              "description" : "Company registration number.",
              "example" : "12345678",
              "maxLength" : 255,
              "minLength" : 0,
              "type" : "string"
            }
          },
          "type" : "object"
        } ],
        "required" : [ "profileId" ]
      },
      "CreateCryptoDepositAccountTo" : {
        "properties" : {
          "balanceAsset" : {
            "description" : "Asset whose balance is increased when a deposit is received on this account, with the credited amount calculated using the exchange rate at the time of the deposit. If not specified, no exchange is performed and the balance of the asset matching the incoming transaction is increased.",
            "enum" : [ "CZK", "EUR", "GBP", "USD", "PLN", "USDC", "USDT", "USDG" ],
            "example" : "USD",
            "title" : "Balance asset code",
            "type" : "string"
          },
          "customerEmailAddress" : {
            "description" : "Email address of the user who uses this crypto deposit account.",
            "type" : "string"
          },
          "customerProfile" : {
            "description" : "Information about the user who uses this crypto deposit account.",
            "oneOf" : [ {
              "$ref" : "#/components/schemas/CompanyProfileTo"
            }, {
              "$ref" : "#/components/schemas/IndividualProfileTo"
            }, {
              "$ref" : "#/components/schemas/ReferenceProfileTo"
            } ]
          },
          "notifyUrl" : {
            "description" : "Webhook URL where crypto deposit webhooks will be sent.",
            "example" : "https://your-platform.com/webhooks",
            "format" : "url",
            "maxLength" : 512,
            "minLength" : 0,
            "title" : "Notify URL for sending webhooks.",
            "type" : "string"
          },
          "reference" : {
            "description" : "Any string based on your choosing which is tied to this crypto deposit account. Whenever a new deposit is performed to this account, the reference value is also assigned to the deposit.",
            "example" : "deposit-account-reference",
            "maxLength" : 512,
            "minLength" : 0,
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "CreateCryptoTopUpAccountTo" : {
        "properties" : {
          "balanceAsset" : {
            "description" : "Asset whose balance is increased when a top-up is received on this account, with the credited amount calculated using the exchange rate at the time of the top-up. If not specified, no exchange is performed and the balance of the asset matching the incoming transaction is increased.",
            "enum" : [ "CZK", "EUR", "GBP", "USD", "PLN", "USDC", "USDT", "USDG" ],
            "example" : "USD",
            "title" : "Balance asset code",
            "type" : "string"
          },
          "notifyUrl" : {
            "description" : "Webhook URL where crypto top-up webhooks will be sent.",
            "example" : "https://your-platform.com/webhooks",
            "format" : "url",
            "maxLength" : 512,
            "minLength" : 0,
            "title" : "Notify URL for sending webhooks.",
            "type" : "string"
          },
          "reference" : {
            "description" : "Any string based on your choosing which is tied to this crypto top-up account. Whenever a new top-up is performed to this account, the reference value is also assigned to the top-up.",
            "maxLength" : 512,
            "minLength" : 0,
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "CreateFiatWithdrawalAccountRequest" : {
        "description" : "Request to create a fiat withdrawal account. Provide exactly one account variant: 'iban', or 'accountNumber'+'bic'.",
        "properties" : {
          "account" : {
            "$ref" : "#/components/schemas/FiatWithdrawalAccountDetailsRequest",
            "description" : "Bank account details. Provide either 'iban' or 'accountNumber'+'bic'."
          },
          "accountHolderName" : {
            "description" : "Name of the account holder.",
            "example" : "John Doe",
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string"
          },
          "accountName" : {
            "description" : "Name of the fiat withdrawal account.",
            "example" : "My EUR Account",
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string"
          }
        },
        "required" : [ "account", "accountHolderName", "accountName" ],
        "type" : "object"
      },
      "CreateFiatWithdrawalAccountResponse" : {
        "properties" : {
          "account" : {
            "description" : "Bank account details.",
            "oneOf" : [ {
              "$ref" : "#/components/schemas/AbaAccountResponse"
            }, {
              "$ref" : "#/components/schemas/BicAccountResponse"
            }, {
              "$ref" : "#/components/schemas/IbanAccountResponse"
            } ]
          },
          "accountHolderName" : {
            "description" : "Name of the account holder.",
            "example" : "John Doe",
            "type" : "string"
          },
          "accountId" : {
            "description" : "Fiat withdrawal account ID.",
            "example" : "fwaAbCdEf123456",
            "type" : "string"
          },
          "accountName" : {
            "description" : "Name of the fiat withdrawal account.",
            "example" : "My EUR Account",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "CreateFiatWithdrawalScheduleRestRequest" : {
        "properties" : {
          "accountId" : {
            "description" : "ID of the fiat withdrawal account to sweep.",
            "example" : "fwaAbCdEf123456",
            "minLength" : 1,
            "type" : "string"
          },
          "currency" : {
            "description" : "Currency to sweep.",
            "enum" : [ "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "example" : "EUR",
            "type" : "string"
          },
          "frequency" : {
            "description" : "Sweep cadence.",
            "enum" : [ "DAILY", "WEEKLY", "MONTHLY" ],
            "example" : "WEEKLY",
            "type" : "string"
          },
          "frequencyDay" : {
            "description" : "Day selector for the sweep. Null for DAILY; 1-7 (Monday=1) for WEEKLY; 1-31 for MONTHLY.",
            "example" : 1,
            "format" : "int32",
            "type" : "integer"
          },
          "minimumAmount" : {
            "description" : "Optional minimum the net swept amount must reach for a withdrawal to be created. When the sweep is below this value the run is skipped. Omit for no minimum.",
            "example" : "50.00",
            "type" : "number"
          },
          "minimumBalance" : {
            "description" : "Balance floor in major units of the selected currency. Only the excess above this floor is swept.",
            "example" : "1000.00",
            "type" : "number"
          }
        },
        "required" : [ "accountId", "currency", "frequency", "minimumBalance" ],
        "type" : "object"
      },
      "CreatePayoutRequest" : {
        "properties" : {
          "address" : {
            "example" : "3J98t…NLy",
            "maxLength" : 140,
            "minLength" : 26,
            "title" : "The target crypto address.",
            "type" : "string"
          },
          "amountFrom" : {
            "description" : "Either this or amountTo must be present.",
            "example" : 10,
            "title" : "Source amount the merchant wants to withdraw",
            "type" : "number"
          },
          "amountTo" : {
            "description" : "Either this or amountFrom must be present.",
            "title" : "Target crypto amount the merchant wants to receive.",
            "type" : "number"
          },
          "btcPriority" : {
            "description" : "If present, the priority value is used only for payment methods which support priority settings (currently only BITCOIN_BLOCKCHAIN_MAINNET_BTC, legacy code BITCOIN_BTC). If not present, HIGH is used by default for payment methods which support it (currently only BITCOIN_BLOCKCHAIN_MAINNET_BTC, legacy code BITCOIN_BTC). For other methods, the automatically resolved value is used and the set value is ignored.",
            "enum" : [ "LOW", "MEDIUM", "HIGH" ],
            "example" : "HIGH",
            "title" : "The crypto transaction priority.",
            "type" : "string"
          },
          "currencyFrom" : {
            "$ref" : "#/components/schemas/OsTransactionCreationCurrencyFrom",
            "type" : "string"
          },
          "currencyTo" : {
            "deprecated" : true,
            "description" : "Superseded by paymentMethodId. Should not be used anymore.",
            "enum" : [ "BTC", "LTC" ],
            "example" : "BTC",
            "title" : "ID of the target crypto asset to be paid off.",
            "type" : "string"
          },
          "customerEmail" : {
            "description" : "The email address to which email notifications for the customer will be sent.",
            "example" : "customerEmail@email.com",
            "format" : "email",
            "maxLength" : 254,
            "minLength" : 0,
            "title" : "The customer e-mail.",
            "type" : "string"
          },
          "customerProfile" : {
            "description" : "Optional customer profile details to attach to the payout.",
            "oneOf" : [ {
              "$ref" : "#/components/schemas/CompanyProfileTo"
            }, {
              "$ref" : "#/components/schemas/IndividualProfileTo"
            }, {
              "$ref" : "#/components/schemas/ReferenceProfileTo"
            } ],
            "title" : "The customer profile details."
          },
          "feePaymentMode" : {
            "description" : "If provided, this value takes precedence over treatAsGrossAmount.\nMERCHANT - debited amount is increased by the total fee.\nRECIPIENT - debited amount remains same but the recipient received amount decreased by the total fee.\nNETWORK_FEE_RECIPIENT - debited amount is increased by the processing fee\n    and recipient received amount decreased only by the network fee.\n",
            "enum" : [ "MERCHANT", "RECIPIENT", "NETWORK_FEE_RECIPIENT" ],
            "example" : "MERCHANT",
            "title" : "Experimental: Define fee distribution.",
            "type" : "string"
          },
          "isDraft" : {
            "description" : "Value that indicates whether draft or a regular payout should be created. Default value is false. Note that without opting-in to the new payout flow, setting this flag explicitly to true will result into an client side error.",
            "example" : false,
            "title" : "Indicator whether created payout is only a draft or a regular payout",
            "type" : "boolean"
          },
          "notifyEmail" : {
            "description" : "E-mail where payout notifications will be sent.",
            "example" : "notifyEmail@email.com",
            "format" : "email",
            "maxLength" : 254,
            "minLength" : 0,
            "title" : "E-mail for sending notifications.",
            "type" : "string"
          },
          "notifyUrl" : {
            "description" : "Webhook URL where payout webhooks will be sent.",
            "example" : "https://yourEShop.com/payoutProcess",
            "format" : "url",
            "maxLength" : 512,
            "minLength" : 0,
            "title" : "Notify URL for sending webhooks.",
            "type" : "string"
          },
          "paymentMethodId" : {
            "description" : "Supersedes deprecated parameter 'currencyTo'.",
            "example" : "BITCOIN-BLOCKCHAIN-MAINNET-BTC-CURRENCY",
            "title" : "ID of the payment method used to send crypto.",
            "type" : "string"
          },
          "reference" : {
            "description" : "Any data the merchant wishes to store in the payout. It might be, for instance, a JSON or any other string identifying the payout in the merchant's system. The maximum length is 512 characters.",
            "maxLength" : 512,
            "minLength" : 0,
            "type" : "string"
          },
          "treatAsGrossAmount" : {
            "description" : "The total fee (processing and network) will be deducted from the requested amount. The 'null' value is equivalent to 'false' value - the fee is not deducted from requested amount, and is deducted from the balance.",
            "example" : true,
            "title" : "The fee will be deducted from the requested amount.",
            "type" : "boolean"
          }
        },
        "required" : [ "currencyFrom" ],
        "type" : "object"
      },
      "CryptoAccountTo" : {
        "properties" : {
          "address" : {
            "maxLength" : 140,
            "minLength" : 26,
            "type" : "string"
          }
        },
        "required" : [ "address" ],
        "type" : "object"
      },
      "CryptoDepositAccountPatchRequestTo" : {
        "properties" : {
          "balanceAsset" : {
            "$ref" : "#/components/schemas/JsonNullableAnyAssetCode",
            "description" : "Asset whose balance is increased when funds are received on this account. Null clears the current value. Omit to leave unchanged.",
            "enum" : [ "CZK", "EUR", "GBP", "USD", "PLN", "USDC", "USDT", "USDG" ],
            "example" : "USD",
            "title" : "Balance asset code"
          },
          "notifyUrl" : {
            "$ref" : "#/components/schemas/JsonNullableURL",
            "description" : "Webhook URL where webhooks for this crypto funding account will be sent. Null clears the current value. Omit to leave unchanged.",
            "example" : "https://your-platform.com/webhooks",
            "title" : "Notify URL for sending webhooks."
          },
          "reference" : {
            "$ref" : "#/components/schemas/JsonNullableString",
            "description" : "Merchant-defined reference string tied to this account. Null clears the current value. Omit to leave unchanged.",
            "example" : "my-funding-account-ref-001"
          },
          "status" : {
            "$ref" : "#/components/schemas/JsonNullableMerchantCryptoFundingAccountStatus",
            "description" : "Status of the account. Omit the field to leave unchanged; an explicit null is rejected. If the account is already in a BLOCKED or CLOSED state, the status cannot be changed by a merchant.",
            "example" : "DISABLED"
          }
        },
        "type" : "object"
      },
      "CryptoDepositAccountTo" : {
        "properties" : {
          "addresses" : {
            "description" : "List of deposit addresses assigned to this account.",
            "items" : {
              "$ref" : "#/components/schemas/DepositAddressTo"
            },
            "type" : "array"
          },
          "balanceAsset" : {
            "description" : "The asset whose balance is increased when a deposit is received on this account.",
            "enum" : [ "CZK", "EUR", "GBP", "USD", "PLN", "USDC", "USDT", "USDG" ],
            "example" : "USD",
            "type" : "string"
          },
          "createdAt" : {
            "description" : "Unix timestamp when the account was created.",
            "example" : 1772539200,
            "format" : "int64",
            "type" : "integer"
          },
          "id" : {
            "description" : "Crypto deposit account identifier.",
            "example" : "cda1a2b3c4d5e7f8",
            "type" : "string"
          },
          "notifyUrl" : {
            "description" : "URL to which webhook notifications are sent when a crypto deposit is received or its status changes. If null, no notifications are sent.",
            "format" : "url",
            "type" : "string"
          },
          "reference" : {
            "description" : "Any string based on your choosing which is tied to this crypto deposit account. Whenever a new deposit is performed to this account, the reference value is also assigned to the deposit.",
            "example" : "deposit-account-reference",
            "type" : "string"
          },
          "status" : {
            "description" : "Status of the deposit account. BLOCKED is set by an administrator and cannot be changed by the merchant. CLOSED is set by the system or administrator and cannot be changed by a merchant.",
            "enum" : [ "ENABLED", "DISABLED", "BLOCKED", "CLOSED" ],
            "example" : "ENABLED",
            "type" : "string"
          },
          "updatedAt" : {
            "description" : "Unix timestamp when the account was last updated.",
            "example" : 1772539200,
            "format" : "int64",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "CryptoDepositTo" : {
        "properties" : {
          "accountId" : {
            "description" : "Crypto deposit account identifier.",
            "example" : "cda1a2b3c4d5e7f8",
            "type" : "string"
          },
          "address" : {
            "description" : "Destination crypto address that received the deposit.",
            "example" : "0xd46faFF817D27c8C10edC580eB573cd4E8fC424d",
            "type" : "string"
          },
          "balanceAmount" : {
            "description" : "Amount in the balance asset.",
            "example" : "500.00",
            "type" : "number"
          },
          "balanceAsset" : {
            "description" : "Balance asset code (crypto or fiat).",
            "enum" : [ "CZK", "EUR", "GBP", "USD", "PLN", "USDC", "USDT", "USDG" ],
            "example" : "USD",
            "type" : "string"
          },
          "chain" : {
            "description" : "Blockchain/network identifier of the transfer.",
            "enum" : [ "BITCOIN-BLOCKCHAIN-MAINNET", "BITCOIN-LIGHTNING-MAINNET", "BSC-BLOCKCHAIN-MAINNET", "ETHEREUM-ARBITRUM-ONE-MAINNET", "ETHEREUM-BLOCKCHAIN-MAINNET", "ETHEREUM-OPTIMISM-MAINNET", "PLASMA-BLOCKCHAIN-MAINNET", "ETHEREUM-POLYGON-MAINNET", "LITECOIN-BLOCKCHAIN-MAINNET", "SOLANA-BLOCKCHAIN-MAINNET", "TRON-BLOCKCHAIN-MAINNET" ],
            "example" : "ETHEREUM_BLOCKCHAIN_MAINNET",
            "type" : "string"
          },
          "exchangeRate" : {
            "description" : "Value is the number of balanceAsset units 1 paymentAsset is worth. Missing when paymentAsset equals balanceAsset (no conversion happened).",
            "example" : "79.08",
            "title" : "Exchange rate used to convert paymentAmount (in paymentAsset) into the balanceAmount (in balanceAsset)",
            "type" : "number"
          },
          "notifyUrl" : {
            "description" : "Webhook callback URL that will be notified about the crypto deposit updates.",
            "example" : "https://example.com/crypto-deposit/notify",
            "format" : "url",
            "type" : "string"
          },
          "paymentAmount" : {
            "description" : "Amount of the crypto asset received in the blockchain transaction (in crypto asset units).",
            "example" : "0.250000000",
            "type" : "number"
          },
          "paymentAsset" : {
            "description" : "Code of crypto asset used for payment.",
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL" ],
            "example" : "ETH",
            "type" : "string"
          },
          "receivedAt" : {
            "description" : "Unix timestamp when the deposit was first seen/received.",
            "example" : 1772539200,
            "format" : "int64",
            "type" : "integer"
          },
          "reference" : {
            "description" : "Value of the reference string, copied from the deposit account at creation time of the deposit.",
            "maxLength" : 512,
            "type" : "string"
          },
          "refundDetail" : {
            "$ref" : "#/components/schemas/CryptoFundingRefundDetailTo",
            "description" : "Details of the refund if the deposit was refunded (RETURNED status)."
          },
          "status" : {
            "description" : "Current processing status of the crypto deposit.",
            "enum" : [ "CONFIRMING", "PENDING_VERIFICATION", "UNASSIGNED", "DONE", "BLOCKED", "ABSORBED", "FAILED", "RETURNED" ],
            "example" : "DONE",
            "type" : "string"
          },
          "txHash" : {
            "description" : "Transaction hash on the blockchain.",
            "example" : "0xc1069c068492e9fa6ea017f226a9c5949781eab340157a14556c5e1017a95070",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "CryptoFundingRefundDetailTo" : {
        "properties" : {
          "networkCode" : {
            "description" : "Network the refund transaction was sent on. Limited to the networks on which crypto deposits can be received.",
            "enum" : [ "BITCOIN-BLOCKCHAIN-MAINNET", "LITECOIN-BLOCKCHAIN-MAINNET", "ETHEREUM-BLOCKCHAIN-MAINNET", "ETHEREUM-ARBITRUM-ONE-MAINNET", "ETHEREUM-OPTIMISM-MAINNET", "ETHEREUM-POLYGON-MAINNET", "BSC-BLOCKCHAIN-MAINNET", "SOLANA-BLOCKCHAIN-MAINNET", "TRON-BLOCKCHAIN-MAINNET", "PLASMA-BLOCKCHAIN-MAINNET" ],
            "example" : "ETHEREUM-ARBITRUM-ONE-MAINNET",
            "type" : "string"
          },
          "transactionUrl" : {
            "description" : "URL of the transaction on the blockchain explorer. Null when the network has no configured block explorer.",
            "format" : "url",
            "type" : "string"
          },
          "txHash" : {
            "description" : "Transaction hash of the refund transaction",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "CryptoSettlementMethodTo" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/SettlementMethodToObject"
        }, {
          "properties" : {
            "currency" : {
              "description" : "Well known code of the payment method's crypto asset",
              "enum" : [ "BTC", "ETH", "LTC", "POL", "SOL", "TRX", "USDC", "USDT" ],
              "example" : "BTC",
              "type" : "string"
            },
            "settlementAccount" : {
              "$ref" : "#/components/schemas/CryptoAccountTo",
              "description" : "The account where to send money. One of BankAccountTo or CryptoAccountTo.",
              "example" : "{'accountNumber': 'CZ123456789', 'swift': 'AAAACZBB'} or {'address': 'bc1...456', 'currency': 'BTC'}"
            }
          },
          "type" : "object"
        } ],
        "required" : [ "keepMinBalance", "type" ]
      },
      "CryptoTopUpAccountPatchRequestTo" : {
        "properties" : {
          "balanceAsset" : {
            "$ref" : "#/components/schemas/JsonNullableAnyAssetCode",
            "description" : "Asset whose balance is increased when funds are received on this account. Null clears the current value. Omit to leave unchanged.",
            "enum" : [ "CZK", "EUR", "GBP", "USD", "PLN", "USDC", "USDT", "USDG" ],
            "example" : "USD",
            "title" : "Balance asset code"
          },
          "notifyUrl" : {
            "$ref" : "#/components/schemas/JsonNullableURL",
            "description" : "Webhook URL where webhooks for this crypto funding account will be sent. Null clears the current value. Omit to leave unchanged.",
            "example" : "https://your-platform.com/webhooks",
            "title" : "Notify URL for sending webhooks."
          },
          "reference" : {
            "$ref" : "#/components/schemas/JsonNullableString",
            "description" : "Merchant-defined reference string tied to this account. Null clears the current value. Omit to leave unchanged.",
            "example" : "my-funding-account-ref-001"
          },
          "status" : {
            "$ref" : "#/components/schemas/JsonNullableMerchantCryptoFundingAccountStatus",
            "description" : "Status of the account. Omit to leave unchanged. If the account is in a BLOCKED status, it is not possible to modify the status.",
            "enum" : [ "ENABLED", "DISABLED" ],
            "example" : "DISABLED"
          }
        },
        "type" : "object"
      },
      "CryptoTopUpAccountTo" : {
        "properties" : {
          "addresses" : {
            "description" : "List of addresses assigned to this top-up account.",
            "items" : {
              "$ref" : "#/components/schemas/DepositAddressTo"
            },
            "type" : "array"
          },
          "balanceAsset" : {
            "description" : "The asset whose balance is increased when a top-up is received on this account.",
            "enum" : [ "CZK", "EUR", "GBP", "USD", "PLN", "USDC", "USDT", "USDG" ],
            "example" : "USD",
            "type" : "string"
          },
          "createdAt" : {
            "description" : "Unix timestamp when the top-up account was created.",
            "example" : 1772539200,
            "format" : "int64",
            "type" : "integer"
          },
          "id" : {
            "description" : "Crypto top-up account identifier.",
            "example" : "cda1a2b3c4d5e7f8",
            "type" : "string"
          },
          "notifyUrl" : {
            "description" : "URL to which webhook notifications are sent when a crypto top-up is received or its status changes. If null, no notifications are sent.",
            "format" : "url",
            "type" : "string"
          },
          "reference" : {
            "description" : "Any string based on your choosing which is tied to this crypto top-up account. Whenever a new top-up is performed to this account, the reference value is also assigned to the top-up.",
            "example" : "topup-account-reference",
            "type" : "string"
          },
          "status" : {
            "description" : "Status of the top-up account. BLOCKED is set by an administrator and cannot be changed by the merchant. CLOSED is set by the system or administrator and cannot be changed by a merchant.",
            "enum" : [ "ENABLED", "DISABLED", "BLOCKED", "CLOSED" ],
            "example" : "ENABLED",
            "type" : "string"
          },
          "updatedAt" : {
            "description" : "Unix timestamp when the top-up account was last updated.",
            "example" : 1772539200,
            "format" : "int64",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "CryptoTopUpTo" : {
        "properties" : {
          "accountId" : {
            "description" : "Crypto top-up account identifier.",
            "example" : "cda1a2b3c4d5e7f8",
            "type" : "string"
          },
          "address" : {
            "description" : "Destination crypto address that received the top-up.",
            "example" : "0xd46faFF817D27c8C10edC580eB573cd4E8fC424d",
            "type" : "string"
          },
          "balanceAmount" : {
            "description" : "Amount in the balance asset.",
            "example" : "500.00",
            "type" : "number"
          },
          "balanceAsset" : {
            "description" : "Balance asset code (crypto or fiat).",
            "enum" : [ "CZK", "EUR", "GBP", "USD", "PLN", "USDC", "USDT", "USDG" ],
            "example" : "USD",
            "type" : "string"
          },
          "chain" : {
            "description" : "Blockchain/network on which the top-up was sent.",
            "enum" : [ "BITCOIN-BLOCKCHAIN-MAINNET", "BITCOIN-LIGHTNING-MAINNET", "BSC-BLOCKCHAIN-MAINNET", "ETHEREUM-ARBITRUM-ONE-MAINNET", "ETHEREUM-BLOCKCHAIN-MAINNET", "ETHEREUM-OPTIMISM-MAINNET", "PLASMA-BLOCKCHAIN-MAINNET", "ETHEREUM-POLYGON-MAINNET", "LITECOIN-BLOCKCHAIN-MAINNET", "SOLANA-BLOCKCHAIN-MAINNET", "TRON-BLOCKCHAIN-MAINNET" ],
            "example" : "ETHEREUM_BLOCKCHAIN_MAINNET",
            "type" : "string"
          },
          "exchangeRate" : {
            "description" : "Value is the number of balanceAsset units 1 paymentAsset is worth. Missing when paymentAsset equals balanceAsset (no conversion happened).",
            "example" : "79.08",
            "title" : "Exchange rate used to convert paymentAmount (in paymentAsset) into the balanceAmount (in balanceAsset)",
            "type" : "number"
          },
          "notifyUrl" : {
            "description" : "Webhook callback URL that will be notified about the crypto top-up updates.",
            "example" : "https://example.com/crypto-topup/notify",
            "format" : "url",
            "type" : "string"
          },
          "paymentAmount" : {
            "description" : "Amount of the crypto asset received in the blockchain transaction (in crypto asset units).",
            "example" : "0.250000000",
            "type" : "number"
          },
          "paymentAsset" : {
            "description" : "Code of crypto asset used for payment.",
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL" ],
            "example" : "ETH",
            "type" : "string"
          },
          "receivedAt" : {
            "description" : "Unix timestamp when the top-up was first seen/received.",
            "example" : 1772539200,
            "format" : "int64",
            "type" : "integer"
          },
          "reference" : {
            "description" : "Value of the reference string, copied from the top-up account at creation time of the top-up.",
            "maxLength" : 512,
            "type" : "string"
          },
          "refundDetail" : {
            "$ref" : "#/components/schemas/CryptoFundingRefundDetailTo",
            "description" : "Details of the refund if the top up was refunded (RETURNED status)."
          },
          "status" : {
            "description" : "Current processing status of the crypto top-up.",
            "enum" : [ "CONFIRMING", "PENDING_VERIFICATION", "UNASSIGNED", "DONE", "BLOCKED", "ABSORBED", "FAILED", "RETURNED" ],
            "example" : "DONE",
            "type" : "string"
          },
          "txHash" : {
            "description" : "Transaction hash of the top-up on the blockchain.",
            "example" : "0xc1069c068492e9fa6ea017f226a9c5949781eab340157a14556c5e1017a95070",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "CryptoTransactionTo" : {
        "properties" : {
          "amount" : {
            "example" : "1.21",
            "title" : "The transaction amount in the Invoice customer currency.",
            "type" : "number"
          },
          "confirmations" : {
            "example" : 6,
            "format" : "int32",
            "title" : "The number of confirmations of the transaction.",
            "type" : "integer"
          },
          "createdAt" : {
            "example" : 1594376981,
            "format" : "int64",
            "title" : "The timestamp of the transaction detection.",
            "type" : "integer"
          },
          "sourceAddresses" : {
            "description" : "A list of all addresses from which the transaction amount was received. For UTXO-based blockchains (e.g., Bitcoin), there may be multiple source addresses involved in a single transaction.",
            "example" : [ "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa", "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy" ],
            "items" : {
              "type" : "string"
            },
            "title" : "List of source addresses",
            "type" : "array"
          },
          "txid" : {
            "example" : "4f13bc54e8df1620f98934078caaa59c7b480f3ed64e9838f5af519f311bb0b1",
            "title" : "The transaction ID.",
            "type" : "string"
          },
          "updatedAt" : {
            "example" : 1594376981,
            "format" : "int64",
            "title" : "The time of the last transaction update.",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "Customer" : {
        "properties" : {
          "clicks" : {
            "description" : "Number of times the customer has opened the invoice (clicked on the payment link).",
            "example" : 1,
            "format" : "int32",
            "type" : "integer"
          },
          "email" : {
            "description" : "Mailbox, where this e-mail has been sent to.",
            "example" : "customer@example.com",
            "format" : "email",
            "type" : "string"
          }
        },
        "required" : [ "email" ],
        "type" : "object"
      },
      "CustomerProfileReferenceTo" : {
        "description" : "Customer profile reference",
        "properties" : {
          "profileId" : {
            "description" : "Merchant's identifier of the customer profile.",
            "example" : "profile-12345",
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "DataPageTo" : {
        "properties" : {
          "data" : {
            "description" : "The collection of items.",
            "items" : { },
            "type" : "array"
          },
          "limit" : {
            "description" : "The number of returned items.",
            "example" : 20,
            "format" : "int32",
            "type" : "integer"
          },
          "offset" : {
            "description" : "The number of skipped items.",
            "example" : 0,
            "format" : "int32",
            "type" : "integer"
          },
          "order" : {
            "description" : "The sort column and the order of returned items.",
            "example" : "createdAt, desc",
            "type" : "string"
          },
          "query" : {
            "description" : "The searched string in items.",
            "type" : "string"
          },
          "totalCount" : {
            "description" : "The total number of items owned by the merchant.",
            "example" : 150,
            "format" : "int64",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "DataPageToCryptoDepositAccountTo" : {
        "properties" : {
          "data" : {
            "description" : "The collection of items.",
            "items" : {
              "$ref" : "#/components/schemas/CryptoDepositAccountTo"
            },
            "type" : "array"
          },
          "limit" : {
            "description" : "The number of returned items.",
            "example" : 20,
            "format" : "int32",
            "type" : "integer"
          },
          "offset" : {
            "description" : "The number of skipped items.",
            "example" : 0,
            "format" : "int32",
            "type" : "integer"
          },
          "order" : {
            "description" : "The sort column and the order of returned items.",
            "example" : "createdAt, desc",
            "type" : "string"
          },
          "query" : {
            "description" : "The searched string in items.",
            "type" : "string"
          },
          "totalCount" : {
            "description" : "The total number of items owned by the merchant.",
            "example" : 150,
            "format" : "int64",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "DataPageToCryptoDepositTo" : {
        "properties" : {
          "data" : {
            "description" : "The collection of items.",
            "items" : {
              "$ref" : "#/components/schemas/CryptoDepositTo"
            },
            "type" : "array"
          },
          "limit" : {
            "description" : "The number of returned items.",
            "example" : 20,
            "format" : "int32",
            "type" : "integer"
          },
          "offset" : {
            "description" : "The number of skipped items.",
            "example" : 0,
            "format" : "int32",
            "type" : "integer"
          },
          "order" : {
            "description" : "The sort column and the order of returned items.",
            "example" : "createdAt, desc",
            "type" : "string"
          },
          "query" : {
            "description" : "The searched string in items.",
            "type" : "string"
          },
          "totalCount" : {
            "description" : "The total number of items owned by the merchant.",
            "example" : 150,
            "format" : "int64",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "DataPageToCryptoTopUpAccountTo" : {
        "properties" : {
          "data" : {
            "description" : "The collection of items.",
            "items" : {
              "$ref" : "#/components/schemas/CryptoTopUpAccountTo"
            },
            "type" : "array"
          },
          "limit" : {
            "description" : "The number of returned items.",
            "example" : 20,
            "format" : "int32",
            "type" : "integer"
          },
          "offset" : {
            "description" : "The number of skipped items.",
            "example" : 0,
            "format" : "int32",
            "type" : "integer"
          },
          "order" : {
            "description" : "The sort column and the order of returned items.",
            "example" : "createdAt, desc",
            "type" : "string"
          },
          "query" : {
            "description" : "The searched string in items.",
            "type" : "string"
          },
          "totalCount" : {
            "description" : "The total number of items owned by the merchant.",
            "example" : 150,
            "format" : "int64",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "DataPageToCryptoTopUpTo" : {
        "properties" : {
          "data" : {
            "description" : "The collection of items.",
            "items" : {
              "$ref" : "#/components/schemas/CryptoTopUpTo"
            },
            "type" : "array"
          },
          "limit" : {
            "description" : "The number of returned items.",
            "example" : 20,
            "format" : "int32",
            "type" : "integer"
          },
          "offset" : {
            "description" : "The number of skipped items.",
            "example" : 0,
            "format" : "int32",
            "type" : "integer"
          },
          "order" : {
            "description" : "The sort column and the order of returned items.",
            "example" : "createdAt, desc",
            "type" : "string"
          },
          "query" : {
            "description" : "The searched string in items.",
            "type" : "string"
          },
          "totalCount" : {
            "description" : "The total number of items owned by the merchant.",
            "example" : 150,
            "format" : "int64",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "DataPageToFiatWithdrawalScheduleRestResponse" : {
        "properties" : {
          "data" : {
            "description" : "The collection of items.",
            "items" : {
              "$ref" : "#/components/schemas/FiatWithdrawalScheduleRestResponse"
            },
            "type" : "array"
          },
          "limit" : {
            "description" : "The number of returned items.",
            "example" : 20,
            "format" : "int32",
            "type" : "integer"
          },
          "offset" : {
            "description" : "The number of skipped items.",
            "example" : 0,
            "format" : "int32",
            "type" : "integer"
          },
          "order" : {
            "description" : "The sort column and the order of returned items.",
            "example" : "createdAt, desc",
            "type" : "string"
          },
          "query" : {
            "description" : "The searched string in items.",
            "type" : "string"
          },
          "totalCount" : {
            "description" : "The total number of items owned by the merchant.",
            "example" : 150,
            "format" : "int64",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "DataPageToFiatWithdrawalScheduleRunDetailRestResponse" : {
        "properties" : {
          "data" : {
            "description" : "The collection of items.",
            "items" : {
              "$ref" : "#/components/schemas/FiatWithdrawalScheduleRunDetailRestResponse"
            },
            "type" : "array"
          },
          "limit" : {
            "description" : "The number of returned items.",
            "example" : 20,
            "format" : "int32",
            "type" : "integer"
          },
          "offset" : {
            "description" : "The number of skipped items.",
            "example" : 0,
            "format" : "int32",
            "type" : "integer"
          },
          "order" : {
            "description" : "The sort column and the order of returned items.",
            "example" : "createdAt, desc",
            "type" : "string"
          },
          "query" : {
            "description" : "The searched string in items.",
            "type" : "string"
          },
          "totalCount" : {
            "description" : "The total number of items owned by the merchant.",
            "example" : 150,
            "format" : "int64",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "DataPageToFiatWithdrawalTo" : {
        "properties" : {
          "data" : {
            "description" : "The collection of items.",
            "items" : {
              "$ref" : "#/components/schemas/FiatWithdrawalTo"
            },
            "type" : "array"
          },
          "limit" : {
            "description" : "The number of returned items.",
            "example" : 20,
            "format" : "int32",
            "type" : "integer"
          },
          "offset" : {
            "description" : "The number of skipped items.",
            "example" : 0,
            "format" : "int32",
            "type" : "integer"
          },
          "order" : {
            "description" : "The sort column and the order of returned items.",
            "example" : "createdAt, desc",
            "type" : "string"
          },
          "query" : {
            "description" : "The searched string in items.",
            "type" : "string"
          },
          "totalCount" : {
            "description" : "The total number of items owned by the merchant.",
            "example" : 150,
            "format" : "int64",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "DataPageToInvoiceTo" : {
        "properties" : {
          "data" : {
            "description" : "The collection of items.",
            "items" : {
              "$ref" : "#/components/schemas/InvoiceTo"
            },
            "type" : "array"
          },
          "limit" : {
            "description" : "The number of returned items.",
            "example" : 20,
            "format" : "int32",
            "type" : "integer"
          },
          "offset" : {
            "description" : "The number of skipped items.",
            "example" : 0,
            "format" : "int32",
            "type" : "integer"
          },
          "order" : {
            "description" : "The sort column and the order of returned items.",
            "example" : "createdAt, desc",
            "type" : "string"
          },
          "query" : {
            "description" : "The searched string in items.",
            "type" : "string"
          },
          "totalCount" : {
            "description" : "The total number of items owned by the merchant.",
            "example" : 150,
            "format" : "int64",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "DataPageToSettlementMethodToObject" : {
        "properties" : {
          "data" : {
            "description" : "The collection of items.",
            "items" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/BankSettlementMethodTo"
              }, {
                "$ref" : "#/components/schemas/CryptoSettlementMethodTo"
              } ]
            },
            "type" : "array"
          },
          "limit" : {
            "description" : "The number of returned items.",
            "example" : 20,
            "format" : "int32",
            "type" : "integer"
          },
          "offset" : {
            "description" : "The number of skipped items.",
            "example" : 0,
            "format" : "int32",
            "type" : "integer"
          },
          "order" : {
            "description" : "The sort column and the order of returned items.",
            "example" : "createdAt, desc",
            "type" : "string"
          },
          "query" : {
            "description" : "The searched string in items.",
            "type" : "string"
          },
          "totalCount" : {
            "description" : "The total number of items owned by the merchant.",
            "example" : 150,
            "format" : "int64",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "DataPageToSettlementTo" : {
        "properties" : {
          "data" : {
            "description" : "The collection of items.",
            "items" : {
              "$ref" : "#/components/schemas/SettlementTo"
            },
            "type" : "array"
          },
          "limit" : {
            "description" : "The number of returned items.",
            "example" : 20,
            "format" : "int32",
            "type" : "integer"
          },
          "offset" : {
            "description" : "The number of skipped items.",
            "example" : 0,
            "format" : "int32",
            "type" : "integer"
          },
          "order" : {
            "description" : "The sort column and the order of returned items.",
            "example" : "createdAt, desc",
            "type" : "string"
          },
          "query" : {
            "description" : "The searched string in items.",
            "type" : "string"
          },
          "totalCount" : {
            "description" : "The total number of items owned by the merchant.",
            "example" : 150,
            "format" : "int64",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "DepositAddressTo" : {
        "properties" : {
          "address" : {
            "description" : "Address string.",
            "example" : "0xd46faFF817D27c8C10edC580eB573cd4E8fC424d",
            "type" : "string"
          },
          "paymentMethodIds" : {
            "description" : "List of supported crypto payment method codes usable with this address.",
            "example" : [ "ETHEREUM_BLOCKCHAIN_MAINNET_ETH_CURRENCY", "ETHEREUM_BLOCKCHAIN_MAINNET_USDC_STANDARD" ],
            "items" : {
              "enum" : [ "BITCOIN-BLOCKCHAIN-MAINNET-BTC-CURRENCY", "BITCOIN-LIGHTNING-MAINNET-BTC-CURRENCY", "BSC-BLOCKCHAIN-MAINNET-BNB-CURRENCY", "BSC-BLOCKCHAIN-MAINNET-USDC-BRIDGED", "BSC-BLOCKCHAIN-MAINNET-USDT-BRIDGED", "ETHEREUM-ARBITRUM-ONE-MAINNET-ETH-CURRENCY", "ETHEREUM-ARBITRUM-ONE-MAINNET-USDC-BRIDGED", "ETHEREUM-ARBITRUM-ONE-MAINNET-USDC-STANDARD", "ETHEREUM-ARBITRUM-ONE-MAINNET-USDT-BRIDGED", "ETHEREUM-BLOCKCHAIN-MAINNET-ETH-CURRENCY", "ETHEREUM-BLOCKCHAIN-MAINNET-USDC-STANDARD", "ETHEREUM-BLOCKCHAIN-MAINNET-EURC-STANDARD", "ETHEREUM-BLOCKCHAIN-MAINNET-USDG-STANDARD", "ETHEREUM-BLOCKCHAIN-MAINNET-USDT-STANDARD", "ETHEREUM-OPTIMISM-MAINNET-ETH-CURRENCY", "ETHEREUM-OPTIMISM-MAINNET-USDC-BRIDGED", "ETHEREUM-OPTIMISM-MAINNET-USDC-STANDARD", "ETHEREUM-OPTIMISM-MAINNET-USDT-BRIDGED", "PLASMA-BLOCKCHAIN-MAINNET-XPL-CURRENCY", "PLASMA-BLOCKCHAIN-MAINNET-USDT-STANDARD", "ETHEREUM-POLYGON-MAINNET-POL-CURRENCY", "ETHEREUM-POLYGON-MAINNET-USDC-BRIDGED", "ETHEREUM-POLYGON-MAINNET-USDC-STANDARD", "ETHEREUM-POLYGON-MAINNET-USDT-BRIDGED", "LITECOIN-BLOCKCHAIN-MAINNET-LTC-CURRENCY", "SOLANA-BLOCKCHAIN-MAINNET-SOL-CURRENCY", "SOLANA-BLOCKCHAIN-MAINNET-USDC-STANDARD", "SOLANA-BLOCKCHAIN-MAINNET-USDG-STANDARD", "SOLANA-BLOCKCHAIN-MAINNET-USDT-STANDARD", "TRON-BLOCKCHAIN-MAINNET-TRX-CURRENCY", "TRON-BLOCKCHAIN-MAINNET-USDT-STANDARD" ],
              "type" : "string"
            },
            "type" : "array"
          }
        },
        "type" : "object"
      },
      "EmailInvoiceCreationTo" : {
        "properties" : {
          "invoice" : {
            "$ref" : "#/components/schemas/InvoiceCreationTo",
            "description" : "Invoice details for the E-mail Invoice"
          },
          "sendEmailCopy" : {
            "description" : "If true, a copy of the generated e-mail will be sent to the merchant's inbox",
            "example" : true,
            "type" : "boolean"
          },
          "targetEmail" : {
            "description" : "The e-mail address where this E-mail Invoice should be sent",
            "example" : "customer@example.com",
            "format" : "email",
            "type" : "string"
          }
        },
        "required" : [ "invoice", "targetEmail" ],
        "type" : "object"
      },
      "EmailInvoiceTo" : {
        "properties" : {
          "createdAt" : {
            "example" : 1484055304,
            "format" : "int64",
            "title" : "The creation timestamp.",
            "type" : "integer"
          },
          "customer" : {
            "$ref" : "#/components/schemas/Customer"
          },
          "customerCurrency" : {
            "description" : "The currency in which the customer is supposed to pay.",
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL", "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "example" : "LTC",
            "type" : "string"
          },
          "id" : {
            "description" : "The E-mail Invoice ID.",
            "example" : "emio7g928e36",
            "type" : "string"
          },
          "merchantAmount" : {
            "description" : "The original E-mail Invoice amount.",
            "example" : 100,
            "type" : "number"
          },
          "merchantCurrency" : {
            "description" : "The original E-mail Invoice currency.",
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL", "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "example" : "EUR",
            "type" : "string"
          },
          "notifyUrl" : {
            "description" : "The URL where webhooks will be POSTed.",
            "example" : "https://yourEShop.com/orderReceived",
            "maxLength" : 512,
            "type" : "string"
          },
          "paymentLink" : {
            "description" : "URL of the payment link included in the generated E-mail Invoice",
            "example" : "https://pay.confirmo.com/public/email-invoice/asdfkeUizoasZLasdtZxXzsdIITkiawBGba?merchantId=sdafaouvreiuh",
            "type" : "string"
          },
          "product" : {
            "$ref" : "#/components/schemas/Product"
          },
          "reference" : {
            "description" : "Any data the merchant wishes to store in the invoice. It might be, for instance, a JSON or any other string identifying the invoice in the merchant's system. The maximum length is 512 characters.",
            "type" : "string"
          },
          "sendEmailCopy" : {
            "description" : "Indicates whether a copy of the generated e-mail was sent to the merchant",
            "example" : true,
            "type" : "boolean"
          },
          "settlementCurrency" : {
            "$ref" : "#/components/schemas/SettlementCurrency",
            "type" : "string"
          },
          "status" : {
            "description" : "Current status of the E-mail Invoice.",
            "enum" : [ "ACTIVE", "PAID", "EXPIRED" ],
            "example" : "expired",
            "type" : "string"
          }
        },
        "required" : [ "customer", "merchantAmount", "merchantCurrency", "product", "settlementCurrency" ],
        "type" : "object"
      },
      "ErrorResource" : {
        "properties" : {
          "errors" : {
            "items" : {
              "$ref" : "#/components/schemas/ErrorTo"
            },
            "type" : "array"
          }
        },
        "type" : "object"
      },
      "ErrorTo" : {
        "properties" : {
          "message" : {
            "type" : "string"
          },
          "requestId" : {
            "type" : "string"
          },
          "type" : {
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "ExchangeRateTo" : {
        "description" : "Represented using a map (key is an asset code, value is an exchange rate)",
        "example" : "{'AED': '142947.13'}"
      },
      "FiatTopUpInstructionTo" : {
        "discriminator" : {
          "propertyName" : "type"
        },
        "properties" : {
          "type" : {
            "type" : "string"
          }
        },
        "required" : [ "type" ]
      },
      "FiatTopUpInstructionsResponse" : {
        "properties" : {
          "instructions" : {
            "description" : "Fiat top-up instructions across every currency the merchant has set up.",
            "items" : {
              "oneOf" : [ {
                "$ref" : "#/components/schemas/IbanTopUpInstructionTo"
              }, {
                "$ref" : "#/components/schemas/WireTopUpInstructionTo"
              } ]
            },
            "type" : "array"
          }
        },
        "type" : "object"
      },
      "FiatWithdrawalAccountDetailsRequest" : {
        "description" : "Bank account details. Provide exactly one variant: 'iban', 'bic'+'accountNumber', or 'routingNumber'+'accountNumber'.",
        "properties" : {
          "accountNumber" : {
            "description" : "Account number. Requires bic (BIC variant) or routingNumber (ABA variant).",
            "example" : "123456789",
            "maxLength" : 30,
            "minLength" : 0,
            "type" : "string"
          },
          "address" : {
            "description" : "Street address of the account holder.",
            "example" : "Example Street 1",
            "maxLength" : 70,
            "minLength" : 0,
            "type" : "string"
          },
          "bankName" : {
            "description" : "Beneficiary bank name. Required for ABA accounts, and may be required for BIC accounts depending on the merchant's banking configuration.",
            "example" : "JPMorgan Chase Bank",
            "maxLength" : 70,
            "minLength" : 0,
            "type" : "string"
          },
          "bic" : {
            "description" : "BIC/SWIFT code. Required with accountNumber for the BIC variant.",
            "example" : "ABCDGB2L",
            "maxLength" : 11,
            "minLength" : 0,
            "type" : "string"
          },
          "city" : {
            "description" : "City of the account holder.",
            "example" : "Example City",
            "maxLength" : 70,
            "minLength" : 0,
            "type" : "string"
          },
          "country" : {
            "description" : "ISO 3166-1 alpha-2 country code of the account holder.",
            "enum" : [ "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "XK", "YE", "YT", "ZA", "ZM", "ZW" ],
            "example" : "IE",
            "type" : "string"
          },
          "iban" : {
            "description" : "IBAN.",
            "example" : "IE00ABCD00000000000000",
            "maxLength" : 34,
            "minLength" : 0,
            "type" : "string"
          },
          "postalCode" : {
            "description" : "Postal code of the account holder.",
            "example" : "D00 XY00",
            "maxLength" : 11,
            "minLength" : 0,
            "type" : "string"
          },
          "routingNumber" : {
            "description" : "ABA routing number (US domestic wire). Required with accountNumber for the ABA variant.",
            "example" : "021000021",
            "maxLength" : 9,
            "minLength" : 0,
            "type" : "string"
          }
        },
        "required" : [ "address", "city", "country", "postalCode" ],
        "type" : "object"
      },
      "FiatWithdrawalAccountDetailsResponse" : { },
      "FiatWithdrawalAccountResponse" : {
        "properties" : {
          "account" : {
            "description" : "Bank account details.",
            "oneOf" : [ {
              "$ref" : "#/components/schemas/AbaAccountResponse"
            }, {
              "$ref" : "#/components/schemas/BicAccountResponse"
            }, {
              "$ref" : "#/components/schemas/IbanAccountResponse"
            } ]
          },
          "accountHolderName" : {
            "description" : "Name of the account holder.",
            "example" : "John Doe",
            "type" : "string"
          },
          "accountId" : {
            "description" : "Fiat withdrawal account ID.",
            "example" : "fwaAbCdEf123456",
            "type" : "string"
          },
          "accountName" : {
            "description" : "Name of the fiat withdrawal account.",
            "example" : "My EUR Account",
            "type" : "string"
          },
          "status" : {
            "description" : "Whitelisting status of the account.",
            "enum" : [ "PENDING", "WHITELIST_PENDING", "WHITELISTED", "BLACKLISTED", "DELETED" ],
            "example" : "WHITELISTED",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "FiatWithdrawalInitiationTo" : {
        "properties" : {
          "amount" : {
            "description" : "Requested withdrawal amount.",
            "example" : "100.00",
            "type" : "number"
          },
          "createdAt" : {
            "description" : "Timestamp of creation.",
            "example" : "2026-01-01T00:00:00Z",
            "format" : "int64",
            "type" : "integer"
          },
          "currency" : {
            "description" : "Currency of the withdrawal.",
            "enum" : [ "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "example" : "EUR",
            "type" : "string"
          },
          "feeAmount" : {
            "description" : "Applied fee amount.",
            "example" : "1.50",
            "type" : "number"
          },
          "id" : {
            "description" : "Withdrawal ID.",
            "example" : "fwiAbCdEf123456",
            "type" : "string"
          },
          "reference" : {
            "description" : "Optional payment reference.",
            "example" : "payment #1234",
            "type" : "string"
          },
          "status" : {
            "description" : "Withdrawal status.",
            "enum" : [ "CREATED", "TRANSACTION_CREATED", "TRANSACTION_CREATE_FAILED", "TRANSACTION_SIGNED", "TRANSACTION_SIGN_FAILED", "COMPLETED", "TRANSACTION_EXTERNAL_PROCESSING_FAILED" ],
            "example" : "CREATED",
            "type" : "string"
          },
          "statusChangedAt" : {
            "description" : "Timestamp of last status change.",
            "example" : "2026-01-01T00:00:00Z",
            "format" : "int64",
            "type" : "integer"
          },
          "type" : {
            "description" : "Initiation type — on-demand or scheduled.",
            "enum" : [ "ON_DEMAND", "SCHEDULED" ],
            "example" : "ON_DEMAND",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "FiatWithdrawalRequest" : {
        "properties" : {
          "accountId" : {
            "description" : "ID of the fiat withdrawal account to withdraw to.",
            "example" : "fwaAbCdEf123456",
            "minLength" : 1,
            "type" : "string"
          },
          "amount" : {
            "description" : "Withdrawal amount.",
            "example" : "100.00",
            "minimum" : 0,
            "type" : "number"
          },
          "currency" : {
            "description" : "Fiat currency code.",
            "enum" : [ "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "example" : "EUR",
            "type" : "string"
          },
          "purposeOfPayment" : {
            "description" : "Purpose of payment. Required for SWIFT withdrawals.",
            "example" : "Service payment",
            "maxLength" : 256,
            "minLength" : 0,
            "type" : "string"
          },
          "reference" : {
            "description" : "Optional payment reference.",
            "example" : "Invoice #1234",
            "maxLength" : 140,
            "minLength" : 0,
            "type" : "string"
          }
        },
        "required" : [ "accountId", "amount", "currency" ],
        "type" : "object"
      },
      "FiatWithdrawalScheduleRestResponse" : {
        "properties" : {
          "accountId" : {
            "description" : "ID of the fiat withdrawal account being swept.",
            "example" : "fwaAbCdEf123456",
            "type" : "string"
          },
          "createdAt" : {
            "description" : "When the schedule was created.",
            "example" : "2026-01-01T00:00:00Z",
            "format" : "int64",
            "type" : "integer"
          },
          "currency" : {
            "description" : "Currency being swept.",
            "enum" : [ "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "example" : "EUR",
            "type" : "string"
          },
          "frequency" : {
            "description" : "Sweep cadence.",
            "enum" : [ "DAILY", "WEEKLY", "MONTHLY" ],
            "example" : "WEEKLY",
            "type" : "string"
          },
          "frequencyDay" : {
            "description" : "Day selector. Null for DAILY; 1-7 (Monday=1) for WEEKLY; 1-31 for MONTHLY.",
            "example" : 1,
            "format" : "int32",
            "type" : "integer"
          },
          "id" : {
            "description" : "ID of the schedule.",
            "example" : "fwsAbCdEf123456",
            "type" : "string"
          },
          "minimumAmount" : {
            "description" : "Minimum the net swept amount must reach for a withdrawal to be created. Null when no minimum is enforced.",
            "example" : "50.00",
            "type" : "number"
          },
          "minimumBalance" : {
            "description" : "Balance floor — only the excess above this value is swept.",
            "example" : "1000.00",
            "type" : "number"
          },
          "nextRunAt" : {
            "description" : "When the schedule will next be processed by the sweep job.",
            "example" : "2026-01-01T00:00:00Z",
            "format" : "int64",
            "type" : "integer"
          },
          "status" : {
            "description" : "Current status of the schedule.",
            "enum" : [ "ACTIVE", "PAUSED", "CANCELLED", "DELETED" ],
            "example" : "ACTIVE",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "FiatWithdrawalScheduleRunDetailRestResponse" : {
        "properties" : {
          "balanceAtRun" : {
            "description" : "Available balance (outstanding - blocked) observed at run time. Null when the cycle short-circuited before reading the balance (e.g. withdrawal account not whitelisted).",
            "example" : "2500.00",
            "type" : "number"
          },
          "minimumAmount" : {
            "description" : "Snapshot of the schedule's minimum amount at run time. Null when no minimum was configured.",
            "example" : "50.00",
            "type" : "number"
          },
          "minimumBalance" : {
            "description" : "Snapshot of the schedule's minimum balance at run time.",
            "example" : "1000.00",
            "type" : "number"
          },
          "outcome" : {
            "description" : "Outcome of the run.",
            "enum" : [ "EXECUTION_ERROR", "SKIPPED_ABOVE_PROVIDER_LIMIT", "SKIPPED_AMOUNT_BELOW_FEE", "SKIPPED_BELOW_MINIMUM_AMOUNT", "SKIPPED_BELOW_MINIMUM_BALANCE", "SKIPPED_WALLET_NOT_WHITELISTED", "WITHDRAWAL_INITIATED" ],
            "example" : "WITHDRAWAL_INITIATED",
            "type" : "string"
          },
          "ranAt" : {
            "description" : "When the sweep job evaluated the schedule for this cycle.",
            "example" : "2026-01-01T00:00:00Z",
            "format" : "int64",
            "type" : "integer"
          },
          "runId" : {
            "description" : "ID of the run.",
            "example" : "fwrAbCdEf123456",
            "type" : "string"
          },
          "sweptAmount" : {
            "description" : "Amount actually withdrawn this cycle. Populated only when outcome is WITHDRAWAL_INITIATED.",
            "example" : "1500.00",
            "type" : "number"
          },
          "withdrawalId" : {
            "description" : "ID of the withdrawal created by this run. Always present for WITHDRAWAL_INITIATED; may be present for EXECUTION_ERROR if the failure occurred after the withdrawal initiation row was created. Absent for skipped runs.",
            "example" : "fwiAbCdEf123456",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "FiatWithdrawalTo" : {
        "properties" : {
          "account" : {
            "description" : "Bank account details of the target withdrawal account.",
            "oneOf" : [ {
              "$ref" : "#/components/schemas/AbaAccountResponse"
            }, {
              "$ref" : "#/components/schemas/BicAccountResponse"
            }, {
              "$ref" : "#/components/schemas/IbanAccountResponse"
            } ]
          },
          "accountId" : {
            "description" : "Target fiat withdrawal account ID.",
            "example" : "fwaAbCdEf123456",
            "type" : "string"
          },
          "amount" : {
            "description" : "Requested withdrawal amount.",
            "example" : "100.00",
            "type" : "number"
          },
          "createdAt" : {
            "description" : "Timestamp of creation.",
            "example" : "2026-01-01T00:00:00Z",
            "format" : "int64",
            "type" : "integer"
          },
          "currency" : {
            "description" : "Currency of the withdrawal.",
            "enum" : [ "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "example" : "EUR",
            "type" : "string"
          },
          "feeAmount" : {
            "description" : "Applied fee amount.",
            "example" : "1.50",
            "type" : "number"
          },
          "id" : {
            "description" : "Withdrawal ID.",
            "example" : "fwiAbCdEf123456",
            "type" : "string"
          },
          "reference" : {
            "description" : "Optional payment reference.",
            "example" : "payment #1234",
            "type" : "string"
          },
          "status" : {
            "description" : "Withdrawal status.",
            "enum" : [ "CREATED", "TRANSACTION_CREATED", "TRANSACTION_CREATE_FAILED", "TRANSACTION_SIGNED", "TRANSACTION_SIGN_FAILED", "COMPLETED", "TRANSACTION_EXTERNAL_PROCESSING_FAILED" ],
            "example" : "CREATED",
            "type" : "string"
          },
          "statusChangedAt" : {
            "description" : "Timestamp of last status change.",
            "example" : "2026-01-01T00:00:00Z",
            "format" : "int64",
            "type" : "integer"
          },
          "type" : {
            "description" : "Initiation type — on-demand or scheduled.",
            "enum" : [ "ON_DEMAND", "SCHEDULED" ],
            "example" : "ON_DEMAND",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "Flags" : {
        "properties" : {
          "notRefundableCause" : {
            "enum" : [ "REFUND_AMOUNT_ZERO", "REFUND_AMOUNT_TOO_LOW", "REFUND_AMOUNT_NOT_ENOUGH_TO_COVER_NETWORK_FEE", "WRONG_INVOICE_STATE", "NOT_ALLOWED", "LEGACY_INVOICE_WITHOUT_NETWORK_FEE" ],
            "title" : "The reason why the Invoice is not refundable.",
            "type" : "string"
          },
          "overpaymentResolvable" : {
            "description" : "True if an overpayment on the Invoice is resolvable, false otherwise.",
            "example" : true,
            "type" : "boolean"
          },
          "refundable" : {
            "description" : "True if the Invoice is refundable, false otherwise.",
            "example" : false,
            "type" : "boolean"
          },
          "resolvableStatus" : {
            "enum" : [ "YES", "WAITING", "NO" ],
            "title" : "The value telling if the Invoice exception state can be resolved by merchant.",
            "type" : "string"
          },
          "resolvableSubStatus" : {
            "enum" : [ "OVERPAID_NOT_ENOUGH_TO_COVER_NETWORK_FEE", "UNDERPAID_NOT_ENOUGH_TO_COVER_NETWORK_FEE", "PAYMENT_DETECTED_AFTER_EXPIRATION" ],
            "title" : "Additional information about resolvable status",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "IbanAccountResponse" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/FiatWithdrawalAccountDetailsResponse"
        }, {
          "properties" : {
            "address" : {
              "description" : "Street address of the account holder.",
              "example" : "Example Street 1",
              "type" : "string"
            },
            "city" : {
              "description" : "City of the account holder.",
              "example" : "Example City",
              "type" : "string"
            },
            "country" : {
              "description" : "ISO 3166-1 alpha-2 country code of the account holder.",
              "example" : "IE",
              "type" : "string"
            },
            "iban" : {
              "description" : "IBAN.",
              "example" : "IE00ABCD00000000000000",
              "type" : "string"
            },
            "postalCode" : {
              "description" : "Postal code of the account holder.",
              "example" : "D00 XY00",
              "type" : "string"
            }
          },
          "type" : "object"
        } ]
      },
      "IbanTopUpInstructionTo" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/FiatTopUpInstructionTo"
        }, {
          "properties" : {
            "bic" : {
              "description" : "BIC of the top-up account.",
              "example" : "BFRILI22",
              "type" : "string"
            },
            "currency" : {
              "description" : "Currency of the top-up account.",
              "enum" : [ "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
              "example" : "EUR",
              "type" : "string"
            },
            "iban" : {
              "description" : "IBAN of the top-up account.",
              "example" : "LI6308800987654321001",
              "type" : "string"
            },
            "notifyUrl" : {
              "description" : "Notify URL as supplied in Merchant Settings.",
              "example" : "https://example.com/webhook",
              "format" : "url",
              "type" : "string"
            },
            "paymentSchemes" : {
              "description" : "Payment schemes accepted for this account.",
              "example" : [ "SEPA", "SWIFT" ],
              "items" : {
                "enum" : [ "SEPA", "SWIFT", "FEDWIRE" ],
                "type" : "string"
              },
              "type" : "array"
            }
          },
          "type" : "object"
        } ],
        "description" : "Top-up instructions for accounts identified by IBAN."
      },
      "IndividualProfileTo" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/ProfileTo"
        }, {
          "properties" : {
            "dateOfBirth" : {
              "description" : "Date of birth for the customer (YYYY-MM-DD).",
              "example" : "1989-10-17",
              "type" : "string"
            },
            "firstName" : {
              "description" : "First name of the individual customer.",
              "example" : "John",
              "maxLength" : 255,
              "minLength" : 0,
              "type" : "string"
            },
            "lastName" : {
              "description" : "Last name of the individual customer.",
              "example" : "Doe",
              "maxLength" : 255,
              "minLength" : 0,
              "type" : "string"
            },
            "placeOfBirth" : {
              "description" : "Place of birth for the customer.",
              "example" : "Seattle",
              "maxLength" : 255,
              "minLength" : 0,
              "type" : "string"
            }
          },
          "type" : "object"
        } ],
        "required" : [ "profileId" ]
      },
      "Invoice" : {
        "properties" : {
          "amount" : {
            "description" : "The original Invoice amount.",
            "example" : "1000.00",
            "type" : "number"
          },
          "currencyFrom" : {
            "$ref" : "#/components/schemas/InvoiceCurrencyFrom",
            "type" : "string"
          },
          "currencyTo" : {
            "deprecated" : true,
            "description" : "It's strongly preferred NOT populate this attribute when creating a new invoice because doing so will fix the invoice's payment method for the end customer who will pay it. The recommended approach is to leave this attribute not populated and let end customer choose their favorite payment method (merchant can always disable a particular payment method for invoicing in settings). If this attribute is populated indeed for invoice creation, 'layer2ProtocolName' attribute has to be set accordingly as well.",
            "enum" : [ "BTC", "LTC" ],
            "title" : "Code of the crypto asset of the customer payment method",
            "type" : "string"
          },
          "layer2ProtocolName" : {
            "deprecated" : true,
            "description" : "It's strongly preferred NOT set this attribute (refer to 'currencyTo' attribute for details); it may only be null (for Bitcoin and Litecoin payments over their respective blockchains) or set to 'LIGHTNING', in which case the only allowed value for 'currencyTo' attribute is 'BTC' (for Bitcoin payment over the Lightning Network)",
            "enum" : [ "LIGHTNING" ],
            "title" : "Code of the layer 2 solution of the customer payment method.",
            "type" : "string"
          },
          "paymentMethodId" : {
            "description" : "It's strongly preferred NOT populate this attribute when creating a new invoice because doing so will fix the invoice's payment method for the end customer who will pay it. The recommended approach is to leave this attribute not populated and let end customer choose their favorite payment method (merchant can always disable a particular payment method for invoicing in settings).",
            "title" : "ID of the payment method.",
            "type" : "string"
          }
        },
        "required" : [ "amount", "currencyFrom" ],
        "type" : "object"
      },
      "InvoiceCreationTo" : {
        "properties" : {
          "customerEmail" : {
            "description" : "E-mail address for the customer notifications. May be required for newly registered merchants.",
            "example" : "customerEmail@email.com",
            "format" : "email",
            "type" : "string"
          },
          "customerProfile" : {
            "description" : "Optional customer profile details to attach to the invoice.",
            "oneOf" : [ {
              "$ref" : "#/components/schemas/CompanyProfileTo"
            }, {
              "$ref" : "#/components/schemas/IndividualProfileTo"
            }, {
              "$ref" : "#/components/schemas/ReferenceProfileTo"
            } ]
          },
          "invoice" : {
            "$ref" : "#/components/schemas/Invoice",
            "description" : "Invoice amount and currency details."
          },
          "notifyEmail" : {
            "description" : "E-mail address where merchant notifications will be sent.",
            "example" : "orderReceived@yourEShop.com",
            "format" : "email",
            "type" : "string"
          },
          "notifyUrl" : {
            "description" : "Webhook URL where invoice webhooks will be sent.",
            "example" : "https://yourEShop.com/orderReceived",
            "format" : "url",
            "maxLength" : 512,
            "minLength" : 0,
            "type" : "string"
          },
          "product" : {
            "$ref" : "#/components/schemas/Product",
            "description" : "Product information associated with this invoice."
          },
          "reference" : {
            "description" : "Any data the merchant wishes to store in the invoice. It might be, for instance, a JSON or any other string identifying the Invoice in the merchant's system.",
            "example" : "anything",
            "maxLength" : 512,
            "minLength" : 0,
            "type" : "string"
          },
          "returnUrl" : {
            "description" : "URL where the customer will be redirected after the payment.",
            "example" : "https://yourEShop.com/orderReceived",
            "maxLength" : 512,
            "minLength" : 0,
            "type" : "string"
          },
          "settlement" : {
            "$ref" : "#/components/schemas/Settlement",
            "description" : "Settlement details specifying how merchant will receive funds."
          }
        },
        "required" : [ "invoice", "settlement" ],
        "type" : "object"
      },
      "InvoiceCurrencyFrom" : {
        "description" : "The original invoice currency.",
        "enum" : [ "BTC", "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
        "example" : "EUR",
        "title" : "The original invoice currency.",
        "type" : "string"
      },
      "InvoicePatchTo" : {
        "properties" : {
          "reference" : {
            "description" : "Any data the merchant wishes to store in the invoice. It might be, for instance, a JSON or any other string identifying the Invoice in the merchant's system.",
            "example" : "anything",
            "maxLength" : 512,
            "minLength" : 0,
            "type" : "string"
          }
        },
        "required" : [ "reference" ],
        "type" : "object"
      },
      "InvoiceTo" : {
        "properties" : {
          "activeSince" : {
            "description" : "The time of the Invoice's transition to active state as a Unix timestamp. May be null, if the Invoice has never been in active state.",
            "example" : 1506080071,
            "format" : "int64",
            "type" : "integer"
          },
          "address" : {
            "description" : "The address where a customer is supposed to send crypto to.",
            "example" : "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy",
            "type" : "string"
          },
          "buttonInvoiceId" : {
            "description" : "The ID of a Payment Button, if this Invoice has been created by using one.",
            "example" : "paby8ngx1eox",
            "type" : "string"
          },
          "closedAt" : {
            "description" : "The time when the Invoice was closed as a Unix timestamp.",
            "example" : 1506080071,
            "format" : "int64",
            "type" : "integer"
          },
          "confirmations" : {
            "description" : "The number of confirmations.",
            "example" : 0,
            "format" : "int32",
            "type" : "integer"
          },
          "confirmingSince" : {
            "description" : "The time of the Invoice's transition to confirming state as a Unix timestamp. May be null, if the Invoice has never been in the confirming state.",
            "example" : 1506080071,
            "format" : "int64",
            "type" : "integer"
          },
          "createdAt" : {
            "description" : "The time when the Invoice was created as a Unix timestamp.",
            "example" : 1506080071,
            "format" : "int64",
            "type" : "integer"
          },
          "cryptoTransactions" : {
            "description" : "The transactions associated with this Invoice.",
            "items" : {
              "$ref" : "#/components/schemas/CryptoTransactionTo"
            },
            "type" : "array"
          },
          "cryptoUri" : {
            "description" : "Standardized URI for a crypto payment. It is also used in a payment QR code. Contains at least protocol, address and remaining amount to be paid.",
            "example" : "litecoin:mnLU9vBK7L1WY6JNnGYY...Jdjwfnti4Cu9xz?amount=1.00000000",
            "type" : "string"
          },
          "customerAmount" : {
            "$ref" : "#/components/schemas/MoneyCustomerAmount"
          },
          "customerEmail" : {
            "description" : "The email address to which email notifications for the customer will be sent.",
            "example" : "customerEmail@email.com",
            "type" : "string"
          },
          "emailInvoiceId" : {
            "description" : "The ID of an Email Invoice, if this Invoice has been created by using one.",
            "example" : "emi4og3r6g3w",
            "type" : "string"
          },
          "errorSince" : {
            "description" : "The time of the Invoice's transition to error state as a Unix timestamp. May be null, if the Invoice has never been in error state.",
            "example" : 1506080071,
            "format" : "int64",
            "type" : "integer"
          },
          "expiredSince" : {
            "description" : "The time of the Invoice's transition to expired state as a Unix timestamp. May be null, if the Invoice has never been in expired state.",
            "example" : 1506080071,
            "format" : "int64",
            "type" : "integer"
          },
          "fee" : {
            "description" : "The fee of the Invoice.",
            "example" : "0.00000011",
            "type" : "number"
          },
          "flags" : {
            "$ref" : "#/components/schemas/Flags",
            "description" : "Describes whether the Invoice is overpaid or underpaid and if it can be refunded."
          },
          "id" : {
            "description" : "The Invoice ID.",
            "example" : "invl8em3zdkr",
            "type" : "string"
          },
          "layer2Attributes" : {
            "description" : "The information about layer 2 protocol if used.",
            "oneOf" : [ {
              "$ref" : "#/components/schemas/LightningLayerAttributesTo"
            } ]
          },
          "merchantAmount" : {
            "$ref" : "#/components/schemas/MoneyMerchantAmount"
          },
          "networkFee" : {
            "description" : "The network fee.",
            "example" : "0.00000011",
            "type" : "number"
          },
          "notifyEmail" : {
            "description" : "The e-mail address where the e-mail notifications will be sent. The maximum length is 512 characters.",
            "example" : "orderReceived@yourEShop.com",
            "type" : "string"
          },
          "notifyUrl" : {
            "description" : "The URL where webhooks will be POSTed.",
            "example" : "https://yourEShop.com/orderReceived",
            "maxLength" : 512,
            "type" : "string"
          },
          "overUnderPaidAmount" : {
            "description" : "The difference of requested and received amount. Can be positive or negative.",
            "example" : "-0.00000101",
            "type" : "number"
          },
          "paid" : {
            "$ref" : "#/components/schemas/MoneyPaidTo",
            "description" : "The received amount in the requested crypto currency."
          },
          "paidSince" : {
            "description" : "The time when the Invoice acquired the paid status as a Unix timestamp. May be null, if the Invoice has never been in paid state.",
            "example" : 1506079178,
            "format" : "int64",
            "type" : "integer"
          },
          "pendingVerificationSince" : {
            "description" : "The time of the Invoice's transition to pending verification state as a Unix timestamp. May be null, if the Invoice has never been in pending verification state.",
            "example" : 1506080071,
            "format" : "int64",
            "type" : "integer"
          },
          "preparedSince" : {
            "description" : "The time of the Invoice's transition to prepared state as a Unix timestamp. ",
            "example" : 1506080071,
            "format" : "int64",
            "type" : "integer"
          },
          "product" : {
            "$ref" : "#/components/schemas/ProductTo",
            "description" : "The information about the product."
          },
          "rate" : {
            "$ref" : "#/components/schemas/RateTo",
            "description" : "The rate of FIAT -> Crypto conversion"
          },
          "reference" : {
            "description" : "Any data the merchant wishes to store in the Invoice. It might be, for instance, a JSON or any other string identifying the invoice in the merchant's system. The maximum length is 512 characters.",
            "example" : "string {'customer_mail': 'customer@example.com'}",
            "type" : "string"
          },
          "refundLink" : {
            "description" : "The URL of the refund link.",
            "example" : "https://pay.confirmo.com/public/permit-refund/aW52MDJleTI0MWdrNGE5MmFjNGRkYTE1YjQ5ZDI3MzA4NzBhYWEzYjc5YzE=?refundEmail=test@bitcoin.com&merchantId=dfjeivkdienmv",
            "format" : "uri",
            "type" : "string"
          },
          "refunds" : {
            "description" : "Refunds for this Invoice.",
            "items" : {
              "$ref" : "#/components/schemas/RefundTo"
            },
            "type" : "array"
          },
          "requiredConfirmations" : {
            "description" : "The number of required confirmations for the Invoice to gain the paid status.",
            "example" : 2,
            "format" : "int32",
            "type" : "integer"
          },
          "requiredConfirmationsToRefund" : {
            "description" : "The number of required confirmations for refunds to be allowed.",
            "example" : 6,
            "format" : "int32",
            "type" : "integer"
          },
          "resolvedByEmail" : {
            "description" : "Email (or other identifier) of the one responsible for manual resolve.",
            "example" : "user@mail.ex",
            "type" : "string"
          },
          "resolvedManually" : {
            "description" : "Flag saying whether invoice was resolved manually (refund, take)",
            "example" : true,
            "type" : "boolean"
          },
          "returnUrl" : {
            "description" : "The URL where the customer will be redirected after the payment. The maximum length is 512 characters.",
            "example" : "https://yourEShop.com/orderReceived",
            "type" : "string"
          },
          "settlement" : {
            "$ref" : "#/components/schemas/SettlementInfoTo",
            "description" : "The settlement for this Invoice. Presents only if it exists."
          },
          "settlementAmount" : {
            "$ref" : "#/components/schemas/MoneySettlementAmount"
          },
          "status" : {
            "description" : "Please note that invoices that transition from status 'prepared' directly to 'expired' (i.e. those which were never activated) become subject of data purging after a retention period (e.g. a year)",
            "enum" : [ "prepared", "pending_verification", "active", "confirming", "paid", "expired", "error", "blocked" ],
            "title" : "Invoice status.",
            "type" : "string"
          },
          "subscriptionId" : {
            "deprecated" : true,
            "description" : "Deprecated. Always null; subscriptions are now standalone feature",
            "type" : "string"
          },
          "takeInfo" : {
            "$ref" : "#/components/schemas/TakeInfoTo",
            "description" : "The information about take."
          },
          "timeoutTime" : {
            "description" : "The time of the Invoice's expiration as a Unix timestamp.",
            "example" : 1506080071,
            "format" : "int64",
            "type" : "integer"
          },
          "unhandledExceptions" : {
            "description" : "It is true if the payment gateway owes some funds to the customer or the customer has not paid the whole customer amount.",
            "example" : true,
            "type" : "boolean"
          },
          "url" : {
            "description" : "The URL of the Invoice's public view for the customers.",
            "example" : "https://pay.confirmo.com/public/invoice/NOLvQIt2na6kfXBb?m=dfjeivkdienmv",
            "format" : "uri",
            "type" : "string"
          },
          "version" : {
            "description" : "Monotonic version of the invoice; the client discards any WebSocket payload whose version is not greater than the last applied one (ordering guard).",
            "example" : 42,
            "format" : "int32",
            "type" : "integer"
          }
        },
        "required" : [ "resolvedManually" ],
        "type" : "object"
      },
      "JsonNullableAnyAssetCode" : {
        "properties" : {
          "present" : {
            "type" : "boolean"
          },
          "undefined" : {
            "type" : "boolean"
          }
        },
        "type" : "object"
      },
      "JsonNullableBigDecimal" : {
        "properties" : {
          "present" : {
            "type" : "boolean"
          },
          "undefined" : {
            "type" : "boolean"
          }
        },
        "type" : "object"
      },
      "JsonNullableMerchantCryptoFundingAccountStatus" : {
        "properties" : {
          "present" : {
            "type" : "boolean"
          },
          "undefined" : {
            "type" : "boolean"
          }
        },
        "type" : "object"
      },
      "JsonNullableString" : {
        "properties" : {
          "present" : {
            "type" : "boolean"
          },
          "undefined" : {
            "type" : "boolean"
          }
        },
        "type" : "object"
      },
      "JsonNullableURL" : {
        "properties" : {
          "present" : {
            "type" : "boolean"
          },
          "undefined" : {
            "type" : "boolean"
          }
        },
        "type" : "object"
      },
      "Layer2AttributesTo" : {
        "discriminator" : {
          "propertyName" : "protocolName"
        },
        "properties" : {
          "protocolName" : {
            "description" : "Layer 2 protocol name.",
            "enum" : [ "LIGHTNING", "POLYGON", "ARBITRUM", "OPTIMISM" ],
            "example" : "LIGHTNING",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "LightningLayerAttributesTo" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/Layer2AttributesTo"
        }, {
          "properties" : {
            "bolt" : {
              "type" : "string"
            },
            "lnurl" : {
              "type" : "string"
            },
            "paymentHash" : {
              "type" : "string"
            }
          },
          "type" : "object"
        } ]
      },
      "MerchantBalanceTo" : {
        "properties" : {
          "available" : {
            "description" : "The exact available balance (outstanding - blocked), without any rounding.",
            "example" : "10.3765439",
            "type" : "number"
          },
          "blocked" : {
            "description" : "The blocked balance.",
            "example" : "10.50",
            "type" : "number"
          },
          "currency" : {
            "description" : "The ISO 4217 code of the currency.",
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL", "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "example" : "EUR",
            "type" : "string"
          },
          "lastUpdateAt" : {
            "description" : "The timestamp of the balance's last update.",
            "example" : 1484055304,
            "format" : "int64",
            "type" : "integer"
          },
          "outstandingBalance" : {
            "description" : "The outstanding balance for this currency.",
            "example" : "10.50",
            "type" : "number"
          },
          "settlementMethodExists" : {
            "description" : "Indicates whether a settlement method for this balance exists.",
            "example" : true,
            "type" : "boolean"
          }
        },
        "type" : "object"
      },
      "MerchantCryptoPaymentMethodTo" : {
        "properties" : {
          "id" : {
            "title" : "ID of the payment method",
            "type" : "string"
          },
          "name" : {
            "title" : "Name of the payment method",
            "type" : "string"
          },
          "smartContractAddress" : {
            "description" : "This attribute is populated for payment methods which use crypto tokens (which are just a standardized type of smart contracts under the hood)",
            "title" : "Address of the smart contract",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "MoneyCustomerAmount" : {
        "description" : "This is the Invoice amount in cryptocurrency which needs to be paid by a customer.",
        "properties" : {
          "amount" : {
            "description" : "Amount in FIAT has 2 decimal digits and amount in Crypto has 8 decimal digits.",
            "example" : 1000.0,
            "type" : "number"
          },
          "currency" : {
            "description" : "Depending on context, this can be FIAT or crypto (EUR, USD, BTC...). Please see context above.",
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL", "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "example" : "EUR",
            "type" : "string"
          }
        }
      },
      "MoneyMerchantAmount" : {
        "description" : "The original Invoice amount and original Invoice currency.",
        "properties" : {
          "amount" : {
            "description" : "Amount in FIAT has 2 decimal digits and amount in Crypto has 8 decimal digits.",
            "example" : 1000.0,
            "type" : "number"
          },
          "currency" : {
            "description" : "Depending on context, this can be FIAT or crypto (EUR, USD, BTC...). Please see context above.",
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL", "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "example" : "EUR",
            "type" : "string"
          }
        }
      },
      "MoneyPaidTo" : {
        "properties" : {
          "amount" : {
            "description" : "The received amount in the requested crypto currency.",
            "example" : "0.00004160",
            "type" : "number"
          },
          "amountUnconfirmed" : {
            "description" : "Unconfirmed amount.",
            "example" : "0.00000000",
            "type" : "number"
          },
          "currency" : {
            "description" : "The requested crypto currency.",
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL", "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "example" : "LTC",
            "type" : "string"
          },
          "diff" : {
            "description" : "The difference of requested and received amount.",
            "example" : "0.00000000",
            "type" : "number"
          }
        },
        "type" : "object"
      },
      "MoneySettlementAmount" : {
        "description" : "Amount and currency that is credited to the merchant's balance (present only for status Paid). The currency can be one of the following: BTC, CZK, EUR, GBP, HUF, PLN, USD, USDC, USDT.",
        "properties" : {
          "amount" : {
            "description" : "Amount in FIAT has 2 decimal digits and amount in Crypto has 8 decimal digits.",
            "example" : 1000.0,
            "type" : "number"
          },
          "currency" : {
            "description" : "Depending on context, this can be FIAT or crypto (EUR, USD, BTC...). Please see context above.",
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL", "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "example" : "EUR",
            "type" : "string"
          }
        }
      },
      "OsTransactionCreationCurrencyFrom" : {
        "description" : "Balance of this asset is affected by the payout.",
        "enum" : [ "BTC", "CZK", "EUR", "USD", "USDC", "USDT" ],
        "example" : "EUR",
        "title" : "Code of the source asset to be withdrawn from the merchant's balance.",
        "type" : "string"
      },
      "PayoutIntervalTo" : {
        "properties" : {
          "day" : {
            "description" : "Determines the weekday or day of month on which Settlement should occur.",
            "example" : 1,
            "format" : "int32",
            "type" : "integer"
          },
          "type" : {
            "description" : "Denotes daily, weekly, or monthly Settlement.",
            "enum" : [ "daily", "weekly", "monthly" ],
            "example" : "weekly",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "PayoutToV3" : {
        "properties" : {
          "address" : {
            "example" : "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy",
            "title" : "The target crypto address.",
            "type" : "string"
          },
          "amountFrom" : {
            "example" : "10.55",
            "title" : "The source amount.",
            "type" : "number"
          },
          "amountTo" : {
            "example" : "0.01101989",
            "title" : "The target crypto amount.",
            "type" : "number"
          },
          "btcPriority" : {
            "description" : "Valid only for the payment method for native BTC. For BTC transactions, HIGH is default.",
            "enum" : [ "LOW", "MEDIUM", "HIGH" ],
            "example" : "HIGH",
            "title" : "The crypto transaction priority",
            "type" : "string"
          },
          "completedAt" : {
            "example" : 1484056304,
            "format" : "int64",
            "title" : "The timestamp when transaction was completed.",
            "type" : "integer"
          },
          "createdAt" : {
            "example" : 1484055304,
            "format" : "int64",
            "title" : "Time when transaction was created",
            "type" : "integer"
          },
          "currencyFrom" : {
            "$ref" : "#/components/schemas/OsTransactionCreationCurrencyFrom",
            "type" : "string"
          },
          "currencyTo" : {
            "deprecated" : true,
            "description" : "Superseded by paymentMethodId.",
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL" ],
            "example" : "BTC",
            "title" : "The target crypto asset code",
            "type" : "string"
          },
          "customerEmail" : {
            "description" : "The email address to which email notifications for the customer will be sent.",
            "example" : "customerEmail@email.com",
            "title" : "The customer e-mail.",
            "type" : "string"
          },
          "customerProfile" : {
            "$ref" : "#/components/schemas/CustomerProfileReferenceTo",
            "description" : "The customer profile reference to which the payout is linked. Present only if the customer profile id was set by the merchant.",
            "title" : "Linked customer profile detail."
          },
          "debitedAmount" : {
            "description" : "The debited amount (in currencyFrom asset) from merchant balance.",
            "example" : 10,
            "title" : "The debited amount (in currencyFrom asset).",
            "type" : "number"
          },
          "exchangeRate" : {
            "description" : "Price of one crypto in source asset.",
            "example" : "907.45",
            "title" : "The used source-target asset rate.",
            "type" : "number"
          },
          "expiration" : {
            "example" : 1484055424,
            "format" : "int64",
            "title" : "The timestamp until when the offer is valid.",
            "type" : "integer"
          },
          "fee" : {
            "example" : "0.55",
            "title" : "The payout fee (in currencyFrom asset).",
            "type" : "number"
          },
          "feeCurrency" : {
            "description" : "The same asset code as currencyFrom.",
            "example" : "USD",
            "title" : "The fee asset code",
            "type" : "string"
          },
          "feePaymentMode" : {
            "enum" : [ "MERCHANT", "RECIPIENT", "NETWORK_FEE_RECIPIENT" ],
            "example" : "MERCHANT",
            "title" : "Experimental: Define fee payment method.",
            "type" : "string"
          },
          "id" : {
            "example" : "WDRnwMw9LIF",
            "title" : "The Payout ID.",
            "type" : "string"
          },
          "layer2Attributes" : {
            "description" : "The information about layer 2 protocol if used.",
            "oneOf" : [ {
              "$ref" : "#/components/schemas/LightningLayerAttributesTo"
            } ]
          },
          "notifyEmail" : {
            "description" : "E-mail where payout notifications will be sent.",
            "example" : "customerEmail@email.com",
            "title" : "E-mail for sending notifications.",
            "type" : "string"
          },
          "notifyUrl" : {
            "description" : "Webhook URL where payout webhooks will be sent.",
            "example" : "https://yourEShop.com/payoutProcess",
            "format" : "url",
            "title" : "Notify URL for sending webhooks.",
            "type" : "string"
          },
          "paymentMethodId" : {
            "title" : "ID of the payment method to be used",
            "type" : "string"
          },
          "reference" : {
            "description" : "Any data the merchant wishes to store in the payout. It might be, for instance, a JSON or any other string identifying the payout in the merchant's system. The maximum length is 512 characters.",
            "type" : "string"
          },
          "sentAt" : {
            "example" : 1484055304,
            "format" : "int64",
            "title" : "The timestamp when transaction was sent.",
            "type" : "integer"
          },
          "sourceAddresses" : {
            "example" : [ "6D5a012e39a77800D492420245662406A03e", "54SDdf800D492420245662406A03e" ],
            "items" : {
              "type" : "string"
            },
            "title" : "The source crypto address(es).",
            "type" : "array"
          },
          "status" : {
            "description" : "Indicates the state of the payout. See the statuses section in the documentation for all possible values.",
            "example" : "DONE",
            "title" : "Current status of the payout",
            "type" : "string"
          },
          "substatus" : {
            "example" : "SCREENING_IN_PROGRESS",
            "maxLength" : 64,
            "title" : "Provides additional detail about the payout status. While primary statuses indicate the overall state, substatuses offer more specific information about why the payout is in that state. Not all primary statuses have associated substatuses.",
            "type" : "string"
          },
          "treatAsGrossAmount" : {
            "description" : "The total fee (processing and network) was deducted from the requested amount.",
            "example" : true,
            "title" : "The fee was deducted from the requested amount.",
            "type" : "boolean"
          },
          "txid" : {
            "example" : "cf3c7…03bcf",
            "title" : "The crypto transaction ID.",
            "type" : "string"
          },
          "url" : {
            "description" : "The URL of the Payout's public view for the customers.",
            "example" : "https://pay.confirmo.com/public/payout/NOLvQIt2na6kfXBb",
            "format" : "uri",
            "title" : "The URL of the public view.",
            "type" : "string"
          },
          "validTo" : {
            "description" : "The time until which the transaction is valid to. After this time the transaction is not registered.",
            "example" : 1484056304,
            "format" : "int64",
            "title" : "The time until which the transaction is valid to.",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "PerformPayoutActionRequestV3" : {
        "description" : "The action to be performed.",
        "properties" : {
          "action" : {
            "description" : "Action to be performed.",
            "enum" : [ "PREPARE", "CONFIRM", "CANCEL" ],
            "example" : "CONFIRM",
            "type" : "string"
          }
        },
        "required" : [ "action" ],
        "type" : "object"
      },
      "Product" : {
        "properties" : {
          "description" : {
            "description" : "The description of the product.",
            "example" : "Small silver computer",
            "type" : "string"
          },
          "name" : {
            "description" : "The name of the product. The maximum length is 512 characters.",
            "example" : "Computer",
            "type" : "string"
          }
        },
        "required" : [ "name" ],
        "type" : "object"
      },
      "ProductTo" : {
        "properties" : {
          "description" : {
            "description" : "The description of the product.",
            "example" : "Small silver computer",
            "type" : "string"
          },
          "name" : {
            "description" : "The name of the product. The maximum length is 512 characters.",
            "example" : "Computer",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "ProfileTo" : {
        "discriminator" : {
          "propertyName" : "type"
        },
        "properties" : {
          "city" : {
            "description" : "City of the customer's address.",
            "example" : "Springfield",
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string"
          },
          "country" : {
            "description" : "Country of the customer's address, represented as a two-letter ISO 3166-1 alpha-2 country code.",
            "enum" : [ "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AN", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "XK", "YE", "YT", "ZA", "ZM", "ZW" ],
            "example" : "US",
            "type" : "string"
          },
          "postalCode" : {
            "description" : "Postal or ZIP code of the customer's address.",
            "example" : "90210",
            "maxLength" : 64,
            "minLength" : 0,
            "type" : "string"
          },
          "profileId" : {
            "description" : "Merchant's identifier of the customer profile.",
            "example" : "profile-12345",
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string"
          },
          "streetAddress" : {
            "description" : "Street portion of the customer's address.",
            "example" : "123 Main Street",
            "maxLength" : 255,
            "minLength" : 0,
            "type" : "string"
          },
          "type" : {
            "description" : "Customer profile type.",
            "enum" : [ "individual", "company", "reference" ],
            "type" : "string"
          }
        },
        "required" : [ "profileId" ],
        "type" : "object"
      },
      "RateTo" : {
        "properties" : {
          "currencyFrom" : {
            "description" : "Currency from. The original FIAT currency.",
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL", "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "example" : "EUR",
            "type" : "string"
          },
          "currencyTo" : {
            "description" : "Currency to. The requested crypto currency.",
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL", "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "example" : "LTC",
            "type" : "string"
          },
          "value" : {
            "description" : "The conversion rate from currencyFrom to currencyTo.",
            "example" : "1000.00",
            "type" : "number"
          }
        },
        "type" : "object"
      },
      "ReferenceProfileTo" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/ProfileTo"
        } ],
        "required" : [ "profileId" ]
      },
      "RefundTo" : {
        "properties" : {
          "address" : {
            "description" : "The crypto address, the refund was sent to.",
            "example" : "3Bp6GX52uY574Uq7k6opCx1zHd5hVhAXHq",
            "type" : "string"
          },
          "amount" : {
            "description" : "The refunded amount.",
            "example" : "0.005",
            "type" : "number"
          },
          "createdAt" : {
            "example" : 1594376981,
            "format" : "int64",
            "title" : "The timestamp of the refund creation.",
            "type" : "integer"
          },
          "id" : {
            "description" : "The refund ID.",
            "example" : "refz0gr3qgx9",
            "type" : "string"
          },
          "notifyEmail" : {
            "description" : "The notification e-mail.",
            "example" : "test@test.com",
            "type" : "string"
          },
          "paymentStatus" : {
            "enum" : [ "overpaid", "underpaid", "paid-after-limit", "pending-verification" ],
            "title" : "The payment status of the refund.",
            "type" : "string"
          },
          "refundStatus" : {
            "description" : "The status of the refund.",
            "enum" : [ "pending", "sending", "refunded", "error", "cancelled", "not_possible" ],
            "type" : "string"
          },
          "refundedAt" : {
            "example" : 1594376981,
            "format" : "int64",
            "title" : "The timestamp when the refund was sent.",
            "type" : "integer"
          },
          "sendMode" : {
            "enum" : [ "MANUAL", "AUTOMATIC" ],
            "type" : "string"
          },
          "substatus" : {
            "example" : "SCREENING_IN_PROGRESS",
            "maxLength" : 64,
            "title" : "Provides additional detail about the refund status. While primary statuses indicate the overall state, substatuses offer more specific information about why the refund is in that state. Not all primary statuses have associated substatuses.",
            "type" : "string"
          },
          "txid" : {
            "description" : "The TXID of a refund transaction.",
            "example" : "4f13bc54e8df1620f98934078caaa59c7b480f3ed64e9838f5af519f311bb0b1",
            "type" : "string"
          },
          "updatedAt" : {
            "example" : 1594376981,
            "format" : "int64",
            "title" : "The timestamp of the last refund update.",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "Settlement" : {
        "properties" : {
          "currency" : {
            "description" : "Merchant gets paid in this currency - currency of the outstanding  balance where the paid invoice's amount is added. When value of settlement and invoice currencyTo is null, then settlement currency is set same as customer currency after customer chooses crypto currency in Invoice.",
            "enum" : [ "BTC", "CZK", "EUR", "GBP", "USD", "USDC", "USDT" ],
            "example" : "EUR",
            "title" : "Currency of the outstanding balance where the paid invoice's amount is added",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "SettlementCurrency" : {
        "description" : "The currency in which the Settlement will be paid out. Merchant gets paid in this currency, when it is assigned to an invoice as settlement currency",
        "enum" : [ "BTC", "CZK", "ETH", "EUR", "GBP", "HUF", "LTC", "PLN", "POL", "SOL", "TRX", "USD", "USDC", "USDT" ],
        "example" : "EUR",
        "title" : "The currency in which the Settlement will be paid out.",
        "type" : "string"
      },
      "SettlementInfoTo" : {
        "properties" : {
          "amount" : {
            "description" : "The amount of the Settlement.",
            "example" : "276.25",
            "type" : "number"
          },
          "createdAt" : {
            "description" : "A Unix timestamp specifying creation of the settlement.",
            "example" : 1561363200,
            "format" : "int64",
            "type" : "integer"
          },
          "currency" : {
            "$ref" : "#/components/schemas/SettlementCurrency",
            "type" : "string"
          },
          "fee" : {
            "description" : "The fee of the Settlement.",
            "example" : 0,
            "type" : "number"
          },
          "id" : {
            "description" : "The Settlement ID.",
            "example" : "setv9e1qxgz8",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "SettlementMethodPayoutTo" : {
        "properties" : {
          "interval" : {
            "$ref" : "#/components/schemas/PayoutIntervalTo"
          },
          "minValue" : {
            "description" : "Minimum settled amount.",
            "example" : "100.00",
            "type" : "number"
          }
        },
        "required" : [ "minValue" ],
        "type" : "object"
      },
      "SettlementMethodToObject" : {
        "discriminator" : {
          "propertyName" : "type"
        },
        "properties" : {
          "active" : {
            "description" : "True if the Settlement Method is active, false if it is disabled.",
            "example" : true,
            "type" : "boolean"
          },
          "createdAt" : {
            "description" : "The Unix timestamp specifying when the Settlement Method was created.",
            "example" : 1519391219,
            "format" : "int64",
            "type" : "integer"
          },
          "id" : {
            "description" : "The Settlement Method ID.",
            "example" : "smtq5ejjne0p",
            "type" : "string"
          },
          "keepMinBalance" : {
            "description" : "The minimum account balance after Settlement.",
            "example" : "0.00",
            "type" : "number"
          },
          "notificationMail" : {
            "description" : "The e-mail address where the notifications will be sent.",
            "type" : "string"
          },
          "paymentMethodId" : {
            "title" : "Identifier of the payment method",
            "type" : "string"
          },
          "settlement" : {
            "$ref" : "#/components/schemas/SettlementMethodPayoutTo",
            "description" : "The Settlement settings."
          },
          "settlementAccount" : {
            "description" : "The account where to send money. One of BankAccountTo or CryptoAccountTo.",
            "example" : "{'accountNumber': 'CZ123456789', 'swift': 'AAAACZBB'} or {'address': 'bc1...456', 'currency': 'BTC'}"
          },
          "type" : {
            "description" : "Type of the Settlement.",
            "enum" : [ "bank_payment_accounts", "crypto_payment_accounts" ],
            "example" : "bank_payment_accounts",
            "type" : "string"
          },
          "updatedAt" : {
            "description" : "The Unix timestamp specifying the moment of the Settlement Method's last update.",
            "example" : 1519391219,
            "format" : "int64",
            "type" : "integer"
          }
        },
        "required" : [ "keepMinBalance", "type" ],
        "type" : "object"
      },
      "SettlementTo" : {
        "properties" : {
          "account" : {
            "description" : "The IBAN or crypto address",
            "example" : "CZ65 0800 0000 192 5399 0014",
            "type" : "string"
          },
          "amount" : {
            "description" : "The amount to be paid out.",
            "example" : "97.20",
            "type" : "number"
          },
          "balanceFromPreviousPeriod" : {
            "description" : "The balance that has been transferred from the previous Settlement.",
            "example" : "249.75",
            "type" : "number"
          },
          "balanceToNextPeriod" : {
            "description" : "The balance to be transferred to the next Settlement.",
            "example" : "249.75",
            "type" : "number"
          },
          "correctionTransactionIds" : {
            "description" : "The Settlement's correction transactions IDs.",
            "example" : "trn1lkfd3,trnopi323",
            "items" : {
              "type" : "string"
            },
            "type" : "array"
          },
          "correctionTransactionSum" : {
            "description" : "The sum of correction transactions made by admin.",
            "example" : "12.25",
            "type" : "number"
          },
          "createdAt" : {
            "description" : "The timestamp when the Settlement was created.",
            "example" : 1506079172,
            "format" : "int64",
            "type" : "integer"
          },
          "currency" : {
            "$ref" : "#/components/schemas/SettlementCurrency",
            "type" : "string"
          },
          "fee" : {
            "description" : "The Settlement fee.",
            "example" : "2.00",
            "type" : "number"
          },
          "id" : {
            "description" : "The Settlement ID.",
            "example" : "set748ep4e5x",
            "type" : "string"
          },
          "invoiceAmountSum" : {
            "description" : "The sum of Settlement's Invoices amounts.",
            "example" : "100.00",
            "type" : "number"
          },
          "invoiceFeeSum" : {
            "description" : "The sum of Settlement's Invoice fees.",
            "example" : "0.80",
            "type" : "number"
          },
          "invoiceIds" : {
            "description" : "The Settlement's Invoices IDs.",
            "example" : "inv1lkfd3,invopi323",
            "items" : {
              "type" : "string"
            },
            "type" : "array"
          },
          "keepMinBalance" : {
            "description" : "The minimum account balance after Settlement.",
            "example" : "0.00",
            "type" : "number"
          },
          "osTransactionAmountSum" : {
            "description" : "The sum of transactions created via Payout API.",
            "example" : 100,
            "type" : "number"
          },
          "osTransactionFeeSum" : {
            "description" : "The sum of fees of transactions created via Payout API.",
            "example" : "0.8",
            "type" : "number"
          },
          "overpaymentAmountSum" : {
            "description" : "The sum of Settlement's accepted invoice overpayments.",
            "example" : 100,
            "type" : "number"
          },
          "overpaymentFeeSum" : {
            "description" : "The sum of fees of Settlement's accepted invoice overpayments.",
            "example" : "0.8",
            "type" : "number"
          },
          "payoutIds" : {
            "description" : "The Settlement's Payouts IDs.",
            "example" : "ost1lkfd3,ostopi323",
            "items" : {
              "type" : "string"
            },
            "type" : "array"
          },
          "status" : {
            "description" : "The Settlement status.",
            "enum" : [ "blocked_overlimit", "pending", "on_hold", "sending", "sent", "failed", "canceled" ],
            "type" : "string"
          },
          "statusReason" : {
            "description" : "The reason why the Settlement sending failed.",
            "type" : "string"
          },
          "substatus" : {
            "example" : "SCREENING_IN_PROGRESS",
            "maxLength" : 64,
            "title" : "Provides additional detail about the settlement status. While primary statuses indicate the overall state, substatuses offer more specific information about why the settlement is in that state. Not all primary statuses have associated substatuses.",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "TakeInfoTo" : {
        "properties" : {
          "customerCurrency" : {
            "description" : "The currency in which the customer is supposed to pay.",
            "example" : "LTC",
            "type" : "string"
          },
          "expiration" : {
            "description" : "The timestamp when take offer expires.",
            "example" : 1552987955,
            "format" : "int64",
            "type" : "integer"
          },
          "expirationDuration" : {
            "description" : "The number of seconds before take offer expires.",
            "example" : 120,
            "format" : "int64",
            "type" : "integer"
          },
          "merchantCurrency" : {
            "type" : "string"
          },
          "offeredAmountInMerchantCurrency" : {
            "type" : "number"
          },
          "offeredPrice" : {
            "description" : "The new price of crypto currency.",
            "example" : "1318.16",
            "type" : "number"
          },
          "offeredSettlementAmount" : {
            "description" : "The new amount to be settled (after take).",
            "example" : 3198,
            "type" : "number"
          },
          "originalSettlementAmount" : {
            "description" : "The original amount to be settled (before take)",
            "example" : "4505.4",
            "type" : "number"
          },
          "refundAmount" : {
            "description" : "Used for internal purposes",
            "example" : 0,
            "type" : "number"
          },
          "settlementCurrency" : {
            "description" : "The currency of the Settlement Method.",
            "example" : "EUR",
            "type" : "string"
          },
          "taken" : {
            "description" : "True if the Invoice was taken.",
            "example" : true,
            "type" : "boolean"
          },
          "takenAt" : {
            "description" : "The take action timestamp as Unix timestamp.",
            "example" : 1552987719,
            "format" : "int64",
            "type" : "integer"
          }
        },
        "type" : "object"
      },
      "UpdateFiatWithdrawalScheduleRestRequest" : {
        "properties" : {
          "frequency" : {
            "description" : "Sweep cadence. Omit to keep the schedule's current frequency.",
            "enum" : [ "DAILY", "WEEKLY", "MONTHLY" ],
            "example" : "WEEKLY",
            "type" : "string"
          },
          "frequencyDay" : {
            "description" : "Day selector. Omit to keep the schedule's current day (or to leave it null when switching to DAILY). Must be null for DAILY; 1-7 (Monday=1) for WEEKLY; 1-31 for MONTHLY.",
            "example" : 1,
            "format" : "int32",
            "type" : "integer"
          },
          "minimumAmount" : {
            "$ref" : "#/components/schemas/JsonNullableBigDecimal",
            "description" : "Optional minimum the net swept amount must reach for a withdrawal to be created. Omit to leave it unchanged, or send null to remove the minimum entirely.",
            "example" : "50.00"
          },
          "minimumBalance" : {
            "description" : "Balance floor in major units of the schedule's currency. Omit to keep the schedule's current floor. Only the excess above this floor is swept.",
            "example" : "1000.00",
            "type" : "number"
          }
        },
        "type" : "object"
      },
      "WireMailingAddressTo" : {
        "description" : "Postal address for a wire deposit.",
        "properties" : {
          "address1" : {
            "example" : "123 Bank Street",
            "type" : "string"
          },
          "address2" : {
            "example" : "Suite 100",
            "type" : "string"
          },
          "city" : {
            "example" : "New York",
            "type" : "string"
          },
          "country" : {
            "example" : "USA",
            "type" : "string"
          },
          "province" : {
            "example" : "NY",
            "type" : "string"
          },
          "zipCode" : {
            "example" : "10101",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "WireRoutingDetailsTo" : {
        "description" : "Bank routing details for a wire deposit.",
        "properties" : {
          "bankAddress" : {
            "$ref" : "#/components/schemas/WireMailingAddressTo"
          },
          "bankName" : {
            "example" : "Customers Bank",
            "type" : "string"
          },
          "routingNumber" : {
            "example" : "123456789",
            "type" : "string"
          },
          "routingNumberType" : {
            "description" : "Routing scheme.",
            "example" : "SWIFT",
            "type" : "string"
          }
        },
        "type" : "object"
      },
      "WireTopUpInstructionTo" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/FiatTopUpInstructionTo"
        }, {
          "properties" : {
            "accountNumber" : {
              "description" : "Account number to wire funds to.",
              "example" : "12345678",
              "type" : "string"
            },
            "beneficiaryAddress" : {
              "$ref" : "#/components/schemas/WireMailingAddressTo"
            },
            "currency" : {
              "description" : "Currency of the top-up account.",
              "enum" : [ "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
              "example" : "USD",
              "type" : "string"
            },
            "intermediaryRoutingDetails" : {
              "$ref" : "#/components/schemas/WireRoutingDetailsTo"
            },
            "memoId" : {
              "description" : "Memo to quote on the wire transfer so the deposit is attributed correctly.",
              "example" : "9CFXQSCMSPLFHXLZ",
              "type" : "string"
            },
            "notifyUrl" : {
              "description" : "Notify URL as supplied in Merchant Settings.",
              "example" : "https://example.com/webhook",
              "format" : "url",
              "type" : "string"
            },
            "routingDetails" : {
              "$ref" : "#/components/schemas/WireRoutingDetailsTo"
            }
          },
          "type" : "object"
        } ],
        "description" : "Top-up instructions for Paxos Bank Wire deposits."
      }
    },
    "securitySchemes" : {
      "bearer-auth" : {
        "scheme" : "bearer",
        "type" : "http"
      }
    }
  },
  "info" : {
    "description" : "_Confirmo merchant API_ consists of the APIs for the Merchant communication with the Confirmo.com service.\n\n**Be sure to use HTTPS protocol.** All API requests are redirected to HTTPS, thus most of the plain HTTP requests won't\nwork (those using PUT, POST, or PATCH methods).\n\n**Please be aware that this API is subject to change.** Confirmo can add some new fields. Please, remember that when\nwriting your clients. Your client is required to ignore any fields it does not know.\n\n## Authentication\n\nCurrently, this API supports only one model of authentication - _API keys_. The keys are private for every merchant and\nshould only be used to access your invoices and settlements from the outside of the user interface.\n\n#### API key management\n\nAPI keys can be created and deleted in the user interface. After you log in to your account, navigate to `Settings` and\ncontinue to the `API Keys` <a href=\"https://dashboard.confirmo.com/platform/settings/api-keys\">section</a>. The new key\nwill be\ncreated and its token will be displayed for a limited time. Make sure to store it in a __safe__ place as it\nwill not be accessible via the UI for security reasons later.\n\nEach token will provide read/write access outside the UI to your account. It will remain valid until its\ndeletion in the UI.\n\n#### API key best practices\n\nWhen you use API keys in your applications, keep them secure.\n\nPublicly exposing your credentials can result in your account being compromised.\n\nTo keep your API keys secure, follow these best practices:\n\n* __Do not embed API keys directly in code__: API keys embedded in code can be accidentally exposed to the\n  public. For example, if you forget to remove the keys from the code that you share. Instead of embedding your API keys\n  in your applications, store them in environment variables or files outside your application's source tree.\n\n\n* __Do not store API keys in files inside your application's source tree__: If you store API keys in files, keep the\n  files outside your application's source tree to help ensure your keys do not end up in your source code control\n  system. This is particularly important if you use a public source code management system such as GitHub.\n\n\n* __Restrict your API keys to IP addresses that need them__: By restricting the IP addresses that\n  can use each key, you can reduce the impact of a compromised API key.\n\n\n* __Delete unneeded API keys__: To minimize your exposure to attack, delete any API keys that you no longer need.\n\n\n* __Review your code before publicly releasing it__: Ensure that code does not contain API keys or any other\n  private information before you make your code publicly available.\n\n#### API key usage\n\nEach request made from the outside of the application must include an `Authorization` header containing a valid API key\ntoken. Example using curl:\n\n<pre>\n  <code>\n    curl https://confirmo.net/api/v3/invoices -H 'Authorization: Bearer {YOUR_API_KEY}' \n  </code>\n</pre>\n\n## Status codes\n\nAPI responses are marked with status codes:\n\n* `200 OK` Request resolved\n\n\n* `201 Created` Request resolved by successfully creating a new object in the\n  system\n\n\n* `204 No Content` Request resolved and no content is returned\n\n\n* `400 Bad Request` Invalid format of request\n\n\n* `401 Unauthorized` Invalid or missing API key in the request header\n\n\n* `403 Forbidden` Authorized but not to access the particular resource\n\n\n* `500 Internal Server Error` The server has encountered an unexpected\n  condition; please contact support@confirmo.net\n\n\n* `503 Service Unavailable` The server could not fulfill your request;\n  please contact the Confirmo support\n\n## <a id=\"idempotent-requests\"></a>Idempotent requests\n\nSelected endpoints accept an optional `Idempotency-Key` request header to prevent duplicate transactions in \ncases such as retries caused by network issues or delays. Endpoints that support it note `Idempotency-Key`\nsupport in their description.\n\nWhen you supply the header, the value must be a non-empty, printable-ASCII string of at most 255 characters. \nWe recommend generating a fresh UUID for each logical operation.\n\nUsing the same idempotency key for multiple requests ensures that only the outcome of the original request is ever \nreturned. Confirmo saves the first response and reuses it for any subsequent requests with that same key, without \nre-executing the operation. Note that when the request failed, you will have the original error \nresponse available only on the first call, on the retry with same idempotency key only a generic `409` + \n`idempotency_key_previously_failed`.\n\nThe stored response remains available for 24 hours. After that period a new idempotency key must be used.\n\nError responses all share the shape `{ \"message\": ..., \"error\": ... }`, where `error` is a stable machine-readable code.\n\n`400 Bad Request` — the supplied key is malformed (empty, longer than 255 characters, or containing\nnon-printable-ASCII characters):\n\n```json\n{\n  \"message\": \"Idempotency-Key must be non-empty, at most 255 printable-ASCII characters.\",\n  \"error\": \"idempotency_key_invalid\"\n}\n```\n\n`409 Conflict` — the same key was already used with different request parameters (body or query):\n\n```json\n{\n  \"message\": \"This Idempotency-Key was already used with different request parameters (body or query).\",\n  \"error\": \"idempotency_key_reused_with_different_body\"\n}\n```\n\n`409 Conflict` — the same key was already used on a different endpoint:\n\n```json\n{\n  \"message\": \"This Idempotency-Key was already used on a different endpoint.\",\n  \"error\": \"idempotency_key_reused_on_different_endpoint\"\n}\n```\n\n`409 Conflict` — a request with this key is still being processed:\n\n```json\n{\n  \"message\": \"A request with this Idempotency-Key is still being processed.\",\n  \"error\": \"idempotency_key_in_progress\"\n}\n```\n\n`409 Conflict` — the original request with this key failed; retry with a new key:\n\n```json\n{\n  \"message\": \"The original request with this Idempotency-Key failed, retry with a new Idempotency-Key.\",\n  \"error\": \"idempotency_key_previously_failed\"\n}\n```\n\n## Notifications\n\nThe _Confirmo merchant API_ allows merchants to enable simple notifications as part of invoice creation. These\nnotifications are of the following types:\n\n* [webhook notifications](#webhook-notifications)\n* [e-mail notifications](#email-notifications)\n\nNotifications are sent on the following occasions:\n\n1. invoice creation;\n2. change of invoice status;\n3. received payment/outgoing payment (refund).\n\n### <a id=\"webhook-notifications\"></a>Webhook notifications\n\nIf `notifyUrl` is defined in an invoice creation request, then the system tries to send an HTTP `POST` request\nwith `Content-Type` set to `application/json` to the URL. The request's body contains the current invoice model (same as\ncreating a new invoice response).\n\nBy default, the system will continue to send the notification until it receives `200` response or stops after 20 tries.\nAfter the first failed try it will wait for 1 second. The waiting period is doubled after each failed request.\n\nIf the system fails to send a successful request, it will try to send an error report via e-mail. It is sent\non `notifyEmail` if it was specified or on the merchant's user e-mail otherwise. This e-mail contains our error message\nand error response to the last unsuccessful request.\n\n#### Callback Password\n\n__A callback password__ is an autogenerated pseudo-random alphanumeric string used as a data validation mechanism for\nstronger security. When a callback password is created, it is used to generate signatures that are included in\nevery webhook notification **request header**.\n\nThe signature is generated - and **needs to be validated** (to ensure that the webhooks do originate from Confirmo and\nwere not forged by someone else) - by\n\n1. taking the request/response body;\n\n2. suffixing it with the callback password;\n\n3. hashing the result using the SHA256 algorithm;\n\n4. storing the hexadecimal representation in the `bp-signature` header field of the request/response.\n\n##### Example\n\n- Callback password: `azLlmIpWHM9NJbMe`\n\n\n- Response body:\n  `{\"address\":\"P3n6Ul5FsSd59xfbzdD2VN3HHycIddjpc\",\"cryptoUri\":\"bitcoin:P3n6Ul5FsSd59xfbzdD2VN3HHycIddjpc?amount=0.00779057\",\"createAtTime\":1509525927,\"serverTime\":1509525927,\"timeoutTime\":1509526226,\"id\":\"inv57dkwrrdw\",\"url\":\"https://pay.confirmo.com/public/invoice/inv57dkwrrdw\",\"reference\":\"{\\\"customerEmail\\\":\n  \\\"customer@example.com\\\", \\\"orderNumber\\\": 123, \\\"customerName\\\": \\\"Customer\n  Name\\\"}\",\"returnUrl\":\"http://yourEShop.com/thankYourForYourOrder\",\"notifyUrl\":\"https://yourEShop.com/orderReceived\",\"notifyEmail\":\"notify@email.com\",\"product\":{\"name\":\"pName\",\"description\":\"pDesc\"},\"status\":\"active\",\"rate\":{\"currency\":\"EUR\",\"currencyX\":\"BTC\",\"rate\":\"6418.02\"},\"txids\":[],\"invoice\":{\"amount\":\"50.00\",\"currency\":\"EUR\"},\"crypto\":{\"amount\":\"0.00779057\",\"currency\":\"BTC\"},\"invoiceSettlements\":[],\"refunds\":[],\"paid\":{\"amount\":\"0.00000000\",\"currency\":\"BTC\",\"diff\":\"-0.00779057\"},\"flags\":{\"split\":false,\"autoUnderpayment\":false,\"refundable\":false},\"paidAtTime\":0,\"completedAtTime\":0,\"settlementMethodCurrency\":\"CZK\",\"confirmations\":0,\"requiredConfirmations\":2,\"exception\":[]}`\n\n\n- SHA256\n  **\n  input**:`{\"address\":\"P3n6Ul5FsSd59xfbzdD2VN3HHycIddjpc\",\"cryptoUri\":\"bitcoin:P3n6Ul5FsSd59xfbzdD2VN3HHycIddjpc?amount=0.00779057\",\"createAtTime\":1509525927,\"serverTime\":1509525927,\"timeoutTime\":1509526226,\"id\":\"inv57dkwrrdw\",\"url\":\"https://pay.confirmo.com/public/invoice/inv57dkwrrdw\",\"reference\":\"{\\\"customerEmail\\\":\n  \\\"customer@example.com\\\", \\\"orderNumber\\\": 123, \\\"customerName\\\": \\\"Customer\n  Name\\\"}\",\"returnUrl\":\"http://yourEShop.com/thankYourForYourOrder\",\"notifyUrl\":\"https://yourEShop.com/orderReceived\",\"notifyEmail\":\"notify@email.com\",\"product\":{\"name\":\"pName\",\"description\":\"pDesc\"},\"status\":\"active\",\"rate\":{\"currency\":\"EUR\",\"currencyX\":\"BTC\",\"rate\":\"6418.02\"},\"txids\":[],\"invoice\":{\"amount\":\"50.00\",\"currency\":\"EUR\"},\"crypto\":{\"amount\":\"0.00779057\",\"currency\":\"BTC\"},\"invoiceSettlements\":[],\"refunds\":[],\"paid\":{\"amount\":\"0.00000000\",\"currency\":\"BTC\",\"diff\":\"-0.00779057\"},\"flags\":{\"split\":false,\"autoUnderpayment\":false,\"refundable\":false},\"paidAtTime\":0,\"completedAtTime\":0,\"settlementMethodCurrency\":\"CZK\",\"confirmations\":0,\"requiredConfirmations\":2,\"exception\":[]}azLlmIpWHM9NJbMe`\n\n\n- SHA256 **output** as a hex string (and the value of the `bp-signature`\n  header field):\n  `08468c5b3af81ca14fe5a3b40703773175cba2cc3ef8700e62e943edd4cba3ee`\n\n##### Creating/Deleting\n\nTo create a callback password, use <a href=\"https://dashboard.confirmo.com/platform/settings/security\">*Security\nSettings*</a> in\nMerchant UI.\n\nMerchant can create only one callback password. A unique callback password is generated every time and\nbecomes active right away.\n\nDeleting the callback password deactivates the mechanism (`BP_SIGNATURE` is no longer included).\n\n#### Final Status Check\n\n**It is not recommended to rely on webhook data only.** In case that callback password gets compromised, an attacker\nwould still be able to forge the webhooks. Therefore, after receiving a webhook about reaching a final status of an\nentity (such as `paid` status for invoice), it's advised to cross-check the result by invoking Confirmo API endpoint\nfor getting details of the entity (such as <a href=\"#/Invoice/getInvoiceByMerchant\">GET invoice endpoint</a>). This is\nthe ultimate source of truth even in case that somebody managed to forge the webhook.\n\n### <a id=\"email-notifications\"></a>Email notifications\n\nThe system supports two types of email notifications in invoice creation request, each serving a different purpose:\n\n#### Merchant Notifications (`notifyEmail`)\n\n - Sends basic invoice information in human-readable format to the specified email address\n - Notification are sent:\n   - When HTTPS notifications fail (see above)\n   - When invoice payment is successful\n   - When invoice expires and enters exception state\n - **Important**: Do not use customer email addresses here, as those notifications may contain merchant-specific information\n\n#### Customer Notifications (`customerEmail`)\n - Notifies customers about important invoice status changes:\n   - When invoice payment is successful\n   - When invoice expires and enters exception state\n - Should contain the end-customer's email address only\n - Note that the customer email can be set also by end-customer on the public invoice when the invoice is in Confirming state\n\n## Entity states\n\n### Invoice\n\n![Invoice state diagram](https://confirmo-test.s3.eu-central-1.amazonaws.com/Invoice-diagram.svg)\n\n- `prepared` - customer selects preffered payment method.\n  Status `prepared` exists only if the [Create invoice](#/Invoice/createInvoiceByMerchant\") endpoint\n  is called with parameter `invoice.currencyTo= null`, otherwise the end-customer will not be able to select crypto of\n  their choice. It enters `active` state, or `expired` state after 15 minutes of inactivity.\n    - next states: `active`, `expired`\n\n- `active` - Invoice with payment instructions including crypto address, crypto asset, crypto network, amount,\n  currency... By default, the invoice is active for 15 min. Expiration time can be adjusted\n  from <a href=\"https://dashboard.confirmo.com/platform/settings/invoice\">*Invoice Settings*</a>.\n    - next states: `expired`, `confirming`\n\n- `expired` - No payment has been sent within its active period or the amount sent is smaller than the\n  requested amount. An `expired` invoice may have a so-called `exception` [flag](#exception).\n    - final state for invoices with [exception flag](#exception) set to `false`.\n    - next state: `paid` for invoices with [exception flag](#exception) set to `true` and were accepted/taken\n      by the merchant.\n\n- `confirming` - payment detected, the amount is correct or higher, but the payment is not finished (usually it means it\n  has not enough confirmations) on its crypto network yet\n    - next states: `error`, `paid`\n\n- `error` - confirming failed. Transaction is not confirmed within next 96 hours.\n    - final state\n\n- `paid` - the invoice has been credited to the merchant's account and has sufficient confirmation(s).\n    - final state\n\n#### <a id=\"exception\"></a>Exception\n\n`unhandledExceptions` is a special flag informing merchants about an invoice that may need attention.\n\n`unhandledExceptions` set to `true` indicates the invoice is **overpaid**, **underpaid** or **incorrect amount** has\nbeen sent to an `expired` invoice.\n\nInvoices with `unhandledExceptions = true` share the following behavior:\n\n1. Invoices are refundable from invoice `url`. However, only paying customer is allowed to request a refund from\n   invoice `url` for security reasons. Merchant can initiate refund from invoice detail in his dashboard.\n\n2. `paid` invoice. Only overpayment and not the whole amount is refundable. Invoice remains in state `paid` all time.\n\n\n3. `expired` invoice. The whole amount is refundable. The merchant can review the invoice and accept the payment to his\n   balance additionally. Once the payment is credited to merchant's balance the status of the invoice changes to `paid`.\n   The invoice is no longer refundable and `unhandledExceptions` is set to `false`.\n\n4. If the additional payment is sent to resolved (already refunded or credited) invoice `unhandledExceptions` is set\n   to `true` again.\n\n\n5. We do not mark invoices with an exception flag if the amount of overpayment or underpayment is very low and the\n   refunding amount would cost more than the network fee or very close to the network fee.\n\n\n6. Payment that matches rules specified in Dashboard\n   in [Underpayment threshold](https://dashboard.confirmo.com/platform/settings/invoice) have `unhandledExceptions` set\n   to `false`.\n\n#### Data Purging\n\nPlease note that invoices which transition directly from `prepared` to `expired` status (i.e. those which never had\ntheir `customerCurrency` (or more generally payment method) set) are subject to data purging after some retention\nperiod (e.g. a year).\n\n### Payout\n\n![Payout state diagram](https://confirmo-test.s3.eu-central-1.amazonaws.com/Payout-diagram.svg)\n\n- `prepared` - new payout\n    - next states: `confirmed`, `expired`\n\n- `confirmed` - Exchange rate has been accepted by a merchant\n    - next state: `sending`\n\n- `sending` - payout prepared to be sent. Payouts are sent on a regular basis\n    - next state: `done`\n\n- `done` - payment was successful and txid is known\n    - final state\n\n- `expired` - payout that has not been `confirmed` in given time.\n    - final state\n\n#### Data Purging\n\nSimilar to invoices, payouts which transition directly from `prepared` to `expired` status are subject to data purging\nafter some retention period (e.g. a year).\n\n## Overlay - no redirection to confirmo.com website\n\nTo open an invoice in the overlay instead of redirecting the user to our page.\nFollow these steps in the [library](https://www.npmjs.com/package/@confirmo/overlay) documentation.\n\n## Integration tips\n\n- If the notification is not received, please check that `notifyUrl` is specified correctly, a valid SSL certificate is\n  installed on your server and the `notifyUrl` starts with https:// not http://. Verify your notification handler\n  script is receiving POST's.\n\n\n- Once your notification handler receives a response, especially when `paid` status is announced, it is recommended to\n  call [Get invoice detail](#/Invoice/getInvoiceByMerchant) to verify\n  notification data.\n\n\n- It is not recommended to rely on [webhook notification](#webhook-notifications) POST's data only.\n\n\n- Please make sure, that the payment URL is not public nor available for search engines.\n\n\n- It is possible to request a refund via payment URL if the payment was sent incorrectly, so please be very cautious and\n  consider security. Even your support staff can request a refund via payment URL.\n\n## Invoice creation\n\nWhen [creating a new invoice](#/Invoice/createInvoiceByMerchant), the following parameters are the most important ones.\n\n| Parameter name         | Required | Description                          | Example | Dedicated Section                                     |\n|------------------------|----------|--------------------------------------|---------|-------------------------------------------------------|\n| `invoice.amount`       | Yes      | The original invoice's amount        | 100     | [Invoice original amount](#invoice-original-amount)   |\n| `invoice.currencyFrom` | Yes      | Code of the original invoice's asset | USD     | [Invoice original amount](#invoice-original-amount)   |\n| `invoice.currencyTo`   | No       | Code of the payment asset            | BTC     | [Invoice payment asset](#invoice-payment-asset)       |\n| `settlement.currency`  | Yes*     | Code of the settlement asset         | EUR     | [Invoice settlement asset](#invoice-settlement-asset) |\n\n&ast; Technically, it's `settlement` (not `settlement.currency`) attribute which is required, i.e. sending a request\nwith an empty `settlement` attribute is also valid (and it's equivalent to sending a request\nwith `settlement.currency = null`).\n\n### <a id=\"invoice-original-amount\"></a>Invoice original amount\n\nParameter `invoice.currencyFrom` (code of the original invoice's asset) can be set to almost any world fiat currency\n(`USD`, `EUR`, `CHF`, … ) and also to `BTC`, please refer to [Get assets endpoint](#/Assets/getAssets) to get\nlist of the currently supported assets (those with `merchantAsset=true`).\n\n### <a id=\"invoice-payment-asset\"></a>Invoice payment asset\n\nParameter `invoice.currencyTo` is highly recommended to be set to _null_. If set to _null_, the invoice is created and\nthe status of the invoice is set to **prepared**, which allows the customer to select any supported payment methods.\nSupported payment methods can be enabled/disabled in the dashboard.\n\nIt's also possible to set it to:\n\n* `BTC` to pre-select payment via native Bitcoin\n* `BTC` (alongside with parameter `invoice.layer2ProtocolName` set to `LIGHTNING`) to pre-select payment via Bitcoin\n  Lightning\n* `LTC` to pre-select payment via native Litecoin\n\nShould you need to create an invoice with other predefined payment method, please contact us at _tech@confirmo.net_.\n\n### <a id=\"invoice-settlement-asset\"></a>Invoice settlement asset\n\nParameter `settlement.currency` configure s the settlement asset in which we credit merchant balance. There are two main\noptions to choose from described in the following subsections.\n\n#### Without conversion (Keep in kind)\n\nIf you set `settlement.currency = null` when creating an Invoice, all the payments sent to the Invoice will be credited\nto the merchant account in the same crypto asset as the customer used for the payment. For instance, if the customer\nchooses to pay with TRX, the payment will be credited to the merchant's TRX balance.\n\n#### With conversion\n\nYou can choose in which asset you want to be credited; to do so, use `settlement.currency = <supported-asset-code>`.\nIn this case, all the payments to the Invoice will be converted to the settlement asset you set.\n\nCurrently, we support the following settlement assets:\n\n| `settlement.currency` | Asset name             | Asset type          |\n|-----------------------|------------------------|---------------------|\n| BTC                   | Bitcoin                | Crypto              |\n| CZK                   | Czech koruna           | Fiat                |\n| EUR                   | Euro                   | Fiat                |\n| GBP                   | British pound sterling | Fiat                |\n| HUF                   | Hungarian forint       | Fiat                |\n| PLN                   | Polish zloty           | Fiat                |\n| USD                   | United States dollar   | Fiat                |\n| USDC                  | USD Coin               | Crypto (stablecoin) |\n| USDT                  | Tether USD             | Crypto (stablecoin) |\n\n### Sample combinations\n\n| `invoice.currencyFrom` | `invoice.currencyTo` | `invoice.layer2ProtocolName` | `settlement.currency` | Description                                                                          |\n|------------------------|----------------------|------------------------------|-----------------------|--------------------------------------------------------------------------------------|\n| `USD`                  | _null_               |                              | `EUR`                 | USD invoice to be paid by a customer-chosen method and credited in EUR               |\n| `GBP`                  | _null_               |                              | `USDC`                | GBP invoice to be paid by a customer-chosen method and credited in USDC              |\n| `BTC`                  | `BTC`                | `LIGHTNING`                  | `USDT`                | BTC invoice to be paid by Bitcoin Lightning and credited in USDT                     |\n| `EUR`                  | _null_               |                              | _null_                | EUR invoice to be paid by a customer-chosen method and credited in the payment asset |\n| `CHF`                  | `LTC`                |                              | `BTC`                 | CHF invoice to be paid by Litecoin and credited in BTC                               |\n\n## Developers\n\n### Postman\n\nWhen you have downloaded [the OpenAPI specification](./confirmo-api.json), you can import it\nto [Postman](https://www.postman.com/).\nThe tool will generate all the endpoints and code snippets, which you could use in your application.\n\n<video width=\"100%\" height=\"300\" controls>\n  <source src=\"https://confirmo-test.s3.eu-central-1.amazonaws.com/postman.mp4\" type=\"video/mp4\">\n</video>\n\n### Swagger tools\n\nIf you insert the downloaded OpenAPI specification into [Swagger editor](https://editor.swagger.io/), you could then\ngenerate a Client SDK that you will be able to use for integration Confirmo API into your application. You can use\n[Swagger Codegen](https://github.com/swagger-api/swagger-codegen)\nor [OpenAPI Generator](https://openapi-generator.tech/) too.\n",
    "title" : "Confirmo API",
    "version" : "2.0"
  },
  "openapi" : "3.1.0",
  "paths" : {
    "/v3/balances" : {
      "get" : {
        "description" : "Returns merchant's balances.",
        "operationId" : "getMerchantBalances",
        "parameters" : [ {
          "description" : "The ISO 4217 code of the currency to filter balances by.",
          "example" : "EUR",
          "in" : "query",
          "name" : "currency",
          "required" : false,
          "schema" : {
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL", "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "items" : {
                    "$ref" : "#/components/schemas/MerchantBalanceTo"
                  },
                  "type" : "array"
                }
              }
            },
            "description" : "Successfully retrieved balances"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Get merchant balances",
        "tags" : [ "Merchant Balance" ]
      }
    },
    "/v3/crypto-payment-methods" : {
      "get" : {
        "description" : "Returns a list of merchant's Crypto Payment Methods.",
        "operationId" : "listCryptoPaymentMethods",
        "parameters" : [ {
          "description" : "A flag to filter payment methods by those enabled for invoicing",
          "in" : "query",
          "name" : "invoicingEnabled",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "items" : {
                    "$ref" : "#/components/schemas/MerchantCryptoPaymentMethodTo"
                  },
                  "type" : "array"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Get Crypto Payment Methods",
        "tags" : [ "Crypto payment methods" ]
      }
    },
    "/v3/currencies" : {
      "get" : {
        "description" : "Retrieves data about the supported assets",
        "operationId" : "getAssets",
        "responses" : {
          "200" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "items" : {
                    "$ref" : "#/components/schemas/AssetTo"
                  },
                  "type" : "array"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Get Assets",
        "tags" : [ "Assets" ]
      }
    },
    "/v3/deposits/crypto" : {
      "get" : {
        "description" : "Retrieves a paginated list of crypto deposits with optional filtering by account, address, blockchain network, payment asset code, balance asset code, status, and creation date range.",
        "operationId" : "getDepositsPaginated",
        "parameters" : [ {
          "description" : "Filter by status",
          "example" : "DONE",
          "in" : "query",
          "name" : "status",
          "required" : false,
          "schema" : {
            "enum" : [ "CONFIRMING", "PENDING_VERIFICATION", "UNASSIGNED", "DONE", "BLOCKED", "ABSORBED", "FAILED", "RETURNED" ],
            "type" : "string"
          }
        }, {
          "description" : "Filter by crypto deposit account ID",
          "example" : "cda1a2b3c4d5",
          "in" : "query",
          "name" : "accountId",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by crypto address",
          "example" : "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
          "in" : "query",
          "name" : "address",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by blockchain network",
          "example" : "ETHEREUM_BLOCKCHAIN_MAINNET",
          "in" : "query",
          "name" : "chain",
          "required" : false,
          "schema" : {
            "enum" : [ "BITCOIN-BLOCKCHAIN-MAINNET", "BITCOIN-LIGHTNING-MAINNET", "BSC-BLOCKCHAIN-MAINNET", "ETHEREUM-ARBITRUM-ONE-MAINNET", "ETHEREUM-BLOCKCHAIN-MAINNET", "ETHEREUM-OPTIMISM-MAINNET", "PLASMA-BLOCKCHAIN-MAINNET", "ETHEREUM-POLYGON-MAINNET", "LITECOIN-BLOCKCHAIN-MAINNET", "SOLANA-BLOCKCHAIN-MAINNET", "TRON-BLOCKCHAIN-MAINNET" ],
            "type" : "string"
          }
        }, {
          "description" : "Filter by payment crypto asset code",
          "example" : "ETH",
          "in" : "query",
          "name" : "paymentAsset",
          "required" : false,
          "schema" : {
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL" ],
            "type" : "string"
          }
        }, {
          "description" : "Filter by balance asset code",
          "example" : "USD",
          "in" : "query",
          "name" : "balanceAsset",
          "required" : false,
          "schema" : {
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL", "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "type" : "string"
          }
        }, {
          "description" : "Filter deposits created after this timestamp (inclusive)",
          "example" : 1772539200,
          "in" : "query",
          "name" : "createdAtFrom",
          "required" : false,
          "schema" : {
            "format" : "int64",
            "type" : "integer"
          }
        }, {
          "description" : "Filter deposits created before this timestamp (inclusive)",
          "example" : 1772625600,
          "in" : "query",
          "name" : "createdAtTo",
          "required" : false,
          "schema" : {
            "format" : "int64",
            "type" : "integer"
          }
        }, {
          "description" : "Number of results per page (max 100)",
          "example" : 20,
          "in" : "query",
          "name" : "limit",
          "required" : false,
          "schema" : {
            "default" : 20,
            "exclusiveMinimum" : 0,
            "format" : "int32",
            "maximum" : 100,
            "type" : "integer"
          }
        }, {
          "description" : "Pagination offset - number of items to skip",
          "example" : 0,
          "in" : "query",
          "name" : "offset",
          "required" : false,
          "schema" : {
            "default" : 0,
            "format" : "int32",
            "minimum" : 0,
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DataPageToCryptoDepositTo"
                }
              }
            },
            "description" : "Successfully retrieved paginated list of crypto deposits."
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "List crypto deposits",
        "tags" : [ "Crypto deposit" ]
      }
    },
    "/v3/deposits/crypto/accounts" : {
      "get" : {
        "description" : "Retrieves a paginated list of Crypto Deposit accounts for the authenticated merchant.",
        "operationId" : "listCryptoDepositAccounts",
        "parameters" : [ {
          "description" : "Number of results per page (max 100)",
          "example" : 20,
          "in" : "query",
          "name" : "limit",
          "required" : false,
          "schema" : {
            "default" : 20,
            "exclusiveMinimum" : 0,
            "format" : "int32",
            "maximum" : 100,
            "type" : "integer"
          }
        }, {
          "description" : "Pagination offset - number of items to skip",
          "example" : 0,
          "in" : "query",
          "name" : "offset",
          "required" : false,
          "schema" : {
            "default" : 0,
            "format" : "int32",
            "minimum" : 0,
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DataPageToCryptoDepositAccountTo"
                }
              }
            },
            "description" : "Successfully retrieved paginated list of Crypto Deposit accounts."
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "List Crypto Deposit accounts",
        "tags" : [ "Crypto deposit" ]
      },
      "post" : {
        "description" : "Creates a new Crypto Deposit account for the authenticated merchant.",
        "operationId" : "createCryptoDepositAccount",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateCryptoDepositAccountTo"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CryptoDepositAccountTo"
                }
              }
            },
            "description" : "Successfully created Crypto Deposit account."
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Create a Crypto Deposit account",
        "tags" : [ "Crypto deposit" ]
      }
    },
    "/v3/deposits/crypto/accounts/{id}" : {
      "get" : {
        "description" : "Retrieves a single Crypto Deposit account, including its deposit addresses and supported payment methods.",
        "operationId" : "getCryptoDepositAccountById",
        "parameters" : [ {
          "description" : "Crypto Deposit account ID",
          "example" : "cda1a2b3c4d5e7f8",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CryptoDepositAccountTo"
                }
              }
            },
            "description" : "Successfully retrieved Crypto Deposit account."
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "404" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Not Found"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Get Crypto Deposit account detail",
        "tags" : [ "Crypto deposit" ]
      },
      "patch" : {
        "description" : "Partially updates a Crypto Deposit account.",
        "operationId" : "patchCryptoDepositAccount",
        "parameters" : [ {
          "description" : "Crypto Deposit account ID",
          "example" : "cda1a2b3c4d5e7f8",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CryptoDepositAccountPatchRequestTo"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CryptoDepositAccountTo"
                }
              }
            },
            "description" : "Successfully updated Crypto Deposit account."
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "404" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Crypto Deposit account not found."
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Update Crypto Deposit account fields",
        "tags" : [ "Crypto deposit" ]
      }
    },
    "/v3/email-invoices" : {
      "post" : {
        "description" : "Creates a new E-mail Invoice that will be sent to the specified e-mail address.",
        "operationId" : "createEmailInvoice",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/EmailInvoiceCreationTo"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/EmailInvoiceTo"
                }
              }
            },
            "description" : "E-mail Invoice successfully created"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Create E-mail Invoice",
        "tags" : [ "Email Invoice" ]
      }
    },
    "/v3/invoices" : {
      "get" : {
        "description" : "Returns a paginated list of Invoices filtered by the specified criteria.",
        "operationId" : "getInvoicesForMerchant",
        "parameters" : [ {
          "description" : "Maximum number of the Invoices to return.",
          "example" : 20,
          "in" : "query",
          "name" : "limit",
          "required" : false,
          "schema" : {
            "exclusiveMinimum" : 0,
            "maximum" : 3000,
            "minimum" : 1,
            "type" : "string"
          }
        }, {
          "description" : "Number of the Invoices to skip.",
          "example" : 0,
          "in" : "query",
          "name" : "offset",
          "required" : true,
          "schema" : {
            "format" : "int32",
            "type" : "integer"
          }
        }, {
          "description" : "Sort column and order direction separated by comma.",
          "example" : "createdAt,asc",
          "in" : "query",
          "name" : "order",
          "required" : true,
          "schema" : {
            "enum" : [ "createdAt,asc", "createdAt,desc", "customerAmount,asc", "customerAmount,desc", "merchantAmount,asc", "merchantAmount,desc" ],
            "type" : "string"
          }
        }, {
          "description" : "Search text to filter by the Invoice ID, the customer e-mail, the crypto address, the TXID or the reference.",
          "in" : "query",
          "name" : "searchString",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by the Invoice status.",
          "in" : "query",
          "name" : "status",
          "required" : false,
          "schema" : {
            "enum" : [ "prepared", "pending_verification", "active", "confirming", "paid", "expired", "error", "blocked" ],
            "type" : "string"
          }
        }, {
          "description" : "Filter by the creation date - start timestamp (Unix epoch in seconds).",
          "example" : 1501860541,
          "in" : "query",
          "name" : "createdAtFrom",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by the creation date - end timestamp (Unix epoch in seconds).",
          "example" : 1510154941,
          "in" : "query",
          "name" : "createdAtTo",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by the merchant currency (the original Invoice currency).",
          "example" : "EUR",
          "in" : "query",
          "name" : "currencyFrom",
          "required" : false,
          "schema" : {
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL", "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "type" : "string"
          }
        }, {
          "description" : "Filter by the minimum merchant amount.",
          "example" : 19.99,
          "in" : "query",
          "name" : "amountFrom",
          "required" : false,
          "schema" : {
            "type" : "number"
          }
        }, {
          "description" : "Filter by the maximum merchant amount.",
          "example" : 199.99,
          "in" : "query",
          "name" : "amountTo",
          "required" : false,
          "schema" : {
            "type" : "number"
          }
        }, {
          "description" : "Filter by the customer payment asset.",
          "example" : "BTC",
          "in" : "query",
          "name" : "currencyTo",
          "required" : false,
          "schema" : {
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL" ],
            "type" : "string"
          }
        }, {
          "description" : "Filter by the minimum customer payment amount.",
          "example" : 1.11E-6,
          "in" : "query",
          "name" : "amountXFrom",
          "required" : false,
          "schema" : {
            "type" : "number"
          }
        }, {
          "description" : "Filter by the maximum customer payment amount.",
          "example" : 1.0E-4,
          "in" : "query",
          "name" : "amountXTo",
          "required" : false,
          "schema" : {
            "type" : "number"
          }
        }, {
          "description" : "Filter by the Invoice source type.",
          "example" : "POS",
          "in" : "query",
          "name" : "sourceType",
          "required" : false,
          "schema" : {
            "enum" : [ "API", "POS" ],
            "type" : "string"
          }
        }, {
          "description" : "Filter by POS device IDs (only applicable when sourceType=POS).",
          "example" : "posId=pos123&posId=pos456&posId=pos789",
          "in" : "query",
          "name" : "posId",
          "required" : false,
          "schema" : {
            "items" : {
              "type" : "string"
            },
            "type" : "array"
          }
        }, {
          "description" : "When true, Invoices with exceptions will be listed first.",
          "in" : "query",
          "name" : "exceptionsFirst",
          "required" : false,
          "schema" : {
            "type" : "boolean"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DataPageToInvoiceTo"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Get merchant's Invoices",
        "tags" : [ "Invoice" ]
      },
      "post" : {
        "description" : "Creates a new Invoice for the merchant.",
        "operationId" : "createInvoiceByMerchant",
        "parameters" : [ {
          "description" : "The name of the payment gateway integration solution (a higher-level payment gateway or plugin which integrates this payment gateway). This header is not meant to be used by direct merchant integrations and replaces the legacy 'X-Payment-Module' header. Only basic letters, numbers, underscore('_'), dash ('-'), dot ('.') and space (' ') are allowed.",
          "example" : "WooCommerce",
          "in" : "header",
          "name" : "Payment-Module-Name",
          "required" : false,
          "schema" : {
            "maxLength" : 100,
            "minLength" : 0,
            "type" : "string"
          }
        }, {
          "description" : "The version of the payment gateway integration solution (a higher-level payment gateway or plugin which integrates this payment gateway). This header is not meant to be used by direct merchant integrations. Only basic letters, numbers, dash ('-'), dot ('.') and space (' ') are allowed.",
          "example" : "2.4.0",
          "in" : "header",
          "name" : "Payment-Module-Version",
          "required" : false,
          "schema" : {
            "maxLength" : 50,
            "minLength" : 0,
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "example" : {
                "invoice" : {
                  "amount" : "1000.00",
                  "currencyFrom" : "EUR"
                },
                "notifyUrl" : "https://yourEShop.com/orderReceived",
                "reference" : "anything",
                "settlement" : {
                  "currency" : null
                }
              },
              "schema" : {
                "$ref" : "#/components/schemas/InvoiceCreationTo"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InvoiceTo"
                }
              }
            },
            "description" : "Invoice successfully created"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Create new Invoice",
        "tags" : [ "Invoice" ]
      }
    },
    "/v3/invoices/{id}" : {
      "get" : {
        "description" : "Retrieves detailed information about a specific Invoice by its ID.",
        "operationId" : "getInvoiceByMerchant",
        "parameters" : [ {
          "description" : "The ID of desired Invoice",
          "example" : "invz75dnkdk4",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InvoiceTo"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Get Invoice details",
        "tags" : [ "Invoice" ]
      },
      "patch" : {
        "description" : "Partially updates an existing Invoice by modifying only the fields provided in the request body.",
        "operationId" : "patchInvoice",
        "parameters" : [ {
          "description" : "The ID of Invoice to be patched",
          "example" : "invz75dnkdk4",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "example" : {
                "reference" : "anything"
              },
              "schema" : {
                "$ref" : "#/components/schemas/InvoicePatchTo"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/InvoiceTo"
                }
              }
            },
            "description" : "Invoice successfully updated"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Update Invoice fields",
        "tags" : [ "Invoice" ]
      }
    },
    "/v3/invoices/{id}/take" : {
      "post" : {
        "description" : "Places a Take Request for an Invoice that has expired. A Take Request is a process that allows accepting an underpaid Invoice as paid after its expiration.",
        "operationId" : "placeTakeRequest",
        "parameters" : [ {
          "description" : "The Invoice ID",
          "example" : "invz75dnkdk4",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TakeInfoTo"
                }
              }
            },
            "description" : "Take request successfully created"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Create Take Request for expired Invoice",
        "tags" : [ "Invoice" ]
      }
    },
    "/v3/invoices/{id}/take-confirm" : {
      "post" : {
        "description" : "Confirms a previously created Take Request for an expired Invoice. This finalizes the acceptance of payment at the current exchange rate and completes the Take process.",
        "operationId" : "confirmTakeUnderpaymentRequest",
        "parameters" : [ {
          "description" : "The Invoice ID.",
          "example" : "invz75dnkdk4",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/TakeInfoTo"
                }
              }
            },
            "description" : "Take request successfully confirmed"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Confirm Take Request",
        "tags" : [ "Invoice" ]
      }
    },
    "/v3/payouts" : {
      "get" : {
        "description" : "Returns list of merchant's Payouts filtered by specific parameters.",
        "operationId" : "listPayouts",
        "parameters" : [ {
          "description" : "Filter by the Payout status.",
          "in" : "query",
          "name" : "status",
          "required" : false,
          "schema" : {
            "enum" : [ "draft", "waiting", "prepared", "pending_verification", "confirmed", "canceled", "expired", "sending", "done" ],
            "type" : "string"
          }
        }, {
          "description" : "Filter by the creation date - start timestamp (Unix epoch in seconds).",
          "example" : 1501860541,
          "in" : "query",
          "name" : "createdAtFrom",
          "required" : false,
          "schema" : {
            "format" : "int64",
            "type" : "integer"
          }
        }, {
          "description" : "Filter by the creation date - end timestamp (Unix epoch in seconds)",
          "example" : 1510154941,
          "in" : "query",
          "name" : "createdAtTo",
          "required" : false,
          "schema" : {
            "format" : "int64",
            "type" : "integer"
          }
        }, {
          "description" : "Filter by source currency (the currency being sent)",
          "example" : "USD",
          "in" : "query",
          "name" : "currencyFrom",
          "required" : false,
          "schema" : {
            "$ref" : "#/components/schemas/OsTransactionCreationCurrencyFrom",
            "type" : "string"
          }
        }, {
          "deprecated" : true,
          "description" : "Filter by the target cryptocurrency. Superseded by paymentMethodId",
          "in" : "query",
          "name" : "currencyTo",
          "required" : false,
          "schema" : {
            "enum" : [ "BTC", "LTC" ],
            "type" : "string"
          }
        }, {
          "description" : "Filter by the target payment method ID.",
          "in" : "query",
          "name" : "paymentMethodId",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Search text to filter by the Payout ID, the e-mail, the crypto address, the TXID or the reference.",
          "example" : "3J98t1WpEZ73CNmQviecrnyiWrnqRhWNLy",
          "in" : "query",
          "name" : "searchString",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Maximum number of Payouts to return.",
          "example" : 20,
          "in" : "query",
          "name" : "limit",
          "required" : false,
          "schema" : {
            "exclusiveMinimum" : 0,
            "format" : "int32",
            "maximum" : 500,
            "type" : "integer"
          }
        }, {
          "description" : "Number of Payouts to skip for pagination.",
          "example" : 0,
          "in" : "query",
          "name" : "offset",
          "required" : false,
          "schema" : {
            "format" : "int32",
            "minimum" : 0,
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DataPageTo"
                }
              }
            },
            "description" : "Returns list of merchant's Payouts filtered by specific parameters."
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "List Payouts",
        "tags" : [ "Payout" ]
      },
      "post" : {
        "description" : "Creates a new Payout request to transfer funds from merchant account to a specified address.",
        "operationId" : "createPayout",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "example" : {
                "address" : "3J98t…NLy",
                "amountFrom" : 10,
                "amountTo" : null,
                "btcPriority" : "HIGH",
                "currencyFrom" : "EUR",
                "paymentMethodId" : "BITCOIN-BLOCKCHAIN-MAINNET-BTC-CURRENCY",
                "reference" : "string",
                "treatAsGrossAmount" : true
              },
              "schema" : {
                "$ref" : "#/components/schemas/CreatePayoutRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PayoutToV3"
                }
              }
            },
            "description" : "Payout successfully created"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Create a new Payout",
        "tags" : [ "Payout" ]
      }
    },
    "/v3/payouts/{id}" : {
      "get" : {
        "description" : "Retrieves detailed information about a specific Payout by its ID.",
        "operationId" : "getPayoutById",
        "parameters" : [ {
          "description" : "The Payout ID.",
          "example" : "ost0zqd25dk3",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PayoutToV3"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "404" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Not Found"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Get Payout details",
        "tags" : [ "Payout" ]
      },
      "patch" : {
        "description" : "Changes status of payout depending on action provided in request. Note that without opting-in to the new payouts flow, using other actions than CONFIRM and CANCEL will result into an error.",
        "operationId" : "changePayoutStatus",
        "parameters" : [ {
          "description" : "The Payout ID.",
          "example" : "ost0zqd25dk3",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/PerformPayoutActionRequestV3"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PayoutToV3"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "404" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Not Found"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Change status of a Payout.",
        "tags" : [ "Payout" ]
      }
    },
    "/v3/rates/{paymentAssetCode}" : {
      "get" : {
        "description" : "Returns current exchange rates from all available source assets to the specified payment asset. Exchange rates are updated once per minute.",
        "operationId" : "getExchangeRates",
        "parameters" : [ {
          "description" : "Code of the payment asset",
          "example" : "BTC",
          "in" : "path",
          "name" : "paymentAssetCode",
          "required" : true,
          "schema" : {
            "enum" : [ "BTC", "ETH", "LTC", "SOL", "TRX", "USDC", "USDT" ],
            "type" : "string"
          }
        }, {
          "description" : "The type of exchange rates to compute",
          "example" : "INVOICE",
          "in" : "query",
          "name" : "type",
          "required" : false,
          "schema" : {
            "enum" : [ "INVOICE", "PAYOUT" ],
            "type" : "string"
          }
        }, {
          "description" : "Intended invoice settlement asset. Please note that invoice exchange rate computation depends on invoice settlement asset as well - if not provided, exchange rate for no-conversion invoice (i.e. invoice which has the same payment asset and settlement asset) is returned, which may slightly differ from that for invoices with payment conversion\n",
          "in" : "query",
          "name" : "invoiceSettlementCurrency",
          "required" : false,
          "schema" : {
            "$ref" : "#/components/schemas/SettlementCurrency",
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "items" : {
                    "$ref" : "#/components/schemas/ExchangeRateTo"
                  },
                  "type" : "array"
                }
              }
            },
            "description" : "Successfully retrieved exchange rates"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Get exchange rates for a specific payment asset",
        "tags" : [ "Exchange rates" ]
      }
    },
    "/v3/settlement-methods" : {
      "get" : {
        "description" : "Returns all merchant's Settlement Methods.",
        "operationId" : "getSettlementMethods",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DataPageToSettlementMethodToObject"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Get Settlement Methods",
        "tags" : [ "Settlement Method" ]
      }
    },
    "/v3/settlements" : {
      "get" : {
        "description" : "Returns list of merchant's Settlements filtered by specific parameters.",
        "operationId" : "getSettlementsForMerchant",
        "parameters" : [ {
          "description" : "Maximum number of Settlements to return.",
          "example" : 20,
          "in" : "query",
          "name" : "limit",
          "required" : true,
          "schema" : {
            "format" : "int32",
            "type" : "integer"
          }
        }, {
          "description" : "Number of Settlements to skip.",
          "example" : 0,
          "in" : "query",
          "name" : "offset",
          "required" : true,
          "schema" : {
            "format" : "int32",
            "type" : "integer"
          }
        }, {
          "description" : "Sort column and the order direction (append ',asc' or ',desc' to the column name)",
          "example" : "createdAt,asc",
          "in" : "query",
          "name" : "order",
          "required" : true,
          "schema" : {
            "enum" : [ "createdAt,asc", "createdAt,desc", "amount,asc", "amount,desc" ],
            "type" : "string"
          }
        }, {
          "description" : "Search text to filter by the Settlement ID, the account number or the crypto address.",
          "example" : "set8q2go1p7",
          "in" : "query",
          "name" : "searchString",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by the Settlement status (multiple values supported, comma-separated)",
          "in" : "query",
          "name" : "statuses",
          "required" : false,
          "schema" : {
            "items" : {
              "enum" : [ "blocked_overlimit", "pending", "on_hold", "sending", "sent", "failed", "canceled" ],
              "type" : "string"
            },
            "type" : "array"
          }
        }, {
          "description" : "Filter by the creation date - start timestamp (Unix epoch in seconds)",
          "example" : 1501860541,
          "in" : "query",
          "name" : "createdAtFrom",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by the creation date - end timestamp (Unix epoch in seconds)",
          "example" : 1510154941,
          "in" : "query",
          "name" : "createdAtTo",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by the Settlement currency.",
          "in" : "query",
          "name" : "currency",
          "required" : false,
          "schema" : {
            "$ref" : "#/components/schemas/SettlementCurrency",
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DataPageToSettlementTo"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "List merchant Settlements",
        "tags" : [ "Settlement" ]
      }
    },
    "/v3/settlements/{id}" : {
      "get" : {
        "description" : "Retrieves detailed information about a specific Settlement by its ID.",
        "operationId" : "getSettlementAsMerchant",
        "parameters" : [ {
          "description" : "The Settlement ID.",
          "example" : "set748ep4e5x",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/SettlementTo"
                }
              }
            },
            "description" : "OK"
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "404" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Not Found"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Get Settlement detail",
        "tags" : [ "Settlement" ]
      }
    },
    "/v3/topups/crypto" : {
      "get" : {
        "description" : "Retrieves a paginated list of crypto top-ups with optional filtering by account, address, blockchain network, payment asset code, balance asset code, status, and creation date range.",
        "operationId" : "getTopUpsPaginated",
        "parameters" : [ {
          "description" : "Filter by status",
          "example" : "DONE",
          "in" : "query",
          "name" : "status",
          "required" : false,
          "schema" : {
            "enum" : [ "CONFIRMING", "PENDING_VERIFICATION", "UNASSIGNED", "DONE", "BLOCKED", "ABSORBED", "FAILED", "RETURNED" ],
            "type" : "string"
          }
        }, {
          "description" : "Filter by crypto top-up account ID",
          "example" : "cda1a2b3c4d5",
          "in" : "query",
          "name" : "accountId",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by crypto address",
          "example" : "0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb",
          "in" : "query",
          "name" : "address",
          "required" : false,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Filter by blockchain network",
          "example" : "ETHEREUM_BLOCKCHAIN_MAINNET",
          "in" : "query",
          "name" : "chain",
          "required" : false,
          "schema" : {
            "enum" : [ "BITCOIN-BLOCKCHAIN-MAINNET", "BITCOIN-LIGHTNING-MAINNET", "BSC-BLOCKCHAIN-MAINNET", "ETHEREUM-ARBITRUM-ONE-MAINNET", "ETHEREUM-BLOCKCHAIN-MAINNET", "ETHEREUM-OPTIMISM-MAINNET", "PLASMA-BLOCKCHAIN-MAINNET", "ETHEREUM-POLYGON-MAINNET", "LITECOIN-BLOCKCHAIN-MAINNET", "SOLANA-BLOCKCHAIN-MAINNET", "TRON-BLOCKCHAIN-MAINNET" ],
            "type" : "string"
          }
        }, {
          "description" : "Filter by payment crypto asset code",
          "example" : "ETH",
          "in" : "query",
          "name" : "paymentAsset",
          "required" : false,
          "schema" : {
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL" ],
            "type" : "string"
          }
        }, {
          "description" : "Filter by balance asset code",
          "example" : "USD",
          "in" : "query",
          "name" : "balanceAsset",
          "required" : false,
          "schema" : {
            "enum" : [ "BNB", "BTC", "ETH", "EURC", "LTC", "POL", "SOL", "TRX", "USDC", "USDG", "USDT", "XPL", "AED", "ALL", "AMD", "ARS", "AUD", "AZN", "BDT", "BGN", "BHD", "BND", "BOB", "BRL", "BYN", "CAD", "CLP", "CNY", "COP", "CRC", "CVE", "CZK", "DKK", "DOP", "DZD", "EUR", "FKP", "GBP", "GEL", "GTQ", "HKD", "HRK", "HUF", "CHF", "IDR", "ILS", "INR", "ISK", "JMD", "JPY", "KGS", "KHR", "KWD", "KZT", "LTL", "MAD", "MDL", "MGA", "MKD", "MNT", "MOP", "MUR", "MXN", "MYR", "NGN", "NIO", "NOK", "NZD", "PEN", "PHP", "PLN", "PYG", "QAR", "RON", "RSD", "RUB", "SEK", "SGD", "THB", "TRY", "TWD", "UAH", "USD", "UYU", "VND", "XCD" ],
            "type" : "string"
          }
        }, {
          "description" : "Filter top-ups created after this timestamp (inclusive)",
          "example" : 1773866139,
          "in" : "query",
          "name" : "createdAtFrom",
          "required" : false,
          "schema" : {
            "format" : "int64",
            "type" : "integer"
          }
        }, {
          "description" : "Filter top-ups created before this timestamp (inclusive)",
          "example" : 1773866151,
          "in" : "query",
          "name" : "createdAtTo",
          "required" : false,
          "schema" : {
            "format" : "int64",
            "type" : "integer"
          }
        }, {
          "description" : "Number of results per page (max 100)",
          "example" : 20,
          "in" : "query",
          "name" : "limit",
          "required" : false,
          "schema" : {
            "default" : 20,
            "exclusiveMinimum" : 0,
            "format" : "int32",
            "maximum" : 100,
            "type" : "integer"
          }
        }, {
          "description" : "Pagination offset - number of items to skip",
          "example" : 0,
          "in" : "query",
          "name" : "offset",
          "required" : false,
          "schema" : {
            "default" : 0,
            "format" : "int32",
            "minimum" : 0,
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DataPageToCryptoTopUpTo"
                }
              }
            },
            "description" : "Successfully retrieved paginated list of crypto top-ups."
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "List crypto top-ups",
        "tags" : [ "Crypto top-up" ]
      }
    },
    "/v3/topups/crypto/accounts" : {
      "get" : {
        "description" : "Retrieves a paginated list of Crypto Top-Up accounts for the authenticated merchant.",
        "operationId" : "listCryptoTopUpAccounts",
        "parameters" : [ {
          "description" : "Number of results per page (max 100)",
          "example" : 20,
          "in" : "query",
          "name" : "limit",
          "required" : false,
          "schema" : {
            "default" : 20,
            "exclusiveMinimum" : 0,
            "format" : "int32",
            "maximum" : 100,
            "type" : "integer"
          }
        }, {
          "description" : "Pagination offset - number of items to skip",
          "example" : 0,
          "in" : "query",
          "name" : "offset",
          "required" : false,
          "schema" : {
            "default" : 0,
            "format" : "int32",
            "minimum" : 0,
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DataPageToCryptoTopUpAccountTo"
                }
              }
            },
            "description" : "Successfully retrieved paginated list of Crypto Top-Up accounts."
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "List Crypto Top-Up accounts",
        "tags" : [ "Crypto top-up" ]
      },
      "post" : {
        "description" : "Creates a new Crypto Top-Up account for the authenticated merchant.",
        "operationId" : "createCryptoTopUpAccount",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateCryptoTopUpAccountTo"
              }
            }
          }
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CryptoTopUpAccountTo"
                }
              }
            },
            "description" : "Successfully created Crypto Top-Up account."
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Create a Crypto Top-Up account",
        "tags" : [ "Crypto top-up" ]
      }
    },
    "/v3/topups/crypto/accounts/{id}" : {
      "get" : {
        "description" : "Retrieves a single Crypto Top-Up account, including its top-up addresses and supported payment methods.",
        "operationId" : "getCryptoTopUpAccountById",
        "parameters" : [ {
          "description" : "Crypto Top-Up account ID",
          "example" : "cda1a2b3c4d5e7f8",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CryptoTopUpAccountTo"
                }
              }
            },
            "description" : "Successfully retrieved Crypto Top-Up account."
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "404" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Not Found"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Get a Crypto Top-Up account",
        "tags" : [ "Crypto top-up" ]
      },
      "patch" : {
        "description" : "Partially updates a Crypto Top-Up account.",
        "operationId" : "patchCryptoTopUpAccount",
        "parameters" : [ {
          "description" : "Crypto Top-Up account ID",
          "example" : "cda1a2b3c4d5e7f8",
          "in" : "path",
          "name" : "id",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CryptoTopUpAccountPatchRequestTo"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CryptoTopUpAccountTo"
                }
              }
            },
            "description" : "Successfully updated Crypto Top-Up account."
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "404" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Crypto Top-Up account not found."
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Update Crypto Top-Up account fields",
        "tags" : [ "Crypto top-up" ]
      }
    },
    "/v3/topups/fiat/instructions" : {
      "get" : {
        "description" : "Returns fiat top-up instructions for every currency the authenticated merchant has set up.\n\n**Prerequisites:** For webhook notifications to be delivered upon top-up detection, the merchant must first configure the `notifyUrl` via the Merchant Settings page in the GUI. If no `notifyUrl` is configured, top-up instructions are still returned but no webhook will be sent.",
        "operationId" : "getFiatTopUpInstructions",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FiatTopUpInstructionsResponse"
                }
              }
            },
            "description" : "Top-up instructions returned successfully."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Top-up instructions unavailable (feature disabled, unsupported workflow, or no active accounts)."
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Get fiat top-up instructions",
        "tags" : [ "Fiat top-up" ]
      }
    },
    "/v3/withdrawals/fiat" : {
      "get" : {
        "description" : "Returns a paginated list of fiat withdrawals for the authenticated merchant.",
        "operationId" : "getWithdrawalsPaginated",
        "parameters" : [ {
          "description" : "Filter by withdrawal status",
          "example" : "CREATED",
          "in" : "query",
          "name" : "status",
          "required" : false,
          "schema" : {
            "enum" : [ "CREATED", "TRANSACTION_CREATED", "TRANSACTION_CREATE_FAILED", "TRANSACTION_SIGNED", "TRANSACTION_SIGN_FAILED", "COMPLETED", "TRANSACTION_EXTERNAL_PROCESSING_FAILED" ],
            "type" : "string"
          }
        }, {
          "description" : "Filter withdrawals created after this timestamp (inclusive)",
          "example" : "2026-01-01T00:00:00Z",
          "in" : "query",
          "name" : "createdAtFrom",
          "required" : false,
          "schema" : {
            "format" : "int64",
            "type" : "integer"
          }
        }, {
          "description" : "Filter withdrawals created before this timestamp (inclusive)",
          "example" : "2026-01-01T00:00:00Z",
          "in" : "query",
          "name" : "createdAtTo",
          "required" : false,
          "schema" : {
            "format" : "int64",
            "type" : "integer"
          }
        }, {
          "description" : "Number of results per page (max 100)",
          "example" : 20,
          "in" : "query",
          "name" : "limit",
          "required" : false,
          "schema" : {
            "default" : 20,
            "exclusiveMinimum" : 0,
            "format" : "int32",
            "maximum" : 100,
            "type" : "integer"
          }
        }, {
          "description" : "Number of items to skip",
          "example" : 0,
          "in" : "query",
          "name" : "offset",
          "required" : false,
          "schema" : {
            "default" : 0,
            "format" : "int32",
            "minimum" : 0,
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DataPageToFiatWithdrawalTo"
                }
              }
            },
            "description" : "Withdrawals returned successfully."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Validation failed."
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "List fiat withdrawals",
        "tags" : [ "Fiat withdrawal" ]
      },
      "post" : {
        "description" : "Initiates a fiat withdrawal from the merchant's balance to a registered bank account.\n\n> Supports the optional `Idempotency-Key` header so a retry won't perform the operation twice - a fresh UUID per request is recommended. See <a href=\"#idempotent-requests\">Idempotent requests</a> for more information.",
        "operationId" : "initiateWithdrawal",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/FiatWithdrawalRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FiatWithdrawalInitiationTo"
                }
              }
            },
            "description" : "Withdrawal initiated successfully."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Validation failed."
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Initiate fiat withdrawal",
        "tags" : [ "Fiat withdrawal" ]
      }
    },
    "/v3/withdrawals/fiat/accounts" : {
      "get" : {
        "description" : "Returns all fiat withdrawal accounts for the authenticated merchant.",
        "operationId" : "getAccounts",
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "items" : {
                    "$ref" : "#/components/schemas/FiatWithdrawalAccountResponse"
                  },
                  "type" : "array"
                }
              }
            },
            "description" : "Fiat withdrawal accounts returned successfully."
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "List fiat withdrawal accounts",
        "tags" : [ "Fiat withdrawal account" ]
      },
      "post" : {
        "description" : "Creates a new fiat withdrawal account for approval.",
        "operationId" : "createFiatWithdrawalAccount",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "examples" : {
                "ABA" : {
                  "description" : "ABA",
                  "value" : {
                    "account" : {
                      "accountNumber" : "123456789",
                      "address" : "456 Main Street",
                      "bankName" : "Trust Bank Inc.",
                      "city" : "New York",
                      "country" : "US",
                      "postalCode" : "10101",
                      "routingNumber" : "021000021"
                    },
                    "accountHolderName" : "John Doe",
                    "accountName" : "My USD Account"
                  }
                },
                "BIC" : {
                  "description" : "BIC",
                  "value" : {
                    "account" : {
                      "accountNumber" : "123456789",
                      "address" : "Example Street 1",
                      "bic" : "ABCDGB2L",
                      "city" : "Example City",
                      "country" : "GB",
                      "postalCode" : "AB12 3CD"
                    },
                    "accountHolderName" : "John Doe",
                    "accountName" : "My GBP Account"
                  }
                },
                "IBAN" : {
                  "description" : "IBAN",
                  "value" : {
                    "account" : {
                      "address" : "Example Street 1",
                      "city" : "Example City",
                      "country" : "IE",
                      "iban" : "IE00ABCD00000000000000",
                      "postalCode" : "D00 XY00"
                    },
                    "accountHolderName" : "John Doe",
                    "accountName" : "My EUR Account"
                  }
                }
              },
              "schema" : {
                "$ref" : "#/components/schemas/CreateFiatWithdrawalAccountRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/CreateFiatWithdrawalAccountResponse"
                }
              }
            },
            "description" : "Fiat withdrawal account created successfully."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Validation failed."
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Create a fiat withdrawal account",
        "tags" : [ "Fiat withdrawal account" ]
      }
    },
    "/v3/withdrawals/fiat/accounts/{accountId}" : {
      "delete" : {
        "description" : "Deletes a fiat withdrawal account. The account must be owned by the authenticated merchant and not already deleted.",
        "operationId" : "deleteAccount",
        "parameters" : [ {
          "in" : "path",
          "name" : "accountId",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Fiat withdrawal account deleted successfully."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Fiat withdrawal account not found, not owned, or already deleted."
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Delete a fiat withdrawal account",
        "tags" : [ "Fiat withdrawal account" ]
      }
    },
    "/v3/withdrawals/fiat/schedules" : {
      "get" : {
        "description" : "Returns the merchant's schedules ordered from newest to oldest. ACTIVE, PAUSED, and CANCELLED are all returned.",
        "operationId" : "listSchedules",
        "parameters" : [ {
          "description" : "Number of results per page (max 100)",
          "example" : 20,
          "in" : "query",
          "name" : "limit",
          "required" : false,
          "schema" : {
            "default" : 20,
            "exclusiveMinimum" : 0,
            "format" : "int32",
            "maximum" : 100,
            "type" : "integer"
          }
        }, {
          "description" : "Number of items to skip",
          "example" : 0,
          "in" : "query",
          "name" : "offset",
          "required" : false,
          "schema" : {
            "default" : 0,
            "format" : "int32",
            "minimum" : 0,
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DataPageToFiatWithdrawalScheduleRestResponse"
                }
              }
            },
            "description" : "Schedules returned successfully."
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "List scheduled fiat withdrawals",
        "tags" : [ "Fiat withdrawal" ]
      },
      "post" : {
        "description" : "Configures a recurring sweep of the merchant's fiat balance to a registered bank account. On success returns the newly created schedule in status ACTIVE.",
        "operationId" : "createSchedule",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateFiatWithdrawalScheduleRestRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FiatWithdrawalScheduleRestResponse"
                }
              }
            },
            "description" : "Schedule created successfully."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Validation failed."
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Create a scheduled fiat withdrawal",
        "tags" : [ "Fiat withdrawal" ]
      }
    },
    "/v3/withdrawals/fiat/schedules/{scheduleId}" : {
      "delete" : {
        "description" : "Deletes a scheduled fiat withdrawal. Allowed from any non-DELETED state (ACTIVE, PAUSED, CANCELLED).",
        "operationId" : "deleteSchedule",
        "parameters" : [ {
          "description" : "Schedule ID",
          "example" : "fwsAbCdEf123456",
          "in" : "path",
          "name" : "scheduleId",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "204" : {
            "description" : "Schedule deleted successfully."
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Schedule not found."
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Delete a scheduled fiat withdrawal",
        "tags" : [ "Fiat withdrawal" ]
      },
      "get" : {
        "description" : "Returns a single schedule by its ID. Returns 404 for deleted or missing schedules and for schedules that do not belong to the caller's merchant.",
        "operationId" : "getSchedule",
        "parameters" : [ {
          "description" : "Schedule ID",
          "example" : "fwsAbCdEf123456",
          "in" : "path",
          "name" : "scheduleId",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FiatWithdrawalScheduleRestResponse"
                }
              }
            },
            "description" : "Schedule returned successfully."
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Schedule not found."
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Get a scheduled fiat withdrawal by ID",
        "tags" : [ "Fiat withdrawal" ]
      },
      "patch" : {
        "description" : "Updates frequency, frequency day, and minimum balance on a schedule. Allowed only from ACTIVE or PAUSED; rejected from CANCELLED. Returns 404 for deleted or missing schedules. The next scheduled run will be recalculated when frequency or frequency day changes.",
        "operationId" : "updateSchedule",
        "parameters" : [ {
          "description" : "Schedule ID",
          "example" : "fwsAbCdEf123456",
          "in" : "path",
          "name" : "scheduleId",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateFiatWithdrawalScheduleRestRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FiatWithdrawalScheduleRestResponse"
                }
              }
            },
            "description" : "Schedule updated successfully."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Validation failed or update not allowed in current status."
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Schedule not found."
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Update a scheduled fiat withdrawal",
        "tags" : [ "Fiat withdrawal" ]
      }
    },
    "/v3/withdrawals/fiat/schedules/{scheduleId}/pause" : {
      "post" : {
        "description" : "Moves an ACTIVE schedule to PAUSED and cancels its next scheduled run. Calling pause on a schedule that is already PAUSED returns the current state without further effect. Rejected with 400 from CANCELLED. Returns 404 for deleted or missing schedules.",
        "operationId" : "pauseSchedule",
        "parameters" : [ {
          "description" : "Schedule ID",
          "example" : "fwsAbCdEf123456",
          "in" : "path",
          "name" : "scheduleId",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FiatWithdrawalScheduleRestResponse"
                }
              }
            },
            "description" : "Schedule paused successfully (or already PAUSED)."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Pause not allowed in current status."
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Schedule not found."
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Pause a scheduled fiat withdrawal",
        "tags" : [ "Fiat withdrawal" ]
      }
    },
    "/v3/withdrawals/fiat/schedules/{scheduleId}/resume" : {
      "post" : {
        "description" : "Moves a PAUSED schedule back to ACTIVE and recomputes its next scheduled run. Re-runs validations (withdrawal account still whitelisted, currency still supported, frequency and minimum balance still valid) and rejects the resume with 400 when any check fails. Calling resume on a schedule that is already ACTIVE returns the current state without further effect. Rejected with 400 from CANCELLED. Returns 404 for deleted or missing schedules.",
        "operationId" : "resumeSchedule",
        "parameters" : [ {
          "description" : "Schedule ID",
          "example" : "fwsAbCdEf123456",
          "in" : "path",
          "name" : "scheduleId",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/FiatWithdrawalScheduleRestResponse"
                }
              }
            },
            "description" : "Schedule resumed successfully (or already ACTIVE)."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Resume validation failed or resume not allowed in current status."
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Schedule not found."
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "Resume a scheduled fiat withdrawal",
        "tags" : [ "Fiat withdrawal" ]
      }
    },
    "/v3/withdrawals/fiat/schedules/{scheduleId}/runs" : {
      "get" : {
        "description" : "Returns the run history for a single schedule, ordered from newest to oldest. Returns 404 when the schedule does not exist or does not belong to the caller's merchant.",
        "operationId" : "listRuns",
        "parameters" : [ {
          "description" : "Schedule ID",
          "example" : "fwsAbCdEf123456",
          "in" : "path",
          "name" : "scheduleId",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "description" : "Number of results per page (max 100)",
          "example" : 20,
          "in" : "query",
          "name" : "limit",
          "required" : false,
          "schema" : {
            "default" : 20,
            "exclusiveMinimum" : 0,
            "format" : "int32",
            "maximum" : 100,
            "type" : "integer"
          }
        }, {
          "description" : "Number of items to skip",
          "example" : 0,
          "in" : "query",
          "name" : "offset",
          "required" : false,
          "schema" : {
            "default" : 0,
            "format" : "int32",
            "minimum" : 0,
            "type" : "integer"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DataPageToFiatWithdrawalScheduleRunDetailRestResponse"
                }
              }
            },
            "description" : "Runs returned successfully."
          },
          "400" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Bad Request"
          },
          "403" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Forbidden"
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Schedule not found."
          },
          "409" : {
            "content" : {
              "*/*" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ErrorResource"
                }
              }
            },
            "description" : "Conflict"
          }
        },
        "summary" : "List runs for a scheduled fiat withdrawal",
        "tags" : [ "Fiat withdrawal" ]
      }
    }
  },
  "security" : [ {
    "bearer-auth" : [ "read", "write" ]
  } ],
  "servers" : [ {
    "url" : "https://confirmo.net/api"
  } ],
  "tags" : [ {
    "description" : "Asset endpoints",
    "name" : "Assets"
  }, {
    "description" : "Crypto payment method endpoints",
    "name" : "Crypto payment methods"
  }, {
    "description" : "Email Invoice endpoints",
    "name" : "Email Invoice"
  }, {
    "description" : "Invoice endpoints",
    "name" : "Invoice"
  }, {
    "description" : "Payout endpoints",
    "name" : "Payout"
  }, {
    "description" : "Settlement method endpoints",
    "name" : "Settlement Method"
  }, {
    "description" : "Settlement endpoints",
    "name" : "Settlement"
  }, {
    "description" : "Exchange rate endpoints",
    "name" : "Exchange rates"
  }, {
    "description" : "Merchant balance endpoints",
    "name" : "Merchant Balance"
  } ],
  "x-readme" : {
    "proxy-enabled" : false
  }
}
