Appearance
Penagihan pascabayar
Dengan penagihan pascabayar, Anda memesan Energy, Bandwidth, aktivasi, dan pemeriksaan AML tanpa perlu mengisi saldo deposit terlebih dahulu. Layanan diberi harga menggunakan tarif khusus pelanggan yang berlaku, termasuk diskon yang berlaku. Biaya, pembayaran, dan penyesuaian tercermin dalam faktur Anda berdasarkan ketentuan penagihan dan pembayaran kontrak Anda.
Pascabayar diaktifkan oleh Netts berdasarkan permintaan untuk akun bisnis. Endpoint di bagian ini hanya merespons untuk akun dengan penagihan pascabayar; akun lain menerima 403 postpaid_required.
Cara kerjanya
- Anda memesan seperti biasa. Endpoint pesanan yang sama, API key yang sama. Akun pascabayar tidak memerlukan saldo deposit untuk pesanan ini. Harganya adalah harga berdasarkan kontrak Anda, termasuk diskon Anda.
- Layanan yang diberikan dicatat sebagai biaya. Pesanan yang diterima bukan merupakan layanan yang sudah diberikan dengan sendirinya. Biaya akan muncul di penggunaan setelah layanan atau bagian pesanan yang dapat dikenakan biaya terpisah telah diberikan — ini bisa terjadi lebih lambat daripada respons pesanan.
- Harga dan nilai tukar ditetapkan dan disimpan. Kuotasi yang valid menetapkan harga berdasarkan kontrak Anda untuk pesanan tersebut. Tanpa kuotasi, harga berdasarkan kontrak Anda saat pesanan dibuat akan berlaku, dan jumlah dalam mata uang kontrak Anda dihitung berdasarkan nilai tukar saat layanan diberikan. Jumlah yang tercatat tidak dihitung ulang saat Anda membaca penggunaan, menerima faktur, atau melakukan pembayaran.
- Anda menerima dan membayar faktur Anda. Periode penagihan dan ketentuan pembayaran adalah yang disepakati dalam kontrak Anda. Faktur menunjukkan layanan pada periode tersebut, pembayaran dan penyesuaian yang diterapkan, serta jumlah yang masih harus dibayar; pembayaran tidak menghapus catatan layanan. Lihat faktur dan pembayaran. Mata uang pembayaran, jaringan, dan ketentuan pembayaran ditampilkan dalam
settlementdi akun. Kelebihan pembayaran tetap berada di akun Anda sebagai kredit dan digunakan untuk biaya berikutnya.
Tarif, kuotasi, dan nilai tukar yang tercatat
Kuotasi (freezePrice) menetapkan harga berdasarkan kontrak Anda selama satu menit. Buat pesanan dengan quoteId dan parameter yang sama dalam menit tersebut, dan pesanan akan ditagih pada harga yang dikutip, bahkan jika harga berubah atau layanan diberikan nanti. Kuotasi bersifat opsional; lihat Energy 1 jam dan Energy 5 menit untuk bidang permintaan.
Tanpa kuotasi, jumlah dalam mata uang kontrak Anda dihitung berdasarkan nilai tukar saat layanan diberikan, bukan saat Anda melihat harga atau akun Anda. Nilai tukar saat ini — nilai tukar Anda dan yang ditampilkan dalam respons akun — hanya untuk perbandingan; ini bukan jaminan atas nilai tukar pesanan di masa mendatang.
Pemeriksaan AML diberi harga dalam dolar AS dan dicatat dalam mata uang kontrak Anda; nilai yang setara dalam TRX dihitung berdasarkan nilai tukar saat pemeriksaan selesai. Jangan menghitung ulang biaya AML dari jumlah TRX yang dibulatkan.
Jumlah ditampilkan dalam TRX dan dalam mata uang kontrak Anda; batas Anda dihitung dalam mata uang kontrak Anda. usdPerTrx adalah nilai tukar TRX terhadap mata uang kontrak Anda. Anda membayar dalam mata uang dan jaringan kontrak Anda, yang ditampilkan dalam settlement.
Sebuah pesanan dapat memiliki lebih dari satu biaya, misalnya Energy dan aktivasi yang dikenakan biaya secara terpisah. Setiap biaya memiliki waktu dan nilai tukar masing-masing. Jumlah dibulatkan sekali menjadi enam tempat desimal, half-even; kuotasi mempertahankan jumlah yang dikutipnya. Rekonsiliasi pesanan berdasarkan biayanya, bukan dengan menerapkan nilai tukar saat ini ke totalnya.
Semua waktu adalah UTC. Semua jumlah adalah string desimal, misalnya "30000.000000" — uraikan dengan tipe desimal, bukan float.
Batas kredit
Netts menetapkan batas kredit akun Anda: jumlah maksimum yang dapat Anda utang pada saat tertentu. Ini ditampilkan di akun dan batas dengan "origin": "netts". Anda dapat melihatnya tetapi tidak dapat mengubah atau menonaktifkannya — tanyakan kepada manajer Netts Anda jika Anda memerlukan batas yang berbeda.
Produk dan API key berbagi satu batas kredit tingkat akun ini. Setiap pesanan baru diperiksa terhadap setiap batas yang berlaku. Ketika pemeriksaan tersebut menemukan kredit yang tersedia tidak mencukupi, pesanan ditolak sebelum eksekusi:
json
{
"detail": {
"code": 1004,
"msg": "Postpaid credit limit reached.",
"paymentMode": "postpaid",
"reason": "limit_reached",
"product": "*",
"period": "outstanding",
"limitId": 1
}
}Endpoint pesanan merespons 402. Pembayaran membebaskan batas kembali. Jika pemeriksaan untuk sementara tidak tersedia, endpoint pesanan merespons 503 dengan kode 5036 — coba lagi nanti, tidak ada yang ditagihkan oleh upaya yang ditolak tersebut. Jumlah yang tersedia yang ditunjukkan oleh permintaan baca adalah angka saat ini, bukan reservasi untuk pesanan nanti; pesanan lain yang diterima dapat mengubahnya.
Batas Anda sendiri
Di dalam batas Netts, Anda dapat menetapkan batas Anda sendiri yang lebih rendah — untuk menjaga pengeluaran tetap terkendali atau membatasi produk individual:
- Batas keseluruhan Anda sendiri — total utang yang Anda izinkan untuk diri Anda sendiri, di bawah batas Netts.
- Batas produk — berapa banyak yang dapat digunakan oleh satu produk, misalnya
energy_5m.
Batas Anda tidak pernah menambah kredit. Batas produk tidak terakumulasi: dengan batas Netts sebesar 50 USD, batas produk 50 USD untuk energy_1h dan 50 USD untuk energy_5m tetap berbagi kredit tingkat akun sebesar 50 USD. Pemeriksaan pesanan menerapkan setiap batas yang relevan, dan batas menunjukkan untuk setiap produk berapa banyak yang saat ini dapat dibelanjakan.
Batas dapat menghitung:
period | Yang dihitung |
|---|---|
outstanding | biaya yang belum dibayar, ditambah pesanan yang diterima yang belum dicatat |
day | biaya pada hari UTC saat ini, termasuk yang sudah dibayar, ditambah pesanan yang diterima yang belum dicatat |
week | biaya pada minggu UTC saat ini dari Senin 00:00 UTC, termasuk yang sudah dibayar, ditambah pesanan yang diterima yang belum dicatat |
order | jumlah pesanan baru tunggal |
Pembayaran mengurangi utang Anda tetapi tidak mengatur ulang penggunaan hari atau minggu tersebut. Kredit dari kelebihan pembayaran ditampilkan sebagai creditApplied dan dihitung sekali terhadap keseluruhan utang Anda; ini tidak menambah ke setiap batas produk.
Batas Anda berada dalam mata uang batas Netts dan tidak boleh lebih tinggi darinya. Jika Netts menurunkan batasnya di bawah salah satu batas Anda, batasan berlaku yang lebih rendah tetap berlaku.
Produk: energy_1h, energy_5m, bandwidth, activation, aml_check.
Izin API key
Setiap API key memerlukan izin untuk bagian ini. Manajer Netts Anda memberikannya per kunci:
| Izin | Mengizinkan |
|---|---|
billing.read | akun, nilai tukar, batas, penggunaan, faktur, dan pembayaran |
limits.write | membuat, mengubah, menonaktifkan, dan mengaktifkan batas Anda sendiri |
Tanpa izin tersebut, endpoint merespons 403 dengan billing_read_required atau forbidden. Whitelist IP kunci berlaku seperti untuk setiap endpoint lainnya. Endpoint ini tetap tersedia saat saldo deposit nol.
Endpoint
| Endpoint | Fungsinya |
|---|---|
GET /apiv2/billing/account | batas kredit, utang, dan apa yang tersedia sekarang |
GET /apiv2/billing/rate | nilai tukar TRX Anda saat ini terhadap mata uang kontrak Anda |
GET /apiv2/billing/limits | semua batas dengan jumlah yang digunakan dan tersedia, tersedia per produk |
POST /apiv2/billing/limits | membuat, mengubah, menonaktifkan, dan mengaktifkan batas Anda sendiri |
GET /apiv2/billing/usage | komponen biaya, ditautkan ke pesanannya |
GET /apiv2/billing/invoices | faktur, satu faktur beserta biayanya |
GET /apiv2/billing/payments | pembayaran dan kredit |
Format respons
json
{ "success": true, "data": { }, "timestamp": "2026-10-19T20:12:30+00:00" }Kesalahan dari layanan:
json
{
"success": false,
"error": { "code": "postpaid_required", "message": "this account has no postpaid billing" },
"timestamp": "2026-10-19T20:12:30+00:00"
}Kunci yang hilang atau tidak valid, atau permintaan dari IP di luar whitelist kunci, ditolak oleh API gateway sebelum mencapai layanan, dengan 401:
json
{ "detail": { "code": -1, "msg": "Invalid or missing API key" } }Kode -2 dengan "Invalid API key or IP not in whitelist" berarti IP tidak ada dalam whitelist kunci. Lebih dari 10 permintaan per detik atau 300 per menit dari satu IP ditolak dengan 429 dan {"message": "API rate limit exceeded"}.
| HTTP | code | Arti |
|---|---|---|
| 400 | invalid_request, invalid_amount, idempotency_key_required, invalid_idempotency_key | parameter hilang atau memiliki format yang salah |
| 403 | postpaid_required | akun tidak memiliki penagihan pascabayar |
| 403 | postpaid_disabled | penagihan pascabayar dijeda: Anda dapat membaca, tetapi tidak dapat mengubah batas |
| 403 | billing_read_required, forbidden | kunci tidak memiliki billing.read atau limits.write |
| 403 | netts_limit_readonly | batas ditetapkan oleh Netts dan tidak dapat diubah |
| 404 | not_found | tidak ada batas atau faktur tersebut di akun Anda |
| 409 | revision_conflict | batas telah diubah sementara itu — baca kembali |
| 409 | limit_exists | Anda sudah memiliki batas untuk produk dan periode ini |
| 409 | idempotency_conflict | Idempotency-Key telah digunakan dengan permintaan lain |
| 409 | no_account_limit | akun belum memiliki batas kredit yang ditetapkan oleh Netts |
| 422 | above_account_limit | nilai lebih tinggi dari batas Netts |
| 422 | product_not_postpaid | produk tidak tersedia pada pascabayar |
| 422 | unit_mismatch | mata uang batas Netts berubah — tetapkan nilai baru sebelum mengaktifkan batas Anda |
| 503 | unavailable | sementara tidak tersedia — coba lagi nanti |
| 503 | rate_unavailable | nilai tukar Anda sementara tidak tersedia — coba lagi nanti |