Skip to main content

Авторизация в сервисах Райффайзен Банка

OpenAPI 1.0.0

API получения токенов для доступа к сервисам Райффайзен Банка по Authorization Code Flow (по протоколам OAuth 2.0 и OpenID Connect 1.0).

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

Варианты

  • Паблик

Операции API

GET /authorize — Запрос на авторизацию (Code Flow)

Запрос инициирует процесс аутентификации пользователя (формируется клиентским приложением).

{
  "operationId": "authorize",
  "summary": "Запрос на авторизацию (Code Flow)",
  "tags": [
    "Аутентификация"
  ],
  "description": "Запрос инициирует процесс аутентификации пользователя \n(формируется клиентским приложением).",
  "parameters": [
    {
      "name": "response_type",
      "in": "query",
      "required": true,
      "description": "Тип ответа, для Code Flow необходимо передавать `code`.",
      "schema": {
        "type": "string",
        "enum": [
          "code"
        ],
        "example": "code"
      }
    },
    {
      "name": "client_id",
      "in": "query",
      "required": true,
      "description": "Идентификатор клиента (выдается Райффайзен Банком).",
      "schema": {
        "type": "string",
        "example": "a12b123b-0a12-3b4c-123a-12a3456789b1"
      }
    },
    {
      "name": "redirect_uri",
      "in": "query",
      "required": true,
      "description": "URI, на который будет перенаправлен пользователь после успешной авторизации.\nДолжен быть зарегистрирован в сервисе аутентификации Райффайзен Банка для вашего `client_id`.",
      "schema": {
        "type": "string",
        "format": "uri",
        "example": "https://example.ru/callback"
      }
    },
    {
      "name": "scope",
      "in": "query",
      "required": true,
      "description": "Запрашиваемые привилегии доступа. \nЗначения указываются через пробел, обязательно должно быть указано значение openid.",
      "schema": {
        "type": "string",
        "example": "openid profile email phone"
      }
    },
    {
      "name": "state",
      "in": "query",
      "required": true,
      "description": "Строка для защиты от CSRF-атак, генерируется клиентом.\nВозвращается в неизменном виде после авторизации.",
      "schema": {
        "type": "string",
        "example": "random-state-123"
      }
    },
    {
      "name": "nonce",
      "in": "query",
      "required": true,
      "description": "Строка для защиты от replay-атак, генерируется клиентом.\nДобавляется в ID-токен.",
      "schema": {
        "type": "string",
        "example": "random-nonce-456"
      }
    },
    {
      "name": "code_challenge",
      "in": "query",
      "required": true,
      "description": "Хэш значения `code_verifier` по стандарту PKCE (RFC 7636):\n`BASE64URL-ENCODE(SHA256(ASCII(code_verifier)))`.",
      "schema": {
        "type": "string",
        "example": "ewliMz7SBtJdHLlNuuJLdzu-gRs2olJQ24AQ8GTS6Qo"
      }
    },
    {
      "name": "code_challenge_method",
      "in": "query",
      "required": true,
      "description": "Метод хэширования `code_verifier`. Поддерживается только `S256`.",
      "schema": {
        "type": "string",
        "enum": [
          "S256"
        ],
        "example": "S256"
      }
    }
  ],
  "responses": {
    "303": {
      "description": "Редирект для продолжения аутентификации пользователя.",
      "headers": {
        "Location": {
          "description": "URI страницы для ввода аутентификационных данных пользователя (/signin)",
          "schema": {
            "type": "string",
            "example": "/signin"
          }
        },
        "Set-Cookie": {
          "description": "Куки (например, SESSION, FLASH, Prefer-Auth-Type, Raiff-Device-Id), \nкоторые сервис аутентификации отправляет клиенту для корректного отображения форм аутентификации.",
          "schema": {
            "type": "string"
          }
        }
      }
    },
    "400": {
      "description": "Запрос некорректен.",
      "content": {
        "text/plain": {
          "schema": {
            "type": "string"
          },
          "examples": {
            "MissingClientId": {
              "summary": "не указан client_id",
              "value": "missing client id"
            },
            "MissingRedirectionUri": {
              "summary": "не указан redirect_uri",
              "value": "missing redirection URI"
            },
            "MismatchingRedirectionUri": {
              "summary": "указанный redirect_uri не зарегистрирован для данного client_id",
              "value": "mismatching redirection URI for given client"
            }
          }
        }
      }
    }
  }
}

GET /signin — Форма аутентификации

Запрос html-страницы с формой для ввода аутентификационных данных пользователя (логина и пароля или номера телефона), отправляется браузером автоматически в результате выполнения запроса GET /authorize.

{
  "operationId": "signin",
  "summary": "Форма аутентификации",
  "tags": [
    "Аутентификация"
  ],
  "description": "Запрос html-страницы с формой для ввода \nаутентификационных данных пользователя (логина и пароля или номера телефона),\nотправляется браузером автоматически в результате выполнения запроса GET /authorize.",
  "parameters": [
    {
      "name": "SESSION",
      "in": "cookie",
      "required": true,
      "description": "Служебная кука сервиса аутентификации, \nзадается сервисом аутентификации в результате выполнения запроса GET /authorize.",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "FLASH",
      "in": "cookie",
      "required": false,
      "description": "Служебная кука сервиса аутентификации, \nзадается сервисом аутентификации в результате взаимодействия с пользователем.",
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Форма ввода аутентификационных данных.",
      "headers": {
        "Set-Cookie": {
          "description": "Куки (SESSION, FLASH, csrfToken), \nкоторые сервис аутентификации отправляет клиенту для корректного отображения форм аутентификации.",
          "schema": {
            "type": "string"
          }
        }
      }
    },
    "303": {
      "description": "Редирект для продолжения аутентификации пользователя.",
      "headers": {
        "Location": {
          "description": "URI клиентского приложения для перезапуска процесса аутентификации \n(в случае длительного бездействия пользователя или при передаче некорректных параметров в куках).",
          "schema": {
            "type": "string",
            "example": "https://example.ru/callback"
          }
        }
      }
    }
  }
}

POST /login — Проверка логина и пароля

Запрос на проверку введенных пользователем логина и пароля.

{
  "operationId": "login",
  "summary": "Проверка логина и пароля",
  "tags": [
    "Аутентификация"
  ],
  "description": "Запрос на проверку введенных пользователем логина и пароля.",
  "requestBody": {
    "content": {
      "application/x-www-form-urlencoded": {
        "schema": {
          "type": "object",
          "properties": {
            "login": {
              "description": "Логин пользователя \n(в качестве логина также может использоваться email или номер телефона).",
              "type": "string"
            },
            "password": {
              "description": "Пароль пользователя.",
              "type": "string"
            },
            "locale": {
              "description": "Локаль выбранная пользователем на форме аутентификации.",
              "type": "string",
              "enum": [
                "ru",
                "en"
              ],
              "example": "ru"
            },
            "g-recaptcha-response": {
              "description": "Решение Google reCAPTCHA на форме аутентификации.\nКапча требуется (и отображается на форме аутентификации) в том случае, \nкогда сервис аутентификации фиксирует большое количество неудачных попыток входа \n(по одному логину или с одного IP-адреса).",
              "type": "string"
            }
          },
          "required": [
            "login",
            "password"
          ]
        }
      }
    }
  },
  "parameters": [
    {
      "name": "csrfToken",
      "in": "query",
      "required": true,
      "description": "CSRF-токен, который был указан на форме аутентификации \n(возвращается в результате выполнения запроса GET /signin).",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "SESSION",
      "in": "cookie",
      "required": true,
      "description": "Служебная кука сервиса аутентификации, \nзадается сервисом аутентификации в результате выполнения запроса GET /signin.",
      "schema": {
        "type": "string"
      }
    },
    {
      "name": "FLASH",
      "in": "cookie",
      "required": false,
      "description": "Служебная кука сервиса аутентификации, \nзадается сервисом аутентификации в результате взаимодействия с пользователем.",
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "303": {
      "description": "Редирект для завершения аутентификации пользователя.",
      "headers": {
        "Location": {
          "description": "В зависимости от результата проверки пароля возвращается разный URI с разными параметрами.\n\nЕсли пользователь успешно аутентифицирован, то возвращается\nURI клиентского приложения (указанный в параметре `redirect_uri` запроса GET /authorize)\nс параметрами для завершения процесса аутентификации:\n\n- `code` (Authorization Code для обмена на токены)\n- `state` (должен совпадать с тем значением, что было указано в запросе GET /authorize).\n\nВ случае ошибки возвращается URI на форму аутентификации (/signin) для повторной попытки.",
          "schema": {
            "type": "string",
            "example": "https://example.ru/callback?code=yl4jA9kJFj5qQSRdoCRlYId9yAxfBDZy-MhfKI4bpeI&state=random-state-123"
          }
        },
        "Set-Cookie": {
          "description": "Куки (например, SESSION, FLASH, csrfToken), \nкоторые сервис аутентификации отправляет клиенту для корректного отображения форм аутентификации.",
          "schema": {
            "type": "string"
          }
        }
      }
    }
  }
}

POST /token — Получение и обновление токенов

Получение токенов по Authorization Code (`grant_type=authorization_code`) или обновление токенов по Refresh Token (`grant_type=refresh_token`). Требуется Basic Authentication для клиентского приложения: Authorization: Basic Base64(client_id:client_secret).

{
  "operationId": "token",
  "summary": "Получение и обновление токенов",
  "tags": [
    "Аутентификация"
  ],
  "description": "Получение токенов по Authorization Code (`grant_type=authorization_code`) \nили обновление токенов по Refresh Token (`grant_type=refresh_token`).\n\nТребуется Basic Authentication для клиентского приложения: Authorization: Basic Base64(client_id:client_secret).",
  "security": [
    {
      "basicAuth": []
    }
  ],
  "requestBody": {
    "required": true,
    "content": {
      "application/x-www-form-urlencoded": {
        "schema": {
          "type": "object",
          "properties": {
            "grant_type": {
              "type": "string",
              "description": "Тип взаимодействия, в рамках которого происходит получение токенов:\nauthorization_code для получения токенов по Authorization Code (Code Flow)\nrefresh_token для получения новых токенов по Refresh токену",
              "enum": [
                "authorization_code",
                "refresh_token"
              ],
              "example": "authorization_code"
            },
            "code": {
              "type": "string",
              "description": "Authorization Code (обязательный параметр для grant_type=authorization_code), \nзначение переданное в параметре code после успешной аутентификации пользователя и \nперенаправлении на redirect_uri клиентского приложения.",
              "example": "yl4jA9kJFj5qQSRdoCRlYId9yAxfBDZy"
            },
            "redirect_uri": {
              "type": "string",
              "description": "URI клиентского приложения (обязательный параметр для grant_type=authorization_code).\nДолжен совпадать со значением redirect_uri из запроса GET /authorize.",
              "format": "uri"
            },
            "code_verifier": {
              "type": "string",
              "description": "Случайная строка (обязательный параметр для grant_type=authorization_code), \nкоторая согласно стандарту PKCE (RFC 7636) использовалась для генерации \nзначения code_challenge из запроса GET /authorize."
            },
            "refresh_token": {
              "type": "string",
              "description": "Refresh Token (обязательный параметр для grant_type=refresh_token)."
            }
          },
          "required": [
            "grant_type"
          ]
        },
        "examples": {
          "AuthorizationCode": {
            "summary": "Получение токенов по Authorization Code",
            "value": {
              "grant_type": "authorization_code",
              "code": "yl4jA9kJFj5qQSRdoCRlYId9yAxfBDZy",
              "code_verifier": "ACbrszxo9MTPRDHBej_Hyjftt9jc2r2aQZurfomS_ct",
              "redirect_uri": "https://example.ru/callback"
            }
          },
          "RefreshToken": {
            "summary": "Обновление токенов по Refresh Token",
            "value": {
              "grant_type": "refresh_token",
              "refresh_token": "your_refresh_token"
            }
          }
        }
      }
    }
  },
  "responses": {
    "200": {
      "description": "Успешно выданы токены",
      "content": {
        "application/json": {
          "schema": {
            "type": "object",
            "properties": {
              "access_token": {
                "type": "string",
                "description": "Access Token в формате JWT."
              },
              "token_type": {
                "type": "string",
                "enum": [
                  "Bearer"
                ],
                "description": "Тип токена (всегда `Bearer`).",
                "example": "Bearer"
              },
              "refresh_token": {
                "type": "string",
                "description": "Refresh Token для обновления токенов.\nПри обновлении токенов по Refresh Token будет выдан новый Refresh Token с таким же сроком действия."
              },
              "id_token": {
                "type": "string",
                "description": "ID Token в формате JWT с информацией о пользователе."
              }
            }
          },
          "example": {
            "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
            "token_type": "Bearer",
            "refresh_token": "d8f7a6b5c4e3f2a1b0c9d8e7f6a5b4c3",
            "id_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9..."
          }
        }
      }
    },
    "400": {
      "description": "Некорректный запрос",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ErrorWithDescriptionResponseDTO"
          },
          "examples": {
            "InvalidRequest": {
              "summary": "Некорректный запрос",
              "value": {
                "error": "invalid_request",
                "error_description": "Invalid request"
              }
            }
          }
        }
      }
    },
    "401": {
      "description": "Ошибка авторизации",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ErrorWithDescriptionResponseDTO"
          },
          "examples": {
            "InvalidRequest": {
              "summary": "Некорректный Refresh токен или запрос выполняется слишком часто",
              "value": {
                "error": "invalid_request",
                "error_description": "Invalid request"
              }
            },
            "InvalidClient": {
              "summary": "Некорректны авторизационные данные клиента (в заголовке Authorization)",
              "value": {
                "error": "invalid_client",
                "error_description": "Client authentication failed"
              }
            }
          }
        }
      }
    }
  }
}

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

{
  "securitySchemes": {
    "basicAuth": {
      "type": "http",
      "scheme": "basic",
      "description": "Basic Authentication: `Authorization: Basic Base64(client_id:client_secret)`.\n\nПример генерации:\n```\nclient_id = a12b123b-0a12-3b4c-123a-12a3456789b1\nclient_secret = clientsecret7Fjfp0ZBr1KtDRbnfV\nBase64(client_id:client_secret) = YTEyYjEyM2ItMGExMi0zYjRjLTEyM2EtMTJhMzQ1Njc4OWIxOmNsaWVudHNlY3JldDdGamZwMFpCcjFLdERSYm5mVg\n```"
    }
  },
  "schemas": {
    "ErrorWithDescriptionResponseDTO": {
      "type": "object",
      "properties": {
        "error": {
          "type": "string"
        },
        "error_description": {
          "type": "string"
        }
      },
      "required": [
        "error",
        "error_description"
      ]
    }
  }
}
Page not found
Back to home
Raiffeisen Bank logosupport_openapi@raiffeisen.ru
1C:DirectBank & Smartegra IntegrationRaif Pay API
Bank of Russia LicensePersonal Data PolicyConsent to Data Processing

This website uses cookies to personalize services and improve your experience. To opt out, adjust your browser settings. © 2003 – 2026 Raiffeisenbank JSC