← Files paytechARCHIVED FILE

skills/psp-payments/openapi/merchant-api.json

103 KB · Oct 3, 2026 · 06:35 UTC

↓ Download file

{
 "openapi": "3.1.1",
 "info": {
  "title": "paytech API",
  "description": "Merchant API\n",
  "license": {
   "name": "Apache 2.0",
   "identifier": "Apache-2.0"
  },
  "version": "1.0.341"
 },
 "servers": [
  {
   "url": "https://engine-sandbox.pay.tech",
   "description": "Sandbox"
  },
  {
   "url": "https://engine.pay.tech",
   "description": "Production"
  }
 ],
 "paths": {
  "/merchant-api/v1/payments": {
   "get": {
    "tags": [
     "Payments"
    ],
    "summary": "Get payments",
    "description": "Get a list of payments sorted by creation date (most recent first)",
    "operationId": "getPayments",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     },
     {
      "name": "created.gte",
      "in": "query",
      "description": "Return only payments created at or after the specified time. Default is beginning of the current day.",
      "required": false,
      "schema": {
       "type": "string",
       "format": "ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)",
       "example": "2025-10-12T10:26:18"
      }
     },
     {
      "name": "created.lt",
      "in": "query",
      "description": "If passed, return only payments created strictly before the specified time",
      "required": false,
      "schema": {
       "type": "string",
       "format": "ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)",
       "example": "2025-10-13T10:39:34"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Payment List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/PaymentListResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/merchant-api/v1/operations": {
   "get": {
    "tags": [
     "Operations"
    ],
    "summary": "Get payment operations",
    "description": "Get a list of payment operations sorted by completion date (most recent first)",
    "operationId": "getOperations",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     },
     {
      "name": "completed.gte",
      "in": "query",
      "description": "Return only operations completed at or after the specified time. Default is beginning of the current day.",
      "required": false,
      "schema": {
       "type": "string",
       "format": "ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)",
       "example": "2025-10-12T10:26:18"
      }
     },
     {
      "name": "completed.lt",
      "in": "query",
      "description": "If passed, return only operations completed strictly before the specified time",
      "required": false,
      "schema": {
       "type": "string",
       "format": "ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)",
       "example": "2025-10-13T10:39:34"
      }
     },
     {
      "name": "operation.in",
      "in": "query",
      "description": "Comma-separated list of operations",
      "required": false,
      "schema": {
       "type": "string",
       "example": "CREATE_PAYMENT,CHECKOUT,CANCEL"
      }
     },
     {
      "name": "paymentState.in",
      "in": "query",
      "description": "Comma-separated list of payment states after operation completion",
      "required": false,
      "schema": {
       "type": "string",
       "example": "CHECKOUT,COMPLETED,DECLINED"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Operation List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/OperationListResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/merchant-api/v1/counterparties": {
   "get": {
    "tags": [
     "Counterparties"
    ],
    "summary": "Get counterparties",
    "description": "Get all counterparties",
    "operationId": "getCounterparties",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Get Counterparties Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/CounterpartiesListResponse"
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/merchant-api/v1/shops": {
   "get": {
    "tags": [
     "Shops"
    ],
    "summary": "Get merchants shops",
    "description": "Get all merchants shops",
    "operationId": "getShops",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Get Shops Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ShopsListResponse"
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/merchant-api/v1/terminals/{terminalId}/balance": {
   "get": {
    "tags": [
     "Terminals"
    ],
    "summary": "Get terminal balance",
    "description": "Get terminal balance by terminal Id",
    "operationId": "getTerminalBalance",
    "parameters": [
     {
      "name": "terminalId",
      "in": "path",
      "description": "Terminal Id",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Balance Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/TerminalBalanceResponse"
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/merchant-api/v1/terminals": {
   "get": {
    "tags": [
     "Terminals"
    ],
    "summary": "Get merchants terminals",
    "description": "Get all merchant terminals",
    "operationId": "getTerminals",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Get Terminals Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/TerminalsListResponse"
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/merchant-api/v1/balances": {
   "get": {
    "tags": [
     "Balances"
    ],
    "summary": "Get balances",
    "description": "Get a list of all merchant balances in the Financial Module. For more detailed information, please contact our support team.",
    "operationId": "getBalances",
    "responses": {
     "200": {
      "description": "Balance List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/BalanceListResponse"
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/merchant-api/v1/available-withdrawal-balances": {
   "get": {
    "tags": [
     "Balances"
    ],
    "summary": "Get balances available for withdrawals via the gateway API",
    "description": "Get balances available for withdrawals via the gateway API. See the \"Check Withdrawal Balance\" section in the shop settings.",
    "operationId": "getAvailableWithdrawalBalances",
    "responses": {
     "200": {
      "description": "Available Withdrawal Balances List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/AvailableWithdrawalBalancesListResponse"
        }
       }
      }
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   }
  },
  "/merchant-api/v1/bins": {
   "get": {
    "tags": [
     "BINs"
    ],
    "summary": "Get BINs",
    "description": "Get a paginated list of BINs",
    "operationId": "getBins",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "BIN List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/BinListResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/merchant-api/v1/bin-groups": {
   "get": {
    "tags": [
     "BINs"
    ],
    "summary": "Get BIN groups",
    "description": "Get a paginated list of BIN groups",
    "operationId": "getBinGroups",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "BIN Group List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/BinGroupListResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/merchant-api/v1/bin-groups/{groupId}": {
   "get": {
    "tags": [
     "BINs"
    ],
    "summary": "Get BINs from a BIN group",
    "description": "Get a paginated list of BINs belonging to the specified BIN group",
    "operationId": "getBinsFromGroup",
    "parameters": [
     {
      "name": "groupId",
      "in": "path",
      "description": "BIN Group Id",
      "required": true,
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "BIN Group Items Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/BinGroupItemsResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/merchant-api/v1/customers": {
   "get": {
    "tags": [
     "Customers"
    ],
    "summary": "Get customers",
    "description": "Get a paginated list of customers.",
    "operationId": "getCustomers",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Customer List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/CustomerListResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   }
  },
  "/merchant-api/v1/shop-groups": {
   "get": {
    "tags": [
     "Shops"
    ],
    "summary": "Get shop groups",
    "description": "Get a paginated list of shop groups.",
    "operationId": "getShopGroups",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Shop Group List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ShopGroupListResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   }
  },
  "/merchant-api/v1/email-groups": {
   "get": {
    "tags": [
     "Emails"
    ],
    "summary": "Get email groups",
    "description": "Get a paginated list of email groups",
    "operationId": "getEmailGroups",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Email Group List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/EmailGroupListResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/merchant-api/v1/email-groups/{groupId}": {
   "get": {
    "tags": [
     "Emails"
    ],
    "summary": "Get emails from an email group",
    "description": "Get a paginated list of email addresses belonging to the specified email group",
    "operationId": "getEmailsFromGroup",
    "parameters": [
     {
      "name": "groupId",
      "in": "path",
      "description": "Email Group Id",
      "required": true,
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Email Group Items Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/EmailGroupItemsResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/merchant-api/v1/email-groups/{groupId}/emails": {
   "post": {
    "tags": [
     "Emails"
    ],
    "summary": "Add emails to an email group",
    "description": "Add one or more email addresses to the specified email group. Requires \"Edit Shops\" permission.",
    "operationId": "addEmailsToGroup",
    "parameters": [
     {
      "name": "groupId",
      "in": "path",
      "description": "Email Group Id",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/AddEmailsToGroupRequest"
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Emails added successfully"
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/merchant-api/v1/card-groups": {
   "get": {
    "tags": [
     "Cards"
    ],
    "summary": "Get card groups",
    "description": "Get a paginated list of card groups",
    "operationId": "getCardGroups",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Card Group List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/CardGroupListResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/merchant-api/v1/card-groups/{groupId}": {
   "get": {
    "tags": [
     "Cards"
    ],
    "summary": "Get cards from a card group",
    "description": "Get a paginated list of masked card PANs belonging to the specified card group",
    "operationId": "getCardsFromGroup",
    "parameters": [
     {
      "name": "groupId",
      "in": "path",
      "description": "Card Group Id",
      "required": true,
      "schema": {
       "type": "integer"
      }
     },
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Card Group Items Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/CardGroupItemsResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/merchant-api/v1/card-groups/{groupId}/cards": {
   "post": {
    "tags": [
     "Cards"
    ],
    "summary": "Add cards to a card group",
    "description": "Add one or more card numbers to the specified card group. Requires \"Edit Shops\" permission. For masked card groups, card numbers must contain at least the first 6 and last 4 digits.",
    "operationId": "addCardsToGroup",
    "parameters": [
     {
      "name": "groupId",
      "in": "path",
      "description": "Card Group Id",
      "required": true,
      "schema": {
       "type": "integer"
      }
     }
    ],
    "requestBody": {
     "required": true,
     "content": {
      "application/json": {
       "schema": {
        "$ref": "#/components/schemas/AddCardsToGroupRequest"
       }
      }
     }
    },
    "responses": {
     "201": {
      "description": "Cards added successfully"
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     },
     "404": {
      "$ref": "#/components/responses/NotFound"
     }
    }
   }
  },
  "/merchant-api/v1/country-groups": {
   "get": {
    "tags": [
     "Countries"
    ],
    "summary": "Get country groups",
    "description": "Get a paginated list of country groups",
    "operationId": "getCountryGroups",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Country Group List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/CountryGroupListResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/merchant-api/v1/connectors": {
   "get": {
    "tags": [
     "Connectors"
    ],
    "summary": "Get connectors",
    "description": "Get a paginated list of shop connectors",
    "operationId": "getConnectors",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Connector List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ConnectorListResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     }
    }
   }
  },
  "/merchant-api/v1/antifraud-profiles": {
   "get": {
    "tags": [
     "Anti-Fraud"
    ],
    "summary": "Get anti-fraud profiles",
    "description": "Get a paginated list of anti-fraud profiles",
    "operationId": "getAntiFraudProfiles",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Anti-Fraud Profile List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/AntiFraudProfileListResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   }
  },
  "/merchant-api/v1/currency-rates": {
   "get": {
    "tags": [
     "Currency Rates"
    ],
    "summary": "Get currency rates",
    "description": "Get a paginated list of currency exchange rates",
    "operationId": "getCurrencyRates",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Currency Rate List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/CurrencyRateListResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   }
  },
  "/merchant-api/v1/bank-codes": {
   "get": {
    "tags": [
     "Bank Codes"
    ],
    "summary": "Get bank codes",
    "description": "Get a paginated list of bank codes",
    "operationId": "getBankCodes",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Bank Code List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/BankCodeListResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   }
  },
  "/merchant-api/v1/bank-code-mappings": {
   "get": {
    "tags": [
     "Bank Codes"
    ],
    "summary": "Get bank code mappings",
    "description": "Get a paginated list of bank code mappings",
    "operationId": "getBankCodeMappings",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Bank Code Mapping List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/BankCodeMappingListResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   }
  },
  "/merchant-api/v1/error-code-groups": {
   "get": {
    "tags": [
     "Error Code Groups"
    ],
    "summary": "Get error code groups",
    "description": "Get a paginated list of error code groups",
    "operationId": "getErrorCodeGroups",
    "parameters": [
     {
      "name": "offset",
      "in": "query",
      "description": "The number of items to skip before starting to collect the result set. Default is 0.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 0,
       "maximum": 1000000
      }
     },
     {
      "name": "limit",
      "in": "query",
      "description": "The numbers of items to return. Default is 50.",
      "required": false,
      "schema": {
       "type": "integer",
       "minimum": 1,
       "maximum": 10000
      }
     }
    ],
    "responses": {
     "200": {
      "description": "Error Code Group List Response",
      "content": {
       "application/json": {
        "schema": {
         "$ref": "#/components/schemas/ErrorCodeGroupListResponse"
        }
       }
      }
     },
     "400": {
      "$ref": "#/components/responses/BadRequest"
     },
     "401": {
      "$ref": "#/components/responses/Unauthorized"
     },
     "403": {
      "$ref": "#/components/responses/Forbidden"
     }
    }
   }
  }
 },
 "components": {
  "schemas": {
   "CurrencyAmount": {
    "required": [
     "currency",
     "amount"
    ],
    "description": "Currency and amount",
    "type": "object",
    "properties": {
     "currency": {
      "type": "string",
      "description": "Currency",
      "format": "ISO 4217 code for FIAT currencies or cryptocurrency symbol",
      "example": "EUR"
     },
     "amount": {
      "multipleOf": 1e-18,
      "maximum": 1000000000,
      "minimum": 1e-05,
      "type": "number",
      "description": "Amount in the specified currency",
      "example": 11.12
     }
    }
   },
   "Operation": {
    "type": "string",
    "description": "Payment operation type",
    "example": "CREATE_PAYMENT",
    "enum": [
     "CREATE_PAYMENT",
     "CHECKOUT",
     "CANCEL",
     "CONFIRMATION",
     "CASCADING",
     "REDIRECT",
     "CONTINUE",
     "CONTINUE_PRE_PROCESSING",
     "DETECT_FRAUD",
     "PRE_PROCESSING",
     "DEPOSIT",
     "WITHDRAWAL",
     "REFUND",
     "CHARGEBACK",
     "CHECK_STATE",
     "TRIGGER_WEBHOOK",
     "HANDLE_WEBHOOK",
     "CAPTURE",
     "VOID",
     "APPROVE",
     "REJECT",
     "UPLOAD_FILE",
     "MANUAL_UPDATE",
     "MANUAL_CHECK_STATE"
    ]
   },
   "PaymentState": {
    "type": "string",
    "description": "Payment State",
    "example": "PENDING",
    "enum": [
     "CHECKOUT",
     "AWAITING_APPROVAL",
     "FRAUD_DETECTION",
     "PRE_PROCESSING",
     "PENDING",
     "INPUT_REQUIRED",
     "AWAITING_CONFIRMATION",
     "CASCADING_CONFIRMATION",
     "CASCADING_CONTINUE",
     "AWAITING_REDIRECT",
     "AWAITING_RETURN",
     "AWAITING_PRE_PROCESSING_RETURN",
     "RECONCILIATION",
     "AWAITING_WEBHOOK",
     "ERROR",
     "OPENED",
     "AUTHORIZED",
     "CANCELLED",
     "DECLINED",
     "COMPLETED"
    ]
   },
   "PaymentType": {
    "type": "string",
    "description": "Payment Type",
    "example": "DEPOSIT",
    "enum": [
     "DEPOSIT",
     "WITHDRAWAL",
     "REFUND",
     "CHARGEBACK"
    ]
   },
   "PaymentMethod": {
    "type": "string",
    "description": "Payment Method",
    "example": "BASIC_CARD",
    "enum": [
     "ABSA_PAY",
     "ACH",
     "AHLPAY",
     "ALFAKIT",
     "ALFAMART",
     "ALIPAY",
     "ALYCEPAY",
     "APPLEPAY",
     "ARI10",
     "ASTROPAY",
     "B2BINPAY",
     "BANCOMAT",
     "BANCONTACT",
     "BANKTRANSFER",
     "BANKTRANSFER_AR",
     "BANKTRANSFER_BO",
     "BANKTRANSFER_BR",
     "BANKTRANSFER_CL",
     "BANKTRANSFER_CO",
     "BANKTRANSFER_CR",
     "BANKTRANSFER_EC",
     "BANKTRANSFER_GT",
     "BANKTRANSFER_HN",
     "BANKTRANSFER_MX",
     "BANKTRANSFER_PA",
     "BANKTRANSFER_PE",
     "BANKTRANSFER_TR",
     "BANKTRANSFER_UY",
     "BANKTRANSFER_VE",
     "BASIC_CARD",
     "BASIC_CARD_HPP",
     "BCI",
     "BILLLINE",
     "BINANCE_PAY",
     "BIOPAGO",
     "BIZUM",
     "BKASH",
     "BLIK",
     "BLUVOUCHER",
     "BOLETO",
     "BOOST",
     "BREB",
     "BRITE",
     "BYBIT_PAY",
     "CAPITEC_PAY",
     "CASH",
     "CASHAPP",
     "CASH_EC",
     "CASHLIB",
     "CHEK",
     "CIP",
     "CLICK",
     "CODI",
     "CRYPTO",
     "CUP",
     "DANA",
     "DPOPAY",
     "DRAGON_PAY",
     "DUITNOW",
     "EASYPAISA",
     "ECNY",
     "EFECTY",
     "EFT",
     "EMANAT",
     "ENAIRA",
     "EPAY_BG",
     "EPS",
     "ETISALAT_EG",
     "EZYCASH",
     "ESEWA",
     "EUPAGO",
     "EXTERNAL_HPP",
     "FAWRY",
     "FINRAX",
     "FLEXEPIN",
     "FONEPAY",
     "FPS",
     "FPS_HK",
     "FPX",
     "FUPS",
     "GATE8TRANSACT",
     "GATEIQ",
     "GCASH",
     "GIFTCARD",
     "GIFTCARD_CARD",
     "GIFTCARD_OPENBANKING",
     "GIFTCARD_PAYPAL",
     "GIFTCARD_PM",
     "GIROPAY",
     "GOOGLEPAY",
     "GOPAY",
     "GPAY_IN",
     "GRABPAY",
     "HAVALE",
     "HAYDIPAY",
     "HAYHAY",
     "HELP2PAY",
     "HITES",
     "IDEAL",
     "IMEPAY",
     "IMPS",
     "INAI",
     "INRPAY",
     "INTENT",
     "INTERAC",
     "INTERAC_ACH",
     "INTERAC_ETO",
     "INTERAC_EXPRESS",
     "INTERAC_REQUEST_MONEY",
     "INTERAC_RTO",
     "JAZZCASH",
     "JETONCASH",
     "JETONWALLET",
     "KAKAOPAY",
     "KBZ",
     "KESSPAY",
     "KHALTI",
     "KHIPU",
     "KLAP_EFECTIVO",
     "KLAP_TRANSFERENCIA",
     "KLARNA",
     "LOCALPAYMENT",
     "M10",
     "MACH",
     "MACROPAY",
     "MBWAY",
     "MEFETE",
     "MERCADOPAGO",
     "MIA",
     "MIFINITY",
     "MISTERCASH",
     "MOBILE_BANKING_CN",
     "MOBILE_COMMERCE",
     "MOBILE_MONEY",
     "MOLLIE",
     "MOMOPAY_RW",
     "MOMOPAY_VN",
     "MONERCHY",
     "MONETIX",
     "MONEYTOLIA",
     "MONNET",
     "MONOOVA_ACCOUNT_TRANSFER",
     "MONOOVA_WALLET_TRANSFER",
     "MPAY",
     "MPESA",
     "MUCHBETTER",
     "MULTIBANCO",
     "MYBANK",
     "MYPAYZ",
     "N26",
     "NAGAD",
     "NAVERPAY",
     "NEFT",
     "NEOSURF",
     "NEQUI",
     "NETBANKING",
     "NETELLER",
     "NGENIUS",
     "NODA",
     "NODA_REVOLUT",
     "NUMICARD",
     "NUMICARD_CARD",
     "NUMICARD_OPENBANKING",
     "NUMICARD_PAYPAL",
     "OFFLINE_UPI",
     "OMNIMATRIX",
     "ONEVOUCHER",
     "ONLINE_BANKING",
     "OPAY",
     "OPEN_BANKING",
     "OPENPAYD",
     "OPTIMONEY",
     "OTTVOUCHER",
     "OVO",
     "OXXO",
     "P24",
     "P2C",
     "P2P_ACCESS",
     "P2P_ALFABANK",
     "P2P_CARD",
     "P2P_CARD_ABH",
     "P2P_CARD_CLICK",
     "P2P_CARD_HUMO",
     "P2P_CARD_PAYME",
     "P2P_CARD_UZCARD",
     "P2P_CROSS_BORDER",
     "P2P_CROSS_BORDER_ALFABANK",
     "P2P_CROSS_BORDER_GAZPROMBANK",
     "P2P_CROSS_BORDER_SBER",
     "P2P_CROSS_BORDER_TBANK",
     "P2P_CROSS_BORDER_VTB",
     "P2P_ELCART",
     "P2P_EMANAT",
     "P2P_GAZPROMBANK",
     "P2P_IBAN",
     "P2P_INSTAPAY_EG",
     "P2P_INTERAC_ETO",
     "P2P_KAPITAL",
     "P2P_M10",
     "P2P_MBANK_KG",
     "P2P_MOBILE",
     "P2P_MOBILE_PAYME",
     "P2P_MOBILE_TOP_UP",
     "P2P_OZONBANK",
     "P2P_PSB",
     "P2P_QR_CLICK",
     "P2P_QR_PAY",
     "P2P_SBERBANK",
     "P2P_SBP",
     "P2P_TBANK",
     "P2P_UPI",
     "P2P_VTB",
     "PAGO_MOVIL",
     "PAGO_MOVIL_INST",
     "PAGO46",
     "PAGOEFECTIVO",
     "PAGOFACIL",
     "PAGSMILE_VAULT",
     "PALMPAY",
     "PAPARA",
     "PAPEL",
     "PARAM",
     "PARATIM",
     "PARAZULA",
     "PAROLAPARA",
     "PAY2PLAY",
     "PAYBOL",
     "PAY_BY_LINK",
     "PAY_ME",
     "PAYCASH",
     "PAYCELL",
     "PAYCO_KR",
     "PAYCO_TR",
     "PAYDO_WALLET",
     "PAYFIX",
     "PAYFUN",
     "PAYID",
     "PAYMAXIS",
     "PAYMAYA",
     "PAYME_UZ",
     "PAYNOW",
     "PAYOUT_NONSEPA_REQUEST",
     "PAYOUT_SEPA_BATCH",
     "PAYPAL",
     "PAYPAY",
     "PAYPO",
     "PAYPORT",
     "PAYRETAILERS",
     "PAYSAFECARD",
     "PAYSAFECASH",
     "PAYSHOP",
     "PAYTM",
     "PAYTO",
     "PAYU",
     "PEC",
     "PEP",
     "PERFECTMONEY",
     "PG_PARA",
     "PHONEPE",
     "PIASTRIX",
     "PICPAY",
     "PIX",
     "POLI",
     "POPY",
     "POPY_PARA",
     "PREPAID_CARD",
     "PROMPTPAY",
     "PSE",
     "PUNTOPAGO",
     "PUSH",
     "QR",
     "QR_ELCART",
     "QR_INSTAPAY_EG",
     "QR_MBANK_KG",
     "QRIS",
     "RAPIDTRANSFER",
     "RAPIPAGO",
     "REVOLUT",
     "ROCKET",
     "RTP",
     "RTGS",
     "RUBPAY",
     "SATISPAY",
     "SBERPAY",
     "SBP",
     "SBP_CROSS_BORDER",
     "SEPA",
     "SERVIFACIL",
     "SHOPEEPAY",
     "SIPAY",
     "SKRILL",
     "SOFORT",
     "SOFT2PAY",
     "SPEI",
     "SPOYNT",
     "STICPAY",
     "SUPERMARKET_CODE_PAY",
     "SWISH",
     "TED",
     "TINK",
     "TOSLA",
     "TOSSPAY",
     "TOUCH_N_GO",
     "TRANSFIYA",
     "TRUEMONEY",
     "TRUSTLY",
     "TRUSTPAYMENTS",
     "TWINT",
     "UNIONPAY_TRANSFER",
     "UPI",
     "USSD",
     "VENMO",
     "VIETTEL",
     "VIRTUAL_ACCOUNT",
     "VNPAY_QR",
     "VODAFONE_EG",
     "VOLT",
     "VOUCHERCARD",
     "VOUCHERCARD_CARD",
     "VOUCHERCARD_OPENBANKING",
     "VOUCHERCARD_PAYPAL",
     "VOUCHERCARD_PM",
     "VOUCHERRY",
     "VOUCHSTAR",
     "WAVE",
     "WECHAT",
     "WEBPAY",
     "WISE",
     "XANPAY",
     "XINPAY",
     "YAPE",
     "YAPILY",
     "ZALO",
     "ZELLE",
     "ZIMPLER",
     "ZIPAY",
     "ZOTAPAY"
    ]
   },
   "PaymentOperation": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "description": "Operation Id"
     },
     "paymentId": {
      "maxLength": 32,
      "type": "string",
      "description": "Payment Id",
      "example": "91d27876e87f4b22b3ecd53924bf973d"
     },
     "operation": {
      "$ref": "#/components/schemas/Operation"
     },
     "paymentState": {
      "$ref": "#/components/schemas/PaymentState"
     },
     "started": {
      "type": "string",
      "format": "ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)",
      "description": "Operation start time, in UTC time zone",
      "example": "2025-10-25T10:12:12"
     },
     "completed": {
      "type": "string",
      "format": "ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)",
      "description": "Operation completion time, in UTC time zone",
      "example": "2025-10-25T10:12:13"
     },
     "rawPaymentData": {
      "type": "string",
      "description": "Update applied to the Payments table after the operation"
     },
     "terminalId": {
      "type": "integer",
      "description": "ID of the terminal associated with the operation"
     },
     "terminalName": {
      "type": "string",
      "description": "Name of the terminal associated with the operation"
     },
     "paymentCreated": {
      "type": "string",
      "format": "ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)",
      "description": "Date and time when this payment was created, in UTC time zone",
      "example": "2025-10-25T10:11:12"
     },
     "paymentType": {
      "$ref": "#/components/schemas/PaymentType"
     },
     "paymentMethod": {
      "$ref": "#/components/schemas/PaymentMethod"
     },
     "paymentDescription": {
      "maxLength": 512,
      "type": "string",
      "description": "Description of the payment",
      "example": "Deposit via TEST shop"
     },
     "paymentReferenceId": {
      "maxLength": 256,
      "type": "string",
      "description": "referenceId from payment request",
      "example": "payment-123"
     },
     "paymentAmount": {
      "type": "number",
      "description": "The current payment amount. May differ from the amount at the time of the operation.",
      "example": 11.12
     },
     "paymentCurrency": {
      "type": "string",
      "description": "The current payment currency. May differ from the currency at the time of the operation.",
      "format": "ISO 4217 code for FIAT currencies or cryptocurrency symbol",
      "example": "EUR"
     },
     "paymentBaseAmount": {
      "type": "number",
      "description": "The current payment amount  in system base currency. May differ from the amount at the time of the operation.",
      "example": 15
     },
     "parentPaymentId": {
      "maxLength": 32,
      "type": "string",
      "description": "Parent payment Id. For refunds, contains the initial deposit Id. For cascading attempts, contains the initial payment Id.",
      "example": "91d27876e87f4b22b3ecd53924bf973d"
     },
     "merchantId": {
      "type": "integer",
      "description": "Merchant Id"
     },
     "merchantName": {
      "type": "string",
      "description": "Merchant name"
     },
     "shopId": {
      "type": "integer",
      "description": "Shop Id"
     },
     "shopName": {
      "type": "string",
      "description": "Shop name"
     },
     "providerId": {
      "type": "integer",
      "description": "Provider Id"
     },
     "providerName": {
      "type": "string",
      "description": "Provider name"
     },
     "errorCode": {
      "type": "string",
      "description": "Check 'Error Codes' table in Gateway section for details",
      "example": "4.01 Insufficient Funds"
     },
     "externalResultCode": {
      "type": "string",
      "description": "Result code from provider",
      "example": "42"
     },
     "externalId": {
      "type": "string",
      "description": "Payment Id on provider side"
     }
    }
   },
   "Payment": {
    "type": "object",
    "properties": {
     "id": {
      "maxLength": 32,
      "type": "string",
      "description": "Payment Id",
      "example": "91d27876e87f4b22b3ecd53924bf973d"
     },
     "created": {
      "type": "string",
      "format": "ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)",
      "description": "Date and time when this payment was created, in UTC time zone",
      "example": "2025-10-25T10:11:12"
     },
     "updated": {
      "type": "string",
      "format": "ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)",
      "description": "Date and time when this payment was last updated, in UTC time zone",
      "example": "2025-10-25T10:12:12"
     },
     "state": {
      "$ref": "#/components/schemas/PaymentState"
     },
     "errorCode": {
      "type": "string",
      "description": "Check 'Error Codes' table in Gateway section for details",
      "example": "4.01 Insufficient Funds"
     },
     "type": {
      "$ref": "#/components/schemas/PaymentType"
     },
     "method": {
      "$ref": "#/components/schemas/PaymentMethod"
     },
     "description": {
      "maxLength": 512,
      "type": "string",
      "description": "Description of the payment",
      "example": "Deposit via TEST shop"
     },
     "referenceId": {
      "maxLength": 256,
      "type": "string",
      "description": "referenceId from payment request",
      "example": "payment-123"
     },
     "parentPaymentId": {
      "maxLength": 32,
      "type": "string",
      "description": "Parent payment Id. For refunds, contains the initial deposit Id. For cascading attempts, contains the initial payment Id.",
      "example": "91d27876e87f4b22b3ecd53924bf973d"
     },
     "startRecurring": {
      "type": "boolean",
      "description": "Indicates whether this payment has started a recurring chain"
     },
     "recurringToken": {
      "type": "string",
      "description": "Token that was used to continue the recurring chain"
     },
     "preAuth": {
      "type": "boolean",
      "description": "Indicates whether this was a 2-phase deposit"
     },
     "merchantId": {
      "type": "integer",
      "description": "Merchant Id"
     },
     "merchantName": {
      "type": "string",
      "description": "Merchant name"
     },
     "shopId": {
      "type": "integer",
      "description": "Shop Id"
     },
     "shopName": {
      "type": "string",
      "description": "Shop name"
     },
     "providerId": {
      "type": "integer",
      "description": "Provider Id"
     },
     "providerName": {
      "type": "string",
      "description": "Provider name"
     },
     "terminalId": {
      "type": "integer",
      "description": "Terminal Id"
     },
     "terminalName": {
      "type": "string",
      "description": "Terminal name"
     },
     "externalId": {
      "type": "string",
      "description": "Payment Id on provider side"
     },
     "externalResultCode": {
      "type": "string",
      "description": "Result code from provider",
      "example": "42"
     },
     "amount": {
      "type": "number",
      "description": "Amount paid by customer",
      "example": 11.12
     },
     "refundedAmount": {
      "type": "number",
      "description": "Amount of completed refunds for deposit",
      "example": 11.12
     },
     "currency": {
      "type": "string",
      "description": "Currency sent to payment provider",
      "format": "ISO 4217 code for FIAT currencies or cryptocurrency symbol",
      "example": "EUR"
     },
     "baseAmount": {
      "type": "number",
      "description": "Amount in system base currency",
      "example": 15
     },
     "customerAmount": {
      "type": "number",
      "description": "Amount from payment request. Filled only if the request currency differs from the currency sent to the payment provider.",
      "example": 15
     },
     "customerCurrency": {
      "type": "string",
      "description": "Currency from payment request. Filled only if it differs from the currency sent to the payment provider.",
      "format": "ISO 4217 code for FIAT currencies or cryptocurrency symbol",
      "example": "USD"
     },
     "shopBaseAmount": {
      "type": "number",
      "description": "Amount in shop base currency",
      "example": 15
     },
     "shopBaseCurrency": {
      "type": "string",
      "description": "Shop base currency",
      "format": "ISO 4217 code for FIAT currencies or cryptocurrency symbol",
      "example": "USD"
     },
     "customerReferenceId": {
      "type": "string",
      "description": "Id of the customer assigned by Merchant",
      "example": "customer_123"
     },
     "customerAccountNumber": {
      "type": "string",
      "description": "Customer account number. Masked PAN for BASIC_CARD method"
     },
     "customerBank": {
      "maxLength": 64,
      "type": "string",
      "description": "Customer bank name"
     },
     "customerBankBranch": {
      "maxLength": 64,
      "type": "string",
      "description": "Customer bank branch name"
     },
     "customerBankCode": {
      "maxLength": 64,
      "type": "string",
      "description": "Customer bank code. 8-digit BIN for BASIC_CARD method"
     },
     "customerBankBranchCode": {
      "maxLength": 64,
      "type": "string",
      "description": "Customer bank branch code"
     },
     "customerCitizenshipCountryCode": {
      "type": "string",
      "description": "Customer country of citizenship",
      "example": "AU"
     },
     "customerFirstName": {
      "type": "string",
      "example": "John"
     },
     "customerLastName": {
      "type": "string",
      "example": "Smith"
     },
     "customerDateOfBirth": {
      "type": "string",
      "format": "ISO 8601 (YYYY-MM-DD)",
      "example": "2001-12-03"
     },
     "customerEmail": {
      "type": "string",
      "description": "Email address of the customer",
      "format": "email",
      "example": "my@email.com"
     },
     "customerPhone": {
      "type": "string",
      "description": "International phone number of the customer, without the '+'. Use a space as a separator between the dialing country code and local phone number.",
      "example": "357 123123123"
     },
     "customerRoutingGroup": {
      "type": "string",
      "description": "VIP",
      "example": "John"
     },
     "customerIp": {
      "type": "string",
      "description": "Customer IP address",
      "example": "127.0.0.1"
     },
     "customerIpCountryCode": {
      "type": "string",
      "description": "Customer IP country code",
      "example": "CY"
     },
     "billingCountryCode": {
      "type": "string",
      "description": "2-character IS0-3166-1 country code",
      "example": "CY"
     },
     "billingPostalCode": {
      "type": "string",
      "description": "Postal code",
      "example": "4141"
     },
     "billingCity": {
      "type": "string",
      "description": "City name",
      "example": "Limassol"
     },
     "billingState": {
      "type": "string",
      "description": "State code",
      "example": "CA"
     },
     "billingAddressLine1": {
      "type": "string",
      "description": "Line 1 of the address (e.g., Number, street, etc)",
      "example": "7, Sunny street"
     },
     "billingAddressLine2": {
      "type": "string",
      "description": "Line 2 of the address (e.g., Suite, apt)",
      "example": "Office 3"
     },
     "cardholderName": {
      "type": "string",
      "description": "Cardholder's name printed on the card",
      "example": "John Smith"
     },
     "cardBrand": {
      "type": "string",
      "description": "Card brand",
      "example": "VISA"
     },
     "cardType": {
      "type": "string",
      "description": "Card brand",
      "example": "CREDIT"
     },
     "cardCountryCode": {
      "type": "string",
      "description": "2-character IS0-3166-1 country code",
      "example": "CY"
     },
     "cardIssuingOrganization": {
      "type": "string",
      "description": "Card issuing organization",
      "example": "BANK OF CYPRUS PUBLIC COMPANY LIMITED"
     }
    }
   },
   "Balance": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "description": "Balance Id",
      "example": 123
     },
     "accountType": {
      "type": "string",
      "description": "Account type",
      "example": "PROCESSING",
      "enum": [
       "PROCESSING",
       "AVAILABLE",
       "WITHDRAWAL",
       "CUSTOM"
      ]
     },
     "name": {
      "type": "string",
      "description": "Account name",
      "example": "Processing Balance(EUR) of shop \"my-shop\""
     },
     "currency": {
      "type": "string",
      "description": "Currency",
      "format": "ISO 4217 code for FIAT currencies or cryptocurrency symbol",
      "example": "EUR"
     },
     "amount": {
      "type": "number",
      "description": "Current account balance amount",
      "example": 1020.12
     }
    }
   },
   "AvailableWithdrawalBalances": {
    "type": "object",
    "properties": {
     "shopId": {
      "type": "integer",
      "description": "Shop Id",
      "example": 1381
     },
     "shopName": {
      "type": "string",
      "description": "Shop Name",
      "example": "Best Shop"
     },
     "terminalId": {
      "type": "integer",
      "description": "Terminal Id. **Present only with View Terminal Permission**",
      "example": 11126
     },
     "terminalName": {
      "type": "string",
      "description": "Terminal Name. **Present only with View Terminal Permission**",
      "example": "Best Terminal"
     },
     "currency": {
      "type": "string",
      "description": "Currency",
      "format": "ISO 4217 code for FIAT currencies or cryptocurrency symbol",
      "example": "EUR"
     },
     "amount": {
      "type": "number",
      "description": "Amount",
      "example": 500.25
     }
    }
   },
   "Counterparty": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "description": "Counterparty Id",
      "example": 111
     },
     "name": {
      "type": "string",
      "description": "Counterparty Name",
      "example": "Best Counterparty"
     },
     "affiliateId": {
      "type": "string",
      "description": "Affiliate Id",
      "example": "d941c1d7805530"
     },
     "affiliateName": {
      "type": "string",
      "description": "Affiliate Name",
      "example": "SomeName"
     },
     "uniqueCode": {
      "type": "string",
      "description": "Unique Code",
      "example": "c1d7"
     },
     "registrationDate": {
      "type": "string",
      "format": "ISO 8601 (YYYY-MM-DD)",
      "example": "2025-11-17"
     },
     "createdAt": {
      "type": "string",
      "format": "ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)",
      "example": "2025-11-17T12:12:12"
     },
     "counterpartyTypes": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "example": [
       "MERCHANT",
       "PROVIDER"
      ]
     }
    }
   },
   "Shop": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "description": "Shop Id",
      "example": 111
     },
     "name": {
      "type": "string",
      "description": "Shop Name",
      "example": "Best Shop"
     },
     "state": {
      "type": "string",
      "description": "Shop state",
      "example": "ACTIVE",
      "enum": [
       "ACTIVE",
       "INACTIVE"
      ]
     },
     "displayName": {
      "type": "string",
      "description": "Shops display name",
      "example": "Best Shop"
     },
     "merchantId": {
      "type": "integer",
      "description": "Merchant Id",
      "example": 192
     },
     "merchantName": {
      "type": "string",
      "description": "Merchant Name",
      "example": "Best Merchant"
     },
     "introducerId": {
      "type": "string",
      "description": "Introducer Id",
      "example": 12345
     },
     "introducerName": {
      "type": "string",
      "description": "Introducer Name",
      "example": "Mr. John"
     },
     "countryCode": {
      "type": "string",
      "maxLength": 2,
      "minLength": 2,
      "pattern": "[A-Z]{2}",
      "description": "2-character IS0-3166-1 country code",
      "example": "US"
     },
     "shopUrl": {
      "type": "string",
      "description": "Shop Url",
      "example": "https://best-shop-every.bestshop"
     },
     "webhookUrl": {
      "type": "string",
      "description": "Webhook url",
      "example": "https://best-shop-every.bestshop/webhooks/tid/111"
     },
     "returnUrl": {
      "type": "string",
      "description": "Return Url",
      "example": "https://best-shop-every.bestshop"
     },
     "checkoutUrl": {
      "type": "string",
      "description": "Checkout url of the Shop",
      "example": "https://best-shop-every.bestshop/checkout"
     },
     "alternativeReturnUrl": {
      "type": "string",
      "description": "When a user submits a checkout page, we store the IP address. If the user's IP address has changed before returning them to the merchant's website, we use an alternative return URL.",
      "example": "https://super-shop.bestshop"
     },
     "baseCurrency": {
      "type": "string",
      "description": "Base currency"
     },
     "checkoutTimeout": {
      "type": "integer",
      "description": "Checkout timeout",
      "maxLength": 1440,
      "example": 60
     },
     "cascadingConfirmationTimeout": {
      "type": "integer",
      "description": "How long to wait for customer confirmation after a failed deposit attempt before using the next cascading option.",
      "sample": 5
     },
     "resultPageRedirectTimeout": {
      "type": "integer",
      "description": "Indicates how much time in seconds the customer will stay on the final result page.",
      "example": 5
     },
     "antiFraudProfileId": {
      "type": "integer",
      "description": "Anti Fraud Profile Id",
      "example": 100
     },
     "checkoutThemeCode": {
      "type": "string",
      "description": "Checkout Theme Code"
     },
     "postProcessors": {
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "preProcessors": {
      "type": "array",
      "items": {
       "type": "integer"
      }
     },
     "routingStrategy": {
      "type": "string",
      "description": "Routing strategy used in the shop"
     },
     "depositRequiredParameters": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "example": [
       "customerFirstName",
       "customerLastName",
       "customerEmail",
       "customerPhone",
       "customerDateOfBirth",
       "billingAddress"
      ]
     },
     "shopGroups": {
      "type": "array",
      "items": {
       "type": "string"
      }
     },
     "createdAt": {
      "type": "string",
      "format": "ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)",
      "example": "2025-11-17T12:12:12"
     }
    }
   },
   "Terminal": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "description": "Terminal Id",
      "example": 111
     },
     "name": {
      "type": "string",
      "description": "Terminal Name",
      "example": "Basic Card Terminal"
     },
     "state": {
      "type": "string",
      "description": "The Terminal State",
      "example": "Basic Card Terminal",
      "enum": [
       "ACTIVE",
       "APPROVING",
       "DISABLED"
      ]
     },
     "merchantId": {
      "type": "integer",
      "description": "Merchant Id",
      "example": 2281
     },
     "merchantName": {
      "type": "string",
      "description": "Merchant Name",
      "example": "Best Merchant"
     },
     "providerId": {
      "type": "integer",
      "description": "Provider Id",
      "example": 345
     },
     "providerName": {
      "type": "string",
      "description": "Provider Name",
      "example": "Best Provider"
     },
     "apiCode": {
      "type": "string",
      "description": "Api Code",
      "example": "ApiCode"
     },
     "apiName": {
      "type": "string",
      "description": "Api Name",
      "example": "ApiName"
     },
     "createdAt": {
      "type": "string",
      "format": "ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)",
      "example": "2025-11-17T12:12:12"
     },
     "apiTypes": {
      "type": "array",
      "items": {
       "type": "string"
      },
      "example": [
       "PSP",
       "BANKING",
       "COMPLIANCE",
       "PRE_PROCESSOR",
       "POST_PROCESSOR"
      ]
     }
    }
   },
   "BinDetails": {
    "type": "object",
    "properties": {
     "bin": {
      "type": "string",
      "description": "BIN (Bank Identification Number)",
      "example": "411111"
     },
     "cardBrand": {
      "type": "string",
      "description": "Card brand",
      "example": "VISA"
     },
     "cardType": {
      "type": "string",
      "description": "Card type",
      "example": "CREDIT"
     },
     "issuingCountryCode": {
      "type": "string",
      "description": "2-character ISO 3166-1 country code of the issuing country",
      "example": "CY"
     },
     "issuingOrganization": {
      "type": "string",
      "description": "Card issuing organization",
      "example": "BANK OF CYPRUS PUBLIC COMPANY LIMITED"
     }
    }
   },
   "BinGroup": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "description": "BIN Group Id",
      "example": 42
     },
     "merchantId": {
      "type": "integer",
      "description": "Merchant Id",
      "example": 192
     },
     "merchantName": {
      "type": "string",
      "description": "Merchant Name",
      "example": "Best Merchant"
     },
     "groupName": {
      "type": "string",
      "description": "BIN Group Name",
      "example": "My BIN Group"
     }
    }
   },
   "Customer": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "description": "Customer Id",
      "example": 999
     },
     "merchantId": {
      "type": "integer",
      "description": "Merchant Id",
      "example": 192
     },
     "merchantName": {
      "type": "string",
      "description": "Merchant Name",
      "example": "Best Merchant"
     },
     "shopId": {
      "type": "integer",
      "description": "Shop Id",
      "example": 111
     },
     "shopName": {
      "type": "string",
      "description": "Shop Name",
      "example": "Best Shop"
     },
     "referenceId": {
      "type": "string",
      "description": "Customer reference Id assigned by the merchant",
      "example": "customer_123"
     },
     "firstName": {
      "type": "string",
      "description": "Customer first name",
      "example": "John"
     },
     "lastName": {
      "type": "string",
      "description": "Customer last name",
      "example": "Smith"
     },
     "email": {
      "type": "string",
      "description": "Email address of the customer. Returned only with View Customer Email permission.",
      "format": "email",
      "example": "my@email.com"
     },
     "phone": {
      "type": "string",
      "description": "International phone number of the customer, without the '+'. Use a space as a separator between the dialing country code and local phone number. Returned only with View Customer Phone permission.",
      "example": "357 123123123"
     },
     "dateOfBirth": {
      "type": "string",
      "description": "Customer date of birth",
      "format": "ISO 8601 (YYYY-MM-DD)",
      "example": "2001-12-03"
     },
     "paymentInstruments": {
      "type": "array",
      "description": "Payment instruments used by the customer",
      "items": {
       "type": "object",
       "properties": {
        "paymentMethod": {
         "type": "string",
         "description": "Payment method",
         "example": "BASIC_CARD"
        },
        "accountNumber": {
         "type": "string",
         "description": "Customer account number (masked PAN for BASIC_CARD)",
         "example": "411111******1111"
        },
        "numberOfSuccessfulDeposits": {
         "type": "integer",
         "description": "Number of successful deposits made with this instrument",
         "example": 5
        }
       }
      }
     },
     "connectedCards": {
      "type": "array",
      "description": "Cards saved or connected to the customer's account",
      "items": {
       "type": "object",
       "properties": {
        "cardholderName": {
         "type": "string",
         "description": "Cardholder name printed on the card",
         "example": "John Smith"
        },
        "pan": {
         "type": "string",
         "description": "Masked card PAN",
         "example": "411111******1111"
        },
        "expiryDate": {
         "type": "string",
         "description": "Card expiry date",
         "example": "12/26"
        },
        "updatedAt": {
         "type": "string",
         "format": "ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)",
         "description": "Date and time when the card was last updated, in UTC time zone",
         "example": "2025-11-17T12:12:12"
        },
        "savedByCustomer": {
         "type": "boolean",
         "description": "Indicates whether the card was saved by the customer"
        }
       }
      }
     }
    }
   },
   "ShopGroup": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "description": "Shop Group Id",
      "example": 10
     },
     "name": {
      "type": "string",
      "description": "Shop Group Name",
      "example": "My Shop Group"
     },
     "shops": {
      "type": "array",
      "description": "List of shops in the group",
      "items": {
       "type": "object",
       "properties": {
        "id": {
         "type": "integer",
         "description": "Shop Id",
         "example": 111
        },
        "name": {
         "type": "string",
         "description": "Shop Name",
         "example": "Best Shop"
        }
       }
      }
     }
    }
   },
   "EmailGroup": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "description": "Email Group Id",
      "example": 10
     },
     "name": {
      "type": "string",
      "description": "Email Group Name",
      "example": "My Email Group"
     },
     "merchantId": {
      "type": "integer",
      "description": "Merchant Id",
      "example": 192
     },
     "merchantName": {
      "type": "string",
      "description": "Merchant Name",
      "example": "Best Merchant"
     }
    }
   },
   "CardGroup": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "description": "Card Group Id",
      "example": 10
     },
     "name": {
      "type": "string",
      "description": "Card Group Name",
      "example": "My Card Group"
     },
     "merchantId": {
      "type": "integer",
      "description": "Merchant Id",
      "example": 192
     },
     "merchantName": {
      "type": "string",
      "description": "Merchant Name",
      "example": "Best Merchant"
     }
    }
   },
   "CountryGroup": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "description": "Country Group Id",
      "example": 10
     },
     "name": {
      "type": "string",
      "description": "Country Group Name",
      "example": "My Country Group"
     },
     "merchantId": {
      "type": "integer",
      "description": "Merchant Id",
      "example": 192
     },
     "merchantName": {
      "type": "string",
      "description": "Merchant Name",
      "example": "Best Merchant"
     },
     "countries": {
      "type": "array",
      "description": "Set of 2-character ISO 3166-1 country codes",
      "items": {
       "type": "string"
      },
      "example": [
       "CY",
       "US",
       "GB"
      ]
     }
    }
   },
   "Connector": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "description": "Connector Id"
     },
     "shopId": {
      "type": "integer",
      "description": "Shop Id"
     },
     "state": {
      "type": "string",
      "description": "Connector state",
      "example": "ACTIVE"
     },
     "paymentMethod": {
      "type": "string",
      "description": "Payment method",
      "example": "BASIC_CARD"
     },
     "terminalId": {
      "type": "integer",
      "description": "Terminal Id"
     },
     "priority": {
      "type": "integer",
      "description": "Routing priority"
     },
     "weight": {
      "type": "integer",
      "description": "Routing weight"
     },
     "terminalCurrency": {
      "type": "string",
      "description": "Terminal currency",
      "format": "ISO 4217 code for FIAT currencies or cryptocurrency symbol",
      "example": "EUR"
     },
     "dpMinCommission": {
      "type": "number",
      "description": "Minimum deposit commission amount"
     },
     "dpCommissionPercent": {
      "type": "number",
      "description": "Deposit commission percentage"
     },
     "dpAmountConfirmation": {
      "type": "boolean",
      "description": "Whether deposit amount confirmation is required"
     },
     "wdMinCommission": {
      "type": "number",
      "description": "Minimum withdrawal commission amount"
     },
     "wdCommissionPercent": {
      "type": "number",
      "description": "Withdrawal commission percentage"
     },
     "wdCommissionOnTop": {
      "type": "boolean",
      "description": "Whether withdrawal commission is added on top"
     },
     "cascadingErrorCodesWhitelistId": {
      "type": "integer",
      "description": "Error code group ID used as cascading whitelist"
     },
     "cascadingErrorCodesBlacklistId": {
      "type": "integer",
      "description": "Error code group ID used as cascading blacklist"
     },
     "filters": {
      "type": "object",
      "description": "Payment routing filters",
      "properties": {
       "amountOp": {
        "type": "string",
        "description": "Amount comparison operator",
        "example": "BETWEEN"
       },
       "amountGte": {
        "type": "number",
        "description": "Minimum amount filter"
       },
       "amountLt": {
        "type": "number",
        "description": "Maximum (exclusive) amount filter"
       },
       "paymentType": {
        "type": "string",
        "description": "Payment type filter",
        "example": "DEPOSIT"
       },
       "customerCountry": {
        "type": "object",
        "description": "Customer country filter",
        "properties": {
         "code": {
          "type": "string",
          "description": "Country code",
          "example": "CY"
         },
         "op": {
          "type": "string",
          "description": "Operator",
          "example": "IN"
         },
         "groupId": {
          "type": "integer",
          "description": "Country group ID"
         }
        }
       },
       "ipCountry": {
        "type": "object",
        "description": "IP country filter",
        "properties": {
         "code": {
          "type": "string",
          "description": "Country code",
          "example": "CY"
         },
         "op": {
          "type": "string",
          "description": "Operator",
          "example": "IN"
         },
         "groupId": {
          "type": "integer",
          "description": "Country group ID"
         }
        }
       },
       "currency": {
        "type": "string",
        "description": "Currency filter",
        "format": "ISO 4217 code for FIAT currencies or cryptocurrency symbol",
        "example": "EUR"
       },
       "ipVersion": {
        "type": "string",
        "description": "IP version filter",
        "example": "IPV4"
       },
       "emailBlackListGroupId": {
        "type": "integer",
        "description": "Email blacklist group ID"
       },
       "emailWhiteListGroupId": {
        "type": "integer",
        "description": "Email whitelist group ID"
       },
       "routingGroups": {
        "type": "array",
        "description": "Routing groups filter",
        "items": {
         "type": "string"
        },
        "example": [
         "VIP"
        ]
       }
      }
     },
     "cardFilters": {
      "type": "object",
      "description": "Card routing filters",
      "properties": {
       "cardBlackListGroupId": {
        "type": "integer",
        "description": "Card blacklist group ID"
       },
       "cardWhiteListGroupId": {
        "type": "integer",
        "description": "Card whitelist group ID"
       },
       "binCountry": {
        "type": "object",
        "description": "BIN country filter",
        "properties": {
         "code": {
          "type": "string",
          "description": "Country code",
          "example": "CY"
         },
         "groupOp": {
          "type": "string",
          "description": "Group operator",
          "example": "IN"
         },
         "groupId": {
          "type": "integer",
          "description": "Country group ID"
         }
        }
       },
       "cardBin": {
        "type": "object",
        "description": "Card BIN filter",
        "properties": {
         "range": {
          "type": "integer",
          "description": "BIN range value"
         },
         "groupOp": {
          "type": "string",
          "description": "Group operator",
          "example": "IN"
         },
         "groupId": {
          "type": "integer",
          "description": "BIN group ID"
         }
        }
       },
       "binBrands": {
        "type": "array",
        "description": "Allowed card brands",
        "items": {
         "type": "string"
        },
        "example": [
         "VISA",
         "MASTERCARD"
        ]
       }
      }
     },
     "limits": {
      "type": "array",
      "description": "Connector limits",
      "items": {
       "type": "object",
       "properties": {
        "id": {
         "type": "integer",
         "description": "Limit ID"
        },
        "limitCode": {
         "type": "string",
         "description": "Limit code"
        },
        "timeUnit": {
         "type": "string",
         "description": "Time unit for the limit period",
         "example": "DAY"
        },
        "timePeriod": {
         "type": "integer",
         "description": "Number of time units in the limit period"
        },
        "limitValue": {
         "type": "integer",
         "description": "Maximum allowed value"
        },
        "routingGroup": {
         "type": "string",
         "description": "Routing group this limit applies to"
        }
       }
      }
     },
     "trustedRoutingCriteria": {
      "type": "object",
      "description": "Criteria for trusted routing",
      "properties": {
       "customerKycStatus": {
        "type": "string",
        "description": "Required customer KYC status"
       },
       "cardKycStatus": {
        "type": "string",
        "description": "Required card KYC status"
       },
       "daysSinceFirstDeposit": {
        "type": "integer",
        "description": "Minimum days since customer's first deposit"
       },
       "cardHoursSinceFirstDeposit": {
        "type": "integer",
        "description": "Minimum hours since card's first deposit"
       },
       "numberOfDpsForCard": {
        "type": "integer",
        "description": "Minimum number of deposits for the card"
       },
       "statisticsForThisShop": {
        "$ref": "#/components/schemas/ConnectorStatistics"
       },
       "statisticsForAllLinkedShops": {
        "$ref": "#/components/schemas/ConnectorStatistics"
       },
       "statisticsForAtLeastOneLinkedShop": {
        "$ref": "#/components/schemas/ConnectorStatistics"
       }
      }
     }
    }
   },
   "ConnectorStatistics": {
    "type": "object",
    "description": "Trusted routing statistics criteria",
    "properties": {
     "depositsAmount": {
      "type": "number",
      "description": "Minimum required deposits amount"
     },
     "depositsCount": {
      "type": "object",
      "description": "Required deposits count range",
      "properties": {
       "min": {
        "type": "integer",
        "description": "Minimum count"
       },
       "max": {
        "type": "integer",
        "description": "Maximum count"
       }
      }
     },
     "depositsCountForCard": {
      "type": "object",
      "description": "Required deposits count range for the card",
      "properties": {
       "min": {
        "type": "integer",
        "description": "Minimum count"
       },
       "max": {
        "type": "integer",
        "description": "Maximum count"
       }
      }
     },
     "withdrawalsAmount": {
      "type": "number",
      "description": "Minimum required withdrawals amount"
     },
     "withdrawalsCount": {
      "type": "integer",
      "description": "Minimum required withdrawals count"
     }
    }
   },
   "AntiFraudProfile": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "description": "Anti-Fraud Profile Id",
      "example": 100
     },
     "name": {
      "type": "string",
      "description": "Profile name",
      "example": "Default Profile"
     },
     "timeZoneToCheckLimits": {
      "type": "string",
      "description": "Time zone used when checking limits",
      "example": "Europe/Nicosia"
     },
     "paymentDataVerification": {
      "type": "array",
      "description": "Payment data verification rules",
      "items": {
       "type": "object",
       "properties": {
        "id": {
         "type": "integer",
         "description": "Rule ID"
        },
        "ruleCode": {
         "type": "string",
         "description": "Verification rule code"
        },
        "countryOp": {
         "type": "string",
         "description": "Country filter operator"
        },
        "countryCode": {
         "type": "string",
         "description": "Country code filter value",
         "example": "CY"
        },
        "countryGroupId": {
         "type": "integer",
         "description": "Country group ID filter"
        },
        "currency": {
         "type": "string",
         "description": "Currency filter value",
         "example": "EUR"
        },
        "currencyOp": {
         "type": "string",
         "description": "Currency filter operator"
        },
        "currencyGroupId": {
         "type": "integer",
         "description": "Currency group ID filter"
        },
        "amountOp": {
         "type": "string",
         "description": "Amount comparison operator"
        },
        "amountGte": {
         "type": "number",
         "description": "Minimum amount filter"
        },
        "amountLt": {
         "type": "number",
         "description": "Maximum (exclusive) amount filter"
        },
        "currencies": {
         "type": "string",
         "description": "Comma-separated list of currencies"
        },
        "period": {
         "type": "integer",
         "description": "Period in days"
        },
        "parameters": {
         "type": "string",
         "description": "Additional rule parameters"
        },
        "routingGroup": {
         "type": "string",
         "description": "Routing group this rule applies to"
        }
       }
      }
     },
     "shopLimits": {
      "type": "array",
      "description": "Shop-level limits",
      "items": {
       "type": "object",
       "properties": {
        "id": {
         "type": "integer",
         "description": "Limit ID"
        },
        "limitCode": {
         "type": "string",
         "description": "Limit code"
        },
        "timeUnit": {
         "type": "string",
         "description": "Time unit for the limit period",
         "example": "DAY"
        },
        "timePeriod": {
         "type": "integer",
         "description": "Number of time units in the limit period"
        },
        "currency": {
         "type": "string",
         "description": "Currency for the limit",
         "example": "EUR"
        },
        "limitValue": {
         "type": "number",
         "description": "Maximum allowed value"
        }
       }
      }
     },
     "offlineChecks": {
      "type": "array",
      "description": "Offline check rules",
      "items": {
       "type": "object",
       "properties": {
        "id": {
         "type": "integer",
         "description": "Check ID"
        },
        "warnCode": {
         "type": "string",
         "description": "Warning code"
        },
        "timeUnit": {
         "type": "string",
         "description": "Time unit for the check period",
         "example": "DAY"
        },
        "timePeriod": {
         "type": "integer",
         "description": "Number of time units in the check period"
        },
        "countryOp": {
         "type": "string",
         "description": "Country filter operator"
        },
        "countryCode": {
         "type": "string",
         "description": "Country code filter",
         "example": "CY"
        },
        "countryGroupId": {
         "type": "integer",
         "description": "Country group ID filter"
        },
        "currency": {
         "type": "string",
         "description": "Currency filter",
         "example": "EUR"
        },
        "limitValue": {
         "type": "number",
         "description": "Limit value"
        },
        "period": {
         "type": "integer",
         "description": "Period in days"
        }
       }
      }
     }
    }
   },
   "CurrencyRate": {
    "type": "object",
    "properties": {
     "baseCurrency": {
      "type": "string",
      "description": "Base currency",
      "format": "ISO 4217 code for FIAT currencies or cryptocurrency symbol",
      "example": "EUR"
     },
     "quoteCurrency": {
      "type": "string",
      "description": "Quote currency",
      "format": "ISO 4217 code for FIAT currencies or cryptocurrency symbol",
      "example": "USD"
     },
     "rate": {
      "type": "number",
      "description": "Exchange rate (1 unit of base currency in quote currency)",
      "example": 1.1
     },
     "lastUpdate": {
      "type": "string",
      "format": "ISO 8601 (YYYY-MM-DD'T'HH24:MI:SS)",
      "description": "Date and time when the rate was last updated, in UTC time zone",
      "example": "2025-11-17T12:12:12"
     },
     "userId": {
      "type": "integer",
      "description": "ID of the user who last updated the rate"
     },
     "jobTerminalId": {
      "type": "integer",
      "description": "ID of the terminal job that updated the rate"
     }
    }
   },
   "BankCode": {
    "type": "object",
    "properties": {
     "countryCode": {
      "type": "string",
      "description": "2-character ISO 3166-1 country code",
      "example": "NG"
     },
     "bankCode": {
      "type": "string",
      "description": "Bank code",
      "example": "000001"
     },
     "bankName": {
      "type": "string",
      "description": "Bank name",
      "example": "Access Bank"
     }
    }
   },
   "BankCodeMapping": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "description": "Mapping ID",
      "example": 42
     },
     "countryCode": {
      "type": "string",
      "description": "2-character ISO 3166-1 country code",
      "example": "NG"
     },
     "bankCode": {
      "type": "string",
      "description": "System bank code",
      "example": "000001"
     },
     "apiCode": {
      "type": "string",
      "description": "Provider API code",
      "example": "FLUTTERWAVE"
     },
     "apiBankCode": {
      "type": "string",
      "description": "Bank code used by the provider API",
      "example": "ACCESS"
     }
    }
   },
   "ErrorCodeGroup": {
    "type": "object",
    "properties": {
     "id": {
      "type": "integer",
      "description": "Error Code Group Id",
      "example": 10
     },
     "name": {
      "type": "string",
      "description": "Error Code Group Name",
      "example": "My Error Code Group"
     },
     "merchantId": {
      "type": "integer",
      "description": "Merchant Id",
      "example": 192
     },
     "merchantName": {
      "type": "string",
      "description": "Merchant Name",
      "example": "Best Merchant"
     },
     "errorCodes": {
      "type": "array",
      "description": "Set of error codes in this group",
      "items": {
       "type": "string"
      },
      "example": [
       "4.01",
       "3.00"
      ]
     }
    }
   },
   "AddEmailsToGroupRequest": {
    "type": "object",
    "required": [
     "emails"
    ],
    "properties": {
     "emails": {
      "type": "array",
      "minItems": 1,
      "description": "List of email addresses to add to the group",
      "items": {
       "type": "string",
       "format": "email"
      },
      "example": [
       "alerts@merchant.com",
       "support@merchant.com"
      ]
     }
    }
   },
   "AddCardsToGroupRequest": {
    "type": "object",
    "required": [
     "cardNumbers"
    ],
    "properties": {
     "cardNumbers": {
      "type": "array",
      "minItems": 1,
      "description": "List of card numbers to add to the group. For masked card groups, each entry must start with at least 6 digits and end with 4 digits.",
      "items": {
       "type": "string"
      },
      "example": [
       "411111***1111",
       "550000***5559"
      ]
     }
    }
   },
   "OperationListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/PaymentOperation"
      }
     }
    }
   },
   "PaymentListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Payment"
      }
     }
    }
   },
   "TerminalBalanceResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "result": {
      "type": "object",
      "properties": {
       "available": {
        "type": "array",
        "description": "Available balance",
        "items": {
         "$ref": "#/components/schemas/CurrencyAmount"
        }
       },
       "reserved": {
        "type": "array",
        "description": "Reserved balance",
        "items": {
         "$ref": "#/components/schemas/CurrencyAmount"
        }
       }
      }
     }
    }
   },
   "CounterpartiesListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Counterparty"
      }
     }
    }
   },
   "ShopsListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Shop"
      }
     }
    }
   },
   "TerminalsListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Terminal"
      }
     }
    }
   },
   "BalanceListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Balance"
      }
     }
    }
   },
   "AvailableWithdrawalBalancesListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/AvailableWithdrawalBalances"
      }
     }
    }
   },
   "BinListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/BinDetails"
      }
     }
    }
   },
   "BinGroupListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/BinGroup"
      }
     }
    }
   },
   "BinGroupItemsResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "description": "List of BINs in the group",
      "items": {
       "type": "string"
      },
      "example": [
       "411111",
       "511111"
      ]
     }
    }
   },
   "CustomerListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Customer"
      }
     }
    }
   },
   "ShopGroupListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/ShopGroup"
      }
     }
    }
   },
   "EmailGroupListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/EmailGroup"
      }
     }
    }
   },
   "EmailGroupItemsResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "description": "List of email addresses in the group",
      "items": {
       "type": "string"
      },
      "example": [
       "alerts@merchant.com",
       "support@merchant.com"
      ]
     }
    }
   },
   "CardGroupListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/CardGroup"
      }
     }
    }
   },
   "CardGroupItemsResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "description": "List of masked card PANs in the group",
      "items": {
       "type": "string"
      },
      "example": [
       "411111******1111",
       "511111******2222"
      ]
     }
    }
   },
   "CountryGroupListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/CountryGroup"
      }
     }
    }
   },
   "ConnectorListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/Connector"
      }
     }
    }
   },
   "AntiFraudProfileListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/AntiFraudProfile"
      }
     }
    }
   },
   "CurrencyRateListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/CurrencyRate"
      }
     }
    }
   },
   "BankCodeListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/BankCode"
      }
     }
    }
   },
   "BankCodeMappingListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/BankCodeMapping"
      }
     }
    }
   },
   "ErrorCodeGroupListResponse": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:36:32.595+00:00"
     },
     "status": {
      "type": "integer",
      "description": "HTTP status code",
      "example": 200
     },
     "hasMore": {
      "type": "boolean",
      "description": "Indicates if there are more pages to return"
     },
     "result": {
      "type": "array",
      "items": {
       "$ref": "#/components/schemas/ErrorCodeGroup"
      }
     }
    }
   },
   "BadRequestError": {
    "type": "object",
    "properties": {
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:32:19.444+00:00"
     },
     "status": {
      "type": "integer",
      "example": 400
     },
     "error": {
      "type": "string",
      "example": "Bad Request"
     },
     "message": {
      "type": "string"
     },
     "errors": {
      "type": "array",
      "items": {
       "type": "object",
       "properties": {
        "codes": {
         "type": "array",
         "items": {
          "type": "string"
         }
        },
        "arguments": {
         "type": "array",
         "items": {
          "type": "object",
          "properties": {
           "codes": {
            "type": "array",
            "items": {
             "type": "string"
            }
           },
           "defaultMessage": {
            "type": "string"
           }
          }
         }
        },
        "defaultMessage": {
         "type": "string"
        },
        "objectName": {
         "type": "string"
        },
        "field": {
         "type": "string"
        },
        "bindingFailure": {
         "type": "boolean"
        }
       }
      }
     },
     "path": {
      "type": "string",
      "example": "/merchant-api/v1/payments"
     }
    }
   },
   "UnauthorizedError": {
    "type": "object",
    "properties": {
     "status": {
      "type": "integer",
      "example": 401
     },
     "error": {
      "type": "string",
      "example": "Unauthorized"
     },
     "message": {
      "type": "string",
      "example": "Invalid token"
     },
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:32:19.444+00:00"
     },
     "path": {
      "type": "string",
      "example": "/merchant-api/v1/payments"
     }
    }
   },
   "ForbiddenError": {
    "type": "object",
    "properties": {
     "status": {
      "type": "integer",
      "example": 401
     },
     "error": {
      "type": "string",
      "example": "Forbidden"
     },
     "message": {
      "type": "string",
      "example": "403 FORBIDDEN"
     },
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:32:19.444+00:00"
     },
     "path": {
      "type": "string",
      "example": "/merchant-api/v1/payments"
     }
    }
   },
   "NotFoundError": {
    "type": "object",
    "properties": {
     "status": {
      "type": "integer",
      "example": 404
     },
     "error": {
      "type": "string",
      "example": "Not Found"
     },
     "message": {
      "type": "string",
      "example": "Payment not found"
     },
     "timestamp": {
      "type": "string",
      "format": "ISO 8601",
      "example": "2025-10-07T13:32:19.444+00:00"
     },
     "path": {
      "type": "string",
      "example": "/merchant-api/v1/payments"
     }
    }
   }
  },
  "responses": {
   "BadRequest": {
    "description": "Bad request",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/BadRequestError"
      }
     }
    }
   },
   "Unauthorized": {
    "description": "Unauthorized",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/UnauthorizedError"
      }
     }
    }
   },
   "Forbidden": {
    "description": "Forbidden",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/ForbiddenError"
      }
     }
    }
   },
   "NotFound": {
    "description": "Not Found",
    "content": {
     "application/json": {
      "schema": {
       "$ref": "#/components/schemas/NotFoundError"
      }
     }
    }
   }
  },
  "securitySchemes": {
   "BasicAuth": {
    "type": "http",
    "description": "Use your merchant dashboard credentials (email and password) as username and password for Basic Authorization.",
    "scheme": "basic"
   }
  }
 },
 "security": [
  {
   "BasicAuth": []
  }
 ],
 "tags": [
  {
   "name": "Payments",
   "description": "Payments API"
  },
  {
   "name": "Operations",
   "description": "Payment operations API"
  },
  {
   "name": "Counterparties",
   "description": "Counterparties API"
  },
  {
   "name": "Shops",
   "description": "Shops API"
  },
  {
   "name": "Terminals",
   "description": "Terminals API"
  },
  {
   "name": "Balances",
   "description": "Balances API"
  },
  {
   "name": "BINs",
   "description": "BINs API"
  },
  {
   "name": "Customers",
   "description": "Customers API"
  },
  {
   "name": "Emails",
   "description": "Email Groups API"
  },
  {
   "name": "Cards",
   "description": "Card Groups API"
  },
  {
   "name": "Countries",
   "description": "Country Groups API"
  },
  {
   "name": "Connectors",
   "description": "Connectors API"
  },
  {
   "name": "Anti-Fraud",
   "description": "Anti-Fraud Profiles API"
  },
  {
   "name": "Currency Rates",
   "description": "Currency Rates API"
  },
  {
   "name": "Bank Codes",
   "description": "Bank Codes API"
  },
  {
   "name": "Error Code Groups",
   "description": "Error Code Groups API"
  }
 ]
}

SHA-256: f5094fcf845abc4e45503fd32b537683e32a983816fc1cd3423e0201ec386be7