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

Praterapkan satu atau lebih kode diskon bertumpuk atau aktifkan bidang input diskon:
const session = await client.checkoutSessions.create({
  product_cart: [
    { product_id: 'prod_abc', quantity: 1 }
  ],
  discount_codes: ['WELCOME20'], // Pre-apply one or more codes (max 20, applied in order)
  feature_flags: {
    allow_discount_code: true // Show discount input field
  },
  return_url: 'https://yoursite.com/return'
});
discount_codes menerima array hingga 20 kode yang ditumpuk berurutan. Bidang tunggal discount_code tidak lagi direkomendasikan tetapi masih berfungsi — integrasi yang ada tidak perlu segera diubah. Beralih ke discount_codes bila mudah digunakan untuk penumpukan dan bentuk respons yang lebih kaya.

Discount Codes

Pelajari cara membuat dan mengelola kode diskon.

Validate Discount by Code

Cari dan validasi diskon menggunakan nama kode.

Pengumpulan Alamat Cerdas

Checkout mendukung entri alamat yang fleksibel untuk penyelesaian yang lebih cepat.

Opsi yang Tersedia

OpsiDeskripsi
Google Address AutofillPemilihan cepat dengan autolengkapan
Entri ManualKontrol penuh untuk alamat lengkap
Pemilihan NegaraMendorong logika pajak dan kepatuhan
Pengumpulan alamat menyeimbangkan kecepatan, akurasi, dan jangkauan global untuk memaksimalkan konversi sambil memastikan kepatuhan.

Pengumpulan Nomor Telepon

Kontrol apakah bidang nomor telepon muncul di checkout — dan apakah itu diperlukan — menggunakan fitur bendera sesi checkout.
BenderaDefaultPerilaku
allow_phone_number_collectiontrueMenampilkan bidang nomor telepon di formulir checkout
require_phone_numberfalseMembuat bidang nomor telepon wajib diisi (validasi formulir memaksakan 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 yang diatur, atau alur mana pun di mana Anda memerlukan saluran kontak terverifikasi untuk dukungan, ulasan kecurangan, atau kepatuhan.

Bidang Kustom

Kumpulkan informasi tambahan dari pelanggan saat checkout dengan mendefinisikan bidang formulir kustom. Ini berguna untuk mengumpulkan data seperti nama perusahaan, ukuran tim, sumber referensi, atau informasi bisnis spesifik lainnya.

Jenis Bidang yang Tersedia

JenisDeskripsi
textInput teks satu baris
numberInput numerik
emailAlamat email dengan validasi
urlURL dengan validasi
datePemilih tanggal
dropdownPilih dari opsi yang ditentukan sebelumnya
booleanToggle 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'
});
Tanggapan pelanggan secara otomatis termasuk dalam payload webhook (payment.succeeded, subscription.active) dan tanggapan API melalui array custom_field_responses. Anda dapat mendefinisikan hingga 5 bidang kustom per sesi checkout.

Custom Fields Guide

Pelajari lebih lanjut tentang konfigurasi bidang kustom dan mengakses tanggapan.

Kebijakan Privasi & Penerimaan Syarat

Untuk memastikan transparansi hukum dan kepatuhan:
Ini membantu memenuhi persyaratan perlindungan konsumen global dan privasi data termasuk kepatuhan GDPR.

Checkout Koleksi

Koleksi Produk memungkinkan pengalaman checkout yang terpadu di mana pelanggan dapat melihat dan memilih dari berbagai produk terkait (mis., 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 melanjutkan dengan alur pembayaran standar

Membuat Checkout Koleksi

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, berikan 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 yang bersatu.

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_codes: ['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 dialihkan ke return_url Anda dengan parameter query ditambahkan secara otomatis — termasuk payment_id atau subscription_id, status, email, dan license_key (jika berlaku). Lihat panduan Sesi Checkout untuk daftar lengkap.

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 bertema kustom

Design & Theme Customization

Konfigurasikan tema secara visual dari dasbor dengan tema yang sudah dibuat, tipografi, warna, dan pratinjau langsung.
Bagian ini mencakup konfigurasi tema API sisi server 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 bukan 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 antarmuka (misalnya, 4px, 0.5rem, 8px)
pay_button_textTeks kustom untuk tombol bayar (misalnya, “Selesaikan Pembelian”, “Langganan Sekarang”)

Konfigurasi Warna (Mode Terang/Gelap)

Setiap mode (light dan dark) mendukung properti warna berikut:
PropertiDeskripsi
bg_primaryWarna utama latar belakang
bg_secondaryWarna sekunder latar belakang
text_primaryWarna utama teks
text_secondaryWarna sekunder teks
text_placeholderWarna placeholder teks
text_errorWarna kesalahan teks
text_successWarna keberhasilan teks
border_primaryWarna utama batas
border_secondaryWarna sekunder batas
button_primaryWarna latar belakang tombol utama
button_primary_hoverWarna hover tombol utama
button_secondaryWarna latar belakang 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)
  • Nama warna: 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 22, 2026