ODK API Portal
한국어
  • Overview
  • MediaIO
  • Continue Watching
  • Player Event
  • Deprecated
  • Recent changes
Information
apple
category
channels
check-region
client-base
client-log
config
contact-us
cover
curation
epg
episode
episodes
fast-channel
firetv
google
live-tv
navigation
notice
otp
page
payment
    Checkout purchased product by Apple AppStorepostCheckout purchased product by Authorize.netpostCheckout purchased product by Google PlayStorepost프로모션 쿠폰 사용 처리(redeem)post프로모션 쿠폰 사용 전 미리보기getRecurly 쿠폰 코드 유효성 조회get쿠폰 사용 내역 목록get결제 수단(카드) 조회get결제 수단(카드) 변경patchPreview Purchase Tax Calculationget구독 상품 목록get구독 상품 상세getGet product info to purchasegetRecurly 퍼블릭 키 조회getPurchase Bundle for Promotion with PayPerView and Subscriptionpost웹 구독 신규 결제(Recurly)post아마존 인앱결제 구독 활성화post아마존 구매 가능 여부 사전 확인getsubscription create apple-tvpostsubscription create applepostsubscription cancelpostsubscription changepostsubscription discountgetapply subscription discountpostsubscription create google-tvpostsubscription update google-tvpatchsubscription create googlepostsubscription update googlepatchsubscription reactivatepatchsubscription renewalget삼성 인앱결제 구독 활성화post삼성 구독 플랜 변경patch삼성 구매/변경 가능 여부 사전 확인get
playback-log
playback
profile
program
programs
promotion-banner
reward
samsung
search
shorts
sponsor
tv-guide
user
visio-amasian-feed
Schemas
powered by Zudoku
ODX API v3
ODX API v3

payment


Checkout purchased product by Apple AppStore

POST
https://odkmedia.io
/odx/api/v3/payment/checkout/apple/{product_code}/

Checkout purchased product by Apple AppStore › path Parameters

product_code
​string · required

Checkout purchased product by Apple AppStore › query Parameters

debug
​string

If value is "on", debug is included in response.

Checkout purchased product by Apple AppStore › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

Checkout purchased product by Apple AppStore › Responses

200

No response body

No data returned
POST/odx/api/v3/payment/checkout/apple/{product_code}/
curl https://odkmedia.io/odx/api/v3/payment/checkout/apple/:product_code \
  --request POST \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>'
Example Responses
No example specified for this content type

Checkout purchased product by Authorize.net

POST
https://odkmedia.io
/odx/api/v3/payment/checkout/aznet/{product_code}/

Checkout purchased product by Authorize.net › path Parameters

product_code
​string · required

Checkout purchased product by Authorize.net › query Parameters

debug
​string

If value is "on", debug is included in response.

Checkout purchased product by Authorize.net › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

Checkout purchased product by Authorize.net › Responses

200

No response body

No data returned
POST/odx/api/v3/payment/checkout/aznet/{product_code}/
curl https://odkmedia.io/odx/api/v3/payment/checkout/aznet/:product_code \
  --request POST \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>'
Example Responses
No example specified for this content type

Checkout purchased product by Google PlayStore

POST
https://odkmedia.io
/odx/api/v3/payment/checkout/google/{product_code}/

Checkout purchased product by Google PlayStore › path Parameters

product_code
​string · required

Checkout purchased product by Google PlayStore › query Parameters

debug
​string

If value is "on", debug is included in response.

Checkout purchased product by Google PlayStore › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

Checkout purchased product by Google PlayStore › Responses

200

No response body

No data returned
POST/odx/api/v3/payment/checkout/google/{product_code}/
curl https://odkmedia.io/odx/api/v3/payment/checkout/google/:product_code \
  --request POST \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>'
Example Responses
No example specified for this content type

프로모션 쿠폰 사용 처리(redeem)

POST
https://odkmedia.io
/odx/api/v3/payment/coupon/admin/

프로모션 쿠폰 사용 처리(redeem) › query Parameters

debug
​string

If value is "on", debug is included in response.

프로모션 쿠폰 사용 처리(redeem) › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

프로모션 쿠폰 사용 처리(redeem) › Request Body

OdxV3AdminCouponCreateRequestRequest
code
​string · minLength: 1 · maxLength: 150 · required

The code the customer enters to redeem the coupon.

episode_uuid
​string | null · minLength: 1 · maxLength: 36 · writeOnly

프로모션 쿠폰 사용 처리(redeem) › Responses

OdxV3AdminCouponCreateRequest
code
​string · maxLength: 150 · required

The code the customer enters to redeem the coupon.

POST/odx/api/v3/payment/coupon/admin/
curl https://odkmedia.io/odx/api/v3/payment/coupon/admin \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>' \
  --data '{
  "code": "code",
  "episode_uuid": "episode_uuid"
}'
Example Request Body
{
  "code": "code",
  "episode_uuid": "episode_uuid"
}
Example Responses
{
  "code": "code"
}
application/json

프로모션 쿠폰 사용 전 미리보기

GET
https://odkmedia.io
/odx/api/v3/payment/coupon/admin/{code}/

프로모션 쿠폰 사용 전 미리보기 › path Parameters

code
​string · required

프로모션 쿠폰 사용 전 미리보기 › query Parameters

debug
​string

If value is "on", debug is included in response.

프로모션 쿠폰 사용 전 미리보기 › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

프로모션 쿠폰 사용 전 미리보기 › Responses

200
OdxV3AdminCouponRetrieve
code
​string · maxLength: 150 · required

The code the customer enters to redeem the coupon.

expected_valid_to
​string · date · required

Expected admin coupon expiration date considered with the user's membership

subscription_type
​SubscriptionTypeEnum · enum · required
  • basic - Basic
  • plus - Plus
  • standard - Standard
  • premium - Premium
  • premium-box - Premium Box
  • family - Family
Enum values:
basic
plus
standard
premium
premium-box
family
GET/odx/api/v3/payment/coupon/admin/{code}/
curl https://odkmedia.io/odx/api/v3/payment/coupon/admin/:code \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>'
Example Responses
{
  "code": "code",
  "expected_valid_to": "2024-08-25",
  "subscription_type": "basic"
}
application/json

Recurly 쿠폰 코드 유효성 조회

GET
https://odkmedia.io
/odx/api/v3/payment/coupon/recurly/

Recurly 쿠폰 코드 유효성 조회 › query Parameters

debug
​string

If value is "on", debug is included in response.

Recurly 쿠폰 코드 유효성 조회 › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

Recurly 쿠폰 코드 유효성 조회 › Responses

200
OdxV3RecurlyCoupon
coupon_code
​string · maxLength: 50 · required
product_code
​string · maxLength: 50 · required
GET/odx/api/v3/payment/coupon/recurly/
curl https://odkmedia.io/odx/api/v3/payment/coupon/recurly \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>'
Example Responses
{
  "coupon_code": "coupon_code",
  "product_code": "product_code"
}
application/json

쿠폰 사용 내역 목록

GET
https://odkmedia.io
/odx/api/v3/payment/coupon/usage/

ODX 토큰 인증이 필요한 목록 조회 엔드포인트다. 로그인한 사용자의 쿠폰 사용 (UserCouponUsage) 내역을 페이지네이션해 돌려주며, 각 항목은 사용일자·쿠폰 종류·쿠폰 id 를 담는다.

쿠폰 사용 내역 목록 › query Parameters

debug
​string

If value is "on", debug is included in response.

ordering
​string

Which field to use when ordering the results.

page
​integer

A page number within the paginated result set.

page_size
​integer

Number of results to return per page.

search
​string

A search term.

쿠폰 사용 내역 목록 › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

쿠폰 사용 내역 목록 › Responses

200
PaginatedOdxV3CouponUsageList
count
​integer
next
​string | null · uri
previous
​string | null · uri
​OdxV3CouponUsage[]
GET/odx/api/v3/payment/coupon/usage/
curl https://odkmedia.io/odx/api/v3/payment/coupon/usage \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>'
Example Responses
{
  "count": 123,
  "next": "http://api.example.org/accounts/?page=4",
  "previous": "http://api.example.org/accounts/?page=2",
  "results": [
    {
      "id": 0,
      "redemption_date": "2024-08-25T15:00:00Z",
      "type": "type"
    }
  ]
}
application/json

결제 수단(카드) 조회

GET
https://odkmedia.io
/odx/api/v3/payment/payment-method/

결제 수단(카드) 조회 › query Parameters

debug
​string

If value is "on", debug is included in response.

결제 수단(카드) 조회 › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

결제 수단(카드) 조회 › Responses

200

No response body

No data returned
GET/odx/api/v3/payment/payment-method/
curl https://odkmedia.io/odx/api/v3/payment/payment-method \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>'
Example Responses
No example specified for this content type

결제 수단(카드) 변경

PATCH
https://odkmedia.io
/odx/api/v3/payment/payment-method/update/

결제 수단(카드) 변경 › query Parameters

debug
​string

If value is "on", debug is included in response.

결제 수단(카드) 변경 › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

결제 수단(카드) 변경 › Responses

200

No response body

No data returned
PATCH/odx/api/v3/payment/payment-method/update/
curl https://odkmedia.io/odx/api/v3/payment/payment-method/update \
  --request PATCH \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>'
Example Responses
No example specified for this content type

Preview Purchase Tax Calculation

GET
https://odkmedia.io
/odx/api/v3/payment/preview-purchase/

zip code 기반 세금 계산을 수행합니다.

Preview Purchase Tax Calculation › query Parameters

product_code
​string · required

구독 상품 코드.

zip_code
​string · required

미국 우편번호(5자리 또는 9자리). 세금 계산을 위한 주(state) 판별에 쓰인다.

debug
​string

If value is "on", debug is included in response.

coupon_code
​string

할인 계산에 사용할 쿠폰 코드.

payment_platform
​string

결제 플랫폼. 기본값 web.

Preview Purchase Tax Calculation › Headers

Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

Preview Purchase Tax Calculation › Responses

200

No response body

No data returned
GET/odx/api/v3/payment/preview-purchase/
curl 'https://odkmedia.io/odx/api/v3/payment/preview-purchase?product_code=<string>&zip_code=<string>'
Example Responses
No example specified for this content type

구독 상품 목록

GET
https://odkmedia.io
/odx/api/v3/payment/product-subscription/

구독 상품 목록 › query Parameters

debug
​string

If value is "on", debug is included in response.

interval_unit
​string · enum
  • day - Day
  • month - Month
  • year - Year
Enum values:
day
month
year
is_active
​boolean

Filter by active status. If true, the product list shown to the customer

ordering
​string

Which field to use when ordering the results.

payment_platform
​string · enum
  • web - Web
  • apple - Apple
  • google - Google
  • roku - Roku
  • apple-tv - Apple Tv
  • google-tv - Google Tv
  • amazon - Amazon
  • samsung - Samsung
Enum values:
amazon
apple
apple-tv
google
google-tv
roku
samsung
web
platform
​string | null · enum
  • web - Web
  • samsung - Samsung
  • apple - Apple
  • apple-tv - Apple Tv
  • google - Google
  • google-tv - Google Tv
  • roku - Roku
Enum values:
apple
apple-tv
google
google-tv
roku
samsung
web
product_code
​string

The product code to filter by

구독 상품 목록 › Headers

Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

구독 상품 목록 › Responses

200
​OdxV3ProductSubscription[]
OdxV3ProductSubscription
interval_unit
​string · required
is_active
​boolean · required
label
​string · required
label_type
​string · required
position
​integer · required
price
​number · double · required
product_code
​string · maxLength: 50 · required
product_name
​string · maxLength: 255 · required
subscription_type
​string · required
currency
​string · readOnly

ISO 4217 currency code (e.g. USD) — store IAP SDKs require the code, not a symbol.

default_coupon_code
​string
description
​array | null · readOnly

Description of product according to interval unit such as Month and Year

fields_on
​boolean · readOnly

If upgrade or downgrade, we don't need card number for recurly subscription, so fields_on = false.

grade
​integer · readOnly
max_profile_count
​integer
operation_type
​string · readOnly

Variable to decide whether product's information is shown or not

product_id
​string | null · maxLength: 50

pg product_id, ex) r8tasialb6pv

sales_description
​string | null · readOnly
sales_price
​number · double
sub_title
​string | null · readOnly
trial_length
​integer
trial_unit
​string
GET/odx/api/v3/payment/product-subscription/
curl https://odkmedia.io/odx/api/v3/payment/product-subscription
Example Responses
[ { "currency": "currency", "default_coupon_code": "default_coupon_code", "description": [ "string" ], "fields_on": true, "grade": 0, "interval_unit": "interval_unit", "is_active": true, "label": "label", "label_type": "label_type", "max_profile_count": 0, "operation_type": "operation_type", "position": 0, "price": 0, "product_code": "product_code", "product_id": "product_id", "product_name": "product_name", "sales_description": "sales_description", "sales_price": 0, "sub_title": "sub_title", "subscription_type": "subscription_type", "trial_length": 0, "trial_unit": "trial_unit" } ]
application/json

구독 상품 상세

GET
https://odkmedia.io
/odx/api/v3/payment/product-subscription/{product_code}/

구독 상품 상세 › path Parameters

product_code
​string · required

구독 상품 상세 › query Parameters

debug
​string

If value is "on", debug is included in response.

구독 상품 상세 › Headers

Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

구독 상품 상세 › Responses

200
OdxV3ProductSubscription
interval_unit
​string · required
is_active
​boolean · required
label
​string · required
label_type
​string · required
position
​integer · required
price
​number · double · required
product_code
​string · maxLength: 50 · required
product_name
​string · maxLength: 255 · required
subscription_type
​string · required
currency
​string · readOnly

ISO 4217 currency code (e.g. USD) — store IAP SDKs require the code, not a symbol.

default_coupon_code
​string
description
​array | null · readOnly

Description of product according to interval unit such as Month and Year

fields_on
​boolean · readOnly

If upgrade or downgrade, we don't need card number for recurly subscription, so fields_on = false.

grade
​integer · readOnly
max_profile_count
​integer
operation_type
​string · readOnly

Variable to decide whether product's information is shown or not

product_id
​string | null · maxLength: 50

pg product_id, ex) r8tasialb6pv

sales_description
​string | null · readOnly
sales_price
​number · double
sub_title
​string | null · readOnly
trial_length
​integer
trial_unit
​string
GET/odx/api/v3/payment/product-subscription/{product_code}/
curl https://odkmedia.io/odx/api/v3/payment/product-subscription/:product_code
Example Responses
{ "currency": "currency", "default_coupon_code": "default_coupon_code", "description": [ "string" ], "fields_on": true, "grade": 0, "interval_unit": "interval_unit", "is_active": true, "label": "label", "label_type": "label_type", "max_profile_count": 0, "operation_type": "operation_type", "position": 0, "price": 0, "product_code": "product_code", "product_id": "product_id", "product_name": "product_name", "sales_description": "sales_description", "sales_price": 0, "sub_title": "sub_title", "subscription_type": "subscription_type", "trial_length": 0, "trial_unit": "trial_unit" }
application/json

Get product info to purchase

GET
https://odkmedia.io
/odx/api/v3/payment/product_info/{product_code}/

Get product info to purchase › path Parameters

product_code
​string · required

Get product info to purchase › query Parameters

debug
​string

If value is "on", debug is included in response.

Get product info to purchase › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

Get product info to purchase › Responses

200

No response body

No data returned
GET/odx/api/v3/payment/product_info/{product_code}/
curl https://odkmedia.io/odx/api/v3/payment/product_info/:product_code \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>'
Example Responses
No example specified for this content type

Recurly 퍼블릭 키 조회

GET
https://odkmedia.io
/odx/api/v3/payment/public-key/recurly/

Recurly 퍼블릭 키 조회 › query Parameters

debug
​string

If value is "on", debug is included in response.

Recurly 퍼블릭 키 조회 › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

Recurly 퍼블릭 키 조회 › Responses

200

No response body

No data returned
GET/odx/api/v3/payment/public-key/recurly/
curl https://odkmedia.io/odx/api/v3/payment/public-key/recurly \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>'
Example Responses
No example specified for this content type

Purchase Bundle for Promotion with PayPerView and Subscription

POST
https://odkmedia.io
/odx/api/v3/payment/purchase/bundle-promotion/

Purchase Bundle for Promotion with PayPerView and Subscription › query Parameters

debug
​string

If value is "on", debug is included in response.

Purchase Bundle for Promotion with PayPerView and Subscription › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

Purchase Bundle for Promotion with PayPerView and Subscription › Request Body

OdxV3BundlePromotionRequest
bundle_product_code
​string · minLength: 1 · maxLength: 50 · required

ProductSubscription.product_code

product_code
​string · minLength: 1 · maxLength: 50 · required

PayPerView.episode.uuid

shared_secret
​string · minLength: 1 · maxLength: 50 · required
token_id
​string · minLength: 1 · maxLength: 22 · required

A token generated by Recurly.js.

coupon_codes
​string[]

ex) ["test-coupon1", "test-coupon2"]

Purchase Bundle for Promotion with PayPerView and Subscription › Responses

200
OdxV3BundlePromotion
bundle_product_code
​string · maxLength: 50 · required

ProductSubscription.product_code

product_code
​string · maxLength: 50 · required

PayPerView.episode.uuid

shared_secret
​string · maxLength: 50 · required
token_id
​string · maxLength: 22 · required

A token generated by Recurly.js.

coupon_codes
​string[]

ex) ["test-coupon1", "test-coupon2"]

POST/odx/api/v3/payment/purchase/bundle-promotion/
curl https://odkmedia.io/odx/api/v3/payment/purchase/bundle-promotion \ --request POST \ --header 'Content-Type: application/json' \ --header 'Service-Name: odk' \ --header 'Authorization: <api-key>' \ --data '{ "bundle_product_code": "bundle_product_code", "coupon_codes": [ "string" ], "product_code": "product_code", "shared_secret": "shared_secret", "token_id": "token_id" }'
Example Request Body
{
  "bundle_product_code": "bundle_product_code",
  "coupon_codes": [
    "string"
  ],
  "product_code": "product_code",
  "shared_secret": "shared_secret",
  "token_id": "token_id"
}
Example Responses
{
  "bundle_product_code": "bundle_product_code",
  "coupon_codes": [
    "string"
  ],
  "product_code": "product_code",
  "shared_secret": "shared_secret",
  "token_id": "token_id"
}
application/json

웹 구독 신규 결제(Recurly)

POST
https://odkmedia.io
/odx/api/v3/payment/subscription/

웹 구독 신규 결제(Recurly) › query Parameters

debug
​string

If value is "on", debug is included in response.

웹 구독 신규 결제(Recurly) › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

웹 구독 신규 결제(Recurly) › Request Body

OdxV3SubscriptionRequest
product_code
​string · minLength: 1 · maxLength: 50 · required
token_id
​string · minLength: 1 · maxLength: 22 · required

A token generated by Recurly.js.

coupon_code
​string · minLength: 1 · maxLength: 255
transaction_id
​string · minLength: 10 · maxLength: 30
​object

웹 구독 신규 결제(Recurly) › Responses

OdxV3Subscription
product_code
​string · maxLength: 50 · required
token_id
​string · maxLength: 22 · required

A token generated by Recurly.js.

coupon_code
​string · maxLength: 255
transaction_id
​string · minLength: 10 · maxLength: 30
​object
POST/odx/api/v3/payment/subscription/
curl https://odkmedia.io/odx/api/v3/payment/subscription \ --request POST \ --header 'Content-Type: application/json' \ --header 'Service-Name: odk' \ --header 'Authorization: <api-key>' \ --data '{ "coupon_code": "coupon_code", "product_code": "product_code", "token_id": "token_id", "transaction_id": "transaction_id", "utm_data": { "attribution_campaign": "attribution_campaign", "attribution_source": "attribution_source", "utm_medium": "utm_medium" } }'
Example Request Body
{
  "coupon_code": "coupon_code",
  "product_code": "product_code",
  "token_id": "token_id",
  "transaction_id": "transaction_id",
  "utm_data": {
    "attribution_campaign": "attribution_campaign",
    "attribution_source": "attribution_source",
    "utm_medium": "utm_medium"
  }
}
Example Responses
{
  "coupon_code": "coupon_code",
  "product_code": "product_code",
  "token_id": "token_id",
  "transaction_id": "transaction_id",
  "utm_data": {
    "attribution_campaign": "attribution_campaign",
    "attribution_source": "attribution_source",
    "utm_medium": "utm_medium"
  }
}
application/json

아마존 인앱결제 구독 활성화

POST
https://odkmedia.io
/odx/api/v3/payment/subscription/amazon/

ODX 토큰 인증이 필요하다. Fire TV/Appstore 에서 구매한 영수증(receipt_id)과 amazon_user_id 를 받아, 이미 활성 구독이 있거나 같은 아마존 계정이 다른 사용자에 연결돼 있으면 막는다. 그렇지 않으면 Amazon RVS 로 영수증을 검증한 뒤 구독/갱신 정보를 만들고 내부 결제 서비스에 동기화하며, 전체가 하나의 트랜잭션이다.

아마존 인앱결제 구독 활성화 › query Parameters

debug
​string

If value is "on", debug is included in response.

아마존 인앱결제 구독 활성화 › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

아마존 인앱결제 구독 활성화 › Request Body

OdxV3SubscriptionInAppAmazonRequest
amazon_user_id
​string · minLength: 1 · required

Amazon appUserId (customer id). RTN appUserId 역조회용 매핑 키 (StorePaymentAccount)

receipt_id
​string · minLength: 1 · required

Amazon RVS receiptId. it comes from client

아마존 인앱결제 구독 활성화 › Responses

OdxV3SubscriptionInAppAmazon
amazon_user_id
​string · required

Amazon appUserId (customer id). RTN appUserId 역조회용 매핑 키 (StorePaymentAccount)

receipt_id
​string · required

Amazon RVS receiptId. it comes from client

POST/odx/api/v3/payment/subscription/amazon/
curl https://odkmedia.io/odx/api/v3/payment/subscription/amazon \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>' \
  --data '{
  "amazon_user_id": "amazon_user_id",
  "receipt_id": "receipt_id"
}'
Example Request Body
{
  "amazon_user_id": "amazon_user_id",
  "receipt_id": "receipt_id"
}
Example Responses
{
  "amazon_user_id": "amazon_user_id",
  "receipt_id": "receipt_id"
}
application/json

아마존 구매 가능 여부 사전 확인

GET
https://odkmedia.io
/odx/api/v3/payment/subscription/amazon/purchase-eligibility/

구매 전 사전 검증(pre-check).

FireTV SDK는 Android와 달리 linked_account_email을 로컬에서 알 수 없어, 같은 Amazon 계정(appUserId)이 다른 ODK 계정 구독에 묶였는지 백엔드로 확인해야 한다. 앱은 이 응답이 not allowed이면 Amazon 결제창을 열지 않아 이중 결제를 예방한다.

조회(query)이므로 "불가"도 정상 결과 → 200 + body. 최종 차단은 create()의 409가 담당 (pre-check~결제 사이 레이스는 원천 차단 불가하므로 참고용 게이트). PII(구독 이메일 등) 미반환, 계정 전환/복원 미지원 → boolean + 사유 코드만.

아마존 구매 가능 여부 사전 확인 › query Parameters

debug
​string

If value is "on", debug is included in response.

아마존 구매 가능 여부 사전 확인 › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

아마존 구매 가능 여부 사전 확인 › Responses

200
OdxV3SubscriptionInAppAmazon
amazon_user_id
​string · required

Amazon appUserId (customer id). RTN appUserId 역조회용 매핑 키 (StorePaymentAccount)

receipt_id
​string · required

Amazon RVS receiptId. it comes from client

GET/odx/api/v3/payment/subscription/amazon/purchase-eligibility/
curl https://odkmedia.io/odx/api/v3/payment/subscription/amazon/purchase-eligibility \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>'
Example Responses
{
  "amazon_user_id": "amazon_user_id",
  "receipt_id": "receipt_id"
}
application/json

subscription create apple-tv

POST
https://odkmedia.io
/odx/api/v3/payment/subscription/apple-tv/

If the error code is 460, you are already subscribed and do not need to request again.

subscription create apple-tv › query Parameters

debug
​string

If value is "on", debug is included in response.

subscription create apple-tv › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

subscription create apple-tv › Request Body

OdxV3SubscriptionInAppAppleRequest
receipt
​string · minLength: 1 · required

Base64 encoded Apple in-app purchase receipt data. it comes from client

subscription create apple-tv › Responses

OdxV3SubscriptionInAppApple
receipt
​string · required

Base64 encoded Apple in-app purchase receipt data. it comes from client

POST/odx/api/v3/payment/subscription/apple-tv/
curl https://odkmedia.io/odx/api/v3/payment/subscription/apple-tv \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>' \
  --data '{
  "receipt": "receipt"
}'
Example Request Body
{
  "receipt": "receipt"
}
Example Responses
{
  "receipt": "receipt"
}
application/json

subscription create apple

POST
https://odkmedia.io
/odx/api/v3/payment/subscription/apple/

If the error code is 460, you are already subscribed and do not need to request again.

subscription create apple › query Parameters

debug
​string

If value is "on", debug is included in response.

subscription create apple › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

subscription create apple › Request Body

OdxV3SubscriptionInAppAppleRequest
receipt
​string · minLength: 1 · required

Base64 encoded Apple in-app purchase receipt data. it comes from client

subscription create apple › Responses

OdxV3SubscriptionInAppApple
receipt
​string · required

Base64 encoded Apple in-app purchase receipt data. it comes from client

POST/odx/api/v3/payment/subscription/apple/
curl https://odkmedia.io/odx/api/v3/payment/subscription/apple \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>' \
  --data '{
  "receipt": "receipt"
}'
Example Request Body
{
  "receipt": "receipt"
}
Example Responses
{
  "receipt": "receipt"
}
application/json

subscription cancel

POST
https://odkmedia.io
/odx/api/v3/payment/subscription/cancel/

subscription cancel › query Parameters

debug
​string

If value is "on", debug is included in response.

subscription cancel › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

subscription cancel › Request Body

OdxV3SubscriptionCancelRequest
message
​string · minLength: 1 · maxLength: 255 · required
product_code
​string · minLength: 1 · maxLength: 50 · required

subscription cancel › Responses

OdxV3SubscriptionCancel
message
​string · maxLength: 255 · required
product_code
​string · maxLength: 50 · required
POST/odx/api/v3/payment/subscription/cancel/
curl https://odkmedia.io/odx/api/v3/payment/subscription/cancel \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>' \
  --data '{
  "message": "message",
  "product_code": "product_code"
}'
Example Request Body
{
  "message": "message",
  "product_code": "product_code"
}
Example Responses
{
  "message": "message",
  "product_code": "product_code"
}
application/json

subscription change

POST
https://odkmedia.io
/odx/api/v3/payment/subscription/change/

subscription change › query Parameters

debug
​string

If value is "on", debug is included in response.

subscription change › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

subscription change › Request Body

OdxV3SubscriptionChangeRequest
product_code
​string · minLength: 1 · maxLength: 50 · required

subscription change › Responses

OdxV3SubscriptionChange
product_code
​string · maxLength: 50 · required
POST/odx/api/v3/payment/subscription/change/
curl https://odkmedia.io/odx/api/v3/payment/subscription/change \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>' \
  --data '{
  "product_code": "product_code"
}'
Example Request Body
{
  "product_code": "product_code"
}
Example Responses
{
  "product_code": "product_code"
}
application/json

subscription discount

GET
https://odkmedia.io
/odx/api/v3/payment/subscription/discount/

About discounts

subscription discount › query Parameters

debug
​string

If value is "on", debug is included in response.

subscription discount › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

subscription discount › Responses

200

No response body

No data returned
GET/odx/api/v3/payment/subscription/discount/
curl https://odkmedia.io/odx/api/v3/payment/subscription/discount \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>'
Example Responses
No example specified for this content type

apply subscription discount

POST
https://odkmedia.io
/odx/api/v3/payment/subscription/discount/

Apply subscription discounts

apply subscription discount › query Parameters

debug
​string

If value is "on", debug is included in response.

apply subscription discount › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

apply subscription discount › Responses

200

No response body

No data returned
POST/odx/api/v3/payment/subscription/discount/
curl https://odkmedia.io/odx/api/v3/payment/subscription/discount \
  --request POST \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>'
Example Responses
No example specified for this content type

subscription create google-tv

POST
https://odkmedia.io
/odx/api/v3/payment/subscription/google-tv/

If the error code is 460, you are already subscribed and do not need to request again.

subscription create google-tv › query Parameters

debug
​string

If value is "on", debug is included in response.

subscription create google-tv › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

subscription create google-tv › Request Body

OdxV3SubscriptionInAppGoogleRequest
purchase_token
​string · minLength: 1 · required

subscription create google-tv › Responses

OdxV3SubscriptionInAppGoogle
purchase_token
​string · required
POST/odx/api/v3/payment/subscription/google-tv/
curl https://odkmedia.io/odx/api/v3/payment/subscription/google-tv \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>' \
  --data '{
  "purchase_token": "purchase_token"
}'
Example Request Body
{
  "purchase_token": "purchase_token"
}
Example Responses
{
  "purchase_token": "purchase_token"
}
application/json

subscription update google-tv

PATCH
https://odkmedia.io
/odx/api/v3/payment/subscription/google-tv/

If the error code is 461, it means you don't currently have a subscription, and you should request a subscription creation, not a subscription change.

subscription update google-tv › query Parameters

debug
​string

If value is "on", debug is included in response.

subscription update google-tv › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

subscription update google-tv › Request Body

PatchedOdxV3SubscriptionInAppGoogleRequest
purchase_token
​string · minLength: 1

subscription update google-tv › Responses

200
OdxV3SubscriptionInAppGoogle
purchase_token
​string · required
PATCH/odx/api/v3/payment/subscription/google-tv/
curl https://odkmedia.io/odx/api/v3/payment/subscription/google-tv \
  --request PATCH \
  --header 'Content-Type: application/json' \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>' \
  --data '{
  "purchase_token": "purchase_token"
}'
Example Request Body
{
  "purchase_token": "purchase_token"
}
Example Responses
{
  "purchase_token": "purchase_token"
}
application/json

subscription create google

POST
https://odkmedia.io
/odx/api/v3/payment/subscription/google/

If the error code is 460, you are already subscribed and do not need to request again.

subscription create google › query Parameters

debug
​string

If value is "on", debug is included in response.

subscription create google › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

subscription create google › Request Body

OdxV3SubscriptionInAppGoogleRequest
purchase_token
​string · minLength: 1 · required

subscription create google › Responses

OdxV3SubscriptionInAppGoogle
purchase_token
​string · required
POST/odx/api/v3/payment/subscription/google/
curl https://odkmedia.io/odx/api/v3/payment/subscription/google \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>' \
  --data '{
  "purchase_token": "purchase_token"
}'
Example Request Body
{
  "purchase_token": "purchase_token"
}
Example Responses
{
  "purchase_token": "purchase_token"
}
application/json

subscription update google

PATCH
https://odkmedia.io
/odx/api/v3/payment/subscription/google/

If the error code is 461, it means you don't currently have a subscription, and you should request a subscription creation, not a subscription change.

subscription update google › query Parameters

debug
​string

If value is "on", debug is included in response.

subscription update google › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

subscription update google › Request Body

PatchedOdxV3SubscriptionInAppGoogleRequest
purchase_token
​string · minLength: 1

subscription update google › Responses

200
OdxV3SubscriptionInAppGoogle
purchase_token
​string · required
PATCH/odx/api/v3/payment/subscription/google/
curl https://odkmedia.io/odx/api/v3/payment/subscription/google \
  --request PATCH \
  --header 'Content-Type: application/json' \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>' \
  --data '{
  "purchase_token": "purchase_token"
}'
Example Request Body
{
  "purchase_token": "purchase_token"
}
Example Responses
{
  "purchase_token": "purchase_token"
}
application/json

subscription reactivate

PATCH
https://odkmedia.io
/odx/api/v3/payment/subscription/reactivate/

About Subscription Reactivate

subscription reactivate › query Parameters

debug
​string

If value is "on", debug is included in response.

subscription reactivate › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

subscription reactivate › Responses

200

No response body

No data returned
PATCH/odx/api/v3/payment/subscription/reactivate/
curl https://odkmedia.io/odx/api/v3/payment/subscription/reactivate \
  --request PATCH \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>'
Example Responses
No example specified for this content type

subscription renewal

GET
https://odkmedia.io
/odx/api/v3/payment/subscription/renewal/

Information about the next subscription.
[Only WEB] A response status of 404 means that there is no next subscription. It will be deprecated in the next version.
[Except WEB] The response status is 200 with no data.

subscription renewal › query Parameters

debug
​string

If value is "on", debug is included in response.

subscription renewal › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

subscription renewal › Responses

200
OdxV3SubscriptionRenewal
date
​string · readOnly

expire -> null / renew -> next subscription renewal date / cancel -> current subscription expiration date

interval_unit
​string | null · readOnly
is_discount
​boolean · readOnly

If the user has a discount, this value is true.

price
​string | null · readOnly
product_code
​string · readOnly
start_at
​string · date-time · readOnly
subscription_type
​string · readOnly

admin-coupon user is also premium

type
​string · readOnly
GET/odx/api/v3/payment/subscription/renewal/
curl https://odkmedia.io/odx/api/v3/payment/subscription/renewal \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>'
Example Responses
{
  "date": "date",
  "interval_unit": "interval_unit",
  "is_discount": true,
  "price": "price",
  "product_code": "product_code",
  "start_at": "2024-08-25T15:00:00Z",
  "subscription_type": "subscription_type",
  "type": "type"
}
application/json

삼성 인앱결제 구독 활성화

POST
https://odkmedia.io
/odx/api/v3/payment/subscription/samsung/

ODX 토큰 인증이 필요하다. Samsung TV Checkout 의 invoice_id/country_code 를 받아 이미 구독 중이면 막고(리마인더 웹훅이 먼저 처리한 경우 대비), Samsung DPI 로 인보이스를 검증(CustomID=사용자 uuid)한 뒤 웹훅과 같은 멱등 동기화 경로 (sync_samsung_from_invoice)로 구독을 반영한다.

삼성 인앱결제 구독 활성화 › query Parameters

debug
​string

If value is "on", debug is included in response.

삼성 인앱결제 구독 활성화 › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

삼성 인앱결제 구독 활성화 › Request Body

OdxV3SubscriptionInAppSamsungRequest
country_code
​string · minLength: 1 · required

TV country code (DPI invoice 조회용)

invoice_id
​string · minLength: 1 · required

Samsung Checkout InvoiceID (buyItem 결과). it comes from client

삼성 인앱결제 구독 활성화 › Responses

OdxV3SubscriptionInAppSamsung
country_code
​string · required

TV country code (DPI invoice 조회용)

invoice_id
​string · required

Samsung Checkout InvoiceID (buyItem 결과). it comes from client

POST/odx/api/v3/payment/subscription/samsung/
curl https://odkmedia.io/odx/api/v3/payment/subscription/samsung \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>' \
  --data '{
  "country_code": "country_code",
  "invoice_id": "invoice_id"
}'
Example Request Body
{
  "country_code": "country_code",
  "invoice_id": "invoice_id"
}
Example Responses
{
  "country_code": "country_code",
  "invoice_id": "invoice_id"
}
application/json

삼성 구독 플랜 변경

PATCH
https://odkmedia.io
/odx/api/v3/payment/subscription/samsung/

플랜 변경(업/다운 공용) — google PATCH와 동일한 외부 계약, 내부 동작은 다름.

google은 클라가 Play에서 변경한 결과의 '사후 보고'지만, Samsung은 클라이언트 변경 API가 없어(같은 그룹 buyItem은 "이미 구독 중" 차단 — 실측) 서버가 DPI plan-change reserve로 변경을 실행한다. 즉시/예약은 Samsung이 Product Level로 결정한다(Lv1이 최상위: 레벨업=즉시, 레벨다운=다음 주기 — 2026-07-21 실측).

앱이 그대로 띄울 수 있도록 결과 문구(title/message)를 함께 반환하고, webhook 지연/유실과 무관하게 화면과 자격이 어긋나지 않도록 로컬 구독도 즉시 반영한다 (webhook SUBS_PLAN_CHANGE_* 와 동일 함수 — 멱등).

삼성 구독 플랜 변경 › query Parameters

debug
​string

If value is "on", debug is included in response.

삼성 구독 플랜 변경 › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

삼성 구독 플랜 변경 › Request Body

PatchedOdxV3SubscriptionInAppSamsungRequest
country_code
​string · minLength: 1

TV country code (DPI invoice 조회용)

invoice_id
​string · minLength: 1

Samsung Checkout InvoiceID (buyItem 결과). it comes from client

삼성 구독 플랜 변경 › Responses

200
OdxV3SubscriptionInAppSamsung
country_code
​string · required

TV country code (DPI invoice 조회용)

invoice_id
​string · required

Samsung Checkout InvoiceID (buyItem 결과). it comes from client

PATCH/odx/api/v3/payment/subscription/samsung/
curl https://odkmedia.io/odx/api/v3/payment/subscription/samsung \
  --request PATCH \
  --header 'Content-Type: application/json' \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>' \
  --data '{
  "country_code": "country_code",
  "invoice_id": "invoice_id"
}'
Example Request Body
{
  "country_code": "country_code",
  "invoice_id": "invoice_id"
}
Example Responses
{
  "country_code": "country_code",
  "invoice_id": "invoice_id"
}
application/json

삼성 구매/변경 가능 여부 사전 확인

GET
https://odkmedia.io
/odx/api/v3/payment/subscription/samsung/purchase-eligibility/

구매 전 사전 검증(pre-check) — amazon purchase-eligibility와 동일 계약.

Samsung은 CustomID=uuid라 계정 매핑 충돌 검사는 불필요. 대신 활성 Samsung 구독이 있으면(신규 구매는 불가) DPI changeable-products로 변경 가능 상품 목록을 함께 반환해, 앱이 플랜변경 UI(→ PATCH)를 그릴 수 있게 한다.

삼성 구매/변경 가능 여부 사전 확인 › query Parameters

debug
​string

If value is "on", debug is included in response.

삼성 구매/변경 가능 여부 사전 확인 › Headers

Service-Name
​string · enum · required

요청을 처리할 서비스. v3 에서 유효한 값은 odk, odc 뿐이다 (content.constants.Service; v4 는 다른 값 체계를 쓴다).

Enum values:
odk
odc
Example: odk
Accept-Language
​string

"zh-Hans", "zh-Hant" is deprecated. Supported values: ko, en, es, zh-Hans, zh-Hant, pt, vi (default: en) — see LANGUAGES in app/settings/base.py.

Example: ko-KR,ko;q=0.9,en;q=0.8

삼성 구매/변경 가능 여부 사전 확인 › Responses

200
OdxV3SubscriptionInAppSamsung
country_code
​string · required

TV country code (DPI invoice 조회용)

invoice_id
​string · required

Samsung Checkout InvoiceID (buyItem 결과). it comes from client

GET/odx/api/v3/payment/subscription/samsung/purchase-eligibility/
curl https://odkmedia.io/odx/api/v3/payment/subscription/samsung/purchase-eligibility \
  --header 'Service-Name: odk' \
  --header 'Authorization: <api-key>'
Example Responses
{
  "country_code": "country_code",
  "invoice_id": "invoice_id"
}
application/json

pageplayback-log