Погашения долгов
Оплаты клиентов в счёт долга. Каждое погашение уменьшает долг и проводится приходом в продажную кассу; последнее погашение можно отменить.
| Метод | Адрес | Назначение |
|---|---|---|
| POST | /company/client/debt-payment/{model}/refund | Отменить погашение |
| GET | /company/client/debt-payment | Список погашений |
| GET | /company/client/debt-payment/{model} | Погашение |
| POST | /company/client/debt-payment | Погасить долг |
Отменить погашение
/company/client/debt-payment/{model}/refundОтменяет погашение: сумма возвращается в долг и расходом уходит из кассы, где была принята; запись остаётся в истории с is_refunded = true. Можно отменить только оплаты последнего дня погашений клиента, не импортированные и ещё не отменённые (is_refundable), иначе 400.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры пути
| Параметр | Описание |
|---|---|
model | ID записи |
Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
id | integer | ID |
creator_id | integer | Создатель |
company_id | integer | Компания |
client_id | integer | Клиент |
debt_id | integer | |
cashbox_id | integer | Касса |
is_refunded | boolean | |
payment_type | string | Тип оплаты |
currency | string | Валюта |
amount | integer | Сумма |
is_imported | boolean | |
created_at | string | Создано |
is_refundable | boolean |
{
"id": 78,
"creator_id": 2,
"company_id": 1,
"client_id": 1,
"debt_id": 92,
"cashbox_id": 2,
"is_refunded": true,
"payment_type": "cash",
"currency": "uzs",
"amount": 500,
"is_imported": false,
"created_at": "2026-09-30 12:51:52",
"is_refundable": false
}Список погашений
/company/client/debt-paymentПогашения долгов доступных компаний; у каждой строки is_refundable — можно ли её ещё отменить. Отменённые отмечены is_refunded и не входят в суммы оплат.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры запроса
| Параметр | Описание |
|---|---|
filter[id] | ID — точное значение |
filter[creator_id] | Создатель — точное значение |
filter[company_id] | Компания — одно значение или список filter[company_id][] |
filter[client_id] | Клиент — точное значение |
filter[debt_id] | точное значение |
filter[cashbox_id] | Касса — точное значение |
filter[payment_type] | Тип оплаты — точное значение |
filter[currency] | Валюта — одно значение или список filter[currency][] |
filter[is_refunded] | точное значение |
filter[created_at] | Создано — период: [0] — с, [1] — по (Y-m-d) |
sort[] | Сортировка, - — по убыванию: id, -id, created_at, -created_at |
with[] | Подгрузить связи: creator.profile, company, client, debt, cashbox |
page | Номер страницы, с 1 |
page-size | Записей на странице, не больше 20 |
GET /company/client/debt-payment?with[0]=client&with[1]=debt&with[2]=cashbox&with[3]=creator.profileОтвет · 200
Постраничный ответ: записи в data[], пагинация в links и meta.
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
data | object[] | Данные |
data[].id | integer | ID |
data[].creator_id | integer | Создатель |
data[].company_id | integer | Компания |
data[].client_id | integer | Клиент |
data[].debt_id | integer | |
data[].cashbox_id | integer | Касса |
data[].is_refunded | boolean | |
data[].payment_type | string | Тип оплаты |
data[].currency | string | Валюта |
data[].amount | integer | Сумма |
data[].is_imported | boolean | |
data[].created_at | string | Создано |
data[].is_refundable | boolean | |
data[].client | object | |
data[].client.id | integer | ID |
data[].client.creator_id | integer | Создатель |
data[].client.company_id | integer | Компания |
data[].client.bonus_tariff_id | integer | Бонусный тариф |
data[].client.bonus_entries_amount | integer | Сумма бонусных записей |
data[].client.bonus_accumulations_amount | integer | Бонусный баланс |
data[].client.full_name | string | ФИО |
data[].client.gender | string | Пол |
data[].client.birth_date | string | Дата рождения |
data[].client.image | string | Изображение |
data[].client.image_thumbs | object | |
data[].client.image_thumbs.widen_100 | object | |
data[].client.image_thumbs.widen_100.raw | string | |
data[].client.image_thumbs.widen_100.webp | string | |
data[].client.image_thumbs.widen_500 | object | |
data[].client.image_thumbs.widen_500.raw | string | |
data[].client.image_thumbs.widen_500.webp | string | |
data[].client.image_thumbs.original | object | |
data[].client.image_thumbs.original.raw | string | |
data[].client.image_thumbs.original.webp | string | |
data[].client.main_phone | string | Основной телефон |
data[].client.additional_phones | array | Дополнительные телефоны |
data[].client.languages | array | Языки |
data[].client.address | null | Адрес |
data[].client.latitude | null | Широта |
data[].client.longitude | null | Долгота |
data[].client.socials | object | Соц-сети |
data[].client.socials.other | string | |
data[].client.socials.facebook | string | |
data[].client.socials.telegram | string | |
data[].client.socials.instagram | string | |
data[].client.is_imported | boolean | |
data[].client.created_at | string | Создано |
data[].client.updated_at | string | Обновлено |
data[].client.is_deleted | boolean | |
data[].debt | object | Долг |
data[].debt.id | integer | ID |
data[].debt.creator_id | integer | Создатель |
data[].debt.company_id | integer | Компания |
data[].debt.client_id | integer | Клиент |
data[].debt.sale_id | integer | Продажа |
data[].debt.currency | string | Валюта |
data[].debt.amount | integer | Сумма |
data[].debt.repaid_amount | integer | Сумма погашения |
data[].debt.returned_amount | integer | Возвращённая сумма |
data[].debt.due_date | string | Срок погашения |
data[].debt.comment | string | Комментарий |
data[].debt.status | string | Статус |
data[].debt.created_at | string | Создано |
data[].debt.updated_at | string | Обновлено |
data[].debt.remaining_amount | integer | |
data[].debt.overdue_days | integer | Просрочено дней |
data[].debt.by_currency | object | |
data[].debt.by_currency.uzs | object | |
data[].debt.by_currency.uzs.amount | integer | Сумма |
data[].debt.by_currency.uzs.repaid_amount | integer | Сумма погашения |
data[].debt.by_currency.uzs.returned_amount | integer | Возвращённая сумма |
data[].debt.by_currency.uzs.remaining_amount | integer | |
data[].cashbox | object | |
data[].cashbox.id | integer | ID |
data[].cashbox.creator_id | integer | Создатель |
data[].cashbox.company_id | integer | Компания |
data[].cashbox.name | string | Название |
data[].cashbox.type | string | Тип |
data[].cashbox.created_at | string | Создано |
data[].cashbox.updated_at | string | Обновлено |
data[].cashbox.is_deleted | boolean | |
data[].creator | object | |
data[].creator.id | integer | ID |
data[].creator.type | string | Тип |
data[].creator.role_id | integer | Роль |
data[].creator.company_id | integer | Компания |
data[].creator.partner_id | null | Партнёр |
data[].creator.username | string | Логин |
data[].creator.pinfl | null | ПИНФЛ |
data[].creator.phone | string | Телефон |
data[].creator.sipuni_sip_number | string | VoIP - Sipuni (SIP-номер) |
data[].creator.is_confirmed | boolean | |
data[].creator.are_all_companies_available | boolean | |
data[].creator.last_login_at | null | |
data[].creator.created_at | string | Создано |
data[].creator.updated_at | string | Обновлено |
data[].creator.is_deleted | boolean | |
data[].creator.profile | object | |
data[].creator.profile.first_name | null | Имя |
data[].creator.profile.last_name | null | Фамилия |
data[].creator.profile.position | null | Должность |
data[].creator.profile.birth_date | null | Дата рождения |
data[].creator.profile.gender | null | Пол |
data[].creator.profile.full_name | string | ФИО |
{
"data": [
{
"id": 67,
"creator_id": 2,
"company_id": 1,
"client_id": 1,
"debt_id": 84,
"cashbox_id": 1,
"is_refunded": false,
"payment_type": "cash",
"currency": "uzs",
"amount": 1000,
"is_imported": false,
"created_at": "2026-09-30 12:51:51",
"is_refundable": true,
"client": {
"id": 1,
"creator_id": 2,
"company_id": 1,
"bonus_tariff_id": 1,
"bonus_entries_amount": 1000,
"bonus_accumulations_amount": 1000,
"full_name": "Full name 1",
"gender": "male",
"birth_date": "1990-01-01",
"image": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"image_thumbs": {
"widen_100": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png"
},
"widen_500": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png"
},
"original": {
"raw": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png",
"webp": "https://api-minio.icangroup.uz/wasyt/test_data/images/1.png"
}
},
"main_phone": "998000000001",
"additional_phones": [
"998000000011",
"998000000012"
],
"languages": [
"ru",
"uz"
],
"address": null,
"latitude": null,
"longitude": null,
"socials": {
"other": "6abcbeafac861",
"facebook": "6abcbeafac860",
"telegram": "6abcbeafac85e",
"instagram": "6abcbeafac85f"
},
"is_imported": false,
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:51:51",
"is_deleted": false
},
"debt": {
"id": 84,
"creator_id": 2,
"company_id": 1,
"client_id": 1,
"sale_id": 1,
"currency": "uzs",
"amount": 4000,
"repaid_amount": 1000,
"returned_amount": 0,
"due_date": "2030-12-31 00:00:00",
"comment": "Initial debt note",
"status": "partially_repaid",
"created_at": "2026-09-30 12:51:51",
"updated_at": "2026-09-30 12:51:51",
"remaining_amount": 3000,
"overdue_days": 0,
"by_currency": {
"uzs": {
"amount": 4000,
"repaid_amount": 1000,
"returned_amount": 0,
"remaining_amount": 3000
}
}
},
"cashbox": {
"id": 1,
"creator_id": 2,
"company_id": 1,
"name": "Cashbox 1",
"type": "sale",
"created_at": "2026-09-30 12:47:58",
"updated_at": "2026-09-30 12:47:58",
"is_deleted": false
},
"creator": {
"id": 2,
"type": "director",
"role_id": 2,
"company_id": 1,
"partner_id": null,
"username": "director_1@local.host",
"pinfl": null,
"phone": "998020000001",
"sipuni_sip_number": "210",
"is_confirmed": true,
"are_all_companies_available": false,
"last_login_at": null,
"created_at": "2026-09-30 12:47:59",
"updated_at": "2026-09-30 12:47:59",
"is_deleted": false,
"profile": {
"first_name": null,
"last_name": null,
"position": null,
"birth_date": null,
"gender": null,
"full_name": " "
}
}
}
],
"links": {
"first": "https://api.wasyt.uz/company/client/debt-payment?page=1",
"last": "https://api.wasyt.uz/company/client/debt-payment?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [],
"path": "https://api.wasyt.uz/company/client/debt-payment",
"per_page": 20,
"to": 1,
"total": 1
}
}Погашение
/company/client/debt-payment/{model}Одно погашение долга по id.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Параметры пути
| Параметр | Описание |
|---|---|
model | ID записи |
Ответ
Пример ответа пока не записан тестами.
Погасить долг
/company/client/debt-paymentПринимает оплату долга клиента в одной валюте (по умолчанию UZS), можно несколькими типами оплаты сразу (бонусами и в долг нельзя). Сумма распределяется по долгам этой валюты от самого раннего срока; каждая часть — отдельное погашение и приход в продажную кассу. Общая сумма не больше остатка долга; возвращается список созданных погашений.
Заголовки
| Заголовок | Значение | Описание |
|---|---|---|
Authorization | Bearer {token} | Токен из POST /common/auth/login |
Accept | application/json | Ответ в JSON |
Accept-Language | ru | Язык сообщений и названий: ru, uz, oz |
Тело запроса
| Поле | Тип | Обязательно | Описание |
|---|---|---|---|
client_id | integer | Да | Клиент. ID существующей записи, доступной пользователю |
cashbox_id | integer | Да | Продажная касса, принимающая оплату. ID существующей записи, доступной пользователю |
currency | string | Нет | Валюта погашаемых долгов, по умолчанию uzs. Допустимые значения: uzs, usd, eur, rub |
payments | object[] | Да | Макс. 10 элементов |
payments[].payment_type | string | Да | Тип оплаты. Без повторов. Допустимые значения: bank, card, cash |
payments[].amount | number | Да | Сумма. До 2 знаков после запятой. Не меньше 0.01. Не больше 999999999999.99 |
{
"client_id": 1,
"cashbox_id": 2,
"payments": [
{
"payment_type": "cash",
"amount": 1500
}
]
}curl -X POST "https://api.wasyt.uz/company/client/debt-payment" \
-H "Accept: application/json" \
-H "Accept-Language: ru" \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{"client_id":1,"cashbox_id":2,"payments":[{"payment_type":"cash","amount":1500}]}'Ответ · 200
Поля ответа
| Поле | Тип | Описание |
|---|---|---|
data | object[] | Данные |
data[].is_refunded | boolean | |
data[].debt_id | integer | |
data[].cashbox_id | integer | Касса |
data[].client_id | integer | Клиент |
data[].payment_type | string | Тип оплаты |
data[].currency | string | Валюта |
data[].amount | integer | Сумма |
data[].created_at | string | Создано |
data[].creator_id | integer | Создатель |
data[].company_id | integer | Компания |
data[].id | integer | ID |
data[].debt | object | Долг |
data[].debt.id | integer | ID |
data[].debt.creator_id | integer | Создатель |
data[].debt.company_id | integer | Компания |
data[].debt.client_id | integer | Клиент |
data[].debt.sale_id | integer | Продажа |
data[].debt.currency | string | Валюта |
data[].debt.amount | integer | Сумма |
data[].debt.repaid_amount | integer | Сумма погашения |
data[].debt.returned_amount | integer | Возвращённая сумма |
data[].debt.due_date | string | Срок погашения |
data[].debt.comment | string | Комментарий |
data[].debt.status | string | Статус |
data[].debt.created_at | string | Создано |
data[].debt.updated_at | string | Обновлено |
data[].debt.remaining_amount | integer | |
data[].debt.overdue_days | integer | Просрочено дней |
data[].debt.by_currency | object | |
data[].debt.by_currency.uzs | object | |
data[].debt.by_currency.uzs.amount | integer | Сумма |
data[].debt.by_currency.uzs.repaid_amount | integer | Сумма погашения |
data[].debt.by_currency.uzs.returned_amount | integer | Возвращённая сумма |
data[].debt.by_currency.uzs.remaining_amount | integer | |
data[].is_refundable | boolean |
{
"data": [
{
"is_refunded": false,
"debt_id": 68,
"cashbox_id": 2,
"client_id": 1,
"payment_type": "cash",
"currency": "uzs",
"amount": 1500,
"created_at": "2026-09-30 12:51:48",
"creator_id": 2,
"company_id": 1,
"id": 48,
"debt": {
"id": 68,
"creator_id": 2,
"company_id": 1,
"client_id": 1,
"sale_id": 1,
"currency": "uzs",
"amount": 4000,
"repaid_amount": 2500,
"returned_amount": 0,
"due_date": "2030-12-31 00:00:00",
"comment": "Initial debt note",
"status": "partially_repaid",
"created_at": "2026-09-30 12:51:48",
"updated_at": "2026-09-30 12:51:48",
"remaining_amount": 1500,
"overdue_days": 0,
"by_currency": {
"uzs": {
"amount": 4000,
"repaid_amount": 2500,
"returned_amount": 0,
"remaining_amount": 1500
}
}
},
"is_refundable": false
}
]
}Пример ошибки · 422
{
"message": "Допустимые значения для fields.payments.*.payment_type: bank, card, cash.",
"errors": {
"payments.0.payment_type": [
"Допустимые значения для fields.payments.*.payment_type: bank, card, cash."
]
}
}
