Langsung ke konten utama

Documentation Index

Fetch the complete documentation index at: https://docs.dodopayments.com/llms.txt

Use this file to discover all available pages before exploring further.

Checkout page
Checkout Dodo Payments dioptimalkan untuk konversi dan patuh secara global, dirancang untuk produk digital dan bisnis SaaS. Checkout ini mendukung berbagai mata uang, bahasa, pajak, diskon, add-on, dan alur kerja kepatuhan yang ramah bisnis.

Checkout Sessions API

Buat sesi checkout host secara programatis.

Preview Checkout

Hitung harga dan pajak sebelum membuat sesi.

Payment Methods

Metode pembayaran yang didukung dan opsi konfigurasi.

Mata Uang Adaptif

Mata Uang Adaptif memungkinkan pelanggan untuk membayar dalam mata uang lokal yang mereka pilih, meningkatkan kepercayaan dan tingkat konversi.

Cara Kerjanya

  1. Aktifkan: Aktifkan Adaptive Currency dari Settings → Business
  2. Pilih: Pelanggan dapat mengganti mata uang langsung di checkout
  3. Konversi: Harga dikonversi secara dinamis menggunakan nilai tukar FX real-time
  4. Tampilkan: Jumlah akhir yang harus dibayar ditampilkan secara transparan sebelum pembayaran
Currency selector on checkout

Adaptive Currency

Pelajari lebih lanjut tentang mata uang yang didukung, biaya konversi, dan penanganan pengembalian dana.

Checkout Multi-Bahasa

Dodo Payments mendukung beberapa bahasa di halaman checkout, memungkinkan pelanggan untuk menyelesaikan pembayaran dalam bahasa yang mereka nyaman.
Language selector on checkout

Sorotan Utama

  • Pemilih bahasa tersedia langsung di checkout
  • Teks UI, label, dan pesan sistem dilokalisasi
  • Meningkatkan aksesibilitas dan konversi internasional

Bahasa yang Didukung

Halaman checkout mendukung 21 bahasa:
LanguageCode
Arabicar
Catalanca
Chinesezh
Dutchnl
Englishen
Frenchfr
Germande
Hebrewhe
Indonesianid
Italianit
Japaneseja
Koreanko
Malayms
Polishpl
Portuguesept
Romanianro
Russianru
Spanishes
Swedishsv
Thaith
Turkishtr
Anda dapat memaksa bahasa tertentu di checkout dengan mengatur parameter force_language saat membuat sesi checkout. Lihat Checkout Sessions API untuk detailnya.

Automatic Tax Calculation

Pajak dihitung secara otomatis berdasarkan lokasi tagihan pelanggan, memastikan kepatuhan terhadap persyaratan GST, VAT, dan pajak penjualan tanpa konfigurasi manual.

How Tax Calculation Works

1

Location Detection

Aturan pajak diterapkan berdasarkan negara pelanggan (dan wilayah jika berlaku).
2

Dynamic Updates

Jumlah pajak diperbarui secara otomatis ketika:
  • Negara berubah
  • Alamat diperbarui
3

Transparent Display

Rincian pajak akhir ditampilkan dengan jelas sebelum pembayaran.
Perhitungan pajak sepenuhnya otomatis. Tidak diperlukan konfigurasi manual untuk barang digital standar dan produk SaaS.

Business Tax ID Support

Untuk bisnis terdaftar, checkout memungkinkan pelanggan memasukkan ID Pajak Bisnis mereka (misalnya nomor VAT/GST).

What Happens When a Tax ID Is Entered

  • Kelayakan pajak divalidasi secara waktu nyata
  • Pengecualian pajak yang berlaku atau aturan reverse-charge diterapkan
  • Jumlah pajak diperbarui secara instan di checkout
Business Tax ID entry on checkout
Ini sangat berguna untuk SaaS B2B dan layanan digital di mana pelanggan bisnis mungkin memenuhi syarat untuk pengecualian pajak.

Discount Codes

Pelanggan dapat menerapkan kode diskon atau promo yang Anda buat di dashboard langsung di halaman checkout.

Checkout Experience

  1. Pelanggan memasukkan kode diskon
  2. Diskon divalidasi secara instan
  3. Harga yang diperbarui dan penghematan ditampilkan dengan jelas
Discount code entry on checkout

API Integration

Terapkan kode diskon sebelumnya atau aktifkan bidang input diskon:
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  discount_code: 'WELCOME20', // Pre-apply a code
  feature_flags: {
    allow_discount_code: true // Show discount input field
  },
  return_url: 'https://yoursite.com/return'
});

Discount Codes

Pelajari cara membuat dan mengelola kode diskon.

Validate Discount by Code

Cari dan validasi diskon menggunakan nama kode.

Smart Address Collection

Checkout mendukung entri alamat fleksibel untuk penyelesaian lebih cepat.

Options Available

OptionDescription
Google Address AutofillPemilihan cepat dengan pelengkapan otomatis
Manual EntryKontrol penuh untuk alamat lengkap
Country SelectionMenggerakkan logika pajak dan kepatuhan
Pengumpulan alamat menyeimbangkan kecepatan, akurasi, dan cakupan global untuk memaksimalkan konversi sambil memastikan kepatuhan.

Pengumpulan Nomor Telepon

Kendalikan apakah kolom nomor telepon muncul saat pembayaran — dan apakah kolom tersebut wajib — menggunakan fitur flag sesi checkout.
FlagDefaultPerilaku
allow_phone_number_collectiontrueMenampilkan kolom nomor telepon pada formulir pembayaran
require_phone_numberfalseMembuat kolom nomor telepon menjadi wajib (validasi formulir memastikan nilai tidak kosong)
const session = await client.checkoutSessions.create({
  product_cart: [{ product_id: 'prod_abc', quantity: 1 }],
  feature_flags: {
    allow_phone_number_collection: true,
    require_phone_number: true
  },
  return_url: 'https://yoursite.com/return'
});
require_phone_number: true memerlukan allow_phone_number_collection: true. API menolak sesi di mana pengumpulan telepon dinonaktifkan sementara nomor telepon diperlukan.
Gunakan require_phone_number untuk B2B SaaS, industri teratur, atau alur apa pun di mana Anda memerlukan saluran kontak terverifikasi untuk dukungan, peninjauan penipuan, atau kepatuhan.

Kolom Kustom

Kumpulkan informasi tambahan dari pelanggan selama pembayaran dengan mendefinisikan kolom formulir kustom. Ini berguna untuk mengumpulkan data seperti nama perusahaan, ukuran tim, sumber referensi, atau informasi lain yang spesifik untuk bisnis.

Jenis Kolom yang Tersedia

JenisDeskripsi
textInput teks satu baris
numberInput numerik
emailAlamat email dengan validasi
urlURL dengan validasi
datePemilih tanggal
dropdownPilih dari opsi yang telah ditentukan
booleanSakelar Ya/Tidak

Contoh

const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  custom_fields: [
    {
      key: 'company_name',
      label: 'Company Name',
      field_type: 'text',
      required: true
    },
    {
      key: 'team_size',
      label: 'Team Size',
      field_type: 'dropdown',
      required: true,
      options: ['1-10', '11-50', '51-200', '200+']
    }
  ],
  return_url: 'https://yoursite.com/return'
});
Respon pelanggan secara otomatis disertakan dalam payload webhook (payment.succeeded, subscription.active) dan respon API melalui array custom_field_responses. Anda dapat mendefinisikan hingga 5 kolom kustom per sesi checkout.

Custom Fields Guide

Pelajari lebih lanjut tentang konfigurasi kolom kustom dan mengakses responsnya.

Kebijakan Privasi & Persetujuan Syarat

Untuk memastikan transparansi hukum dan kepatuhan:
  • Tautan Kebijakan Privasi dan Syarat Pembeli ditampilkan dengan jelas saat checkout
  • Pelanggan secara eksplisit mengakui ini sebelum menyelesaikan pembayaran
Ini membantu memenuhi persyaratan perlindungan konsumen dan privasi data global termasuk kepatuhan GDPR.

Collection Checkout

Koleksi Produk memungkinkan pengalaman checkout yang terintegrasi di mana pelanggan dapat melihat dan memilih dari beberapa produk terkait (misalnya, paket Starter, Pro, Enterprise) dalam satu checkout.

Cara Kerjanya

  1. Semua produk ditampilkan: Pelanggan melihat setiap produk aktif dalam koleksi
  2. Produk pertama dipilih sebelumnya: Produk pertama dalam koleksi dipilih secara otomatis
  3. Bandingkan opsi: Pelanggan dapat membandingkan harga dan fitur sebelum memilih
  4. Pemilihan tunggal: Setelah memilih produk, checkout dilanjutkan dengan alur pembayaran standar

Membuat Collection Checkout

const session = await client.checkoutSessions.create({
  product_collection_id: 'pdc_abc123',
  product_cart: [], // Required: pass an empty array for collection checkout
  return_url: 'https://yoursite.com/return'
});
Saat menggunakan product_collection_id, kirimkan array product_cart kosong. Kode diskon tidak dapat diterapkan sebelumnya saat pembuatan sesi.

Product Collections

Pelajari cara membuat dan mengelola koleksi produk untuk pengalaman checkout terintegrasi.

Konfigurasi Sesi Checkout

Kontrol perilaku checkout menggunakan Checkout Sessions API:
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  customer: {
    email: 'customer@example.com',
    name: 'Jane Doe'
  },
  billing_currency: 'EUR', // Set specific currency
  discount_code: 'PROMO10',
  feature_flags: {
    allow_discount_code: true
  },
  return_url: 'https://yoursite.com/return',
  cancel_url: 'https://yoursite.com/pricing', // Optional: where to redirect on cancel
  metadata: {
    order_ref: 'ORD-12345'
  }
});
Setelah pembayaran, pelanggan diarahkan ke return_url Anda dengan parameter query yang disematkan secara otomatis — termasuk payment_id atau subscription_id, status, email, dan license_key (jika berlaku). Lihat Panduan Sesi Checkout untuk daftar lengkapnya.

Checkout Sessions API

Referensi API lengkap untuk sesi checkout.

Checkout Integration Guide

Panduan langkah demi langkah untuk mengintegrasikan checkout.

Kustomisasi Tema Checkout

Sesuaikan tampilan halaman checkout agar sesuai dengan merek Anda menggunakan parameter customization.theme_config saat membuat sesi checkout melalui API. Konfigurasikan warna, font, radius batas, dan teks tombol untuk mode terang dan gelap.
Halaman checkout dengan tema kustom

Design & Theme Customization

Konfigurasikan tema secara visual dari dashboard dengan tema yang sudah dibangun, tipografi, warna, dan pratinjau langsung.
Bagian ini mencakup konfigurasi tema server-side API menggunakan customization.theme_config. Jika Anda menggunakan Checkout SDK (checkout overlay atau inline), lihat bagian kustomisasi tema di Overlay Checkout atau Inline Checkout yang menggunakan properti camelCase (misalnya, bgPrimary alih-alih bg_primary).

Opsi Konfigurasi Tema

PropertiDeskripsi
lightKonfigurasi warna untuk mode terang
darkKonfigurasi warna untuk mode gelap
font_primary_urlURL untuk font utama
font_secondary_urlURL untuk font sekunder
font_sizeUkuran font: xs, sm, md, lg, xl, 2xl
font_weightBerat font: normal, medium, bold, extraBold
radiusRadius batas untuk elemen UI (misalnya, 4px, 0.5rem, 8px)
pay_button_textTeks kustom untuk tombol pembayaran (misalnya, “Selesaikan Pembelian”, “Berlangganan Sekarang”)

Konfigurasi Warna (Mode Terang/Gelap)

Setiap mode (light dan dark) mendukung properti warna berikut:
PropertiDeskripsi
bg_primaryWarna latar utama
bg_secondaryWarna latar sekunder
text_primaryWarna teks utama
text_secondaryWarna teks sekunder
text_placeholderWarna placeholder teks
text_errorWarna teks kesalahan
text_successWarna teks sukses
border_primaryWarna batas utama
border_secondaryWarna batas sekunder
button_primaryWarna latar tombol utama
button_primary_hoverWarna hover tombol utama
button_secondaryWarna latar tombol sekunder
button_secondary_hoverWarna hover tombol sekunder
button_text_primaryWarna teks tombol utama
button_text_secondaryWarna teks tombol sekunder
input_focus_borderWarna batas fokus input
Semua bidang warna menerima format warna CSS standar:
  • Hex: #fff, #ffffff, #ffffffff
  • RGB/RGBA: rgb(255, 255, 255), rgba(255, 255, 255, 0.5)
  • HSL/HSLA: hsl(120, 100%, 50%), hsla(120, 100%, 50%, 0.5)
  • Warna bernama: red, blue, transparent

Contoh

const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  customization: {
    theme_config: {
      // Custom fonts
      font_primary_url: 'https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap',
      font_size: 'md',
      font_weight: 'medium',
      radius: '8px',
      pay_button_text: 'Complete Purchase',
      
      // Light mode colors
      light: {
        bg_primary: '#ffffff',
        bg_secondary: '#f5f5f5',
        text_primary: '#1a1a1a',
        text_secondary: '#666666',
        button_primary: '#0066ff',
        button_primary_hover: '#0052cc',
        button_text_primary: '#ffffff',
        border_primary: '#e0e0e0'
      },
      
      // Dark mode colors
      dark: {
        bg_primary: '#1a1a1a',
        bg_secondary: '#2d2d2d',
        text_primary: '#ffffff',
        text_secondary: '#a0a0a0',
        button_primary: '#3385ff',
        button_primary_hover: '#4d99ff',
        button_text_primary: '#ffffff',
        border_primary: '#404040'
      }
    }
  },
  return_url: 'https://yoursite.com/return'
});
Anda tidak perlu menentukan semua properti warna. Properti yang tidak ditentukan akan menggunakan nilai tema default.
Last modified on May 14, 2026