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.

Quick Start Guide

Get your first checkout session running in under 5 minutes

API Reference & Live Testing

Explore the full API documentation and interactively test Checkout Session requests and responses.

Preview Checkout

Calculate pricing, taxes, and totals before creating a session.
Session Validity: Checkout sessions are valid for 24 hours by default. If you pass confirm=true in your request, the session will only be valid for 15 minutes.

Prerequisites

1

Dodo Payments Account

You’ll need an active Dodo Payments merchant account with API access.
2

API Credentials

Generate your API credentials from the Dodo Payments dashboard:
3

Products Setup

Create your products in the Dodo Payments dashboard before implementing checkout sessions.

Creating Your First Checkout Session

import DodoPayments from 'dodopayments';

// Initialize the Dodo Payments client
const client = new DodoPayments({
  bearerToken: process.env.DODO_PAYMENTS_API_KEY,
  environment: 'test_mode', // defaults to 'live_mode'
});

async function createCheckoutSession() {
  try {
    const session = await client.checkoutSessions.create({
      // Products to sell - use IDs from your Dodo Payments dashboard
      product_cart: [
        {
          product_id: 'prod_123', // Replace with your actual product ID
          quantity: 1
        }
      ],
      
      // Pre-fill customer information to reduce friction
      customer: {
        email: 'customer@example.com',
        name: 'John Doe',
        phone_number: '+1234567890'
      },
      
      // Billing address for tax calculation and compliance
      billing_address: {
        street: '123 Main St',
        city: 'San Francisco',
        state: 'CA',
        country: 'US', // Required: ISO 3166-1 alpha-2 country code
        zipcode: '94102'
      },
      
      // Where to redirect after successful payment
      return_url: 'https://yoursite.com/checkout/success',
      
      // Custom data for your internal tracking
      metadata: {
        order_id: 'order_123',
        source: 'web_app'
      }
    });

    // Redirect your customer to this URL to complete payment
    console.log('Checkout URL:', session.checkout_url);
    console.log('Session ID:', session.session_id);
    
    return session;
    
  } catch (error) {
    console.error('Failed to create checkout session:', error);
    throw error;
  }
}

// Example usage in an Express.js route
app.post('/create-checkout', async (req, res) => {
  try {
    const session = await createCheckoutSession();
    res.json({ checkout_url: session.checkout_url });
  } catch (error) {
    res.status(500).json({ error: 'Failed to create checkout session' });
  }
});

API Response

All methods above return the same response structure:
{
  "session_id": "cks_Gi6KGJ2zFJo9rq9Ukifwa",
  "checkout_url": "https://test.checkout.dodopayments.com/session/cks_Gi6KGJ2zFJo9rq9Ukifwa"
}
1

Get the checkout URL

Extract the checkout_url from the API response.
2

Redirect your customer

Direct your customer to the checkout URL to complete their purchase.
// Redirect immediately
window.location.href = session.checkout_url;

// Or open in new window
window.open(session.checkout_url, '_blank');
Alternative Integration Options: Instead of redirecting, you can embed the checkout directly in your page using Overlay Checkout (modal overlay) or Inline Checkout (fully embedded). Both options use the same checkout session URL.
3

Handle the return

After payment, customers are redirected to your return_url with query parameters including payment/subscription ID, status, customer email, and any license keys. See the return_url parameter docs for the full list.

Request Body

Required Fields

Essential fields needed for every checkout session

Optional Fields

Additional configuration to customize your checkout experience

Required Fields

product_cart
array
wajib
Array of products to include in the checkout session. Each product must have a valid product_id from your Dodo Payments dashboard.
Mixed Checkout: You can combine one-time payment products and subscription products in the same checkout session. This enables powerful use cases like setup fees with subscriptions, hardware bundles with SaaS, and more.
Temukan ID Produk Anda: Anda dapat menemukan ID produk di dasbor Pembayaran Dodo Anda di bawah Produk → Lihat Detail, atau dengan menggunakan API Daftar Produk.

Bidang Opsional

Konfigurasikan bidang ini untuk menyesuaikan pengalaman checkout dan menambahkan logika bisnis ke alur pembayaran Anda.
customer
object
Informasi pelanggan. Anda dapat melampirkan pelanggan yang sudah ada menggunakan ID mereka atau membuat catatan pelanggan baru selama checkout.
Lampirkan pelanggan yang sudah ada ke sesi checkout menggunakan ID mereka.
billing_address
object
Informasi alamat penagihan untuk kalkulasi pajak yang akurat, pencegahan penipuan, dan kepatuhan regulasi.
Ketika confirm disetel ke true, semua bidang alamat penagihan menjadi wajib untuk pembuatan sesi yang berhasil.
allowed_payment_method_types
array
Kontrol metode pembayaran mana yang tersedia untuk pelanggan selama checkout. Ini membantu memaksimalkan pasar atau persyaratan bisnis tertentu.Opsi yang Tersedia: credit, debit, upi_collect, apple_pay, google_pay, amazon_pay, klarna, affirm, afterpay_clearpay, cashapp, multibanco, bancontact_card, eps, ideal, przelewy24, paypal, sunbit
Kritis: Selalu sertakan credit dan debit sebagai opsi cadangan untuk mencegah kegagalan checkout saat metode pembayaran yang diinginkan tidak tersedia.
Contoh:
["apple_pay", "google_pay", "credit", "debit"]
billing_currency
string
Ganti pilihan mata uang default dengan mata uang penagihan tetap. Gunakan kode mata uang ISO 4217.Mata uang yang Didukung: USD, EUR, GBP, CAD, AUD, INR, dan lainnyaContoh: "USD" untuk Dolar AS, "EUR" untuk Euro
Bidang ini hanya efektif saat harga adaptif diaktifkan. Jika harga adaptif dinonaktifkan, mata uang default produk akan digunakan.
show_saved_payment_methods
boolean
default:"false"
Tampilkan metode pembayaran yang sudah disimpan sebelumnya untuk pelanggan yang kembali, meningkatkan kecepatan checkout dan pengalaman pengguna.
return_url
string
URL untuk mengarahkan pelanggan setelah menyelesaikan pembayaran. Aplikasi Dodo Payments menambahkan parameter kueri berikut ke URL Anda pada pengalihan:
ParameterTipeKondisi
payment_idstringSelalu ada untuk pembayaran satu kali
subscription_idstringSelalu ada untuk pembayaran berlangganan
statusstringSelalu ada
license_keystringAda jika produk memiliki kunci lisensi diaktifkan. Dipisahkan dengan koma jika ada beberapa kunci
emailstringAda jika pelanggan memiliki email dalam catatan
Contoh URL redirect:
# One-time payment with license key
https://yoursite.com/return?payment_id=pay_xxx&status=succeeded&license_key=LK-001&email=customer%40example.com

# Subscription payment with multiple license keys
https://yoursite.com/return?subscription_id=sub_xxx&status=active&license_key=LK-001,LK-002&email=customer%40example.com

# Payment without license keys
https://yoursite.com/return?payment_id=pay_xxx&status=succeeded&email=customer%40example.com
Gunakan parameter kueri license_key dan email untuk menampilkan kunci lisensi atau mengirim konfirmasi segera pada halaman kembali Anda, tanpa perlu panggilan API tambahan.
cancel_url
string
URL untuk mengarahkan pelanggan ketika mereka mengklik tombol kembali atau membatalkan sesi checkout. Jika tidak disediakan, tombol kembali tidak akan ditampilkan.
Setel cancel_url untuk memberikan cara yang jelas bagi pelanggan untuk kembali ke situs Anda tanpa menyelesaikan pembelian. Ini meningkatkan pengalaman checkout dan mengurangi gesekan.
confirm
boolean
default:"false"
Jika benar, menyelesaikan semua detail sesi segera. API akan menghasilkan kesalahan jika data yang diperlukan hilang.
discount_codes
array
Terapkan satu atau lebih kode diskon bertumpuk ke sesi checkout. Kode diterapkan dalam urutan array (kode pertama mengurangi harga dasar, kode kedua mengurangi harga yang sudah diskon, dan seterusnya), maksimal 20 kode per sesi.
discount_codes: ['WELCOME10', 'BLACKFRIDAY20']
Bidang singular discount_code di bawah ini ditinggalkan tetapi masih sepenuhnya didukung — integrasi yang ada tetap berfungsi tanpa perubahan. Ini tidak dapat digabungkan dengan discount_codes dalam permintaan yang sama. Beralihlah ke discount_codes bila nyaman untuk memanfaatkan pengurutan.
discount_code
string
usang
Ditinggalkan — prefer discount_codes untuk integrasi baru. Bidang ini masih berfungsi untuk kompatibilitas mundur, tetapi tidak dapat digabungkan dengan discount_codes dalam permintaan yang sama.
metadata
object
Pasangan kunci-nilai kustom untuk menyimpan informasi tambahan tentang sesi.
force_3ds
boolean
Menggantikan perilaku default 3DS pedagang untuk sesi ini.
minimal_address
boolean
default:"false"
Aktifkan mode pengumpulan alamat minimal. Saat diaktifkan, checkout hanya mengumpulkan:
  • Negara: Selalu diperlukan untuk penentuan pajak
  • Kode pos/Kode pos: Hanya di wilayah di mana ini diperlukan untuk penghitungan pajak penjualan, PPN, atau GST
Ini secara signifikan mengurangi gesekan checkout dengan menghilangkan bidang formulir yang tidak diperlukan.
Aktifkan alamat minimal untuk penyelesaian checkout yang lebih cepat. Pengumpulan alamat lengkap tetap tersedia untuk bisnis yang memerlukan detail penagihan lengkap.
customization
object
Sesuaikan tampilan dan perilaku antarmuka checkout.
feature_flags
object
Konfigurasikan fitur dan perilaku spesifik untuk sesi checkout.
custom_fields
array
Kumpulkan informasi tambahan dari pelanggan selama checkout dengan bidang formulir kustom. Anda dapat mendefinisikan hingga 5 bidang kustom per sesi checkout. Tanggapan pelanggan disertakan dalam payload webhook dan tersedia melalui API.
Tanggapan pelanggan terhadap bidang kustom disertakan dalam:
  • Webhook: payment.succeeded, subscription.active, dan payload acara terkait lainnya mengandung array custom_field_responses
  • Respon API: Objek pembayaran dan langganan menyertakan custom_field_responses
subscription_data
object
Konfigurasi tambahan untuk sesi checkout yang mengandung produk berlangganan.

Contoh Penggunaan

Berikut adalah 10 contoh komprehensif yang menunjukkan berbagai konfigurasi sesi checkout untuk berbagai skenario bisnis:

1. Checkout Produk Tunggal Sederhana

const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_ebook_guide',
      quantity: 1
    }
  ],
  customer: {
    email: 'customer@example.com',
    name: 'John Doe'
  },
  return_url: 'https://yoursite.com/success'
});

2. Keranjang Multi-Produk

const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_laptop',
      quantity: 1
    },
    {
      product_id: 'prod_mouse',
      quantity: 2
    },
    {
      product_id: 'prod_warranty',
      quantity: 1
    }
  ],
  customer: {
    email: 'customer@example.com',
    name: 'John Doe',
    phone_number: '+1234567890'
  },
  billing_address: {
    street: '123 Tech Street',
    city: 'San Francisco',
    state: 'CA',
    country: 'US',
    zipcode: '94102'
  },
  return_url: 'https://electronics-store.com/order-confirmation'
});

3. Langganan dengan Periode Uji Coba

const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_monthly_plan',
      quantity: 1
    }
  ],
  subscription_data: {
    trial_period_days: 14
  },
  customer: {
    email: 'user@startup.com',
    name: 'Jane Smith'
  },
  return_url: 'https://saas-app.com/onboarding',
  metadata: {
    plan_type: 'professional',
    referral_source: 'google_ads'
  }
});

4. Checkout yang Dikonfirmasi Sebelumnya

Saat confirm diatur ke true, pelanggan akan langsung diarahkan ke halaman checkout, melewati langkah konfirmasi apapun.
const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_premium_course',
      quantity: 1
    }
  ],
  customer: {
    email: 'student@university.edu',
    name: 'Alex Johnson',
    phone_number: '+1555123456'
  },
  billing_address: {
    street: '456 University Ave',
    city: 'Boston',
    state: 'MA',
    country: 'US',
    zipcode: '02134'
  },
  confirm: true,
  return_url: 'https://learning-platform.com/course-access',
  metadata: {
    course_category: 'programming',
    enrollment_date: '2024-01-15'
  }
});

5. Checkout dengan Pilihan Mata Uang yang Diubah

billing_currency penggantian hanya berfungsi ketika mata uang adaptif diaktifkan dalam pengaturan akun Anda. Jika mata uang adaptif dinonaktifkan, parameter ini tidak akan berpengaruh.
const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_consulting_service',
      quantity: 1
    }
  ],
  customer: {
    email: 'client@company.co.uk',
    name: 'Oliver Williams'
  },
  billing_address: {
    street: '789 Business Park',
    city: 'London',
    state: 'England',
    country: 'GB',
    zipcode: 'SW1A 1AA'
  },
  billing_currency: 'GBP',
  feature_flags: {
    allow_currency_selection: true,
    allow_tax_id: true
  },
  return_url: 'https://consulting-firm.com/service-confirmation'
});

6. Metode Pembayaran Tersimpan untuk Pelanggan yang Kembali

const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_monthly_subscription',
      quantity: 1
    }
  ],
  customer: {
    email: 'returning.customer@example.com',
    name: 'Robert Johnson',
    phone_number: '+1555987654'
  },
  show_saved_payment_methods: true,
  feature_flags: {
    allow_phone_number_collection: true,
    always_create_new_customer: false
  },
  return_url: 'https://subscription-service.com/welcome-back',
  metadata: {
    customer_tier: 'premium',
    account_age: 'returning'
  }
});

7. Checkout B2B dengan Pengumpulan ID Pajak

const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_enterprise_license',
      quantity: 5
    }
  ],
  customer: {
    email: 'procurement@enterprise.com',
    name: 'Sarah Davis',
    phone_number: '+1800555000'
  },
  billing_address: {
    street: '1000 Corporate Blvd',
    city: 'New York',
    state: 'NY',
    country: 'US',
    zipcode: '10001'
  },
  feature_flags: {
    allow_tax_id: true,
    allow_phone_number_collection: true,
    always_create_new_customer: false
  },
  return_url: 'https://enterprise-software.com/license-delivery',
  metadata: {
    customer_type: 'enterprise',
    contract_id: 'ENT-2024-001',
    sales_rep: 'john.sales@company.com'
  }
});

8. Checkout Tema Gelap dengan Kode Diskon Bertumpuk

const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_gaming_chair',
      quantity: 1
    }
  ],
  discount_codes: ['BLACKFRIDAY2024'],
  customization: {
    theme: 'dark',
    show_order_details: true,
    show_on_demand_tag: false
  },
  feature_flags: {
    allow_discount_code: true
  },
  customer: {
    email: 'gamer@example.com',
    name: 'Mike Chen'
  },
  return_url: 'https://gaming-store.com/order-complete'
});

9. Metode Pembayaran Regional (UPI untuk India)

Untuk informasi detail tentang konfigurasi dan pengujian UPI, lihat halaman Metode Pembayaran India.
const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_online_course_hindi',
      quantity: 1
    }
  ],
  allowed_payment_method_types: [
    'upi_collect',
    'credit',
    'debit'
  ],
  customer: {
    email: 'student@example.in',
    name: 'Priya Sharma',
    phone_number: '+919876543210'
  },
  billing_address: {
    street: 'MG Road',
    city: 'Bangalore',
    state: 'Karnataka',
    country: 'IN',
    zipcode: '560001'
  },
  billing_currency: 'INR',
  return_url: 'https://education-platform.in/course-access',
  metadata: {
    region: 'south_india',
    language: 'hindi'
  }
});

10. Checkout BNPL (Buy Now Pay Later)

Untuk informasi detail tentang konfigurasi dan pengujian BNPL, lihat halaman Buy Now Pay Later (BNPL).
const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_luxury_watch',
      quantity: 1
    }
  ],
  allowed_payment_method_types: [
    'klarna',
    'afterpay_clearpay',
    'credit',
    'debit'
  ],
  customer: {
    email: 'fashion.lover@example.com',
    name: 'Emma Thompson',
    phone_number: '+1234567890'
  },
  billing_address: {
    street: '555 Fashion Ave',
    city: 'Los Angeles',
    state: 'CA',
    country: 'US',
    zipcode: '90210'
  },
  feature_flags: {
    allow_phone_number_collection: true
  },
  return_url: 'https://luxury-store.com/purchase-confirmation',
  metadata: {
    product_category: 'luxury',
    price_range: 'high_value'
  }
});

11. Menggunakan Metode Pembayaran yang Ada untuk Checkout Instan

Gunakan metode pembayaran yang tersimpan pelanggan untuk membuat sesi checkout yang diproses segera, melewati pengumpulan metode pembayaran:
const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_premium_plan',
      quantity: 1
    }
  ],
  customer: {
    customer_id: 'cus_123'  // Required when using payment_method_id
  },
  payment_method_id: 'pm_abc123',  // Use customer's saved payment method
  confirm: true,  // Required when using payment_method_id
  return_url: 'https://yourapp.com/success'
});
Saat menggunakan payment_method_id, confirm harus diatur ke true dan customer_id yang sudah ada harus diberikan. Metode pembayaran akan divalidasi untuk kelayakan dengan mata uang pembayaran.
Metode pembayaran harus dimiliki oleh pelanggan dan kompatibel dengan mata uang pembayaran. Ini memungkinkan pembelian satu klik untuk pelanggan yang kembali.

12. Tautan Pendek untuk URL Pembayaran yang Lebih Bersih

Hasilkan tautan pembayaran yang dipersingkat, dapat dibagikan dengan slug kustom:
const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_monthly_subscription',
      quantity: 1
    }
  ],
  short_link: true,  // Generate a shortened payment link
  return_url: 'https://yourapp.com/success',
  customer: {
    email: 'customer@example.com',
    name: 'John Doe'
  }
});

// The checkout_url will be a shortened, cleaner link
console.log(session.checkout_url);  // e.g., https://checkout.dodopayments.com/buy/abc123
Tautan pendek sempurna untuk SMS, email, atau berbagi media sosial. Mereka lebih mudah diingat dan membangun lebih banyak kepercayaan pelanggan daripada URL panjang.

13. Lewati Halaman Sukses Pembayaran dengan Redirect Langsung

Arahkan pelanggan segera setelah penyelesaian pembayaran, melewati halaman sukses default:
const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_digital_product',
      quantity: 1
    }
  ],
  feature_flags: {
    redirect_immediately: true  // Skip success page, redirect immediately
  },
  return_url: 'https://yourapp.com/success',
  customer: {
    email: 'customer@example.com',
    name: 'Jane Smith'
  }
});
Gunakan redirect_immediately: true saat Anda memiliki halaman sukses kustom yang menyediakan pengalaman pengguna yang lebih baik daripada halaman sukses pembayaran default. Ini sangat berguna untuk aplikasi seluler dan alur checkout tersemat.
Saat redirect_immediately diaktifkan, pelanggan diarahkan ke return_url Anda segera setelah penyelesaian pembayaran, melewati halaman sukses default sepenuhnya.

14. Memaksa Bahasa

Paksa checkout untuk ditampilkan dalam bahasa tertentu, menggantikan deteksi bahasa browser pelanggan:
const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_subscription',
      quantity: 1
    }
  ],
  customization: {
    force_language: 'ja'  // Force Japanese language
  },
  customer: {
    email: 'customer@example.jp',
    name: 'Tanaka Yuki'
  },
  return_url: 'https://yourapp.com/success'
});
Gunakan force_language ketika Anda mengetahui bahasa pilihan pelanggan Anda (misalnya, dari pengaturan akun mereka) atau saat menargetkan pasar regional tertentu.
Bahasa yang didukung: Arab (ar), Katalan (ca), Cina (zh), Belanda (nl), Inggris (en), Prancis (fr), Jerman (de), Ibrani (he), Indonesia (id), Italia (it), Jepang (ja), Korea (ko), Melayu (ms), Polandia (pl), Portugis (pt), Rumania (ro), Rusia (ru), Spanyol (es), Swedia (sv), Thailand (th), Turki (tr)

15. Mengumpulkan Bidang Kustom

Kumpulkan informasi tambahan dari pelanggan selama checkout menggunakan bidang kustom:
const session = await client.checkoutSessions.create({
  product_cart: [
    {
      product_id: 'prod_saas_plan',
      quantity: 1
    }
  ],
  custom_fields: [
    {
      key: 'company_name',
      label: 'Company Name',
      field_type: 'text',
      required: true,
      placeholder: 'Acme Inc.'
    },
    {
      key: 'team_size',
      label: 'Team Size',
      field_type: 'dropdown',
      required: true,
      options: ['1-10', '11-50', '51-200', '201-500', '500+']
    },
    {
      key: 'referral_source',
      label: 'How did you hear about us?',
      field_type: 'dropdown',
      required: false,
      options: ['Google', 'Twitter', 'Friend referral', 'Blog post', 'Other']
    },
    {
      key: 'website',
      label: 'Company Website',
      field_type: 'url',
      required: false,
      placeholder: 'https://example.com'
    }
  ],
  customer: {
    email: 'buyer@company.com',
    name: 'Jane Doe'
  },
  return_url: 'https://yourapp.com/success'
});
Respon bidang kustom secara otomatis disertakan dalam payload webhook (payment.succeeded, subscription.active, dll.) dan dapat diambil melalui API. Gunakan untuk memperkaya CRM Anda, memicu alur onboarding, atau menyesuaikan pengalaman pelanggan.
Jenis bidang yang tersedia: text, number, email, url, date, dropdown, boolean

Pratinjau Sesi Checkout

Sebelum membuat sesi checkout, Anda dapat mempratinjau rincian harga termasuk pajak, diskon, dan total. Ini berguna untuk menampilkan harga yang akurat kepada pelanggan sebelum mereka melanjutkan ke checkout.
const preview = await client.checkoutSessions.preview({
  product_cart: [
    { product_id: 'prod_123', quantity: 1 }
  ],
  billing_address: {
    country: 'US',
    state: 'CA',
    zipcode: '94102'
  },
  discount_codes: ['SAVE20']
});

console.log('Subtotal:', preview.subtotal);
console.log('Tax:', preview.tax);
console.log('Discount:', preview.discount);
console.log('Total:', preview.total);

Preview API Reference

Lihat dokumentasi lengkap endpoint pratinjau.

Beralih dari Tautan Dinamis ke Sesi Checkout

Perbedaan Utama

Sebelumnya, saat membuat tautan pembayaran dengan Tautan Dinamis, Anda diharuskan memberikan alamat penagihan lengkap pelanggan. Dengan Sesi Checkout, ini tidak lagi diperlukan. Anda cukup mengirimkan informasi apa pun yang Anda miliki, dan kami akan menangani sisanya. Misalnya:
  • Jika Anda hanya mengetahui negara penagihan pelanggan, cukup berikan itu.
  • Alur checkout akan secara otomatis mengumpulkan detail yang hilang sebelum memindahkan pelanggan ke halaman pembayaran.
  • Di sisi lain, jika Anda sudah memiliki semua informasi yang diperlukan dan ingin langsung ke halaman pembayaran, Anda dapat mengirimkan set data lengkap dan menyertakan confirm=true dalam badan permintaan Anda.

Proses Migrasi

Migrasi dari Tautan Dinamis ke Sesi Checkout cukup mudah:
1

Update your integration

Perbarui integrasi Anda untuk menggunakan metode API atau SDK baru.
2

Adjust request payload

Sesuaikan payload permintaan sesuai dengan format Sesi Checkout.
3

That's it!

Ya. Tidak diperlukan penanganan tambahan atau langkah migrasi khusus di pihak Anda.

Referensi API Terkait

Create Checkout Session

Referensi API lengkap untuk membuat sesi checkout dengan semua parameter dan opsi yang tersedia

Preview Checkout Session

Referensi API untuk mempratinjau harga, pajak, dan total sebelum membuat sesi
Last modified on May 26, 2026