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

# Update custom data for an open checkout

Add or change custom data against a checkout that's already open by passing it to Paddle.js.

---

## What's new?

We've added `customData` as a supported parameter for the [`Paddle.Checkout.updateCheckout()`](https://developer.paddle.com/paddlejs/methods/paddle-checkout-updatecheckout.md) method in Paddle.js. You can use this to update custom data for an open checkout.

- **customData** (object or null): Your own structured key-value data to include with this checkout. Passed data is held against the related transaction. If a transaction is for recurring items, custom data is copied to the related subscription when created. If custom data already exists, it's replaced. Must be valid JSON and contain at least one key.

## How it works

You can use [`Paddle.Checkout.updateCheckout()`](https://developer.paddle.com/paddlejs/methods/paddle-checkout-updatecheckout.md) to dynamically update items, discount, and customer information for an open checkout.

With this update, you can now pass `customData` when updating an open checkout. [Custom data](https://developer.paddle.com/api-reference/about/custom-data.md) lets you add your own structured key-value data to entities across the API. It's great for storing information from your frontend implementation that you might want to use for analysis or as part of your integration.

As when passing custom data to [`Paddle.Checkout.open()`](https://developer.paddle.com/paddlejs/methods/paddle-checkout-open.md), the passed data is stored against the related transaction and copied to the related subscription when it's created. If the checkout already has custom data against it, it's overwritten.

## Examples

This example passes `customData` to [`Paddle.Checkout.updateCheckout()`](https://developer.paddle.com/paddlejs/methods/paddle-checkout-updatecheckout.md).

If successful, custom data on the open checkout is updated.

<!-- Example showing items and discountCode being passed to Paddle.Checkout.updateCheckout() -->
```javascript {% title="Paddle.Checkout.updateCheckout()" highlightLines="[2,3,4,5,6,7]" %}
Paddle.Checkout.updateCheckout({
  customData: {
    "utm_medium": "social",
    "utm_source": "linkedin",
    "utm_content": "launch-video",
    "integration_id": "AA-123"
  }
});
```

## Next steps

This change is live in Paddle.js now, so you can start passing `customData` to [`Paddle.Checkout.updateCheckout()`](https://developer.paddle.com/paddlejs/methods/paddle-checkout-updatecheckout.md) when you're ready.

You don't need to do anything to get the latest version of Paddle.js — we serve the latest version automatically.

If you've imported Paddle.js as a module using the [Paddle.js wrapper](https://github.com/PaddleHQ/paddle-js-wrapper), update to the latest version using your package manager to get the latest TypeScript definitions.
## Summary of changes

| Name | Type | Change | Entity | Description |
| --- | --- | --- | --- | --- |
| `customData` | Paddle.js param | added | Paddle.Checkout.updateCheckout() | Pass custom data to update against an open checkout. |
