# RETURN_SALE_API_REQUIRED

## Context

FE menambahkan menu **Transaction > Return Sale**.
User dapat memilih invoice, memilih item yang direturn, lalu submit qty return.

Saat ini FE sudah siap memanggil endpoint return sale, namun endpoint BE perlu dipastikan tersedia.

## Required Backend Endpoint

- `POST /api/v1/pos/returns`

## Request Payload

```json
{
  "sale_id": "uuid-or-id",
  "reason": "Barang tidak jadi dibeli",
  "items": [
    {
      "product_id": 101,
      "qty": 1
    }
  ]
}
```

## Validation Rules

1. `sale_id` wajib valid.
2. `items` minimal 1 baris.
3. `qty` return per item harus `> 0`.
4. `qty` return tidak boleh melebihi qty beli item pada transaksi asal.
5. transaksi yang sudah void/full return harus ditolak sesuai business rule.

## Expected Response (minimum)

```json
{
  "return_id": "uuid-or-id",
  "sale_id": "uuid-or-id",
  "status": "success",
  "returned_total": 349000,
  "returned_items": [
    {
      "product_id": 101,
      "qty": 1,
      "amount": 349000
    }
  ]
}
```

## Additional Recommendation

Jika ada endpoint report sales, tambahkan agregat/flag return agar nilai `return_sale` di Sales Report otomatis akurat setelah proses return.

## Acceptance Criteria

1. Save Return dari FE sukses commit di BE.
2. Stock item bertambah kembali sesuai qty return (jika rule bisnis demikian).
3. Nilai transaksi/report terupdate konsisten setelah return diproses.

