# POST /b2c/v1/online/{type}/refund

<div class="api-docs" id="bkmrk-">  <div class="endpoint-section">  
</div></div>## Refund Request Operation

این اندپوینت جهت ثبت و پردازش عملیات **درخواست استرداد (Refund)** برای بلیط یا رزرو آنلاین ایجاد شده است. پس از ارسال اطلاعات رزرو، توضیحات کاربر و مشخصات شعبه، فرآیند استرداد از طریق سرویس اصلی `BaseService::refundItemProgress` اجرا می‌شود. پاسخ شامل اطلاعات تراکنش استرداد و وضعیت نهایی عملیات خواهد بود.

<div class="api-docs" id="bkmrk--1"><div class="endpoint-section">  
</div>---

  </div># Refund Item Progress

<div class="api-docs" id="bkmrk-url%3A-%2Fb2c%2Fv1%2Fonline%2F"><div class="endpoint-info"><div>**URL:** `/b2c/v1/online/{type}/refund`</div><div>**Method:** <span class="method-post">POST</span></div><div>**Controller:** `V1OnlineController@refundItemProgress`</div><div>**Auth:** <span class="method-public">Public (No Authentication Required)</span></div></div></div>### Path Parameters

<div class="api-docs" id="bkmrk-parameter-type-descr"><table class="schema-table" dir="rtl"><thead><tr><th>Parameter</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td dir="ltr">{type}</td><td>String</td><td>نوع سرویس آنلاین که قرار است فرایند استرداد برای آن انجام شود — یکی از `aircraft`، `train` یا `accommodation`.</td></tr></tbody></table>

---

  </div>### Request Body Parameters

<div class="api-docs" id="bkmrk-parameter-type-requi"><table class="schema-table" dir="rtl"><thead><tr><th>Parameter</th><th>Type</th><th>Required</th><th>Description</th></tr></thead><tbody><tr><td dir="ltr">data</td><td>Object / Array</td><td>✅</td><td>اطلاعات رزرو، شامل شماره بلیط، شناسه رزرو، مشخصات سرویس و داده‌های ارائه‌دهنده.</td></tr><tr><td dir="ltr">description</td><td>String</td><td>☑️</td><td>توضیحات متنی برای علت درخواست استرداد؛ توسط کاربر یا شعبه ارائه می‌شود.</td></tr><tr><td dir="ltr">branch</td><td>Integer</td><td>✅</td><td>شناسه شعبه‌ی درخواست‌دهنده که از قوانین داخلی برای محاسبه استرداد استفاده می‌کند.</td></tr></tbody></table>

---

  </div>### Response Structure

<div class="api-docs" id="bkmrk-key-description-item"><table class="schema-table" dir="rtl"><thead><tr><th>Key</th><th>Description</th></tr></thead><tbody><tr><td dir="ltr">items</td><td>نتایج بازگشتی از تابع `BaseService::refundItemProgress` شامل جزئیات استرداد، کد رهگیری و وضعیت مالی.</td></tr><tr><td dir="ltr">meta.timestamp</td><td>زمان لحظه ثبت پاسخ (Unix Timestamp).</td></tr></tbody></table>

</div>### Example Response — Success

```json
{
  "items": {
    "reference": "RFD-83234",
    "status": "accepted",
    "refund_amount": 1200000,
    "currency": "IRR",
    "provider": "Mahan Airlines",
    "description": "لغو پرواز توسط مسافر",
    "processed_at": "2025-12-09T17:40:22Z"
  },
  "meta": {
    "timestamp": 1733739622
  }
}
```

### Example Response — Error (400)

```json
{
  "status": false,
  "time": 1733739622,
  "error": {
    "code": 1002,
    "message": "Refund process failed: invalid ticket reference",
    "trace": [ ... ]
  },
  "support": {
    "phone": "021-91016838 in 121",
    "email": "ict@airplus.app",
    "panel": "helpdesk.airplus.app"
  }
}
```

<div class="api-docs" id="bkmrk--2">---

  </div>### Technical Logic

<div class="api-docs" id="bkmrk-request%3A-includes-da"><div class="flowchart" dir="rtl"><div class="flow-item">Request: includes `data`, `description`, and `branch`</div><div class="flow-arrow">↓</div><div class="flow-item-process">**Initialize BaseService**  
`$BaseService = new \App\Lib\BaseService()`</div><div class="flow-arrow">↓</div><div class="flow-item-process">**Call refundItemProgress()**  
`$BaseService->refundItemProgress($request->data, $request->description, $request->get('branch'))`</div><div class="flow-arrow">↓</div><div class="flow-item-success">**Return JSON Result**  
شامل داده‌های استرداد، مبلغ بازگشتی و وضعیت نهایی.</div><div class="flow-arrow">↓</div><div class="flow-item-decision" style="background: #ffe6e6;">در صورت خطا → ارسال پاسخ خطایی حاوی کد `1002` و اطلاعات تماس پشتیبانی.</div></div></div>