# POST /v2/wallet/check

<div id="bkmrk-" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;"></div>### Route Info

<div id="bkmrk-method-endpoint-cont" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;"><div><table border="1" style="width: 100%; margin: auto; border-collapse: collapse; text-align: center; border: 1px solid #ddd;"><tbody><tr style="background: #f4f4f4; font-weight: bold;"><td style="padding: 10px;">Method</td><td style="padding: 10px;">Endpoint</td><td style="padding: 10px;">Controller</td></tr><tr><td style="direction: ltr; padding: 10px;">POST</td><td style="direction: ltr; padding: 10px;">/v2/wallet/check</td><td style="direction: ltr; padding: 10px;">AccountingController@checkWallet</td></tr></tbody></table>

</div></div>### شرح عملکرد (Functionality)

این متد برای **بررسی کفایت موجودی** (Balance Check) قبل از انجام تراکنش استفاده می‌شود. برخلاف متد `balance` که فقط گزارش می‌دهد، این متد معمولاً یک پاسخ Boolean یا آبجکت وضعیت برمی‌گرداند که آیا تراکنش با مبلغ مشخص شده مجاز است یا خیر.

<div id="bkmrk-%D9%87%D8%AF%D9%81%3A-%D8%AC%D9%84%D9%88%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A7%D8%B2-%D8%AB%D8%A8%D8%AA-" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;">- **هدف:** جلوگیری از ثبت سفارش/تراکنش برای حساب‌های فاقد موجودی.
- **منطق:** پارامترهای نوع حساب، شناسه و مبلغ درخواستی به متد داخلی `getCheckWallet` ارسال می‌شود.
- **نقص امنیتی:** در حال حاضر هیچ اعتبارسنجی روی مبلغ (مثلاً عدم ارسال عدد منفی) انجام نمی‌شود.

</div>### پارامترهای ورودی (JSON Body)

تمامی فیلدها الزامی هستند:

```
{
    "type": "office",      // نوع کیف پول (office, user, colleague)
    "id": 101,             // شناسه مالک کیف پول
    "amount": 5000000      // مبلغ تراکنش مورد نظر (به ریال)
}
```

<div id="bkmrk--1" style="direction: rtl; font-family: Vazir,Tahoma; text-align: justify; line-height: 1.85;"></div>### خروجی (Response)

#### سناریوی ۱: موجودی کافی است

```
{
    "status": true,
    "data": true           // یا آبجکتی که تایید می‌کند موجودی کافی است
}
```

#### سناریوی ۲: موجودی ناکافی است

نکته: در این حالت هم `status` کلی پاسخ `true` است (چون درخواست بررسی با موفقیت انجام شده)، اما `data` منفی است.

```
{
    "status": true,
    "data": false          // یا پیامی مبنی بر کمبود موجودی
}
```

#### خطا (Error):

از آنجایی که بلوک `try-catch` وجود ندارد، در صورت بروز خطا در دیتابیس یا ورودی‌ها، ساختار JSON استاندارد بازگردانده نمی‌شود و ممکن است با خطای سیستمی (Exception Trace) مواجه شوید.