Skip to content

Тариф и оплата ​

Подписка компании на Wasyt: состояние тарифа, баланс и долг, пополнение картой или по QR через платёжный шлюз. Филиал работает по тарифу головной компании.

МетодАдресНазначение
GET/company/tariffИнформация о тарифе
POST/company/tariff/pay-cardОплатить картой
POST/company/tariff/pay-card/confirmПодтвердить оплату картой
POST/company/tariff/pay-qrОплатить по QR
GET/company/tariff/payment-status/{externalId}Статус платежа

Информация о тарифе ​

GET/company/tariff

Подписка головной компании: реквизиты клиента, статус и блокировка, период оплаты (в том числе отложенная смена), баланс, долг, сумма к оплате и рекомендуемый платёж, стоимость за месяц/год, дата следующего списания и расшифровка по услугам. Если тариф не настроен — пустой объект с 200.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Ответ · 200 ​

Поля ответа
ПолеТипОписание
clientobject
client.full_namestringФИО
client.innstringИНН
client.agreement_numberstringНомер договора
client.agreement_datenull
client.phonestringТелефон
statusstringСтатус
is_blockedbooleanЗаблокирован
block_atnull
block_scheduledboolean
billing_periodstring
pending_billing_periodnull
pending_billing_period_atnull
balanceintegerБаланс
debtintegerДолг
due_nowinteger
amount_to_payinteger
recommended_paymentobject
recommended_payment.amountintegerСумма
recommended_payment.current_period_amountinteger
recommended_payment.next_period_amountinteger
recommended_payment.next_period_starts_atstring
recommended_payment.is_proratedboolean
monthly_totalinteger
yearly_totalinteger
period_totalinteger
days_until_next_chargeinteger
next_payment_atstring
trial_ends_atnull
breakdownobject[]
breakdown[].titlestring
breakdown[].amountintegerСумма
breakdown[].is_filialboolean
json
{
    "client": {
        "full_name": "Director 1",
        "inn": "000000001",
        "agreement_number": "001/2026",
        "agreement_date": null,
        "phone": "998020000001"
    },
    "status": "active",
    "is_blocked": false,
    "block_at": null,
    "block_scheduled": false,
    "billing_period": "monthly",
    "pending_billing_period": null,
    "pending_billing_period_at": null,
    "balance": 0,
    "debt": 0,
    "due_now": 8300,
    "amount_to_pay": 8300,
    "recommended_payment": {
        "amount": 257300,
        "current_period_amount": 8300,
        "next_period_amount": 249000,
        "next_period_starts_at": "2026-10-01",
        "is_prorated": true
    },
    "monthly_total": 249000,
    "yearly_total": 5388000,
    "period_total": 249000,
    "days_until_next_charge": 1,
    "next_payment_at": "2026-10-01",
    "trial_ends_at": null,
    "breakdown": [
        {
            "title": "Company 1",
            "amount": 150000,
            "is_filial": false
        },
        {
            "title": "Company 1-1",
            "amount": 99000,
            "is_filial": true
        }
    ]
}

Оплатить картой ​

POST/company/tariff/pay-card

Открывает оплату тарифа картой в шлюзе и создаёт платёж в статусе pending; предыдущий незавершённый платёж отменяется. Возвращает external_id, transaction_id, cid и телефон, на который отправлен SMS-код, — их нужно передать в подтверждение. Нет тарифа — 404, шлюз недоступен — 503.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Тело запроса ​

ПолеТипОбязательноОписание
amountnumberДаСумма. До 2 знаков после запятой. Не меньше 1. Не больше 999999999999.99
card_numberintegerДаРовно 16 цифр
expire_datestringДаСрок действия карты. Макс. 7 символов
phonestringНетТелефон (информационно; код приходит на телефон карты). Формат 998xxyyyzzzz
json
{
    "amount": 50000,
    "card_number": "8600123412341234",
    "expire_date": "03/99",
    "phone": "998901234567"
}
bash
curl -X POST "https://api.wasyt.uz/company/tariff/pay-card" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"amount":50000,"card_number":"8600123412341234","expire_date":"03/99","phone":"998901234567"}'

Ответ · 200 ​

Поля ответа
ПолеТипОписание
external_idstring
transaction_idstringТранзакция
cidstring
otp_sent_phonestring
json
{
    "external_id": "da4264bb-2767-471d-bd02-c968a284068c",
    "transaction_id": "gw-tx-1",
    "cid": "gw-cid-1",
    "otp_sent_phone": "+99890***1234"
}

Подтвердить оплату картой ​

POST/company/tariff/pay-card/confirm

Передаёт в шлюз SMS-код по transaction_id и cid из ответа оплаты картой и возвращает ответ шлюза. Баланс пополняется после уведомления шлюза. Ошибки шлюза (просроченный или неверный код) переводятся в понятное сообщение с 400, недоступность — 503.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Тело запроса ​

ПолеТипОбязательноОписание
transaction_idstringДаТранзакция
cidstringДаИдентификатор карты из ответа оплаты
otpstringДаКод из SMS

Ответ ​

Пример ответа пока не записан тестами.

Оплатить по QR ​

POST/company/tariff/pay-qr

Открывает страницу оплаты у выбранного провайдера (click, uzum, payme, paylov) и создаёт платёж в статусе pending; предыдущий незавершённый платёж отменяется. Возвращает external_id, checkout_url и qr_content — QR-код ссылки в виде PNG data URI. Оплата подтверждается асинхронно, статус проверяется отдельным методом.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Тело запроса ​

ПолеТипОбязательноОписание
amountnumberДаСумма. До 2 знаков после запятой. Не меньше 1. Не больше 999999999999.99
providerstringДаДопустимые значения: click, uzum, payme, paylov
json
{
    "amount": 50000,
    "provider": "click"
}
bash
curl -X POST "https://api.wasyt.uz/company/tariff/pay-qr" \
  -H "Accept: application/json" \
  -H "Accept-Language: ru" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"amount":50000,"provider":"click"}'

Ответ · 200 ​

Поля ответа
ПолеТипОписание
external_idstring
providerstring
checkout_urlstring
qr_contentstring
json
{
    "external_id": "9678dea4-c43c-4a97-8941-9bd518748625",
    "provider": "click",
    "checkout_url": "https://checkout.example/abc",
    "qr_content": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUAAAAFAAQMAAAD3XjfpAAAABlBMVEUEAgT8/vxJvsdeAAAACXBIWXMAAA7EAAAOxAGVKw4bAAABpUlEQVRoge2ZMXLEMAhFceVj+KjyUX0MVyYrPiAl2+wkMyLFp/BI4m31B/jSin4YQpDgH8BHPPbX9tptu/XUI+2KXCNYATbT6JrAVxz35mf2E4IlYFeqpXqnMXrn2U6wHjwsLRvEJPhvQDCuXtYawTLQ254dKuI8shW+90eCi0CPqKb5Ez..."
}

Статус платежа ​

GET/company/tariff/payment-status/{externalId}

Статус платежа по external_id из ответа оплаты: status, status_label, amount и is_paid (true, когда шлюз подтвердил оплату и баланс пополнен). Фронтенд опрашивает метод, пока на экране QR. Чужой или неизвестный платёж — 404.

Заголовки ​

ЗаголовокЗначениеОписание
AuthorizationBearer {token}Токен из POST /common/auth/login
Acceptapplication/jsonОтвет в JSON
Accept-LanguageruЯзык сообщений и названий: ru, uz, oz

Параметры пути ​

ПараметрОписание
externalIdExternal Id

Ответ · 200 ​

Поля ответа
ПолеТипОписание
external_idstring
statusstringСтатус
status_labelstring
amountintegerСумма
is_paidboolean
json
{
    "external_id": "ext-pending",
    "status": "pending",
    "status_label": "В процессе",
    "amount": 50000,
    "is_paid": false
}