Генерация ссылки на форму аутентификации пользователя
Описание:
Этот метод используется для генерации ссылки, на которую будет перенаправлен пользователь для аутентификации через Freedom ID. Приложение отправляет запрос с необходимыми параметрами, и в ответ получает URL для перенаправления.
Запрос:

Endpoint:

POST https://passport.freedompay.kz/v1/oauth/authorize
Заголовки:

Authorization: Basic base64encode("{CLIENT_ID}:{CLIENT_SECRET}")
Параметры тела запроса:

{
  "redirect_uri": "https://example.com/login?error_code=100102",
  "grants": [
    "read.email",
    "read.phone",
    "read.date_of_birth",
    "read.firstname",
    "read.lastname",
    "read.gender",
    "read.nationality",
    "read.country"
  ]
}
  • {CLIENT_ID}:{CLIENT_SECRET} предоставляется поддержкой FreedomID при интеграции
  • redirect_uri (string): URL, на который будет перенаправлен пользователь после аутентификации.
  • grants (array): Массив прав доступа, которые приложение запрашивает у пользователя.
Ответ:

{
  "redirect_uri": "<https://passport.freedompay.kz/login?track_id=ac22c50c-22c7-4aeb-9160-e59b735f9c44&expire_at=1727246098>"
}
Ответ в случае ошибки:

{
    "error": {
        "message": "Error validating transmitted data.",
        "errors": {
            "grants.3": [
                "The selected grants.3 is invalid."
            ]
        }
    }
}
  • error (array): Массив ошибок
  • code (string): Код ошибки.
  • message (string): Подробное сообщение об ошибке
Получение токена по коду авторизации
Описание:
Если пользователь согласился предоставить запрашиваемые права, Freedom ID перенаправляет аутентифицированного пользователя на страницу redirect_uri из запроса партнёра и передаёт authorization_code дополнительным параметром (https://example.com/login?authorization_code=XYZ). Полученный authorization_code связан с партнёром и является одноразовым кодом доступа. Данный код необходимо обменять на access_token и refresh_token для дальнейшей работы.

Запрос:

Endpoint:
POST /v1/oauth/token

Заголовки:

Authorization: Basic base64encode("{CLIENT_ID}:{CLIENT_SECRET}")
Параметры тела запроса:

{
  "authorization_code": "your_authorization_code"
}
  • authorization_code (string): Код авторизации, полученный после успешной аутентификации пользователя.
Ответ при успешном запросе:

{
  "access_token": "your_access_token",
  "refresh_token": "your_refresh_token",
  "access_expire_at": "2024-10-02T10:52:21.000000Z",
  "refresh_expire_at": "2024-10-25T10:52:21.000000Z"
}
  • access_token (string): Токен доступа, используемый для аутентификации при запросах к защищённым ресурсам.
  • refresh_token (string): Токен обновления, используемый для получения нового токена доступа.
  • access_expire_at (datetime): Время истечения токена доступа.
  • refresh_expire_at (datetime): Время истечения токена обновления.
Ответ в случае ошибки:

{
    "error": {
        "message": "Invalid authorization_code.",
        "code": 100101
    }
}
  • error (array): Массив ошибок
  • code (string): Код ошибки.
  • message (string): Подробное сообщение об ошибке.
Получение информации о пользователе
Описание:

Этот метод позволяет приложению получить информацию о пользователе, используя действующий access_token. В ответ возвращаются данные, которые приложение может использовать для персонализации пользовательского интерфейса или других целей.

Запрос:

Endpoint:

POST /v1/oauth/get-data
Заголовки:

Authorization: Bearer access_token
Ответ:

{
  "id": "user_id",
  "firstname": "user_firstname",
  "lastname": "user_lastname",
  "date_of_birth": "user_date_of_birth",
  ...
}
  • id (uuid): Уникальный идентификатор пользователя Freedom ID.
  • firstname (string): Имя пользователя.
  • lastname (string): Фамилия пользователя.
  • date_of_birth (string): Дата рождения пользователя (формат: YYYY-MM-DD).
  • ... (другие поля в зависимости от запрашиваемых прав доступа).
Обновление токенов
Описание:

Этот метод используется для обновления истекшего access_token с помощью refresh_token. Если access_token истек, приложение может использовать refresh_token для получения нового набора токенов.

Запрос:
Endpoint:
PATCH /v1/oauth/token
Заголовки:

Authorization: Bearer refresh_token
Ответ:

{
  "access_token": "new_access_token",
  "refresh_token": "new_refresh_token",
  "access_expire_at": "new_expiration_time",
  "refresh_expire_at": "new_expiration_time"
}
  • access_token (string): Новый токен доступа.
  • refresh_token (string): Новый токен обновления.
  • access_expire_at (timestamp): Время истечения нового токена доступа.
  • refresh_expire_at (timestamp): Время истечения нового токена обновления.
Справочники
Гранты на данные пользователя
Справочник кодов ошибок