GET /apiv2/billing/usage
Các khoản phí trả sau của bạn: một dòng cho mỗi thành phần có thể tính phí riêng biệt của một đơn hàng, mới nhất hiển thị trước. Một dòng xuất hiện sau khi dịch vụ đã được cung cấp và ghi nhận, có thể muộn hơn thời gian phản hồi của đơn hàng. Sử dụng nó để đối soát các đơn hàng với công nợ và với hóa đơn. Một phần của thanh toán trả sau.
URL của Endpoint
GET https://netts.io/apiv2/billing/usageHeaders của yêu cầu
| Header | Bắt buộc | Mô tả |
|---|---|---|
X-API-KEY | có | Khóa API với quyền billing.read |
X-Real-IP | có | Một địa chỉ IP nằm trong danh sách trắng của khóa |
Tham số truy vấn
| Tham số | Bắt buộc | Mô tả |
|---|---|---|
from | không | các khoản phí từ thời điểm này, ISO 8601 kèm múi giờ: 2026-10-01T00:00:00Z |
to | không | các khoản phí trước thời điểm này, cùng định dạng |
limit | không | số dòng trên mỗi trang, 1–500, mặc định là 100 |
cursor | không | nextCursor từ trang trước đó |
Thời gian không có múi giờ sẽ bị từ chối với lỗi 400 invalid_request — khoảng thời gian sẽ không rõ ràng.
Ví dụ
bash
curl -s 'https://netts.io/apiv2/billing/usage?from=2026-10-01T00:00:00Z&limit=2' \
-H 'X-API-KEY: your-api-key' \
-H 'X-Real-IP: 203.0.113.10'json
{
"success": true,
"data": {
"items": [
{
"id": 1024,
"orderId": "AB2EF201B582AA1",
"productCode": "energy_1h",
"address": "TXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
"quantity": 65000,
"unitPriceSun": "20.000000",
"discount": null,
"amountTrx": "1.300000",
"amountUsdc": "0.430096",
"usdPerTrx": "0.330842760000000000",
"quoteId": null,
"txHash": "5c1f0e0d3a2b4c6d8e9f0a1b2c3d4e5f60718293a4b5c6d7e8f90a1b2c3d4e5f",
"fulfilledAt": "2026-10-19T10:11:42.563494+00:00",
"status": "accrued",
"paidTrx": "0.000000",
"paidUsdc": "0.000000",
"invoiceId": null,
"reversesId": null
}
],
"nextCursor": 1023
},
"timestamp": "2026-10-19T20:31:10+00:00"
}Một khoản phí
| Trường | Mô tả |
|---|---|
id | mã số khoản phí |
orderId | đơn hàng mà khoản phí này trực thuộc — cùng mã id mà endpoint đơn hàng đã trả về |
productCode | energy_1h, energy_5m, bandwidth, activation hoặc aml_check |
address | địa chỉ TRON dành cho đơn hàng |
quantity | số lượng đơn vị Energy hoặc Bandwidth, hoặc 1 cho một lượt kích hoạt hay một lượt kiểm tra |
unitPriceSun | đơn giá theo SUN mà bạn bị tính phí, đã bao gồm mức giá cá nhân của bạn; null đối với các sản phẩm được định giá theo từng đơn hàng |
discount | khoản chiết khấu riêng cho đơn hàng này — type là percent hoặc sun_per_unit và value tương ứng — hoặc null |
amountTrx, amountUsdc | số tiền được ghi nhận của thành phần này, theo TRX và theo loại tiền tệ trong hợp đồng của bạn |
usdPerTrx | tỷ giá từ TRX sang loại tiền tệ trong hợp đồng của bạn được ghi nhận cho thành phần này: lấy từ báo giá của nó nếu báo giá đã cố định số tiền, nếu không thì lấy tại thời điểm dịch vụ được cung cấp |
quoteId | báo giá mà đơn hàng đã sử dụng, nếu có |
txHash | giao dịch TRON của thành phần này, khi có phát sinh |
fulfilledAt | thời điểm thành phần này được cung cấp, theo chuẩn UTC |
status | accrued — chưa xuất hóa đơn; invoiced; paid; reversed — đã bị hủy bỏ bởi một điều chỉnh sau đó |
paidTrx, paidUsdc | số tiền của khoản phí đã được thanh toán, theo TRX và theo loại tiền tệ trong hợp đồng của bạn |
invoiceId | hóa đơn chứa khoản phí này |
reversesId | đối với một dòng điều chỉnh: là khoản phí mà nó hủy bỏ |
Một đơn hàng có Energy và kích hoạt sẽ có hai dòng, mỗi phần một dòng. Một điều chỉnh không bao giờ chỉnh sửa một dòng cũ: nó thêm một dòng mới với reversesId.
Phân trang
Gửi giá trị nextCursor dưới dạng tham số cursor để lấy trang tiếp theo, cũ hơn. nextCursor sẽ là null ở trang cuối cùng.
Lỗi
| HTTP | code | Ý nghĩa |
|---|---|---|
| 400 | invalid_request | sai tham số, hoặc from/to không có múi giờ |
| 401 | -1, -2 | khóa bị thiếu hoặc không hợp lệ, hoặc IP không nằm trong danh sách trắng — được phản hồi bởi cổng API gateway, xem định dạng phản hồi |
| 403 | billing_read_required, postpaid_required | không có quyền, hoặc không có tính năng thanh toán trả sau |