Профиль клиента

В API клиент называется Counterparty. Это человек или компания, которые входят в продукт, оформляют заказы и управляют подписками.

Профильные методы работают по Counterparty Bearer. App Token дополнительно нужен только там, где результат относится к конкретному Application, например при проверке клиента через платёж.

Что возвращает профиль

Для физического лица ответ содержит имя, фамилию, отчество, дату рождения и адрес. Для компании вместо этих полей могут возвращаться name, registered_at, inn, kpp, head и legal_address.

Поле is_verified относится к текущему Application, а не к клиенту вообще. Оно может быть true, false или null, если backend не смог определить контекст приложения.

Получение текущего клиента

Метод
GET
URL
https://api.gigma.ru/api/counterparty
Авторизация
Bearer token клиента
Headers
Authorization: Bearer {counterparty_token}
Успешный ответ
200

Запрос

GET /api/counterparty HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <counterparty_token>
Accept: application/json

Ответ

Сокращённый ответ для физического лица:

{
    "counterparty": {
        "id": 1,
        "type": {
            "id": 2,
            "name": "Розница"
        },
        "manager": null,
        "avatar": null,
        "first_name": "Алексей",
        "last_name": "Петров",
        "middle_name": null,
        "birthday": null,
        "address": "г Москва, ул Деловая, д 20",
        "phone_1": "79999999990",
        "phone_2": null,
        "email": "client@example.com",
        "created_at": "2026-08-15T10:00:00+00:00",
        "registration_date": "2026-08-15T10:00:00+00:00",
        "updated_at": "2026-08-16T10:00:00+00:00",
        "is_verified": false,
        "favourite_products": []
    }
}

Описание полей ответа

  • registration_date — дата регистрации клиента; совпадает с created_at
  • is_verified — результат проверки клиента для текущего Application: true, false или null, если приложение определить нельзя
  • favourite_products — краткие карточки избранного клиента.

Ошибки

  • 401 — Bearer отсутствует, истёк или отозван.

Обновление профиля

Метод
PUT
URL
https://api.gigma.ru/api/counterparty
Авторизация
Bearer token клиента
Headers
Authorization: Bearer {counterparty_token}
Успешный ответ
200

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

Передавайте только изменяемые поля:

  • avatar_id (integer|null, опционально) — ID файла, принадлежащего текущему клиенту; null очищает аватар;
  • email (email|null, опционально) — электронная почта;
  • first_name (string|null, опционально) — имя, 2–255 символов;
  • last_name (string|null, опционально) — фамилия, 2–255 символов;
  • address (string|null, опционально) — адрес;
  • phone_2 (string|null, опционально) — дополнительный контактный номер, до 20 символов.

Основной номер phone_1 этим методом не меняется. Для него используется отдельный OTP-flow ниже. Значение avatar_id: 0 недопустимо: чтобы удалить аватар, передайте null.

Пример запроса

{
    "first_name": "Алексей",
    "last_name": "Петров",
    "email": "client@example.com",
    "address": "г Москва, ул Деловая, д 20",
    "phone_2": "79990000000"
}

Ответ

API возвращает HTTP 200 и объект counterparty той же формы, что при получении профиля.

Ошибки

  • 401 — Bearer недействителен;
  • 422 — поле не прошло валидацию или avatar_id не принадлежит текущему клиенту.

Смена основного телефона

Смена выполняется в два запроса. Новый номер хранится как незавершённая заявка до подтверждения кода.

Запрос кода на новый номер

Метод
POST
URL
https://api.gigma.ru/api/counterparty/phone/request_change
Авторизация
Bearer token клиента
Headers
Authorization: Bearer {counterparty_token}
Успешный ответ
200

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

  • new_phone_number (string, обязательно) — новый основной номер телефона.

Backend нормализует номер, проверяет, что он отличается от текущего и не занят другим клиентом в том же проекте, затем отправляет четырёхзначный OTP.

Пример запроса

{
    "new_phone_number": "+7 999 123-45-67"
}

Ответ

{
    "message": "Код подтверждения отправлен на указанный номер телефона."
}

Ошибки

  • 401 — Bearer недействителен;
  • 422 — номер совпадает с текущим, уже используется или не прошёл валидацию;
  • 429 — запрос на смену номера уже выполняется слишком часто;
  • 500 — код не удалось отправить.

Подтверждение нового номера

Метод
POST
URL
https://api.gigma.ru/api/counterparty/phone/verify_change
Авторизация
Bearer token клиента
Headers
Authorization: Bearer {counterparty_token}
Успешный ответ
200

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

  • password (string, обязательно) — четырёхзначный OTP.

Повторно передавать телефон не нужно: backend использует номер из незавершённой заявки.

Пример запроса

{
    "password": "4821"
}

Ответ

При успехе API возвращает HTTP 200 и обновлённый объект counterparty.

Ошибки

  • 401 — Bearer недействителен;
  • 422 — заявка отсутствует, код неверен или истёк, либо номер успел занять другой клиент;
  • 429 — эта проверка уже выполняется или превышен лимит попыток.

Проверка клиента через СБП

Проверка создаёт платёж на 1 ₽ и подтверждает клиента только для текущего Application. Не используйте is_verified как универсальный признак оплаты заказа или подписки.

Создание или получение СБП-проверки

Метод
POST
URL
https://api.gigma.ru/api/counterparty/verifications/sbp-payment
Авторизация
App Token + Bearer token
Headers
Token: {application_token}; Authorization: Bearer {counterparty_token}
Успешный ответ
200 / 201

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

Тело запроса не требуется.

Пример запроса

POST /api/counterparty/verifications/sbp-payment HTTP/1.1
Host: api.gigma.ru
Token: <application_token>
Authorization: Bearer <counterparty_token>
Accept: application/json

Ответ

{
    "data": {
        "method": "sbp_payment",
        "status": "pending",
        "is_verified": false,
        "payment_link": "https://yoomoney.ru/checkout/...",
        "expires_at": "2026-08-16T11:00:00.000000Z",
        "verified_at": null
    }
}

HTTP 201 означает, что создана новая попытка; 200 — что возвращена или синхронизирована существующая.

Описание полей ответа
  • data.method — способ проверки; для этого метода всегда sbp_payment.
  • data.status — состояние проверки: pending, verified, failed или canceled.
  • data.is_verifiedtrue, когда проверочный платёж подтверждён.
  • data.payment_link — ссылка на оплату или null, если переход больше не нужен.
  • data.expires_at — время окончания действия платёжной ссылки в ISO 8601 или null.
  • data.verified_at — время подтверждения клиента в ISO 8601 или null.

После оплаты повторите запрос или получите профиль. Доверяйте только is_verified: true, подтверждённому backend.

Ошибки

  • 401 — проверьте оба токена;
  • 404 — клиент и Application относятся к разным проектам;
  • 409 — платёж уже создаётся;
  • 429 — превышен лимит 6 запросов в минуту;
  • 503 — для приложения не настроен платёжный провайдер или он временно недоступен.

Удаление аккаунта клиента

Метод
DELETE
URL
https://api.gigma.ru/api/counterparty
Авторизация
Bearer token клиента
Headers
Authorization: Bearer {counterparty_token}
Успешный ответ
200

Запрос

DELETE /api/counterparty HTTP/1.1
Host: api.gigma.ru
Authorization: Bearer <counterparty_token>
Accept: application/json

Ответ

{
    "message": "Counterparty successfully deleted"
}

Операция отзывает токены и удаляет персональные данные, сохранённые способы оплаты, контакты, историю поиска и избранное. Учётные заказы сохраняются в обезличенном виде. После успеха локальную сессию клиента необходимо удалить.

© 2026 Gigma