Skip to main content
OpenAI menggabungkan kredit fiat prabayar untuk penggunaan API dengan subscription tarif tetap untuk produk konsumennya. Sisi prabayar memberikan OpenAI uang tunai di muka, dan developer dapat meningkatkan penggunaan tanpa percakapan dengan tim sales. Banyak perusahaan AI meniru model ini.

Why OpenAI’s Model is the Standard

Billing SaaS tradisional tidak menangani biaya variabel penggunaan AI dengan baik. Model OpenAI menyelesaikan tiga masalah sekaligus:
  1. 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.
  2. 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.
  3. 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.
  1. 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.
  2. 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.
  3. Spend-based rate tiers: Seiring total pengeluaran bertambah, akun memperoleh rate limit API yang lebih tinggi. Akses meningkat berdasarkan riwayat penagihan.
Harga token di bawah ini adalah tarif yang dipublikasikan saat artikel ini ditulis:

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
Kredit fiat menggunakan dua angka desimal, sehingga satu kredit bernilai satu dolar dan saldo dapat melacak sen. Dodo Payments tidak memblokir penggunaan saat saldo mencapai nol. Agar panggilan API gagal pada $0 seperti di OpenAI, periksa saldo di aplikasi Anda sebelum setiap request (lihat Handle Balance Depletion di bawah).
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 properti tokens.
  • llm.output_tokens: Agregasi sum pada properti tokens.
Pada produk berbasis penggunaan Anda, aktifkan Bill usage in Credits pada kedua meter dan pilih kredit fiat. Kemudian tetapkan Meter units per credit untuk masing-masing meter.

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.
Di dashboard Dodo Payments, tetapkan Meter units per credit menjadi 400.000 untuk input dan 100.000 untuk output. Dodo Payments membagi total token dari setiap meter dengan nilai ini untuk mendapatkan jumlah kredit yang harus dikurangkan.
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 webhook credit.balance_low diterima.
OpenAI menyediakan pengisian ulang otomatis, yang membeli lebih banyak kredit saat saldo turun di bawah ambang batas yang ditetapkan pengguna.
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.
Blueprint membaca 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.
LLM Blueprint mendukung OpenAI, Anthropic, Groq, Google Gemini, OpenRouter, dan Vercel AI SDK. Lihat dokumentasi blueprint lengkap untuk contoh khusus provider dan konfigurasi lanjutan.

Menerapkan Spend-Based Rate Tiers

Rate tier OpenAI mengelola kapasitas berdasarkan kepercayaan. Untuk membangunnya, lacak total pengeluaran setiap pelanggan selama masa penggunaan.
  1. Lacak Total Pengeluaran: Dengarkan webhook payment.succeeded dan tambahkan jumlah pembayaran ke field total_spend untuk pelanggan tersebut di database Anda. Jumlah menggunakan unit mata uang terkecil, sehingga 5000 berarti $50.00.
  2. 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
  3. 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:
  1. Meter Terpisah: Buat satu set meter per model, misalnya gpt-4o.input_tokens dan gpt-4o-mini.input_tokens, masing-masing dengan Meter units per credit sendiri.
  2. Event Berbobot: Gunakan satu meter dan kalikan tokens dengan 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.
OpenAI menerbitkan tarif terpisah untuk setiap model, dan meter terpisah paling langsung mencerminkan struktur tersebut.

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.
Terakhir diubah pada 26 September 2026