> For the complete documentation index, see [llms.txt](https://developers-apps-in-toss.toss.im/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers-apps-in-toss.toss.im/guide/en/monetization/in-app-payment.md).

# In-app Payments

### What in-app purchases are

In-app purchases are a payment method that lets users buy paid products directly inside an app. Users can pay for the features, items, or content they need without leaving the app. In-app purchase products are divided into consumable items and non-consumable items.

* **Consumable items:** These are products that disappear after use. To use them again, you need to buy them again. (e.g. game items, coins, hint passes)
* **Non-consumable items:** These are products that can be used continuously after a one-time purchase. (e.g. premium feature unlocks, ad removal, access to specific content)

<figure><img src="/files/28c7b0640f56c2a736773d0ffe4cd32bb407e3a8" alt=""><figcaption></figcaption></figure>

***

### Benefits of in-app purchases

* Users can pay right away without leaving the app, which can reduce drop-off during checkout.
* You can generate revenue right away by selling paid items or subscription products from the early stage of the app launch.
* You can create a variety of payment models by combining consumable and non-consumable items.
* You can increase sales further by offering products that match the intended use.

{% hint style="info" %}
**Please note**

* In-app purchase refunds follow Apple and Google policies.
* The sale price is the amount after adding value-added tax (VAT) to the supply price.
* While the payment is in progress, pause in-app features such as music and video playback temporarily, and make sure they resume automatically after payment is completed.
  {% endhint %}

***

### Set it up in the console

#### 1) Register business information

To integrate in-app purchases, you must first register your business information. Business information must be registered before you can proceed to the next steps: agreeing to the terms and entering settlement information. Registration method: [guide](https://developers-apps-in-toss.toss.im/guide/operation/register-business)for details.

#### 2) Enter settlement information

To receive settlement for in-app purchase revenue, [register settlement information](https://developers-apps-in-toss.toss.im/guide/settlement)Please enter the settlement information in the 'Info' tab of your workspace, then request review. Review usually takes 2 to 3 business days on average.

#### 3) Register in-app products

Entering product information accurately helps users clearly understand what they are buying and reduces disputes and refund issues during operation.

There is a limit to the number of products you can register. Mini apps for games can have up to 80, and mini apps for non-games up to 30.

<figure><img src="/files/bde8152d8da85e0f80d6c891a6a505c600aac67b" alt=""><figcaption></figcaption></figure>

**Product type**

Please choose the type based on how the product is used. Products that are cash-like or convertible to cash, or products bundled with Toss Points, cannot be sold.

* Consumables: Products that are used up when used. To use them again, you must repurchase them. (e.g. game items, internal currency top-ups, one-time passes)
* Non-consumables: Products that can be used continuously after a one-time purchase. (e.g. ad removal, owned content)
* Auto-renewing subscription: Billed automatically at set intervals and available until canceled. (e.g. monthly membership, recurring content subscription)

**Product name**

* The product name should clearly reflect the features and conditions the user receives.
* Please write it to match the actual offering.
* Exaggerated or misleading wording cannot be used. For example, if the usage period is limited, you cannot write "unlimited."

**Product image**

* Please configure it so that users can understand the product intuitively.
* You can include text needed for identification, such as "30-day pass" or "100 coins."
* If you include promotional wording, be sure to also display the event period.
* The resolution must be registered as 1024 × 1024 px.
* Only images that do not raise copyright issues may be used, and the partner company must secure the images directly.
* Images that are sexual, violent, or potentially offensive cannot be used.

**Supply price**

* The supply price is the amount excluding value-added tax (VAT).
* You can set it from a minimum of 400 won to a maximum of 1,400,000 won.
* Only amounts in units of 10 won can be entered.
* When you enter the supply price, the sale price is calculated automatically. The feature to enter the sale price first and have the supply price calculated automatically is not supported at this time.

**Sale price**

The sale price is the final amount the user actually pays. It is automatically set as the amount obtained by adding value-added tax to the supply price.

**Consumable discount**

You can set discount benefits for in-app products of the consumable type. In the in-app product list in the console, click the '+ Discount' button shown for a consumable product to register discount information. When setting a discount, enter the discounted supply price, discount period, and discount target. Once a discount is set, it cannot be edited.

There are three discount targets.

* All users: Apply the discount regardless of payment history.
* Users without payment history: Apply the discount to users who have never made a purchase.
* Users with payment history: Apply the discount to users who have purchase history.

<figure><img src="/files/c8abb874fb07d79c62ae192dae7e13b92737c30e" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/38c4dab2eff8cb7f187e2d6af2b70ebc37adf9c1" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
**Please note**

* Users who have already purchased the discounted product cannot receive an additional discount, even if they are eligible.
* Refunded payments are also included in purchase history.
* Discounted products can also be purchased with the existing in-app purchase SDK. No separate SDK integration changes are required.
  {% endhint %}

**Settings exclusive to auto-renewing subscriptions**

If you select the auto-renewing subscription type, you can configure the following additional items.

* **Auto-renewal cycle:** Choose the interval at which payments repeat. (Weekly: automatic payment every 7 days / Monthly: every 30 days / Yearly: every 365 days)
* **Free trial:** Users can enjoy subscription benefits without payment for a set period. After the free trial ends, paid billing will start automatically. Choose from 3 days, 1 week, 2 weeks, or 1 month.
* **New subscription discount:** Offer a discounted price for a certain period to users who are starting a subscription for the first time. When you enter the discount period and discounted supply price, the discounted sale price is calculated automatically.
* **Resubscription discount:** Offer a discounted price when users who previously canceled their subscription resubscribe. When you enter the discount period and discounted supply price, the discounted sale price is calculated automatically.

<figure><img src="/files/8f1368fde00519646d9c63ff062c8cd260837b0e" alt=""><figcaption></figcaption></figure>

#### 4) Register payment notification URL

You can register a URL to receive notifications when payment status changes, such as subscription renewals or cancellations. Once a URL is registered, an HTTP request will be sent to that URL when the status changes.

* Payment notification URL: Please enter the server URL that will receive payment status change notifications.
* Basic Auth header: You can optionally enter a Basic Auth header value. If entered, it will be included in the HTTP header of the notification request as shown below.

```
Authorization: Basic {Basic Auth header value}
```

<figure><img src="/files/3dc85d2b6d6ae27de85cbadd6d49bb2aa161e7e0" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/4eb8f963966039c3b16c9d514100b1d75616bb9a" alt=""><figcaption></figcaption></figure>

#### 5) Check payment and refund history

<figure><img src="/files/538db98c925930aa051fdbc3a40bd8ad8f01ae12" alt=""><figcaption></figcaption></figure>

**Payment history**

This is the history of products purchased by users in the mini app.

* Delivered: This means that the purchased product has been fully provided to the user.
* Payment completed: The payment has been made, but the purchased product has not yet been delivered.

**Refund history**

This is the history of refund requests made by users. You can review the reason for the refund request and reject or approve it. Users who paid with in-app purchases can request a refund by tapping the 'Request refund' button in the Toss app.

The refund statuses are as follows.

* Refund request approved: A request that the partner company approved for refund. Once approved, a review request is sent to the app marketplace.
* Refund request rejected: A request that the partner company rejected, or a refund that was rejected by the app marketplace.
* Refund completed: A refund completed by the app marketplace.

<figure><img src="/files/4f0a8940a44c5a4b0856da31b24dabff4f0d26ef" alt=""><figcaption></figcaption></figure>

**Refund policy by marketplace**

In-app purchase refunds are handled differently depending on the user's operating system (OS) and marketplace policy.

<details>

<summary>Android</summary>

* Users request refunds directly in the Toss app.
* The partner company can check requests in the 'Refund history' menu of the App in Toss console and approve or reject them.
* However, the final approval or rejection is determined by Google Play.
* The refund result is sent to the user as a push notification, and the user can also check it on the order details screen. The same notification is sent even if the partner company or Google Play rejects the refund.
* Please review both your internal policy and Google Play policy before handling refund requests.

</details>

<details>

<summary>iOS</summary>

* Refunds for iOS users are fully managed by Apple. Apple directly decides on and approves all refunds.
* The partner company cannot approve or reject refunds. This is because Apple does not provide the refund request function externally.
* The partner company can only check the status through the payment status inquiry API.

</details>

***

### Integrate development

Product list inquiry, one-time payment request, etc. [Development integration method](https://developers-apps-in-toss.toss.im/documentation/api/iap#undefined)can be checked.

Payment status inquiry [Development integration method](https://developers-apps-in-toss.toss.im/documentation/api/iap)can be checked.

***

### Check performance

You can view performance metrics for in-app purchases integrated with development on a single screen. Analyze revenue flow and user payment behavior together to improve product composition and operational strategy. Data is updated sequentially starting after 8:00 AM on D+1.

* Revenue metrics: total payment amount, total revenue, average revenue per payer, revenue per paying user
* User metrics: active users, paying users, new paying users, re-paying users, payment rate, final conversion rate

<figure><img src="/files/c950e3d94b642705fcfe3d0ac1343c14d59061d2" alt=""><figcaption></figcaption></figure>

***

### Frequently asked questions

<details>

<summary>What is the in-app purchase fee?</summary>

The in-app purchase fee includes a 15% app marketplace fee (subject to change based on future revenue) + a 5% Toss fee.

For more details, please see Settlement Guide > In-app Purchases.

</details>

<details>

<summary>I want to test in-app purchases.</summary>

You can test in-app purchases in the sandbox. Please check the guide.

</details>

<details>

<summary>What should I do if a user wants a refund?</summary>

For iOS users, please direct them to Apple Support. (Apple has all authority.)

For Android users, please guide them to submit a refund request in the Toss app as shown in the guide.

</details>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://developers-apps-in-toss.toss.im/guide/en/monetization/in-app-payment.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
