Получение баланса и расходов проекта через GraphQL API

GraphQL API позволяет получать текущий баланс проекта и детализацию расходов за выбранный период.

Результат:
Получены баланс проекта, бонусы и детализация списаний по дням.


Значения productId

productId Описание
1 Облачная платформа на базе OpenStack
2 Объектное хранилище
3 Облачная платформа на базе VMware

Важно:
Использование неверного productId приведет к отсутствию данных или некорректному ответу.

Результат:
Выбран корректный продукт для API-запроса.


Авторизация

Как получить токен

  1. Перейдите в Консоль управления PS Cloud Services
  2. Откройте Управление доступом → Токены доступа
  3. Нажмите Создать токен
  4. Укажите параметры:
    • Тип: для себя или пользователя
    • Аккаунт: нужный аккаунт
    • Роль: Администратор / Только чтение / Бухгалтер / Инженер
    • Время жизни: 30 / 60 / 90 дней, 1 год или без срока
  5. Подтвердите действие вводом пароля
  6. Скопируйте токен

Важно:
Токен отображается только один раз. Сохраните его сразу.

Результат:
Получен токен для работы с API.


Использование токена

Используйте заголовок:

X-User-Token: <ваш_токен>

Важно:
Использование Authorization: Bearer приведет к ошибке 401.

Результат:
Настроена корректная авторизация.


Параметры запроса

Необходимо определить:

productId

Для облачных проектов:

productId = 1

externalSubscriptionId

  1. Откройте Облачные серверы
  2. Выберите проект
  3. Перейдите в карточку проекта
  4. Скопируйте ID

Пример:

externalSubscriptionId = 12345

Важно:
Используется именно ID проекта.

Результат:
Подготовлены параметры для выполнения запроса.


Получение баланса

  1. Создайте запрос
    Метод: POST
    URL: https://console.ps.kz/bill/graphql

  2. Добавьте Headers

    Content-Type: application/json
    X-User-Token: <ваш_токен>
    
  3. Настройте Body

    {
      "query": "query { bill { getSubscriptionBalance(externalSubscriptionId: <ВАШ_PROJECT_ID>, productId: 1) { balance bonuses } } }"
    }
    
  4. Нажмите Send

Результат:
Получены баланс и бонусы проекта.

  1. Откройте Playground

  2. Вставьте запрос

    query {
      bill {
        getSubscriptionBalance(
          externalSubscriptionId: <ВАШ_PROJECT_ID>,
          productId: 1
        ) {
          balance
          bonuses
        }
      }
    }
    
  3. Выполните запрос

Результат:
Получены баланс и бонусы проекта.


Получение расходов

Для получения используется метод:

reportSubscriptionConsuming

Параметры:

  • externalSubscriptionId
  • productId
  • periodFrom
  • periodTo

Формат даты:

YYYY-MM-DDTHH:mm:ss.sssZ

Важно:
Некорректный период приведет к отсутствию данных.

Результат:
Подготовлены параметры для получения расходов.


  1. Создайте запрос
    Метод: POST
    URL: https://console.ps.kz/bill/graphql

  2. Добавьте Headers

    Content-Type: application/json
    X-User-Token: <ваш_токен>
    
  3. Настройте Body

    {
      "query": "query { bill { reportSubscriptionConsuming(filter: { periodFrom: \"2026-03-04T19:00:00.000Z\", periodTo: \"2026-03-05T19:59:59.999Z\", externalSubscriptionId: <ВАШ_PROJECT_ID>, productId: 1 }) { items { day totalAmount totalBonuses } } } }"
    }
    
  4. Нажмите Send

Результат:
Получена детализация расходов по дням.

  1. Откройте Playground

  2. Вставьте запрос

    query {
      bill {
        reportSubscriptionConsuming(
          filter: {
            periodFrom: "2026-03-04T19:00:00.000Z"
            periodTo: "2026-03-05T19:59:59.999Z"
            externalSubscriptionId: <ВАШ_PROJECT_ID>
            productId: 1
          }
        ) {
          items {
            day
            totalAmount
            totalBonuses
          }
        }
      }
    }
    
  3. Выполните запрос

Результат:
Получена детализация расходов по дням.


Результат:
Баланс и расходы проекта успешно получены через GraphQL API.

question
Не нашли подходящего ответа?
Напишите запрос в службу поддержки
Написать сейчас
  1. Main