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
- Node.js SDK
- Python SDK
- REST API
API Response
All methods above return the same response structure:session_id만 항상 포함됩니다. 두 가지 경우에는 추가 필드가 반환되거나 일부 필드가 반환되지 않습니다:
payment_method_id가 제공된 경우 — 결제가 즉시 처리되며checkout_url는null입니다. 대신 반환된payment_id를 사용하세요.confirm: true가 세션 생성 시점에 결제를 생성한 경우 — 응답에 Dodo Payments checkout SDK와 함께 사용할payment_id,client_secret및publishable_key도 포함됩니다.
생성된
checkout_url는 일회성으로만 사용할 수 있으며 24시간 이내에 만료됩니다. 여러 고객 또는 결제 시도에 걸쳐 이를 캐시하거나 재사용하지 마세요. 새로운 링크가 필요할 때마다 새 checkout session을 생성하세요.1
Get the checkout URL
API 응답에서
checkout_url를 추출합니다.2
Redirect your customer
고객이 구매를 완료할 수 있도록 checkout URL로 안내하세요.
3
Handle the return
결제 후 고객은 결제/구독 ID, 상태, 고객 이메일 및 라이선스 키를 포함한 query parameters와 함께
return_url로 리디렉션됩니다. 전체 목록은 return_url parameter docs를 참조하세요.Request Body
Required Fields
모든 checkout session에 필요한 필수 필드
Optional Fields
checkout 환경을 맞춤 설정하기 위한 추가 구성
Required Fields
array
필수
checkout session에 포함할 제품 배열입니다. 각 제품에는 Dodo Payments dashboard의 유효한
product_id가 있어야 합니다.Optional Fields
checkout 환경을 맞춤 설정하고 결제 흐름에 비즈니스 로직을 추가하려면 이 필드를 구성하세요.Customer Information
Customer Information
Payment Configuration
Payment Configuration
array
checkout 중 고객에게 제공할 결제 수단을 제어합니다. 특정 시장 또는 비즈니스 요구사항에 맞게 최적화하는 데 도움이 됩니다.Common options:
credit, debit, upi_collect, apple_pay, google_pay, amazon_pay, klarna, affirm, afterpay_clearpay, cashapp, multibanco, bancontact_card, eps, ideal, przelewy24, paypal. 전체 목록은 아니므로 모든 허용 값을 확인하려면 Create Checkout Session API reference를 참조하세요.Example:string
기본 통화 선택을 고정된 청구 통화로 재정의합니다. ISO 4217 currency codes를 사용합니다.Supported Currencies:
USD, EUR, GBP, CAD, AUD, INR 등Example: 미국 달러는 "USD", 유로는 "EUR"이 필드는 adaptive pricing이 활성화된 경우에만 적용됩니다. adaptive pricing이 비활성화되면 제품의 기본 통화가 사용됩니다.
boolean
기본값:"false"
재방문 고객에게 이전에 저장한 결제 수단을 표시하여 checkout 속도와 사용자 경험을 개선합니다.
Session Management
Session Management
string
결제 완료 후 고객을 리디렉션할 URL입니다. 리디렉션 시 Dodo Payments는 다음 query parameters를 URL에 추가합니다:
Example redirect URLs:
string
고객이 뒤로 가기 버튼을 클릭하거나 checkout session을 취소했을 때 리디렉션할 URL입니다. 제공하지 않으면 뒤로 가기 버튼이 표시되지 않습니다.
boolean
기본값:"false"
true인 경우 모든 세션 세부정보를 즉시 확정합니다. 필수 데이터가 누락되면 API가 오류를 발생시킵니다.
array
checkout session에 하나 이상의 누적 discount codes를 적용합니다. 코드는 배열 순서대로 적용되며(첫 번째 코드는 기본 가격을 낮추고, 두 번째 코드는 이미 할인된 가격을 낮추는 방식), 세션당 최대 20개까지 사용할 수 있습니다.
아래의 단일
discount_code 필드는 deprecated 상태이지만 여전히 완전히 지원됩니다. 기존 통합은 변경 없이 계속 작동합니다. 동일한 요청에서 discount_codes와 함께 사용할 수 없습니다. 누적 할인 기능을 활용하려면 편리한 시점에 discount_codes로 마이그레이션하세요.string
지원 중단
Deprecated — 새로운 통합에서는
discount_codes를 사용하세요. 이 필드는 backward compatibility를 위해 계속 작동하지만 동일한 요청에서 discount_codes와 함께 사용할 수 없습니다.object
세션에 대한 추가 정보를 저장할 사용자 지정 key-value 쌍입니다.
boolean
이 세션에 대한 merchant 기본 3DS 동작을 재정의합니다.
boolean
기본값:"false"
최소 주소 수집 모드를 활성화합니다. 활성화하면 checkout에서는 다음 항목만 수집합니다:
- Country: 세금 산정을 위해 항상 필수
- ZIP/Postal code: sales tax, VAT 또는 GST 계산에 필요한 지역에서만 수집
string
연결된 고객에게 속한 저장된 결제 수단입니다.
confirm: true 및 기존 customer.customer_id가 필요합니다. 설정하면 결제가 즉시 처리되고 checkout_url가 null로 반환됩니다. 대신 반환된 payment_id를 사용하세요.boolean
기본값:"false"
true인 경우 전체 session URL 대신 단축 checkout URL을 반환합니다.
string
collection 기반 checkout flow를 위한 제품 collection ID입니다.
string
고객의 Tax ID입니다(예: VAT 번호).
billing_address와 country가 필요합니다.string
Tax ID와 연결된 선택적 business 또는 legal name입니다. 유효한
tax_id와 함께 제공하면 invoice에 고객의 개인 이름 대신 표시됩니다.integer
인도 카드의 INR e-mandate에 대해 merchant 수준의 mandate floor(INR paise 단위)를 재정의합니다.
UI Customization & Features
UI Customization & Features
Custom Fields
Custom Fields
array
사용자 지정 form fields를 사용해 checkout 중 고객으로부터 추가 정보를 수집합니다. checkout session당 최대 5개의 사용자 지정 필드를 정의할 수 있습니다. 고객 응답은 webhook payload에 포함되며 API를 통해 사용할 수 있습니다.
사용자 지정 필드에 대한 고객 응답은 다음에 포함됩니다:
- Webhooks:
payment.succeeded,subscription.active및 기타 관련 event payload에custom_field_responses배열이 포함됩니다. - API responses: Payment 및 subscription object에
custom_field_responses가 포함됩니다.
Subscription Configuration
Subscription Configuration
object
구독 제품이 포함된 checkout session을 위한 추가 구성입니다.
Usage Examples
다음은 다양한 비즈니스 시나리오에 맞는 checkout session 구성을 보여주는 10가지 종합 예시입니다:1. 단일 제품의 간단한 Checkout
2. 여러 제품 장바구니
3. Trial Period가 포함된 구독
4. 사전 확정된 Checkout
confirm가 true로 설정되면 고객은 모든 확인 단계를 건너뛰고 checkout page로 바로 이동합니다.5. 통화 재정의가 적용된 Checkout
billing_currency 재정의는 account settings에서 adaptive currency가 활성화된 경우에만 적용됩니다. adaptive currency가 비활성화되면 이 parameter는 적용되지 않습니다.6. 재방문 고객을 위한 저장된 결제 수단
7. Tax ID 수집을 포함한 B2B Checkout
8. 누적 Discount Codes가 적용된 Dark Theme Checkout
9. 지역별 결제 수단(인도의 UPI)
UPI 구성 및 테스트에 대한 자세한 내용은 India Payment Methods 페이지를 참조하세요.10. BNPL(Buy Now Pay Later) Checkout
BNPL 구성 및 테스트에 대한 자세한 내용은 Buy Now Pay Later (BNPL) 페이지를 참조하세요.11. 즉시 Checkout을 위한 기존 결제 수단 사용
고객의 저장된 결제 수단을 사용해 즉시 처리되는 checkout session을 생성하고 결제 수단 수집을 건너뜁니다:payment method는 고객에게 속해야 하며 결제 통화와 호환되어야 합니다. 이를 통해 재방문 고객에게 one-click purchase를 제공할 수 있습니다.
12. 더 깔끔한 결제 URL을 위한 Short Links
사용자 지정 slug를 사용해 공유 가능한 단축 결제 링크를 생성합니다:13. 결제 성공 페이지를 건너뛰고 즉시 리디렉션
기본 성공 페이지를 거치지 않고 결제 완료 후 고객을 즉시 리디렉션합니다:redirect_immediately가 활성화되면 고객은 결제 완료 직후 기본 성공 페이지를 완전히 건너뛰고 return_url로 리디렉션됩니다.14. 언어 강제 지정
고객 브라우저의 언어 감지를 재정의하여 checkout을 특정 언어로 표시합니다:ar), 카탈루냐어(ca), 중국어(zh), 네덜란드어(nl), 영어(en), 프랑스어(fr), 독일어(de), 히브리어(he), 인도네시아어(id), 이탈리아어(it), 일본어(ja), 한국어(ko), 말레이어(ms), 폴란드어(pl), 포르투갈어(pt), 루마니아어(ro), 러시아어(ru), 스페인어(es), 스웨덴어(sv), 태국어(th), 터키어(tr)
15. 사용자 지정 필드 수집
사용자 지정 필드를 사용해 checkout 중 고객으로부터 추가 정보를 수집합니다:사용자 지정 필드 응답은 webhook payload(
payment.succeeded, subscription.active 등)에 자동으로 포함되며 API를 통해 가져올 수 있습니다. 이를 활용해 CRM을 보강하거나 onboarding flow를 트리거하고 고객 경험을 맞춤 설정하세요.text, number, email, url, date, dropdown, boolean
Checkout Sessions 미리 보기
checkout session을 생성하기 전에 세금, 할인 및 합계를 포함한 가격 내역을 미리 볼 수 있습니다. 고객이 checkout을 진행하기 전에 정확한 가격을 표시할 때 유용합니다.장바구니에 구독 제품이 포함되면 preview response에
next_billing_date도 반환됩니다. 이는 예정된 청구일의 미리 보기이므로 구독이 생성되기 전에 표시할 수 있습니다. 현재 시점을 기준으로 계산되며, trial이 적용되면 now + trial period, 그렇지 않으면 now + one payment frequency입니다. 일회성 제품만 포함된 장바구니에서는 필드가 생략됩니다. 이는 preview 시점에 기준을 둔 추정치이며, 실제 next_billing_date는 구독이 활성화될 때 설정됩니다.preview는
trial_period_days(유효 trial 기간, 무료 또는 유료) 및 trial_amount(할인 후 trial의 단위당 charge, 가격 통화의 최소 단위)도 반환합니다. trial_amount는 paid trial에만 포함되며 무료 trial 또는 trial이 없으면 null입니다. 오늘 실제로 납부해야 하는 세금 포함 합계에는 current_breakup를 사용하세요.- Node.js SDK
- Python SDK
Preview API Reference
전체 preview endpoint 문서 보기
Dynamic Links에서 Checkout Sessions로 이전
주요 차이점
이전에는 Dynamic Links로 payment link를 생성할 때 고객의 전체 청구지 주소를 제공해야 했습니다. Checkout Sessions에서는 더 이상 필요하지 않습니다. 보유한 정보만 전달하면 나머지는 자동으로 처리됩니다. 예를 들어:- 고객의 청구 국가만 알고 있다면 해당 정보만 제공하세요.
- checkout flow가 결제 페이지로 이동하기 전에 누락된 세부정보를 자동으로 수집합니다.
- 반대로 필요한 정보를 이미 모두 보유하고 결제 페이지로 바로 이동하려면 전체 데이터 세트를 전달하고 request body에
confirm=true를 포함하세요.
Migration Process
Dynamic Links에서 Checkout Sessions로의 마이그레이션은 간단합니다:1
Update your integration
새 API 또는 SDK method를 사용하도록 통합을 업데이트합니다.
2
Adjust request payload
Checkout Sessions format에 맞게 request payload를 조정합니다.
3
That's it!
예. 측에서 추가로 처리하거나 특별한 마이그레이션 단계를 수행할 필요는 없습니다.
관련 API Reference
Create Checkout Session
사용 가능한 모든 parameters와 options를 포함한 checkout session 생성 API reference
Preview Checkout Session
session 생성 전 가격, 세금 및 합계를 미리 보기 위한 API reference