Bank Statements Common Adapter API

OpenAPI

Скачать исходную спецификацию

Варианты

  • Паблик

Операции API

GET /v1/accounts/{account}/statements — Getting a list of statements by account number

{
  "tags": [
    "Final statements"
  ],
  "summary": "Getting a list of statements by account number",
  "operationId": "getStatement",
  "parameters": [
    {
      "$ref": "#/components/parameters/Account"
    },
    {
      "$ref": "#/components/parameters/Fields"
    },
    {
      "$ref": "#/components/parameters/From"
    },
    {
      "$ref": "#/components/parameters/To"
    },
    {
      "$ref": "#/components/parameters/Limit"
    },
    {
      "$ref": "#/components/parameters/Offset"
    },
    {
      "$ref": "#/components/parameters/IdTokenHeader"
    }
  ],
  "responses": {
    "200": {
      "$ref": "#/components/responses/StatementListResponse"
    },
    "400": {
      "$ref": "#/components/responses/BadRequest"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}

GET /v1/clients/{cnum}/statements — Getting a list of statements by client number

{
  "tags": [
    "Final statements"
  ],
  "summary": "Getting a list of statements by client number",
  "operationId": "getStatementByCnum",
  "parameters": [
    {
      "$ref": "#/components/parameters/Cnum"
    },
    {
      "$ref": "#/components/parameters/Fields"
    },
    {
      "$ref": "#/components/parameters/From"
    },
    {
      "$ref": "#/components/parameters/To"
    },
    {
      "$ref": "#/components/parameters/Limit"
    },
    {
      "$ref": "#/components/parameters/Offset"
    },
    {
      "$ref": "#/components/parameters/IdTokenHeader"
    }
  ],
  "responses": {
    "200": {
      "$ref": "#/components/responses/StatementListResponse"
    },
    "400": {
      "$ref": "#/components/responses/BadRequest"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}

GET /v1/clients/statements — Getting a list of statements by several client numbers

{
  "tags": [
    "Final statements"
  ],
  "summary": "Getting a list of statements by several client numbers",
  "operationId": "getStatementByCnumList",
  "parameters": [
    {
      "$ref": "#/components/parameters/CnumList"
    },
    {
      "$ref": "#/components/parameters/Fields"
    },
    {
      "$ref": "#/components/parameters/From"
    },
    {
      "$ref": "#/components/parameters/To"
    },
    {
      "$ref": "#/components/parameters/Limit"
    },
    {
      "$ref": "#/components/parameters/Offset"
    },
    {
      "$ref": "#/components/parameters/IdTokenHeader"
    }
  ],
  "responses": {
    "200": {
      "$ref": "#/components/responses/StatementListResponse"
    },
    "400": {
      "$ref": "#/components/responses/BadRequest"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}

GET /v1/accounts/{account}/statements/intraday — Getting a list of intraday statements by account number

{
  "tags": [
    "Intraday statements"
  ],
  "summary": "Getting a list of intraday statements by account number",
  "operationId": "getIntradayStatement",
  "parameters": [
    {
      "$ref": "#/components/parameters/Account"
    },
    {
      "$ref": "#/components/parameters/Fields"
    },
    {
      "$ref": "#/components/parameters/From"
    },
    {
      "$ref": "#/components/parameters/To"
    },
    {
      "$ref": "#/components/parameters/Limit"
    },
    {
      "$ref": "#/components/parameters/Offset"
    },
    {
      "$ref": "#/components/parameters/IdTokenHeader"
    }
  ],
  "responses": {
    "200": {
      "$ref": "#/components/responses/StatementListResponse"
    },
    "400": {
      "$ref": "#/components/responses/BadRequest"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}

GET /v1/clients/{cnum}/statements/intraday — Getting a list of intraday statements by client number

{
  "tags": [
    "Intraday statements"
  ],
  "summary": "Getting a list of intraday statements by client number",
  "operationId": "getIntradayStatementByCnum",
  "parameters": [
    {
      "$ref": "#/components/parameters/Cnum"
    },
    {
      "$ref": "#/components/parameters/Fields"
    },
    {
      "$ref": "#/components/parameters/From"
    },
    {
      "$ref": "#/components/parameters/To"
    },
    {
      "$ref": "#/components/parameters/Limit"
    },
    {
      "$ref": "#/components/parameters/Offset"
    },
    {
      "$ref": "#/components/parameters/IdTokenHeader"
    }
  ],
  "responses": {
    "200": {
      "$ref": "#/components/responses/StatementListResponse"
    },
    "400": {
      "$ref": "#/components/responses/BadRequest"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}

GET /v1/clients/statements/intraday — Getting a list of intraday statements by several client numbers

{
  "tags": [
    "Intraday statements"
  ],
  "summary": "Getting a list of intraday statements by several client numbers",
  "operationId": "getIntradayStatementByCnumList",
  "parameters": [
    {
      "$ref": "#/components/parameters/CnumList"
    },
    {
      "$ref": "#/components/parameters/Fields"
    },
    {
      "$ref": "#/components/parameters/From"
    },
    {
      "$ref": "#/components/parameters/To"
    },
    {
      "$ref": "#/components/parameters/Limit"
    },
    {
      "$ref": "#/components/parameters/Offset"
    },
    {
      "$ref": "#/components/parameters/IdTokenHeader"
    }
  ],
  "responses": {
    "200": {
      "$ref": "#/components/responses/StatementListResponse"
    },
    "400": {
      "$ref": "#/components/responses/BadRequest"
    },
    "401": {
      "$ref": "#/components/responses/Unauthorized"
    },
    "404": {
      "$ref": "#/components/responses/NotFound"
    }
  }
}

Схемы и примеры

{
  "securitySchemes": {
    "bearerAuth": {
      "type": "http",
      "scheme": "bearer",
      "description": "Access token",
      "bearerFormat": "JWT"
    }
  },
  "schemas": {
    "GatewayErrorResponse": {
      "type": "object",
      "required": [
        "http_status_code",
        "message"
      ],
      "properties": {
        "http_status_code": {
          "description": "HTTP status",
          "type": "integer"
        },
        "message": {
          "description": "Error",
          "type": "string"
        }
      }
    },
    "ServiceErrorResponse": {
      "type": "object",
      "required": [
        "status",
        "error"
      ],
      "properties": {
        "status": {
          "description": "HTTP status",
          "type": "integer"
        },
        "error": {
          "description": "Error",
          "type": "string"
        },
        "message": {
          "description": "Error Details",
          "type": "string"
        }
      }
    },
    "StatementResponse": {
      "required": [
        "accountNumber",
        "creditAmount",
        "creditAmountRur",
        "creditDocumentsCount",
        "currency",
        "date",
        "debitAmount",
        "debitAmountRur",
        "debitDocumentsCount",
        "documentNumber",
        "incomeBalance",
        "incomeBalanceRur",
        "organizationName",
        "outcomeBalance",
        "outcomeBalanceRur"
      ],
      "type": "object",
      "properties": {
        "documentNumber": {
          "type": "string",
          "description": "Document number"
        },
        "accountNumber": {
          "type": "string",
          "description": "Account number"
        },
        "date": {
          "type": "string",
          "description": "Transaction date"
        },
        "currency": {
          "type": "string",
          "description": "Account currency"
        },
        "incomeBalance": {
          "type": "number",
          "description": "Opening balance"
        },
        "incomeBalanceRur": {
          "type": "number",
          "description": "Opening balance in national currency"
        },
        "creditAmount": {
          "type": "number",
          "description": "Amount of loan turnover"
        },
        "creditAmountRur": {
          "type": "number",
          "description": "Amount of loan turnover in national currency"
        },
        "creditDocumentsCount": {
          "type": "integer",
          "description": "Number of cash accrual transactions in this statement",
          "format": "int32"
        },
        "debitAmount": {
          "type": "number",
          "description": "Amount of debit turnover"
        },
        "debitAmountRur": {
          "type": "number",
          "description": "Amount of debit turnover in national currency"
        },
        "debitDocumentsCount": {
          "type": "integer",
          "description": "Number of debit transactions in this statement",
          "format": "int32"
        },
        "outcomeBalance": {
          "type": "number",
          "description": "Closing balance"
        },
        "outcomeBalanceRur": {
          "type": "number",
          "description": "Closing balance in national currency"
        },
        "organizationName": {
          "type": "string",
          "description": "Organization"
        }
      }
    }
  },
  "responses": {
    "Unauthorized": {
      "description": "Unauthorized",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/GatewayErrorResponse"
          },
          "example": {
            "http_status_code": 401,
            "message": "Unauthorized"
          }
        }
      }
    },
    "BadRequest": {
      "description": "Bad request",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ServiceErrorResponse"
          },
          "example": {
            "status": 400,
            "error": "Bad Request",
            "message": "Type mismatch."
          }
        }
      }
    },
    "NotFound": {
      "description": "Requested resource is not found",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ServiceErrorResponse"
          },
          "example": {
            "status": 404,
            "error": "Not Found",
            "message": "The requested resource is not found"
          }
        }
      }
    },
    "StatementListResponse": {
      "description": "List of statements was successfully received",
      "content": {
        "application/json": {
          "schema": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/StatementResponse"
            }
          },
          "example": "[\n  {\n      \"documentNumber\": \"12\",\n      \"accountNumber\": \"12345678901234567890\",\n      \"date\": \"2021-10-21T00:00:00+03:00\",\n      \"currency\": \"RUR\",\n      \"incomeBalance\": 4705128.19,\n      \"incomeBalanceRur\": 4705128.19,\n      \"creditAmount\": 2000000.0,\n      \"creditAmountRur\": 0.0,\n      \"creditDocumentsCount\": 1,\n      \"debitAmount\": 2142760.66,\n      \"debitAmountRur\": 0.0,\n      \"debitDocumentsCount\": 4,\n      \"outcomeBalance\": 1265443.51,\n      \"outcomeBalanceRur\": 1265443.51,\n      \"organizationName\": \"ООО Ромашка\"\n  }\n]\n"
        }
      }
    }
  },
  "parameters": {
    "IdTokenHeader": {
      "name": "Id-Token",
      "description": "User ID token",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    "Cnum": {
      "name": "cnum",
      "description": "Client number",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string"
      }
    },
    "Fields": {
      "name": "fields",
      "description": "List of required fields",
      "in": "query",
      "required": true,
      "schema": {
        "type": "array",
        "items": {
          "type": "string",
          "enum": [
            "DocumentNumber",
            "AccountNumber",
            "Date",
            "Currency",
            "IncomeBalance",
            "IncomeBalanceRur",
            "CreditAmount",
            "CreditAmountRur",
            "CreditDocumentsCount",
            "DebitAmount",
            "DebitAmountRur",
            "DebitDocumentsCount",
            "OutcomeBalance",
            "OutcomeBalanceRur",
            "OrganizationName"
          ]
        }
      }
    },
    "From": {
      "name": "from",
      "description": "Start date of the statement list period in the format yyyy-MM-dd.",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "format": "date",
        "example": "yyyy-MM-dd"
      }
    },
    "To": {
      "name": "to",
      "description": "End date of the statement list period in the format yyyy-MM-dd.",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "format": "date",
        "example": "yyyy-MM-dd"
      }
    },
    "Limit": {
      "name": "limit",
      "description": "Maximum size of the received list of statements",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32",
        "example": 20
      }
    },
    "Offset": {
      "name": "offset",
      "description": "Size offset from the beginning of the statement list",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "format": "int32",
        "example": 0
      }
    },
    "Account": {
      "name": "account",
      "description": "Account number",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "example": 12345678901234567000
      }
    },
    "CnumList": {
      "name": "cnumList",
      "description": "List of client numbers",
      "in": "query",
      "required": true,
      "schema": {
        "type": "array",
        "items": {
          "type": "string"
        }
      }
    }
  }
}