
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 주기 및 고객 자격에 따른 제한
- 캠페인 관리: 예약된 시작일, 만료일, 전체 및 고객별 사용 한도
- 통화별 가격 설정: 각 통화별 정액 차감액, 금액 상한 및 최소 소계 설정
대시보드 설정

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(통화별)입니다.


백분율
amount은 API에서 basis points로 표현됩니다 — 1500은 15%를 의미합니다. 고정 amount은 금액 값이며 코드의 통화 옵션으로 표시됩니다.할인 유형
두 유형 모두 동일한
discount_codes 배열에 중첩할 수 있으며 배열 순서대로 적용됩니다.

고객 자격
코드를 사용할 수 있는 대상을 제어하려면customer_eligibility을 설정합니다:

통화별 옵션
여러 통화로 판매하는 경우 각 코드의 통화별 동작을 설정할 수 있습니다. Currency options에서 각 항목은 다음을 지정합니다:- Amount — Amount 할인인 경우 해당 통화로 표시되는 정액 차감액이며, Percentage 할인인 경우 최대 할인 상한입니다. API에서는
max_amount_possible에 매핑됩니다. - Default — 하나의 통화를 기본 통화로 지정합니다. 설정되지 않은 통화는 이 기본 통화에서 환산됩니다.
- Minimum subtotal — 해당 통화의 장바구니 소계가 이 금액에 도달한 경우에만 코드가 적용됩니다.
0는 최소 금액이 없음을 의미합니다.

최소 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 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
Create discounts
Create discounts
type과 amount를 사용하여 programmatically discount code를 생성합니다.
API Reference
create discount API를 확인하세요.
List and retrieve
List and retrieve
관리를 위해 모든 discount를 나열하거나 auditing을 위한 상세 정보를 가져옵니다.
API Reference
listing 및 retrieval API를 확인하세요.
Get discount by code
Get discount by code
internal ID 대신 사람이 읽을 수 있는 code(예: “SAVE20”)를 사용하여 discount를 조회합니다.
API Reference
code name으로 discount를 가져옵니다.
Update discounts
Update discounts
amount, expiration 또는 restriction과 같은 discount configuration을 수정합니다.
API Reference
discount detail을 업데이트하는 방법을 알아보세요.
Retrieve a discount
Retrieve a discount
적용하기 전에 ID로 discount를 가져와 상태, 사용 횟수 및 restriction을 확인합니다.
API Reference
ID로 discount를 가져옵니다.
Delete discounts
Delete discounts
더 이상 필요하지 않은 discount를 비활성화하거나 삭제합니다.
API Reference
discount를 삭제합니다.
Manage the customer allow list
Manage the customer allow list
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 쌍을 추가합니다.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을 추적하세요.