Skip to main content

IAP

The IAP namespace groups all in-app purchase (IAP) functionality: one-time purchases, subscription purchases, product list retrieval, and order management. It also documents the TossPay general-purpose payment entry (checkoutPayment) on the same page. Payment authorization is handled inside the Toss app — no PermissionName approval is required.

Methods

MethodPurpose
checkoutPaymentOpen the TossPay checkout sheet to authenticate a payToken-based payment. Non-SKU general flow.
IAP.completeProductGrantSignal to the app that product fulfillment is complete.
IAP.createOneTimePurchaseOrderNavigate to a one-time purchase checkout page.
IAP.createSubscriptionPurchaseOrderNavigate to a subscription purchase checkout page.
IAP.getCompletedOrRefundedOrdersRetrieve completed or refunded orders (paginated).
IAP.getPendingOrdersRetrieve orders that are awaiting fulfillment.
IAP.getProductItemListFetch the list of purchasable products.
IAP.getSubscriptionInfoQuery the current status of a subscription order.

checkoutPayment is a flat top-level export — not an IAP.* namespace member — but lives on the same sdk-example page and shares the payment domain, so it is grouped here.

Permission

No permission required. The IAP namespace is not bound to a PermissionName; authorization for the payment flow is managed internally by the Toss app.

Typical purchase flow

getProductItemList() ← fetch available products

createOneTimePurchaseOrder / createSubscriptionPurchaseOrder
↓ processProductGrant callback
↓ fulfill on your server
completeProductGrant() ← signal fulfillment complete

Both order methods (createOneTimePurchaseOrder, createSubscriptionPurchaseOrder) return a cleanup function. You must call it when the payment flow ends to release app-bridge resources.

Minimum supported versions

MethodAndroidiOS
getProductItemList5.219.05.219.0
getCompletedOrRefundedOrders5.231.05.231.0
getPendingOrders5.234.05.231.0
completeProductGrant5.233.05.233.0
createOneTimePurchaseOrder
createSubscriptionPurchaseOrder
getSubscriptionInfo

Methods may return undefined on app versions below the minimum. Guard with isMinVersionSupported() or a nullish check on the return value.

Try it live

The IAP page in sdk-example walks through the full purchase workflow interactively.

Open in sdk-example

External references