> ## Documentation Index
> Fetch the complete documentation index at: https://docs.staging.cope-demo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# subscription.amount_changed

> The recurring amount on a live subscription has changed.

# subscription.amount\_changed

> Generated from COPE public event contracts. Do not edit this page by hand.

Use this event to mirror a repriced subscription into your own billing records. The change is applied in place with no proration, so nothing is charged when it happens: the new amount bills at the existing cycle boundary. `effective_at` is when we expect that to be — it is derived from the subscription's next payment date at the moment of the change, and a cycle that later moves for an unrelated reason leaves it stale, so treat it as a prediction and take the charge itself as the confirmation. `old_recurring_amount_cents` and `new_recurring_amount_cents` are what the buyer is billed, quantity included. `initiated_by` is always `creator` on this event. `line_item_id` and `business_id` are internal references: do not store them or use them to identify the subscription — use `line_item.id`.

## Delivery Contract

| Field           | Value                                                                                |
| --------------- | ------------------------------------------------------------------------------------ |
| Encoding        | CloudEvents 1.0 structured JSON                                                      |
| Delivery        | At least once                                                                        |
| Idempotency     | Use the CloudEvents `source` + `id` tuple, or COPE `idempotency_key` when available. |
| Source          | `cope.subscription`                                                                  |
| Subject pattern | `subscription:<identifier>`                                                          |
| Category        | Subscriptions                                                                        |
| Availability    | Available in the public webhook reference.                                           |
| Schema title    | subscription.amount\_changed v1 payload                                              |
| Schema ID       | `https://schemas.cope.com/events/subscription.amount_changed/v1`                     |

## Payload Fields

| Field                        | Required | Type      | Allowed Values                | Description                                                                                                                                                                                                                                                                                                                                                                                           |   |
| ---------------------------- | -------- | --------- | ----------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | - |
| `actor_user_id`              | yes      | `integer` | -                             | -                                                                                                                                                                                                                                                                                                                                                                                                     |   |
| `business`                   | yes      | `object`  | -                             | -                                                                                                                                                                                                                                                                                                                                                                                                     |   |
| `buyer`                      | yes      | `object`  | -                             | -                                                                                                                                                                                                                                                                                                                                                                                                     |   |
| `currency`                   | yes      | `string`  | -                             | ISO 4217 3-letter uppercase currency code (format keeps the schema-lint money-pair check satisfied). Intentionally stricter than legacy payment.\* schemas, which permit mixed case — do not loosen for consistency.                                                                                                                                                                                  |   |
| `effective_at`               | no       | \`string  | null\`                        | -                                                                                                                                                                                                                                                                                                                                                                                                     | - |
| `event_type`                 | no       | `const`   | `subscription.amount_changed` | Optional on the wire, and normally absent: the event's type is carried by the CloudEvents envelope as `type`, so the payload does not repeat it. It is declared here so that if you copy the envelope's type onto the payload before validating the payload against this schema, that validation still passes. Read the envelope rather than depending on this field — a payload without it is valid. |   |
| `initiated_by`               | yes      | `const`   | `creator`                     | Always `creator` on this event: v1 covers creator-initiated price changes only. A support- or admin-initiated change is a different fact and will arrive as a new schema version rather than as a new value here.                                                                                                                                                                                     |   |
| `interval`                   | no       | \`string  | null\`                        | `day`, `week`, `month`, `year`                                                                                                                                                                                                                                                                                                                                                                        | - |
| `interval_count`             | no       | \`integer | null\`                        | -                                                                                                                                                                                                                                                                                                                                                                                                     | - |
| `line_item`                  | no       | `object`  | -                             | The line item this event concerns. Carries `object` (what it is) and `id` (which one); `id` is the public identifier a merchant addresses it by.                                                                                                                                                                                                                                                      |   |
| `line_item_id`               | yes      | `integer` | -                             | An internal reference. Do not store it or use it to identify the line item — use `line_item.id`. It is a database row number, not a public identifier, and it is removed at the contract cut.                                                                                                                                                                                                         |   |
| `manage_subscription_url`    | yes      | `string`  | -                             | -                                                                                                                                                                                                                                                                                                                                                                                                     |   |
| `new_recurring_amount_cents` | yes      | `integer` | -                             | The schema asserts only that the amount is positive. The producer enforces a higher minimum of 100 minor units, deliberately not pinned here so the contract does not move when that floor does. A change to zero is never emitted.                                                                                                                                                                   |   |
| `old_recurring_amount_cents` | yes      | `integer` | -                             | -                                                                                                                                                                                                                                                                                                                                                                                                     |   |
| `order`                      | no       | `object`  | -                             | The order this event concerns. Carries `object` (what it is) and `id` (which one); `id` is the public identifier a merchant addresses it by.                                                                                                                                                                                                                                                          |   |
| `product`                    | yes      | `object`  | -                             | -                                                                                                                                                                                                                                                                                                                                                                                                     |   |
| `reason`                     | no       | \`string  | null\`                        | -                                                                                                                                                                                                                                                                                                                                                                                                     | - |

## Example CloudEvent

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "data": {
    "actor_user_id": 1000,
    "business": {
      "name": "example_name",
      "owner_locale": "example_owner_locale"
    },
    "buyer": {
      "email": "buyer@example.com",
      "first_name": "example_first_name",
      "last_name": "example_last_name",
      "locale": "example_locale"
    },
    "currency": "EUR",
    "initiated_by": "creator",
    "line_item_id": 1000,
    "manage_subscription_url": "https://example.com",
    "new_recurring_amount_cents": 1000,
    "old_recurring_amount_cents": 1000,
    "product": {
      "name": "example_name"
    }
  },
  "datacontenttype": "application/json",
  "dataschema": "https://schemas.cope.com/events/subscription.amount_changed/v1",
  "id": "subscription.amount_changed:example",
  "idempotency_key": "subscription.amount_changed:example",
  "source": "cope.subscription",
  "specversion": "1.0",
  "subject": "subscription:example",
  "time": "2026-05-05T12:00:00.000Z",
  "type": "subscription.amount_changed"
}
```

## Compatibility

Fields may be added within the same major version. Removing or changing the meaning of a documented field requires a new event version.
