Why OpenAI’s Model is the Standard
Billing SaaS tradisional tidak menangani biaya variabel penggunaan AI dengan baik. Model OpenAI menyelesaikan tiga masalah sekaligus:- Pendapatan yang Dapat Diprediksi dan Risiko Rendah: Karena penggunaan API dibayar di muka, pengguna tidak dapat menumpuk tagihan yang tidak mampu mereka bayar. OpenAI menerima uang di muka, dan pengguna menghabiskannya saat menggunakan layanan.
- Skalabilitas untuk Developer: Top-up sebesar $5 merupakan hambatan awal yang rendah. Saat aplikasi berkembang, developer dapat mengotomatiskan top-up atau membeli paket yang lebih besar. Memulai itu murah, dan penggunaan dapat berkembang tanpa perubahan plan.
- Psikologi Pengguna: Kredit dalam denominasi dolar AS, bukan “token” atau “poin” abstrak, membuat nilainya jelas. Saldo tersebut berfungsi seperti akun prabayar untuk layanan AI, sehingga perusahaan lebih mudah menyusun anggaran.
How OpenAI Bills
OpenAI menjalankan dua model billing untuk pengguna yang berbeda.- API (Pay-as-you-go): API menggunakan kredit prabayar dalam denominasi dolar. Pengguna mengisi saldo akun mereka sebesar $5, $10, $50, atau lebih. Kredit menampilkan nilai dolar, tetapi tidak dapat digunakan di luar OpenAI. OpenAI mengenakan biaya per token, dengan tarif berbeda untuk token input dan output. Kredit yang dibeli kedaluwarsa satu tahun setelah pembelian dan tidak dapat dikembalikan (OpenAI Help Center). Saat saldo mencapai $0, panggilan API gagal.
- ChatGPT Plus, Business, and Enterprise: Paket ini merupakan subscription dengan tarif tetap. ChatGPT Plus berharga $20 per bulan, sedangkan paket Business (sebelumnya Team) berharga $25 per pengguna per bulan jika ditagih bulanan. Paket-paket ini memiliki batas penggunaan lunak: pengguna dengan penggunaan tinggi akan dialihkan ke model yang lebih kecil, bukan diblokir.
- Spend-based rate tiers: Seiring total pengeluaran bertambah, akun memperoleh rate limit API yang lebih tinggi. Akses meningkat berdasarkan riwayat penagihan.
Hal yang Membuatnya Unik
Empat karakteristik membuat penagihan OpenAI efektif untuk layanan AI:- Kredit dalam denominasi fiat: Kredit menggunakan dolar AS, sehingga terasa seperti uang. Developer dapat membaca harga sebuah request secara langsung.
- Masa kedaluwarsa panjang: Kredit yang dibeli berlaku selama satu tahun, sehingga mengurangi tekanan “gunakan atau hangus”. Pengguna merasa nyaman mengisi saldo dalam jumlah lebih besar.
- Metering multidimensi: Token input dan output dilacak secara terpisah, tetapi dikurangkan dari saldo yang sama. OpenAI dapat menetapkan harga token output yang lebih mahal daripada token input.
- Trust tier: Rate limit yang meningkat seiring total pengeluaran memberikan penghargaan kepada pelanggan jangka panjang dan mendorong mereka untuk tetap menggunakan layanan.
Keunggulan Strategis
Model ini memperkuat dirinya sendiri. Biaya awal yang rendah menarik developer. Kredit prabayar menyediakan arus kas langsung. Penetapan harga berbasis penggunaan berarti OpenAI memperoleh lebih banyak pendapatan saat developer berhasil. Subscription menambahkan pendapatan dasar yang stabil dari pengguna non-developer.Bangun Ini dengan Dodo Payments
Anda dapat membangun model penagihan OpenAI dengan Dodo Payments. Gunakan Credit-Based Billing untuk sisi API dan subscription standar untuk sisi ChatGPT Plus.1
Create a Fiat Credit Entitlement
Di dashboard Dodo Payments, buka Products → Credits lalu klik Create Credit. Kredit ini merupakan saldo utama untuk setiap pengguna.
- Credit Type: Fiat Credits, dengan Unit Currency yang ditetapkan ke USD
- Credit Expiry: Custom, 365 hari (sesuai dengan masa kedaluwarsa satu tahun OpenAI), atau Never
- Rollover: Tidak diperlukan (kredit tidak di-reset setiap siklus)
- Allow Overage: Dinonaktifkan
2
Create Top-Up Products
Buat produk pembayaran satu kali untuk berbagai paket kredit, seperti $5, $10, $50, dan $100. Lampirkan kredit fiat Anda ke setiap produk.Tetapkan jumlah kredit yang diterbitkan sesuai nilai dolar paket. Paket $50 menerbitkan 50 kredit.
3
Create Usage Meters
Buat dua meter untuk melacak penggunaan token:
llm.input_tokens: Agregasi sum pada propertitokens.llm.output_tokens: Agregasi sum pada propertitokens.
Menghitung Meter Units per Credit
Untuk menyesuaikan dengan harga GPT-4o OpenAI, hitung berapa banyak token yang berharga $1, yaitu satu kredit fiat:- Input Tokens: 1.000.000 token / $2.50 = 400.000 token per $1.
- Output Tokens: 1.000.000 token / $10.00 = 100.000 token per $1.
4
Send Usage Events
Setelah setiap request LLM, kirim penggunaan tersebut ke Dodo Payments. Satu request dapat membawa event input dan output sekaligus. Snippet ini menggunakan kembali
client dari langkah sebelumnya.5
Handle Balance Depletion
Periksa saldo pengguna sebelum memproses request API. Jika saldo nol atau negatif, tolak request tersebut, misalnya dengan status
402.Menangani Webhook Saldo Rendah
Beri tahu pengguna sebelum saldo mencapai $0. Tetapkan Low Balance Threshold saat melampirkan kredit, lalu kirim email atau notifikasi dalam aplikasi ketika webhookcredit.balance_low diterima.6
Build the ChatGPT Subscription Side (Optional)
Untuk menawarkan paket subscription seperti ChatGPT Plus, buat produk subscription terpisah di Dodo Payments. Produk ini tidak memerlukan credit entitlement.Untuk paket Team, gunakan seat-based billing: add-on per kursi yang jumlahnya sesuai dengan jumlah pengguna.
Menerapkan Batas Lunak
Untuk membangun batas lunak, lacak penggunaan pengguna subscription dengan meter yang sama, tetapi tanpa menghubungkannya ke kredit. Di aplikasi Anda, periksa penggunaan untuk periode penagihan saat ini.Percepat dengan LLM Ingestion Blueprint
Langkah-langkah di atas membuat dan mengirim event penggunaan secara manual. LLM Ingestion Blueprint justru membungkus client OpenAI Anda dan melacak token secara otomatis.inputTokens, outputTokens, dan totalTokens dari setiap respons API dan mengirimkannya, bersama model, sebagai metadata event. Tetapkan Over Property meter Anda ke token key yang ingin ditagihkan.
Menerapkan Spend-Based Rate Tiers
Rate tier OpenAI mengelola kapasitas berdasarkan kepercayaan. Untuk membangunnya, lacak total pengeluaran setiap pelanggan selama masa penggunaan.- Lacak Total Pengeluaran: Dengarkan webhook
payment.succeededdan tambahkan jumlah pembayaran ke fieldtotal_spenduntuk pelanggan tersebut di database Anda. Jumlah menggunakan unit mata uang terkecil, sehingga 5000 berarti $50.00. - Tentukan Tier: Petakan jumlah pengeluaran ke rate limit:
- Tier 1: pengeluaran $0 - $50 -> 3 RPM
- Tier 2: pengeluaran $50 - $250 -> 10 RPM
- Tier 3: pengeluaran $250+ -> 50 RPM
- Terapkan Limit: Di middleware API Anda, cari tier pelanggan dan terapkan rate limit-nya.
Contoh Implementasi Lengkap: API Proxy
Dalam production, API proxy biasanya berada di antara pengguna dan provider LLM. Proxy mengautentikasi request, memeriksa kredit, dan melaporkan penggunaan. Handler di bawah ini menerapkan proxy:Menangani Edge Case
Sistem penagihan seperti milik OpenAI memiliki beberapa edge case yang perlu direncanakan.Race Condition
Pengguna dengan saldo rendah dapat mengirim beberapa request secara bersamaan dan melebihi saldo sebelum event apa pun diproses. Untuk mencegahnya, simpan buffer kecil, atau gunakan distributed lock pada saldo pelanggan selama setiap request.Latensi Ingestion Event
Dodo Payments mengurangkan kredit secara asynchronous. Background worker memproses event baru sekitar sekali per menit, sehingga pengurangan dapat terlambat dibandingkan panggilan API. Untuk enforcement real-time yang ketat, simpan cache lokal saldo setiap pengguna dan perbarui cache tersebut saat Anda melayani request.Penanganan Refund
Refund atas pembelian paket kredit tidak menghapus kredit yang telah diberikan. Saat melakukan refund, kurangi kredit tersebut sendiri melalui debit: gunakan Apply Credit/Debit pada tab Credits pelanggan, atau API Create Ledger Entry. Kemudian perbarui tampilan saldo di aplikasi Anda agar pengguna tidak dapat membelanjakan kredit yang sudah tidak mereka miliki.Dukungan Multi-Model
Untuk mendukung beberapa model dengan harga berbeda, pilih salah satu dari dua opsi berikut:- Meter Terpisah: Buat satu set meter per model, misalnya
gpt-4o.input_tokensdangpt-4o-mini.input_tokens, masing-masing dengan Meter units per credit sendiri. - Event Berbobot: Gunakan satu meter dan kalikan
tokensdengan bobot sebelum mengirim event. Misalnya, jika GPT-4o berharga 10 kali lipat dari GPT-4o-mini, kirim 10 kali jumlah token untuk request GPT-4o.
Ikhtisar Arsitektur
Loop di bawah ini menunjukkan alur prabayar dari pembelian hingga panggilan yang diblokir: Meter melacak token dan mengurangkan nilai dolarnya dari saldo kredit pengguna berdasarkan tarif yang Anda konfigurasikan. Aplikasi Anda memblokir panggilan saat saldo mencapai nol.Kesimpulan
Dengan Dodo Payments, Anda dapat menggabungkan penagihan berbasis penggunaan dengan prediktabilitas kredit prabayar, seperti yang dilakukan OpenAI. Pelanggan membayar di muka, menggunakan saldo sesuai kebutuhan, dan mengisi ulang saat memerlukan lebih banyak. Komponen yang sama dapat digunakan untuk platform LLM besar maupun tool AI kecil: kredit fiat, produk pengisian ulang, meter token, dan pemeriksaan saldo sebelum setiap request.Fitur Utama Dodo yang Digunakan
Fitur Dodo Payments berikut mendukung implementasi ini:Credit-Based Billing
Kelola kredit fiat prabayar dan credit entitlement untuk pengguna Anda.
Usage-Based Billing
Lacak penggunaan terperinci seperti token dan tagihkan penggunaannya.
One-Time Payments
Jual paket kredit dan pengisian ulang melalui checkout.
Event Ingestion
Kirim data penggunaan bervolume tinggi ke Dodo Payments.
Webhooks
Tetap perbarui informasi tentang perubahan saldo kredit dan peringatan saldo rendah.
LLM Ingestion Blueprint
Pelacakan token otomatis untuk OpenAI dan provider LLM lainnya.