Skip to main content
Discount codes overview cover
할인 코드를 사용하면 타겟 프로모션과 인센티브를 운영할 수 있습니다. 백분율 기반 할인을 생성하고, 한도와 만료일을 설정하며, 특정 제품으로 제한하고, checkout에서 적용할 수 있습니다.

Checkout Sessions

호스팅된 체크아웃 중 discount_codes 및 UI 컨트롤로 하나 이상의 스택형 코드를 적용합니다.

Get Discount

ID로 할인을 조회하여 상태와 제한 사항을 확인합니다.

Get Discount by Code

코드 이름(예: “SAVE20”)을 사용해 할인을 조회하고 유효성을 확인하세요.

Create Discount (API)

프로그래밍 방식으로 새로운 할인 코드를 생성하세요.

List & Update Discounts

기존 할인을 찾아보고, 필요에 따라 업데이트하거나 삭제하세요.

할인 코드란?

할인 코드는 결제 시 주문 총액을 줄여주는 프로모션 토큰입니다. 다음과 같은 경우에 적합합니다: 할인 코드는 checkout에서 주문 총액을 줄이는 프로모션 토큰입니다. 시즌 캠페인, 첫 구매 인센티브, 재구매 유도 혜택 또는 협의된 B2B 가격에 사용할 수 있습니다. 코드는 백분율 기반(예: 15% 할인) 또는 정액 기반(예: $5 할인)입니다. checkout, 결제 또는 subscription당 최대 20개의 코드를 중첩할 수 있으므로 고객은 동일한 거래에서 환영 혜택과 캠페인 코드를 모두 사용할 수 있습니다. 특정 제품으로 코드를 제한하고, 각 고객의 사용 횟수를 제한하며, 만료일을 설정하고, 사용 자격이 있는 대상을 제어할 수 있습니다.
  • 유연한 할인: 비율 또는 고정 금액 할인
  • 대상 제어: 제품 및 구독 주기에 따라 제한
  • 캠페인 관리: 만료 날짜 및 사용 한도
  • 원활한 결제: 결제 세션을 통한 UI 필드 및 API 지원
  • 유연한 할인: 백분율 기반 또는 정액 기반 할인
  • 중첩 가능한 코드: checkout, 결제 또는 subscription당 최대 20개 코드 적용
  • 타겟 제어: 제품, subscription 주기 및 고객 자격에 따른 제한
  • 캠페인 관리: 예약된 시작일, 만료일, 전체 및 고객별 사용 한도
  • 통화별 가격 설정: 각 통화별 정액 차감액, 금액 상한 및 최소 소계 설정
Dodo Payments 대시보드에서 할인 코드를 생성한 후, 호스팅된 결제 또는 API를 통해 적용합니다.

대시보드 설정

기존 discount codes가 표시된 Dodo Payments 대시보드의 할인 목록

Dashboard 설정

  • Discount Name (필수): 대시보드에서 사용하는 내부 레이블입니다.
  • Code (필수): 고객이 checkout에서 입력하는 문자열입니다. 무작위 코드를 생성하거나 직접 입력할 수 있습니다(최소 3자, 자동으로 대문자 변환).
  • Type (필수): Percentage(백분율 할인) 또는 Amount(고정 금액 차감)입니다.
  • Amount (필수): 백분율의 경우 대시보드에서 할인할 백분율입니다(예: 15(15%)). API에서는 동일한 값이 basis points로 전달됩니다(1500). 금액의 경우 code의 기본 통화로 적용되는 고정 차감액입니다.
  • Start Date (선택 사항): 향후 날짜에 code가 활성화되도록 예약합니다. 즉시 활성화하려면 비워 두세요.
  • Expiration Date (선택 사항): code를 더 이상 사용할 수 없게 되는 날짜입니다.
  • Usage Limit (선택 사항, Advanced 아래): 모든 고객을 대상으로 한 최대 사용 횟수입니다. multi-subscription cart는 사용 1회로 계산됩니다.
  • Per-Customer Usage Limit (선택 사항, Advanced 아래): 단일 고객이 사용할 수 있는 최대 횟수입니다. 두 값이 모두 설정된 경우 전체 사용 한도보다 작거나 같아야 합니다.
  • Customer Eligibility (선택 사항): 사용할 수 있는 고객을 제한합니다 — 모든 고객, 첫 구매 고객, 기존 고객 또는 직접 선택한 목록 중에서 지정할 수 있습니다.
  • Currency Options (선택 사항): 판매하는 각 통화별 할인 금액입니다. Per-Currency Options를 참조하세요.
  • Product Restriction (선택 사항): 특정 product로 code 사용을 제한합니다.
  • Subscription Cycle Limit (선택 사항, Advanced 아래): 할인이 적용되는 billing cycle 수입니다. 무기한 적용하려면 비워 두세요.
  • Preserve on Plan Change (선택 사항): subscription이 plan을 변경할 때도 할인을 활성 상태로 유지합니다(preserve_on_plan_change).
  • Metadata (선택 사항): 내부 추적을 위한 사용자 지정 key–value 쌍을 추가합니다.
  • Require a minimum order value (선택 사항, Advanced 아래): code가 적용되기 위한 최소 cart subtotal(통화별)입니다.
양식의 사이드 패널에는 생성 중인 코드의 Summary가 실시간으로 표시됩니다. Preview로 전환하면 checkout에서 할인이 어떻게 표시되는지 확인할 수 있습니다:
할인 세부 정보 옆에 Summary 및 Preview 사이드 패널이 표시된 New Discount Code 양식
양식 아래쪽에는 자격, 제한 사항 및 고급 옵션이 표시됩니다:
할인 코드의 자격, 제한 사항 및 고급 옵션
구독의 도입 가격에 주기 한도를 사용하세요(예: “3개월 동안 50% 할인”).
백분율 amount은 API에서 basis points로 표현됩니다 — 1500은 15%를 의미합니다. 고정 amount은 금액 값이며 코드의 통화 옵션으로 표시됩니다.

할인 유형

두 유형 모두 동일한 discount_codes 배열에 중첩할 수 있으며 배열 순서대로 적용됩니다.
Amount 유형이 선택되고 500 INR 고정 금액 차감이 표시된 할인 코드 편집기

고객 자격

코드를 사용할 수 있는 대상을 제어하려면 customer_eligibility을 설정합니다:
Any, First-time, Existing 및 Specific customer 옵션이 표시된 고객 자격 드롭다운
specific 코드는 자격이 있는 고객이 0명인 상태로 시작하며, 고객을 연결할 때까지 모든 사용을 거부합니다. 대시보드 또는 discount customers API를 사용하여 고객을 연결하세요.
고객별 사용 한도와 자격을 함께 설정하면 전체 사용 한도와 관계없이 각 고객이 코드를 사용할 수 있는 횟수를 제한할 수 있습니다.

통화별 옵션

여러 통화로 판매하는 경우 각 코드의 통화별 동작을 설정할 수 있습니다. Currency options에서 각 항목은 다음을 지정합니다:
  • Amount — Amount 할인인 경우 해당 통화로 표시되는 정액 차감액이며, Percentage 할인인 경우 최대 할인 상한입니다. API에서는 max_amount_possible에 매핑됩니다.
  • Default — 하나의 통화를 기본 통화로 지정합니다. 설정되지 않은 통화는 이 기본 통화에서 환산됩니다.
Advanced의 Require a minimum order value에서 통화별 최소 금액을 별도로 설정합니다:
  • Minimum subtotal — 해당 통화의 장바구니 소계가 이 금액에 도달한 경우에만 코드가 적용됩니다. 0는 최소 금액이 없음을 의미합니다.
INR 및 USD의 통화별 amount와 minimum subtotal이 표시된 통화 옵션 패널
Amount 할인은 통화가 없는 정액 차감액을 해석할 수 없으므로, 해석 가능한 기본 통화가 설정된 통화 옵션이 하나 이상 필요합니다. Percentage 할인에는 통화 옵션이 필요하지 않습니다.
최소 subtotal은 stack에서 앞선 할인이 적용된 후의 현재 합계가 아니라 cart의 원래 가격을 기준으로 항상 측정됩니다. stacking 순서는 최소 금액 충족 여부에 영향을 주지 않습니다.subscription의 경우 최소 금액은 product와 add-on을 합산하여 한 번 확인합니다. 예를 들어 $5 add-on이 포함된 $0 product는 $4 최소 금액을 충족합니다. Amount(flat) code는 subscription product에만 적용되고 add-on에는 적용되지 않습니다.

Checkout Experience

고객은 checkout field에 discount code를 입력합니다. 적용 가능한 code는 즉시 적용되며 합계가 업데이트됩니다.
주문 합계에 할인이 적용된 checkout 페이지
Checkout Sessions에서 discount_codes(array)을 전달하여 하나 이상의 code를 미리 적용합니다. discount input field는 기본적으로 표시됩니다. 숨기려면 feature_flags.allow_discount_code를 false로 설정하세요. code는 array 순서대로 적용되며 최대 20개까지 가능합니다.

Stacking Discount Codes

Checkout sessions, payments 및 subscriptions는 discount_codes array를 통해 최대 20개의 stacked code를 허용합니다. code는 array 순서대로 적용됩니다. 첫 번째로 적용 가능한 code가 시작 가격을 낮추고, 다음 code가 이미 할인된 가격을 낮추는 방식으로 계속 적용됩니다. Purchasing Power Parity가 활성화된 경우 시작 가격은 PPP 조정 금액입니다. 응답에는 discount_ids(payments/subscriptions) 및 discounts(위치와 남은 subscription cycle을 포함한 할인별 상세 정보)가 포함됩니다.
단일 discount_code field는 deprecated 상태이지만 backward compatibility를 위해 완전히 지원됩니다. 동일한 request에서 discount_codes와 함께 사용할 수 없습니다. stacking 및 더욱 상세한 응답을 활용하려면 discount_codes(array 형식)로 마이그레이션하세요.
Card-Optional at Zero Price가 활성화된 subscription price에서 오늘 결제할 금액을 0까지 낮추는 code stack을 사용하면 card requirement도 생략됩니다. 즉 고객은 payment method를 등록하지 않고 checkout할 수 있으며, 이는 기본 0 price와 동일합니다.

API Management

type과 amount를 사용하여 programmatically discount code를 생성합니다.

API Reference

create discount API를 확인하세요.
관리를 위해 모든 discount를 나열하거나 auditing을 위한 상세 정보를 가져옵니다.

API Reference

listing 및 retrieval API를 확인하세요.
internal ID 대신 사람이 읽을 수 있는 code(예: “SAVE20”)를 사용하여 discount를 조회합니다.

API Reference

code name으로 discount를 가져옵니다.
amount, expiration 또는 restriction과 같은 discount configuration을 수정합니다.

API Reference

discount detail을 업데이트하는 방법을 알아보세요.
적용하기 전에 ID로 discount를 가져와 상태, 사용 횟수 및 restriction을 확인합니다.

API Reference

ID로 discount를 가져옵니다.
더 이상 필요하지 않은 discount를 비활성화하거나 삭제합니다.

API Reference

discount를 삭제합니다.
customer_eligibility가 specific로 설정된 discount의 경우, 사용할 수 있는 고객을 관리합니다:
  • GET /discounts/{discount_id}/customers — 연결된 고객을 나열합니다(pagination 적용, 페이지당 최대 100명).
  • POST /discounts/{discount_id}/customers — ID로 고객을 연결합니다. 이 호출은 idempotent하며 최대 1000개의 ID를 허용합니다. 모든 ID는 비즈니스에 이미 존재해야 합니다. 응답에는 해당 request에서 제출된 ID만 반환되므로, 전체 allow list를 확인하려면 endpoint를 list하세요.
  • DELETE /discounts/{discount_id}/customers/{customer_id} — 단일 고객을 연결 해제합니다.

Common Use Cases

  • Intro offers: 새로운 product를 위한 기간 한정 출시 프로모션
  • Bulk or B2B: 특정 product 묶음을 위한 계약 할인
  • Retention plays: churn 방지 workflow에서 고객 재유치를 위한 code
  • Seasonal campaigns: holiday 또는 event 기반 프로모션

Integration Examples

Create a Discount with Metadata

내부 추적을 위해 사용자 지정 key–value 쌍을 추가합니다.
metadata를 사용하여 campaign, source 또는 내부 reference ID별로 discount에 tag를 지정하면 나중에 사용량을 대조하고 ROI를 측정할 수 있습니다.

Apply Discounts in Checkout Sessions

하나 이상의 stacked discount를 미리 적용하고 code input UI를 표시합니다.

Apply Discounts During Plan Changes

고객이 subscription을 upgrade하거나 downgrade할 때 프로모션 가격을 제공합니다.
discount_codes parameter는 discount 처리 방식을 제어합니다:
응답의 subscription discounts array에서 적용된 모든 discount를 읽습니다. 각 entry에는 discount_id, position, cycles_remaining 및 원래 code가 포함됩니다.

Hide the Discount Code Field

discount input은 기본적으로 표시됩니다. 숨기려면 allow_discount_code를 false로 설정하세요.

Best Practices

  • Name clearly: campaign name과 일치하는 알아보기 쉬운 code를 사용하세요.
  • Time-box: 긴급성을 높이고 오용을 방지하기 위해 expiration을 추가하세요.
  • Scope wisely: margin leakage를 방지하기 위해 특정 product로 제한하세요.
  • Validate early: checkout을 확정하기 전에 code 적용 가능성을 확인하세요.
  • Monitor impact: campaign별 사용량과 conversion을 추적하세요.
마지막 수정일 2026년 9월 26일