{
  "openapi": "3.0.1",
  "info": {
    "title": "Hoppacard API",
    "description": "Comprehensive API for Hoppacard Platform supporting user management, payments, cards, transfers, KYC, and tier management. This API provides secure endpoints for financial services integration.\n\n## Changelog\n\n### 2026-05-27\n- **New Feature**: Added card Auto Lock support. `POST /api/v2/dashboard/cards/order` and card creation requests now accept `AutoLockEnabled`; new ordered cards can be created with Auto Lock enabled.\n- **New Endpoint**: Added `PUT /api/v2/cards/{cardId}/auto-lock?userId={userId}` to enable or disable Auto Lock for an existing card. Request body: `{ \"enabled\": true | false }`.\n- **Response Update**: Card list, card details, card enable/unfreeze, and dashboard card responses now include `AutoLockEnabled` and/or `AutoLockActiveUntil` where applicable.\n- **Behavior Update**: When Auto Lock is enabled, unfreezing a card sets a 10-minute active window. After that window, the background worker freezes the card again through the configured card provider.\n\n### 2026-01-26\n- **Breaking Change**: `POST /api/v2/users/{userId}/kyc/sumsub-access-token` now requires 5 additional fields: `Occupation`, `AnnualSalary`, `AccountPurpose`, `ExpectedMonthlyVolume`, `DocumentIssueDate`. These fields are saved to `user_kyc_submissions`.\n- **Breaking Change**: `POST /api/v2/users/{userId}/sumsub/kyc-url` now requires 5 additional fields: `Occupation`, `AnnualSalary`, `AccountPurpose`, `ExpectedMonthlyVolume`, `DocumentIssueDate`. These fields are saved to `user_kyc_submissions`.\n- **Breaking Change**: `POST /api/v2/users/{userId}/kyc/verify` now requires 5 additional fields: `Occupation`, `AnnualSalary`, `AccountPurpose`, `ExpectedMonthlyVolume`, `DocumentIssueDate`.\n- **Breaking Change**: `POST /api/v2/users/{userId}/kyc/sumsub-token` now requires 5 additional fields: `Occupation`, `AnnualSalary`, `AccountPurpose`, `ExpectedMonthlyVolume`, `DocumentIssueDate`.\n\n### 2026-01-19\n- **New Feature**: Added `GET /api/v2/kyc/sumsub-access-token` endpoint to retrieve a fresh access token for the SumSub mobile SDK.\n- **New Feature**: Added `GET /api/v2/kyc/detailed-status` endpoint to check approval status across multiple providers (HoppaCard, Bank, Card Issuer).\n- **New Feature**: Implemented `cardholder.created` and `cardholder.approved` webhooks.\n\n### 2025-12-11\n- **Breaking Change**: In the `AssetBalance` model (used in `/v2/users/{id}/assets` endpoint), the properties `WalletId` and `WalletType` have been renamed to `BalanceId` and `BalanceType` respectively. Please update your integrations accordingly.\n",
    "contact": {
      "name": "HoppaCard",
      "email": "info@hoppa.global"
    },
    "license": {
      "name": "Proprietary License"
    },
    "version": "v2.0"
  },
  "servers": [
    {
      "url": "https://staging.hoppa.global/",
      "description": "CryptoCard Platform API Server"
    }
  ],
  "paths": {
    "/Users/Authenticate": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Authenticate user",
        "description": "Authenticates a user with email and password, returns JWT tokens",
        "operationId": "AuthenticateUser",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AuthenticateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/Users/RefreshToken": {
      "post": {
        "tags": [
          "Authentication"
        ],
        "summary": "Refresh authentication token",
        "description": "Refreshes an expired JWT token using a valid refresh token",
        "operationId": "RefreshToken",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RefreshTokenRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/Users/Me": {
      "get": {
        "tags": [
          "Authentication"
        ],
        "summary": "Get current user information",
        "description": "Retrieves information about the currently authenticated user",
        "operationId": "GetCurrentUserInfo",
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthenticateResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/accounts": {
      "get": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnifiedAccountsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/accounts/fund-test": {
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/FundAccountRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/FundAccountRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/FundAccountRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FundAccountResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/equalsmoney-onboarding": {
      "post": {
        "tags": [
          "Banking"
        ],
        "summary": "Create an EqualsMoney personal onboarding application",
        "description": "Personal onboarding only. Creates an EqualsMoney payments/cards application for the authenticated API user. Contact and account details are populated from the user profile; the client provides only the personal KYC fields and documents.",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "RequestedFeatures": {
                    "type": "array",
                    "items": {
                      "enum": [
                        "CARDS",
                        "PAYMENTS"
                      ],
                      "type": "string"
                    },
                    "description": "Allowed values: PAYMENTS, CARDS. PAYMENTS is required."
                  },
                  "MainPurpose": {
                    "type": "array",
                    "items": {
                      "enum": [
                        "SALARY_OR_INCOME",
                        "PERSONAL_TRANSFERS_OR_LIVING_EXPENSES",
                        "FAMILY_SUPPORT",
                        "MORTGAGE_OR_RENT_OR_UTILITY_BILLS",
                        "SAVINGS",
                        "INVESTMENT_PURPOSES",
                        "INVESTMENT_OR_TRADING_IN_CRYPTOCURRENCIES",
                        "RECEIVING_OR_SENDING_LOAN_PAYMENTS",
                        "PURCHASE_OF_GOODS_OR_SERVICES",
                        "TRAVEL",
                        "EDUCATION",
                        "MEDICAL_EXPENSES",
                        "CHARITABLE_DONATIONS"
                      ],
                      "type": "string"
                    },
                    "description": "Possible values: SALARY_OR_INCOME, PERSONAL_TRANSFERS_OR_LIVING_EXPENSES, FAMILY_SUPPORT, MORTGAGE_OR_RENT_OR_UTILITY_BILLS, SAVINGS, INVESTMENT_PURPOSES, INVESTMENT_OR_TRADING_IN_CRYPTOCURRENCIES, RECEIVING_OR_SENDING_LOAN_PAYMENTS, PURCHASE_OF_GOODS_OR_SERVICES, TRAVEL, EDUCATION, MEDICAL_EXPENSES, CHARITABLE_DONATIONS."
                  },
                  "SourceOfFunds": {
                    "type": "array",
                    "items": {
                      "enum": [
                        "RECEIVING_FUNDS_FROM_OWN_ACCOUNTS",
                        "RECEIVING_SALARY_PENSION_OR_DIVIDENDS",
                        "RECEIVING_GIFTS_OR_INHERITANCES",
                        "PROCEEDS_FROM_INVESTMENTS",
                        "PROCEEDS_FROM_CRYPTOCURRENCY_SALES_OR_TRADING",
                        "PROCEEDS_FROM_SALE_OF_A_PROPERTY_OR_PHYSICAL_ASSET",
                        "OTHER"
                      ],
                      "type": "string"
                    },
                    "description": "Possible values: RECEIVING_FUNDS_FROM_OWN_ACCOUNTS, RECEIVING_SALARY_PENSION_OR_DIVIDENDS, RECEIVING_GIFTS_OR_INHERITANCES, PROCEEDS_FROM_INVESTMENTS, PROCEEDS_FROM_CRYPTOCURRENCY_SALES_OR_TRADING, PROCEEDS_FROM_SALE_OF_A_PROPERTY_OR_PHYSICAL_ASSET, OTHER."
                  },
                  "DestinationOfFunds": {
                    "type": "array",
                    "items": {
                      "enum": [
                        "AD",
                        "AE",
                        "AF",
                        "AG",
                        "AI",
                        "AL",
                        "AM",
                        "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"
                      ],
                      "type": "string"
                    },
                    "description": "Possible values: AD, AE, AF, AG, AI, AL, AM, 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."
                  },
                  "CurrenciesRequired": {
                    "type": "array",
                    "items": {
                      "enum": [
                        "AED",
                        "AFN",
                        "ALL",
                        "AMD",
                        "ANG",
                        "AOA",
                        "ARS",
                        "AUD",
                        "AWG",
                        "AZN",
                        "BAM",
                        "BBD",
                        "BDT",
                        "BGN",
                        "BHD",
                        "BIF",
                        "BMD",
                        "BND",
                        "BOB",
                        "BOV",
                        "BRL",
                        "BSD",
                        "BTN",
                        "BWP",
                        "BYN",
                        "BZD",
                        "CAD",
                        "CDF",
                        "CHF",
                        "CLP",
                        "CNY",
                        "COP",
                        "CRC",
                        "CUC",
                        "CUP",
                        "CVE",
                        "CZK",
                        "DJF",
                        "DKK",
                        "DOP",
                        "DZD",
                        "EGP",
                        "ERN",
                        "ETB",
                        "EUR",
                        "FJD",
                        "FKP",
                        "GBP",
                        "GEL",
                        "GGP",
                        "GHS",
                        "GIP",
                        "GMD",
                        "GNF",
                        "GTQ",
                        "GYD",
                        "HKD",
                        "HNL",
                        "HRK",
                        "HTG",
                        "HUF",
                        "IDR",
                        "ILS",
                        "INR",
                        "IQD",
                        "IRR",
                        "ISK",
                        "JMD",
                        "JOD",
                        "JPY",
                        "KES",
                        "KGS",
                        "KHR",
                        "KMF",
                        "KPW",
                        "KRW",
                        "KWD",
                        "KYD",
                        "KZT",
                        "LAK",
                        "LBP",
                        "LKR",
                        "LRD",
                        "LSL",
                        "LTL",
                        "LVL",
                        "LYD",
                        "MAD",
                        "MDL",
                        "MGA",
                        "MKD",
                        "MMK",
                        "MNT",
                        "MOP",
                        "MUR",
                        "MVR",
                        "MWK",
                        "MXN",
                        "MYR",
                        "MZN",
                        "NAD",
                        "NGN",
                        "NIO",
                        "NOK",
                        "NPR",
                        "NZD",
                        "OMR",
                        "PAB",
                        "PEN",
                        "PGK",
                        "PHP",
                        "PKR",
                        "PLN",
                        "PYG",
                        "QAR",
                        "RON",
                        "RSD",
                        "RUB",
                        "RWF",
                        "SAR",
                        "SBD",
                        "SCR",
                        "SEK",
                        "SGD",
                        "SHN",
                        "SLL",
                        "SOS",
                        "SRD",
                        "SSP",
                        "STN",
                        "SYP",
                        "SZL",
                        "THB",
                        "TJS",
                        "TMT",
                        "TND",
                        "TOP",
                        "TRY",
                        "TTD",
                        "TWD",
                        "TZS",
                        "UAH",
                        "UGX",
                        "USD",
                        "UYU",
                        "UZS",
                        "VND",
                        "VUV",
                        "WST",
                        "XAF",
                        "XAG",
                        "XAU",
                        "XCD",
                        "XOF",
                        "XPD",
                        "XPF",
                        "XPT",
                        "YER",
                        "ZAR",
                        "ZMK",
                        "ZMW",
                        "ZWD"
                      ],
                      "type": "string"
                    },
                    "description": "Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GGP, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SEK, SGD, SHN, SLL, SOS, SRD, SSP, STN, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XCD, XOF, XPD, XPF, XPT, YER, ZAR, ZMK, ZMW, ZWD."
                  },
                  "AnnualVolume": {
                    "enum": [
                      "0-10000",
                      "10001-50000",
                      "50001-100000",
                      "100001-250000",
                      "250001-1000000",
                      "1000001-5000000",
                      "5000000+"
                    ],
                    "type": "string",
                    "description": "Possible values: 0-10000, 10001-50000, 50001-100000, 100001-250000, 250001-1000000, 1000001-5000000, 5000000+."
                  },
                  "NumberOfPayments": {
                    "enum": [
                      "FEWER-THAN-5",
                      "5-10",
                      "10-20",
                      "MORE-THAN-20"
                    ],
                    "type": "string",
                    "description": "Possible values: FEWER-THAN-5, 5-10, 10-20, MORE-THAN-20."
                  },
                  "CardPurposes": {
                    "type": "array",
                    "items": {
                      "enum": [
                        "SALARY_OR_INCOME",
                        "PERSONAL_TRANSFERS_OR_LIVING_EXPENSES",
                        "FAMILY_SUPPORT",
                        "MORTGAGE_OR_RENT_OR_UTILITY_BILLS",
                        "SAVINGS",
                        "INVESTMENT_PURPOSES",
                        "INVESTMENT_OR_TRADING_IN_CRYPTOCURRENCIES",
                        "RECEIVING_OR_SENDING_LOAN_PAYMENTS",
                        "PURCHASE_OF_GOODS_OR_SERVICES",
                        "TRAVEL",
                        "EDUCATION",
                        "MEDICAL_EXPENSES",
                        "CHARITABLE_DONATIONS"
                      ],
                      "type": "string"
                    },
                    "description": "Possible values: SALARY_OR_INCOME, PERSONAL_TRANSFERS_OR_LIVING_EXPENSES, FAMILY_SUPPORT, MORTGAGE_OR_RENT_OR_UTILITY_BILLS, SAVINGS, INVESTMENT_PURPOSES, INVESTMENT_OR_TRADING_IN_CRYPTOCURRENCIES, RECEIVING_OR_SENDING_LOAN_PAYMENTS, PURCHASE_OF_GOODS_OR_SERVICES, TRAVEL, EDUCATION, MEDICAL_EXPENSES, CHARITABLE_DONATIONS."
                  },
                  "CardAnnualSpend": {
                    "enum": [
                      "0-10000",
                      "10001-50000",
                      "50001-100000",
                      "100001-250000",
                      "250001-1000000",
                      "1000001-5000000",
                      "5000000+"
                    ],
                    "type": "string",
                    "description": "Possible values: 0-10000, 10001-50000, 50001-100000, 100001-250000, 250001-1000000, 1000001-5000000, 5000000+."
                  },
                  "NumberOfCardsRequired": {
                    "enum": [
                      "0-10",
                      "11-50",
                      "51-100",
                      "101+"
                    ],
                    "type": "string",
                    "description": "Possible values: 0-10, 11-50, 51-100, 101+."
                  },
                  "AtmWithdrawalsRequired": {
                    "type": "boolean"
                  },
                  "ProofOfAddress": {
                    "type": "string",
                    "description": "Proof of address document not older than 3 months. Supported file types: JPG, JPEG, PNG, or PDF.",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "ProofOfAddress": {
                  "contentType": "image/png, image/jpeg, application/pdf"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyOnboardingDashboardResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/users/{userId}/equals-banking-info": {
      "get": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EqualsRecipientPrefillResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/balance": {
      "get": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnifiedBalanceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/transactions": {
      "get": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "Currency",
            "in": "query",
            "description": "3-letter ISO currency code, for example USD or EUR.",
            "schema": {
              "maxLength": 3,
              "minLength": 3,
              "pattern": "^[A-Za-z]{3}$",
              "type": "string"
            }
          },
          {
            "name": "From",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "To",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Provider",
            "in": "query",
            "description": "Banking provider filter. Allowed value: EqualsMoney.",
            "schema": {
              "enum": [
                "EqualsMoney"
              ],
              "type": "string"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnifiedTransactionsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/users/{userId}/budgets": {
      "get": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserBudgetListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserBudgetCreateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserBudgetCreateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserBudgetCreateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserBudgetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/users/{userId}/budgets/{budgetId}": {
      "get": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "budgetId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserBudgetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "budgetId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserBudgetUpdateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserBudgetUpdateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserBudgetUpdateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserBudgetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/users/{userId}/budgets/{budgetId}/transfer": {
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "budgetId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserBudgetTransferRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserBudgetTransferRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserBudgetTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserBudgetTransferResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/payees": {
      "get": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "Limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "SearchName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnifiedPayeesResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePayeeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePayeeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePayeeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayeeInitiateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/payees/confirm": {
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayeeConfirmRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PayeeConfirmRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PayeeConfirmRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayeeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/payees/required-fields": {
      "get": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "PaymentType",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Currency",
            "in": "query",
            "schema": {
              "maxLength": 3,
              "minLength": 3,
              "type": "string"
            }
          },
          {
            "name": "Country",
            "in": "query",
            "schema": {
              "maxLength": 2,
              "minLength": 2,
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayeeRequiredFieldsResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/payees/{payeeId}": {
      "delete": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "payeeId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnifiedPayeeDeleteResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/quotations": {
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardQuotationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardQuotationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardQuotationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuotationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/payouts/check": {
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckPayoutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CheckPayoutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CheckPayoutRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CheckPayoutResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/payouts/initiate": {
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InitiatePayoutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/InitiatePayoutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/InitiatePayoutRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutInitiateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/payouts": {
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePayoutRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePayoutRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePayoutRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatePayoutResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "currency",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "clientTransactionId",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/payouts/{payoutId}": {
      "get": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "payoutId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/otp/verify": {
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OtpVerifyRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OtpVerifyRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OtpVerifyRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OtpVerifyResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/otp/resend": {
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OtpResendRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/OtpResendRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/OtpResendRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OtpResendResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/transfers/internal": {
      "post": {
        "tags": [
          "Banking"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserInternalTransferRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserInternalTransferRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserInternalTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnifiedTransferResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/quotes": {
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnifiedQuoteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UnifiedQuoteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UnifiedQuoteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnifiedQuoteResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/orders/quote": {
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EqualsMoneyQuoteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EqualsMoneyQuoteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EqualsMoneyQuoteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyQuoteResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/orders/trade": {
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "accountId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EqualsMoneyTradeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EqualsMoneyTradeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EqualsMoneyTradeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyTradeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/budgets/{budgetId}/transfer": {
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "budgetId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "accountId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/EqualsMoneyBudgetTransferRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/EqualsMoneyBudgetTransferRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/EqualsMoneyBudgetTransferRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyTransferResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/trades/quote": {
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnifiedTradeQuoteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UnifiedTradeQuoteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UnifiedTradeQuoteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnifiedTradeQuoteResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/trades/execute": {
      "post": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UnifiedTradeExecuteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UnifiedTradeExecuteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UnifiedTradeExecuteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UnifiedTradeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/banking/providers": {
      "get": {
        "tags": [
          "Banking"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/business/onboarding/options": {
      "get": {
        "tags": [
          "BusinessOnboarding"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/KybOnboardingOptionsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/KybOnboardingOptionsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/KybOnboardingOptionsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/business/onboarding/application": {
      "post": {
        "tags": [
          "BusinessOnboarding"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBusinessApplicationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBusinessApplicationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateBusinessApplicationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyApplicationResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyApplicationResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyApplicationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "BusinessOnboarding"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyApplicationResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyApplicationResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyApplicationResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/business/onboarding/application/submit": {
      "post": {
        "tags": [
          "BusinessOnboarding"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyApplicationResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyApplicationResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyApplicationResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/business/onboarding/application/documents": {
      "post": {
        "tags": [
          "BusinessOnboarding"
        ],
        "summary": "Upload an EqualsMoney business onboarding document",
        "description": "Uploads one document for the authenticated user's active EqualsMoney business onboarding application.\n\nStandard business documents normally cover formation, ownership/control, registration, finances/funds, identity, address, and liveness where applicable. EqualsMoney may request further Enhanced Due Diligence (EDD) documents as onboarding progresses.\n\nUse `Purpose` to classify the file. Use `OTHER` for industry-specific EDD documents where no more specific proof category fits.\n\n## Standard EDD documents that may be requested\n\n| Requirement area | Examples |\n| --- | --- |\n| Customer base | Overview of customer count, type, industries, and jurisdictions. |\n| Third-party funds | Names of third-party payers and the purpose of those payments. |\n| Beneficiaries | Key beneficiaries/payees and geographic locations. |\n| Source of funds | Latest audited financial statements, or 3 months corporate bank statements with 3 customer invoices, or eligible unaudited financial statements. |\n\n## Industry-specific additional document requirements\n\n| Industry | Additional documents/evidence commonly required |\n| --- | --- |\n| Regulated financial services | FinCrime/AML policy, fraud policy, enterprise-wide risk assessment for MSBs, client risk assessment methodology, external AML audit, AML questionnaire for crypto/gaming/MSB/CFD, top clients list, regulatory licences. |\n| Investment funds | Funds questionnaire, PPM/OM or other offering documents, investor report where applicable, investment agreement, AML policy/procedures, AML comfort letter. |\n| Consultancy | Customer and beneficiary/supplier lists, serviced-industries confirmation, client sourcing explanation, customer-base breakdown, 3 months corporate bank statements, AML/CFT supervision status. |\n| Luxury yachts - management | Service confirmation, yacht owner details, yacht purchase/source-of-funds evidence or owner agreements, owner/client due diligence evidence, sanctions controls, cash payment thresholds. |\n| Luxury yachts - chartering/buying/selling | Yacht owner details, yacht purchase/source-of-funds evidence or owner agreements, due diligence policies for clients and yacht owners, sanctions controls, website yacht-list confirmation, cash payment thresholds. |\n| SEO/SCO/digital marketing/affiliate marketing | 3 customer invoices, 3 months corporate bank statements, customer-base overview, customer sourcing explanation, SEO tracking platform screenshots for SEO companies. |\n| Real estate | AML/CFT registration status, property ownership details, client/investor funds arrangements, third-party payer or beneficiary details, source of funds/source of wealth evidence, loan agreements, sale/reservation agreements, prospectus for real-estate investment funds. |\n| Maritime shipping | Vessel list, vessel ownership evidence, owner/yacht manager details, vessel activity monitoring documents, shipping manifest. |\n| Jewellery - lab-grown diamonds/watches | High-value dealer confirmation, AML policy/procedures if registered, revenue channel split, jurisdiction risk ratings, customer threshold breakdown, supplier list, additional products list. |\n| Jewellery - natural diamonds/gemstones | High-value dealer confirmation, AML policy/procedures, supplier due diligence, Kimberly Process confirmation, licences/memberships, Ethical Diamond Policy, Modern Slavery Policy, bank statements, supplier/client shipping invoices. |\n| Jewellery - gold/silver | High-value dealer confirmation, AML policy/procedures, supplier list, licences/memberships, Modern Slavery Policy, bank statements, supplier/client shipping invoices. |\n| Adult content and dating services | Modern Slavery Policy, website URLs, age verification evidence, user profile verification process, content monitoring/audit process, consent checks, payer/beneficiary lists, bank statements. |\n| Military and defence | Licence/permit to sell military goods, military/defence goods list, ECJU export licence where applicable, manufacturing/source details, banned goods confirmation, buyer due diligence. |\n| Weapons and firearms | Licences/permits, manufacturing details, 3 invoices and contractual agreements, buyer due diligence, under-18 controls, customer type confirmation. |\n| Cannabidiol products (CBD) | Supplier invoices, bank statements, Home Office/DEFRA licences where applicable, THC evidence, no medicinal claims evidence, GMP/EMA or Home Office evidence for medical CBD. |\n| Vaping/e-cigarettes/e-liquid sellers | Supplier list, 3 supplier invoices, wholesale shipping documents, bank statements with 3 client invoices, operating model, cash due diligence, THC/nicotine/liquid-volume confirmations. |\n| Mining | Jurisdiction licences/permits, Modern Slavery Policy, ABC policy, ESG policy, government/third-party agreements, onsite mining audit, project details, bank statements, supplier invoices. |\n| Dropshipping | Supplier/beneficiary list with websites, product and sale-jurisdiction details, 3 supplier invoices, supplier agreements, bank statements, wholesale customer-base breakdown, payment methods, dual-use goods policy. |\n| Art | High-value dealer and HMRC Art Market Participant status, AML policy/procedures where applicable, cash due diligence, crypto due diligence, sales/storage explanation, bank statements, artwork source. |\n| Trust/nominee/fiduciary ownership | Beneficial owner identity documents, trust deeds, nominee agreements or fiduciary service agreements, official documents for trustees/settlors/beneficiaries, legal rationale for structure. |\n| Aviation - spares/parts/repairs | Sourcing details, military aircraft confirmation, 3 supplier invoices, bank statements, licences/certifications, dual-use goods policy, plane ownership/source-of-funds evidence, due diligence policies, sanctions controls. |\n| Aviation - hire/chartering/selling planes | Plane owner details, plane purchase/source-of-funds evidence or owner agreements, airspace monitoring confirmation, client due diligence policies, sanctions controls, website plane-list confirmation. |\n| Portable electronics | Supplier/beneficiary list, 3 supplier invoices, wholesale shipping documents, bank statements with 3 client invoices, operating model, cash due diligence. |",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "File": {
                    "type": "string",
                    "description": "Document file to upload for the active EqualsMoney business onboarding application.",
                    "format": "binary"
                  },
                  "Purpose": {
                    "enum": [
                      "PROOF_OF_FORMATION",
                      "PROOF_OF_OWNERSHIP_STRUCTURE",
                      "PROOF_OF_OWNERSHIP",
                      "PROOF_OF_CONTROL_PERSONS",
                      "PROOF_OF_REGISTRATION",
                      "PROOF_OF_FINANCES",
                      "PROOF_OF_FUNDS",
                      "PROOF_OF_IDENTITY",
                      "PROOF_OF_ADDRESS",
                      "PROOF_OF_LIVENESS",
                      "OTHER"
                    ],
                    "type": "string",
                    "description": "Use OTHER for industry-specific or EDD documents that do not fit one of the standard proof categories.\n\nPossible values: PROOF_OF_FORMATION, PROOF_OF_OWNERSHIP_STRUCTURE, PROOF_OF_OWNERSHIP, PROOF_OF_CONTROL_PERSONS, PROOF_OF_REGISTRATION, PROOF_OF_FINANCES, PROOF_OF_FUNDS, PROOF_OF_IDENTITY, PROOF_OF_ADDRESS, PROOF_OF_LIVENESS, OTHER."
                  }
                }
              },
              "encoding": {
                "File": {
                  "contentType": "image/png, image/jpeg, application/pdf"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyDocumentResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyDocumentResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyDocumentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/business/onboarding/associated-people": {
      "post": {
        "tags": [
          "BusinessOnboarding"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAssociatedPeopleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAssociatedPeopleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateAssociatedPeopleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EqualsMoneyAssociatedPersonResponse"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EqualsMoneyAssociatedPersonResponse"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EqualsMoneyAssociatedPersonResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "BusinessOnboarding"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EqualsMoneyAssociatedPersonModel"
                  }
                }
              },
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EqualsMoneyAssociatedPersonModel"
                  }
                }
              },
              "text/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/EqualsMoneyAssociatedPersonModel"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/business/onboarding/associated-people/{associatedPersonId}/documents": {
      "post": {
        "tags": [
          "BusinessOnboarding"
        ],
        "summary": "Upload an EqualsMoney associated person onboarding document",
        "description": "Uploads one identity, address, or supporting document for an EqualsMoney associated person.",
        "parameters": [
          {
            "name": "associatedPersonId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "File": {
                    "type": "string",
                    "description": "Document file to upload for the EqualsMoney associated person.",
                    "format": "binary"
                  },
                  "Purpose": {
                    "enum": [
                      "PROOF_OF_IDENTITY",
                      "PROOF_OF_ADDRESS",
                      "OTHER"
                    ],
                    "type": "string",
                    "description": "Use PROOF_OF_IDENTITY for identity documents, PROOF_OF_ADDRESS for address documents, or OTHER for requested supporting documents.\n\nPossible values: PROOF_OF_IDENTITY, PROOF_OF_ADDRESS, OTHER."
                  }
                }
              },
              "encoding": {
                "File": {
                  "contentType": "image/png, image/jpeg, application/pdf"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyDocumentResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyDocumentResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyDocumentResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/cards/quantum-topup/estimate": {
      "get": {
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "amount",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuantumTopUpEstimateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/cards/{cardId}/limits": {
      "put": {
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardUpdateLimitsRequestV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CardUpdateLimitsRequestV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CardUpdateLimitsRequestV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardUpdateLimitsResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/cards": {
      "post": {
        "tags": [
          "Cards"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardCreateV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CardCreateV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CardCreateV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardListResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/cards/physical-card-fees": {
      "get": {
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "country",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "cardTypeId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardPhysicalCardFeesResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/cards/{cardId}/bulk-ship/quote": {
      "get": {
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardBulkShipResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardBulkShipResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardBulkShipResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardBulkShipResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardBulkShipResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardBulkShipResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/cards/{cardId}/bulk-ship": {
      "post": {
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardBulkShipResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardBulkShipResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardBulkShipResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/cards/cardHolders": {
      "get": {
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/CardHolderResponseV2"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/cards/{cardId}": {
      "get": {
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardDetailsResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardDeleteResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/cards/{cardId}/activate": {
      "post": {
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardActivateResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/cards/{cardId}/freeze": {
      "post": {
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardFreezeResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/cards/{cardId}/enable": {
      "post": {
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardEnableResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/cards/{cardId}/auto-lock": {
      "put": {
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardAutoLockRequestV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CardAutoLockRequestV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CardAutoLockRequestV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardAutoLockResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/cards/{cardId}/transactions": {
      "get": {
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 25
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardTransactionsResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/cards/{cardId}/pin": {
      "put": {
        "tags": [
          "Cards"
        ],
        "summary": "Update card PIN",
        "description": "**PIN Code Rules**\n\n1. **Length**\n   The PIN must be exactly 6 digits.\n\n2. **No repeated digits**\n   It must not contain any sequence of three identical digits.\n   Not allowed: `111`, `222`, `999`\n\n3. **No sequential digits**\n   No three consecutive increasing or decreasing digits.\n   Examples not allowed: `123`, `234`, `789`, `890`, `098`, `321`",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "**PIN Code Rules**\n\n1. **Length**\n   The PIN must be exactly 6 digits.\n\n2. **No repeated digits**\n   It must not contain any sequence of three identical digits.\n   Not allowed: `111`, `222`, `999`\n\n3. **No sequential digits**\n   No three consecutive increasing or decreasing digits.\n   Examples not allowed: `123`, `234`, `789`, `890`, `098`, `321`",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardUpdatePinRequestV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CardUpdatePinRequestV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CardUpdatePinRequestV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardUpdatePinResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/cards/topup": {
      "post": {
        "tags": [
          "Cards"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TopUpRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TopUpRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TopUpRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopUpResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": { }
            }
          }
        }
      }
    },
    "/api/v2/cards/unload-card": {
      "post": {
        "tags": [
          "Cards"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CardUnloadRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CardUnloadRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CardUnloadRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardUnloadResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": { }
            }
          }
        }
      }
    },
    "/api/v2/cards/{cardId}/widget": {
      "get": {
        "tags": [
          "Cards"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CardWidgetResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/crypto-virtual-accounts": {
      "post": {
        "tags": [
          "Crypto Virtual Accounts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOpenCryptoVirtualAccountRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOpenCryptoVirtualAccountRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicOpenCryptoVirtualAccountRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OpenCryptoVirtualAccountResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/crypto-virtual-accounts/payin-address": {
      "post": {
        "tags": [
          "Crypto Virtual Accounts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCreateCryptoDepositAddressRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCreateCryptoDepositAddressRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicCreateCryptoDepositAddressRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCryptoDepositAddressResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/crypto-virtual-accounts/equals-to-interlace": {
      "post": {
        "tags": [
          "Crypto Virtual Accounts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicEqualsToInterlaceRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicEqualsToInterlaceRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicEqualsToInterlaceRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEqualsToInterlaceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/crypto-virtual-accounts/equals-to-wallet/initiate": {
      "post": {
        "tags": [
          "Crypto Virtual Accounts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicEqualsToWalletInitiateRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicEqualsToWalletInitiateRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicEqualsToWalletInitiateRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEqualsToWalletInitiateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/crypto-virtual-accounts/equals-to-wallet/confirm": {
      "post": {
        "tags": [
          "Crypto Virtual Accounts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicEqualsToWalletConfirmRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicEqualsToWalletConfirmRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicEqualsToWalletConfirmRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PublicEqualsToWalletConfirmResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/crypto-virtual-accounts/ramp-quote": {
      "post": {
        "tags": [
          "Crypto Virtual Accounts"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicBoomFiRampQuoteRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PublicBoomFiRampQuoteRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PublicBoomFiRampQuoteRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BoomFiRampQuoteData"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/dashboard/equals-money/people": {
      "get": {
        "tags": [
          "Dashboard - Equals Money"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 100
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyPeopleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/dashboard/equals-money/activity-download": {
      "post": {
        "tags": [
          "Dashboard - Equals Money"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardEqualsMoneyActivityDownloadRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardEqualsMoneyActivityDownloadRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardEqualsMoneyActivityDownloadRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyDownloadResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/admin/discount-codes": {
      "get": {
        "tags": [
          "DiscountCodes"
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeListResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeListResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeListResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "DiscountCodes"
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDiscountCodeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDiscountCodeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateDiscountCodeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/admin/discount-codes/{id}": {
      "get": {
        "tags": [
          "DiscountCodes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "DiscountCodes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDiscountCodeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDiscountCodeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateDiscountCodeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/DiscountCodeResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "DiscountCodes"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v2/admin/discount-codes/cards/{cardId}/discount": {
      "put": {
        "tags": [
          "DiscountCodes"
        ],
        "parameters": [
          {
            "name": "cardId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCardDiscountRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCardDiscountRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCardDiscountRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/loyalty-programs/programs/{companyId}": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/loyalty-programs/auto-assign/stats/{loyaltyProgramId}": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "loyaltyProgramId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/loyalty-programs/auto-assign/card-transaction": {
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { }
            },
            "text/json": {
              "schema": { }
            },
            "application/*+json": {
              "schema": { }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/loyalty-programs/auto-assign/payment-request": {
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { }
            },
            "text/json": {
              "schema": { }
            },
            "application/*+json": {
              "schema": { }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/loyalty-programs/auto-assign/bulk": {
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { }
            },
            "text/json": {
              "schema": { }
            },
            "application/*+json": {
              "schema": { }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/loyalty-programs/auto-assign/reverse": {
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { }
            },
            "text/json": {
              "schema": { }
            },
            "application/*+json": {
              "schema": { }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/loyalty-programs/transaction-import/configs/{companyId}": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/loyalty-programs/transaction-import/jobs/{companyId}": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/loyalty-programs/transaction-import/transactions/{jobId}": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/loyalty-programs/transaction-import/configs": {
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { }
            },
            "text/json": {
              "schema": { }
            },
            "application/*+json": {
              "schema": { }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/loyalty-programs/transaction-import/upload/{configId}": {
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "configId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "File": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/loyalty-programs/merchants": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "isActive",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { }
            },
            "text/json": {
              "schema": { }
            },
            "application/*+json": {
              "schema": { }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/loyalty-programs/merchants/stats": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/loyalty-programs/merchants/{merchantId}/ids": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { }
            },
            "text/json": {
              "schema": { }
            },
            "application/*+json": {
              "schema": { }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/loyalty-programs/merchants/{merchantId}": {
      "put": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": { }
            },
            "text/json": {
              "schema": { }
            },
            "application/*+json": {
              "schema": { }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": { }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/programs": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoyaltyProgramResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLoyaltyProgramRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLoyaltyProgramRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLoyaltyProgramRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoyaltyProgramResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Loyalty Program"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLoyaltyProgramRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLoyaltyProgramRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLoyaltyProgramRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoyaltyProgramResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/rules": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoyaltyRulesResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLoyaltyRuleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLoyaltyRuleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateLoyaltyRuleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoyaltyRuleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/rules/{ruleId}": {
      "put": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "ruleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLoyaltyRuleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLoyaltyRuleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateLoyaltyRuleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoyaltyRuleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "ruleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": { }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/balances": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/UserPointBalanceResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/transactions": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "transactionType",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PointTransactionResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/user-balance": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserPointBalanceResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/user-transactions": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "transactionType",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PointTransactionResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/test-calculation": {
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PointCalculationRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PointCalculationRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PointCalculationRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PointCalculationResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/transaction-import/configs": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/TransactionImportConfigResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTransactionImportConfigRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTransactionImportConfigRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateTransactionImportConfigRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionImportConfigResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/transaction-import/upload/{configId}": {
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "configId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "File": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportJobResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "413": {
            "description": "Payload Too Large",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/transaction-import/jobs": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/ImportJobResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/transaction-import/jobs/details/{jobId}": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportJobResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/merchants": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "category",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "isActive",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": null
            }
          },
          {
            "name": "isPartner",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": null
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantListResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/merchants/{merchantId}": {
      "put": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": { }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/merchants/stats": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "period",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "30d"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantStatsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/merchants/{merchantId}/ids": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MerchantIdResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantIdRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantIdRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantIdRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantIdResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/merchants/{merchantId}/ids/{midId}": {
      "put": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "midId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantIdRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantIdRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantIdRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantIdResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "midId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": { }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/merchants/{merchantId}/loyalty-rules": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/MerchantLoyaltyRuleResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantLoyaltyRuleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantLoyaltyRuleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateMerchantLoyaltyRuleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantLoyaltyRuleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/merchants/{merchantId}/loyalty-rules/{ruleId}": {
      "put": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ruleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantLoyaltyRuleRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantLoyaltyRuleRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateMerchantLoyaltyRuleRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/MerchantLoyaltyRuleResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "merchantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "ruleId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": { }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/auto-assign/card-transaction": {
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessCardTransactionRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessCardTransactionRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessCardTransactionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PointTransactionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/auto-assign/payment-request": {
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessPaymentRequestRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessPaymentRequestRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ProcessPaymentRequestRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PointTransactionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/auto-assign/bulk": {
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkProcessTransactionsRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/BulkProcessTransactionsRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/BulkProcessTransactionsRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkProcessingResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/auto-assign/stats/{loyaltyProgramId}": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "loyaltyProgramId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PointAssignmentStatsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/auto-assign/reverse": {
      "post": {
        "tags": [
          "Loyalty Program"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReversePointAssignmentRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReversePointAssignmentRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReversePointAssignmentRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": { }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/stats": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoyaltyStatsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/geographic-analytics": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "period",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "30d"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeographicAnalyticsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/location-insights": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "period",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "30d"
            }
          },
          {
            "name": "metric",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "transactions"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LocationInsightsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/geographic-analytics/export": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "period",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "30d"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileContentResult"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/merchant-categories": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/user/dashboard": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDashboardResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/user/transactions": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "parameters": [
          {
            "name": "transactionType",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          },
          {
            "name": "source",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "minPoints",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          },
          {
            "name": "maxPoints",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 50
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PointTransactionResponse"
                  }
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/loyalty/user/redemption-options": {
      "get": {
        "tags": [
          "Loyalty Program"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/RedemptionOptionResponse"
                  }
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/payments/create": {
      "post": {
        "tags": [
          "Payments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePaymentRequestV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePaymentRequestV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePaymentRequestV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/payments/mandates": {
      "post": {
        "tags": [
          "Payments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMandateCreateV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMandateCreateV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMandateCreateV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMandateResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Payments"
        ],
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "currency",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "dateFrom",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "dateTo",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMandateListResponseV2"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/payments/mandates/{mandateId}": {
      "get": {
        "tags": [
          "Payments"
        ],
        "parameters": [
          {
            "name": "mandateId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMandateResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/payments/mandates/{mandateId}/revoke": {
      "put": {
        "tags": [
          "Payments"
        ],
        "parameters": [
          {
            "name": "mandateId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMandateRevokeV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMandateRevokeV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentMandateRevokeV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentMandateResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/payments/requests": {
      "post": {
        "tags": [
          "Payments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentRequestCreateV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentRequestCreateV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentRequestCreateV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentRequestResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Payments"
        ],
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "currency",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "dateFrom",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "dateTo",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentRequestListResponseV2"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/payments/requests/{requestId}": {
      "get": {
        "tags": [
          "Payments"
        ],
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentRequestResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/payments/requests/{requestId}/cancel": {
      "put": {
        "tags": [
          "Payments"
        ],
        "parameters": [
          {
            "name": "requestId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentRequestCancelV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentRequestCancelV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PaymentRequestCancelV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaymentRequestResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/payments/payouts": {
      "post": {
        "tags": [
          "Payments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PayoutRequestCreateV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/PayoutRequestCreateV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/PayoutRequestCreateV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "501": {
            "description": "Not Implemented",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/payments/withdrawals/fee": {
      "post": {
        "tags": [
          "Payments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WithdrawalFeeRequestV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/WithdrawalFeeRequestV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/WithdrawalFeeRequestV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WithdrawalFeeResponseV2"
                }
              }
            }
          },
          "501": {
            "description": "Not Implemented",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/payments/withdrawals": {
      "post": {
        "tags": [
          "Payments"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WithdrawalCreateV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/WithdrawalCreateV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/WithdrawalCreateV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PayoutResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "501": {
            "description": "Not Implemented",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/payments/assets/co-brand": {
      "get": {
        "tags": [
          "Payments"
        ],
        "parameters": [
          {
            "name": "companyId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserAssetsResponseV2"
                }
              }
            }
          },
          "501": {
            "description": "Not Implemented",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/admin/support/messages/report-transaction": {
      "post": {
        "tags": [
          "Support"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportTransactionRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ReportTransactionRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ReportTransactionRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v2/swaptokens/swap": {
      "post": {
        "tags": [
          "Swap"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SwapRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SwapRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SwapRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/SwapResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SwapResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/SwapResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/swaptokens/history": {
      "get": {
        "tags": [
          "Swap"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v2/tiers": {
      "get": {
        "tags": [
          "Tiers"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetTiersResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/tiers/card-tier/{cardTierId}": {
      "get": {
        "tags": [
          "Tiers"
        ],
        "parameters": [
          {
            "name": "cardTierId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetCardTypeTierResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transactions": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "types",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": null
            }
          },
          {
            "name": "statuses",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": null
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "minAmount",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double",
              "default": null
            }
          },
          {
            "name": "maxAmount",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double",
              "default": null
            }
          },
          {
            "name": "sources",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": null
            }
          },
          {
            "name": "cardIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "default": null
            }
          },
          {
            "name": "walletIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "default": null
            }
          },
          {
            "name": "sortBy",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "date"
            }
          },
          {
            "name": "sortOrder",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "desc"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedTransactionResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedTransactionResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/PaginatedTransactionResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v2/transactions/sync": {
      "post": {
        "tags": [
          "Transactions"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": { }
              },
              "application/json": {
                "schema": { }
              },
              "text/json": {
                "schema": { }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v2/transactions/{id}": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionDetailResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionDetailResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionDetailResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v2/transactions/{id}/equals-money/payment-confirmation": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FileResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transactions/stats": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "parameters": [
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionStatisticsResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionStatisticsResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionStatisticsResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v2/transactions/export": {
      "get": {
        "tags": [
          "Transactions"
        ],
        "parameters": [
          {
            "name": "format",
            "in": "query",
            "schema": {
              "type": "string",
              "default": "csv"
            }
          },
          {
            "name": "types",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": null
            }
          },
          {
            "name": "statuses",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": null
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          },
          {
            "name": "search",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "minAmount",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double",
              "default": null
            }
          },
          {
            "name": "maxAmount",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double",
              "default": null
            }
          },
          {
            "name": "sources",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              },
              "default": null
            }
          },
          {
            "name": "cardIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "default": null
            }
          },
          {
            "name": "walletIds",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "integer",
                "format": "int32"
              },
              "default": null
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/FileResult"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileResult"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/FileResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/v2/transactions/top-up": {
      "post": {
        "tags": [
          "Transactions"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WalletTopUpRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/WalletTopUpRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/WalletTopUpRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/TopUpResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopUpResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopUpResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transfers/{transferId}": {
      "get": {
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "name": "transferId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transfers/user-to-master": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserToMasterTransferPayloadV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserToMasterTransferPayloadV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserToMasterTransferPayloadV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transfers/master-to-user": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MasterToUserTransferPayloadV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MasterToUserTransferPayloadV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MasterToUserTransferPayloadV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transfers": {
      "get": {
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          },
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": null
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "currency",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "dateFrom",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "dateTo",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransferListResponseV2"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transfers/wallet-topup": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/WalletTopUpRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/WalletTopUpRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/WalletTopUpRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TopUpResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transfers/crypto-to-quantum-transfer": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CryptoToQuantumTransferBodyRequestV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CryptoToQuantumTransferBodyRequestV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CryptoToQuantumTransferBodyRequestV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CryptoToQuantumTransferResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transfers/quantum-usd-to-crypto-exchange": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuantumToCryptoExchangeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QuantumToCryptoExchangeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QuantumToCryptoExchangeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/QuantumToCryptoExchangeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transfers/withdrawals/fee-and-quota": {
      "get": {
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "chain",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "address",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "amount",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FeeAndQuotaResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transfers/withdrawals/available-balance": {
      "get": {
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AvailableWithdrawalBalanceResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transfers/withdrawals/crypto": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalCryptoWithdrawalRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalCryptoWithdrawalRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ExternalCryptoWithdrawalRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalCryptoWithdrawalResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Unprocessable Entity",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transfers/withdrawals/crypto/confirm": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfirmCryptoWithdrawalOtpRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ConfirmCryptoWithdrawalOtpRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ConfirmCryptoWithdrawalOtpRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalCryptoWithdrawalResponse"
                }
              }
            }
          },
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExternalCryptoWithdrawalResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "503": {
            "description": "Service Unavailable",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transfers/withdrawals/validate": {
      "get": {
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "currency",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "amount",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WithdrawalValidationResult"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transfers/crypto-transactions": {
      "get": {
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "transactionHash",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "referenceId",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CryptoTransfersListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transfers/crypto-refunds": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCryptoRefundRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCryptoRefundRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCryptoRefundRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateCryptoRefundResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "transferId",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "transactionHash",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "referenceId",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "startTime",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "endTime",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CryptoRefundsListResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transfers/crypto-refunds/gas-fee": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/GetRefundGasFeeRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/GetRefundGasFeeRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/GetRefundGasFeeRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetRefundGasFeeResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/transfers/test-fees": {
      "post": {
        "tags": [
          "Transfers"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "completeFee",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          },
          {
            "name": "whitelabelFee",
            "in": "query",
            "schema": {
              "type": "number",
              "format": "double"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": { }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users": {
      "post": {
        "tags": [
          "Users"
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserCreateV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserCreateV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserCreateV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "pageNumber",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          },
          {
            "name": "query",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "kycStatus",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "externalUserId",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "dateFrom",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "dateTo",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserListResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/{userId}": {
      "get": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserDetailResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      },
      "put": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdateV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdateV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserUpdateV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/occupation-codes": {
      "get": {
        "tags": [
          "Users"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OccupationCode"
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/{userId}/kyc/verify": {
      "post": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserKycVerificationRequestV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserKycVerificationRequestV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserKycVerificationRequestV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserKycVerificationResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/{userId}/crypto-addresses": {
      "get": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserCryptoAddressListResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/{userId}/assets": {
      "get": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "interlaceAccountId",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserAssetsResponseV2"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/{userId}/kyc/sumsub-token": {
      "put": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserKycSumSubTokenRequestV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserKycSumSubTokenRequestV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserKycSumSubTokenRequestV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UserKycSumSubTokenUpdateResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/{userId}/kyc/sumsub-access-token": {
      "post": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SumSubAccessTokenRequestV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SumSubAccessTokenRequestV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SumSubAccessTokenRequestV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SumSubAccessTokenApiResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/{userId}/kyc/detailed-status": {
      "get": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DetailedKycStatusResponseV2"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/{userId}/kyc/equalsmoney/documents": {
      "post": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "File": {
                    "type": "string",
                    "format": "binary"
                  },
                  "Type": {
                    "maxLength": 2,
                    "minLength": 2,
                    "type": "string"
                  },
                  "AssociatedPersonId": {
                    "maxLength": 2,
                    "minLength": 2,
                    "type": "string"
                  }
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EqualsMoneyAdditionalDocumentUploadResponseV2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/check-referral": {
      "get": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "referralCode",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReferralCheckResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/{userId}/wallets": {
      "get": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "id",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "nickname",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "currency",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "master",
            "in": "query",
            "schema": {
              "type": "boolean",
              "default": null
            }
          },
          {
            "name": "referenceId",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          },
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CryptoConnectWalletsV3Response"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/create-interlace-account/{userId}": {
      "post": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateInterlaceAccountResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": { }
            }
          }
        }
      }
    },
    "/api/v2/users/{userId}/sumsub/kyc-url": {
      "post": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SumSubAccessTokenRequestV2"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SumSubAccessTokenRequestV2"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SumSubAccessTokenRequestV2"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SumSubKycUrlResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/users/{userId}/tier": {
      "post": {
        "tags": [
          "Users"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SetUserTierRequest"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SetUserTierRequest"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SetUserTierRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TierBuyResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/api/v2/whitelabel/transactions": {
      "get": {
        "tags": [
          "WhitelabelTransactions"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 20
            }
          },
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v2/whitelabel/transactions/sync": {
      "post": {
        "tags": [
          "WhitelabelTransactions"
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/api/v2/whitelabel/transactions/export": {
      "get": {
        "tags": [
          "WhitelabelTransactions"
        ],
        "parameters": [
          {
            "name": "status",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "type",
            "in": "query",
            "schema": {
              "type": "string",
              "default": null
            }
          },
          {
            "name": "startDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          },
          {
            "name": "endDate",
            "in": "query",
            "schema": {
              "type": "string",
              "format": "date-time",
              "default": null
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/webhooks/outbound/user.registered": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "user.registered",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent after a user is created.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-user-registered",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "user.registered"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "user.registered"
                  },
                  "domain": {
                    "enum": [
                      "user"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "user"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "email": {
                        "type": "string",
                        "description": "`data.email` parameter.",
                        "example": "user@example.com"
                      }
                    },
                    "description": "Event-specific payload for `user.registered`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "user.registered",
                "domain": "user",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "email": "user@example.com"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/user.kyc.updated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "user.kyc.updated",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a user's KYC status changes during verification submission or provider processing.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-user-kyc-updated",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "user.kyc.updated"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "user.kyc.updated"
                  },
                  "domain": {
                    "enum": [
                      "user"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "user"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "pending"
                      }
                    },
                    "description": "Event-specific payload for `user.kyc.updated`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "user.kyc.updated",
                "domain": "user",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "status": "pending"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/kyc.verified": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "kyc.verified",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Interlace or SumSub KYC review is processed.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-kyc-verified",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "kyc.verified"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "kyc.verified"
                  },
                  "domain": {
                    "enum": [
                      "kyc"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "kyc"
                  },
                  "provider": {
                    "enum": [
                      "sumsub"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "sumsub"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "kycLevel": {
                        "type": "string",
                        "description": "`data.kycLevel` parameter.",
                        "example": "hoppacard-stagging"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "approved"
                      }
                    },
                    "description": "Event-specific payload for `kyc.verified`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "kyc.verified",
                "domain": "kyc",
                "provider": "sumsub",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "kycLevel": "hoppacard-stagging",
                  "status": "approved"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/kyc.interlace_submission_failed": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "kyc.interlace_submission_failed",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when SumSub approval could not be submitted to Interlace.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-kyc-interlace_submission_failed",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "kyc.interlace_submission_failed"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "kyc.interlace_submission_failed"
                  },
                  "domain": {
                    "enum": [
                      "kyc"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "kyc"
                  },
                  "provider": {
                    "enum": [
                      "interlace"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "interlace"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "error": {
                        "type": "string",
                        "description": "`data.error` parameter.",
                        "example": "Interlace submission failed"
                      },
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_123"
                      },
                      "applicantId": {
                        "type": "string",
                        "description": "`data.applicantId` parameter.",
                        "example": "applicant_123"
                      }
                    },
                    "description": "Event-specific payload for `kyc.interlace_submission_failed`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "kyc.interlace_submission_failed",
                "domain": "kyc",
                "provider": "interlace",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "error": "Interlace submission failed",
                  "accountId": "acc_123",
                  "applicantId": "applicant_123"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/legal_entity.status": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "legal_entity.status",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a business legal entity status changes.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-legal_entity-status",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "legal_entity.status"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "legal_entity.status"
                  },
                  "domain": {
                    "enum": [
                      "kyc"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "kyc"
                  },
                  "provider": {
                    "enum": [
                      "bank"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "bank"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "entityId": {
                        "type": "string",
                        "description": "`data.entityId` parameter.",
                        "example": "le_123"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "approved"
                      },
                      "type": {
                        "type": "string",
                        "description": "`data.type` parameter.",
                        "example": "BUSINESS"
                      }
                    },
                    "description": "Event-specific payload for `legal_entity.status`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "legal_entity.status",
                "domain": "kyc",
                "provider": "bank",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "entityId": "le_123",
                  "status": "approved",
                  "type": "BUSINESS"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/bank_account.status": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "bank_account.status",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a business bank account status changes.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-bank_account-status",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "bank_account.status"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "bank_account.status"
                  },
                  "domain": {
                    "enum": [
                      "account"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "account"
                  },
                  "provider": {
                    "enum": [
                      "bank"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "bank"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "bankAccountId": {
                        "type": "string",
                        "description": "`data.bankAccountId` parameter.",
                        "example": "ba_123"
                      },
                      "iban": {
                        "type": "string",
                        "description": "`data.iban` parameter.",
                        "example": "GB00HOPP00000000000000"
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "GBP"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "active"
                      }
                    },
                    "description": "Event-specific payload for `bank_account.status`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "bank_account.status",
                "domain": "account",
                "provider": "bank",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "bankAccountId": "ba_123",
                  "iban": "GB00HOPP00000000000000",
                  "currency": "GBP",
                  "status": "active"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/account.deposit.address": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "account.deposit.address",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when deposit addresses are created for a user's account.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-account-deposit-address",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "account.deposit.address"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "account.deposit.address"
                  },
                  "domain": {
                    "enum": [
                      "account"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "account"
                  },
                  "provider": {
                    "enum": [
                      "bank"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "bank"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "created"
                      }
                    },
                    "description": "Event-specific payload for `account.deposit.address`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "account.deposit.address",
                "domain": "account",
                "provider": "bank",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "status": "created"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/account.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "account.created",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money account is created.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-account-created",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "account.created"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "account.created"
                  },
                  "domain": {
                    "enum": [
                      "account"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "account"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "AccountCreated"
                      },
                      "correlationId": {
                        "type": "string",
                        "description": "`data.correlationId` parameter.",
                        "example": "corr_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "PENDING"
                      },
                      "type": {
                        "type": "string",
                        "description": "`data.type` parameter.",
                        "example": "INDIVIDUAL"
                      }
                    },
                    "description": "Event-specific payload for `account.created`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "account.created",
                "domain": "account",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "AccountCreated",
                  "correlationId": "corr_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "status": "PENDING",
                  "type": "INDIVIDUAL"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/account.activated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "account.activated",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money account is activated.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-account-activated",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "account.activated"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "account.activated"
                  },
                  "domain": {
                    "enum": [
                      "account"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "account"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "AccountActivated"
                      },
                      "id": {
                        "type": "string",
                        "description": "`data.id` parameter.",
                        "example": "acc_eq_123"
                      },
                      "correlationId": {
                        "type": "string",
                        "description": "`data.correlationId` parameter.",
                        "example": "corr_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "ACTIVE"
                      },
                      "type": {
                        "type": "string",
                        "description": "`data.type` parameter.",
                        "example": "INDIVIDUAL"
                      },
                      "primaryOwnerPersonaId": {
                        "type": "string",
                        "description": "`data.primaryOwnerPersonaId` parameter.",
                        "example": "persona_123"
                      },
                      "details": {
                        "type": "object",
                        "properties": {
                          "accountId": {
                            "type": "string",
                            "description": "`data.accountId` parameter.",
                            "example": "acc_eq_123"
                          },
                          "name": {
                            "type": "string",
                            "description": "`data.name` parameter.",
                            "example": "Example Trading Account"
                          }
                        },
                        "description": "`data.details` parameter."
                      },
                      "settlementDetails": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "currency": {
                              "type": "string",
                              "description": "`data.currency` parameter.",
                              "example": "GBP"
                            },
                            "sortCode": {
                              "type": "string",
                              "description": "`data.sortCode` parameter.",
                              "example": "040075"
                            },
                            "accountNumber": {
                              "type": "string",
                              "description": "`data.accountNumber` parameter.",
                              "example": "12345678"
                            },
                            "ibans": {
                              "type": "array",
                              "items": {
                                "type": "object",
                                "properties": {
                                  "iban": {
                                    "type": "string",
                                    "description": "`data.iban` parameter.",
                                    "example": "GB29NWBK60161331926819"
                                  },
                                  "bic": {
                                    "type": "string",
                                    "description": "`data.bic` parameter.",
                                    "example": "NWBKGB2L"
                                  }
                                },
                                "description": "`data.ibans` parameter."
                              },
                              "description": "`data.ibans` parameter.",
                              "example": [
                                {
                                  "iban": "GB29NWBK60161331926819",
                                  "bic": "NWBKGB2L"
                                }
                              ]
                            },
                            "accountName": {
                              "type": "string",
                              "description": "`data.accountName` parameter.",
                              "example": "Example Trading Account"
                            },
                            "bankName": {
                              "type": "string",
                              "description": "`data.bankName` parameter.",
                              "example": "Equals Money"
                            },
                            "bankAddress": {
                              "type": "string",
                              "description": "`data.bankAddress` parameter.",
                              "example": "London, United Kingdom"
                            },
                            "balanceReference": {
                              "type": "string",
                              "description": "`data.balanceReference` parameter.",
                              "example": "BAL-123"
                            }
                          },
                          "description": "`data.settlementDetails` parameter."
                        },
                        "description": "`data.settlementDetails` parameter.",
                        "example": [
                          {
                            "currency": "GBP",
                            "sortCode": "040075",
                            "accountNumber": "12345678",
                            "ibans": [
                              {
                                "iban": "GB29NWBK60161331926819",
                                "bic": "NWBKGB2L"
                              }
                            ],
                            "accountName": "Example Trading Account",
                            "bankName": "Equals Money",
                            "bankAddress": "London, United Kingdom",
                            "balanceReference": "BAL-123"
                          }
                        ]
                      }
                    },
                    "description": "Event-specific payload for `account.activated`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "account.activated",
                "domain": "account",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "AccountActivated",
                  "id": "acc_eq_123",
                  "correlationId": "corr_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "status": "ACTIVE",
                  "type": "INDIVIDUAL",
                  "primaryOwnerPersonaId": "persona_123",
                  "details": {
                    "accountId": "acc_eq_123",
                    "name": "Example Trading Account"
                  },
                  "settlementDetails": [
                    {
                      "currency": "GBP",
                      "sortCode": "040075",
                      "accountNumber": "12345678",
                      "ibans": [
                        {
                          "iban": "GB29NWBK60161331926819",
                          "bic": "NWBKGB2L"
                        }
                      ],
                      "accountName": "Example Trading Account",
                      "bankName": "Equals Money",
                      "bankAddress": "London, United Kingdom",
                      "balanceReference": "BAL-123"
                    }
                  ]
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/account.status_updated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "account.status_updated",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money account status changes.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-account-status_updated",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "account.status_updated"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "account.status_updated"
                  },
                  "domain": {
                    "enum": [
                      "account"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "account"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "AccountStatusUpdated"
                      },
                      "correlationId": {
                        "type": "string",
                        "description": "`data.correlationId` parameter.",
                        "example": "corr_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "SUSPENDED"
                      },
                      "type": {
                        "type": "string",
                        "description": "`data.type` parameter.",
                        "example": "INDIVIDUAL"
                      }
                    },
                    "description": "Event-specific payload for `account.status_updated`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "account.status_updated",
                "domain": "account",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "AccountStatusUpdated",
                  "correlationId": "corr_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "status": "SUSPENDED",
                  "type": "INDIVIDUAL"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/payment.completed": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "payment.completed",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent after a payment completes successfully.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-payment-completed",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "payment.completed"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "payment.completed"
                  },
                  "domain": {
                    "enum": [
                      "payment"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "payment"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "paymentId": {
                        "type": "integer",
                        "description": "`data.paymentId` parameter.",
                        "format": "int32",
                        "example": 987
                      },
                      "amount": {
                        "type": "number",
                        "description": "`data.amount` parameter.",
                        "format": "double",
                        "example": 25.5
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      }
                    },
                    "description": "Event-specific payload for `payment.completed`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "payment.completed",
                "domain": "payment",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "paymentId": 987,
                  "amount": 25.5,
                  "currency": "EUR"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/payment.mandate.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "payment.mandate.created",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent after a payment mandate is created.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-payment-mandate-created",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "payment.mandate.created"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "payment.mandate.created"
                  },
                  "domain": {
                    "enum": [
                      "payment"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "payment"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "paymentMandateId": {
                        "type": "integer",
                        "description": "`data.paymentMandateId` parameter.",
                        "format": "int32",
                        "example": 456
                      },
                      "maxAmount": {
                        "type": "number",
                        "description": "`data.maxAmount` parameter.",
                        "format": "double",
                        "example": 250
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "frequency": {
                        "type": "string",
                        "description": "`data.frequency` parameter.",
                        "example": "monthly"
                      }
                    },
                    "description": "Event-specific payload for `payment.mandate.created`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "payment.mandate.created",
                "domain": "payment",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "paymentMandateId": 456,
                  "maxAmount": 250,
                  "currency": "EUR",
                  "frequency": "monthly"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/payment.mandate.cancelled": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "payment.mandate.cancelled",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent after a payment mandate is cancelled.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-payment-mandate-cancelled",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "payment.mandate.cancelled"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "payment.mandate.cancelled"
                  },
                  "domain": {
                    "enum": [
                      "payment"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "payment"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "paymentMandateId": {
                        "type": "integer",
                        "description": "`data.paymentMandateId` parameter.",
                        "format": "int32",
                        "example": 456
                      }
                    },
                    "description": "Event-specific payload for `payment.mandate.cancelled`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "payment.mandate.cancelled",
                "domain": "payment",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "paymentMandateId": 456
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/payment.request.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "payment.request.created",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent after a payment request is created.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-payment-request-created",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "payment.request.created"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "payment.request.created"
                  },
                  "domain": {
                    "enum": [
                      "payment"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "payment"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "paymentRequestId": {
                        "type": "integer",
                        "description": "`data.paymentRequestId` parameter.",
                        "format": "int32",
                        "example": 789
                      },
                      "amount": {
                        "type": "number",
                        "description": "`data.amount` parameter.",
                        "format": "double",
                        "example": 19.99
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      }
                    },
                    "description": "Event-specific payload for `payment.request.created`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "payment.request.created",
                "domain": "payment",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "paymentRequestId": 789,
                  "amount": 19.99,
                  "currency": "EUR"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/payment.request.cancelled": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "payment.request.cancelled",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent after a payment request is cancelled.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-payment-request-cancelled",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "payment.request.cancelled"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "payment.request.cancelled"
                  },
                  "domain": {
                    "enum": [
                      "payment"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "payment"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "paymentRequestId": {
                        "type": "integer",
                        "description": "`data.paymentRequestId` parameter.",
                        "format": "int32",
                        "example": 789
                      },
                      "amount": {
                        "type": "number",
                        "description": "`data.amount` parameter.",
                        "format": "double",
                        "example": 19.99
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      }
                    },
                    "description": "Event-specific payload for `payment.request.cancelled`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "payment.request.cancelled",
                "domain": "payment",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "paymentRequestId": 789,
                  "amount": 19.99,
                  "currency": "EUR"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/payment.request.confirmed.direct": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "payment.request.confirmed.direct",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent after a payment request is confirmed by direct payment.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-payment-request-confirmed-direct",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "payment.request.confirmed.direct"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "payment.request.confirmed.direct"
                  },
                  "domain": {
                    "enum": [
                      "payment"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "payment"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "paymentRequestId": {
                        "type": "integer",
                        "description": "`data.paymentRequestId` parameter.",
                        "format": "int32",
                        "example": 789
                      },
                      "paymentMandateId": {
                        "type": "integer",
                        "description": "`data.paymentMandateId` parameter.",
                        "format": "int32",
                        "example": 456
                      },
                      "amount": {
                        "type": "number",
                        "description": "`data.amount` parameter.",
                        "format": "double",
                        "example": 19.99
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "transferId": {
                        "type": "string",
                        "description": "`data.transferId` parameter.",
                        "example": "tr_123"
                      }
                    },
                    "description": "Event-specific payload for `payment.request.confirmed.direct`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "payment.request.confirmed.direct",
                "domain": "payment",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "paymentRequestId": 789,
                  "paymentMandateId": 456,
                  "amount": 19.99,
                  "currency": "EUR",
                  "transferId": "tr_123"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/payment.request.confirmed.with.exchange": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "payment.request.confirmed.with.exchange",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent after a payment request is confirmed using crypto exchange.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-payment-request-confirmed-with-exchange",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "payment.request.confirmed.with.exchange"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "payment.request.confirmed.with.exchange"
                  },
                  "domain": {
                    "enum": [
                      "payment"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "payment"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "paymentRequestId": {
                        "type": "integer",
                        "description": "`data.paymentRequestId` parameter.",
                        "format": "int32",
                        "example": 789
                      },
                      "paymentMandateId": {
                        "type": "integer",
                        "description": "`data.paymentMandateId` parameter.",
                        "format": "int32",
                        "example": 456
                      },
                      "amount": {
                        "type": "number",
                        "description": "`data.amount` parameter.",
                        "format": "double",
                        "example": 19.99
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "transferId": {
                        "type": "string",
                        "description": "`data.transferId` parameter.",
                        "example": "tr_123"
                      }
                    },
                    "description": "Event-specific payload for `payment.request.confirmed.with.exchange`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "payment.request.confirmed.with.exchange",
                "domain": "payment",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "paymentRequestId": 789,
                  "paymentMandateId": 456,
                  "amount": 19.99,
                  "currency": "EUR",
                  "transferId": "tr_123"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/order.completed": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "order.completed",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money payment order completes.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-order-completed",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "order.completed"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "order.completed"
                  },
                  "domain": {
                    "enum": [
                      "payment"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "payment"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "orderId": {
                        "type": "string",
                        "description": "`data.orderId` parameter.",
                        "example": "order_123"
                      },
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "account_123"
                      }
                    },
                    "description": "Event-specific payload for `order.completed`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "order.completed",
                "domain": "payment",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "orderId": "order_123",
                  "accountId": "account_123"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/order.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "order.created",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money FX order is created.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-order-created",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "order.created"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "order.created"
                  },
                  "domain": {
                    "enum": [
                      "order"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "order"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "OrderCreated"
                      },
                      "orderId": {
                        "type": "string",
                        "description": "`data.orderId` parameter.",
                        "example": "order_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "CREATED"
                      },
                      "buyCurrency": {
                        "type": "string",
                        "description": "`data.buyCurrency` parameter.",
                        "example": "EUR"
                      },
                      "sellCurrency": {
                        "type": "string",
                        "description": "`data.sellCurrency` parameter.",
                        "example": "GBP"
                      },
                      "buyAmount": {
                        "type": "number",
                        "description": "`data.buyAmount` parameter.",
                        "format": "double",
                        "example": 1000
                      },
                      "sellAmount": {
                        "type": "number",
                        "description": "`data.sellAmount` parameter.",
                        "format": "double",
                        "example": 850
                      },
                      "rate": {
                        "type": "number",
                        "description": "`data.rate` parameter.",
                        "format": "double",
                        "example": 0.85
                      },
                      "payments": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "properties": {
                            "settlementDate": {
                              "type": "string",
                              "description": "`data.settlementDate` parameter.",
                              "example": "2026-04-29T00:00:00Z"
                            },
                            "rate": {
                              "type": "number",
                              "description": "`data.rate` parameter.",
                              "format": "double",
                              "example": 0.85
                            },
                            "inverseRate": {
                              "type": "number",
                              "description": "`data.inverseRate` parameter.",
                              "format": "double",
                              "example": 1.1765
                            },
                            "internalReference": {
                              "type": "string",
                              "description": "`data.internalReference` parameter.",
                              "example": "INT-123"
                            },
                            "externalReference": {
                              "type": "string",
                              "description": "`data.externalReference` parameter.",
                              "example": "EXT-123"
                            },
                            "from": {
                              "type": "object",
                              "properties": {
                                "amount": {
                                  "type": "number",
                                  "description": "`data.amount` parameter.",
                                  "format": "double",
                                  "example": 850
                                },
                                "currency": {
                                  "type": "string",
                                  "description": "`data.currency` parameter.",
                                  "example": "GBP"
                                }
                              },
                              "description": "`data.from` parameter."
                            },
                            "to": {
                              "type": "object",
                              "properties": {
                                "amount": {
                                  "type": "number",
                                  "description": "`data.amount` parameter.",
                                  "format": "double",
                                  "example": 1000
                                },
                                "currency": {
                                  "type": "string",
                                  "description": "`data.currency` parameter.",
                                  "example": "EUR"
                                }
                              },
                              "description": "`data.to` parameter."
                            },
                            "recipient": {
                              "type": "object",
                              "properties": {
                                "id": {
                                  "type": "string",
                                  "description": "`data.id` parameter.",
                                  "example": "recipient_123"
                                },
                                "name": {
                                  "type": "string",
                                  "description": "`data.name` parameter.",
                                  "example": "Example Supplier Ltd"
                                }
                              },
                              "description": "`data.recipient` parameter."
                            }
                          },
                          "description": "`data.payments` parameter."
                        },
                        "description": "`data.payments` parameter.",
                        "example": [
                          {
                            "settlementDate": "2026-04-29T00:00:00Z",
                            "rate": 0.85,
                            "inverseRate": 1.1765,
                            "internalReference": "INT-123",
                            "externalReference": "EXT-123",
                            "from": {
                              "amount": 850,
                              "currency": "GBP"
                            },
                            "to": {
                              "amount": 1000,
                              "currency": "EUR"
                            },
                            "recipient": {
                              "id": "recipient_123",
                              "name": "Example Supplier Ltd"
                            }
                          }
                        ]
                      }
                    },
                    "description": "Event-specific payload for `order.created`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "order.created",
                "domain": "order",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "OrderCreated",
                  "orderId": "order_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "status": "CREATED",
                  "buyCurrency": "EUR",
                  "sellCurrency": "GBP",
                  "buyAmount": 1000,
                  "sellAmount": 850,
                  "rate": 0.85,
                  "payments": [
                    {
                      "settlementDate": "2026-04-29T00:00:00Z",
                      "rate": 0.85,
                      "inverseRate": 1.1765,
                      "internalReference": "INT-123",
                      "externalReference": "EXT-123",
                      "from": {
                        "amount": 850,
                        "currency": "GBP"
                      },
                      "to": {
                        "amount": 1000,
                        "currency": "EUR"
                      },
                      "recipient": {
                        "id": "recipient_123",
                        "name": "Example Supplier Ltd"
                      }
                    }
                  ]
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/order.cancelled": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "order.cancelled",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money FX order is cancelled.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-order-cancelled",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "order.cancelled"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "order.cancelled"
                  },
                  "domain": {
                    "enum": [
                      "order"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "order"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "OrderCancelled"
                      },
                      "orderId": {
                        "type": "string",
                        "description": "`data.orderId` parameter.",
                        "example": "order_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "CANCELLED"
                      }
                    },
                    "description": "Event-specific payload for `order.cancelled`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "order.cancelled",
                "domain": "order",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "OrderCancelled",
                  "orderId": "order_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "status": "CANCELLED"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/payout.payment": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "payout.payment",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a business payout payment update is processed.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-payout-payment",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "payout.payment"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "payout.payment"
                  },
                  "domain": {
                    "enum": [
                      "payout"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "payout"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "transactionId": {
                        "type": "integer",
                        "description": "`data.transactionId` parameter.",
                        "format": "int32",
                        "example": 1001
                      },
                      "externalTransactionId": {
                        "type": "string",
                        "description": "`data.externalTransactionId` parameter.",
                        "example": "ext_tx_123"
                      },
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "accountId": {
                        "type": "integer",
                        "description": "`data.accountId` parameter.",
                        "format": "int32",
                        "example": 321
                      },
                      "amount": {
                        "type": "number",
                        "description": "`data.amount` parameter.",
                        "format": "double",
                        "example": 100
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "completed"
                      },
                      "transferId": {
                        "type": "string",
                        "description": "`data.transferId` parameter.",
                        "example": "transfer_123"
                      },
                      "type": {
                        "type": "string",
                        "description": "`data.type` parameter.",
                        "example": "PAYOUT.PAYMENT"
                      }
                    },
                    "description": "Event-specific payload for `payout.payment`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "payout.payment",
                "domain": "payout",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "transactionId": 1001,
                  "externalTransactionId": "ext_tx_123",
                  "userId": 12345,
                  "accountId": 321,
                  "amount": 100,
                  "currency": "EUR",
                  "status": "completed",
                  "transferId": "transfer_123",
                  "type": "PAYOUT.PAYMENT"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/business_account.transaction": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "business_account.transaction",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a business account transaction is processed.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-business_account-transaction",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "business_account.transaction"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "business_account.transaction"
                  },
                  "domain": {
                    "enum": [
                      "business_account"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "business_account"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "transactionId": {
                        "type": "integer",
                        "description": "`data.transactionId` parameter.",
                        "format": "int32",
                        "example": 1001
                      },
                      "externalTransactionId": {
                        "type": "string",
                        "description": "`data.externalTransactionId` parameter.",
                        "example": "ext_tx_123"
                      },
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "accountId": {
                        "type": "integer",
                        "description": "`data.accountId` parameter.",
                        "format": "int32",
                        "example": 321
                      },
                      "transactionType": {
                        "type": "string",
                        "description": "`data.transactionType` parameter.",
                        "example": "payout_payment"
                      },
                      "amount": {
                        "type": "number",
                        "description": "`data.amount` parameter.",
                        "format": "double",
                        "example": 100
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "completed"
                      },
                      "fee": {
                        "type": "number",
                        "description": "`data.fee` parameter.",
                        "format": "double",
                        "example": 1.25
                      }
                    },
                    "description": "Event-specific payload for `business_account.transaction`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "business_account.transaction",
                "domain": "business_account",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "transactionId": 1001,
                  "externalTransactionId": "ext_tx_123",
                  "userId": 12345,
                  "accountId": 321,
                  "transactionType": "payout_payment",
                  "amount": 100,
                  "currency": "EUR",
                  "status": "completed",
                  "fee": 1.25
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/wallet.topped_up": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "wallet.topped_up",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a wallet, budget, or card funding transaction credits value.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-wallet-topped_up",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "wallet.topped_up"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "wallet.topped_up"
                  },
                  "domain": {
                    "enum": [
                      "wallet"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "wallet"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "transactionId": {
                        "type": "string",
                        "description": "`data.transactionId` parameter.",
                        "example": "1001"
                      },
                      "walletId": {
                        "type": "string",
                        "description": "`data.walletId` parameter.",
                        "example": "wallet_123"
                      },
                      "userId": {
                        "type": "string",
                        "description": "`data.userId` parameter.",
                        "example": "12345"
                      },
                      "amount": {
                        "type": "string",
                        "description": "`data.amount` parameter.",
                        "example": "100.00"
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "completed"
                      },
                      "provider": {
                        "type": "string",
                        "description": "`data.provider` parameter.",
                        "example": "hoppacard"
                      }
                    },
                    "description": "Event-specific payload for `wallet.topped_up`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "wallet.topped_up",
                "domain": "wallet",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "transactionId": "1001",
                  "walletId": "wallet_123",
                  "userId": "12345",
                  "amount": "100.00",
                  "currency": "EUR",
                  "status": "completed",
                  "provider": "hoppacard"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/wallet.withdrawal": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "wallet.withdrawal",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a wallet withdrawal or debit transaction is processed.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-wallet-withdrawal",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "wallet.withdrawal"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "wallet.withdrawal"
                  },
                  "domain": {
                    "enum": [
                      "wallet"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "wallet"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "transactionId": {
                        "type": "string",
                        "description": "`data.transactionId` parameter.",
                        "example": "1002"
                      },
                      "walletId": {
                        "type": "string",
                        "description": "`data.walletId` parameter.",
                        "example": "wallet_123"
                      },
                      "userId": {
                        "type": "string",
                        "description": "`data.userId` parameter.",
                        "example": "12345"
                      },
                      "amount": {
                        "type": "string",
                        "description": "`data.amount` parameter.",
                        "example": "50.00"
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "completed"
                      },
                      "provider": {
                        "type": "string",
                        "description": "`data.provider` parameter.",
                        "example": "hoppacard"
                      }
                    },
                    "description": "Event-specific payload for `wallet.withdrawal`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "wallet.withdrawal",
                "domain": "wallet",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "transactionId": "1002",
                  "walletId": "wallet_123",
                  "userId": "12345",
                  "amount": "50.00",
                  "currency": "EUR",
                  "status": "completed",
                  "provider": "hoppacard"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/wallet.refund": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "wallet.refund",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a crypto refund is processed.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-wallet-refund",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "wallet.refund"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "wallet.refund"
                  },
                  "domain": {
                    "enum": [
                      "wallet"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "wallet"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "transactionId": {
                        "type": "string",
                        "description": "`data.transactionId` parameter.",
                        "example": "1001"
                      },
                      "userId": {
                        "type": "string",
                        "description": "`data.userId` parameter.",
                        "example": "12345"
                      },
                      "amount": {
                        "type": "string",
                        "description": "`data.amount` parameter.",
                        "example": "10.00"
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "USDT"
                      },
                      "chain": {
                        "type": "string",
                        "description": "`data.chain` parameter.",
                        "example": "TRON"
                      },
                      "address": {
                        "type": "string",
                        "description": "`data.address` parameter.",
                        "example": "TXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "completed"
                      },
                      "transferId": {
                        "type": "string",
                        "description": "`data.transferId` parameter.",
                        "example": "transfer_123"
                      },
                      "transactionHash": {
                        "type": "string",
                        "description": "`data.transactionHash` parameter.",
                        "example": "0x1234567890abcdef"
                      },
                      "provider": {
                        "type": "string",
                        "description": "`data.provider` parameter.",
                        "example": "hoppacard"
                      }
                    },
                    "description": "Event-specific payload for `wallet.refund`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "wallet.refund",
                "domain": "wallet",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "transactionId": "1001",
                  "userId": "12345",
                  "amount": "10.00",
                  "currency": "USDT",
                  "chain": "TRON",
                  "address": "TXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
                  "status": "completed",
                  "transferId": "transfer_123",
                  "transactionHash": "0x1234567890abcdef",
                  "provider": "hoppacard"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/budget.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "budget.created",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a budget is created.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-budget-created",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "budget.created"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "budget.created"
                  },
                  "domain": {
                    "enum": [
                      "budget"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "budget"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "budgetId": {
                        "type": "string",
                        "description": "`data.budgetId` parameter.",
                        "example": "budget_123"
                      },
                      "name": {
                        "type": "string",
                        "description": "`data.name` parameter.",
                        "example": "Main EUR Budget"
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "amount": {
                        "type": "string",
                        "description": "`data.amount` parameter.",
                        "example": "1000.00"
                      },
                      "spent": {
                        "type": "string",
                        "description": "`data.spent` parameter.",
                        "example": "125.00"
                      },
                      "remaining": {
                        "type": "string",
                        "description": "`data.remaining` parameter.",
                        "example": "875.00"
                      },
                      "period": {
                        "type": "string",
                        "description": "`data.period` parameter.",
                        "example": "monthly"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "active"
                      }
                    },
                    "description": "Event-specific payload for `budget.created`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "budget.created",
                "domain": "budget",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "budgetId": "budget_123",
                  "name": "Main EUR Budget",
                  "currency": "EUR",
                  "amount": "1000.00",
                  "spent": "125.00",
                  "remaining": "875.00",
                  "period": "monthly",
                  "status": "active"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/budget.updated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "budget.updated",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a budget is updated.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-budget-updated",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "budget.updated"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "budget.updated"
                  },
                  "domain": {
                    "enum": [
                      "budget"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "budget"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "budgetId": {
                        "type": "string",
                        "description": "`data.budgetId` parameter.",
                        "example": "budget_123"
                      },
                      "name": {
                        "type": "string",
                        "description": "`data.name` parameter.",
                        "example": "Main EUR Budget"
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "amount": {
                        "type": "string",
                        "description": "`data.amount` parameter.",
                        "example": "1000.00"
                      },
                      "spent": {
                        "type": "string",
                        "description": "`data.spent` parameter.",
                        "example": "125.00"
                      },
                      "remaining": {
                        "type": "string",
                        "description": "`data.remaining` parameter.",
                        "example": "875.00"
                      },
                      "period": {
                        "type": "string",
                        "description": "`data.period` parameter.",
                        "example": "monthly"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "active"
                      }
                    },
                    "description": "Event-specific payload for `budget.updated`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "budget.updated",
                "domain": "budget",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "budgetId": "budget_123",
                  "name": "Main EUR Budget",
                  "currency": "EUR",
                  "amount": "1000.00",
                  "spent": "125.00",
                  "remaining": "875.00",
                  "period": "monthly",
                  "status": "active"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/budget.deleted": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "budget.deleted",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a budget is deleted.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-budget-deleted",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "budget.deleted"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "budget.deleted"
                  },
                  "domain": {
                    "enum": [
                      "budget"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "budget"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "budgetId": {
                        "type": "string",
                        "description": "`data.budgetId` parameter.",
                        "example": "budget_123"
                      },
                      "name": {
                        "type": "string",
                        "description": "`data.name` parameter.",
                        "example": "Main EUR Budget"
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "amount": {
                        "type": "string",
                        "description": "`data.amount` parameter.",
                        "example": "1000.00"
                      },
                      "spent": {
                        "type": "string",
                        "description": "`data.spent` parameter.",
                        "example": "125.00"
                      },
                      "remaining": {
                        "type": "string",
                        "description": "`data.remaining` parameter.",
                        "example": "875.00"
                      },
                      "period": {
                        "type": "string",
                        "description": "`data.period` parameter.",
                        "example": "monthly"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "deleted"
                      }
                    },
                    "description": "Event-specific payload for `budget.deleted`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "budget.deleted",
                "domain": "budget",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "budgetId": "budget_123",
                  "name": "Main EUR Budget",
                  "currency": "EUR",
                  "amount": "1000.00",
                  "spent": "125.00",
                  "remaining": "875.00",
                  "period": "monthly",
                  "status": "deleted"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/budget.transaction.closed": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "budget.transaction.closed",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a budget transaction is closed.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-budget-transaction-closed",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "budget.transaction.closed"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "budget.transaction.closed"
                  },
                  "domain": {
                    "enum": [
                      "budget"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "budget"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "transactionId": {
                        "type": "string",
                        "description": "`data.transactionId` parameter.",
                        "example": "1001"
                      },
                      "userId": {
                        "type": "string",
                        "description": "`data.userId` parameter.",
                        "example": "12345"
                      },
                      "budgetId": {
                        "type": "string",
                        "description": "`data.budgetId` parameter.",
                        "example": "budget_123"
                      },
                      "amount": {
                        "type": "string",
                        "description": "`data.amount` parameter.",
                        "example": "15.00"
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "closed"
                      },
                      "type": {
                        "type": "string",
                        "description": "`data.type` parameter.",
                        "example": "DEBIT"
                      }
                    },
                    "description": "Event-specific payload for `budget.transaction.closed`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "budget.transaction.closed",
                "domain": "budget",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "transactionId": "1001",
                  "userId": "12345",
                  "budgetId": "budget_123",
                  "amount": "15.00",
                  "currency": "EUR",
                  "status": "closed",
                  "type": "DEBIT"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/budget.credited": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "budget.credited",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money budget receives funds.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-budget-credited",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "budget.credited"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "budget.credited"
                  },
                  "domain": {
                    "enum": [
                      "budget"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "budget"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "transactionId": {
                        "type": "integer",
                        "description": "`data.transactionId` parameter.",
                        "format": "int32",
                        "example": 1001
                      },
                      "externalTransactionId": {
                        "type": "string",
                        "description": "`data.externalTransactionId` parameter.",
                        "example": "ext_tx_123"
                      },
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "budgetId": {
                        "type": "string",
                        "description": "`data.budgetId` parameter.",
                        "example": "budget_123"
                      },
                      "amount": {
                        "type": "number",
                        "description": "`data.amount` parameter.",
                        "format": "double",
                        "example": 75
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "source": {
                        "type": "string",
                        "description": "`data.source` parameter.",
                        "example": "BANK_TRANSFER"
                      },
                      "reference": {
                        "type": "string",
                        "description": "`data.reference` parameter.",
                        "example": "Invoice 123"
                      },
                      "remitterName": {
                        "type": "string",
                        "description": "`data.remitterName` parameter.",
                        "example": "Example Ltd"
                      }
                    },
                    "description": "Event-specific payload for `budget.credited`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "budget.credited",
                "domain": "budget",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "transactionId": 1001,
                  "externalTransactionId": "ext_tx_123",
                  "userId": 12345,
                  "budgetId": "budget_123",
                  "amount": 75,
                  "currency": "EUR",
                  "source": "BANK_TRANSFER",
                  "reference": "Invoice 123",
                  "remitterName": "Example Ltd"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/budget.debited": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "budget.debited",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money budget is debited.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-budget-debited",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "budget.debited"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "budget.debited"
                  },
                  "domain": {
                    "enum": [
                      "budget"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "budget"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "transactionId": {
                        "type": "integer",
                        "description": "`data.transactionId` parameter.",
                        "format": "int32",
                        "example": 1002
                      },
                      "externalTransactionId": {
                        "type": "string",
                        "description": "`data.externalTransactionId` parameter.",
                        "example": "ext_tx_456"
                      },
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "budgetId": {
                        "type": "string",
                        "description": "`data.budgetId` parameter.",
                        "example": "budget_123"
                      },
                      "amount": {
                        "type": "number",
                        "description": "`data.amount` parameter.",
                        "format": "double",
                        "example": 25
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "source": {
                        "type": "string",
                        "description": "`data.source` parameter.",
                        "example": "CARD_PAYMENT"
                      }
                    },
                    "description": "Event-specific payload for `budget.debited`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "budget.debited",
                "domain": "budget",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "transactionId": 1002,
                  "externalTransactionId": "ext_tx_456",
                  "userId": 12345,
                  "budgetId": "budget_123",
                  "amount": 25,
                  "currency": "EUR",
                  "source": "CARD_PAYMENT"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/budget.credit_pending": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "budget.credit_pending",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money budget credit is pending settlement.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-budget-credit_pending",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "budget.credit_pending"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "budget.credit_pending"
                  },
                  "domain": {
                    "enum": [
                      "budget"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "budget"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "BoxCreditPending"
                      },
                      "budgetId": {
                        "type": "string",
                        "description": "`data.budgetId` parameter.",
                        "example": "budget_123"
                      },
                      "budgetName": {
                        "type": "string",
                        "description": "`data.budgetName` parameter.",
                        "example": "Operations Budget"
                      },
                      "settlementPriceAmount": {
                        "type": "number",
                        "description": "`data.settlementPriceAmount` parameter.",
                        "format": "double",
                        "example": 1200
                      },
                      "settlementPriceCurrency": {
                        "type": "string",
                        "description": "`data.settlementPriceCurrency` parameter.",
                        "example": "GBP"
                      },
                      "valueDateTime": {
                        "type": "string",
                        "description": "`data.valueDateTime` parameter.",
                        "example": "2026-04-29T00:00:00Z"
                      }
                    },
                    "description": "Event-specific payload for `budget.credit_pending`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "budget.credit_pending",
                "domain": "budget",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "BoxCreditPending",
                  "budgetId": "budget_123",
                  "budgetName": "Operations Budget",
                  "settlementPriceAmount": 1200,
                  "settlementPriceCurrency": "GBP",
                  "valueDateTime": "2026-04-29T00:00:00Z"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/card.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "card.created",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a card is created.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-card-created",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "card.created"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "card.created"
                  },
                  "domain": {
                    "enum": [
                      "card"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "card"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "cardId": {
                        "type": "integer",
                        "description": "`data.cardId` parameter.",
                        "format": "int32",
                        "example": 555
                      },
                      "cardNumber": {
                        "type": "string",
                        "description": "`data.cardNumber` parameter.",
                        "example": "****-****-****-4242"
                      },
                      "lastFour": {
                        "type": "string",
                        "description": "`data.lastFour` parameter.",
                        "example": "4242"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "active"
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      }
                    },
                    "description": "Event-specific payload for `card.created`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "card.created",
                "domain": "card",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "cardId": 555,
                  "cardNumber": "****-****-****-4242",
                  "lastFour": "4242",
                  "status": "active",
                  "currency": "EUR"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/card.activated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "card.activated",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a card is activated. Virtual cards may emit this immediately after creation.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-card-activated",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "card.activated"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "card.activated"
                  },
                  "domain": {
                    "enum": [
                      "card"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "card"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "cardId": {
                        "type": "integer",
                        "description": "`data.cardId` parameter.",
                        "format": "int32",
                        "example": 555
                      }
                    },
                    "description": "Event-specific payload for `card.activated`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "card.activated",
                "domain": "card",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "cardId": 555
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/card.updated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "card.updated",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a card status changes.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-card-updated",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "card.updated"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "card.updated"
                  },
                  "domain": {
                    "enum": [
                      "card"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "card"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "cardId": {
                        "type": "integer",
                        "description": "`data.cardId` parameter.",
                        "format": "int32",
                        "example": 555
                      },
                      "previousStatus": {
                        "type": "string",
                        "description": "`data.previousStatus` parameter.",
                        "example": "PENDING"
                      },
                      "newStatus": {
                        "type": "string",
                        "description": "`data.newStatus` parameter.",
                        "example": "ACTIVE"
                      },
                      "lastFour": {
                        "type": "string",
                        "description": "`data.lastFour` parameter.",
                        "example": "4242"
                      }
                    },
                    "description": "Event-specific payload for `card.updated`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "card.updated",
                "domain": "card",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "cardId": 555,
                  "previousStatus": "PENDING",
                  "newStatus": "ACTIVE",
                  "lastFour": "4242"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/card.deleted": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "card.deleted",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a card is deleted or cancelled.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-card-deleted",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "card.deleted"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "card.deleted"
                  },
                  "domain": {
                    "enum": [
                      "card"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "card"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "cardId": {
                        "type": "integer",
                        "description": "`data.cardId` parameter.",
                        "format": "int32",
                        "example": 555
                      },
                      "previousStatus": {
                        "type": "string",
                        "description": "`data.previousStatus` parameter.",
                        "example": "ACTIVE"
                      }
                    },
                    "description": "Event-specific payload for `card.deleted`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "card.deleted",
                "domain": "card",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "cardId": 555,
                  "previousStatus": "ACTIVE"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/card.shipped": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "card.shipped",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a physical card is shipped.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-card-shipped",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "card.shipped"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "card.shipped"
                  },
                  "domain": {
                    "enum": [
                      "card"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "card"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "cardId": {
                        "type": "integer",
                        "description": "`data.cardId` parameter.",
                        "format": "int32",
                        "example": 555
                      },
                      "trackingNumber": {
                        "type": "string",
                        "description": "`data.trackingNumber` parameter.",
                        "example": "TRACK123"
                      },
                      "shippingCarrier": {
                        "type": "string",
                        "description": "`data.shippingCarrier` parameter.",
                        "example": "DHL"
                      },
                      "shippedAt": {
                        "type": "string",
                        "description": "`data.shippedAt` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      }
                    },
                    "description": "Event-specific payload for `card.shipped`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "card.shipped",
                "domain": "card",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "cardId": 555,
                  "trackingNumber": "TRACK123",
                  "shippingCarrier": "DHL",
                  "shippedAt": "2026-04-28T10:15:30Z"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/card.transaction": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "card.transaction",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent for card purchases, refunds, reversals, fee transactions, freezes, and unfreezes.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-card-transaction",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "card.transaction"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "card.transaction"
                  },
                  "domain": {
                    "enum": [
                      "card"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "card"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "transactionId": {
                        "type": "integer",
                        "description": "`data.transactionId` parameter.",
                        "format": "int32",
                        "example": 1001
                      },
                      "externalTransactionId": {
                        "type": "string",
                        "description": "`data.externalTransactionId` parameter.",
                        "example": "card_tx_123"
                      },
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "accountId": {
                        "type": "integer",
                        "description": "`data.accountId` parameter.",
                        "format": "int32",
                        "example": 321
                      },
                      "cardId": {
                        "type": "integer",
                        "description": "`data.cardId` parameter.",
                        "format": "int32",
                        "example": 555
                      },
                      "externalCardId": {
                        "type": "string",
                        "description": "`data.externalCardId` parameter.",
                        "example": "card_ext_123"
                      },
                      "transactionType": {
                        "type": "string",
                        "description": "`data.transactionType` parameter.",
                        "example": "card_payment"
                      },
                      "amount": {
                        "type": "number",
                        "description": "`data.amount` parameter.",
                        "format": "double",
                        "example": 42.5
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "completed"
                      },
                      "description": {
                        "type": "string",
                        "description": "`data.description` parameter.",
                        "example": "CARD PAYMENT: Example Merchant"
                      },
                      "transactionDate": {
                        "type": "string",
                        "description": "`data.transactionDate` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "merchantName": {
                        "type": "string",
                        "description": "`data.merchantName` parameter.",
                        "example": "Example Merchant"
                      },
                      "merchantMid": {
                        "type": "string",
                        "description": "`data.merchantMid` parameter.",
                        "example": "merchant_mid_123"
                      },
                      "merchantCity": {
                        "type": "string",
                        "description": "`data.merchantCity` parameter.",
                        "example": "London"
                      },
                      "merchantCountry": {
                        "type": "string",
                        "description": "`data.merchantCountry` parameter.",
                        "example": "GB"
                      },
                      "merchantState": {
                        "type": "string",
                        "description": "`data.merchantState` parameter.",
                        "example": "ENG"
                      },
                      "merchantZipcode": {
                        "type": "string",
                        "description": "`data.merchantZipcode` parameter.",
                        "example": "EC1A1BB"
                      },
                      "mcc": {
                        "type": "string",
                        "description": "`data.mcc` parameter.",
                        "example": "5812"
                      },
                      "mccCategory": {
                        "type": "string",
                        "description": "`data.mccCategory` parameter.",
                        "example": "Restaurants"
                      },
                      "fee": {
                        "type": "number",
                        "description": "`data.fee` parameter.",
                        "format": "double",
                        "example": 0.35
                      },
                      "transactionCurrency": {
                        "type": "string",
                        "description": "`data.transactionCurrency` parameter.",
                        "example": "GBP"
                      },
                      "transactionAmount": {
                        "type": "string",
                        "description": "`data.transactionAmount` parameter.",
                        "example": "36.25"
                      },
                      "clientTransactionId": {
                        "type": "string",
                        "description": "`data.clientTransactionId` parameter.",
                        "example": "client_tx_123"
                      },
                      "cardTransactionId": {
                        "type": "string",
                        "description": "`data.cardTransactionId` parameter.",
                        "example": "card_trace_123"
                      },
                      "relatedCardTransactionId": {
                        "type": "string",
                        "description": "`data.relatedCardTransactionId` parameter.",
                        "example": "card_trace_parent_123"
                      },
                      "remark": {
                        "type": "string",
                        "description": "`data.remark` parameter.",
                        "example": "Approved"
                      },
                      "detail": {
                        "type": "string",
                        "description": "`data.detail` parameter.",
                        "example": "Card transaction processed"
                      },
                      "type": {
                        "type": "string",
                        "description": "`data.type` parameter.",
                        "example": "CONSUMPTION"
                      }
                    },
                    "description": "Event-specific payload for `card.transaction`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "card.transaction",
                "domain": "card",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "transactionId": 1001,
                  "externalTransactionId": "card_tx_123",
                  "userId": 12345,
                  "accountId": 321,
                  "cardId": 555,
                  "externalCardId": "card_ext_123",
                  "transactionType": "card_payment",
                  "amount": 42.5,
                  "currency": "EUR",
                  "status": "completed",
                  "description": "CARD PAYMENT: Example Merchant",
                  "transactionDate": "2026-04-28T10:15:30Z",
                  "merchantName": "Example Merchant",
                  "merchantMid": "merchant_mid_123",
                  "merchantCity": "London",
                  "merchantCountry": "GB",
                  "merchantState": "ENG",
                  "merchantZipcode": "EC1A1BB",
                  "mcc": "5812",
                  "mccCategory": "Restaurants",
                  "fee": 0.35,
                  "transactionCurrency": "GBP",
                  "transactionAmount": "36.25",
                  "clientTransactionId": "client_tx_123",
                  "cardTransactionId": "card_trace_123",
                  "relatedCardTransactionId": "card_trace_parent_123",
                  "remark": "Approved",
                  "detail": "Card transaction processed",
                  "type": "CONSUMPTION"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/card.topup": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "card.topup",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when value is loaded onto a card.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-card-topup",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "card.topup"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "card.topup"
                  },
                  "domain": {
                    "enum": [
                      "card"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "card"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "transactionId": {
                        "type": "integer",
                        "description": "`data.transactionId` parameter.",
                        "format": "int32",
                        "example": 1001
                      },
                      "externalTransactionId": {
                        "type": "string",
                        "description": "`data.externalTransactionId` parameter.",
                        "example": "card_tx_123"
                      },
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "accountId": {
                        "type": "integer",
                        "description": "`data.accountId` parameter.",
                        "format": "int32",
                        "example": 321
                      },
                      "cardId": {
                        "type": "integer",
                        "description": "`data.cardId` parameter.",
                        "format": "int32",
                        "example": 555
                      },
                      "externalCardId": {
                        "type": "string",
                        "description": "`data.externalCardId` parameter.",
                        "example": "card_ext_123"
                      },
                      "transactionType": {
                        "type": "string",
                        "description": "`data.transactionType` parameter.",
                        "example": "card_topup"
                      },
                      "amount": {
                        "type": "number",
                        "description": "`data.amount` parameter.",
                        "format": "double",
                        "example": 42.5
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "completed"
                      },
                      "description": {
                        "type": "string",
                        "description": "`data.description` parameter.",
                        "example": "CARD PAYMENT: Example Merchant"
                      },
                      "transactionDate": {
                        "type": "string",
                        "description": "`data.transactionDate` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "merchantName": {
                        "type": "string",
                        "description": "`data.merchantName` parameter.",
                        "example": "Example Merchant"
                      },
                      "merchantMid": {
                        "type": "string",
                        "description": "`data.merchantMid` parameter.",
                        "example": "merchant_mid_123"
                      },
                      "merchantCity": {
                        "type": "string",
                        "description": "`data.merchantCity` parameter.",
                        "example": "London"
                      },
                      "merchantCountry": {
                        "type": "string",
                        "description": "`data.merchantCountry` parameter.",
                        "example": "GB"
                      },
                      "merchantState": {
                        "type": "string",
                        "description": "`data.merchantState` parameter.",
                        "example": "ENG"
                      },
                      "merchantZipcode": {
                        "type": "string",
                        "description": "`data.merchantZipcode` parameter.",
                        "example": "EC1A1BB"
                      },
                      "mcc": {
                        "type": "string",
                        "description": "`data.mcc` parameter.",
                        "example": "5812"
                      },
                      "mccCategory": {
                        "type": "string",
                        "description": "`data.mccCategory` parameter.",
                        "example": "Restaurants"
                      },
                      "fee": {
                        "type": "number",
                        "description": "`data.fee` parameter.",
                        "format": "double",
                        "example": 0.35
                      },
                      "transactionCurrency": {
                        "type": "string",
                        "description": "`data.transactionCurrency` parameter.",
                        "example": "GBP"
                      },
                      "transactionAmount": {
                        "type": "string",
                        "description": "`data.transactionAmount` parameter.",
                        "example": "36.25"
                      },
                      "clientTransactionId": {
                        "type": "string",
                        "description": "`data.clientTransactionId` parameter.",
                        "example": "client_tx_123"
                      },
                      "cardTransactionId": {
                        "type": "string",
                        "description": "`data.cardTransactionId` parameter.",
                        "example": "card_trace_123"
                      },
                      "relatedCardTransactionId": {
                        "type": "string",
                        "description": "`data.relatedCardTransactionId` parameter.",
                        "example": "card_trace_parent_123"
                      },
                      "remark": {
                        "type": "string",
                        "description": "`data.remark` parameter.",
                        "example": "Approved"
                      },
                      "detail": {
                        "type": "string",
                        "description": "`data.detail` parameter.",
                        "example": "Card transaction processed"
                      },
                      "type": {
                        "type": "string",
                        "description": "`data.type` parameter.",
                        "example": "CONSUMPTION"
                      }
                    },
                    "description": "Event-specific payload for `card.topup`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "card.topup",
                "domain": "card",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "transactionId": 1001,
                  "externalTransactionId": "card_tx_123",
                  "userId": 12345,
                  "accountId": 321,
                  "cardId": 555,
                  "externalCardId": "card_ext_123",
                  "transactionType": "card_topup",
                  "amount": 42.5,
                  "currency": "EUR",
                  "status": "completed",
                  "description": "CARD PAYMENT: Example Merchant",
                  "transactionDate": "2026-04-28T10:15:30Z",
                  "merchantName": "Example Merchant",
                  "merchantMid": "merchant_mid_123",
                  "merchantCity": "London",
                  "merchantCountry": "GB",
                  "merchantState": "ENG",
                  "merchantZipcode": "EC1A1BB",
                  "mcc": "5812",
                  "mccCategory": "Restaurants",
                  "fee": 0.35,
                  "transactionCurrency": "GBP",
                  "transactionAmount": "36.25",
                  "clientTransactionId": "client_tx_123",
                  "cardTransactionId": "card_trace_123",
                  "relatedCardTransactionId": "card_trace_parent_123",
                  "remark": "Approved",
                  "detail": "Card transaction processed",
                  "type": "CONSUMPTION"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/card.unload": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "card.unload",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when value is unloaded from a card.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-card-unload",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "card.unload"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "card.unload"
                  },
                  "domain": {
                    "enum": [
                      "card"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "card"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "transactionId": {
                        "type": "integer",
                        "description": "`data.transactionId` parameter.",
                        "format": "int32",
                        "example": 1001
                      },
                      "externalTransactionId": {
                        "type": "string",
                        "description": "`data.externalTransactionId` parameter.",
                        "example": "card_tx_123"
                      },
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "accountId": {
                        "type": "integer",
                        "description": "`data.accountId` parameter.",
                        "format": "int32",
                        "example": 321
                      },
                      "cardId": {
                        "type": "integer",
                        "description": "`data.cardId` parameter.",
                        "format": "int32",
                        "example": 555
                      },
                      "externalCardId": {
                        "type": "string",
                        "description": "`data.externalCardId` parameter.",
                        "example": "card_ext_123"
                      },
                      "transactionType": {
                        "type": "string",
                        "description": "`data.transactionType` parameter.",
                        "example": "card_unload"
                      },
                      "amount": {
                        "type": "number",
                        "description": "`data.amount` parameter.",
                        "format": "double",
                        "example": 42.5
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "completed"
                      },
                      "description": {
                        "type": "string",
                        "description": "`data.description` parameter.",
                        "example": "CARD PAYMENT: Example Merchant"
                      },
                      "transactionDate": {
                        "type": "string",
                        "description": "`data.transactionDate` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "merchantName": {
                        "type": "string",
                        "description": "`data.merchantName` parameter.",
                        "example": "Example Merchant"
                      },
                      "merchantMid": {
                        "type": "string",
                        "description": "`data.merchantMid` parameter.",
                        "example": "merchant_mid_123"
                      },
                      "merchantCity": {
                        "type": "string",
                        "description": "`data.merchantCity` parameter.",
                        "example": "London"
                      },
                      "merchantCountry": {
                        "type": "string",
                        "description": "`data.merchantCountry` parameter.",
                        "example": "GB"
                      },
                      "merchantState": {
                        "type": "string",
                        "description": "`data.merchantState` parameter.",
                        "example": "ENG"
                      },
                      "merchantZipcode": {
                        "type": "string",
                        "description": "`data.merchantZipcode` parameter.",
                        "example": "EC1A1BB"
                      },
                      "mcc": {
                        "type": "string",
                        "description": "`data.mcc` parameter.",
                        "example": "5812"
                      },
                      "mccCategory": {
                        "type": "string",
                        "description": "`data.mccCategory` parameter.",
                        "example": "Restaurants"
                      },
                      "fee": {
                        "type": "number",
                        "description": "`data.fee` parameter.",
                        "format": "double",
                        "example": 0.35
                      },
                      "transactionCurrency": {
                        "type": "string",
                        "description": "`data.transactionCurrency` parameter.",
                        "example": "GBP"
                      },
                      "transactionAmount": {
                        "type": "string",
                        "description": "`data.transactionAmount` parameter.",
                        "example": "36.25"
                      },
                      "clientTransactionId": {
                        "type": "string",
                        "description": "`data.clientTransactionId` parameter.",
                        "example": "client_tx_123"
                      },
                      "cardTransactionId": {
                        "type": "string",
                        "description": "`data.cardTransactionId` parameter.",
                        "example": "card_trace_123"
                      },
                      "relatedCardTransactionId": {
                        "type": "string",
                        "description": "`data.relatedCardTransactionId` parameter.",
                        "example": "card_trace_parent_123"
                      },
                      "remark": {
                        "type": "string",
                        "description": "`data.remark` parameter.",
                        "example": "Approved"
                      },
                      "detail": {
                        "type": "string",
                        "description": "`data.detail` parameter.",
                        "example": "Card transaction processed"
                      },
                      "type": {
                        "type": "string",
                        "description": "`data.type` parameter.",
                        "example": "CONSUMPTION"
                      }
                    },
                    "description": "Event-specific payload for `card.unload`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "card.unload",
                "domain": "card",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "transactionId": 1001,
                  "externalTransactionId": "card_tx_123",
                  "userId": 12345,
                  "accountId": 321,
                  "cardId": 555,
                  "externalCardId": "card_ext_123",
                  "transactionType": "card_unload",
                  "amount": 42.5,
                  "currency": "EUR",
                  "status": "completed",
                  "description": "CARD PAYMENT: Example Merchant",
                  "transactionDate": "2026-04-28T10:15:30Z",
                  "merchantName": "Example Merchant",
                  "merchantMid": "merchant_mid_123",
                  "merchantCity": "London",
                  "merchantCountry": "GB",
                  "merchantState": "ENG",
                  "merchantZipcode": "EC1A1BB",
                  "mcc": "5812",
                  "mccCategory": "Restaurants",
                  "fee": 0.35,
                  "transactionCurrency": "GBP",
                  "transactionAmount": "36.25",
                  "clientTransactionId": "client_tx_123",
                  "cardTransactionId": "card_trace_123",
                  "relatedCardTransactionId": "card_trace_parent_123",
                  "remark": "Approved",
                  "detail": "Card transaction processed",
                  "type": "CONSUMPTION"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/card.state_updated": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "card.state_updated",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money card state changes.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-card-state_updated",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "card.state_updated"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "card.state_updated"
                  },
                  "domain": {
                    "enum": [
                      "card"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "card"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "cardId": {
                        "type": "integer",
                        "description": "`data.cardId` parameter.",
                        "format": "int32",
                        "example": 555
                      },
                      "externalCardId": {
                        "type": "string",
                        "description": "`data.externalCardId` parameter.",
                        "example": "card_ext_123"
                      },
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "previousState": {
                        "type": "string",
                        "description": "`data.previousState` parameter.",
                        "example": "ACTIVE"
                      },
                      "currentState": {
                        "type": "string",
                        "description": "`data.currentState` parameter.",
                        "example": "SUSPENDED"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "blocked"
                      }
                    },
                    "description": "Event-specific payload for `card.state_updated`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "card.state_updated",
                "domain": "card",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "cardId": 555,
                  "externalCardId": "card_ext_123",
                  "userId": 12345,
                  "previousState": "ACTIVE",
                  "currentState": "SUSPENDED",
                  "status": "blocked"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/card.3ds.otp": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "card.3ds.otp",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a card 3DS OTP is received from Interlace.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-card-3ds-otp",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "card.3ds.otp"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "card.3ds.otp"
                  },
                  "domain": {
                    "enum": [
                      "card"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "card"
                  },
                  "provider": {
                    "enum": [
                      "hoppacard"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "hoppacard"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "cardId": {
                        "type": "integer",
                        "description": "`data.cardId` parameter.",
                        "format": "int32",
                        "example": 555
                      },
                      "externalCardId": {
                        "type": "string",
                        "description": "`data.externalCardId` parameter.",
                        "example": "card_ext_123"
                      },
                      "otp": {
                        "type": "string",
                        "description": "`data.otp` parameter.",
                        "example": "123456"
                      },
                      "expiresAt": {
                        "type": "string",
                        "description": "`data.expiresAt` parameter.",
                        "example": "2026-04-28T10:20:30Z"
                      }
                    },
                    "description": "Event-specific payload for `card.3ds.otp`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "card.3ds.otp",
                "domain": "card",
                "provider": "hoppacard",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "cardId": 555,
                  "externalCardId": "card_ext_123",
                  "otp": "123456",
                  "expiresAt": "2026-04-28T10:20:30Z"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/card.3ds_auth_request": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "card.3ds_auth_request",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money card 3DS authentication request requires OTP handling.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-card-3ds_auth_request",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "card.3ds_auth_request"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "card.3ds_auth_request"
                  },
                  "domain": {
                    "enum": [
                      "card"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "card"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "cardId": {
                        "type": "integer",
                        "description": "`data.cardId` parameter.",
                        "format": "int32",
                        "example": 555
                      },
                      "externalCardId": {
                        "type": "string",
                        "description": "`data.externalCardId` parameter.",
                        "example": "card_ext_123"
                      },
                      "merchantName": {
                        "type": "string",
                        "description": "`data.merchantName` parameter.",
                        "example": "Example Merchant"
                      },
                      "amount": {
                        "type": "number",
                        "description": "`data.amount` parameter.",
                        "format": "double",
                        "example": 42.5
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "EUR"
                      },
                      "transactionId": {
                        "type": "string",
                        "description": "`data.transactionId` parameter.",
                        "example": "txn_123"
                      },
                      "otp": {
                        "type": "string",
                        "description": "`data.otp` parameter.",
                        "example": "123456"
                      }
                    },
                    "description": "Event-specific payload for `card.3ds_auth_request`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "card.3ds_auth_request",
                "domain": "card",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "cardId": 555,
                  "externalCardId": "card_ext_123",
                  "merchantName": "Example Merchant",
                  "amount": 42.5,
                  "currency": "EUR",
                  "transactionId": "txn_123",
                  "otp": "123456"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/digitalwallet.token_transition": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "digitalwallet.token_transition",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money digital wallet token changes state.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-digitalwallet-token_transition",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "digitalwallet.token_transition"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "digitalwallet.token_transition"
                  },
                  "domain": {
                    "enum": [
                      "digitalwallet"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "digitalwallet"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "DigitalWalletTokenTransition"
                      },
                      "cardId": {
                        "type": "string",
                        "description": "`data.cardId` parameter.",
                        "example": "card_ext_123"
                      },
                      "tokenId": {
                        "type": "string",
                        "description": "`data.tokenId` parameter.",
                        "example": "token_123"
                      },
                      "walletType": {
                        "type": "string",
                        "description": "`data.walletType` parameter.",
                        "example": "APPLE_PAY"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "previousState": {
                        "type": "string",
                        "description": "`data.previousState` parameter.",
                        "example": "INACTIVE"
                      },
                      "currentState": {
                        "type": "string",
                        "description": "`data.currentState` parameter.",
                        "example": "ACTIVE"
                      }
                    },
                    "description": "Event-specific payload for `digitalwallet.token_transition`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "digitalwallet.token_transition",
                "domain": "digitalwallet",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "DigitalWalletTokenTransition",
                  "cardId": "card_ext_123",
                  "tokenId": "token_123",
                  "walletType": "APPLE_PAY",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "previousState": "INACTIVE",
                  "currentState": "ACTIVE"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/cardholder.status": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "cardholder.status",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent whenever a cardholder status update is processed.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-cardholder-status",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "cardholder.status"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "cardholder.status"
                  },
                  "domain": {
                    "enum": [
                      "cardholder"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "cardholder"
                  },
                  "provider": {
                    "enum": [
                      "bank"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "bank"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "Active"
                      }
                    },
                    "description": "Event-specific payload for `cardholder.status`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "cardholder.status",
                "domain": "cardholder",
                "provider": "bank",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "status": "Active"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/cardholder.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "cardholder.created",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a cardholder is created by the banking provider.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-cardholder-created",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "cardholder.created"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "cardholder.created"
                  },
                  "domain": {
                    "enum": [
                      "cardholder"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "cardholder"
                  },
                  "provider": {
                    "enum": [
                      "bank"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "bank"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "Active"
                      },
                      "cardholderId": {
                        "type": "string",
                        "description": "`data.cardholderId` parameter.",
                        "example": "cardholder_123"
                      }
                    },
                    "description": "Event-specific payload for `cardholder.created`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "cardholder.created",
                "domain": "cardholder",
                "provider": "bank",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "status": "Active",
                  "cardholderId": "cardholder_123"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/cardholder.approved": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "cardholder.approved",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a cardholder is approved by the banking provider.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-cardholder-approved",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "cardholder.approved"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "cardholder.approved"
                  },
                  "domain": {
                    "enum": [
                      "cardholder"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "cardholder"
                  },
                  "provider": {
                    "enum": [
                      "bank"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "bank"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "Active"
                      }
                    },
                    "description": "Event-specific payload for `cardholder.approved`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "cardholder.approved",
                "domain": "cardholder",
                "provider": "bank",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "status": "Active"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/cardholder.deleted": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "cardholder.deleted",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when a cardholder is deleted by the banking provider.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-cardholder-deleted",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "cardholder.deleted"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "cardholder.deleted"
                  },
                  "domain": {
                    "enum": [
                      "cardholder"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "cardholder"
                  },
                  "provider": {
                    "enum": [
                      "bank"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "bank"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "userId": {
                        "type": "integer",
                        "description": "`data.userId` parameter.",
                        "format": "int32",
                        "example": 12345
                      },
                      "cardholderId": {
                        "type": "string",
                        "description": "`data.cardholderId` parameter.",
                        "example": "cardholder_123"
                      }
                    },
                    "description": "Event-specific payload for `cardholder.deleted`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "cardholder.deleted",
                "domain": "cardholder",
                "provider": "bank",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "userId": 12345,
                  "cardholderId": "cardholder_123"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/person.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "person.created",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money associated person is created.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-person-created",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "person.created"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "person.created"
                  },
                  "domain": {
                    "enum": [
                      "person"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "person"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "PersonCreated"
                      },
                      "personId": {
                        "type": "string",
                        "description": "`data.personId` parameter.",
                        "example": "person_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "firstName": {
                        "type": "string",
                        "description": "`data.firstName` parameter.",
                        "example": "Jane"
                      },
                      "lastName": {
                        "type": "string",
                        "description": "`data.lastName` parameter.",
                        "example": "Doe"
                      },
                      "email": {
                        "type": "string",
                        "description": "`data.email` parameter.",
                        "example": "jane.doe@example.com"
                      }
                    },
                    "description": "Event-specific payload for `person.created`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "person.created",
                "domain": "person",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "PersonCreated",
                  "personId": "person_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "firstName": "Jane",
                  "lastName": "Doe",
                  "email": "jane.doe@example.com"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/kyc.update": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "kyc.update",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when Equals Money updates a user's KYC review status.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-kyc-update",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "kyc.update"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "kyc.update"
                  },
                  "domain": {
                    "enum": [
                      "kyc"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "kyc"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "KycUpdate"
                      },
                      "correlationId": {
                        "type": "string",
                        "description": "`data.correlationId` parameter.",
                        "example": "corr_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "PENDING_DOCUMENTS"
                      },
                      "personId": {
                        "type": "string",
                        "description": "`data.personId` parameter.",
                        "example": "person_123"
                      },
                      "requiredAction": {
                        "type": "string",
                        "description": "`data.requiredAction` parameter.",
                        "example": "upload_bank_statement"
                      },
                      "actionUrl": {
                        "type": "string",
                        "description": "`data.actionUrl` parameter.",
                        "example": "https://app.equalsmoney.com/kyc/upload"
                      }
                    },
                    "description": "Event-specific payload for `kyc.update`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "kyc.update",
                "domain": "kyc",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "KycUpdate",
                  "correlationId": "corr_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "status": "PENDING_DOCUMENTS",
                  "personId": "person_123",
                  "requiredAction": "upload_bank_statement",
                  "actionUrl": "https://app.equalsmoney.com/kyc/upload"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/kyc.information_request": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "kyc.information_request",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when Equals Money requests additional KYC documents.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-kyc-information_request",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "kyc.information_request"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "kyc.information_request"
                  },
                  "domain": {
                    "enum": [
                      "kyc"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "kyc"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "KycInformationRequest"
                      },
                      "correlationId": {
                        "type": "string",
                        "description": "`data.correlationId` parameter.",
                        "example": "corr_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "requiredDocuments": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "`data.requiredDocuments` parameter.",
                          "example": "proof_of_address"
                        },
                        "description": "`data.requiredDocuments` parameter.",
                        "example": [
                          "proof_of_address",
                          "source_of_funds"
                        ]
                      }
                    },
                    "description": "Event-specific payload for `kyc.information_request`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "kyc.information_request",
                "domain": "kyc",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "KycInformationRequest",
                  "correlationId": "corr_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "requiredDocuments": [
                    "proof_of_address",
                    "source_of_funds"
                  ]
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/recipient.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "recipient.created",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money recipient is created.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-recipient-created",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "recipient.created"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "recipient.created"
                  },
                  "domain": {
                    "enum": [
                      "recipient"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "recipient"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "RecipientCreated"
                      },
                      "recipientId": {
                        "type": "string",
                        "description": "`data.recipientId` parameter.",
                        "example": "recipient_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "name": {
                        "type": "string",
                        "description": "`data.name` parameter.",
                        "example": "Example Supplier Ltd"
                      }
                    },
                    "description": "Event-specific payload for `recipient.created`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "recipient.created",
                "domain": "recipient",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "RecipientCreated",
                  "recipientId": "recipient_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "name": "Example Supplier Ltd"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/recipient.deleted": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "recipient.deleted",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money recipient is deleted.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-recipient-deleted",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "recipient.deleted"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "recipient.deleted"
                  },
                  "domain": {
                    "enum": [
                      "recipient"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "recipient"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "RecipientDeleted"
                      },
                      "recipientId": {
                        "type": "string",
                        "description": "`data.recipientId` parameter.",
                        "example": "recipient_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      }
                    },
                    "description": "Event-specific payload for `recipient.deleted`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "recipient.deleted",
                "domain": "recipient",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "RecipientDeleted",
                  "recipientId": "recipient_123",
                  "eventTime": "2026-04-28T10:15:30Z"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/payment.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "payment.created",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money payment is created.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-payment-created",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "payment.created"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "payment.created"
                  },
                  "domain": {
                    "enum": [
                      "payment"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "payment"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "PaymentCreated"
                      },
                      "paymentId": {
                        "type": "string",
                        "description": "`data.paymentId` parameter.",
                        "example": "payment_123"
                      },
                      "batchId": {
                        "type": "string",
                        "description": "`data.batchId` parameter.",
                        "example": "batch_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "PROCESSING"
                      },
                      "amount": {
                        "type": "number",
                        "description": "`data.amount` parameter.",
                        "format": "double",
                        "example": 250
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "GBP"
                      },
                      "recipientId": {
                        "type": "string",
                        "description": "`data.recipientId` parameter.",
                        "example": "recipient_123"
                      },
                      "reference": {
                        "type": "string",
                        "description": "`data.reference` parameter.",
                        "example": "Invoice 123"
                      }
                    },
                    "description": "Event-specific payload for `payment.created`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "payment.created",
                "domain": "payment",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "PaymentCreated",
                  "paymentId": "payment_123",
                  "batchId": "batch_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "status": "PROCESSING",
                  "amount": 250,
                  "currency": "GBP",
                  "recipientId": "recipient_123",
                  "reference": "Invoice 123"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/payment.returned": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "payment.returned",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money payment is returned.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-payment-returned",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "payment.returned"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "payment.returned"
                  },
                  "domain": {
                    "enum": [
                      "payment"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "payment"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "PaymentReturned"
                      },
                      "paymentId": {
                        "type": "string",
                        "description": "`data.paymentId` parameter.",
                        "example": "payment_123"
                      },
                      "batchId": {
                        "type": "string",
                        "description": "`data.batchId` parameter.",
                        "example": "batch_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "RETURNED"
                      },
                      "returnReason": {
                        "type": "string",
                        "description": "`data.returnReason` parameter.",
                        "example": "Beneficiary account closed"
                      }
                    },
                    "description": "Event-specific payload for `payment.returned`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "payment.returned",
                "domain": "payment",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "PaymentReturned",
                  "paymentId": "payment_123",
                  "batchId": "batch_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "status": "RETURNED",
                  "returnReason": "Beneficiary account closed"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/fee.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "fee.created",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money fee is created.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-fee-created",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "fee.created"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "fee.created"
                  },
                  "domain": {
                    "enum": [
                      "fee"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "fee"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "FeeCreated"
                      },
                      "feeId": {
                        "type": "string",
                        "description": "`data.feeId` parameter.",
                        "example": "fee_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "feeType": {
                        "type": "string",
                        "description": "`data.feeType` parameter.",
                        "example": "payment_fee"
                      },
                      "amount": {
                        "type": "number",
                        "description": "`data.amount` parameter.",
                        "format": "double",
                        "example": 2.5
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "GBP"
                      }
                    },
                    "description": "Event-specific payload for `fee.created`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "fee.created",
                "domain": "fee",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "FeeCreated",
                  "feeId": "fee_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "feeType": "payment_fee",
                  "amount": 2.5,
                  "currency": "GBP"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/paymentbatch.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "paymentbatch.created",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money payment batch is created.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-paymentbatch-created",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "paymentbatch.created"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "paymentbatch.created"
                  },
                  "domain": {
                    "enum": [
                      "paymentbatch"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "paymentbatch"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "PaymentBatchCreated"
                      },
                      "batchId": {
                        "type": "string",
                        "description": "`data.batchId` parameter.",
                        "example": "batch_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "CREATED"
                      },
                      "totalAmount": {
                        "type": "number",
                        "description": "`data.totalAmount` parameter.",
                        "format": "double",
                        "example": 1500
                      },
                      "currency": {
                        "type": "string",
                        "description": "`data.currency` parameter.",
                        "example": "GBP"
                      },
                      "paymentCount": {
                        "type": "integer",
                        "description": "`data.paymentCount` parameter.",
                        "format": "int32",
                        "example": 3
                      }
                    },
                    "description": "Event-specific payload for `paymentbatch.created`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "paymentbatch.created",
                "domain": "paymentbatch",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "PaymentBatchCreated",
                  "batchId": "batch_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "status": "CREATED",
                  "totalAmount": 1500,
                  "currency": "GBP",
                  "paymentCount": 3
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/paymentbatch.cancelled": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "paymentbatch.cancelled",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money payment batch is cancelled.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-paymentbatch-cancelled",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "paymentbatch.cancelled"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "paymentbatch.cancelled"
                  },
                  "domain": {
                    "enum": [
                      "paymentbatch"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "paymentbatch"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "PaymentBatchCancelled"
                      },
                      "batchId": {
                        "type": "string",
                        "description": "`data.batchId` parameter.",
                        "example": "batch_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "CANCELLED"
                      }
                    },
                    "description": "Event-specific payload for `paymentbatch.cancelled`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "paymentbatch.cancelled",
                "domain": "paymentbatch",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "PaymentBatchCancelled",
                  "batchId": "batch_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "status": "CANCELLED"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/paymentbatch.validation_error": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "paymentbatch.validation_error",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money payment batch fails validation.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-paymentbatch-validation_error",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "paymentbatch.validation_error"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "paymentbatch.validation_error"
                  },
                  "domain": {
                    "enum": [
                      "paymentbatch"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "paymentbatch"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "PaymentBatchValidationError"
                      },
                      "batchId": {
                        "type": "string",
                        "description": "`data.batchId` parameter.",
                        "example": "batch_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "errors": {
                        "type": "array",
                        "items": {
                          "type": "string",
                          "description": "`data.errors` parameter.",
                          "example": "Recipient account number is invalid"
                        },
                        "description": "`data.errors` parameter.",
                        "example": [
                          "Recipient account number is invalid",
                          "Payment amount exceeds limit"
                        ]
                      }
                    },
                    "description": "Event-specific payload for `paymentbatch.validation_error`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "paymentbatch.validation_error",
                "domain": "paymentbatch",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "PaymentBatchValidationError",
                  "batchId": "batch_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "errors": [
                    "Recipient account number is invalid",
                    "Payment amount exceeds limit"
                  ]
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/paymentbatch.processing": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "paymentbatch.processing",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money payment batch enters processing.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-paymentbatch-processing",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "paymentbatch.processing"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "paymentbatch.processing"
                  },
                  "domain": {
                    "enum": [
                      "paymentbatch"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "paymentbatch"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "PaymentBatchProcessing"
                      },
                      "batchId": {
                        "type": "string",
                        "description": "`data.batchId` parameter.",
                        "example": "batch_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "PROCESSING"
                      }
                    },
                    "description": "Event-specific payload for `paymentbatch.processing`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "paymentbatch.processing",
                "domain": "paymentbatch",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "PaymentBatchProcessing",
                  "batchId": "batch_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "status": "PROCESSING"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/paymentbatch.completed": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "paymentbatch.completed",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money payment batch completes.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-paymentbatch-completed",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "paymentbatch.completed"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "paymentbatch.completed"
                  },
                  "domain": {
                    "enum": [
                      "paymentbatch"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "paymentbatch"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "PaymentBatchCompleted"
                      },
                      "batchId": {
                        "type": "string",
                        "description": "`data.batchId` parameter.",
                        "example": "batch_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "COMPLETED"
                      },
                      "successCount": {
                        "type": "integer",
                        "description": "`data.successCount` parameter.",
                        "format": "int32",
                        "example": 2
                      },
                      "failureCount": {
                        "type": "integer",
                        "description": "`data.failureCount` parameter.",
                        "format": "int32",
                        "example": 1
                      }
                    },
                    "description": "Event-specific payload for `paymentbatch.completed`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "paymentbatch.completed",
                "domain": "paymentbatch",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "PaymentBatchCompleted",
                  "batchId": "batch_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "status": "COMPLETED",
                  "successCount": 2,
                  "failureCount": 1
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/paymentbatchorder.created": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "paymentbatchorder.created",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money payment batch FX order is created.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-paymentbatchorder-created",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "paymentbatchorder.created"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "paymentbatchorder.created"
                  },
                  "domain": {
                    "enum": [
                      "paymentbatchorder"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "paymentbatchorder"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "PaymentBatchOrderCreated"
                      },
                      "orderId": {
                        "type": "string",
                        "description": "`data.orderId` parameter.",
                        "example": "order_123"
                      },
                      "batchId": {
                        "type": "string",
                        "description": "`data.batchId` parameter.",
                        "example": "batch_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "CREATED"
                      }
                    },
                    "description": "Event-specific payload for `paymentbatchorder.created`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "paymentbatchorder.created",
                "domain": "paymentbatchorder",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "PaymentBatchOrderCreated",
                  "orderId": "order_123",
                  "batchId": "batch_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "status": "CREATED"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/paymentbatchorder.completed": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "paymentbatchorder.completed",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money payment batch FX order completes.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-paymentbatchorder-completed",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "paymentbatchorder.completed"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "paymentbatchorder.completed"
                  },
                  "domain": {
                    "enum": [
                      "paymentbatchorder"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "paymentbatchorder"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "PaymentBatchOrderCompleted"
                      },
                      "orderId": {
                        "type": "string",
                        "description": "`data.orderId` parameter.",
                        "example": "order_123"
                      },
                      "batchId": {
                        "type": "string",
                        "description": "`data.batchId` parameter.",
                        "example": "batch_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "COMPLETED"
                      }
                    },
                    "description": "Event-specific payload for `paymentbatchorder.completed`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "paymentbatchorder.completed",
                "domain": "paymentbatchorder",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "PaymentBatchOrderCompleted",
                  "orderId": "order_123",
                  "batchId": "batch_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "status": "COMPLETED"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    },
    "/webhooks/outbound/paymentbatchorder.cancelled": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "paymentbatchorder.cancelled",
        "description": "This operation documents an outbound webhook request that CryptoCard Platform sends to your configured webhook URL.\n\nSent when an Equals Money payment batch FX order is cancelled.\n\nConfigure the destination URL and webhook secret on the company configuration. We send an HTTP `POST` with `Content-Type: application/json` and `X-Hoppacard-Signature`.\nThe signature is a lowercase hex HMAC-SHA256 digest of the exact request body, using your webhook secret as the key.\nReturn any 2xx status code to acknowledge the webhook.",
        "operationId": "outbound-webhook-paymentbatchorder-cancelled",
        "parameters": [
          {
            "name": "X-Hoppacard-Signature",
            "in": "header",
            "description": "Lowercase hex HMAC-SHA256 signature of the raw request body, generated with your webhook secret.",
            "required": true,
            "schema": {
              "type": "string",
              "example": "c1f6d6d2e8b9f1f13b0f7a2b8cc8d4f44aa50ef0997b0c0e86f8f4f6112e3c6a"
            }
          }
        ],
        "requestBody": {
          "description": "Webhook request body sent to your configured URL.",
          "content": {
            "application/json": {
              "schema": {
                "required": [
                  "id",
                  "type",
                  "domain",
                  "provider",
                  "timestamp",
                  "data"
                ],
                "type": "object",
                "properties": {
                  "id": {
                    "type": "string",
                    "description": "Unique webhook event id.",
                    "example": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                  },
                  "type": {
                    "enum": [
                      "paymentbatchorder.cancelled"
                    ],
                    "type": "string",
                    "description": "Webhook event type.",
                    "example": "paymentbatchorder.cancelled"
                  },
                  "domain": {
                    "enum": [
                      "paymentbatchorder"
                    ],
                    "type": "string",
                    "description": "Business domain for the event.",
                    "example": "paymentbatchorder"
                  },
                  "provider": {
                    "enum": [
                      "equalsmoney"
                    ],
                    "type": "string",
                    "description": "Provider that originated the event.",
                    "example": "equalsmoney"
                  },
                  "timestamp": {
                    "type": "string",
                    "description": "UTC time when the webhook was created.",
                    "format": "date-time",
                    "example": "2026-04-28T10:15:30Z"
                  },
                  "data": {
                    "type": "object",
                    "properties": {
                      "accountId": {
                        "type": "string",
                        "description": "`data.accountId` parameter.",
                        "example": "acc_eq_123"
                      },
                      "messageId": {
                        "type": "string",
                        "description": "`data.messageId` parameter.",
                        "example": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6"
                      },
                      "webhookEventTypeName": {
                        "type": "string",
                        "description": "`data.webhookEventTypeName` parameter.",
                        "example": "PaymentBatchOrderCancelled"
                      },
                      "orderId": {
                        "type": "string",
                        "description": "`data.orderId` parameter.",
                        "example": "order_123"
                      },
                      "batchId": {
                        "type": "string",
                        "description": "`data.batchId` parameter.",
                        "example": "batch_123"
                      },
                      "eventTime": {
                        "type": "string",
                        "description": "`data.eventTime` parameter.",
                        "example": "2026-04-28T10:15:30Z"
                      },
                      "status": {
                        "type": "string",
                        "description": "`data.status` parameter.",
                        "example": "CANCELLED"
                      }
                    },
                    "description": "Event-specific payload for `paymentbatchorder.cancelled`."
                  }
                }
              },
              "example": {
                "id": "evt_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                "type": "paymentbatchorder.cancelled",
                "domain": "paymentbatchorder",
                "provider": "equalsmoney",
                "timestamp": "2026-04-28T10:15:30Z",
                "data": {
                  "accountId": "acc_eq_123",
                  "messageId": "msg_01HX7B7MZ4Q4Y9R1H2J3K4L5M6",
                  "webhookEventTypeName": "PaymentBatchOrderCancelled",
                  "orderId": "order_123",
                  "batchId": "batch_123",
                  "eventTime": "2026-04-28T10:15:30Z",
                  "status": "CANCELLED"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "Return any 2xx response to acknowledge receipt."
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AccountStatusV2": {
        "enum": [
          "PENDING",
          "ACTIVE",
          "SUSPENDED",
          "BLOCKED",
          "DELETED"
        ]
      },
      "Address": {
        "type": "object",
        "properties": {
          "Line1": {
            "type": "string",
            "nullable": true
          },
          "Line2": {
            "type": "string",
            "nullable": true
          },
          "City": {
            "type": "string",
            "nullable": true
          },
          "State": {
            "type": "string",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "nullable": true
          },
          "PostalCode": {
            "type": "string",
            "nullable": true
          }
        },
        "nullable": true
      },
      "AddressRequest": {
        "required": [
          "AddressType",
          "StreetName",
          "Postcode",
          "City",
          "CountryCode"
        ],
        "type": "object",
        "properties": {
          "AddressType": {
            "enum": [
              "REGISTERED",
              "TRADING"
            ],
            "type": "string",
            "description": "Possible values: REGISTERED, TRADING."
          },
          "StreetName": {
            "type": "string"
          },
          "BuildingNumber": {
            "type": "string",
            "nullable": true
          },
          "BuildingName": {
            "type": "string",
            "nullable": true
          },
          "Postcode": {
            "type": "string"
          },
          "City": {
            "type": "string"
          },
          "Region": {
            "type": "string",
            "nullable": true
          },
          "CountryCode": {
            "enum": [
              "AD",
              "AE",
              "AF",
              "AG",
              "AI",
              "AL",
              "AM",
              "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"
            ],
            "type": "string",
            "description": "Possible values: AD, AE, AF, AG, AI, AL, AM, 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."
          }
        }
      },
      "AmountInfo": {
        "type": "object",
        "properties": {
          "Amount": {
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "type": "string"
          }
        }
      },
      "AppliedRuleResponse": {
        "type": "object",
        "properties": {
          "RuleId": {
            "type": "integer",
            "format": "int32"
          },
          "RuleName": {
            "type": "string"
          },
          "RuleType": {
            "type": "string"
          },
          "PointsPerUnit": {
            "type": "number",
            "format": "double"
          },
          "Multiplier": {
            "type": "number",
            "format": "double"
          },
          "PointsEarned": {
            "type": "integer",
            "format": "int32"
          },
          "Priority": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "AssetBalance": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Currency": {
            "type": "string"
          },
          "Balance": {
            "type": "string"
          },
          "AvailableBalance": {
            "type": "string",
            "nullable": true
          },
          "FrozenBalance": {
            "type": "string",
            "nullable": true
          },
          "PendingBalance": {
            "type": "string",
            "nullable": true
          },
          "Network": {
            "type": "string",
            "nullable": true
          },
          "AssetType": {
            "type": "string",
            "nullable": true
          },
          "BalanceType": {
            "type": "string",
            "nullable": true
          },
          "BalanceId": {
            "type": "string",
            "nullable": true
          },
          "CreatedAt": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "AssignmentSourceStatsResponse": {
        "type": "object",
        "properties": {
          "Source": {
            "type": "string"
          },
          "TransactionCount": {
            "type": "integer",
            "format": "int32"
          },
          "TotalPoints": {
            "type": "integer",
            "format": "int32"
          },
          "Percentage": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "AssociatedPersonLinkRequest": {
        "required": [
          "AssociatedPersonId",
          "AssociationType"
        ],
        "type": "object",
        "properties": {
          "AssociatedPersonId": {
            "type": "string"
          },
          "AssociationType": {
            "enum": [
              "APPLICANT",
              "DIRECTOR",
              "ULTIMATE_BENEFICIAL_OWNER"
            ],
            "type": "string",
            "description": "Possible values: APPLICANT, DIRECTOR, ULTIMATE_BENEFICIAL_OWNER."
          },
          "JobTitle": {
            "type": "string",
            "description": "Required when AssociationType is APPLICANT.",
            "nullable": true
          },
          "OwnershipPercentage": {
            "type": "integer",
            "description": "Required when AssociationType is ULTIMATE_BENEFICIAL_OWNER. Allowed range: 0-100.",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "AuthenticateRequest": {
        "required": [
          "Username",
          "Password"
        ],
        "type": "object",
        "properties": {
          "Username": {
            "type": "string"
          },
          "Password": {
            "type": "string"
          }
        }
      },
      "AuthenticateResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Username": {
            "type": "string"
          },
          "Email": {
            "type": "string"
          },
          "Firstname": {
            "type": "string"
          },
          "Lastname": {
            "type": "string"
          },
          "AccessToken": {
            "type": "string"
          },
          "RefreshToken": {
            "type": "string"
          }
        }
      },
      "AvailableWithdrawalBalanceResponse": {
        "type": "object",
        "properties": {
          "TotalAvailableUSDT": {
            "type": "number",
            "format": "double"
          },
          "TotalAvailableUSDC": {
            "type": "number",
            "format": "double"
          },
          "WalletBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WalletBalance"
            }
          },
          "ExchangeRateUSDToUSDT": {
            "type": "number",
            "format": "double"
          },
          "ExchangeRateUSDToUSDC": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "AvailableWithdrawalBalanceResponse2": {
        "type": "object",
        "properties": {
          "TotalAvailableUSDT": {
            "type": "number",
            "format": "double"
          },
          "TotalAvailableUSDC": {
            "type": "number",
            "format": "double"
          },
          "WalletBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/WalletBalance"
            }
          },
          "ExchangeRateUSDToUSDT": {
            "type": "number",
            "format": "double"
          },
          "ExchangeRateUSDToUSDC": {
            "type": "number",
            "format": "double"
          }
        },
        "nullable": true
      },
      "BankProvider": {
        "enum": [
          "Interlace",
          "EqualsMoney"
        ]
      },
      "BoomFiOtcTradeRequestResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Status": {
            "type": "string"
          },
          "BoomFiVirtualAccountId": {
            "type": "string"
          },
          "CryptoCurrency": {
            "type": "string"
          },
          "CryptoAmount": {
            "type": "string"
          },
          "ChainId": {
            "type": "integer",
            "format": "int32"
          },
          "FiatCurrency": {
            "type": "string"
          },
          "SettlementIban": {
            "type": "string"
          },
          "SettlementAccountId": {
            "type": "string"
          },
          "SlackChannelId": {
            "type": "string",
            "nullable": true
          },
          "SlackThreadTs": {
            "type": "string",
            "nullable": true
          },
          "SlackPermalink": {
            "type": "string",
            "nullable": true
          },
          "CompletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "CompletionMessage": {
            "type": "string",
            "nullable": true
          }
        },
        "nullable": true
      },
      "BoomFiRampQuoteData": {
        "type": "object",
        "properties": {
          "buy_currency": {
            "type": "string",
            "nullable": true
          },
          "buy_amount": {
            "type": "string",
            "nullable": true
          },
          "sell_currency": {
            "type": "string",
            "nullable": true
          },
          "sell_amount": {
            "type": "string",
            "nullable": true
          },
          "payment_method": {
            "type": "string",
            "nullable": true
          },
          "quote_time": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "expiry": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "rate": {
            "type": "string",
            "nullable": true
          },
          "fees": {
            "$ref": "#/components/schemas/BoomFiRampQuoteFees"
          },
          "quote_amount": {
            "type": "string",
            "nullable": true
          },
          "settlement_ccy": {
            "type": "string",
            "nullable": true
          },
          "settlement_chain_id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "settlement_token_address": {
            "type": "string",
            "nullable": true
          },
          "session": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "BoomFiRampQuoteFees": {
        "type": "object",
        "properties": {
          "fee_ccy": {
            "type": "string",
            "nullable": true
          },
          "network_fee": {
            "type": "string",
            "nullable": true
          },
          "boomfi_fee": {
            "type": "string",
            "nullable": true
          },
          "total_fee": {
            "type": "string",
            "nullable": true
          }
        },
        "nullable": true
      },
      "BoomFiVirtualAccountData": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer",
            "format": "int64"
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "chain_id": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "currencies": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "enabled": {
            "type": "boolean",
            "nullable": true
          },
          "created_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "nullable": true
      },
      "BulkProcessingResponse": {
        "type": "object",
        "properties": {
          "TotalTransactions": {
            "type": "integer",
            "format": "int32"
          },
          "SuccessfulTransactions": {
            "type": "integer",
            "format": "int32"
          },
          "FailedTransactions": {
            "type": "integer",
            "format": "int32"
          },
          "TotalPointsAwarded": {
            "type": "integer",
            "format": "int32"
          },
          "OverallSuccess": {
            "type": "boolean"
          },
          "ProcessingTimeMs": {
            "type": "integer",
            "format": "int64"
          },
          "ProcessingTime": {
            "pattern": "^-?(\\d+\\.)?\\d{2}:\\d{2}:\\d{2}(\\.\\d{1,7})?$",
            "type": "string"
          },
          "Errors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "SuccessfulResults": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BulkTransactionSuccessResult"
            }
          },
          "Results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BulkTransactionResult"
            }
          },
          "ProcessedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "BulkProcessTransactionsRequest": {
        "required": [
          "Transactions"
        ],
        "type": "object",
        "properties": {
          "Transactions": {
            "maxItems": 1000,
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BulkTransactionRequest"
            }
          },
          "Source": {
            "maxLength": 100,
            "type": "string"
          },
          "ContinueOnError": {
            "type": "boolean"
          }
        }
      },
      "BulkTransactionRequest": {
        "required": [
          "UserId",
          "TransactionId",
          "TransactionAmount",
          "Currency"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "TransactionId": {
            "maxLength": 255,
            "type": "string"
          },
          "TransactionAmount": {
            "maximum": 999999.99,
            "minimum": 0.01,
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "maxLength": 3,
            "type": "string"
          },
          "MerchantName": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "MerchantCategory": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "MerchantId": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "UserTier": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "Source": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "TransactionTimestamp": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Metadata": { }
        }
      },
      "BulkTransactionResult": {
        "type": "object",
        "properties": {
          "TransactionId": {
            "type": "string"
          },
          "Success": {
            "type": "boolean"
          },
          "PointsEarned": {
            "type": "integer",
            "format": "int32"
          },
          "PointsAwarded": {
            "type": "integer",
            "format": "int32"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "Transaction": {
            "$ref": "#/components/schemas/PointTransactionResponse2"
          }
        }
      },
      "BulkTransactionSuccessResult": {
        "type": "object",
        "properties": {
          "TransactionId": {
            "type": "string"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "PointsEarned": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "CalculationBreakdownResponse": {
        "type": "object",
        "properties": {
          "BasePoints": {
            "type": "number",
            "format": "double"
          },
          "BonusPoints": {
            "type": "number",
            "format": "double"
          },
          "MultiplierBonus": {
            "type": "number",
            "format": "double"
          },
          "AppliedConditions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "CardActivateResponseV2": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Message": {
            "type": "string"
          }
        }
      },
      "CardAutoLockRequestV2": {
        "type": "object",
        "properties": {
          "Enabled": {
            "type": "boolean"
          }
        }
      },
      "CardAutoLockResponseV2": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Message": {
            "type": "string"
          },
          "AutoLockEnabled": {
            "type": "boolean"
          },
          "AutoLockActiveUntil": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "CardBalanceAfterUnload": {
        "type": "object",
        "properties": {
          "AvailableBalance": {
            "type": "number",
            "format": "double"
          },
          "PendingBalance": {
            "type": "number",
            "format": "double"
          },
          "TotalBalance": {
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "type": "string"
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CardBalanceV2": {
        "type": "object",
        "properties": {
          "Available": {
            "type": "string"
          },
          "Pending": {
            "type": "string"
          },
          "Frozen": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          }
        }
      },
      "CardBulkShipResponseV2": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "CardId": {
            "type": "integer",
            "format": "int32"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "ExternalCardId": {
            "type": "string",
            "nullable": true
          },
          "ShipmentExecuted": {
            "type": "boolean"
          },
          "Fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardPhysicalShipmentFeeV2"
            }
          },
          "FeeZone": {
            "type": "string",
            "nullable": true
          },
          "FeeBinId": {
            "type": "string",
            "nullable": true
          },
          "CustomerPaysForProduction": {
            "type": "boolean"
          },
          "CustomerPaysForShippment": {
            "type": "boolean"
          },
          "CustomerProductionAmount": {
            "type": "string",
            "nullable": true
          },
          "CustomerShippingAmount": {
            "type": "string",
            "nullable": true
          },
          "RequiredAmount": {
            "type": "string",
            "nullable": true
          },
          "AvailableAmount": {
            "type": "string",
            "nullable": true
          },
          "Shortfall": {
            "type": "string",
            "nullable": true
          },
          "CardUnloadAttempted": {
            "type": "boolean"
          },
          "CardUnloadSucceeded": {
            "type": "boolean"
          },
          "CardUnloadAmount": {
            "type": "string",
            "nullable": true
          },
          "TaskId": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "ErrorCode": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CardCreateV2": {
        "required": [
          "UserId"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "CardTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "ExternalCardId": {
            "type": "string"
          },
          "Nickname": {
            "type": "string",
            "nullable": true
          },
          "Currency": {
            "type": "string",
            "nullable": true
          },
          "CardName": {
            "type": "string",
            "nullable": true
          },
          "BudgetId": {
            "type": "string",
            "nullable": true
          },
          "BillingAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "DeliveryAddress": {
            "$ref": "#/components/schemas/Address"
          },
          "Phone": {
            "type": "string",
            "nullable": true
          },
          "PhoneCode": {
            "type": "string",
            "nullable": true
          },
          "DesignId": {
            "type": "string",
            "nullable": true
          },
          "PhysicalCardDesignId": {
            "type": "string",
            "nullable": true
          },
          "DiscountCode": {
            "type": "string",
            "nullable": true
          },
          "AutoLockEnabled": {
            "type": "boolean"
          }
        }
      },
      "CardDeleteResponseV2": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Message": {
            "type": "string"
          }
        }
      },
      "CardDetailsResponseV2": {
        "type": "object",
        "properties": {
          "CardNo": {
            "type": "string"
          },
          "CVV": {
            "type": "string"
          },
          "ExpYear": {
            "type": "string"
          },
          "ExpMonth": {
            "type": "string"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "ExternalCardId": {
            "type": "string",
            "nullable": true
          },
          "Nickname": {
            "type": "string",
            "nullable": true
          },
          "CardType": {
            "type": "string"
          },
          "CardNumber": {
            "type": "string"
          },
          "ExpiryDate": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/CardStatusV2"
          },
          "Balance": {
            "$ref": "#/components/schemas/CardBalanceV2"
          },
          "Currency": {
            "type": "string"
          },
          "VelocityControl": {
            "$ref": "#/components/schemas/VelocityControlV2"
          },
          "CardTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "CardTypeTierId": {
            "type": "integer",
            "format": "int32"
          },
          "TierId": {
            "type": "integer",
            "format": "int32"
          },
          "AutoLockEnabled": {
            "type": "boolean"
          },
          "AutoLockActiveUntil": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "TransakOrder": {
            "type": "string",
            "nullable": true
          },
          "RequiredAmount": {
            "type": "string",
            "nullable": true
          },
          "AvailableAmount": {
            "type": "string",
            "nullable": true
          },
          "Shortfall": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InterLaceCheck"
            },
            "nullable": true
          }
        }
      },
      "CardEnableResponseV2": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Message": {
            "type": "string"
          },
          "AutoLockActiveUntil": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "CardFreezeResponseV2": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Message": {
            "type": "string"
          }
        }
      },
      "CardHolderResponseV2": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "CompanyId": {
            "type": "integer",
            "format": "int32"
          },
          "AccountId": {
            "type": "string"
          },
          "CardHolderId": {
            "type": "string"
          },
          "BinRangeId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "CardHolderStatus": {
            "type": "string"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CardListResponseV2": {
        "type": "object",
        "properties": {
          "Cards": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardResponseV2"
            }
          },
          "Total": {
            "type": "integer",
            "format": "int32"
          },
          "PageTotal": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "CardPhysicalCardFeesResponseV2": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "AccountId": {
            "type": "string",
            "nullable": true
          },
          "BinId": {
            "type": "string",
            "nullable": true
          },
          "ExternalBinId": {
            "type": "string",
            "nullable": true
          },
          "Zone": {
            "type": "string",
            "nullable": true
          },
          "Fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardPhysicalShipmentFeeV2"
            }
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "ErrorCode": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CardPhysicalShipmentFeeV2": {
        "type": "object",
        "properties": {
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "FeeType": {
            "type": "string"
          },
          "FeeTypeLabel": {
            "type": "string"
          }
        }
      },
      "CardResponseV2": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "ExternalCardId": {
            "type": "string",
            "nullable": true
          },
          "Nickname": {
            "type": "string",
            "nullable": true
          },
          "CardType": {
            "type": "string"
          },
          "CardNumber": {
            "type": "string"
          },
          "ExpiryDate": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/CardStatusV2"
          },
          "Balance": {
            "$ref": "#/components/schemas/CardBalanceV2"
          },
          "Currency": {
            "type": "string"
          },
          "VelocityControl": {
            "$ref": "#/components/schemas/VelocityControlV2"
          },
          "CreatedAt": {
            "type": "string"
          },
          "UpdatedAt": {
            "type": "string"
          },
          "CardTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "CardTypeTierId": {
            "type": "integer",
            "format": "int32"
          },
          "TierId": {
            "type": "integer",
            "format": "int32"
          },
          "AutoLockEnabled": {
            "type": "boolean"
          },
          "AutoLockActiveUntil": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "TransakOrder": {
            "type": "string",
            "nullable": true
          },
          "RequiredAmount": {
            "type": "string",
            "nullable": true
          },
          "AvailableAmount": {
            "type": "string",
            "nullable": true
          },
          "Shortfall": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Errors": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InterLaceCheck"
            },
            "nullable": true
          }
        }
      },
      "CardsInformationRequest": {
        "type": "object",
        "properties": {
          "BusinessDisplayName": {
            "type": "string",
            "nullable": true
          },
          "Purposes": {
            "type": "array",
            "items": {
              "enum": [
                "ADVERTISING_AND_MARKETING",
                "BILLS_AND_UTILITIES",
                "CLIENT_ENTERTAINMENT",
                "CUSTOMER_INCENTIVES",
                "EMPLOYEE_INCENTIVES",
                "FUEL_AND_MILEAGE_DOMESTIC",
                "FUEL_AND_MILEAGE_OVERSEAS",
                "LOCATION_EXPENSES_FILM_TV",
                "OFFICE_EQUIPMENT",
                "ONLINE_SUBSCRIPTIONS",
                "PAYMENT_TERMINAL_TESTING",
                "PAYROLL",
                "PER_DIEMS",
                "PETTY_CASH",
                "PROCUREMENT_PURCHASING",
                "PROCUREMENT_SOURCING",
                "TRAVEL_EXPENSES_DOMESTIC",
                "TRAVEL_EXPENSES_OVERSEAS"
              ],
              "type": "string"
            },
            "description": "Possible values: ADVERTISING_AND_MARKETING, BILLS_AND_UTILITIES, CLIENT_ENTERTAINMENT, CUSTOMER_INCENTIVES, EMPLOYEE_INCENTIVES, FUEL_AND_MILEAGE_DOMESTIC, FUEL_AND_MILEAGE_OVERSEAS, LOCATION_EXPENSES_FILM_TV, OFFICE_EQUIPMENT, ONLINE_SUBSCRIPTIONS, PAYMENT_TERMINAL_TESTING, PAYROLL, PER_DIEMS, PETTY_CASH, PROCUREMENT_PURCHASING, PROCUREMENT_SOURCING, TRAVEL_EXPENSES_DOMESTIC, TRAVEL_EXPENSES_OVERSEAS."
          },
          "EstimatedAnnualSpend": {
            "enum": [
              "0-10000",
              "10001-50000",
              "50001-100000",
              "100001-250000",
              "250001-1000000",
              "1000001-5000000",
              "5000000+"
            ],
            "type": "string",
            "description": "Possible values: 0-10000, 10001-50000, 50001-100000, 100001-250000, 250001-1000000, 1000001-5000000, 5000000+."
          },
          "NumberOfCardsRequired": {
            "enum": [
              "0-10",
              "11-50",
              "51-100",
              "101+"
            ],
            "type": "string",
            "description": "Possible values: 0-10, 11-50, 51-100, 101+."
          },
          "CardsAreForEmployees": {
            "type": "boolean",
            "nullable": true
          },
          "AtmWithdrawalsRequired": {
            "type": "boolean"
          }
        },
        "nullable": true
      },
      "CardStatusV2": {
        "enum": [
          "PENDING",
          "UNACTIVATED",
          "ACTIVE",
          "SUSPENDED",
          "BLOCKED",
          "FROZEN",
          "EXPIRED",
          "CANCELLED",
          "PAYMENT_REQUIRED",
          "FAILED",
          "SHIPMENTPENDING",
          "SHIPPED"
        ]
      },
      "CardTransactionsResponseV2": {
        "type": "object",
        "properties": {
          "Transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardTransactionV2"
            }
          },
          "Total": {
            "type": "integer",
            "format": "int32"
          },
          "PageTotal": {
            "type": "integer",
            "format": "int32"
          },
          "CurrentPage": {
            "type": "integer",
            "format": "int32"
          },
          "HasMorePages": {
            "type": "boolean"
          }
        }
      },
      "CardTransactionV2": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string"
          },
          "AccountId": {
            "type": "string"
          },
          "CardId": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "Amount": {
            "type": "number",
            "format": "double"
          },
          "Fee": {
            "type": "number",
            "format": "double"
          },
          "Type": {
            "type": "string"
          },
          "ClientTransactionId": {
            "type": "string",
            "nullable": true
          },
          "Remark": {
            "type": "string",
            "nullable": true
          },
          "Detail": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "type": "string"
          },
          "TransactionTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "TransactionCurrency": {
            "type": "string",
            "nullable": true
          },
          "TransactionAmount": {
            "type": "number",
            "format": "double"
          },
          "MerchantName": {
            "type": "string",
            "nullable": true
          },
          "Mcc": {
            "type": "string",
            "nullable": true
          },
          "MccCategory": {
            "type": "string",
            "nullable": true
          },
          "MerchantCity": {
            "type": "string",
            "nullable": true
          },
          "MerchantCountry": {
            "type": "string",
            "nullable": true
          },
          "MerchantState": {
            "type": "string",
            "nullable": true
          },
          "MerchantZipcode": {
            "type": "string",
            "nullable": true
          },
          "MerchantMid": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CardTypeInfo": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          },
          "Type": {
            "type": "string"
          },
          "Price": {
            "type": "number",
            "format": "double"
          },
          "IsVirtual": {
            "type": "boolean"
          },
          "IsPhysical": {
            "type": "boolean"
          },
          "IsActive": {
            "type": "boolean"
          },
          "MonthlyFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "YearlyFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "BankProviderType": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "CustomerPaysForProduction": {
            "type": "boolean"
          },
          "CustomerPaysForShippment": {
            "type": "boolean"
          }
        }
      },
      "CardTypeTierV2": {
        "type": "object",
        "properties": {
          "CardTypeSecondaryId": {
            "type": "integer",
            "format": "int32"
          },
          "CardTypeId": {
            "type": "integer",
            "format": "int32"
          },
          "TierId": {
            "type": "integer",
            "format": "int32"
          },
          "BinRangeOverrideId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "EffectiveBinRangeId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "FreeCardsIncluded": {
            "type": "integer",
            "format": "int32"
          },
          "FreeCardsPeriod": {
            "type": "string"
          },
          "MonthlySubscriptionFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "YearlySubscriptionFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MaxCards": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "CardType": {
            "$ref": "#/components/schemas/CardTypeV2"
          }
        }
      },
      "CardTypeV2": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          },
          "Code": {
            "type": "string"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "Features": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "MonthlyFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "IssuanceFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "CurrencyCode": {
            "type": "string"
          },
          "Limits": { },
          "Benefits": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "AvailableDesigns": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "IssuanceTime": {
            "type": "string",
            "nullable": true
          },
          "IsEnabled": {
            "type": "boolean"
          },
          "CompanyId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "RequiresKycLevel": {
            "type": "string",
            "nullable": true
          },
          "MonthlySubscriptionFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "YearlySubscriptionFee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "SubscriptionFeatures": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "BaseFeatures": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "LoadOptions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "ReplacementFee": {
            "type": "number",
            "format": "double"
          },
          "AtmWithdrawalFee": {
            "type": "number",
            "format": "double"
          },
          "IsVirtual": {
            "type": "boolean"
          },
          "IsPhysical": {
            "type": "boolean"
          },
          "CardNetwork": {
            "type": "string",
            "nullable": true
          },
          "Provider": {
            "type": "string"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "CardUnloadRequest": {
        "type": "object",
        "properties": {
          "CardId": {
            "type": "integer",
            "format": "int32"
          },
          "Currency": {
            "type": "string"
          },
          "Value": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "CardUnloadResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "CardId": {
            "type": "integer",
            "format": "int32"
          },
          "ExternalCardId": {
            "type": "string",
            "nullable": true
          },
          "RequestedAmount": {
            "type": "number",
            "format": "double"
          },
          "ActualAmount": {
            "type": "number",
            "format": "double"
          },
          "Fee": {
            "type": "number",
            "format": "double"
          },
          "NetAmount": {
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "type": "string"
          },
          "Status": {
            "type": "string"
          },
          "TransactionId": {
            "type": "string",
            "nullable": true
          },
          "ExternalTransactionId": {
            "type": "string",
            "nullable": true
          },
          "RequestedAt": {
            "type": "string",
            "format": "date-time"
          },
          "ProcessedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "CompletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Destination": {
            "$ref": "#/components/schemas/UnloadDestination"
          },
          "BalanceAfter": {
            "$ref": "#/components/schemas/CardBalanceAfterUnload"
          },
          "ErrorCode": {
            "type": "string",
            "nullable": true
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Audit": {
            "$ref": "#/components/schemas/UnloadAudit"
          }
        }
      },
      "CardUpdateLimitsRequestV2": {
        "type": "object",
        "properties": {
          "Daily": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Weekly": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Monthly": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        }
      },
      "CardUpdateLimitsResponseV2": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Message": {
            "type": "string"
          },
          "Daily": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Weekly": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Monthly": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        }
      },
      "CardUpdatePinRequestV2": {
        "required": [
          "Pin"
        ],
        "type": "object",
        "properties": {
          "Pin": {
            "maxLength": 6,
            "minLength": 6,
            "type": "string"
          }
        }
      },
      "CardUpdatePinResponseV2": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Message": {
            "type": "string"
          }
        }
      },
      "CardWidgetResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "WidgetUrl": {
            "type": "string"
          },
          "WidgetToken": {
            "type": "string"
          },
          "ExpiresIn": {
            "type": "integer",
            "format": "int32"
          },
          "ErrorCode": {
            "type": "string",
            "nullable": true
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "CardId": {
            "type": "integer",
            "format": "int32"
          },
          "Config": {
            "$ref": "#/components/schemas/WidgetConfig"
          }
        }
      },
      "CheckPayoutRequest": {
        "required": [
          "PayeeId",
          "QuotationId",
          "Amount",
          "Currency"
        ],
        "type": "object",
        "properties": {
          "PayeeId": {
            "type": "integer",
            "description": "Local payee ID from GET /api/v2/banking/payees.",
            "format": "int32"
          },
          "QuotationId": {
            "type": "string",
            "description": "Quotation Id returned by POST /api/v2/banking/quotations."
          },
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "BalanceId": {
            "type": "string",
            "description": "Optional provider balance or Equals Money budget ID used as funding source.",
            "nullable": true
          },
          "Memo": {
            "type": "string",
            "nullable": true
          },
          "Reason": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CheckPayoutResponse": {
        "type": "object",
        "properties": {
          "CheckId": {
            "type": "string"
          },
          "Pass": {
            "type": "boolean"
          },
          "DetailMessage": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CompanyTierV2": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "TierLevel": {
            "type": "integer",
            "format": "int32"
          },
          "AccountType": {
            "type": "string"
          },
          "MonthlyFee": {
            "type": "number",
            "format": "double"
          },
          "YearlyFee": {
            "type": "number",
            "format": "double"
          },
          "Features": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "Limits": { },
          "IsDefault": {
            "type": "boolean"
          },
          "IsActive": {
            "type": "boolean"
          },
          "EuPriceTableId": {
            "type": "string",
            "nullable": true
          },
          "UkPriceTableId": {
            "type": "string",
            "nullable": true
          },
          "UsPriceTableId": {
            "type": "string",
            "nullable": true
          },
          "UpPriceTableId": {
            "type": "string",
            "nullable": true
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ConfirmCryptoWithdrawalOtpRequest": {
        "required": [
          "WithdrawalRequestId",
          "OtpCode"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "WithdrawalRequestId": {
            "type": "integer",
            "format": "int32"
          },
          "OtpCode": {
            "type": "string"
          }
        }
      },
      "CreateAssociatedPeopleRequest": {
        "type": "object",
        "properties": {
          "People": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EqualsMoneyCreateAssociatedPersonRequest"
            }
          }
        }
      },
      "CreateBusinessApplicationRequest": {
        "required": [
          "BusinessType",
          "CountryOfIncorporation",
          "RegisteredName",
          "BusinessOverview",
          "IndustryMain",
          "IndustrySub",
          "EmployeeCount",
          "IncorporationDate"
        ],
        "type": "object",
        "properties": {
          "Market": {
            "enum": [
              "UK",
              "EU",
              "US",
              "UP"
            ],
            "type": "string",
            "description": "Possible values: UK, EU, US, UP.",
            "nullable": true
          },
          "BusinessType": {
            "enum": [
              "PRIVATE_COMPANY",
              "SOLE_TRADER",
              "PUBLIC_COMPANY_LISTED",
              "PUBLIC_COMPANY_UNLISTED",
              "PARTNERSHIP",
              "CHARITY",
              "NON_PROFIT",
              "SOCIAL_ENTERPRISE",
              "PENSION",
              "FUND",
              "TRUST",
              "SEGREGATED_PORTFOLIO_COMPANY",
              "OTHER"
            ],
            "type": "string",
            "description": "Possible values: PRIVATE_COMPANY, SOLE_TRADER, PUBLIC_COMPANY_LISTED, PUBLIC_COMPANY_UNLISTED, PARTNERSHIP, CHARITY, NON_PROFIT, SOCIAL_ENTERPRISE, PENSION, FUND, TRUST, SEGREGATED_PORTFOLIO_COMPANY, OTHER."
          },
          "CountryOfIncorporation": {
            "enum": [
              "AD",
              "AE",
              "AF",
              "AG",
              "AI",
              "AL",
              "AM",
              "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"
            ],
            "type": "string",
            "description": "Possible values: AD, AE, AF, AG, AI, AL, AM, 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."
          },
          "RegionOfIncorporation": {
            "type": "string",
            "description": "Required when CountryOfIncorporation is US, FR, or DE.",
            "nullable": true
          },
          "RegisteredName": {
            "type": "string"
          },
          "RegistrationNumber": {
            "type": "string",
            "nullable": true
          },
          "TradingNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "BusinessOverview": {
            "type": "string"
          },
          "IndustryMain": {
            "enum": [
              "ACCOMMODATION_FOOD",
              "ADMIN_SUPPORT",
              "ADULT_SERVICES",
              "AGRICULTURE_FORESTRY_FISHING",
              "ARTS_ENTERTAINMENT",
              "CFD_SPREADBETTING",
              "CHARITIES",
              "CONSTRUCTION",
              "CRYPTO_ASSETS",
              "EDUCATION",
              "ENERGY_FOSSIL_FUELS",
              "EXTRATERRITORIAL_ORGS",
              "FINANCIAL_AND_INSURANCE_ACTIVITIES",
              "GOVERNMENT",
              "HEALTH_SOCIAL_WORK",
              "HOUSEHOLD_ACTIVITIES",
              "INFORMATION_AND_COMMUNICATION",
              "MANUFACTURING",
              "MARINE_VESSELS",
              "MINING_AND_QUARRYING",
              "MOTOR_VEHICLES",
              "OTHER_SERVICES_ACTIVITIES",
              "PHARMACEUTICALS",
              "PROFESSIONAL_TECHNICAL",
              "PUBLIC_ADMINISTRATION_AND_DEFENCE",
              "PUBLIC_ADMIN_DEFENCE",
              "REAL_ESTATE_ACTIVITIES",
              "TRADE_COMMERCE",
              "TRANSPORTATION_AND_STORAGE",
              "UTILITIES_SUPPLY",
              "WATER_WASTE_MANAGEMENT"
            ],
            "type": "string",
            "description": "Possible values: ACCOMMODATION_FOOD, ADMIN_SUPPORT, ADULT_SERVICES, AGRICULTURE_FORESTRY_FISHING, ARTS_ENTERTAINMENT, CFD_SPREADBETTING, CHARITIES, CONSTRUCTION, CRYPTO_ASSETS, EDUCATION, ENERGY_FOSSIL_FUELS, EXTRATERRITORIAL_ORGS, FINANCIAL_AND_INSURANCE_ACTIVITIES, GOVERNMENT, HEALTH_SOCIAL_WORK, HOUSEHOLD_ACTIVITIES, INFORMATION_AND_COMMUNICATION, MANUFACTURING, MARINE_VESSELS, MINING_AND_QUARRYING, MOTOR_VEHICLES, OTHER_SERVICES_ACTIVITIES, PHARMACEUTICALS, PROFESSIONAL_TECHNICAL, PUBLIC_ADMINISTRATION_AND_DEFENCE, PUBLIC_ADMIN_DEFENCE, REAL_ESTATE_ACTIVITIES, TRADE_COMMERCE, TRANSPORTATION_AND_STORAGE, UTILITIES_SUPPLY, WATER_WASTE_MANAGEMENT."
          },
          "IndustrySub": {
            "enum": [
              "ACCOMMODATION",
              "ACTIVITIES_OF_HOUSEHOLDS_AS_EMPLOYERS",
              "ACTIVITIES_OF_POLITICAL_ORGANISATIONS",
              "ACTIVITIES_OF_RELIGIOUS_ORGANISATIONS",
              "ADULT_CONTENT_CREATION_AND_MANAGEMENT",
              "ADULT_ONLINE_MEDIA_PLATFORMS",
              "ADVERTISING_AND_MARKET_RESEARCH",
              "AGENTS_AND_BROKERS_OF_MOTOR_VEHICLES",
              "AIR_TRANSPORT",
              "ALCOHOLIC_BEVERAGES",
              "ANIMAL_PRODUCTION_BREEDING",
              "ARCHITECTURAL_AND_ENGINEERING_ACTIVITIES",
              "ARTS_AND_ANTIQUITIES",
              "ATM_OPERATORS",
              "AUCTION_HOUSES_ONLINE_MARKETPLACES",
              "AUXILIARY_FINANCIAL_SERVICES",
              "BANKS",
              "BROADCASTING",
              "BUILDING_AND_LANDSCAPE_SERVICES",
              "BUILDING_COMPLETION",
              "BUILDING_REPAIR_OF_MARINE_VESSELS_WATERCRAFT",
              "BUSINESS_SUPPORT_SERVICES",
              "CALL_CENTRES",
              "CAR_WASH_TAXI_VALET_SERVICES",
              "CASINOS",
              "CBD",
              "CENTRAL_GOVERNMENT_OFFICE",
              "CHARITY",
              "CHARITY_UNREGULATED",
              "CHEMICALS_AND_RUBBER_PRODUCTS",
              "CIVIL_ENGINEERING",
              "CLEANING_SERVICES",
              "COAL_MINING",
              "COMMODITY_BROKERS",
              "COMMUNITY_INTEREST_COMPANY",
              "COMPULSORY_SOCIAL_SECURITY",
              "COMPUTER_PROGRAMMING",
              "CONCIERGE",
              "CONSTRUCTION_OTHER_SERVICES",
              "CONVERTIBLE_VIRTUAL_CURRENCY_AND_TOKENS_ON_PLATFORMS_AND_DIGITAL_SKINS",
              "CREATION_AND_SUPPLY_OF_DEFENSE_SOFTWARE",
              "CREATIVE_AND_PERFORMING_ARTS",
              "CREDIT_REPAIR_AND_COUNSELLING_COMPANIES",
              "CREDIT_SERVICES",
              "CROP_AND_PLANT_PRODUCTION",
              "CRUDE_PETROLEUM_AND_GAS",
              "CRYPTO_ATMS",
              "CRYPTO_CURRENCY_EXCHANGE_LIQUIDITY_PROVISION_TO_INSTITUTIONS",
              "CRYPTO_CURRENCY_EXCHANGE_OTC_INVESTMENT",
              "CRYPTO_CURRENCY_EXCHANGE_REMITTANCE_MONEY_SERVICE",
              "CRYPTO_RELATED_BLOCKCHAIN_TECHNOLOGY_AND_SOFTWARE",
              "CULTURAL_AND_OTHER_ACTIVITIES",
              "CYBERLOCKERS",
              "DATA_PROCESSING_AND_WEB_PORTALS",
              "DEALERS_IN_DIAMONDS",
              "DEALERS_IN_JEWELLERY_PRECIOUS_METALS_AND_STONES",
              "DEFENCE_ACTIVITIES",
              "DEFENSE_CONSULTANCY_AND_TRAINING",
              "DELIVERY_OF_ADMINISTRATIVE_DOCUMENTS",
              "DEVELOPMENT_AND_BUILDING",
              "DRIVING_INSTRUCTOR",
              "DRUGS_AND_NARCOTICS",
              "EARLY_CHILDHOOD_AND_PRIMARY_EDUCATION",
              "ECOMMERCE",
              "EDUCATIONAL_COURSES_BY_UNREGULATED_CFD_INVESTMENT_COMPANIES",
              "EDUCATIONAL_SUPPORT_SERVICES",
              "ELECTRICITY_SUPPLY",
              "EMPLOYMENT_ACTIVITIES",
              "EVENT_ORGANISATION",
              "EVENT_TICKETING",
              "EXTRATERRITORIAL_ACTIVITIES",
              "FARMING",
              "FINANCIAL_SERVICES",
              "FINANCING_OF_MARINE_VESSELS_WATERCRAFT",
              "FIRE_SERVICE_ACTIVITIES",
              "FIREWORKS_PYROTECHNICS",
              "FISHING_AQUACULTURE",
              "FOOD_AND_BEVERAGE_SERVICE",
              "FOOD_AND_DRINK",
              "FOREIGN_AFFAIRS",
              "FOREIGN_EMBASSIES_MISSIONS_OR_CONSULATES",
              "FORESTRY",
              "FOSSIL_FUELS_EXTRACTION_AND_REFINEMENT",
              "FREIGHT_SERVICES",
              "FUND_MANAGEMENT",
              "FUNERAL_AND_RELATED_ACTIVITIES",
              "FURNITURE_HOUSEHOLD_GOODS_AND_MISCELLANEOUS",
              "GAMBLING_BETTING",
              "GAMING",
              "GAS_FUEL_STATION",
              "GAS_SUPPLY",
              "GENERAL_PUBLIC_ADMINISTRATION",
              "GENTLEMANS_CLUBS_AND_LAPDANCING_BARS",
              "HAIRDRESSING_MASSAGE_OTHER_BEAUTY_TREATMENT",
              "HIRE_OR_CHARTER_OF_MARINE_VESSELS_WATERCRAFT",
              "HOLDING_COMPANIES",
              "HOSPITAL_ACTIVITIES",
              "INSURANCE_SERVICES",
              "INTERIOR_DESIGN",
              "INVESTMENT_SERVICES",
              "IT_AND_COMPUTER_SERVICES",
              "JUSTICE_AND_JUDICIAL_ACTIVITIES",
              "LAND_TRANSPORT",
              "LEGAL_AND_ACCOUNTING_ACTIVITIES",
              "LOCAL_GOVERNMENT",
              "LOOT_BOXES",
              "LUXURY_SHOPPERS",
              "LUXURY_YACHTS",
              "MACHINERY_AND_ELECTRONICS",
              "MAIL_ONLINE_TELEPHONE_ORDER_SALES",
              "MANAGEMENT_AND_CONSULTANCY",
              "MANUFACTURE_AND_SUPPLY_MILITARY_AND_POLICE_GRADE_ANTI_RIOT_EQUIPMENT",
              "MANUFACTURE_AND_SUPPLY_MILITARY_AND_POLICE_UNIFORM_AND_ASSOCIATED_EQUIPMENT",
              "MANUFACTURE_AND_SUPPLY_MILITARY_VEHICLES_AND_HEAVY_EQUIPMENT",
              "MANUFACTURE_OF_BLADES_OFFENSIVE_WEAPONS",
              "MANUFACTURE_SUPPLY_OF_PHARMACEUTICAL_PRODUCTS",
              "MATERIAL_RECOVERY",
              "MEDICAL_AND_DENTAL_PRACTICE_ACTIVITIES",
              "MEMBERSHIP_ORGANISATIONS",
              "METAL_MANUFACTURING",
              "METAL_ORES_MINING",
              "MILITARY_RESEARCH",
              "MILITARY_WATERCRAFT",
              "MINERAL_EXTRACTION_GEMSTONES_AND_PRECIOUS_METALS",
              "MONEY_SERVICE_BUSINESSES",
              "MOTION_PICTURE_PRODUCTION",
              "NIGHTCLUBS_PUBS_BARS",
              "NON_CRYPTO_BLOCKCHAIN_TECHNOLOGY",
              "NON_DOMESTIC_LOCAL_GOVERNMENT_INCLUDING_COUNCILS_PARISH_COUNCILS",
              "NON_PRECIOUS_METALS",
              "NON_REGULATED_CFDS",
              "NUCLEAR_MATERIAL_POWER",
              "OFFICE_ADMINISTRATIVE_SERVICES",
              "ONLINE_DATING_SERVICES",
              "ONLINE_EDUCATION",
              "OPERATIONAL_EXPENSES",
              "OPERATIONAL_EXPENSES_OF_MARINE_VESSELS_WATERCRAFT",
              "OTHER_ADULT_SERVICES_INCLUDING_MEMBERSHIP_ORGANISATIONS",
              "OTHER_HUMAN_HEALTH_ACTIVITIES",
              "OTHER_PROFESSIONAL_ACTIVITIES",
              "P2P_PLATFORMS",
              "PAWN_SHOPS_CASH_FOR_GOLD_BUSINESSES",
              "PAYDAY_LOAN_COMPANIES",
              "PAYMENT_AGENTS",
              "PENSION_FUNDING",
              "PHARMACEUTICAL_TESTING_DIAGNOSTICS",
              "PHOTOGRAPHY",
              "PHYSICAL_WELL_BEING_ACTIVITIES",
              "POST_SECONDARY_AND_HIGHER_EDUCATION",
              "POSTAL_AND_COURIER_ACTIVITIES_LICENSED",
              "POSTAL_AND_COURIER_ACTIVITIES_UNLICENSED",
              "PREPAID_CARDS",
              "PUBLIC_ADMINISTRATION",
              "PUBLIC_ORDER_AND_SAFETY",
              "PUBLISHING_ACTIVITIES",
              "PURCHASE_AND_SUPPLY_OF_ANTIQUE_WEAPONRY",
              "QUARRYING",
              "QUASI_NON_GOVERNMENTAL_ORGANISATION",
              "REAL_ESTATE_AGENCY_ACTIVITIES",
              "REAL_ESTATE_MANAGEMENT",
              "REAL_ESTATE_TRANSACTIONS",
              "REGULATED_CFDS",
              "REGULATED_PEER_TO_PEER_CROWDFUNDING",
              "REMEDIATION_AND_WASTE_MANAGEMENT",
              "REMOVAL_SERVICES",
              "RENTAL_AND_LEASING_ACTIVITIES",
              "RENTAL_AND_LEASING_ACTIVITIES_CARS",
              "RENTAL_LEASING_ACTIVITIES_NOT_INCLUDING_AUTOMOBILES_TRUCKS_PROPERTIES",
              "RENTING_AND_OPERATING_REAL_ESTATE",
              "REPAIR_OF_MOTOR_VEHICLES",
              "REPAIR_SERVICES",
              "RESEARCH_AND_DEVELOPMENT",
              "RESIDENTIAL_CARE_ACTIVITIES",
              "RETAIL_STORES",
              "RETAIL_TRADE_NOT_INCLUDING_CLOTHING_OR_ELECTRONICS",
              "RETAIL_TRADE_OF_CLOTHING_AND_SECOND_HAND_TEXTILES",
              "RETAIL_TRADE_OF_PORTABLE_ELECTRONICS",
              "SALE_CONSULTANCY_AND_BROKERAGE",
              "SALE_OF_MOTOR_VEHICLES",
              "SALE_OF_USED_MOTOR_VEHICLES",
              "SALE_OR_PURCHASE_OF_MARINE_VESSEL_WATERCRAFT",
              "SCRAP_METAL",
              "SECONDARY_EDUCATION",
              "SECURITY_AND_INVESTIGATION_ACTIVITIES",
              "SEO_SCO_DIGITAL_MARKETING_AND_AFFILIATE_MARKETING",
              "SEWERAGE",
              "SOCIAL_MEDIA",
              "SOCIAL_WORK_ACTIVITIES",
              "SOFT_DRINKS",
              "SOFTWARE_DESIGN_AND_MAINTENANCE",
              "SOUND_AND_MUSIC_PUBLISHING",
              "SPECIALISED_CONSTRUCTION",
              "SPECIALISED_DESIGN_ACTIVITIES",
              "SPORTS_RECREATION",
              "STEAM_AND_AIR_CONDITIONING_SUPPLY",
              "SUBSCRIPTION_WEBSITES",
              "SUPPLY_OF_BLADES_OFFENSIVE_WEAPONS_FIREARMS_DEFENCE_EQUIPMENT_AS_WELL_AS_AMMUNITION",
              "SUPPORT_ACTIVITIES",
              "SUPPORT_ACTIVITIES_FOR_OTHER_MINING_AND_QUARRYING",
              "SUPPORT_ACTIVITIES_FOR_TRANSPORTATION",
              "TAILOR",
              "TECHNICAL_TESTING_AND_ANALYSIS",
              "TELECOMMUNICATIONS",
              "TEXTILES",
              "TOBACCO_VAPES",
              "TRADE_OF_LIVESTOCK",
              "TRANSLATION_AND_INTERPRETATION",
              "TRANSPORT_EQUIPMENT",
              "TRAVEL_AND_RESERVATION_SERVICES",
              "TRUST_AND_COMPANY_SERVICE_PROVIDERS",
              "UNDIFFERENTIATED_GOODS_PRODUCTION",
              "UNREGISTERED_CHARITIES",
              "UNREGULATED_FINANCIAL_FIRMS_INVESTMENT_MORTGAGE_CONSULTING",
              "VETERINARY_ACTIVITIES",
              "VIRTUAL_ASSETS_AND_DIGITAL_GOODS",
              "WAREHOUSING_PACKAGING_AND_STORAGE",
              "WASHING_CLEANING_OF_TEXTILE_AND_FUR_PRODUCTS",
              "WASTE_COLLECTION",
              "WASTE_TREATMENT_AND_DISPOSAL",
              "WATER_SUPPLY",
              "WATER_TRANSPORT",
              "WEALTH_MANAGEMENT",
              "WEBSITE_DESIGN_AND_CONSULTANCY",
              "WHOLESALE_TRADE_ALCOHOL_WINE_BEER_SPIRITS_ALCOHOLIC_BEVERAGES",
              "WHOLESALE_TRADE_CHEMICAL_PRODUCTS",
              "WHOLESALE_TRADE_CHOCOLATE_CONFECTIONARY",
              "WHOLESALE_TRADE_CONSTRUCTION_MATERIALS_WOOD_SUPPLIES",
              "WHOLESALE_TRADE_ELECTRONICS_PARTS_TELECOMMUNICATION_COMPUTER_SOFTWARE",
              "WHOLESALE_TRADE_FRUIT_VEGETABLES_GRAINS_ANIMAL_FEED_LIVESTOCK",
              "WHOLESALE_TRADE_MEAT_FISH_DAIRY_EGGS_OILS",
              "WHOLESALE_TRADE_NON_SPECIALISED_FOODS_BEVERAGES",
              "WHOLESALE_TRADE_PHARMACEUTICALS",
              "WHOLESALE_TRADE_SUGAR_SPICES",
              "WHOLESALE_TRADE_TEXTILES_FOOTWEAR_FURNITURE",
              "WHOLESALE_TRADE_TOBACCO",
              "WOOD"
            ],
            "type": "string",
            "description": "Allowed values depend on IndustryMain."
          },
          "EmployeeCount": {
            "enum": [
              "ONE_TO_TEN",
              "ELEVEN_TO_FIFTY",
              "FIFTY_ONE_TO_TWO_HUNDRED",
              "TWO_HUNDRED_AND_ONE_TO_FIVE_HUNDRED",
              "FIVE_HUNDRED_AND_ONE_TO_ONE_THOUSAND",
              "ONE_THOUSAND_AND_ONE_TO_FIVE_THOUSAND",
              "FIVE_THOUSAND_AND_ONE_TO_TEN_THOUSAND",
              "TEN_THOUSAND_PLUS"
            ],
            "type": "string",
            "description": "Possible values: ONE_TO_TEN, ELEVEN_TO_FIFTY, FIFTY_ONE_TO_TWO_HUNDRED, TWO_HUNDRED_AND_ONE_TO_FIVE_HUNDRED, FIVE_HUNDRED_AND_ONE_TO_ONE_THOUSAND, ONE_THOUSAND_AND_ONE_TO_FIVE_THOUSAND, FIVE_THOUSAND_AND_ONE_TO_TEN_THOUSAND, TEN_THOUSAND_PLUS."
          },
          "IncorporationDate": {
            "type": "string",
            "description": "Format: YYYY-MM-DD."
          },
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "TaxId": {
            "type": "string",
            "nullable": true
          },
          "Website": {
            "type": "string",
            "nullable": true
          },
          "BusinessPromotionDescription": {
            "type": "string",
            "nullable": true
          },
          "RequestedFeatures": {
            "type": "array",
            "items": {
              "enum": [
                "CARDS",
                "PAYMENTS"
              ],
              "type": "string"
            },
            "description": "Possible values: CARDS, PAYMENTS.",
            "nullable": true
          },
          "CardsInformation": {
            "$ref": "#/components/schemas/CardsInformationRequest"
          },
          "PaymentsInformation": {
            "$ref": "#/components/schemas/PaymentsInformationRequest"
          },
          "Addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AddressRequest"
            },
            "nullable": true
          },
          "AssociatedPeople": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssociatedPersonLinkRequest"
            },
            "nullable": true
          }
        }
      },
      "CreateCryptoDepositAddressResponse": {
        "type": "object",
        "properties": {
          "DepositWallet": { },
          "OtcRequest": {
            "$ref": "#/components/schemas/BoomFiOtcTradeRequestResponse"
          }
        }
      },
      "CreateCryptoRefundRequest": {
        "required": [
          "TransferId",
          "Address"
        ],
        "type": "object",
        "properties": {
          "TransferId": {
            "type": "string"
          },
          "Address": {
            "type": "string"
          }
        }
      },
      "CreateCryptoRefundResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "RefundId": {
            "type": "string",
            "nullable": true
          },
          "TransferId": {
            "type": "string"
          },
          "AccountId": {
            "type": "string"
          },
          "Destination": {
            "$ref": "#/components/schemas/TransferEndpointInfo"
          },
          "Amount": {
            "$ref": "#/components/schemas/AmountInfo"
          },
          "Fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeeInfo"
            }
          },
          "Status": {
            "type": "string"
          },
          "ReferenceId": {
            "type": "string",
            "nullable": true
          },
          "CreateTime": {
            "type": "string",
            "format": "date-time"
          },
          "CompleteTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Message": {
            "type": "string"
          }
        }
      },
      "CreateDiscountCodeRequest": {
        "type": "object",
        "properties": {
          "Code": {
            "type": "string"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "DiscountType": {
            "type": "string"
          },
          "BuyDiscountPercent": {
            "type": "number",
            "format": "double"
          },
          "MonthlyDiscountPercent": {
            "type": "number",
            "format": "double"
          },
          "YearlyDiscountPercent": {
            "type": "number",
            "format": "double"
          },
          "BuyDiscountFixed": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MonthlyDiscountFixed": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "YearlyDiscountFixed": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MaxUsesTotal": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "MaxUsesPerUser": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ValidFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ValidTill": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ApplicableUserIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "IsActive": {
            "type": "boolean"
          }
        }
      },
      "CreateInterlaceAccountResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "InterlaceAccountId": {
            "type": "string",
            "nullable": true
          },
          "ExternalUserId": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "AccountAlreadyExists": {
            "type": "boolean"
          },
          "ErrorCode": {
            "type": "string",
            "nullable": true
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CreateLoyaltyProgramRequest": {
        "required": [
          "Name",
          "PointValueRate"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 255,
            "type": "string"
          },
          "Description": {
            "maxLength": 1000,
            "type": "string",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean"
          },
          "PointValueRate": {
            "maximum": 999.9999,
            "minimum": 0.0001,
            "type": "number",
            "format": "double"
          },
          "PointValueCurrency": {
            "maxLength": 3,
            "type": "string"
          }
        }
      },
      "CreateLoyaltyRuleRequest": {
        "required": [
          "RuleName",
          "RuleType",
          "PointsPerUnit"
        ],
        "type": "object",
        "properties": {
          "RuleName": {
            "maxLength": 255,
            "type": "string"
          },
          "RuleType": {
            "maxLength": 50,
            "type": "string"
          },
          "PointsPerUnit": {
            "maximum": 999.9999,
            "minimum": 0.0001,
            "type": "number",
            "format": "double"
          },
          "MinTransactionAmount": {
            "maximum": 999999.99,
            "minimum": 0.01,
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MaxTransactionAmount": {
            "maximum": 999999.99,
            "minimum": 0.01,
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MerchantCategory": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "UserTier": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "Priority": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "IsActive": {
            "type": "boolean"
          },
          "ValidFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ValidUntil": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Multiplier": {
            "maximum": 10,
            "minimum": 0.1,
            "type": "number",
            "format": "double"
          }
        }
      },
      "CreateMerchantIdRequest": {
        "required": [
          "IdentifierType",
          "IdentifierValue"
        ],
        "type": "object",
        "properties": {
          "IdentifierType": {
            "maxLength": 50,
            "type": "string"
          },
          "IdentifierValue": {
            "maxLength": 255,
            "type": "string"
          },
          "Priority": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "IsActive": {
            "type": "boolean"
          }
        }
      },
      "CreateMerchantLoyaltyRuleRequest": {
        "required": [
          "RuleName",
          "PointsPerUnit"
        ],
        "type": "object",
        "properties": {
          "RuleName": {
            "maxLength": 255,
            "type": "string"
          },
          "PointsPerUnit": {
            "maximum": 999.9999,
            "minimum": 0.0001,
            "type": "number",
            "format": "double"
          },
          "Multiplier": {
            "maximum": 10,
            "minimum": 0.1,
            "type": "number",
            "format": "double"
          },
          "MinTransactionAmount": {
            "maximum": 999999.99,
            "minimum": 0.01,
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MaxTransactionAmount": {
            "maximum": 999999.99,
            "minimum": 0.01,
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean"
          },
          "ValidFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ValidUntil": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "CreateMerchantRequest": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 255,
            "type": "string"
          },
          "Description": {
            "maxLength": 1000,
            "type": "string",
            "nullable": true
          },
          "Category": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean"
          },
          "IsPartner": {
            "type": "boolean"
          },
          "ContactEmail": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "ContactPhone": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "Address": {
            "maxLength": 500,
            "type": "string",
            "nullable": true
          },
          "Website": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          }
        }
      },
      "CreatePayeeRequest": {
        "required": [
          "PaymentType",
          "Currency"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "type": "string",
            "description": "Recipient display name. Matches required-fields fieldName \"name\".",
            "nullable": true
          },
          "PaymentType": {
            "enum": [
              "COMPANY",
              "INDIVIDUAL"
            ],
            "type": "string",
            "description": "Allowed values: COMPANY, INDIVIDUAL."
          },
          "Currency": {
            "type": "string"
          },
          "AccountNumber": {
            "type": "string",
            "nullable": true
          },
          "Iban": {
            "type": "string",
            "description": "Alias for AccountNumber. If AccountNumber is omitted, Iban is used as the account identifier.",
            "nullable": true
          },
          "Bic": {
            "type": "string",
            "description": "BIC/SWIFT alias. Matches required-fields fieldName \"bic\".",
            "nullable": true
          },
          "BankCode": {
            "type": "string",
            "description": "Bank code alias. Matches required-fields fieldName \"bankCode\".",
            "nullable": true
          },
          "BankName": {
            "type": "string",
            "nullable": true
          },
          "FirstName": {
            "type": "string",
            "nullable": true
          },
          "LastName": {
            "type": "string",
            "nullable": true
          },
          "RoutingCodeList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutingCodeDto"
            },
            "nullable": true
          },
          "routingCodes": {
            "type": "array",
            "items": { },
            "nullable": true
          },
          "BankAddress": {
            "$ref": "#/components/schemas/PayeeAddressDto"
          },
          "PayeeAddress": {
            "$ref": "#/components/schemas/PayeeAddressDto"
          },
          "Comments": {
            "type": "string",
            "nullable": true
          },
          "PaymentMethod": {
            "enum": [
              "SWIFT",
              "SEPA.INSTANT",
              "SEPA.CREDITTRANSFER",
              "CHAPS",
              "UKFPS",
              "ACH",
              "WIRETRANSFER",
              "OFF_PLATFORM"
            ],
            "type": "string",
            "description": "Allowed values: SWIFT, SEPA.INSTANT, SEPA.CREDITTRANSFER, CHAPS, UKFPS, ACH, WIRETRANSFER, OFF_PLATFORM.",
            "nullable": true
          },
          "VerificationMethod": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CreatePaymentRequestV2": {
        "required": [
          "UserId",
          "Amount",
          "Currency"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "MerchantReferenceId": {
            "type": "string",
            "nullable": true
          },
          "MandateId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Metadata": {
            "type": "object",
            "nullable": true
          }
        }
      },
      "CreatePayoutRequest": {
        "required": [
          "CheckId",
          "PayeeId",
          "Amount",
          "Currency"
        ],
        "type": "object",
        "properties": {
          "VerificationToken": {
            "type": "string",
            "description": "Token returned by POST /api/v2/banking/payouts/initiate after it has been verified through the OTP endpoint. Required for final payout creation.",
            "nullable": true
          },
          "CheckId": {
            "type": "string",
            "description": "CheckId returned by POST /api/v2/banking/payouts/check. When refreshing quotes during OTP, send the latest quote/order ID here."
          },
          "QuoteRequestId": {
            "type": "string",
            "description": "QuoteRequestId returned by POST /api/v2/banking/quotations.",
            "nullable": true
          },
          "PayeeId": {
            "type": "integer",
            "description": "Local payee ID from GET /api/v2/banking/payees.",
            "format": "int32"
          },
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "BalanceId": {
            "type": "string",
            "description": "Optional provider balance or Equals Money budget ID used as funding source.",
            "nullable": true
          }
        }
      },
      "CreatePayoutResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "ExternalId": {
            "type": "string"
          },
          "ClientTransactionId": {
            "type": "string"
          },
          "Status": {
            "type": "string"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "FromAmount": {
            "type": "string"
          },
          "FromCurrency": {
            "type": "string"
          },
          "ToAmount": {
            "type": "string"
          },
          "ToCurrency": {
            "type": "string"
          },
          "Fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayoutFeeDto"
            },
            "nullable": true
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CreateTransactionImportConfigRequest": {
        "required": [
          "ConfigName",
          "ImportMethod",
          "FieldMappings"
        ],
        "type": "object",
        "properties": {
          "ConfigName": {
            "maxLength": 255,
            "type": "string"
          },
          "ImportMethod": {
            "maxLength": 50,
            "type": "string"
          },
          "FieldMappings": { },
          "IsActive": {
            "type": "boolean"
          }
        }
      },
      "CrossCurveLP": {
        "type": "object",
        "properties": {
          "chainId": {
            "type": "integer",
            "format": "int32"
          },
          "address": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "decimals": {
            "type": "integer",
            "format": "int32"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "permit": {
            "type": "boolean"
          }
        }
      },
      "CrossCurveOperationFee": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "token": {
            "$ref": "#/components/schemas/CrossCurveToken"
          },
          "percent": {
            "type": "string"
          },
          "amount": {
            "type": "string"
          }
        }
      },
      "CrossCurvePoolConfig": {
        "type": "object",
        "properties": {
          "lp": {
            "$ref": "#/components/schemas/CrossCurveLP"
          },
          "decimals": {
            "type": "array",
            "items": {
              "type": "number",
              "format": "double"
            }
          },
          "coins": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "address": {
            "type": "string"
          },
          "underlyingCoins": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "type": {
            "type": "string"
          }
        }
      },
      "CrossCurveRoute": {
        "type": "object",
        "properties": {
          "query": {
            "$ref": "#/components/schemas/CrossCurveRouteRequest"
          },
          "route": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CrossCurveRouteStep"
            }
          },
          "amountIn": {
            "type": "string"
          },
          "amountInWithoutSlippage": {
            "type": "string"
          },
          "amountOut": {
            "type": "string"
          },
          "amountOutWithoutSlippage": {
            "type": "string"
          },
          "tokenInPrice": {
            "type": "number",
            "format": "double"
          },
          "tokenOutPrice": {
            "type": "number",
            "format": "double"
          },
          "priceImpact": {
            "type": "number",
            "format": "double"
          },
          "totalFee": {
            "$ref": "#/components/schemas/CrossCurveTotalFee"
          },
          "signature": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "CrossCurveRouteParams": {
        "type": "object",
        "properties": {
          "chainIdIn": {
            "type": "integer",
            "format": "int32"
          },
          "chainIdOut": {
            "type": "integer",
            "format": "int32"
          },
          "tokenIn": {
            "type": "string"
          },
          "tokenOut": {
            "type": "string"
          },
          "amountIn": {
            "type": "string"
          }
        }
      },
      "CrossCurveRouteRequest": {
        "type": "object",
        "properties": {
          "params": {
            "$ref": "#/components/schemas/CrossCurveRouteParams"
          },
          "slippage": {
            "type": "number",
            "format": "double"
          },
          "from": {
            "type": "string"
          },
          "recipient": {
            "type": "string"
          }
        },
        "nullable": true
      },
      "CrossCurveRouteStep": {
        "type": "object",
        "properties": {
          "pool": {
            "$ref": "#/components/schemas/CrossCurvePoolConfig"
          },
          "fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CrossCurveOperationFee"
            }
          },
          "priceImpact": {
            "type": "string",
            "nullable": true
          },
          "params": {
            "$ref": "#/components/schemas/CrossCurveStepParams"
          },
          "type": {
            "type": "string"
          },
          "chainId": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "CrossCurveStepParams": {
        "type": "object",
        "properties": {
          "tokenIn": {
            "$ref": "#/components/schemas/CrossCurveToken"
          },
          "chainIdIn": {
            "type": "integer",
            "format": "int32"
          },
          "tokenOut": {
            "$ref": "#/components/schemas/CrossCurveToken"
          },
          "chainIdOut": {
            "type": "integer",
            "format": "int32"
          },
          "amountIn": {
            "type": "string"
          },
          "amountInWithoutSlippage": {
            "type": "string"
          },
          "amountOut": {
            "type": "string"
          },
          "amountOutWithoutSlippage": {
            "type": "string"
          },
          "slippage": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "CrossCurveToken": {
        "type": "object",
        "properties": {
          "chainId": {
            "type": "integer",
            "format": "int32"
          },
          "address": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "symbol": {
            "type": "string"
          },
          "decimals": {
            "type": "integer",
            "format": "int32"
          },
          "chainName": {
            "type": "string",
            "nullable": true
          },
          "originalName": {
            "type": "string",
            "nullable": true
          },
          "originalSymbol": {
            "type": "string",
            "nullable": true
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "synthTags": {
            "type": "object"
          },
          "permit": {
            "type": "boolean"
          }
        }
      },
      "CrossCurveTotalFee": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "amount": {
            "type": "string"
          },
          "percent": {
            "type": "string"
          }
        }
      },
      "CrossCurveTxResponse": {
        "type": "object",
        "properties": {
          "to": {
            "type": "string"
          },
          "data": {
            "type": "string"
          },
          "value": {
            "type": "string"
          },
          "abi": {
            "type": "string",
            "nullable": true
          },
          "args": {
            "type": "array",
            "nullable": true
          }
        }
      },
      "CryptoAddress": {
        "type": "object",
        "properties": {
          "Address": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "Chain": {
            "type": "string"
          },
          "Tag": {
            "type": "string"
          },
          "Network": {
            "type": "string"
          },
          "IsActive": {
            "type": "boolean"
          },
          "CreatedAt": {
            "type": "string"
          }
        }
      },
      "CryptoConnectWalletAddressV3": {
        "type": "object",
        "properties": {
          "currency": {
            "type": "string"
          },
          "chain": {
            "type": "string"
          },
          "address": {
            "type": "string"
          },
          "selected": {
            "type": "boolean"
          }
        }
      },
      "CryptoConnectWalletBalanceV3": {
        "type": "object",
        "properties": {
          "available": {
            "type": "string"
          },
          "frozen": {
            "type": "string",
            "nullable": true
          },
          "currency": {
            "type": "string"
          }
        }
      },
      "CryptoConnectWalletsV3Data": {
        "type": "object",
        "properties": {
          "total": {
            "type": "string"
          },
          "list": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CryptoConnectWalletV3"
            }
          }
        },
        "nullable": true
      },
      "CryptoConnectWalletsV3Response": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "$ref": "#/components/schemas/CryptoConnectWalletsV3Data"
          }
        }
      },
      "CryptoConnectWalletV3": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "accountId": {
            "type": "string"
          },
          "nickname": {
            "type": "string"
          },
          "master": {
            "type": "boolean"
          },
          "referenceId": {
            "type": "string"
          },
          "balances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CryptoConnectWalletBalanceV3"
            }
          },
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CryptoConnectWalletAddressV3"
            }
          }
        }
      },
      "CryptoRefundItem": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string"
          },
          "TransferId": {
            "type": "string"
          },
          "AccountId": {
            "type": "string"
          },
          "Destination": {
            "$ref": "#/components/schemas/TransferEndpointInfo"
          },
          "Amount": {
            "$ref": "#/components/schemas/AmountInfo"
          },
          "Fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeeInfo"
            }
          },
          "Status": {
            "type": "string"
          },
          "TransactionHash": {
            "type": "string",
            "nullable": true
          },
          "ReferenceId": {
            "type": "string",
            "nullable": true
          },
          "CreateTime": {
            "type": "string",
            "format": "date-time"
          },
          "CompleteTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "CryptoRefundsListResponse": {
        "type": "object",
        "properties": {
          "Refunds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CryptoRefundItem"
            }
          },
          "Total": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "Limit": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "CryptoToQuantumTransferBodyRequestV2": {
        "required": [
          "SourceCurrency",
          "Amount"
        ],
        "type": "object",
        "properties": {
          "SourceCurrency": {
            "type": "string"
          },
          "DestinationCurrency": {
            "type": "string"
          },
          "Amount": {
            "minimum": 0.01,
            "type": "number",
            "format": "double"
          }
        }
      },
      "CryptoToQuantumTransferResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "TransferId": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "ErrorCode": {
            "type": "string",
            "nullable": true
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Details": {
            "$ref": "#/components/schemas/TransferDetails"
          }
        }
      },
      "CryptoTransferItem": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string"
          },
          "AccountId": {
            "type": "string"
          },
          "ReferenceId": {
            "type": "string",
            "nullable": true
          },
          "Source": {
            "$ref": "#/components/schemas/TransferEndpointInfo"
          },
          "Destination": {
            "$ref": "#/components/schemas/TransferEndpointInfo"
          },
          "Amount": {
            "$ref": "#/components/schemas/AmountInfo"
          },
          "Fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeeInfo"
            }
          },
          "Status": {
            "type": "string"
          },
          "CreateTime": {
            "type": "string",
            "format": "date-time"
          },
          "CompleteTime": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "CryptoTransfersListResponse": {
        "type": "object",
        "properties": {
          "Transfers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CryptoTransferItem"
            }
          },
          "Total": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "Limit": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "CryptoVirtualAccountChainRequest": {
        "required": [
          "Currencies"
        ],
        "type": "object",
        "properties": {
          "ChainId": {
            "enum": [
              1,
              -200,
              137,
              42161
            ],
            "type": "integer",
            "description": "Supported chain IDs: Ethereum Mainnet (1), Tron (-200), Polygon (137), Arbitrum (42161).\n\nPossible values: 1, -200, 137, 42161.",
            "format": "int32"
          },
          "Currencies": {
            "minItems": 1,
            "type": "array",
            "items": {
              "enum": [
                "USDC",
                "USDT"
              ],
              "type": "string"
            },
            "description": "Supported currencies: USDC, USDT.\n\nPossible values: USDC, USDT."
          }
        }
      },
      "CryptoVirtualAccountProviderResult": {
        "type": "object",
        "properties": {
          "Provider": {
            "type": "string"
          },
          "Status": {
            "type": "string"
          },
          "Reference": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Account": {
            "$ref": "#/components/schemas/BoomFiVirtualAccountData"
          },
          "Wallets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CryptoVirtualAccountWalletResult"
            }
          }
        }
      },
      "CryptoVirtualAccountWalletResult": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "WalletAddress": {
            "type": "string"
          },
          "CryptoAsset": {
            "type": "string"
          },
          "Status": {
            "type": "string"
          },
          "ExternalWalletId": {
            "type": "string",
            "nullable": true
          },
          "WalletType": {
            "type": "string"
          }
        }
      },
      "DailyAssignmentStatsResponse": {
        "type": "object",
        "properties": {
          "Date": {
            "type": "string",
            "format": "date-time"
          },
          "TransactionCount": {
            "type": "integer",
            "format": "int32"
          },
          "PointsAssigned": {
            "type": "integer",
            "format": "int32"
          },
          "ReversalCount": {
            "type": "integer",
            "format": "int32"
          },
          "PointsReversed": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "DailyVolume": {
        "type": "object",
        "properties": {
          "Date": {
            "type": "string",
            "format": "date-time"
          },
          "Volume": {
            "type": "number",
            "format": "double"
          },
          "Count": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "DashboardEqualsMoneyActivityDownloadRequest": {
        "type": "object",
        "properties": {
          "StartDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Format": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "DashboardQuotationRequest": {
        "required": [
          "PayeeId",
          "FromCurrency",
          "Amount"
        ],
        "type": "object",
        "properties": {
          "PayeeId": {
            "type": "integer",
            "description": "Local payee ID from GET /api/v2/banking/payees.",
            "format": "int32"
          },
          "FromCurrency": {
            "type": "string",
            "description": "Source currency to fund the payout from, for example GBP, EUR, or USD."
          },
          "Amount": {
            "maximum": 79228162514264337593543950335,
            "minimum": 0.00000001,
            "type": "number",
            "format": "double"
          },
          "FeeMethod": {
            "type": "string",
            "description": "Fee handling method. The accounts page uses INCLUDED."
          },
          "BalanceId": {
            "type": "string",
            "description": "Optional provider balance or Equals Money budget ID used as funding source.",
            "nullable": true
          }
        }
      },
      "DetailedKycStatusResponseV2": {
        "type": "object",
        "properties": {
          "HoppaCardKycApproved": {
            "type": "boolean"
          },
          "BankKycApproved": {
            "type": "boolean"
          },
          "CardIssuerKycApproved": {
            "type": "boolean"
          },
          "Interlace": {
            "$ref": "#/components/schemas/ProviderKycStatusV2"
          },
          "EqualsMoney": {
            "$ref": "#/components/schemas/EqualsMoneyKycStatusV2"
          }
        }
      },
      "DiscountCodeListResponse": {
        "type": "object",
        "properties": {
          "Codes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DiscountCodeResponse"
            }
          },
          "Total": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "DiscountCodeResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Code": {
            "type": "string"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "CompanyId": {
            "type": "integer",
            "format": "int32"
          },
          "DiscountType": {
            "type": "string"
          },
          "BuyDiscountPercent": {
            "type": "number",
            "format": "double"
          },
          "MonthlyDiscountPercent": {
            "type": "number",
            "format": "double"
          },
          "YearlyDiscountPercent": {
            "type": "number",
            "format": "double"
          },
          "BuyDiscountFixed": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MonthlyDiscountFixed": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "YearlyDiscountFixed": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MaxUsesTotal": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "MaxUsesPerUser": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "CurrentUses": {
            "type": "integer",
            "format": "int32"
          },
          "ValidFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ValidTill": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ApplicableUserIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "IsActive": {
            "type": "boolean"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "CreatedBy": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "EntityTagHeaderValue": {
        "type": "object",
        "properties": {
          "Tag": {
            "$ref": "#/components/schemas/StringSegment"
          },
          "IsWeak": {
            "type": "boolean"
          }
        },
        "nullable": true
      },
      "EqualsMoneyAdditionalDocumentRequestV2": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string"
          },
          "text": {
            "type": "string"
          },
          "expectedResponseType": {
            "type": "string"
          },
          "applicationId": {
            "type": "string",
            "nullable": true
          },
          "informationRequestId": {
            "type": "string",
            "nullable": true
          },
          "additionalInformation": {
            "type": "string",
            "nullable": true
          },
          "associatedPersonId": {
            "type": "string",
            "nullable": true
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "EqualsMoneyAdditionalDocumentUploadResponseV2": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "DocumentId": {
            "type": "string"
          },
          "Type": {
            "type": "string"
          },
          "FileName": {
            "type": "string"
          },
          "RemainingAdditionalDocumentsRequested": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EqualsMoneyAdditionalDocumentRequestV2"
            }
          }
        }
      },
      "EqualsMoneyAddress": {
        "required": [
          "addressLine1",
          "townCity",
          "postCode",
          "countryCode"
        ],
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "nullable": true
          },
          "addressLine1": {
            "type": "string"
          },
          "addressLine2": {
            "type": "string",
            "nullable": true
          },
          "addressLine3": {
            "type": "string",
            "nullable": true
          },
          "townCity": {
            "type": "string"
          },
          "postCode": {
            "type": "string"
          },
          "countryCode": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string"
          },
          "addressContact": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          },
          "state": {
            "type": "string",
            "nullable": true
          },
          "region": {
            "type": "string",
            "nullable": true
          },
          "buildingName": {
            "type": "string",
            "nullable": true
          },
          "buildingNumber": {
            "type": "string",
            "nullable": true
          },
          "streetName": {
            "type": "string",
            "nullable": true
          },
          "subBuilding": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "isPrimary": {
            "type": "boolean",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "nullable": true
      },
      "EqualsMoneyApplicationAddress": {
        "required": [
          "addressType",
          "streetName",
          "postcode",
          "city",
          "countryCode"
        ],
        "type": "object",
        "properties": {
          "addressType": {
            "enum": [
              "REGISTERED",
              "TRADING",
              "RESIDENTIAL"
            ],
            "type": "string",
            "description": "Personal applications require RESIDENTIAL. Business applications require REGISTERED and may include TRADING.\n\nPossible values: REGISTERED, TRADING, RESIDENTIAL."
          },
          "streetName": {
            "type": "string"
          },
          "buildingNumber": {
            "type": "string",
            "nullable": true
          },
          "buildingName": {
            "type": "string",
            "nullable": true
          },
          "postcode": {
            "type": "string"
          },
          "city": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "nullable": true
          },
          "countryCode": {
            "enum": [
              "AD",
              "AE",
              "AF",
              "AG",
              "AI",
              "AL",
              "AM",
              "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"
            ],
            "type": "string",
            "description": "Possible values: AD, AE, AF, AG, AI, AL, AM, 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."
          }
        }
      },
      "EqualsMoneyApplicationCardsInformation": {
        "required": [
          "purposes",
          "estimatedAnnualSpend",
          "atmWithdrawalsRequired"
        ],
        "type": "object",
        "properties": {
          "businessDisplayName": {
            "maxLength": 15,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "purposes": {
            "type": "array",
            "items": {
              "enum": [
                "SALARY_OR_INCOME",
                "PERSONAL_TRANSFERS_OR_LIVING_EXPENSES",
                "FAMILY_SUPPORT",
                "MORTGAGE_OR_RENT_OR_UTILITY_BILLS",
                "SAVINGS",
                "INVESTMENT_PURPOSES",
                "INVESTMENT_OR_TRADING_IN_CRYPTOCURRENCIES",
                "RECEIVING_OR_SENDING_LOAN_PAYMENTS",
                "PURCHASE_OF_GOODS_OR_SERVICES",
                "TRAVEL",
                "EDUCATION",
                "MEDICAL_EXPENSES",
                "CHARITABLE_DONATIONS",
                "ADVERTISING_AND_MARKETING",
                "BILLS_AND_UTILITIES",
                "CLIENT_ENTERTAINMENT",
                "CUSTOMER_INCENTIVES",
                "EMPLOYEE_INCENTIVES",
                "FUEL_AND_MILEAGE_DOMESTIC",
                "FUEL_AND_MILEAGE_OVERSEAS",
                "LOCATION_EXPENSES_FILM_TV",
                "OFFICE_EQUIPMENT",
                "ONLINE_SUBSCRIPTIONS",
                "PAYMENT_TERMINAL_TESTING",
                "PAYROLL",
                "PER_DIEMS",
                "PETTY_CASH",
                "PROCUREMENT_PURCHASING",
                "PROCUREMENT_SOURCING",
                "TRAVEL_EXPENSES_DOMESTIC",
                "TRAVEL_EXPENSES_OVERSEAS"
              ],
              "type": "string"
            },
            "description": "Personal card purposes use the personal values. Business card purposes use the business card values.\n\nPossible values: SALARY_OR_INCOME, PERSONAL_TRANSFERS_OR_LIVING_EXPENSES, FAMILY_SUPPORT, MORTGAGE_OR_RENT_OR_UTILITY_BILLS, SAVINGS, INVESTMENT_PURPOSES, INVESTMENT_OR_TRADING_IN_CRYPTOCURRENCIES, RECEIVING_OR_SENDING_LOAN_PAYMENTS, PURCHASE_OF_GOODS_OR_SERVICES, TRAVEL, EDUCATION, MEDICAL_EXPENSES, CHARITABLE_DONATIONS, ADVERTISING_AND_MARKETING, BILLS_AND_UTILITIES, CLIENT_ENTERTAINMENT, CUSTOMER_INCENTIVES, EMPLOYEE_INCENTIVES, FUEL_AND_MILEAGE_DOMESTIC, FUEL_AND_MILEAGE_OVERSEAS, LOCATION_EXPENSES_FILM_TV, OFFICE_EQUIPMENT, ONLINE_SUBSCRIPTIONS, PAYMENT_TERMINAL_TESTING, PAYROLL, PER_DIEMS, PETTY_CASH, PROCUREMENT_PURCHASING, PROCUREMENT_SOURCING, TRAVEL_EXPENSES_DOMESTIC, TRAVEL_EXPENSES_OVERSEAS."
          },
          "estimatedAnnualSpend": {
            "enum": [
              "0-10000",
              "10001-50000",
              "50001-100000",
              "100001-250000",
              "250001-1000000",
              "1000001-5000000",
              "5000000+"
            ],
            "type": "string",
            "description": "Possible values: 0-10000, 10001-50000, 50001-100000, 100001-250000, 250001-1000000, 1000001-5000000, 5000000+."
          },
          "numberOfCardsRequired": {
            "enum": [
              "0-10",
              "11-50",
              "51-100",
              "101+"
            ],
            "type": "string",
            "description": "Possible values: 0-10, 11-50, 51-100, 101+.",
            "nullable": true
          },
          "cardsAreForEmployees": {
            "type": "boolean",
            "nullable": true
          },
          "atmWithdrawalsRequired": {
            "type": "boolean"
          }
        },
        "nullable": true
      },
      "EqualsMoneyApplicationFeatureInformation": {
        "required": [
          "requestedFeatures"
        ],
        "type": "object",
        "properties": {
          "requestedFeatures": {
            "type": "array",
            "items": {
              "enum": [
                "CARDS",
                "PAYMENTS"
              ],
              "type": "string"
            },
            "description": "Allowed values: PAYMENTS, CARDS."
          },
          "cardsInformation": {
            "$ref": "#/components/schemas/EqualsMoneyApplicationCardsInformation"
          },
          "paymentsInformation": {
            "$ref": "#/components/schemas/EqualsMoneyApplicationPaymentsInformation"
          }
        },
        "nullable": true
      },
      "EqualsMoneyApplicationIndustry": {
        "required": [
          "main",
          "sub"
        ],
        "type": "object",
        "properties": {
          "main": {
            "type": "string"
          },
          "sub": {
            "type": "string"
          }
        },
        "nullable": true
      },
      "EqualsMoneyApplicationPaymentsInformation": {
        "required": [
          "purposes",
          "estimatedPaymentCount",
          "estimatedPaymentVolume",
          "inboundCurrencies",
          "outboundCurrencies",
          "receivingCountries",
          "sendingCountries"
        ],
        "type": "object",
        "properties": {
          "purposes": {
            "type": "array",
            "items": {
              "enum": [
                "SALARY_OR_INCOME",
                "PERSONAL_TRANSFERS_OR_LIVING_EXPENSES",
                "FAMILY_SUPPORT",
                "MORTGAGE_OR_RENT_OR_UTILITY_BILLS",
                "SAVINGS",
                "INVESTMENT_PURPOSES",
                "INVESTMENT_OR_TRADING_IN_CRYPTOCURRENCIES",
                "RECEIVING_OR_SENDING_LOAN_PAYMENTS",
                "PURCHASE_OF_GOODS_OR_SERVICES",
                "TRAVEL",
                "EDUCATION",
                "MEDICAL_EXPENSES",
                "CHARITABLE_DONATIONS",
                "PAYING_SUPPLIERS",
                "PAYING_CONTRACTORS_OR_EMPLOYEES",
                "TRANSFERRING_MONEY_WITHIN_THE_COMPANY_OR_GROUP",
                "PAYING_A_MORTGAGE_BANK_LOAN_INSURANCE_OR_CREDIT",
                "PAYING_TAX_ON_PROFIT_OR_PROPERTY",
                "DISTRIBUTING_COMPANY_PROFITS_OR_PAYING_DIVIDENDS",
                "INVESTING_IN_FUNDS_STOCKS_BONDS_OR_SIMILAR",
                "SENDING_DONATIONS"
              ],
              "type": "string"
            },
            "description": "Personal applications use the personal payment purposes. Business applications use the business payment purposes.\n\nPossible values: SALARY_OR_INCOME, PERSONAL_TRANSFERS_OR_LIVING_EXPENSES, FAMILY_SUPPORT, MORTGAGE_OR_RENT_OR_UTILITY_BILLS, SAVINGS, INVESTMENT_PURPOSES, INVESTMENT_OR_TRADING_IN_CRYPTOCURRENCIES, RECEIVING_OR_SENDING_LOAN_PAYMENTS, PURCHASE_OF_GOODS_OR_SERVICES, TRAVEL, EDUCATION, MEDICAL_EXPENSES, CHARITABLE_DONATIONS, PAYING_SUPPLIERS, PAYING_CONTRACTORS_OR_EMPLOYEES, TRANSFERRING_MONEY_WITHIN_THE_COMPANY_OR_GROUP, PAYING_A_MORTGAGE_BANK_LOAN_INSURANCE_OR_CREDIT, PAYING_TAX_ON_PROFIT_OR_PROPERTY, DISTRIBUTING_COMPANY_PROFITS_OR_PAYING_DIVIDENDS, INVESTING_IN_FUNDS_STOCKS_BONDS_OR_SIMILAR, SENDING_DONATIONS."
          },
          "accountFundingSource": {
            "type": "array",
            "items": {
              "enum": [
                "RECEIVING_FUNDS_FROM_OWN_ACCOUNTS",
                "RECEIVING_SALARY_PENSION_OR_DIVIDENDS",
                "RECEIVING_GIFTS_OR_INHERITANCES",
                "PROCEEDS_FROM_INVESTMENTS",
                "PROCEEDS_FROM_CRYPTOCURRENCY_SALES_OR_TRADING",
                "PROCEEDS_FROM_SALE_OF_A_PROPERTY_OR_PHYSICAL_ASSET",
                "OTHER",
                "RECEIVING_PAYMENTS_FROM_CLIENTS",
                "RECEIVING_THIRD_PARTY_INVESTMENTS",
                "RECEIVING_DONATIONS",
                "RECEIVING_FUNDS_FROM_SUBSIDIARIES_AND_PARENT_COMPANIES"
              ],
              "type": "string"
            },
            "description": "Personal applications use the personal funding sources. Business applications use the business funding sources.\n\nPossible values: RECEIVING_FUNDS_FROM_OWN_ACCOUNTS, RECEIVING_SALARY_PENSION_OR_DIVIDENDS, RECEIVING_GIFTS_OR_INHERITANCES, PROCEEDS_FROM_INVESTMENTS, PROCEEDS_FROM_CRYPTOCURRENCY_SALES_OR_TRADING, PROCEEDS_FROM_SALE_OF_A_PROPERTY_OR_PHYSICAL_ASSET, OTHER, RECEIVING_PAYMENTS_FROM_CLIENTS, RECEIVING_THIRD_PARTY_INVESTMENTS, RECEIVING_DONATIONS, RECEIVING_FUNDS_FROM_SUBSIDIARIES_AND_PARENT_COMPANIES.",
            "nullable": true
          },
          "estimatedPaymentCount": {
            "enum": [
              "FEWER-THAN-5",
              "5-10",
              "10-20",
              "MORE-THAN-20",
              "FEWER-THAN-5-PAYMENTS",
              "5-20",
              "20-50",
              "50-100",
              "100-500",
              "500"
            ],
            "type": "string",
            "description": "Personal count values: FEWER-THAN-5, 5-10, 10-20, MORE-THAN-20. Business count values: FEWER-THAN-5-PAYMENTS, 5-20, 20-50, 50-100, 100-500, 500.\n\nPossible values: FEWER-THAN-5, 5-10, 10-20, MORE-THAN-20, FEWER-THAN-5-PAYMENTS, 5-20, 20-50, 50-100, 100-500, 500."
          },
          "estimatedPaymentVolume": {
            "enum": [
              "0-10000",
              "10001-50000",
              "50001-100000",
              "100001-250000",
              "250001-1000000",
              "1000001-5000000",
              "5000000+"
            ],
            "type": "string",
            "description": "Possible values: 0-10000, 10001-50000, 50001-100000, 100001-250000, 250001-1000000, 1000001-5000000, 5000000+."
          },
          "inboundCurrencies": {
            "type": "array",
            "items": {
              "enum": [
                "AED",
                "AFN",
                "ALL",
                "AMD",
                "ANG",
                "AOA",
                "ARS",
                "AUD",
                "AWG",
                "AZN",
                "BAM",
                "BBD",
                "BDT",
                "BGN",
                "BHD",
                "BIF",
                "BMD",
                "BND",
                "BOB",
                "BOV",
                "BRL",
                "BSD",
                "BTN",
                "BWP",
                "BYN",
                "BZD",
                "CAD",
                "CDF",
                "CHF",
                "CLP",
                "CNY",
                "COP",
                "CRC",
                "CUC",
                "CUP",
                "CVE",
                "CZK",
                "DJF",
                "DKK",
                "DOP",
                "DZD",
                "EGP",
                "ERN",
                "ETB",
                "EUR",
                "FJD",
                "FKP",
                "GBP",
                "GEL",
                "GGP",
                "GHS",
                "GIP",
                "GMD",
                "GNF",
                "GTQ",
                "GYD",
                "HKD",
                "HNL",
                "HRK",
                "HTG",
                "HUF",
                "IDR",
                "ILS",
                "INR",
                "IQD",
                "IRR",
                "ISK",
                "JMD",
                "JOD",
                "JPY",
                "KES",
                "KGS",
                "KHR",
                "KMF",
                "KPW",
                "KRW",
                "KWD",
                "KYD",
                "KZT",
                "LAK",
                "LBP",
                "LKR",
                "LRD",
                "LSL",
                "LTL",
                "LVL",
                "LYD",
                "MAD",
                "MDL",
                "MGA",
                "MKD",
                "MMK",
                "MNT",
                "MOP",
                "MUR",
                "MVR",
                "MWK",
                "MXN",
                "MYR",
                "MZN",
                "NAD",
                "NGN",
                "NIO",
                "NOK",
                "NPR",
                "NZD",
                "OMR",
                "PAB",
                "PEN",
                "PGK",
                "PHP",
                "PKR",
                "PLN",
                "PYG",
                "QAR",
                "RON",
                "RSD",
                "RUB",
                "RWF",
                "SAR",
                "SBD",
                "SCR",
                "SEK",
                "SGD",
                "SHN",
                "SLL",
                "SOS",
                "SRD",
                "SSP",
                "STN",
                "SYP",
                "SZL",
                "THB",
                "TJS",
                "TMT",
                "TND",
                "TOP",
                "TRY",
                "TTD",
                "TWD",
                "TZS",
                "UAH",
                "UGX",
                "USD",
                "UYU",
                "UZS",
                "VND",
                "VUV",
                "WST",
                "XAF",
                "XAG",
                "XAU",
                "XCD",
                "XOF",
                "XPD",
                "XPF",
                "XPT",
                "YER",
                "ZAR",
                "ZMK",
                "ZMW",
                "ZWD"
              ],
              "type": "string"
            },
            "description": "Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GGP, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SEK, SGD, SHN, SLL, SOS, SRD, SSP, STN, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XCD, XOF, XPD, XPF, XPT, YER, ZAR, ZMK, ZMW, ZWD."
          },
          "outboundCurrencies": {
            "type": "array",
            "items": {
              "enum": [
                "AED",
                "AFN",
                "ALL",
                "AMD",
                "ANG",
                "AOA",
                "ARS",
                "AUD",
                "AWG",
                "AZN",
                "BAM",
                "BBD",
                "BDT",
                "BGN",
                "BHD",
                "BIF",
                "BMD",
                "BND",
                "BOB",
                "BOV",
                "BRL",
                "BSD",
                "BTN",
                "BWP",
                "BYN",
                "BZD",
                "CAD",
                "CDF",
                "CHF",
                "CLP",
                "CNY",
                "COP",
                "CRC",
                "CUC",
                "CUP",
                "CVE",
                "CZK",
                "DJF",
                "DKK",
                "DOP",
                "DZD",
                "EGP",
                "ERN",
                "ETB",
                "EUR",
                "FJD",
                "FKP",
                "GBP",
                "GEL",
                "GGP",
                "GHS",
                "GIP",
                "GMD",
                "GNF",
                "GTQ",
                "GYD",
                "HKD",
                "HNL",
                "HRK",
                "HTG",
                "HUF",
                "IDR",
                "ILS",
                "INR",
                "IQD",
                "IRR",
                "ISK",
                "JMD",
                "JOD",
                "JPY",
                "KES",
                "KGS",
                "KHR",
                "KMF",
                "KPW",
                "KRW",
                "KWD",
                "KYD",
                "KZT",
                "LAK",
                "LBP",
                "LKR",
                "LRD",
                "LSL",
                "LTL",
                "LVL",
                "LYD",
                "MAD",
                "MDL",
                "MGA",
                "MKD",
                "MMK",
                "MNT",
                "MOP",
                "MUR",
                "MVR",
                "MWK",
                "MXN",
                "MYR",
                "MZN",
                "NAD",
                "NGN",
                "NIO",
                "NOK",
                "NPR",
                "NZD",
                "OMR",
                "PAB",
                "PEN",
                "PGK",
                "PHP",
                "PKR",
                "PLN",
                "PYG",
                "QAR",
                "RON",
                "RSD",
                "RUB",
                "RWF",
                "SAR",
                "SBD",
                "SCR",
                "SEK",
                "SGD",
                "SHN",
                "SLL",
                "SOS",
                "SRD",
                "SSP",
                "STN",
                "SYP",
                "SZL",
                "THB",
                "TJS",
                "TMT",
                "TND",
                "TOP",
                "TRY",
                "TTD",
                "TWD",
                "TZS",
                "UAH",
                "UGX",
                "USD",
                "UYU",
                "UZS",
                "VND",
                "VUV",
                "WST",
                "XAF",
                "XAG",
                "XAU",
                "XCD",
                "XOF",
                "XPD",
                "XPF",
                "XPT",
                "YER",
                "ZAR",
                "ZMK",
                "ZMW",
                "ZWD"
              ],
              "type": "string"
            },
            "description": "Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GGP, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SEK, SGD, SHN, SLL, SOS, SRD, SSP, STN, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XCD, XOF, XPD, XPF, XPT, YER, ZAR, ZMK, ZMW, ZWD."
          },
          "receivingCountries": {
            "type": "array",
            "items": {
              "enum": [
                "AD",
                "AE",
                "AF",
                "AG",
                "AI",
                "AL",
                "AM",
                "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"
              ],
              "type": "string"
            },
            "description": "Possible values: AD, AE, AF, AG, AI, AL, AM, 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."
          },
          "sendingCountries": {
            "type": "array",
            "items": {
              "enum": [
                "AD",
                "AE",
                "AF",
                "AG",
                "AI",
                "AL",
                "AM",
                "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"
              ],
              "type": "string"
            },
            "description": "Possible values: AD, AE, AF, AG, AI, AL, AM, 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."
          }
        },
        "nullable": true
      },
      "EqualsMoneyApplicationResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "accountId": {
            "type": "string",
            "nullable": true
          },
          "market": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "firstName": {
            "type": "string",
            "nullable": true
          },
          "lastName": {
            "type": "string",
            "nullable": true
          },
          "dob": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "nullable": true
          },
          "nationalities": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "identityDocumentNumber": {
            "type": "string",
            "nullable": true
          },
          "taxId": {
            "type": "string",
            "nullable": true
          },
          "countryOfIncorporation": {
            "type": "string",
            "nullable": true
          },
          "regionOfIncorporation": {
            "type": "string",
            "nullable": true
          },
          "registeredName": {
            "type": "string",
            "nullable": true
          },
          "registrationNumber": {
            "type": "string",
            "nullable": true
          },
          "tradingNames": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "businessOverview": {
            "type": "string",
            "nullable": true
          },
          "industry": {
            "$ref": "#/components/schemas/EqualsMoneyApplicationIndustry"
          },
          "employeeCount": {
            "type": "string",
            "nullable": true
          },
          "incorporationDate": {
            "type": "string",
            "nullable": true
          },
          "website": {
            "type": "string",
            "nullable": true
          },
          "businessPromotionDescription": {
            "type": "string",
            "nullable": true
          },
          "featureInformation": {
            "$ref": "#/components/schemas/EqualsMoneyApplicationFeatureInformation"
          },
          "addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EqualsMoneyApplicationAddress"
            },
            "nullable": true
          },
          "associatedPeople": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EqualsMoneyAssociatedPersonLink"
            },
            "nullable": true
          }
        }
      },
      "EqualsMoneyAssociatedPersonAddressRequest": {
        "required": [
          "addressLine1",
          "townCity",
          "postcode",
          "countryCode"
        ],
        "type": "object",
        "properties": {
          "addressLine1": {
            "type": "string"
          },
          "addressLine2": {
            "type": "string",
            "nullable": true
          },
          "streetName": {
            "type": "string",
            "nullable": true
          },
          "buildingNumber": {
            "type": "string",
            "nullable": true
          },
          "buildingName": {
            "type": "string",
            "nullable": true
          },
          "townCity": {
            "type": "string"
          },
          "postcode": {
            "type": "string"
          },
          "countryCode": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "nullable": true
          },
          "city": {
            "type": "string",
            "nullable": true
          },
          "country": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "type": "string",
            "nullable": true
          }
        },
        "nullable": true
      },
      "EqualsMoneyAssociatedPersonLink": {
        "required": [
          "associatedPersonId",
          "associationType"
        ],
        "type": "object",
        "properties": {
          "associatedPersonId": {
            "type": "string"
          },
          "associationType": {
            "type": "string"
          },
          "jobTitle": {
            "type": "string",
            "nullable": true
          },
          "ownershipPercentage": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "EqualsMoneyAssociatedPersonModel": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "ExternalId": {
            "type": "string"
          },
          "FirstName": {
            "type": "string"
          },
          "LastName": {
            "type": "string"
          },
          "Email": {
            "type": "string"
          },
          "AssociationType": {
            "type": "string"
          },
          "JobTitle": {
            "type": "string",
            "nullable": true
          },
          "OwnershipPercentage": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "IdentityDocumentUploaded": {
            "type": "boolean"
          },
          "AddressDocumentUploaded": {
            "type": "boolean"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "EqualsMoneyAssociatedPersonResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "dateOfBirth": {
            "type": "string",
            "nullable": true
          },
          "emailAddress": {
            "type": "string",
            "nullable": true
          },
          "nationalities": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "taxId": {
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "EqualsMoneyBudgetTransferRequest": {
        "type": "object",
        "properties": {
          "destinationBudgetId": {
            "type": "string"
          },
          "currency": {
            "type": "string"
          },
          "amount": {
            "type": "string"
          },
          "reference": {
            "type": "string"
          }
        }
      },
      "EqualsMoneyCreateAssociatedPersonRequest": {
        "required": [
          "firstName",
          "lastName",
          "dateOfBirth",
          "emailAddress",
          "nationalities"
        ],
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "dateOfBirth": {
            "type": "string"
          },
          "emailAddress": {
            "type": "string"
          },
          "nationalities": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "taxId": {
            "type": "string",
            "nullable": true
          },
          "phoneNumber": {
            "type": "string",
            "nullable": true
          },
          "address": {
            "$ref": "#/components/schemas/EqualsMoneyAssociatedPersonAddressRequest"
          }
        }
      },
      "EqualsMoneyDocumentResponse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "applicationId": {
            "type": "string",
            "nullable": true
          },
          "associatedPersonId": {
            "type": "string",
            "nullable": true
          },
          "purpose": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "EqualsMoneyDownloadResponse": {
        "type": "object",
        "properties": {
          "downloadId": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "format": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "requestedAt": {
            "type": "string",
            "format": "date-time"
          },
          "completedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "downloadUrl": {
            "type": "string",
            "nullable": true
          },
          "expiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "fileSizeBytes": {
            "type": "integer",
            "format": "int64",
            "nullable": true
          },
          "recordCount": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "reportName": {
            "type": "string",
            "nullable": true
          },
          "errorMessage": {
            "type": "string",
            "nullable": true
          },
          "errorCode": {
            "type": "string",
            "nullable": true
          },
          "progress": {
            "type": "integer",
            "format": "int32"
          },
          "estimatedCompletionAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "nullable": true
          }
        }
      },
      "EqualsMoneyKycStatusV2": {
        "type": "object",
        "properties": {
          "ApplicationId": {
            "type": "string",
            "nullable": true
          },
          "ApplicationStatus": {
            "type": "string",
            "nullable": true
          },
          "AccountId": {
            "type": "string",
            "nullable": true
          },
          "RequiredAction": {
            "type": "string",
            "nullable": true
          },
          "ActionUrl": {
            "type": "string",
            "nullable": true
          },
          "additionalDocumentsRequested": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EqualsMoneyAdditionalDocumentRequestV2"
            }
          },
          "Provider": {
            "type": "string"
          },
          "Status": {
            "type": "string"
          },
          "Approved": {
            "type": "boolean"
          },
          "ExternalId": {
            "type": "string",
            "nullable": true
          },
          "LastUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "EqualsMoneyLogo": {
        "type": "object",
        "properties": {
          "url": {
            "type": "string",
            "nullable": true
          },
          "fileName": {
            "type": "string",
            "nullable": true
          }
        },
        "nullable": true
      },
      "EqualsMoneyOnboardingDashboardResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "CorrelationId": {
            "type": "string",
            "nullable": true
          },
          "AccountId": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "EqualsMoneyPeopleResponse": {
        "type": "object",
        "properties": {
          "rows": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/EqualsMoneyPerson"
            }
          },
          "count": {
            "type": "integer",
            "format": "int32"
          },
          "limit": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "offset": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "EqualsMoneyPerson": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "firstName": {
            "type": "string"
          },
          "lastName": {
            "type": "string"
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "dob": {
            "type": "string",
            "nullable": true
          },
          "nationality": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "primaryEmailAddress": {
            "type": "string",
            "nullable": true
          },
          "phone": {
            "type": "string",
            "nullable": true
          },
          "mobile": {
            "type": "string",
            "nullable": true
          },
          "primaryMobileNumber": {
            "type": "string",
            "nullable": true
          },
          "gender": {
            "type": "string",
            "nullable": true
          },
          "middleInitials": {
            "type": "string",
            "nullable": true
          },
          "countryOfResidence": {
            "type": "string",
            "nullable": true
          },
          "occupation": {
            "type": "string",
            "nullable": true
          },
          "employmentStatus": {
            "type": "string",
            "nullable": true
          },
          "annualIncome": {
            "$ref": "#/components/schemas/NullableOfEqualsMoneyAnnualIncome"
          },
          "address": {
            "$ref": "#/components/schemas/EqualsMoneyAddress"
          },
          "avatar": {
            "$ref": "#/components/schemas/EqualsMoneyLogo"
          },
          "avatarType": {
            "type": "string",
            "nullable": true
          },
          "preferred2FAMethod": {
            "type": "string",
            "nullable": true
          },
          "avatarId": {
            "type": "string",
            "nullable": true
          },
          "avatarCdnUrl": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "sub": {
            "type": "string",
            "nullable": true
          },
          "productId": {
            "type": "string",
            "nullable": true
          },
          "locale": {
            "type": "string",
            "nullable": true
          },
          "emailTheme": {
            "type": "string",
            "nullable": true
          },
          "verificationStatus": {
            "type": "string",
            "nullable": true
          },
          "kycStatus": {
            "type": "string",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          },
          "isVerified": {
            "type": "boolean",
            "nullable": true
          },
          "role": {
            "type": "string",
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "persona": {
            "$ref": "#/components/schemas/EqualsMoneyPersona"
          },
          "metadata": {
            "type": "object",
            "nullable": true
          },
          "nationalities": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "verifiedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastLoginAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "EqualsMoneyPersona": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "personId": {
            "type": "string"
          },
          "accountId": {
            "type": "string",
            "nullable": true
          },
          "name": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "string",
            "nullable": true
          },
          "role": {
            "$ref": "#/components/schemas/EqualsMoneyRole"
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "accessLevel": {
            "type": "string",
            "nullable": true
          },
          "isPrimary": {
            "type": "boolean",
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lastAccessedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "nullable": true
      },
      "EqualsMoneyQuoteAmount": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string"
          }
        }
      },
      "EqualsMoneyQuoteCharges": {
        "type": "object",
        "properties": {
          "fee": {
            "type": "number",
            "format": "double"
          },
          "margin": {
            "type": "number",
            "format": "double"
          },
          "other": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "EqualsMoneyQuoteCurrency": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "currency": {
            "$ref": "#/components/schemas/EqualsMoneyQuoteCurrencyInfo"
          }
        }
      },
      "EqualsMoneyQuoteCurrencyInfo": {
        "type": "object",
        "properties": {
          "budgetId": {
            "type": "string",
            "description": "Equals Money budget ID for this currency leg. It can be required on source and target legs depending on quote type; it is not only for internal transfers.",
            "nullable": true
          },
          "currencyCode": {
            "type": "string"
          }
        }
      },
      "EqualsMoneyQuoteDetails": {
        "type": "object",
        "properties": {
          "rate": {
            "type": "number",
            "format": "double"
          },
          "inverseRate": {
            "type": "number",
            "format": "double"
          },
          "fromGbpAmount": {
            "type": "number",
            "format": "double"
          },
          "from": {
            "$ref": "#/components/schemas/EqualsMoneyQuoteAmount"
          },
          "to": {
            "$ref": "#/components/schemas/EqualsMoneyQuoteAmount"
          },
          "direction": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "EqualsMoneyQuotePrice": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string"
          }
        }
      },
      "EqualsMoneyQuoteRequest": {
        "type": "object",
        "properties": {
          "sourceCurrency": {
            "$ref": "#/components/schemas/EqualsMoneyQuoteCurrency"
          },
          "targetCurrency": {
            "$ref": "#/components/schemas/EqualsMoneyQuoteCurrency"
          },
          "settlementDate": {
            "pattern": "^(\\d{8}|\\d{4}-\\d{2}-\\d{2})$",
            "type": "string",
            "description": "Preferred format: yyyyMMdd, for example 20260505. The public API also accepts yyyy-MM-dd and converts it before calling Equals Money.",
            "example": "20260505"
          },
          "type": {
            "$ref": "#/components/schemas/EqualsMoneyQuoteType"
          }
        }
      },
      "EqualsMoneyQuoteResponse": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string"
          },
          "quoteRequestId": {
            "type": "string"
          },
          "settlement": {
            "$ref": "#/components/schemas/EqualsMoneyQuoteSettlement"
          },
          "quote": {
            "$ref": "#/components/schemas/EqualsMoneyQuoteDetails"
          }
        }
      },
      "EqualsMoneyQuoteSettlement": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string"
          },
          "price": {
            "$ref": "#/components/schemas/EqualsMoneyQuotePrice"
          },
          "charges": {
            "$ref": "#/components/schemas/EqualsMoneyQuoteCharges"
          }
        }
      },
      "EqualsMoneyQuoteType": {
        "type": "object",
        "properties": {
          "from": {
            "enum": [
              "balance",
              "bank"
            ],
            "type": "string",
            "description": "Allowed values: balance, bank."
          },
          "to": {
            "enum": [
              "payment",
              "trade",
              "balance",
              "multiple",
              "unknown",
              "forward"
            ],
            "type": "string",
            "description": "Allowed values: payment, trade, balance, multiple, unknown, forward."
          },
          "recipientId": {
            "type": "string",
            "description": "Equals Money recipient ID for payment quotes. This is the provider recipient ID, usually the payee ExternalId, not the local PayeeId.",
            "nullable": true
          }
        }
      },
      "EqualsMoneyRole": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "displayName": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          },
          "category": {
            "type": "string",
            "nullable": true
          },
          "level": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "capabilities": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "isActive": {
            "type": "boolean",
            "nullable": true
          },
          "isSystem": {
            "type": "boolean",
            "nullable": true
          },
          "isAssignable": {
            "type": "boolean",
            "nullable": true
          },
          "metadata": {
            "type": "object",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        },
        "nullable": true
      },
      "EqualsMoneyTradeAmount": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string"
          }
        }
      },
      "EqualsMoneyTradeCharges": {
        "type": "object",
        "properties": {
          "fee": {
            "type": "number",
            "format": "double"
          },
          "margin": {
            "type": "number",
            "format": "double"
          },
          "other": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "EqualsMoneyTradeCurrency": {
        "type": "object",
        "properties": {
          "budgetId": {
            "type": "string",
            "description": "Equals Money budget ID for the payment currency leg."
          },
          "currencyCode": {
            "type": "string"
          }
        }
      },
      "EqualsMoneyTradeDetails": {
        "type": "object",
        "properties": {
          "rate": {
            "type": "number",
            "format": "double"
          },
          "inverseRate": {
            "type": "number",
            "format": "double"
          },
          "from": {
            "$ref": "#/components/schemas/EqualsMoneyTradeAmount"
          },
          "to": {
            "$ref": "#/components/schemas/EqualsMoneyTradeAmount"
          }
        }
      },
      "EqualsMoneyTradePayment": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "$ref": "#/components/schemas/EqualsMoneyTradeCurrency"
          },
          "recipientId": {
            "type": "string",
            "description": "Equals Money recipient ID, usually the payee ExternalId."
          },
          "internalReference": {
            "type": "string",
            "nullable": true
          },
          "externalReference": {
            "type": "string",
            "nullable": true
          }
        },
        "nullable": true
      },
      "EqualsMoneyTradePrice": {
        "type": "object",
        "properties": {
          "amount": {
            "type": "number",
            "format": "double"
          },
          "currency": {
            "type": "string"
          }
        }
      },
      "EqualsMoneyTradeRequest": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string",
            "description": "OrderId returned by POST /api/v2/banking/orders/quote."
          },
          "quoteRequestId": {
            "type": "string",
            "description": "QuoteRequestId returned by POST /api/v2/banking/orders/quote. This is separate from OrderId."
          },
          "moveMoneyRequestId": {
            "type": "string",
            "description": "Optional. Omit unless the upstream quote/payment flow returned a moveMoneyRequestId.",
            "nullable": true
          },
          "payments": {
            "$ref": "#/components/schemas/EqualsMoneyTradePayment"
          }
        }
      },
      "EqualsMoneyTradeResponse": {
        "type": "object",
        "properties": {
          "orderId": {
            "type": "string"
          },
          "bank": {
            "type": "string"
          },
          "settlement": {
            "$ref": "#/components/schemas/EqualsMoneyTradeSettlement"
          },
          "trade": {
            "$ref": "#/components/schemas/EqualsMoneyTradeDetails"
          }
        }
      },
      "EqualsMoneyTradeSettlement": {
        "type": "object",
        "properties": {
          "date": {
            "type": "string"
          },
          "price": {
            "$ref": "#/components/schemas/EqualsMoneyTradePrice"
          },
          "charges": {
            "$ref": "#/components/schemas/EqualsMoneyTradeCharges"
          }
        }
      },
      "EqualsMoneyTransferResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "debitBoxTransactionId": {
            "type": "string"
          },
          "creditBoxTransactionId": {
            "type": "string"
          }
        }
      },
      "EqualsRecipientPrefillResponse": {
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "FirstName": {
            "type": "string"
          },
          "LastName": {
            "type": "string"
          },
          "UserName": {
            "type": "string"
          },
          "MaskedEmail": {
            "type": "string",
            "nullable": true
          },
          "MaskedPhone": {
            "type": "string",
            "nullable": true
          },
          "PaymentType": {
            "type": "string"
          },
          "PaymentMethod": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "Country": {
            "type": "string"
          },
          "AccountNumber": {
            "type": "string"
          },
          "BankName": {
            "type": "string",
            "nullable": true
          },
          "RoutingCodes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutingCodeDto"
            }
          },
          "BankAddress": {
            "$ref": "#/components/schemas/PayeeAddressDto"
          },
          "PayeeAddress": {
            "$ref": "#/components/schemas/PayeeAddressDto"
          }
        }
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "Message": {
            "type": "string"
          },
          "Code": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "type": "integer",
            "format": "int32"
          },
          "ValidationErrors": {
            "type": "object",
            "additionalProperties": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "nullable": true
          },
          "Details": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ExchangeQuote": {
        "type": "object",
        "properties": {
          "FromCurrency": {
            "type": "string"
          },
          "ToCurrency": {
            "type": "string"
          },
          "FromAmount": {
            "type": "string"
          },
          "ToAmount": {
            "type": "string"
          },
          "ExchangeRate": {
            "type": "string"
          },
          "Fee": {
            "type": "string"
          }
        },
        "nullable": true
      },
      "ExternalCryptoWithdrawalRequest": {
        "required": [
          "UserId",
          "Currency",
          "Chain",
          "Amount",
          "DestinationAddress",
          "ConfirmExchangeRate"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "Currency": {
            "type": "string"
          },
          "Chain": {
            "type": "string"
          },
          "Amount": {
            "type": "string"
          },
          "DestinationAddress": {
            "type": "string"
          },
          "ConfirmExchangeRate": {
            "type": "boolean"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "Metadata": {
            "type": "object",
            "nullable": true
          }
        }
      },
      "ExternalCryptoWithdrawalResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "TransactionId": {
            "type": "string",
            "nullable": true
          },
          "InterlaceTransferId": {
            "type": "string",
            "nullable": true
          },
          "WithdrawalRequestId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Status": {
            "type": "string"
          },
          "ActualAmount": {
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "type": "string"
          },
          "Fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransferFee"
            }
          },
          "Message": {
            "type": "string"
          },
          "OtpRequired": {
            "type": "boolean"
          },
          "OtpExpiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "FeeAndQuotaData": {
        "type": "object",
        "properties": {
          "CrossChainQuota": {
            "type": "string"
          },
          "CrossChainFeeRate": {
            "type": "string"
          },
          "CrossChainAmount": {
            "type": "string"
          },
          "Fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransferFee"
            }
          }
        },
        "nullable": true
      },
      "FeeAndQuotaResponse": {
        "type": "object",
        "properties": {
          "Code": {
            "type": "string"
          },
          "Message": {
            "type": "string"
          },
          "Data": {
            "$ref": "#/components/schemas/FeeAndQuotaData"
          }
        }
      },
      "FeeInfo": {
        "type": "object",
        "properties": {
          "Amount": {
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "type": "string"
          },
          "Type": {
            "type": "string"
          }
        }
      },
      "FieldInfoDto": {
        "type": "object",
        "properties": {
          "FieldName": {
            "type": "string"
          },
          "ValidationRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValidationRuleDto"
            },
            "nullable": true
          }
        }
      },
      "FileContentResult": {
        "type": "object",
        "properties": {
          "FileContents": {
            "type": "string",
            "format": "byte"
          },
          "ContentType": {
            "type": "string",
            "nullable": true
          },
          "FileDownloadName": {
            "type": "string",
            "nullable": true
          },
          "LastModified": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "EntityTag": {
            "$ref": "#/components/schemas/EntityTagHeaderValue"
          },
          "EnableRangeProcessing": {
            "type": "boolean"
          }
        }
      },
      "FileResult": {
        "type": "object",
        "properties": {
          "ContentType": {
            "type": "string",
            "nullable": true
          },
          "FileDownloadName": {
            "type": "string",
            "nullable": true
          },
          "LastModified": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "EntityTag": {
            "$ref": "#/components/schemas/EntityTagHeaderValue"
          },
          "EnableRangeProcessing": {
            "type": "boolean"
          }
        }
      },
      "FundAccountRequest": {
        "required": [
          "AccountId"
        ],
        "type": "object",
        "properties": {
          "AccountId": {
            "type": "string"
          },
          "BalanceId": {
            "type": "string",
            "nullable": true
          },
          "Currency": {
            "type": "string",
            "nullable": true
          },
          "Amount": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "FundAccountResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Message": {
            "type": "string"
          },
          "AccountId": {
            "type": "string"
          },
          "BudgetId": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "Amount": {
            "type": "string"
          }
        }
      },
      "GeographicAnalyticsResponse": {
        "type": "object",
        "properties": {
          "RegionStats": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RegionStatsResponse"
            }
          },
          "Period": {
            "type": "string"
          },
          "GeneratedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "GetCardTypeTierResponseV2": {
        "type": "object",
        "properties": {
          "CardTypeTiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardTypeTierV2"
            }
          }
        }
      },
      "GetRefundGasFeeRequest": {
        "required": [
          "Currency",
          "Chain"
        ],
        "type": "object",
        "properties": {
          "Currency": {
            "type": "string"
          },
          "Chain": {
            "type": "string"
          }
        }
      },
      "GetRefundGasFeeResponse": {
        "type": "object",
        "properties": {
          "Fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FeeInfo"
            }
          },
          "Message": {
            "type": "string"
          }
        }
      },
      "GetTiersResponseV2": {
        "type": "object",
        "properties": {
          "Tiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CompanyTierV2"
            }
          }
        }
      },
      "IFormFile": {
        "type": "string",
        "description": "Proof of address document not older than 3 months. Supported file types: JPG, JPEG, PNG, or PDF.",
        "format": "binary"
      },
      "ImportJobResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Status": {
            "type": "string"
          },
          "FileName": {
            "type": "string"
          },
          "TotalRecords": {
            "type": "integer",
            "format": "int32"
          },
          "ProcessedRecords": {
            "type": "integer",
            "format": "int32"
          },
          "SuccessfulRecords": {
            "type": "integer",
            "format": "int32"
          },
          "FailedRecords": {
            "type": "integer",
            "format": "int32"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "StartedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "CompletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ErrorDetails": { }
        }
      },
      "InitiatePayoutRequest": {
        "required": [
          "CheckId",
          "PayeeId",
          "Amount",
          "Currency"
        ],
        "type": "object",
        "properties": {
          "CheckId": {
            "type": "string",
            "description": "CheckId returned by POST /api/v2/banking/payouts/check. When refreshing quotes during OTP, send the latest quote/order ID here."
          },
          "QuoteRequestId": {
            "type": "string",
            "description": "QuoteRequestId returned by POST /api/v2/banking/quotations.",
            "nullable": true
          },
          "PayeeId": {
            "type": "integer",
            "description": "Local payee ID from GET /api/v2/banking/payees.",
            "format": "int32"
          },
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "BalanceId": {
            "type": "string",
            "description": "Optional provider balance or Equals Money budget ID used as funding source.",
            "nullable": true
          }
        }
      },
      "InterLaceCheck": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string"
          },
          "reason": {
            "type": "string"
          }
        }
      },
      "KybIndustryOptionItem": {
        "type": "object",
        "properties": {
          "SubIndustries": {
            "type": "array",
            "items": { }
          },
          "Key": {
            "type": "string"
          },
          "Value": {
            "type": "string"
          }
        }
      },
      "KybOnboardingOptionsResponse": {
        "type": "object",
        "properties": {
          "Markets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KybOptionItem"
            }
          },
          "BusinessTypes": {
            "type": "array",
            "items": { }
          },
          "EmployeeCounts": {
            "type": "array",
            "items": { }
          },
          "AssociationTypes": {
            "type": "array",
            "items": { }
          },
          "Industries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/KybIndustryOptionItem"
            }
          },
          "RequestedFeatures": {
            "type": "array",
            "items": { }
          },
          "CardPurposes": {
            "type": "array",
            "items": { }
          },
          "CardEstimatedAnnualSpendRanges": {
            "type": "array",
            "items": { }
          },
          "CardCountRanges": {
            "type": "array",
            "items": { }
          }
        }
      },
      "KybOptionItem": {
        "type": "object",
        "properties": {
          "Key": {
            "type": "string"
          },
          "Value": {
            "type": "string"
          }
        }
      },
      "KycLevelV2": {
        "enum": [
          "HOPPA_STAGING",
          "HOPPA_PRODUCTION"
        ]
      },
      "KycStatusV2": {
        "enum": [
          "NOT_STARTED",
          "PENDING",
          "APPROVED",
          "REJECTED",
          "RETRY",
          "INITIATED",
          "SUBMITTED"
        ]
      },
      "LocationInsightsResponse": {
        "type": "object",
        "properties": {
          "TopLocations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LocationStatsResponse"
            }
          },
          "Period": {
            "type": "string"
          },
          "Metric": {
            "type": "string"
          },
          "GeneratedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "LocationStatsResponse": {
        "type": "object",
        "properties": {
          "Location": {
            "type": "string"
          },
          "Country": {
            "type": "string"
          },
          "City": {
            "type": "string",
            "nullable": true
          },
          "Value": {
            "type": "integer",
            "format": "int32"
          },
          "Rank": {
            "type": "integer",
            "format": "int32"
          },
          "PercentageOfTotal": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "LoyaltyProgramResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean"
          },
          "PointValueRate": {
            "type": "number",
            "format": "double"
          },
          "PointValueCurrency": {
            "type": "string"
          },
          "Rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoyaltyRuleResponse"
            }
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "LoyaltyRuleResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "RuleName": {
            "type": "string"
          },
          "RuleType": {
            "type": "string"
          },
          "PointsPerUnit": {
            "type": "number",
            "format": "double"
          },
          "MinTransactionAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MaxTransactionAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MerchantCategory": {
            "type": "string",
            "nullable": true
          },
          "UserTier": {
            "type": "string",
            "nullable": true
          },
          "Priority": {
            "type": "integer",
            "format": "int32"
          },
          "IsActive": {
            "type": "boolean"
          },
          "ValidFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ValidUntil": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Multiplier": {
            "type": "number",
            "format": "double"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "LoyaltyRulesResponse": {
        "type": "object",
        "properties": {
          "Rules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/LoyaltyRuleResponse"
            }
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "LoyaltyStatsResponse": {
        "type": "object",
        "properties": {
          "TotalUsers": {
            "type": "integer",
            "format": "int32"
          },
          "ActiveUsers": {
            "type": "integer",
            "format": "int32"
          },
          "TotalPointsEarned": {
            "type": "integer",
            "format": "int32"
          },
          "TotalPointsRedeemed": {
            "type": "integer",
            "format": "int32"
          },
          "TotalTransactions": {
            "type": "integer",
            "format": "int32"
          },
          "AveragePointsPerUser": {
            "type": "number",
            "format": "double"
          },
          "TierDistribution": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TierDistributionResponse"
            }
          },
          "MonthlyTrends": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MonthlyTrendResponse"
            }
          }
        }
      },
      "MandateFrequencyV2": {
        "enum": [
          "ONE_TIME",
          "DAILY",
          "WEEKLY",
          "MONTHLY",
          "QUARTERLY",
          "YEARLY"
        ]
      },
      "MandateStatusV2": {
        "enum": [
          "PENDING",
          "ACTIVE",
          "SUSPENDED",
          "REVOKED",
          "EXPIRED"
        ]
      },
      "MasterToUserTransferPayloadV2": {
        "required": [
          "UserId",
          "Amount",
          "Currency"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "ExternalReferenceId": {
            "type": "string",
            "nullable": true
          },
          "Metadata": {
            "type": "object",
            "nullable": true
          }
        }
      },
      "MerchantCategoryStatsResponse": {
        "type": "object",
        "properties": {
          "Category": {
            "type": "string"
          },
          "MerchantCount": {
            "type": "integer",
            "format": "int32"
          },
          "Percentage": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "MerchantIdResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "MerchantId": {
            "type": "integer",
            "format": "int32"
          },
          "IdentifierType": {
            "type": "string"
          },
          "IdentifierValue": {
            "type": "string"
          },
          "Priority": {
            "type": "integer",
            "format": "int32"
          },
          "IsActive": {
            "type": "boolean"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "MerchantListResponse": {
        "type": "object",
        "properties": {
          "Merchants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantResponse"
            }
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationResponse"
          }
        }
      },
      "MerchantLoyaltyRuleResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "RuleName": {
            "type": "string"
          },
          "PointsPerUnit": {
            "type": "number",
            "format": "double"
          },
          "Multiplier": {
            "type": "number",
            "format": "double"
          },
          "MinTransactionAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MaxTransactionAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean"
          },
          "ValidFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ValidUntil": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "MerchantResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "Category": {
            "type": "string",
            "nullable": true
          },
          "CompanyId": {
            "type": "integer",
            "format": "int32"
          },
          "IsActive": {
            "type": "boolean"
          },
          "IsPartner": {
            "type": "boolean"
          },
          "ContactEmail": {
            "type": "string",
            "nullable": true
          },
          "ContactPhone": {
            "type": "string",
            "nullable": true
          },
          "Address": {
            "type": "string",
            "nullable": true
          },
          "Website": {
            "type": "string",
            "nullable": true
          },
          "MerchantIds": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantIdResponse"
            }
          },
          "LoyaltyRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantLoyaltyRuleResponse"
            }
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "MerchantStats": {
        "type": "object",
        "properties": {
          "MerchantName": {
            "type": "string"
          },
          "TotalAmount": {
            "type": "number",
            "format": "double"
          },
          "TransactionCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "MerchantStatsResponse": {
        "type": "object",
        "properties": {
          "TotalMerchants": {
            "type": "integer",
            "format": "int32"
          },
          "ActiveMerchants": {
            "type": "integer",
            "format": "int32"
          },
          "InactiveMerchants": {
            "type": "integer",
            "format": "int32"
          },
          "PartnerMerchants": {
            "type": "integer",
            "format": "int32"
          },
          "TotalTransactions": {
            "type": "integer",
            "format": "int32"
          },
          "TotalRevenue": {
            "type": "number",
            "format": "double"
          },
          "AverageTransactionValue": {
            "type": "number",
            "format": "double"
          },
          "CategoryStats": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantCategoryStatsResponse"
            }
          },
          "TopMerchants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TopMerchantResponse"
            }
          },
          "TopCategories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TopCategoryResponse"
            }
          },
          "Period": {
            "type": "string"
          },
          "StartDate": {
            "type": "string",
            "format": "date-time"
          },
          "EndDate": {
            "type": "string",
            "format": "date-time"
          },
          "GeneratedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "MonthlyEarningResponse": {
        "type": "object",
        "properties": {
          "Month": {
            "type": "string"
          },
          "Year": {
            "type": "integer",
            "format": "int32"
          },
          "PointsEarned": {
            "type": "integer",
            "format": "int32"
          },
          "TransactionCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "MonthlyStatsResponse": {
        "type": "object",
        "properties": {
          "CurrentMonthEarned": {
            "type": "integer",
            "format": "int32"
          },
          "PreviousMonthEarned": {
            "type": "integer",
            "format": "int32"
          },
          "GrowthPercentage": {
            "type": "number",
            "format": "double"
          },
          "TransactionCount": {
            "type": "integer",
            "format": "int32"
          }
        },
        "nullable": true
      },
      "MonthlyTrendResponse": {
        "type": "object",
        "properties": {
          "Month": {
            "type": "string"
          },
          "PointsEarned": {
            "type": "integer",
            "format": "int32"
          },
          "PointsRedeemed": {
            "type": "integer",
            "format": "int32"
          },
          "TransactionCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "NullableOfEqualsMoneyAnnualIncome": {
        "enum": [
          "LESS_THAN_25K",
          "BETWEEN_25K_AND_50K",
          "BETWEEN_50K_AND_100K",
          "GREATER_THAN_100K",
          null
        ],
        "nullable": true
      },
      "NullableOfKycLevelV2": {
        "enum": [
          "HOPPA_STAGING",
          "HOPPA_PRODUCTION",
          null
        ],
        "nullable": true
      },
      "NullableOfKycSourceV2": {
        "enum": [
          "SUMSUB",
          "MANUAL",
          "API",
          "THIRD_PARTY",
          null
        ],
        "nullable": true
      },
      "NullableOfTransferFeeType": {
        "enum": [
          "None",
          "Fixed",
          "Percentage",
          "Tiered",
          "Exchange",
          "Network",
          "Processing",
          null
        ],
        "nullable": true
      },
      "OccupationCode": {
        "type": "object",
        "properties": {
          "Value": {
            "type": "string"
          },
          "Title": {
            "type": "string"
          },
          "MajorGroup": {
            "type": "string",
            "nullable": true
          },
          "MinorGroup": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "OpenCryptoVirtualAccountResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Message": {
            "type": "string"
          },
          "Results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CryptoVirtualAccountProviderResult"
            }
          }
        }
      },
      "OtpResendRequest": {
        "type": "object",
        "properties": {
          "VerificationToken": {
            "type": "string"
          }
        }
      },
      "OtpResendResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "ExpiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "OtpVerifyRequest": {
        "type": "object",
        "properties": {
          "VerificationToken": {
            "type": "string"
          },
          "OtpCode": {
            "type": "string"
          }
        }
      },
      "OtpVerifyResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "ErrorCode": {
            "type": "string",
            "nullable": true
          },
          "VerificationToken": {
            "type": "string",
            "nullable": true
          },
          "RemainingAttempts": {
            "type": "integer",
            "format": "int32"
          },
          "IsExpired": {
            "type": "boolean"
          },
          "IsLocked": {
            "type": "boolean"
          }
        }
      },
      "PaginatedTransactionResponse": {
        "type": "object",
        "properties": {
          "Data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransactionSummary"
            }
          },
          "Pagination": {
            "$ref": "#/components/schemas/PaginationInfo"
          },
          "Stats": {
            "$ref": "#/components/schemas/TransactionSummaryStats"
          }
        }
      },
      "PaginationInfo": {
        "type": "object",
        "properties": {
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "Total": {
            "type": "integer",
            "format": "int32"
          },
          "TotalPages": {
            "type": "integer",
            "format": "int32"
          },
          "HasPrevious": {
            "type": "boolean"
          },
          "HasNext": {
            "type": "boolean"
          }
        }
      },
      "PaginationResponse": {
        "type": "object",
        "properties": {
          "Total": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "TotalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PayeeAddressDto": {
        "type": "object",
        "properties": {
          "Country": {
            "type": "string"
          },
          "City": {
            "type": "string",
            "nullable": true
          },
          "State": {
            "type": "string",
            "nullable": true
          },
          "PostalCode": {
            "type": "string",
            "nullable": true
          },
          "AddressLine1": {
            "type": "string",
            "nullable": true
          },
          "AddressLine2": {
            "type": "string",
            "nullable": true
          }
        },
        "nullable": true
      },
      "PayeeConfirmRequest": {
        "required": [
          "VerificationToken"
        ],
        "type": "object",
        "properties": {
          "VerificationToken": {
            "type": "string"
          }
        }
      },
      "PayeeInitiateResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "VerificationToken": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string"
          },
          "ExpiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "RecipientName": {
            "type": "string",
            "nullable": true
          },
          "AccountNumberLast4": {
            "type": "string",
            "nullable": true
          },
          "VerificationResult": {
            "$ref": "#/components/schemas/PayeeVerificationResult"
          }
        }
      },
      "PayeeRequiredFieldDto": {
        "type": "object",
        "properties": {
          "PaymentMethod": {
            "enum": [
              "SWIFT",
              "SEPA.INSTANT",
              "SEPA.CREDITTRANSFER",
              "CHAPS",
              "UKFPS",
              "ACH",
              "WIRETRANSFER",
              "OFF_PLATFORM"
            ],
            "type": "string",
            "description": "Available options: SWIFT, SEPA.INSTANT, SEPA.CREDITTRANSFER, CHAPS, UKFPS, ACH, WIRETRANSFER, OFF_PLATFORM."
          },
          "Fields": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/FieldInfoDto"
            },
            "nullable": true
          }
        }
      },
      "PayeeRequiredFieldsResponse": {
        "type": "object",
        "properties": {
          "Data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayeeRequiredFieldDto"
            }
          }
        }
      },
      "PayeeResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "ExternalId": {
            "type": "string",
            "nullable": true
          },
          "FirstName": {
            "type": "string",
            "nullable": true
          },
          "LastName": {
            "type": "string"
          },
          "UserName": {
            "type": "string"
          },
          "PaymentType": {
            "type": "string"
          },
          "PaymentMethod": {
            "type": "string",
            "nullable": true
          },
          "Currency": {
            "type": "string"
          },
          "AccountNumber": {
            "type": "string"
          },
          "BankName": {
            "type": "string",
            "nullable": true
          },
          "RoutingCodeList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RoutingCodeDto"
            },
            "nullable": true
          },
          "routingCodes": {
            "type": "array",
            "items": { },
            "nullable": true
          },
          "BankAddress": {
            "$ref": "#/components/schemas/PayeeAddressDto"
          },
          "PayeeAddress": {
            "$ref": "#/components/schemas/PayeeAddressDto"
          },
          "Comments": {
            "type": "string",
            "nullable": true
          },
          "Provider": {
            "type": "string",
            "nullable": true
          },
          "RequiresConfirmation": {
            "type": "boolean"
          },
          "Status": {
            "type": "string"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PayeeVerificationResult": {
        "type": "object",
        "properties": {
          "Status": {
            "type": "string",
            "nullable": true
          },
          "Title": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "ReasonCode": {
            "type": "string",
            "nullable": true
          },
          "NameMatch": {
            "type": "boolean",
            "nullable": true
          },
          "CanProceed": {
            "type": "boolean"
          }
        },
        "nullable": true
      },
      "PaymentDetails": {
        "type": "object",
        "properties": {
          "PaymentMethod": {
            "type": "string"
          },
          "WalletAddress": {
            "type": "string",
            "nullable": true
          },
          "TransactionId": {
            "type": "string",
            "nullable": true
          },
          "AmountPaid": {
            "type": "number",
            "format": "double"
          },
          "Amount": {
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "type": "string"
          },
          "PaymentDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ProcessedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "PaymentStatus": {
            "type": "string"
          },
          "Status": {
            "type": "string"
          },
          "FailureReason": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PaymentMandateCreateV2": {
        "required": [
          "UserId",
          "MaxAmount",
          "Currency"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "MaxAmount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "Frequency": {
            "$ref": "#/components/schemas/MandateFrequencyV2"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "ExternalReferenceId": {
            "type": "string",
            "nullable": true
          },
          "StartDate": {
            "type": "string",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "nullable": true
          },
          "Metadata": {
            "type": "object",
            "nullable": true
          }
        }
      },
      "PaymentMandateListResponseV2": {
        "type": "object",
        "properties": {
          "Mandates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentMandateResponseV2"
            }
          },
          "Total": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "TotalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaymentMandateResponseV2": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "CompanyId": {
            "type": "integer",
            "format": "int32"
          },
          "MaxAmount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "Frequency": {
            "$ref": "#/components/schemas/MandateFrequencyV2"
          },
          "Status": {
            "$ref": "#/components/schemas/MandateStatusV2"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "ExternalReferenceId": {
            "type": "string",
            "nullable": true
          },
          "StartDate": {
            "type": "string",
            "nullable": true
          },
          "EndDate": {
            "type": "string",
            "nullable": true
          },
          "CreatedAt": {
            "type": "string"
          },
          "UpdatedAt": {
            "type": "string"
          }
        }
      },
      "PaymentMandateRevokeV2": {
        "type": "object",
        "properties": {
          "Reason": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PaymentRequestCancelV2": {
        "type": "object",
        "properties": {
          "Reason": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PaymentRequestCreateV2": {
        "required": [
          "UserId",
          "Amount",
          "Currency"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "ExternalReferenceId": {
            "type": "string",
            "nullable": true
          },
          "CallbackUrl": {
            "type": "string",
            "nullable": true
          },
          "SuccessUrl": {
            "type": "string",
            "nullable": true
          },
          "FailureUrl": {
            "type": "string",
            "nullable": true
          },
          "Metadata": {
            "type": "object",
            "nullable": true
          }
        }
      },
      "PaymentRequestListResponseV2": {
        "type": "object",
        "properties": {
          "PaymentRequests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PaymentRequestResponseV2"
            }
          },
          "Total": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "TotalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PaymentRequestResponseV2": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "CompanyId": {
            "type": "integer",
            "format": "int32"
          },
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "Status": {
            "$ref": "#/components/schemas/PaymentStatusV2"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "ExternalReferenceId": {
            "type": "string",
            "nullable": true
          },
          "CallbackUrl": {
            "type": "string",
            "nullable": true
          },
          "SuccessUrl": {
            "type": "string",
            "nullable": true
          },
          "FailureUrl": {
            "type": "string",
            "nullable": true
          },
          "PaymentUrl": {
            "type": "string",
            "nullable": true
          },
          "CreatedAt": {
            "type": "string"
          },
          "UpdatedAt": {
            "type": "string"
          },
          "CompletedAt": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PaymentResponseV2": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Status": {
            "type": "string"
          },
          "Message": {
            "type": "string"
          },
          "TransactionId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "TransferId": {
            "type": "string",
            "nullable": true
          },
          "ExchangeQuote": {
            "$ref": "#/components/schemas/ExchangeQuote"
          },
          "ExchangeTradeId": {
            "type": "string",
            "nullable": true
          },
          "RequiredAmount": {
            "type": "string",
            "nullable": true
          },
          "AvailableAmount": {
            "type": "string",
            "nullable": true
          },
          "Shortfall": {
            "type": "string",
            "nullable": true
          },
          "TransakOrder": {
            "$ref": "#/components/schemas/TransakOrderInfo"
          },
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "CompanyId": {
            "type": "integer",
            "format": "int32"
          },
          "MandateId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "CreatedAt": {
            "type": "string"
          }
        }
      },
      "PaymentsInformationRequest": {
        "type": "object",
        "properties": {
          "Purposes": {
            "type": "array",
            "items": {
              "enum": [
                "PAYING_SUPPLIERS",
                "PAYING_CONTRACTORS_OR_EMPLOYEES",
                "TRANSFERRING_MONEY_WITHIN_THE_COMPANY_OR_GROUP",
                "PAYING_A_MORTGAGE_BANK_LOAN_INSURANCE_OR_CREDIT",
                "PAYING_TAX_ON_PROFIT_OR_PROPERTY",
                "DISTRIBUTING_COMPANY_PROFITS_OR_PAYING_DIVIDENDS",
                "INVESTING_IN_FUNDS_STOCKS_BONDS_OR_SIMILAR",
                "SENDING_DONATIONS",
                "INVESTMENT_OR_TRADING_IN_CRYPTOCURRENCIES"
              ],
              "type": "string"
            },
            "description": "Possible values: PAYING_SUPPLIERS, PAYING_CONTRACTORS_OR_EMPLOYEES, TRANSFERRING_MONEY_WITHIN_THE_COMPANY_OR_GROUP, PAYING_A_MORTGAGE_BANK_LOAN_INSURANCE_OR_CREDIT, PAYING_TAX_ON_PROFIT_OR_PROPERTY, DISTRIBUTING_COMPANY_PROFITS_OR_PAYING_DIVIDENDS, INVESTING_IN_FUNDS_STOCKS_BONDS_OR_SIMILAR, SENDING_DONATIONS, INVESTMENT_OR_TRADING_IN_CRYPTOCURRENCIES."
          },
          "AccountFundingSource": {
            "type": "array",
            "items": {
              "enum": [
                "RECEIVING_FUNDS_FROM_OWN_ACCOUNTS",
                "RECEIVING_PAYMENTS_FROM_CLIENTS",
                "RECEIVING_THIRD_PARTY_INVESTMENTS",
                "RECEIVING_DONATIONS",
                "PROCEEDS_FROM_CRYPTOCURRENCY_SALES_OR_TRADING",
                "RECEIVING_FUNDS_FROM_SUBSIDIARIES_AND_PARENT_COMPANIES",
                "OTHER"
              ],
              "type": "string"
            },
            "description": "Possible values: RECEIVING_FUNDS_FROM_OWN_ACCOUNTS, RECEIVING_PAYMENTS_FROM_CLIENTS, RECEIVING_THIRD_PARTY_INVESTMENTS, RECEIVING_DONATIONS, PROCEEDS_FROM_CRYPTOCURRENCY_SALES_OR_TRADING, RECEIVING_FUNDS_FROM_SUBSIDIARIES_AND_PARENT_COMPANIES, OTHER.",
            "nullable": true
          },
          "EstimatedPaymentCount": {
            "enum": [
              "FEWER-THAN-5-PAYMENTS",
              "5-20",
              "20-50",
              "50-100",
              "100-500",
              "500"
            ],
            "type": "string",
            "description": "Possible values: FEWER-THAN-5-PAYMENTS, 5-20, 20-50, 50-100, 100-500, 500."
          },
          "EstimatedPaymentVolume": {
            "enum": [
              "0-10000",
              "10001-50000",
              "50001-100000",
              "100001-250000",
              "250001-1000000",
              "1000001-5000000",
              "5000000+"
            ],
            "type": "string",
            "description": "Possible values: 0-10000, 10001-50000, 50001-100000, 100001-250000, 250001-1000000, 1000001-5000000, 5000000+."
          },
          "InboundCurrencies": {
            "type": "array",
            "items": {
              "enum": [
                "AED",
                "AFN",
                "ALL",
                "AMD",
                "ANG",
                "AOA",
                "ARS",
                "AUD",
                "AWG",
                "AZN",
                "BAM",
                "BBD",
                "BDT",
                "BGN",
                "BHD",
                "BIF",
                "BMD",
                "BND",
                "BOB",
                "BOV",
                "BRL",
                "BSD",
                "BTN",
                "BWP",
                "BYN",
                "BZD",
                "CAD",
                "CDF",
                "CHF",
                "CLP",
                "CNY",
                "COP",
                "CRC",
                "CUC",
                "CUP",
                "CVE",
                "CZK",
                "DJF",
                "DKK",
                "DOP",
                "DZD",
                "EGP",
                "ERN",
                "ETB",
                "EUR",
                "FJD",
                "FKP",
                "GBP",
                "GEL",
                "GGP",
                "GHS",
                "GIP",
                "GMD",
                "GNF",
                "GTQ",
                "GYD",
                "HKD",
                "HNL",
                "HRK",
                "HTG",
                "HUF",
                "IDR",
                "ILS",
                "INR",
                "IQD",
                "IRR",
                "ISK",
                "JMD",
                "JOD",
                "JPY",
                "KES",
                "KGS",
                "KHR",
                "KMF",
                "KPW",
                "KRW",
                "KWD",
                "KYD",
                "KZT",
                "LAK",
                "LBP",
                "LKR",
                "LRD",
                "LSL",
                "LTL",
                "LVL",
                "LYD",
                "MAD",
                "MDL",
                "MGA",
                "MKD",
                "MMK",
                "MNT",
                "MOP",
                "MUR",
                "MVR",
                "MWK",
                "MXN",
                "MYR",
                "MZN",
                "NAD",
                "NGN",
                "NIO",
                "NOK",
                "NPR",
                "NZD",
                "OMR",
                "PAB",
                "PEN",
                "PGK",
                "PHP",
                "PKR",
                "PLN",
                "PYG",
                "QAR",
                "RON",
                "RSD",
                "RUB",
                "RWF",
                "SAR",
                "SBD",
                "SCR",
                "SEK",
                "SGD",
                "SHN",
                "SLL",
                "SOS",
                "SRD",
                "SSP",
                "STN",
                "SYP",
                "SZL",
                "THB",
                "TJS",
                "TMT",
                "TND",
                "TOP",
                "TRY",
                "TTD",
                "TWD",
                "TZS",
                "UAH",
                "UGX",
                "USD",
                "UYU",
                "UZS",
                "VND",
                "VUV",
                "WST",
                "XAF",
                "XAG",
                "XAU",
                "XCD",
                "XOF",
                "XPD",
                "XPF",
                "XPT",
                "YER",
                "ZAR",
                "ZMK",
                "ZMW",
                "ZWD"
              ],
              "type": "string"
            },
            "description": "Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GGP, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SEK, SGD, SHN, SLL, SOS, SRD, SSP, STN, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XCD, XOF, XPD, XPF, XPT, YER, ZAR, ZMK, ZMW, ZWD."
          },
          "OutboundCurrencies": {
            "type": "array",
            "items": {
              "enum": [
                "AED",
                "AFN",
                "ALL",
                "AMD",
                "ANG",
                "AOA",
                "ARS",
                "AUD",
                "AWG",
                "AZN",
                "BAM",
                "BBD",
                "BDT",
                "BGN",
                "BHD",
                "BIF",
                "BMD",
                "BND",
                "BOB",
                "BOV",
                "BRL",
                "BSD",
                "BTN",
                "BWP",
                "BYN",
                "BZD",
                "CAD",
                "CDF",
                "CHF",
                "CLP",
                "CNY",
                "COP",
                "CRC",
                "CUC",
                "CUP",
                "CVE",
                "CZK",
                "DJF",
                "DKK",
                "DOP",
                "DZD",
                "EGP",
                "ERN",
                "ETB",
                "EUR",
                "FJD",
                "FKP",
                "GBP",
                "GEL",
                "GGP",
                "GHS",
                "GIP",
                "GMD",
                "GNF",
                "GTQ",
                "GYD",
                "HKD",
                "HNL",
                "HRK",
                "HTG",
                "HUF",
                "IDR",
                "ILS",
                "INR",
                "IQD",
                "IRR",
                "ISK",
                "JMD",
                "JOD",
                "JPY",
                "KES",
                "KGS",
                "KHR",
                "KMF",
                "KPW",
                "KRW",
                "KWD",
                "KYD",
                "KZT",
                "LAK",
                "LBP",
                "LKR",
                "LRD",
                "LSL",
                "LTL",
                "LVL",
                "LYD",
                "MAD",
                "MDL",
                "MGA",
                "MKD",
                "MMK",
                "MNT",
                "MOP",
                "MUR",
                "MVR",
                "MWK",
                "MXN",
                "MYR",
                "MZN",
                "NAD",
                "NGN",
                "NIO",
                "NOK",
                "NPR",
                "NZD",
                "OMR",
                "PAB",
                "PEN",
                "PGK",
                "PHP",
                "PKR",
                "PLN",
                "PYG",
                "QAR",
                "RON",
                "RSD",
                "RUB",
                "RWF",
                "SAR",
                "SBD",
                "SCR",
                "SEK",
                "SGD",
                "SHN",
                "SLL",
                "SOS",
                "SRD",
                "SSP",
                "STN",
                "SYP",
                "SZL",
                "THB",
                "TJS",
                "TMT",
                "TND",
                "TOP",
                "TRY",
                "TTD",
                "TWD",
                "TZS",
                "UAH",
                "UGX",
                "USD",
                "UYU",
                "UZS",
                "VND",
                "VUV",
                "WST",
                "XAF",
                "XAG",
                "XAU",
                "XCD",
                "XOF",
                "XPD",
                "XPF",
                "XPT",
                "YER",
                "ZAR",
                "ZMK",
                "ZMW",
                "ZWD"
              ],
              "type": "string"
            },
            "description": "Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GGP, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SEK, SGD, SHN, SLL, SOS, SRD, SSP, STN, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XCD, XOF, XPD, XPF, XPT, YER, ZAR, ZMK, ZMW, ZWD."
          },
          "ReceivingCountries": {
            "type": "array",
            "items": {
              "enum": [
                "AD",
                "AE",
                "AF",
                "AG",
                "AI",
                "AL",
                "AM",
                "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"
              ],
              "type": "string"
            },
            "description": "Possible values: AD, AE, AF, AG, AI, AL, AM, 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."
          },
          "SendingCountries": {
            "type": "array",
            "items": {
              "enum": [
                "AD",
                "AE",
                "AF",
                "AG",
                "AI",
                "AL",
                "AM",
                "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"
              ],
              "type": "string"
            },
            "description": "Possible values: AD, AE, AF, AG, AI, AL, AM, 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."
          }
        },
        "nullable": true
      },
      "PaymentStatusV2": {
        "enum": [
          "PENDING",
          "PROCESSING",
          "COMPLETED",
          "FAILED",
          "CANCELLED",
          "CONFIRMED"
        ]
      },
      "PayoutFeeDto": {
        "type": "object",
        "properties": {
          "Currency": {
            "type": "string"
          },
          "Amount": {
            "type": "string"
          },
          "FeeType": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "PayoutInitiateResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "VerificationToken": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string"
          },
          "ExpiresAt": {
            "type": "string",
            "format": "date-time"
          },
          "RecipientName": {
            "type": "string",
            "nullable": true
          },
          "Amount": {
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PayoutListResponse": {
        "type": "object",
        "properties": {
          "Total": {
            "type": "integer",
            "format": "int32"
          },
          "List": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayoutResponse"
            }
          }
        }
      },
      "PayoutRefundDto": {
        "type": "object",
        "properties": {
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          }
        },
        "nullable": true
      },
      "PayoutRequestCreateV2": {
        "required": [
          "UserId",
          "Amount",
          "Currency",
          "DestinationAddress"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "DestinationAddress": {
            "type": "string"
          },
          "DestinationTag": {
            "type": "string",
            "nullable": true
          },
          "Network": {
            "type": "string",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "ExternalReferenceId": {
            "type": "string",
            "nullable": true
          },
          "Metadata": {
            "type": "object",
            "nullable": true
          }
        }
      },
      "PayoutResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "ExternalId": {
            "type": "string"
          },
          "ClientTransactionId": {
            "type": "string"
          },
          "BusinessId": {
            "type": "string",
            "nullable": true
          },
          "BusinessTypeCode": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "BalanceId": {
            "type": "string",
            "nullable": true
          },
          "PayeeId": {
            "type": "integer",
            "format": "int32"
          },
          "FromAmount": {
            "type": "string"
          },
          "FromCurrency": {
            "type": "string"
          },
          "ToAmount": {
            "type": "string"
          },
          "ToCurrency": {
            "type": "string"
          },
          "Status": {
            "type": "string"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Refund": {
            "$ref": "#/components/schemas/PayoutRefundDto"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "Fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayoutFeeDto"
            },
            "nullable": true
          }
        }
      },
      "PayoutResponseV2": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "CompanyId": {
            "type": "integer",
            "format": "int32"
          },
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "DestinationAddress": {
            "type": "string"
          },
          "DestinationTag": {
            "type": "string",
            "nullable": true
          },
          "Network": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "$ref": "#/components/schemas/PaymentStatusV2"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "ExternalReferenceId": {
            "type": "string",
            "nullable": true
          },
          "TransactionId": {
            "type": "string",
            "nullable": true
          },
          "TransactionHash": {
            "type": "string",
            "nullable": true
          },
          "Fee": {
            "type": "string",
            "nullable": true
          },
          "CreatedAt": {
            "type": "string"
          },
          "UpdatedAt": {
            "type": "string"
          },
          "CompletedAt": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PointAssignmentStatsResponse": {
        "type": "object",
        "properties": {
          "LoyaltyProgramId": {
            "type": "integer",
            "format": "int32"
          },
          "Period": {
            "type": "string"
          },
          "StartDate": {
            "type": "string",
            "format": "date-time"
          },
          "EndDate": {
            "type": "string",
            "format": "date-time"
          },
          "TotalAssignments": {
            "type": "integer",
            "format": "int32"
          },
          "TotalPointsAssigned": {
            "type": "integer",
            "format": "int32"
          },
          "TotalReversals": {
            "type": "integer",
            "format": "int32"
          },
          "TotalPointsReversed": {
            "type": "integer",
            "format": "int32"
          },
          "AveragePointsPerTransaction": {
            "type": "number",
            "format": "double"
          },
          "SourceBreakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssignmentSourceStatsResponse"
            }
          },
          "DailyStats": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DailyAssignmentStatsResponse"
            }
          },
          "GeneratedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PointCalculationRequest": {
        "required": [
          "Amount",
          "Currency"
        ],
        "type": "object",
        "properties": {
          "Amount": {
            "maximum": 999999.99,
            "minimum": 0.01,
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "maxLength": 3,
            "type": "string"
          },
          "MerchantCategory": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "UserTier": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "TransactionTimestamp": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "PointCalculationResponse": {
        "type": "object",
        "properties": {
          "TotalPoints": {
            "type": "integer",
            "format": "int32"
          },
          "TransactionAmount": {
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "type": "string"
          },
          "AppliedRules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AppliedRuleResponse"
            }
          },
          "Breakdown": {
            "$ref": "#/components/schemas/CalculationBreakdownResponse"
          }
        }
      },
      "PointTransactionResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "TransactionType": {
            "type": "string"
          },
          "Points": {
            "type": "integer",
            "format": "int32"
          },
          "Description": {
            "type": "string"
          },
          "Source": {
            "type": "string"
          },
          "SourceTransactionId": {
            "type": "string",
            "nullable": true
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "ProcessedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Metadata": { }
        }
      },
      "PointTransactionResponse2": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "TransactionType": {
            "type": "string"
          },
          "Points": {
            "type": "integer",
            "format": "int32"
          },
          "Description": {
            "type": "string"
          },
          "Source": {
            "type": "string"
          },
          "SourceTransactionId": {
            "type": "string",
            "nullable": true
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "ProcessedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Metadata": { }
        },
        "nullable": true
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ProcessCardTransactionRequest": {
        "required": [
          "UserId",
          "TransactionId",
          "TransactionAmount",
          "Currency"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "TransactionId": {
            "maxLength": 255,
            "type": "string"
          },
          "TransactionAmount": {
            "maximum": 999999.99,
            "minimum": 0.01,
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "maxLength": 3,
            "type": "string"
          },
          "MerchantName": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "MerchantCategory": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "MerchantId": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "UserTier": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "Source": {
            "maxLength": 100,
            "type": "string"
          },
          "TransactionTimestamp": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Metadata": { }
        }
      },
      "ProcessPaymentRequestRequest": {
        "required": [
          "UserId",
          "PaymentRequestId",
          "TransactionAmount",
          "Currency"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "PaymentRequestId": {
            "maxLength": 255,
            "type": "string"
          },
          "TransactionAmount": {
            "maximum": 999999.99,
            "minimum": 0.01,
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "maxLength": 3,
            "type": "string"
          },
          "PaymentMethod": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "MerchantName": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "MerchantCategory": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "MerchantId": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "UserTier": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "Source": {
            "maxLength": 100,
            "type": "string"
          },
          "TransactionTimestamp": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Metadata": { }
        }
      },
      "ProviderKycStatusV2": {
        "type": "object",
        "properties": {
          "Provider": {
            "type": "string"
          },
          "Status": {
            "type": "string"
          },
          "Approved": {
            "type": "boolean"
          },
          "ExternalId": {
            "type": "string",
            "nullable": true
          },
          "LastUpdated": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "ProviderPayeeResult": {
        "type": "object",
        "properties": {
          "Provider": {
            "$ref": "#/components/schemas/BankProvider"
          },
          "Success": {
            "type": "boolean"
          },
          "ExternalPayeeId": {
            "type": "string",
            "nullable": true
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "PublicBoomFiRampQuoteRequest": {
        "required": [
          "CryptoCurrency",
          "FiatCurrency",
          "CryptoAmount"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "CryptoCurrency": {
            "enum": [
              "USDC",
              "USDT"
            ],
            "type": "string",
            "description": "Supported currencies: USDC, USDT.\n\nPossible values: USDC, USDT."
          },
          "FiatCurrency": {
            "type": "string",
            "description": "Fallback quote rates while BoomFi quotes are unavailable: USD 1:1, EUR 0.88, GBP 0.75, all other currencies 1:1. Fee is 1%."
          },
          "CryptoAmount": {
            "type": "string"
          },
          "ChainId": {
            "enum": [
              1,
              -200,
              137,
              42161
            ],
            "type": "integer",
            "description": "Supported chain IDs: Ethereum Mainnet (1), Tron (-200), Polygon (137), Arbitrum (42161).\n\nPossible values: 1, -200, 137, 42161.",
            "format": "int32"
          }
        }
      },
      "PublicCreateCryptoDepositAddressRequest": {
        "required": [
          "crypto_currency",
          "chain_id"
        ],
        "type": "object",
        "properties": {
          "userId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "crypto_currency": {
            "enum": [
              "USDC",
              "USDT"
            ],
            "type": "string",
            "description": "Supported currencies: USDC, USDT.\n\nPossible values: USDC, USDT."
          },
          "chain_id": {
            "enum": [
              1,
              -200,
              137,
              42161
            ],
            "type": "integer",
            "description": "Supported chain IDs: Ethereum Mainnet (1), Tron (-200), Polygon (137), Arbitrum (42161).\n\nPossible values: 1, -200, 137, 42161.",
            "format": "int32"
          }
        }
      },
      "PublicEqualsToInterlaceRequest": {
        "required": [
          "UserId",
          "FiatCurrency",
          "Amount",
          "BudgetId"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "FiatCurrency": {
            "maxLength": 3,
            "minLength": 3,
            "pattern": "^[A-Za-z]{3}$",
            "type": "string",
            "description": "Fiat source currency. Fallback rates: USD 1:1, EUR 0.88, GBP 0.75, all other currencies 1:1. Fee is 1%."
          },
          "Amount": {
            "maximum": 79228162514264337593543950335,
            "minimum": 0.01,
            "type": "number",
            "format": "double"
          },
          "BudgetId": {
            "type": "string",
            "description": "Equals Money budget ID used as the fiat funding source."
          }
        }
      },
      "PublicEqualsToInterlaceResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Message": {
            "type": "string"
          },
          "Reference": {
            "type": "string"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "BudgetId": {
            "type": "string"
          },
          "FiatCurrency": {
            "type": "string"
          },
          "FiatAmount": {
            "type": "string"
          },
          "CryptoCurrency": {
            "type": "string"
          },
          "EstimatedCryptoAmount": {
            "type": "string"
          },
          "EstimatedFeeAmount": {
            "type": "string"
          },
          "Rate": {
            "type": "string"
          },
          "ChainId": {
            "type": "integer",
            "format": "int32"
          },
          "Chain": {
            "type": "string"
          },
          "DepositAddress": {
            "type": "string"
          },
          "BoomFiPayout": { }
        }
      },
      "PublicEqualsToWalletConfirmRequest": {
        "required": [
          "UserId",
          "VerificationToken",
          "OtpCode"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "VerificationToken": {
            "type": "string"
          },
          "OtpCode": {
            "type": "string"
          }
        }
      },
      "PublicEqualsToWalletConfirmResponse": {
        "type": "object",
        "properties": {
          "Status": {
            "type": "string"
          },
          "Notice": {
            "type": "string"
          },
          "Success": {
            "type": "boolean"
          },
          "VerificationToken": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "ExpiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Reference": {
            "type": "string"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "BudgetId": {
            "type": "string"
          },
          "FiatCurrency": {
            "type": "string"
          },
          "FiatAmount": {
            "type": "string"
          },
          "CryptoCurrency": {
            "type": "string"
          },
          "EstimatedCryptoAmount": {
            "type": "string"
          },
          "EstimatedFeeAmount": {
            "type": "string"
          },
          "Rate": {
            "type": "string"
          },
          "ChainId": {
            "type": "integer",
            "format": "int32"
          },
          "Chain": {
            "type": "string"
          },
          "DestinationAddress": {
            "type": "string"
          },
          "DestinationAddressMasked": {
            "type": "string"
          }
        }
      },
      "PublicEqualsToWalletInitiateRequest": {
        "required": [
          "UserId",
          "FiatCurrency",
          "Amount",
          "BudgetId",
          "CryptoCurrency",
          "Chain",
          "Address"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "FiatCurrency": {
            "maxLength": 3,
            "minLength": 3,
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "Amount": {
            "maximum": 79228162514264337593543950335,
            "minimum": 0.01,
            "type": "number",
            "format": "double"
          },
          "BudgetId": {
            "type": "string"
          },
          "CryptoCurrency": {
            "type": "string"
          },
          "Chain": {
            "type": "string"
          },
          "Address": {
            "type": "string"
          }
        }
      },
      "PublicEqualsToWalletInitiateResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "VerificationToken": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "ExpiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Reference": {
            "type": "string"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "BudgetId": {
            "type": "string"
          },
          "FiatCurrency": {
            "type": "string"
          },
          "FiatAmount": {
            "type": "string"
          },
          "CryptoCurrency": {
            "type": "string"
          },
          "EstimatedCryptoAmount": {
            "type": "string"
          },
          "EstimatedFeeAmount": {
            "type": "string"
          },
          "Rate": {
            "type": "string"
          },
          "ChainId": {
            "type": "integer",
            "format": "int32"
          },
          "Chain": {
            "type": "string"
          },
          "DestinationAddress": {
            "type": "string"
          },
          "DestinationAddressMasked": {
            "type": "string"
          }
        }
      },
      "PublicOpenCryptoVirtualAccountRequest": {
        "required": [
          "Name",
          "Providers",
          "Chains"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "maximum": 2147483647,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string"
          },
          "Providers": {
            "minItems": 1,
            "type": "array",
            "items": {
              "enum": [
                "boomfi"
              ],
              "type": "string"
            },
            "description": "Allowed value: boomfi.\n\nPossible values: boomfi."
          },
          "Chains": {
            "minItems": 1,
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CryptoVirtualAccountChainRequest"
            }
          }
        }
      },
      "QuantumToCryptoExchangeDetails": {
        "type": "object",
        "properties": {
          "FinalCryptoBalance": {
            "type": "number",
            "format": "double"
          },
          "FinalQuantumBalance": {
            "type": "number",
            "format": "double"
          }
        },
        "nullable": true
      },
      "QuantumToCryptoExchangeRequest": {
        "type": "object",
        "properties": {
          "Currency": {
            "type": "string"
          },
          "Amount": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "QuantumToCryptoExchangeResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "ErrorCode": {
            "type": "string",
            "nullable": true
          },
          "SourceAmount": {
            "type": "number",
            "format": "double"
          },
          "TargetCurrency": {
            "type": "string"
          },
          "CryptoAmountReceived": {
            "type": "number",
            "format": "double"
          },
          "Rate": {
            "type": "number",
            "format": "double"
          },
          "Fee": {
            "type": "number",
            "format": "double"
          },
          "TradeId": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "type": "string"
          },
          "InitiatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "Details": {
            "$ref": "#/components/schemas/QuantumToCryptoExchangeDetails"
          }
        }
      },
      "QuantumTopUpEstimateResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          },
          "message": {
            "type": "string",
            "nullable": true
          },
          "usdAmount": {
            "type": "number",
            "format": "double"
          },
          "usdToUsdt": {
            "$ref": "#/components/schemas/QuantumTopUpQuote"
          },
          "usdToUsdc": {
            "$ref": "#/components/schemas/QuantumTopUpQuote"
          },
          "usdtToUsd": {
            "$ref": "#/components/schemas/QuantumTopUpQuote"
          },
          "usdcToUsd": {
            "$ref": "#/components/schemas/QuantumTopUpQuote"
          },
          "usdt": {
            "$ref": "#/components/schemas/QuantumTopUpQuote"
          },
          "usdc": {
            "$ref": "#/components/schemas/QuantumTopUpQuote"
          },
          "topupfee": {
            "type": "number",
            "format": "double"
          },
          "topupfeepercent": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "QuantumTopUpQuote": {
        "type": "object",
        "properties": {
          "baseCurrency": {
            "type": "string"
          },
          "quoteCurrency": {
            "type": "string"
          },
          "baseAmount": {
            "type": "string"
          },
          "rfqAmount": {
            "type": "string"
          },
          "rfqCurrency": {
            "type": "string"
          },
          "fee": {
            "type": "string"
          },
          "feeCurrency": {
            "type": "string",
            "nullable": true
          },
          "rate": {
            "type": "string"
          },
          "quoteId": {
            "type": "string"
          },
          "quoteTime": {
            "type": "string"
          },
          "ttlMs": {
            "type": "string",
            "nullable": true
          }
        },
        "nullable": true
      },
      "QuotationResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "string",
            "description": "Provider quote/order ID. Use this as QuotationId in POST /api/v2/banking/payouts/check."
          },
          "QuoteRequestId": {
            "type": "string",
            "description": "Provider quote request ID. Pass this to payout initiate/create and raw trade calls when required.",
            "nullable": true
          },
          "Rate": {
            "type": "string"
          },
          "Fees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PayoutFeeDto"
            },
            "nullable": true
          },
          "ExpirationTime": {
            "type": "string"
          },
          "CreateTime": {
            "type": "string"
          }
        }
      },
      "RedemptionOptionResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          },
          "Description": {
            "type": "string"
          },
          "PointsRequired": {
            "type": "integer",
            "format": "int32"
          },
          "Category": {
            "type": "string"
          },
          "IsAvailable": {
            "type": "boolean"
          },
          "ImageUrl": {
            "type": "string",
            "nullable": true
          },
          "CashValue": {
            "type": "number",
            "format": "double"
          },
          "ExpiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsLimitedTime": {
            "type": "boolean"
          },
          "QuantityAvailable": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "ReferralCheckResponse": {
        "type": "object",
        "properties": {
          "Valid": {
            "type": "boolean"
          },
          "TierId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "RefreshTokenRequest": {
        "required": [
          "RefreshToken"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "RefreshToken": {
            "type": "string"
          }
        }
      },
      "RegionStatsResponse": {
        "type": "object",
        "properties": {
          "Region": {
            "type": "string"
          },
          "Country": {
            "type": "string"
          },
          "City": {
            "type": "string",
            "nullable": true
          },
          "UserCount": {
            "type": "integer",
            "format": "int32"
          },
          "TransactionCount": {
            "type": "integer",
            "format": "int32"
          },
          "TotalPoints": {
            "type": "integer",
            "format": "int32"
          },
          "AveragePointsPerUser": {
            "type": "number",
            "format": "double"
          },
          "GrowthRate": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "ReportTransactionRequest": {
        "type": "object",
        "properties": {
          "TargetUserId": {
            "type": "integer",
            "format": "int32"
          },
          "TransactionId": {
            "type": "integer",
            "format": "int32"
          },
          "Message": {
            "type": "string"
          }
        }
      },
      "ReversePointAssignmentRequest": {
        "required": [
          "TransactionId",
          "Reason"
        ],
        "type": "object",
        "properties": {
          "TransactionId": {
            "type": "integer",
            "format": "int32"
          },
          "Reason": {
            "maxLength": 500,
            "type": "string"
          },
          "Source": {
            "maxLength": 100,
            "type": "string"
          },
          "Metadata": { }
        }
      },
      "RoutingCodeDto": {
        "type": "object",
        "properties": {
          "RoutingCodeType": {
            "type": "string"
          },
          "RoutingCodeValue": {
            "type": "string"
          }
        }
      },
      "SetUserTierRequest": {
        "type": "object",
        "properties": {
          "TierId": {
            "type": "integer",
            "format": "int32"
          },
          "TierCycle": {
            "type": "string"
          }
        }
      },
      "StringSegment": {
        "type": "object",
        "properties": {
          "Buffer": {
            "type": "string",
            "nullable": true
          },
          "Offset": {
            "type": "integer",
            "format": "int32"
          },
          "Length": {
            "type": "integer",
            "format": "int32"
          },
          "Value": {
            "type": "string",
            "nullable": true
          },
          "HasValue": {
            "type": "boolean"
          }
        }
      },
      "SumSubAccessTokenApiResponseV2": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Token": {
            "type": "string"
          },
          "UserId": {
            "type": "string"
          },
          "Error": { }
        }
      },
      "SumSubAccessTokenRequestV2": {
        "required": [
          "Occupation",
          "AnnualSalary",
          "AccountPurpose",
          "ExpectedMonthlyVolume",
          "DocumentIssueDate"
        ],
        "type": "object",
        "properties": {
          "Occupation": {
            "type": "string"
          },
          "AnnualSalary": {
            "enum": [
              "0-10000",
              "10001-30000",
              "30001-50000",
              "50001-75000",
              "75001-100000",
              "100001-150000",
              "150001-250000",
              "250001+"
            ],
            "type": "string",
            "description": "Possible values: 0-10000, 10001-30000, 30001-50000, 50001-75000, 75001-100000, 100001-150000, 150001-250000, 250001+."
          },
          "AccountPurpose": {
            "type": "string"
          },
          "ExpectedMonthlyVolume": {
            "enum": [
              "0-1000",
              "1001-5000",
              "5001-15000",
              "15001-50000",
              "50001-100000",
              "100001+"
            ],
            "type": "string",
            "description": "Possible values: 0-1000, 1001-5000, 5001-15000, 15001-50000, 50001-100000, 100001+."
          },
          "DocumentIssueDate": {
            "type": "string",
            "description": "Format: YYYY-MM-DD."
          },
          "IpAddress": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "SumSubKycConfiguration": {
        "type": "object",
        "properties": {
          "LevelName": {
            "type": "string",
            "nullable": true
          },
          "TokenValidityHours": {
            "type": "integer",
            "format": "int32"
          },
          "Provider": {
            "type": "string",
            "nullable": true
          },
          "IsTestMode": {
            "type": "boolean"
          },
          "SdkVersion": {
            "type": "string",
            "nullable": true
          },
          "RequiredDocuments": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          }
        },
        "nullable": true
      },
      "SumSubKycUrlResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "ErrorCode": {
            "type": "string",
            "nullable": true
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "AccessToken": {
            "type": "string",
            "nullable": true
          },
          "ApplicantId": {
            "type": "string",
            "nullable": true
          },
          "ExternalUserId": {
            "type": "string",
            "nullable": true
          },
          "KycSubmissionId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Status": {
            "type": "string",
            "nullable": true
          },
          "ExistingStatus": {
            "type": "string",
            "nullable": true
          },
          "ExpiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "CompletedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "IsNewApplicant": {
            "type": "boolean"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Configuration": {
            "$ref": "#/components/schemas/SumSubKycConfiguration"
          }
        }
      },
      "SwapRequest": {
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "TokenIn": {
            "type": "string"
          },
          "TokenOut": {
            "type": "string"
          },
          "AmountIn": {
            "type": "string"
          },
          "Slippage": {
            "type": "number",
            "format": "double"
          },
          "ChainIdIn": {
            "type": "integer",
            "format": "int32"
          },
          "ChainIdOut": {
            "type": "integer",
            "format": "int32"
          },
          "FromAddress": {
            "type": "string"
          },
          "ToAddress": {
            "type": "string"
          }
        }
      },
      "SwapResponse": {
        "type": "object",
        "properties": {
          "Transaction": {
            "$ref": "#/components/schemas/CrossCurveTxResponse"
          },
          "Route": {
            "$ref": "#/components/schemas/CrossCurveRoute"
          },
          "TransactionId": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "TierBenefits": {
        "type": "object",
        "properties": {
          "MaxCards": {
            "type": "integer",
            "format": "int32"
          },
          "DailySpendLimit": {
            "type": "number",
            "format": "double"
          },
          "MonthlySpendLimit": {
            "type": "number",
            "format": "double"
          },
          "DailyWithdrawLimit": {
            "type": "number",
            "format": "double"
          },
          "MonthlyWithdrawLimit": {
            "type": "number",
            "format": "double"
          },
          "VirtualCards": {
            "type": "boolean"
          },
          "PhysicalCards": {
            "type": "boolean"
          },
          "InternationalUsage": {
            "type": "boolean"
          },
          "PremiumSupport": {
            "type": "boolean"
          },
          "CashbackPercentage": {
            "type": "number",
            "format": "double"
          },
          "SupportedCurrencies": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "AvailableCardTypes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CardTypeInfo"
            }
          }
        }
      },
      "TierBuyResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "TierId": {
            "type": "integer",
            "format": "int32"
          },
          "TierName": {
            "type": "string"
          },
          "TierLevel": {
            "type": "string"
          },
          "OrderId": {
            "type": "string",
            "nullable": true
          },
          "TotalCost": {
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "type": "string"
          },
          "Status": {
            "type": "string"
          },
          "PurchasedAt": {
            "type": "string",
            "format": "date-time"
          },
          "ActivatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ExpiresAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "UpgradeDetails": {
            "$ref": "#/components/schemas/TierUpgradeDetails"
          },
          "PaymentDetails": {
            "$ref": "#/components/schemas/PaymentDetails"
          },
          "NewBenefits": {
            "$ref": "#/components/schemas/TierBenefits"
          },
          "ErrorCode": {
            "type": "string",
            "nullable": true
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "Audit": {
            "$ref": "#/components/schemas/TierPurchaseAudit"
          }
        }
      },
      "TierDistributionResponse": {
        "type": "object",
        "properties": {
          "TierLevel": {
            "type": "string"
          },
          "UserCount": {
            "type": "integer",
            "format": "int32"
          },
          "Percentage": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "TierPurchaseAudit": {
        "type": "object",
        "properties": {
          "RequestedBy": {
            "type": "string"
          },
          "RequestedAt": {
            "type": "string",
            "format": "date-time"
          },
          "RequestSource": {
            "type": "string",
            "nullable": true
          },
          "IPAddress": {
            "type": "string",
            "nullable": true
          },
          "UserAgent": {
            "type": "string",
            "nullable": true
          },
          "IsSecureConnection": {
            "type": "boolean"
          },
          "AuthenticationMethod": {
            "type": "string",
            "nullable": true
          },
          "AdditionalNotes": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "TierUpgradeDetails": {
        "type": "object",
        "properties": {
          "PreviousTierName": {
            "type": "string",
            "nullable": true
          },
          "PreviousTierLevel": {
            "type": "string",
            "nullable": true
          },
          "NewTierName": {
            "type": "string"
          },
          "NewTierLevel": {
            "type": "string"
          },
          "IsUpgrade": {
            "type": "boolean"
          },
          "IsDowngrade": {
            "type": "boolean"
          },
          "IsRenewal": {
            "type": "boolean"
          },
          "ChangedFeatures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "AddedFeatures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "RemovedFeatures": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "TopCategoryResponse": {
        "type": "object",
        "properties": {
          "Category": {
            "type": "string"
          },
          "MerchantCount": {
            "type": "integer",
            "format": "int32"
          },
          "TransactionCount": {
            "type": "integer",
            "format": "int32"
          },
          "Revenue": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "TopMerchantResponse": {
        "type": "object",
        "properties": {
          "MerchantId": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          },
          "Category": {
            "type": "string",
            "nullable": true
          },
          "TransactionCount": {
            "type": "integer",
            "format": "int32"
          },
          "Revenue": {
            "type": "number",
            "format": "double"
          },
          "PointsAwarded": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "TopUpConfiguration": {
        "type": "object",
        "properties": {
          "FiatCurrency": {
            "type": "string"
          },
          "CryptoCurrency": {
            "type": "string"
          },
          "Network": {
            "type": "string"
          },
          "MinAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MaxAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "IsTestMode": {
            "type": "boolean"
          }
        },
        "nullable": true
      },
      "TopUpRequest": {
        "type": "object",
        "properties": {
          "CardId": {
            "type": "integer",
            "format": "int32"
          },
          "Token": {
            "type": "string"
          },
          "Value": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "TopUpResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "TransakUrl": {
            "type": "string",
            "nullable": true
          },
          "OrderId": {
            "type": "string",
            "nullable": true
          },
          "Token": {
            "type": "string"
          },
          "Value": {
            "type": "number",
            "format": "double"
          },
          "WalletAddress": {
            "type": "string"
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "ErrorCode": {
            "type": "string",
            "nullable": true
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "Fee": {
            "type": "number",
            "format": "double"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "Configuration": {
            "$ref": "#/components/schemas/TopUpConfiguration"
          }
        }
      },
      "TransactionDetailResponse": {
        "type": "object",
        "properties": {
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "AccountId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Metadata": {
            "type": "object"
          },
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "ExternalTransactionId": {
            "type": "string"
          },
          "RelatedCardTransactionId": {
            "type": "string",
            "nullable": true
          },
          "Type": {
            "type": "string"
          },
          "Description": {
            "type": "string"
          },
          "Amount": {
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "type": "string"
          },
          "Status": {
            "type": "string"
          },
          "TransactionDate": {
            "type": "string",
            "format": "date-time"
          },
          "MerchantName": {
            "type": "string",
            "nullable": true
          },
          "MerchantCategory": {
            "type": "string",
            "nullable": true
          },
          "Category": {
            "type": "string",
            "nullable": true
          },
          "CardId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "WalletId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Source": {
            "type": "string"
          },
          "FeeAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "FeeCurrency": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "TransactionImportConfigResponse": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "ConfigName": {
            "type": "string"
          },
          "ImportMethod": {
            "type": "string"
          },
          "FieldMappings": { },
          "IsActive": {
            "type": "boolean"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "TransactionStatisticsResponse": {
        "type": "object",
        "properties": {
          "TotalTransactions": {
            "type": "integer",
            "format": "int32"
          },
          "TotalAmount": {
            "type": "number",
            "format": "double"
          },
          "AverageAmount": {
            "type": "number",
            "format": "double"
          },
          "AmountByCurrency": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "CountByType": {
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int32"
            }
          },
          "CountByStatus": {
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int32"
            }
          },
          "DailyVolume": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DailyVolume"
            }
          },
          "TopMerchants": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MerchantStats"
            }
          }
        }
      },
      "TransactionSummary": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "ExternalTransactionId": {
            "type": "string"
          },
          "RelatedCardTransactionId": {
            "type": "string",
            "nullable": true
          },
          "Type": {
            "type": "string"
          },
          "Description": {
            "type": "string"
          },
          "Amount": {
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "type": "string"
          },
          "Status": {
            "type": "string"
          },
          "TransactionDate": {
            "type": "string",
            "format": "date-time"
          },
          "MerchantName": {
            "type": "string",
            "nullable": true
          },
          "MerchantCategory": {
            "type": "string",
            "nullable": true
          },
          "Category": {
            "type": "string",
            "nullable": true
          },
          "CardId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "WalletId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Source": {
            "type": "string"
          },
          "FeeAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "FeeCurrency": {
            "type": "string",
            "nullable": true
          },
          "Metadata": { }
        }
      },
      "TransactionSummaryStats": {
        "type": "object",
        "properties": {
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          },
          "TotalAmount": {
            "type": "number",
            "format": "double"
          },
          "AmountByCurrency": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "CountByType": {
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int32"
            }
          },
          "AmountByType": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            }
          },
          "CountByStatus": {
            "type": "object",
            "additionalProperties": {
              "type": "integer",
              "format": "int32"
            }
          }
        }
      },
      "TransakOrderInfo": {
        "type": "object",
        "properties": {
          "OrderId": {
            "type": "string"
          },
          "RedirectUrl": {
            "type": "string"
          },
          "WidgetUrl": {
            "type": "string"
          },
          "Status": {
            "type": "string"
          },
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "CryptoAmount": {
            "type": "string"
          },
          "CryptoCurrency": {
            "type": "string"
          }
        },
        "nullable": true
      },
      "TransferDestinationTypeV2": {
        "enum": [
          "CRYPTO_ASSETS",
          "FIAT_ASSETS",
          "EXTERNAL_WALLET",
          "CARD_BALANCE",
          "QUANTUM_SUB_ACCOUNT",
          "COMPANY_MASTER_ACCOUNT"
        ]
      },
      "TransferDetails": {
        "type": "object",
        "properties": {
          "SourceCurrency": {
            "type": "string"
          },
          "DestinationCurrency": {
            "type": "string"
          },
          "Amount": {
            "type": "number",
            "format": "double"
          },
          "Status": {
            "type": "string"
          },
          "InterlaceAccountId": {
            "type": "string",
            "nullable": true
          },
          "TransferPath": {
            "type": "string",
            "nullable": true
          },
          "RequiresExchange": {
            "type": "boolean"
          },
          "ExchangeRate": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "AvailableBalances": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "nullable": true
          },
          "RequiredAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "TotalAvailableValue": {
            "type": "number",
            "format": "double",
            "nullable": true
          }
        },
        "nullable": true
      },
      "TransferEndpointInfo": {
        "type": "object",
        "properties": {
          "Type": {
            "type": "string"
          },
          "Id": {
            "type": "string",
            "nullable": true
          },
          "Chain": {
            "type": "string",
            "nullable": true
          },
          "Address": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "TransferFee": {
        "type": "object",
        "properties": {
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "Type": {
            "type": "string"
          }
        }
      },
      "TransferListResponseV2": {
        "type": "object",
        "properties": {
          "Transfers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TransferResponseV2"
            }
          },
          "Total": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "TotalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "TransferResponseV2": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "Status": {
            "$ref": "#/components/schemas/TransferStatusV2"
          },
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "SourceType": {
            "$ref": "#/components/schemas/TransferSourceTypeV2"
          },
          "DestinationType": {
            "$ref": "#/components/schemas/TransferDestinationTypeV2"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "ExternalReferenceId": {
            "type": "string",
            "nullable": true
          },
          "CreatedAt": {
            "type": "string"
          },
          "CompletedAt": {
            "type": "string",
            "nullable": true
          },
          "UpdatedAt": {
            "type": "string",
            "nullable": true
          },
          "Metadata": {
            "type": "object",
            "nullable": true
          },
          "TransferType": {
            "type": "string",
            "nullable": true
          },
          "Message": {
            "type": "string",
            "nullable": true
          },
          "ErrorCode": {
            "type": "string",
            "nullable": true
          },
          "FeeAmount": {
            "type": "string",
            "nullable": true
          },
          "FeeCurrency": {
            "type": "string",
            "nullable": true
          },
          "FeeType": {
            "$ref": "#/components/schemas/NullableOfTransferFeeType"
          },
          "NetAmount": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "TransferSourceTypeV2": {
        "enum": [
          "CRYPTO_ASSETS",
          "FIAT_ASSETS",
          "EXTERNAL_WALLET",
          "CARD_BALANCE",
          "QUANTUM_SUB_ACCOUNT",
          "COMPANY_MASTER_ACCOUNT"
        ]
      },
      "TransferStatusV2": {
        "enum": [
          "PENDING",
          "PROCESSING",
          "COMPLETED",
          "FAILED",
          "CANCELLED"
        ]
      },
      "UnifiedAccount": {
        "type": "object",
        "properties": {
          "AccountId": {
            "type": "string"
          },
          "ParentAccountId": {
            "type": "string",
            "nullable": true
          },
          "BudgetId": {
            "type": "string",
            "nullable": true
          },
          "DisplayName": {
            "type": "string"
          },
          "AccountType": {
            "type": "string"
          },
          "Status": {
            "type": "string"
          },
          "Provider": {
            "$ref": "#/components/schemas/BankProvider"
          },
          "SupportedCurrencies": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "UnifiedAccountsResponse": {
        "type": "object",
        "properties": {
          "Accounts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnifiedAccount"
            }
          },
          "TotalCount": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "UnifiedBalance": {
        "type": "object",
        "properties": {
          "AccountId": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "Available": {
            "type": "number",
            "format": "double"
          },
          "Current": {
            "type": "number",
            "format": "double"
          },
          "Provider": {
            "$ref": "#/components/schemas/BankProvider"
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "UnifiedBalanceResponse": {
        "type": "object",
        "properties": {
          "Balances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnifiedBalance"
            }
          },
          "TotalAvailableUsd": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "UnifiedPayee": {
        "type": "object",
        "properties": {
          "PayeeId": {
            "type": "integer",
            "format": "int32"
          },
          "Name": {
            "type": "string"
          },
          "BankName": {
            "type": "string",
            "nullable": true
          },
          "Currency": {
            "type": "string"
          },
          "AccountNumber": {
            "type": "string",
            "nullable": true
          },
          "Iban": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "type": "string"
          },
          "Providers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BankProvider"
            }
          },
          "ProviderRecords": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnifiedPayeeProviderRecord"
            }
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "UnifiedPayeeDeleteResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Results": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderPayeeResult"
            }
          }
        }
      },
      "UnifiedPayeeProviderRecord": {
        "type": "object",
        "properties": {
          "Provider": {
            "$ref": "#/components/schemas/BankProvider"
          },
          "ExternalPayeeId": {
            "type": "string"
          },
          "LocalPayeeId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          }
        }
      },
      "UnifiedPayeesResponse": {
        "type": "object",
        "properties": {
          "Payees": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnifiedPayee"
            }
          },
          "Total": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "Limit": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "UnifiedQuoteRequest": {
        "type": "object",
        "properties": {
          "SourceAccountId": {
            "type": "string"
          },
          "PayeeId": {
            "type": "integer",
            "format": "int32"
          },
          "Amount": {
            "type": "number",
            "format": "double"
          },
          "SourceCurrency": {
            "type": "string"
          },
          "TargetCurrency": {
            "type": "string"
          }
        }
      },
      "UnifiedQuoteResponse": {
        "type": "object",
        "properties": {
          "QuoteId": {
            "type": "string"
          },
          "SourceAmount": {
            "type": "number",
            "format": "double"
          },
          "SourceCurrency": {
            "type": "string"
          },
          "TargetAmount": {
            "type": "number",
            "format": "double"
          },
          "TargetCurrency": {
            "type": "string"
          },
          "ExchangeRate": {
            "type": "number",
            "format": "double"
          },
          "Fee": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "Provider": {
            "$ref": "#/components/schemas/BankProvider"
          },
          "ExpiresAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "UnifiedTradeExecuteRequest": {
        "type": "object",
        "properties": {
          "QuoteId": {
            "type": "string"
          },
          "AccountId": {
            "type": "string"
          }
        }
      },
      "UnifiedTradeQuoteRequest": {
        "type": "object",
        "properties": {
          "AccountId": {
            "type": "string"
          },
          "BaseCurrency": {
            "type": "string"
          },
          "QuoteCurrency": {
            "type": "string"
          },
          "Amount": {
            "type": "number",
            "format": "double"
          },
          "Side": {
            "enum": [
              "buy",
              "sell"
            ],
            "type": "string",
            "description": "Allowed values: buy, sell."
          }
        }
      },
      "UnifiedTradeQuoteResponse": {
        "type": "object",
        "properties": {
          "QuoteId": {
            "type": "string"
          },
          "BaseCurrency": {
            "type": "string"
          },
          "QuoteCurrency": {
            "type": "string"
          },
          "Amount": {
            "type": "number",
            "format": "double"
          },
          "QuoteAmount": {
            "type": "number",
            "format": "double"
          },
          "ExchangeRate": {
            "type": "number",
            "format": "double"
          },
          "Provider": {
            "$ref": "#/components/schemas/BankProvider"
          },
          "ExpiresAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "UnifiedTradeResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "TradeId": {
            "type": "string"
          },
          "Status": {
            "type": "string"
          },
          "Amount": {
            "type": "number",
            "format": "double"
          },
          "ReceivedAmount": {
            "type": "number",
            "format": "double"
          },
          "ExchangeRate": {
            "type": "number",
            "format": "double"
          },
          "Provider": {
            "$ref": "#/components/schemas/BankProvider"
          },
          "ExecutedAt": {
            "type": "string",
            "format": "date-time"
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "UnifiedTransaction": {
        "type": "object",
        "properties": {
          "TransactionId": {
            "type": "string"
          },
          "AccountId": {
            "type": "string"
          },
          "Type": {
            "type": "string"
          },
          "Amount": {
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "type": "string"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "type": "string"
          },
          "Provider": {
            "$ref": "#/components/schemas/BankProvider"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "UnifiedTransactionsResponse": {
        "type": "object",
        "properties": {
          "Transactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UnifiedTransaction"
            }
          },
          "Total": {
            "type": "integer",
            "format": "int32"
          },
          "Page": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "UnifiedTransferResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "TransferId": {
            "type": "string"
          },
          "Status": {
            "type": "string"
          },
          "Amount": {
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "type": "string"
          },
          "Provider": {
            "$ref": "#/components/schemas/BankProvider"
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "UnloadAudit": {
        "type": "object",
        "properties": {
          "RequestedBy": {
            "type": "string"
          },
          "RequestedAt": {
            "type": "string",
            "format": "date-time"
          },
          "RequestSource": {
            "type": "string",
            "nullable": true
          },
          "IPAddress": {
            "type": "string",
            "nullable": true
          },
          "UserAgent": {
            "type": "string",
            "nullable": true
          },
          "IsSecureConnection": {
            "type": "boolean"
          },
          "AuthenticationMethod": {
            "type": "string",
            "nullable": true
          },
          "AdditionalNotes": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "UnloadDestination": {
        "type": "object",
        "properties": {
          "Type": {
            "type": "string"
          },
          "AccountNumber": {
            "type": "string",
            "nullable": true
          },
          "WalletAddress": {
            "type": "string",
            "nullable": true
          },
          "BankName": {
            "type": "string",
            "nullable": true
          },
          "RoutingNumber": {
            "type": "string",
            "nullable": true
          },
          "SwiftCode": {
            "type": "string",
            "nullable": true
          },
          "AccountHolderName": {
            "type": "string",
            "nullable": true
          },
          "IsVerified": {
            "type": "boolean"
          }
        }
      },
      "UpdateCardDiscountRequest": {
        "type": "object",
        "properties": {
          "DiscountCode": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "UpdateDiscountCodeRequest": {
        "type": "object",
        "properties": {
          "Code": {
            "type": "string",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "DiscountType": {
            "type": "string",
            "nullable": true
          },
          "BuyDiscountPercent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MonthlyDiscountPercent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "YearlyDiscountPercent": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "BuyDiscountFixed": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MonthlyDiscountFixed": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "YearlyDiscountFixed": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MaxUsesTotal": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "MaxUsesPerUser": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ValidFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ValidTill": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ApplicableUserIds": {
            "type": "array",
            "items": {
              "type": "integer",
              "format": "int32"
            },
            "nullable": true
          },
          "IsActive": {
            "type": "boolean",
            "nullable": true
          },
          "UpdateExistingCards": {
            "type": "boolean"
          }
        }
      },
      "UpdateLoyaltyProgramRequest": {
        "required": [
          "Name",
          "PointValueRate"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 255,
            "type": "string"
          },
          "Description": {
            "maxLength": 1000,
            "type": "string",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean"
          },
          "PointValueRate": {
            "maximum": 999.9999,
            "minimum": 0.0001,
            "type": "number",
            "format": "double"
          },
          "PointValueCurrency": {
            "maxLength": 3,
            "type": "string"
          }
        }
      },
      "UpdateLoyaltyRuleRequest": {
        "required": [
          "RuleName",
          "RuleType",
          "PointsPerUnit"
        ],
        "type": "object",
        "properties": {
          "RuleName": {
            "maxLength": 255,
            "type": "string"
          },
          "RuleType": {
            "maxLength": 50,
            "type": "string"
          },
          "PointsPerUnit": {
            "maximum": 999.9999,
            "minimum": 0.0001,
            "type": "number",
            "format": "double"
          },
          "MinTransactionAmount": {
            "maximum": 999999.99,
            "minimum": 0.01,
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MaxTransactionAmount": {
            "maximum": 999999.99,
            "minimum": 0.01,
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MerchantCategory": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "UserTier": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "Priority": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "IsActive": {
            "type": "boolean"
          },
          "ValidFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ValidUntil": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "Multiplier": {
            "maximum": 10,
            "minimum": 0.1,
            "type": "number",
            "format": "double"
          }
        }
      },
      "UpdateMerchantIdRequest": {
        "required": [
          "IdentifierType",
          "IdentifierValue"
        ],
        "type": "object",
        "properties": {
          "IdentifierType": {
            "maxLength": 50,
            "type": "string"
          },
          "IdentifierValue": {
            "maxLength": 255,
            "type": "string"
          },
          "Priority": {
            "maximum": 100,
            "minimum": 1,
            "type": "integer",
            "format": "int32"
          },
          "IsActive": {
            "type": "boolean"
          }
        }
      },
      "UpdateMerchantLoyaltyRuleRequest": {
        "required": [
          "RuleName",
          "PointsPerUnit"
        ],
        "type": "object",
        "properties": {
          "RuleName": {
            "maxLength": 255,
            "type": "string"
          },
          "PointsPerUnit": {
            "maximum": 999.9999,
            "minimum": 0.0001,
            "type": "number",
            "format": "double"
          },
          "Multiplier": {
            "maximum": 10,
            "minimum": 0.1,
            "type": "number",
            "format": "double"
          },
          "MinTransactionAmount": {
            "maximum": 999999.99,
            "minimum": 0.01,
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "MaxTransactionAmount": {
            "maximum": 999999.99,
            "minimum": 0.01,
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean"
          },
          "ValidFrom": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "ValidUntil": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "UpdateMerchantRequest": {
        "required": [
          "Name"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 255,
            "type": "string"
          },
          "Description": {
            "maxLength": 1000,
            "type": "string",
            "nullable": true
          },
          "Category": {
            "maxLength": 100,
            "type": "string",
            "nullable": true
          },
          "IsActive": {
            "type": "boolean"
          },
          "IsPartner": {
            "type": "boolean"
          },
          "ContactEmail": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          },
          "ContactPhone": {
            "maxLength": 50,
            "type": "string",
            "nullable": true
          },
          "Address": {
            "maxLength": 500,
            "type": "string",
            "nullable": true
          },
          "Website": {
            "maxLength": 255,
            "type": "string",
            "nullable": true
          }
        }
      },
      "UserAssetsResponseV2": {
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "Assets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AssetBalance"
            }
          },
          "RetrievedAt": {
            "type": "string"
          }
        }
      },
      "UserBudgetBalance": {
        "type": "object",
        "properties": {
          "Currency": {
            "type": "string"
          },
          "AvailableBalance": {
            "type": "number",
            "format": "double"
          },
          "LedgerBalance": {
            "type": "number",
            "format": "double"
          },
          "PendingBalance": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "UserBudgetCreateRequest": {
        "required": [
          "Name",
          "Currencies"
        ],
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 75,
            "type": "string"
          },
          "Currencies": {
            "minItems": 1,
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "Type": {
            "type": "string",
            "nullable": true
          },
          "Features": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "AllowCurrencyAlignment": {
            "type": "boolean",
            "nullable": true
          }
        }
      },
      "UserBudgetListResponse": {
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "Total": {
            "type": "integer",
            "format": "int32"
          },
          "Budgets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserBudgetResponse"
            }
          }
        }
      },
      "UserBudgetResponse": {
        "type": "object",
        "properties": {
          "BudgetId": {
            "type": "string"
          },
          "AccountId": {
            "type": "string"
          },
          "Name": {
            "type": "string"
          },
          "Type": {
            "type": "string",
            "nullable": true
          },
          "ParentId": {
            "type": "string",
            "nullable": true
          },
          "Status": {
            "type": "string"
          },
          "AllowCurrencyAlignment": {
            "type": "boolean",
            "nullable": true
          },
          "Currencies": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "Balances": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserBudgetBalance"
            }
          },
          "CreatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "UpdatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "UserBudgetTransferRequest": {
        "required": [
          "DestinationBudgetId",
          "Amount",
          "Currency"
        ],
        "type": "object",
        "properties": {
          "DestinationBudgetId": {
            "type": "string"
          },
          "Amount": {
            "minimum": 0.01,
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "maxLength": 3,
            "minLength": 3,
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "Reference": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "nullable": true
          }
        }
      },
      "UserBudgetTransferResponse": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "TransferId": {
            "type": "string",
            "nullable": true
          },
          "SourceBudgetId": {
            "type": "string"
          },
          "DestinationBudgetId": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "Amount": {
            "type": "string"
          },
          "Reference": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "UserBudgetUpdateRequest": {
        "type": "object",
        "properties": {
          "Name": {
            "maxLength": 75,
            "type": "string",
            "nullable": true
          },
          "Status": {
            "maxLength": 20,
            "minLength": 0,
            "type": "string",
            "nullable": true
          },
          "AllowCurrencyAlignment": {
            "type": "boolean",
            "nullable": true
          }
        }
      },
      "UserCreateV2": {
        "required": [
          "Email",
          "FirstName",
          "LastName",
          "ExternalUserId"
        ],
        "type": "object",
        "properties": {
          "Email": {
            "type": "string"
          },
          "FirstName": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string"
          },
          "LastName": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string"
          },
          "Phone": {
            "type": "string"
          },
          "ExternalUserId": {
            "type": "string"
          },
          "TierId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "TierBillingCycle": {
            "pattern": "^(monthly|yearly)$",
            "type": "string",
            "nullable": true
          },
          "Metadata": {
            "type": "object",
            "nullable": true
          },
          "InitialKycSource": {
            "$ref": "#/components/schemas/NullableOfKycSourceV2"
          },
          "DateOfBirth": {
            "type": "string",
            "nullable": true
          },
          "Address": {
            "type": "string",
            "nullable": true
          },
          "City": {
            "type": "string",
            "nullable": true
          },
          "State": {
            "type": "string",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "nullable": true
          },
          "ZipCode": {
            "type": "string",
            "nullable": true
          },
          "CreateMandate": {
            "type": "boolean",
            "nullable": true
          },
          "MandateMaxAmount": {
            "type": "string",
            "nullable": true
          },
          "MandateCurrency": {
            "type": "string",
            "nullable": true
          },
          "MandateDescription": {
            "type": "string",
            "nullable": true
          },
          "BusinessName": {
            "type": "string",
            "nullable": true
          },
          "BusinessExternalId": {
            "type": "string",
            "nullable": true
          },
          "BusinessParentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "ReferralId": {
            "type": "string",
            "nullable": true
          },
          "AccountType": {
            "pattern": "^(personal|business)$",
            "enum": [
              "business",
              "personal"
            ],
            "type": "string",
            "description": "Allowed values: business, personal. Defaults to personal when omitted.",
            "nullable": true
          }
        }
      },
      "UserCryptoAddressListResponseV2": {
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "Addresses": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CryptoAddress"
            }
          },
          "CryptoAddresses": {
            "type": "array",
            "items": { }
          }
        }
      },
      "UserDashboardResponse": {
        "type": "object",
        "properties": {
          "PointBalance": {
            "$ref": "#/components/schemas/UserPointBalanceResponse"
          },
          "RecentTransactions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PointTransactionResponse"
            }
          },
          "RedemptionOptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RedemptionOptionResponse"
            }
          },
          "Stats": {
            "$ref": "#/components/schemas/UserLoyaltyStatsResponse"
          },
          "Program": {
            "$ref": "#/components/schemas/LoyaltyProgramResponse"
          },
          "GeneratedAt": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "UserDetailResponseV2": {
        "type": "object",
        "properties": {
          "Phone": {
            "type": "string",
            "nullable": true
          },
          "DateOfBirth": {
            "type": "string",
            "nullable": true
          },
          "Address": {
            "type": "string",
            "nullable": true
          },
          "City": {
            "type": "string",
            "nullable": true
          },
          "State": {
            "type": "string",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "nullable": true
          },
          "ZipCode": {
            "type": "string",
            "nullable": true
          },
          "KycProvider": {
            "type": "string",
            "nullable": true
          },
          "KycVerificationId": {
            "type": "string",
            "nullable": true
          },
          "KycVerificationDate": {
            "type": "string",
            "nullable": true
          },
          "KycRejectionReason": {
            "type": "string",
            "nullable": true
          },
          "KycCompletedAt": {
            "type": "string",
            "nullable": true
          },
          "SumsubTokenForTransak": {
            "type": "string",
            "nullable": true
          },
          "LastKycSubmissionId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "LastKycSumsubUserId": {
            "type": "string",
            "nullable": true
          },
          "LastKycProviderStatus": {
            "type": "string",
            "nullable": true
          },
          "LastKycProviderApplicationId": {
            "type": "string",
            "nullable": true
          },
          "ReferralId": {
            "type": "string",
            "nullable": true
          },
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "ExternalUserId": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string"
          },
          "FirstName": {
            "type": "string"
          },
          "LastName": {
            "type": "string"
          },
          "Status": {
            "$ref": "#/components/schemas/AccountStatusV2"
          },
          "KycStatus": {
            "$ref": "#/components/schemas/KycStatusV2"
          },
          "KycLevel": {
            "$ref": "#/components/schemas/NullableOfKycLevelV2"
          },
          "CreatedAt": {
            "type": "string"
          },
          "UpdatedAt": {
            "type": "string"
          },
          "CompanyId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PackageId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "BusinessName": {
            "type": "string",
            "nullable": true
          },
          "BusinessExternalId": {
            "type": "string",
            "nullable": true
          },
          "BusinessParentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AccountType": {
            "enum": [
              "business",
              "personal"
            ],
            "type": "string",
            "description": "Allowed values: business, personal.",
            "nullable": true
          },
          "PrimaryExternalWalletId": {
            "type": "string",
            "nullable": true
          },
          "SelectedTierId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "TierBillingCycle": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "UserInternalTransferRequest": {
        "required": [
          "UserId",
          "SourceBalanceId",
          "DestinationBalanceId",
          "Amount",
          "Currency"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "SourceBalanceId": {
            "type": "string"
          },
          "DestinationBalanceId": {
            "type": "string"
          },
          "Amount": {
            "minimum": 0.01,
            "type": "number",
            "format": "double"
          },
          "Currency": {
            "maxLength": 3,
            "minLength": 3,
            "pattern": "^[A-Za-z]{3}$",
            "type": "string"
          },
          "Reference": {
            "maxLength": 200,
            "minLength": 0,
            "type": "string",
            "nullable": true
          }
        }
      },
      "UserKycSumSubTokenRequestV2": {
        "required": [
          "SumsubSdkToken",
          "DocumentIssueDate",
          "ExpiryDate",
          "PhoneCountryCode",
          "Phone",
          "Occupation",
          "AnnualSalary",
          "AccountPurpose",
          "ExpectedMonthlyVolume"
        ],
        "type": "object",
        "properties": {
          "SumsubSdkToken": {
            "type": "string"
          },
          "FirstName": {
            "type": "string",
            "nullable": true
          },
          "LastName": {
            "type": "string",
            "nullable": true
          },
          "MiddleName": {
            "type": "string",
            "nullable": true
          },
          "Dob": {
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "nullable": true
          },
          "Gender": {
            "pattern": "^(M|F)$",
            "type": "string",
            "nullable": true
          },
          "Nationality": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code.",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "nullable": true
          },
          "PlaceOfBirth": {
            "type": "string",
            "nullable": true
          },
          "CountryOfBirth": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "NationalId": {
            "type": "string",
            "nullable": true
          },
          "IdType": {
            "pattern": "^(CN-RIC|PASSPORT|HK-HKID|DLN|Government-Issued ID Card)$",
            "type": "string",
            "nullable": true
          },
          "DocumentIssueDate": {
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string",
            "description": "Format: YYYY-MM-DD."
          },
          "ExpiryDate": {
            "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
            "type": "string"
          },
          "Ssn": {
            "pattern": "^\\d{9}$",
            "type": "string",
            "nullable": true
          },
          "PhoneCountryCode": {
            "maxLength": 3,
            "pattern": "^\\d{1,3}$",
            "type": "string"
          },
          "Phone": {
            "maxLength": 15,
            "type": "string"
          },
          "Occupation": {
            "type": "string"
          },
          "AnnualSalary": {
            "enum": [
              "0-10000",
              "10001-30000",
              "30001-50000",
              "50001-75000",
              "75001-100000",
              "100001-150000",
              "150001-250000",
              "250001+"
            ],
            "type": "string",
            "description": "Possible values: 0-10000, 10001-30000, 30001-50000, 50001-75000, 75001-100000, 100001-150000, 150001-250000, 250001+."
          },
          "AccountPurpose": {
            "type": "string"
          },
          "ExpectedMonthlyVolume": {
            "enum": [
              "0-1000",
              "1001-5000",
              "5001-15000",
              "15001-50000",
              "50001-100000",
              "100001+"
            ],
            "type": "string",
            "description": "Possible values: 0-1000, 1001-5000, 5001-15000, 15001-50000, 50001-100000, 100001+."
          },
          "IpAddress": {
            "type": "string"
          },
          "Street": {
            "type": "string",
            "nullable": true
          },
          "Street2": {
            "type": "string",
            "nullable": true
          },
          "City": {
            "type": "string",
            "nullable": true
          },
          "State": {
            "type": "string",
            "nullable": true
          },
          "PostCode": {
            "type": "string",
            "nullable": true
          },
          "AddressCountry": {
            "maxLength": 2,
            "minLength": 2,
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code.",
            "nullable": true
          }
        }
      },
      "UserKycSumSubTokenUpdateResponse": {
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "SumsubSdkToken": {
            "type": "string"
          },
          "Message": {
            "type": "string"
          },
          "Success": {
            "type": "boolean"
          },
          "SumsubUserId": {
            "type": "string",
            "nullable": true
          },
          "UpdatedAt": {
            "type": "string"
          }
        }
      },
      "UserKycVerificationData": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "KycStatus": {
            "$ref": "#/components/schemas/KycStatusV2"
          },
          "KycLevel": {
            "$ref": "#/components/schemas/KycLevelV2"
          },
          "KycProvider": {
            "type": "string",
            "nullable": true
          },
          "VerificationId": {
            "type": "string",
            "nullable": true
          },
          "FirstName": {
            "type": "string",
            "nullable": true
          },
          "LastName": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "DateOfBirth": {
            "type": "string",
            "nullable": true
          },
          "Nationality": {
            "type": "string",
            "nullable": true
          },
          "DocumentType": {
            "type": "string",
            "nullable": true
          },
          "DocumentNumber": {
            "type": "string",
            "nullable": true
          },
          "AddressLine1": {
            "type": "string",
            "nullable": true
          },
          "AddressLine2": {
            "type": "string",
            "nullable": true
          },
          "City": {
            "type": "string",
            "nullable": true
          },
          "Region": {
            "type": "string",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "nullable": true
          },
          "PostalCode": {
            "type": "string",
            "nullable": true
          },
          "RejectionReason": {
            "type": "string",
            "nullable": true
          },
          "ReviewNotes": {
            "type": "string",
            "nullable": true
          },
          "VerifiedAt": {
            "type": "string"
          },
          "UpdatedAt": {
            "type": "string"
          }
        }
      },
      "UserKycVerificationRequestV2": {
        "required": [
          "KycStatus",
          "KycLevel",
          "Occupation",
          "AnnualSalary",
          "AccountPurpose",
          "ExpectedMonthlyVolume",
          "DocumentIssueDate"
        ],
        "type": "object",
        "properties": {
          "KycStatus": {
            "$ref": "#/components/schemas/KycStatusV2"
          },
          "KycLevel": {
            "$ref": "#/components/schemas/KycLevelV2"
          },
          "VerificationId": {
            "type": "string",
            "nullable": true
          },
          "KycProvider": {
            "type": "string",
            "nullable": true
          },
          "FirstName": {
            "type": "string",
            "nullable": true
          },
          "LastName": {
            "type": "string",
            "nullable": true
          },
          "DateOfBirth": {
            "type": "string",
            "nullable": true
          },
          "Gender": {
            "type": "string",
            "nullable": true
          },
          "Nationality": {
            "type": "string",
            "description": "ISO 3166-1 alpha-3 country code, for example GBR.",
            "nullable": true
          },
          "Email": {
            "type": "string",
            "nullable": true
          },
          "PhoneNumber": {
            "type": "string",
            "nullable": true
          },
          "Occupation": {
            "type": "string",
            "nullable": true
          },
          "AnnualSalary": {
            "enum": [
              "0-10000",
              "10001-30000",
              "30001-50000",
              "50001-75000",
              "75001-100000",
              "100001-150000",
              "150001-250000",
              "250001+"
            ],
            "type": "string",
            "description": "Possible values: 0-10000, 10001-30000, 30001-50000, 50001-75000, 75001-100000, 100001-150000, 150001-250000, 250001+.",
            "nullable": true
          },
          "AccountPurpose": {
            "type": "string",
            "nullable": true
          },
          "ExpectedMonthlyVolume": {
            "enum": [
              "0-1000",
              "1001-5000",
              "5001-15000",
              "15001-50000",
              "50001-100000",
              "100001+"
            ],
            "type": "string",
            "description": "Possible values: 0-1000, 1001-5000, 5001-15000, 15001-50000, 50001-100000, 100001+.",
            "nullable": true
          },
          "IpAddress": {
            "type": "string",
            "nullable": true
          },
          "DocumentIssueDate": {
            "type": "string",
            "description": "Format: YYYY-MM-DD.",
            "nullable": true
          },
          "EqualsMainPurpose": {
            "type": "array",
            "items": {
              "enum": [
                "SALARY_OR_INCOME",
                "PERSONAL_TRANSFERS_OR_LIVING_EXPENSES",
                "FAMILY_SUPPORT",
                "MORTGAGE_OR_RENT_OR_UTILITY_BILLS",
                "SAVINGS",
                "INVESTMENT_PURPOSES",
                "INVESTMENT_OR_TRADING_IN_CRYPTOCURRENCIES",
                "RECEIVING_OR_SENDING_LOAN_PAYMENTS",
                "PURCHASE_OF_GOODS_OR_SERVICES",
                "TRAVEL",
                "EDUCATION",
                "MEDICAL_EXPENSES",
                "CHARITABLE_DONATIONS"
              ],
              "type": "string"
            },
            "description": "Possible values: SALARY_OR_INCOME, PERSONAL_TRANSFERS_OR_LIVING_EXPENSES, FAMILY_SUPPORT, MORTGAGE_OR_RENT_OR_UTILITY_BILLS, SAVINGS, INVESTMENT_PURPOSES, INVESTMENT_OR_TRADING_IN_CRYPTOCURRENCIES, RECEIVING_OR_SENDING_LOAN_PAYMENTS, PURCHASE_OF_GOODS_OR_SERVICES, TRAVEL, EDUCATION, MEDICAL_EXPENSES, CHARITABLE_DONATIONS.",
            "nullable": true
          },
          "EqualsSourceOfFunds": {
            "type": "array",
            "items": {
              "enum": [
                "RECEIVING_FUNDS_FROM_OWN_ACCOUNTS",
                "RECEIVING_SALARY_PENSION_OR_DIVIDENDS",
                "RECEIVING_GIFTS_OR_INHERITANCES",
                "PROCEEDS_FROM_INVESTMENTS",
                "PROCEEDS_FROM_CRYPTOCURRENCY_SALES_OR_TRADING",
                "PROCEEDS_FROM_SALE_OF_A_PROPERTY_OR_PHYSICAL_ASSET",
                "OTHER"
              ],
              "type": "string"
            },
            "description": "Possible values: RECEIVING_FUNDS_FROM_OWN_ACCOUNTS, RECEIVING_SALARY_PENSION_OR_DIVIDENDS, RECEIVING_GIFTS_OR_INHERITANCES, PROCEEDS_FROM_INVESTMENTS, PROCEEDS_FROM_CRYPTOCURRENCY_SALES_OR_TRADING, PROCEEDS_FROM_SALE_OF_A_PROPERTY_OR_PHYSICAL_ASSET, OTHER.",
            "nullable": true
          },
          "EqualsCurrenciesRequired": {
            "type": "array",
            "items": {
              "enum": [
                "AED",
                "AFN",
                "ALL",
                "AMD",
                "ANG",
                "AOA",
                "ARS",
                "AUD",
                "AWG",
                "AZN",
                "BAM",
                "BBD",
                "BDT",
                "BGN",
                "BHD",
                "BIF",
                "BMD",
                "BND",
                "BOB",
                "BOV",
                "BRL",
                "BSD",
                "BTN",
                "BWP",
                "BYN",
                "BZD",
                "CAD",
                "CDF",
                "CHF",
                "CLP",
                "CNY",
                "COP",
                "CRC",
                "CUC",
                "CUP",
                "CVE",
                "CZK",
                "DJF",
                "DKK",
                "DOP",
                "DZD",
                "EGP",
                "ERN",
                "ETB",
                "EUR",
                "FJD",
                "FKP",
                "GBP",
                "GEL",
                "GGP",
                "GHS",
                "GIP",
                "GMD",
                "GNF",
                "GTQ",
                "GYD",
                "HKD",
                "HNL",
                "HRK",
                "HTG",
                "HUF",
                "IDR",
                "ILS",
                "INR",
                "IQD",
                "IRR",
                "ISK",
                "JMD",
                "JOD",
                "JPY",
                "KES",
                "KGS",
                "KHR",
                "KMF",
                "KPW",
                "KRW",
                "KWD",
                "KYD",
                "KZT",
                "LAK",
                "LBP",
                "LKR",
                "LRD",
                "LSL",
                "LTL",
                "LVL",
                "LYD",
                "MAD",
                "MDL",
                "MGA",
                "MKD",
                "MMK",
                "MNT",
                "MOP",
                "MUR",
                "MVR",
                "MWK",
                "MXN",
                "MYR",
                "MZN",
                "NAD",
                "NGN",
                "NIO",
                "NOK",
                "NPR",
                "NZD",
                "OMR",
                "PAB",
                "PEN",
                "PGK",
                "PHP",
                "PKR",
                "PLN",
                "PYG",
                "QAR",
                "RON",
                "RSD",
                "RUB",
                "RWF",
                "SAR",
                "SBD",
                "SCR",
                "SEK",
                "SGD",
                "SHN",
                "SLL",
                "SOS",
                "SRD",
                "SSP",
                "STN",
                "SYP",
                "SZL",
                "THB",
                "TJS",
                "TMT",
                "TND",
                "TOP",
                "TRY",
                "TTD",
                "TWD",
                "TZS",
                "UAH",
                "UGX",
                "USD",
                "UYU",
                "UZS",
                "VND",
                "VUV",
                "WST",
                "XAF",
                "XAG",
                "XAU",
                "XCD",
                "XOF",
                "XPD",
                "XPF",
                "XPT",
                "YER",
                "ZAR",
                "ZMK",
                "ZMW",
                "ZWD"
              ],
              "type": "string"
            },
            "description": "Possible values: AED, AFN, ALL, AMD, ANG, AOA, ARS, AUD, AWG, AZN, BAM, BBD, BDT, BGN, BHD, BIF, BMD, BND, BOB, BOV, BRL, BSD, BTN, BWP, BYN, BZD, CAD, CDF, CHF, CLP, CNY, COP, CRC, CUC, CUP, CVE, CZK, DJF, DKK, DOP, DZD, EGP, ERN, ETB, EUR, FJD, FKP, GBP, GEL, GGP, GHS, GIP, GMD, GNF, GTQ, GYD, HKD, HNL, HRK, HTG, HUF, IDR, ILS, INR, IQD, IRR, ISK, JMD, JOD, JPY, KES, KGS, KHR, KMF, KPW, KRW, KWD, KYD, KZT, LAK, LBP, LKR, LRD, LSL, LTL, LVL, LYD, MAD, MDL, MGA, MKD, MMK, MNT, MOP, MUR, MVR, MWK, MXN, MYR, MZN, NAD, NGN, NIO, NOK, NPR, NZD, OMR, PAB, PEN, PGK, PHP, PKR, PLN, PYG, QAR, RON, RSD, RUB, RWF, SAR, SBD, SCR, SEK, SGD, SHN, SLL, SOS, SRD, SSP, STN, SYP, SZL, THB, TJS, TMT, TND, TOP, TRY, TTD, TWD, TZS, UAH, UGX, USD, UYU, UZS, VND, VUV, WST, XAF, XAG, XAU, XCD, XOF, XPD, XPF, XPT, YER, ZAR, ZMK, ZMW, ZWD.",
            "nullable": true
          },
          "EqualsDestinationCountries": {
            "type": "array",
            "items": {
              "enum": [
                "AD",
                "AE",
                "AF",
                "AG",
                "AI",
                "AL",
                "AM",
                "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"
              ],
              "type": "string"
            },
            "description": "Possible values: AD, AE, AF, AG, AI, AL, AM, 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.",
            "nullable": true
          },
          "EqualsExpectedAnnualVolume": {
            "enum": [
              "0-10000",
              "10001-50000",
              "50001-100000",
              "100001-250000",
              "250001-1000000",
              "1000001-5000000",
              "5000000+"
            ],
            "type": "string",
            "description": "Possible values: 0-10000, 10001-50000, 50001-100000, 100001-250000, 250001-1000000, 1000001-5000000, 5000000+.",
            "nullable": true
          },
          "EqualsExpectedPayments": {
            "enum": [
              "FEWER-THAN-5",
              "5-10",
              "10-20",
              "MORE-THAN-20"
            ],
            "type": "string",
            "description": "Possible values: FEWER-THAN-5, 5-10, 10-20, MORE-THAN-20.",
            "nullable": true
          },
          "NationalId": {
            "type": "string",
            "nullable": true
          },
          "DocumentType": {
            "type": "string",
            "nullable": true
          },
          "DocumentNumber": {
            "type": "string",
            "nullable": true
          },
          "DocumentExpiryDate": {
            "type": "string",
            "nullable": true
          },
          "DocumentIssuingCountry": {
            "type": "string",
            "description": "ISO 3166-1 alpha-3 country code, for example GBR.",
            "nullable": true
          },
          "DocumentIssuingAuthority": {
            "type": "string",
            "nullable": true
          },
          "DocumentIssuedAt": {
            "type": "string",
            "nullable": true
          },
          "DocumentFrontImage": {
            "type": "string",
            "nullable": true
          },
          "DocumentBackImage": {
            "type": "string",
            "nullable": true
          },
          "SelfieImage": {
            "type": "string",
            "nullable": true
          },
          "DocumentImageFormat": {
            "type": "string",
            "nullable": true
          },
          "AddressLine1": {
            "type": "string",
            "nullable": true
          },
          "AddressLine2": {
            "type": "string",
            "nullable": true
          },
          "City": {
            "type": "string",
            "nullable": true
          },
          "Region": {
            "type": "string",
            "nullable": true
          },
          "PostalCode": {
            "type": "string",
            "nullable": true
          },
          "Country": {
            "type": "string",
            "description": "ISO 3166-1 alpha-3 country code, for example GBR.",
            "nullable": true
          },
          "ProofOfAddressType": {
            "type": "string",
            "nullable": true
          },
          "ProofOfAddressImage": {
            "type": "string",
            "nullable": true
          },
          "ProofOfAddressIssueDate": {
            "type": "string",
            "nullable": true
          },
          "ProofOfAddressImageFormat": {
            "type": "string",
            "nullable": true
          },
          "Metadata": {
            "type": "object",
            "nullable": true
          },
          "RejectionReason": {
            "type": "string",
            "nullable": true
          },
          "ReviewNotes": {
            "type": "string",
            "nullable": true
          },
          "KycDetails": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "UserKycVerificationResponseV2": {
        "type": "object",
        "properties": {
          "Success": {
            "type": "boolean"
          },
          "Message": {
            "type": "string"
          },
          "User": {
            "$ref": "#/components/schemas/UserKycVerificationData"
          }
        }
      },
      "UserListResponseV2": {
        "type": "object",
        "properties": {
          "Users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserResponseV2"
            }
          },
          "Total": {
            "type": "integer",
            "format": "int32"
          },
          "PageNumber": {
            "type": "integer",
            "format": "int32"
          },
          "PageSize": {
            "type": "integer",
            "format": "int32"
          },
          "TotalPages": {
            "type": "integer",
            "format": "int32"
          }
        }
      },
      "UserLoyaltyStatsResponse": {
        "type": "object",
        "properties": {
          "TotalTransactions": {
            "type": "integer",
            "format": "int32"
          },
          "PointsEarnedThisMonth": {
            "type": "integer",
            "format": "int32"
          },
          "PointsEarnedLastMonth": {
            "type": "integer",
            "format": "int32"
          },
          "MonthlyGrowthPercentage": {
            "type": "number",
            "format": "double"
          },
          "DaysActive": {
            "type": "integer",
            "format": "int32"
          },
          "NextTierLevel": {
            "type": "string",
            "nullable": true
          },
          "PointsToNextTier": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "MonthlyEarnings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/MonthlyEarningResponse"
            }
          }
        }
      },
      "UserPointBalanceResponse": {
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "ProgramId": {
            "type": "integer",
            "format": "int32"
          },
          "CurrentBalance": {
            "type": "integer",
            "format": "int32"
          },
          "TotalEarned": {
            "type": "integer",
            "format": "int32"
          },
          "TotalRedeemed": {
            "type": "integer",
            "format": "int32"
          },
          "TierLevel": {
            "type": "string",
            "nullable": true
          },
          "LastActivity": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "EnrolledAt": {
            "type": "string",
            "format": "date-time"
          },
          "MonthlyStats": {
            "$ref": "#/components/schemas/MonthlyStatsResponse"
          }
        }
      },
      "UserResponseV2": {
        "type": "object",
        "properties": {
          "Id": {
            "type": "integer",
            "format": "int32"
          },
          "ExternalUserId": {
            "type": "string",
            "nullable": true
          },
          "Email": {
            "type": "string"
          },
          "FirstName": {
            "type": "string"
          },
          "LastName": {
            "type": "string"
          },
          "Status": {
            "$ref": "#/components/schemas/AccountStatusV2"
          },
          "KycStatus": {
            "$ref": "#/components/schemas/KycStatusV2"
          },
          "KycLevel": {
            "$ref": "#/components/schemas/NullableOfKycLevelV2"
          },
          "CreatedAt": {
            "type": "string"
          },
          "UpdatedAt": {
            "type": "string"
          },
          "CompanyId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "PackageId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "BusinessName": {
            "type": "string",
            "nullable": true
          },
          "BusinessExternalId": {
            "type": "string",
            "nullable": true
          },
          "BusinessParentId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "AccountType": {
            "enum": [
              "business",
              "personal"
            ],
            "type": "string",
            "description": "Allowed values: business, personal.",
            "nullable": true
          },
          "PrimaryExternalWalletId": {
            "type": "string",
            "nullable": true
          },
          "SelectedTierId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "TierBillingCycle": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "UserToMasterTransferPayloadV2": {
        "required": [
          "UserId",
          "Amount",
          "Currency"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "ExternalReferenceId": {
            "type": "string",
            "nullable": true
          },
          "Metadata": {
            "type": "object",
            "nullable": true
          }
        }
      },
      "UserUpdateV2": {
        "type": "object",
        "properties": {
          "ExternalUserId": {
            "type": "string",
            "nullable": true
          },
          "FirstName": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "nullable": true
          },
          "LastName": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "nullable": true
          },
          "Phone": {
            "type": "string",
            "nullable": true
          },
          "Metadata": {
            "type": "object",
            "nullable": true
          }
        }
      },
      "ValidationRuleDto": {
        "type": "object",
        "properties": {
          "RoutingCodeType": {
            "type": "string",
            "nullable": true
          },
          "FieldName": {
            "type": "string",
            "nullable": true
          },
          "Max": {
            "type": "string",
            "nullable": true
          },
          "Min": {
            "type": "string",
            "nullable": true
          },
          "Regex": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "VelocityControlV2": {
        "type": "object",
        "properties": {
          "Type": {
            "type": "string"
          },
          "Limit": {
            "type": "string"
          }
        },
        "nullable": true
      },
      "WalletBalance": {
        "type": "object",
        "properties": {
          "WalletType": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "Balance": {
            "type": "number",
            "format": "double"
          },
          "USDValue": {
            "type": "number",
            "format": "double"
          },
          "USDTEquivalent": {
            "type": "number",
            "format": "double"
          },
          "USDCEquivalent": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "WalletTopUpRequest": {
        "type": "object",
        "properties": {
          "Token": {
            "type": "string"
          },
          "WalletAddress": {
            "type": "string"
          },
          "Value": {
            "type": "number",
            "format": "double"
          }
        }
      },
      "WidgetConfig": {
        "type": "object",
        "properties": {
          "PrimaryColor": {
            "type": "string",
            "nullable": true
          },
          "BackgroundColor": {
            "type": "string",
            "nullable": true
          },
          "TextColor": {
            "type": "string",
            "nullable": true
          },
          "Width": {
            "type": "string"
          },
          "Height": {
            "type": "string"
          }
        },
        "nullable": true
      },
      "WithdrawalCreateV2": {
        "required": [
          "Amount",
          "Currency",
          "Chain",
          "DestinationAddress"
        ],
        "type": "object",
        "properties": {
          "UserId": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "Amount": {
            "type": "string"
          },
          "Currency": {
            "type": "string"
          },
          "Chain": {
            "type": "string"
          },
          "DestinationAddress": {
            "type": "string"
          },
          "DestinationTag": {
            "type": "string",
            "nullable": true
          },
          "Network": {
            "type": "string",
            "nullable": true
          },
          "Description": {
            "type": "string",
            "nullable": true
          },
          "ExternalReferenceId": {
            "type": "string",
            "nullable": true
          },
          "Metadata": {
            "type": "object",
            "nullable": true
          }
        }
      },
      "WithdrawalFeeRequestV2": {
        "required": [
          "Currency",
          "Amount",
          "Chain"
        ],
        "type": "object",
        "properties": {
          "Currency": {
            "type": "string"
          },
          "Amount": {
            "type": "string"
          },
          "Chain": {
            "type": "string"
          },
          "Network": {
            "type": "string",
            "nullable": true
          },
          "DestinationAddress": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "WithdrawalFeeResponseV2": {
        "type": "object",
        "properties": {
          "Currency": {
            "type": "string"
          },
          "Amount": {
            "type": "string"
          },
          "Fee": {
            "type": "string"
          },
          "NetAmount": {
            "type": "string"
          },
          "Network": {
            "type": "string",
            "nullable": true
          },
          "EstimatedConfirmationTime": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "WithdrawalValidationResult": {
        "type": "object",
        "properties": {
          "IsValid": {
            "type": "boolean"
          },
          "UserId": {
            "type": "integer",
            "format": "int32"
          },
          "RequestedAmount": {
            "type": "number",
            "format": "double"
          },
          "RequestedCurrency": {
            "type": "string"
          },
          "ErrorCode": {
            "type": "string",
            "nullable": true
          },
          "ErrorMessage": {
            "type": "string",
            "nullable": true
          },
          "UserFriendlyMessage": {
            "type": "string",
            "nullable": true
          },
          "AvailableAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "ShortfallAmount": {
            "type": "number",
            "format": "double",
            "nullable": true
          },
          "BalanceBreakdown": {
            "type": "object",
            "additionalProperties": {
              "type": "number",
              "format": "double"
            },
            "nullable": true
          },
          "AvailableBalance": {
            "$ref": "#/components/schemas/AvailableWithdrawalBalanceResponse2"
          },
          "OptimalTransferPath": {
            "type": "string",
            "nullable": true
          },
          "RequiresInternalTransfer": {
            "type": "boolean"
          }
        }
      }
    },
    "securitySchemes": {
      "ApiKeyAuth": {
        "type": "apiKey",
        "description": "API key for authorization. Required for all V2 endpoints.",
        "name": "x-api-key",
        "in": "header"
      }
    }
  },
  "tags": [
    {
      "name": "Authentication",
      "description": "User authentication and token management"
    },
    {
      "name": "Users",
      "description": "User management operations including creation, updates, and KYC"
    },
    {
      "name": "Cards",
      "description": "Card management operations"
    },
    {
      "name": "Payments",
      "description": "Payment processing and transaction management"
    },
    {
      "name": "Transfers",
      "description": "Transfer operations between accounts and external services"
    },
    {
      "name": "Crypto Virtual Accounts",
      "description": "BoomFi crypto virtual accounts, fallback quotes, Equals-to-Interlace setup, and crypto deposit addresses"
    },
    {
      "name": "KYC",
      "description": "Know Your Customer verification and compliance"
    },
    {
      "name": "Tiers",
      "description": "User tier and membership management"
    },
    {
      "name": "Health",
      "description": "API health and status monitoring"
    },
    {
      "name": "Dashboard",
      "description": "Dashboard information and user account management"
    },
    {
      "name": "Webhooks",
      "description": "Outbound webhook requests sent by CryptoCard Platform to configured partner webhook URLs."
    }
  ]
}