> For the complete documentation index, see [llms.txt](https://developer.paddle.com/llms.txt).

# See consent requirements for South Korean subscription renewals

Subscriptions now return consent_requirements, giving you visibility into renewal consent for South Korean subscribers.

---

## What's new?

We've added a `consent_requirements` field to the [subscription entity](https://developer.paddle.com/api-reference/subscriptions.md). It's returned by all subscription endpoints and included in subscription webhook event payloads.

- **consent_requirements** (array): List of active consent requirements for the subscription's current billing period. Returns an empty array if no consent requirement exists.

## How it works

To comply with [renewal notification requirements from the Korea Fair Trade Commission (KFTC)](https://www.paddle.com/news/industry/dark-patterns-targeted-south-korea-new-app-rules), customers in South Korea must explicitly consent to continued subscription charges when free trials or introductory discounts end. This consent system has been part of the Paddle platform since July 2025.

Previously, consent requirement data wasn't accessible through the API. With this release, the consent requirements for the subscription's current billing period are listed in the `consent_requirements` field on the [subscription entity](https://developer.paddle.com/api-reference/subscriptions.md) for all subscription API responses and webhook payloads.

{% callout type="info" %}
Customers in countries other than South Korea don't need to provide consent to continue subscription charges. For most subscriptions, the `consent_requirements` field returns an empty array `[]`.
{% /callout %}

You can check the `status` of the consent requirement to see whether consent is `pending`, has been `granted`, or has been `voided`. You can also check the `granted_at` and `voided_at` timestamps to see when consent was granted or voided.

### New webhook notification triggers

`subscription.updated` now occurs in two additional consent-related scenarios:

- **When a consent requirement is created** — A South Korean subscription enters a state that requires renewal consent, such as a trial nearing its end, or an introductory discount ending or being removed. The payload includes `consent_requirements` with `status: "pending"`.
- **When consent is granted** — Consent is granted when a customer completes the consent flow via the [customer portal](https://developer.paddle.com/concepts/sell/customer-portal.md). The payload includes `consent_requirements` with `status: "granted"` and `granted_at` with a timestamp.

If you have South Korean subscribers, you can listen to `subscription.updated` and inspect `consent_requirements` to react to state changes for customer consents. For example, you could build retention flows if consent hasn't been provided yet, or suppress renewal reminder communications once consent has been granted.

## Next steps

This change is available in version `1` of the Paddle API.

It's a non-breaking change, meaning it doesn't impact existing integrations.

If you have South Korean subscribers, you can [list subscriptions](https://developer.paddle.com/api-reference/subscriptions.md) or listen to `subscription.updated` to observe the status of consent requirements and build retention flows from it.
## Summary of changes

| Name | Type | Change | Entity | Description |
| --- | --- | --- | --- | --- |
| `consent_requirements` | Field | added | Subscription | Array of active consent requirements for the subscription's current billing period. Returns an empty array if no consent requirement exists. |
| `consent_requirements[].status` | Field | added | Subscription | Consent state — `pending`, `granted`, or `voided`. |
| `consent_requirements[].granted_at` | Field | added | Subscription | Timestamp when consent was granted, if applicable. |
| `subscription.updated` | Webhook | updated | subscription.updated webhook | Now also fires when a consent requirement is created and when consent is granted. |
