Penagihan & Pengembalian Dana
Penagihan realtime dihitung per produk, per pengenal. Sebuah panggilan mereservasi dana di muka, lalu menyelesaikannya setelah setiap produk yang dipilih memiliki hasil.
Reservasi, lalu penyelesaian
Section titled “Reservasi, lalu penyelesaian”Saat panggilan diterima, platform mereservasi jumlah harga per pemeriksaan dari produk yang dipilih. Belum ada yang ditagih. Saat hasil kembali, setiap entri diselesaikan sendiri:
- entri yang ditagih mempertahankan reservasinya
- entri yang dikembalikan dananya mengembalikannya ke saldo Anda
Tiga total dalam respons menggambarkan penyelesaian tersebut:
| Field | Arti |
|---|---|
total_reserved | Direservasi saat panggilan diterima |
total_charged | Benar-benar ditahan |
total_refunded | Dikembalikan ke saldo Anda |
Ketiganya selalu seimbang: total_reserved = total_charged + total_refunded.
Apa yang ditagih, apa yang dikembalikan dananya
Section titled “Apa yang ditagih, apa yang dikembalikan dananya”| Hasil | billing_status | Arti |
|---|---|---|
valid — pengenal terdaftar | charged | Jawaban nyata dihasilkan |
invalid — pengenal tidak terdaftar | charged | Jawaban nyata dihasilkan |
unknown — pemasok tidak mengembalikan jawaban konklusif | refunded | Tidak ada jawaban; hasil yang tidak konklusif tidak pernah ditagih |
| Timeout penyedia | refunded | error_code: provider_timeout |
| Slot kanal atau pengguna tidak tersedia | refunded | error_code: channel_busy / user_busy |
| Perlindungan konkurensi pada fakta bersama | refunded | error_code: fact_refresh_busy |
| Pemasok gagal melakukan pemeriksaan | refunded | error_code: realtime_failed |
| Cache hasil tidak tersedia | refunded | error_code: fact_cache_unavailable |
Hit cache tetap ditagih. Entri cached: true adalah jawaban nyata yang dihasilkan pemeriksaan sebelumnya dan disimpan; tagihannya mencerminkan jawaban, bukan perjalanan bolak-baliknya. Hanya hasil unknown dan gagal yang dikembalikan dananya.
Membaca panggilan yang berhasil sebagian
Section titled “Membaca panggilan yang berhasil sebagian”Karena setiap entri diselesaikan secara terpisah, satu panggilan bisa memuat kedua hasil. Hal itu dilaporkan sebagai status: partial_succeeded — HTTP tetap 200. Jangan pernah menganggap 200 berarti “semuanya berhasil”:
- baca
status - untuk setiap entri, baca
billing_statusdanerror_code
Nilai status: succeeded (setiap entri ditagih), partial_succeeded (campuran), failed (tidak ada entri yang menghasilkan jawaban yang bisa ditagih).
Panggilan membutuhkan saldo yang cukup untuk reservasi penuh. Jika kurang, panggilan gagal dengan 402 insufficient_balance sebelum produk apa pun dihubungi — tidak ada yang direservasi, tidak ada yang ditagih.
Saldo itu sendiri tersedia dari GET /v1/balance. Lihat Saldo akun.
Pengembalian dana bersifat otomatis
Section titled “Pengembalian dana bersifat otomatis”Tidak ada langkah pengajuan pengembalian dana. Entri yang dikembalikan dananya diselesaikan kembali ke saldo Anda sebagai bagian dari panggilan yang sama, dan respons yang Anda terima sudah mencerminkan angka akhir.