Skip to content

Шаг 1. Аутентификация и управление токенами

Прежде чем отправлять запросы к API, необходимо аутентифицироваться и получить JWT‑токен. Токен используется для идентификации вашего сервис‑аккаунта при каждом запросе.

  1. Получение access_token
  2. Обновление токена с помощью refresh_token

1. Пример получения access_token

Запрос:

curl -X POST https://api.creon.ae/v2/auth/token \
     -H "Content-Type: application/json" \
     -d '{"account_id":"YOUR_ACCOUNT_ID","public_key":"BASE64_PUBLIC_KEY"}'

Что происходит:

  • API проверяет account_id и public_key.
  • Возвращает access_token, refresh_token и expires_in.

Описание полей:

  • account_id: uuid (required) — account_id из файла credentials.json
  • public_key: string (required) — public_key из файла credentials.json

Ответ:

  • Status 200:

    {   
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",   
    "refresh_token": "8xLOxBatCN8fDrMHtkX1uDgeHxWxhoJDl...",   
    "expires_in": 3600 
    }   
    

  • Status 400:

    {
    "error": "ERROR_INVALID_PUBLIC_KEY", 
    "message": "Public key is invalid", 
    "statusCode": 400 
    }
    

  • Status 404:

    {
    "error": "ERROR_INVALID_CREDENTIALS", 
    "message": "Credentials are invalid or account not found", 
    "statusCode": 404 
    }
    

2. Обновление токена с помощью refresh_token

Этот эндпоинт позволяет обновить access_token с использованием действующего refresh_token. Обновлённый токен необходимо использовать для последующих API-запросов, чтобы сохранить доступ. Убедитесь, что refresh_token всё ещё действителен и не истёк.

Запрос:

curl -X POST https://api.creon.ae/v2/auth/token/refresh \
     -H "Authorization: Bearer <ACCESS_TOKEN>" \
     -H "Content-Type: application/json" \
     -d '{"refresh_token":"REFRESH_TOKEN"}'

Описание полей:

  • access_token: string (required) — Authorization: Bearer
  • refresh_token: string (required) — refresh_token для обновления access_token

Разбор ответа:

  • Status 200:

    {   
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",   
    "refresh_token": "8xLOxBatCN8fDrMHtkX1uDgeHxWxhoJDl...",   
    "expires_in": 3600 
    }   
    

  • Status 400:

    {
    "error": "ERROR_REFRESH_TOKEN_INVALID", 
    "message": "Refresh token is invalid. Use a valid refresh token.", 
    "statusCode": 400 
    }
    

  • Status 401:

    {
    "error": "ERROR_REFRESH_TOKEN_EXPIRED", 
    "message": "Refresh token has expired.", 
    "statusCode": 401 
    }