# รายการใบแจ้งหนี้

## คำขอ

```bash
curl -X POST https://api.bitsby.app/invoices/list \
  -H "Authorization: Token MSvL2ltaDZdWVjmZURURMVWhqSJLT2NURjhL2Fla1Z1T1IxQTltKs1T3Ay" \
	-F "startDate=2000-01-01" \
	-F "endDate=2030-01-01" \
	-F "offset=0" \
	-F "limit=10"
```

## พารามิเตอร์คำขอ

| พารามิเตอร์ | ชนิดข้อมูล | คำอธิบาย | ตัวอย่าง | จำเป็นหรือไม่ | ค่าเริ่มต้น |
| --- | --- | --- | --- | --- | --- |
| `invoiceId` | UUID | ID ของใบแจ้งหนี้ในรูปแบบ UUID | 1c48b092-9878-48f5-b441-07a8a48e7b54 | ไม่ |  |
| `invoiceUid` | String | ID ของใบแจ้งหนี้ (สำหรับลูกค้า) | F7ncQviM1N92 | ไม่ |  |
| `projectId` | UUID | ID ของโปรเจกต์ในรูปแบบ UUID | 1c48b092-9878-48f5-b441-07a8a48e7b54 | ไม่ |  |
| `startDate` | String | วันที่เริ่มต้นของการสร้างใบแจ้งหนี้ ในรูปแบบ Y-m-d | 2000-01-01 | ไม่ |  |
| `endDate` | String | วันที่สิ้นสุดของการสร้างใบแจ้งหนี้ ในรูปแบบ Y-m-d | 2030-01-01 | ไม่ |  |
| `status` | String | สถานะใบแจ้งหนี้ ค่าที่อนุญาต: unpaid, canceled, paid, expired | paid | ไม่ |  |
| `offset` | Integer | ดัชนีของระเบียนแรกที่ต้องการรับ | 0 | ไม่ | 0 |
| `limit` | Integer | จำนวนระเบียนที่ต้องการรับ | 50 | ไม่ | 10 |

## ตัวอย่างการตอบกลับ

```json
{
    "result": "success",
    "data": [
        {
            "id": "59302b02-d1be-4e10-960f-d6ec24bfcaaf",
            "uid": "F7nYgvxM1N92",
            "projectId": "9deea1e2-0c08-41a3-bdc2-a34eada3892d",
            "createDatetime": "2024-02-29 10:49:56",
            "timeToPayDatetime": "2024-02-29 22:49:56",
            "commissionFiatUSD": 1,
            "amountFiatUSD": 100,
            "amountFiat": 100,
            "currencyFiat": "USD",
            "description": null,
            "serviceData": null,
            "views": 0,
            "status": "canceled"
        },
        {
            "id": "f31c61f6-407f-4999-95cf-56477eff06d4",
            "uid": "riUZBnNvd2rX",
            "projectId": "9deea1e2-0c08-41a3-bdc2-a34eada3892d",
            "createDatetime": "2024-02-27 20:57:23",
            "timeToPayDatetime": "2024-02-28 08:57:23",
            "commissionFiatUSD": 0.12,
            "amountFiatUSD": 12,
            "amountFiat": 12,
            "currencyFiat": "USD",
            "description": null,
            "serviceData": "orderId:2444",
            "views": 3,
            "status": "paid",
            "payment": {
                "id": "f986ad8d-2298-473d-982a-efbc817b975d",
                "amount": 12,
                "hash": "f09352627039c088688806821b864895ff237558612d834861621fc026de5f68",
                "transactionDatetime": "2024-02-27 21:05:36"
            },
            "wallet": {
                "id": "47aa71e2-07a0-482e-9172-7114d7376ba0",
                "name": "usdt-tron",
                "blockchain": "tron",
                "cryptocurrency": "usdt",
                "address": "TKbstUwMzLrfTAGL4erYb7gc7ghmHQ9zG7"
            }
        }
    ]
}
```

## พารามิเตอร์การตอบกลับ

| พารามิเตอร์ | คำอธิบาย |
| --- | --- |
| `id` | ID ของใบแจ้งหนี้ในรูปแบบ UUID |
| `uid` | ID ของใบแจ้งหนี้ (สำหรับลูกค้า) |
| `projectId` | ID ของโปรเจกต์ในรูปแบบ UUID |
| `createDatetime` | วันที่และเวลาที่สร้างใบแจ้งหนี้ (UTC) |
| `timeToPayDatetime` | วันที่และเวลาที่ใบแจ้งหนี้มีอายุถึง (UTC) ลูกค้าต้องชำระใบแจ้งหนี้ก่อนเวลานี้ |
| `commissionFiatUSD` | จำนวนค่าธรรมเนียมบริการ คำนวณจากจำนวนเงิน `amountFiatUSD` |
| `amountFiatUSD` | จำนวนของใบแจ้งหนี้แปลงเป็น USD ตอนสร้างใบแจ้งหนี้คำนวณจาก `amountFiat` ตามอัตราแลกเปลี่ยนปัจจุบัน ณ เวลาชำระเงินจะถูกเขียนทับด้วยจำนวนเงินที่ได้รับจริง แปลงเป็น USD ตามอัตราแลกเปลี่ยน ณ ขณะนั้น ค่าธรรมเนียมใน `commissionFiatUSD` ก็ถูกคำนวณใหม่จากค่านี้ด้วย |
| `amountFiat` | จำนวนเงินดั้งเดิมของใบแจ้งหนี้ในสกุลเงินเฟียต ไม่เปลี่ยนแปลง |
| `currencyFiat` | สกุลเงินเฟียต |
| `description` | คำอธิบายที่ตั้งไว้ตอนสร้างใบแจ้งหนี้ แสดงให้ลูกค้าเห็น |
| `serviceData` | ข้อมูลฝั่งบริการที่ตั้งไว้ตอนสร้างใบแจ้งหนี้ ไม่แสดงให้ลูกค้าเห็น ใช้ระบุใบแจ้งหนี้และการชำระเงินในร้านค้า |
| `views` | จำนวนการดูหน้าชำระเงิน |
| `status` | สถานะใบแจ้งหนี้ |
| `payment` | บล็อกพารามิเตอร์ของการชำระเงิน มีเมื่อใบแจ้งหนี้ถูกชำระแล้ว |
| `payment.id` | ID ของการชำระเงินในรูปแบบ UUID |
| `payment.amount` | จำนวนเงินชำระในสกุลเงินคริปโต |
| `payment.hash` | แฮชของธุรกรรม on-chain |
| `payment.transactionDatetime` | วันที่และเวลาของธุรกรรม on-chain (UTC) |
| `wallet` | บล็อกพารามิเตอร์ของกระเป๋าเงินที่รับการชำระเงิน มีเมื่อใบแจ้งหนี้ถูกชำระแล้ว |
| `wallet.id` | ID ของกระเป๋าเงินในรูปแบบ UUID |
| `wallet.name` | ชื่อกระเป๋าเงิน |
| `wallet.blockchain` | บล็อกเชนของกระเป๋าเงินคริปโต |
| `wallet.cryptocurrency` | สกุลเงินคริปโตของกระเป๋าเงิน |
| `wallet.address` | ที่อยู่ของกระเป๋าเงินคริปโต |
