---
title: "Replace a payment resource"
method: PUT
path: "/v1/checkout/payment-resources/{id}"
tags: ["Payment-Resources"]
---

# Replace a payment resource

`PUT /v1/checkout/payment-resources/{id}`

Replaces all editable fields of an existing payment resource. Use this for full updates.

## Path parameters

- `id` string, required

## Headers

- `Content-Type` string
- `PayPal-Auth-Assertion` string — Header for an API client-provided JWT assertion that identifies the merchant. Establishing the consent to act-on-behalf of a merchant is a prerequisite for using this header.

## Request body

- PaymentResourceDetailedResponse — Payment resource details.
  - `id` string — Unique identifier for the payment resource (link or button).
  - `payment_link` string — The generated payment link URL for the transaction (present if integration_mode is link).
  - `links` LinkDescription[] — An array of related [HATEOAS links](/docs/api/reference/api-responses/#hateoas-links).
    - `href` string, required — The complete target URL. To make the related call, combine the method with this [URI Template-formatted](https://tools.ietf.org/html/rfc6570) link. For pre-processing, include the `$`, `(`, and `)` characters. The `href` is the key HATEOAS component that links a completed call with a subsequent call.
    - `rel` string, required — The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which serves as an ID for a link that unambiguously describes the semantics of the link. See [Link Relations](https://www.iana.org/assignments/link-relations/link-relations.xhtml).
    - `method` 'GET' | 'POST' | 'PUT' | 'DELETE' | 'HEAD' | 'CONNECT' | 'OPTIONS' | 'PATCH' — The HTTP method required to make the related call.
  - `create_time` string, ppaas_date_time_v3 — The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
  - `update_time` string, ppaas_date_time_v3 — The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
  - `status` 'ACTIVE' | 'INACTIVE' — Status of the payment resource.
  - `integration_mode` 'LINK', required — Determines how the payment resource is presented to customers. Currently, only LINK is supported, which generates a PayPal-hosted payment page with a shareable URL. This value is immutable after creation.
  - `type` 'BUY_NOW', required — The type of payment resource. Once a payment resource is created, this field cannot be changed.
  - `reusable` 'MULTIPLE' — Indicates if the payment resource can be used multiple times or only once.
  - `return_url` string, uri — URL to which the customer is redirected after completing the transaction.
  - `line_items` LineItem[] — List of individual item in payment resource.
    - `name` string — The product or service name displayed to customers during checkout.
    - `product_id` string — Your internal identifier for this product.
    - `description` string — Detailed information about the product or service shown to customers during checkout. Use this to provide additional context, specifications, or terms.
    - `unit_amount` Money — The currency and amount for a financial transaction, such as a balance or payment due.
      - `currency_code` string, ppaas_common_currency_code_v2, required — The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
      - `value` string, required — The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
    - `taxes` Tax[] — Taxes applied to this item. Tax is displayed separately to customers during checkout.
      - `name` string, required — The name of the tax applied on the invoice items.
      - `percent` string, ppaas_common_percentage_v2, required — The percentage, as a fixed-point, signed decimal number. For example, define a 19.99% interest rate as `19.99`.
      - `amount` Money — The currency and amount for a financial transaction, such as a balance or payment due.
        - `currency_code` string, ppaas_common_currency_code_v2, required — The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
        - `value` string, required — The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
      - `tax_note` string — The tax note used to track the tax related data.
    - `shipping` Shipping[] — Shipping fee for this item. Shipping fee is displayed separately to customers during checkout.
      - `name` ShippingName — The name of the party.
        - `full_name` string — When the party is a person, the party's full name.
      - `phone_number` ShippingPhoneNumber — The phone number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en).
        - `country_code` string, required — The country calling code (CC), in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the CC and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).
        - `national_number` string, required — The national number, in its canonical international [E.164 numbering plan format](https://www.itu.int/rec/T-REC-E.164/en). The combined length of the country calling code (CC) and the national number must not be greater than 15 digits. The national number consists of a national destination code (NDC) and subscriber number (SN).
      - `type` 'SHIPPING' | 'PICKUP_IN_PERSON' | 'PICKUP_IN_STORE' | 'PICKUP_FROM_PERSON' — A classification for the method of purchase fulfillment (e.g shipping, in-store pickup, etc). Either `type` or `options` may be present, but not both.
      - `address` ShippingAddress — The portable international postal address. Maps to [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata) and HTML 5.1 [Autofilling form controls: the autocomplete attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).
        - `address_line_1` string — The first line of the address, such as number and street, for example, `173 Drury Lane`. Needed for data entry, and Compliance and Risk checks. This field needs to pass the full address.
        - `address_line_2` string — The second line of the address, for example, a suite or apartment number.
        - `admin_area_2` string — A city, town, or village. Smaller than `admin_area_level_1`.
        - `admin_area_1` string — The highest-level sub-division in a country, which is usually a province, state, or ISO-3166-2 subdivision. This data is formatted for postal delivery, for example, `CA` and not `California`. Value, by country, is:<ul><li>UK. A county.</li><li>US. A state.</li><li>Canada. A province.</li><li>Japan. A prefecture.</li><li>Switzerland. A *kanton*.</li></ul>
        - `postal_code` string — The postal code, which is the ZIP code or equivalent. Typically required for countries with a postal code or an equivalent. See [postal code](https://en.wikipedia.org/wiki/Postal_code).
        - `country_code` string, ppaas_common_country_code_v2, required — The [two-character ISO 3166-1 code](/docs/integration/direct/rest/country-codes/) that identifies the country or region.<blockquote><strong>Note:</strong> The country code for Great Britain is <code>GB</code> and not <code>UK</code> as used in the top-level domain names for that country. Use the `C2` country code for China worldwide for comparable uncontrolled price (CUP) method, bank card, and cross-border transactions.</blockquote>
    - `collect_shipping_address` boolean — Prompts customers for a shipping address during checkout for this item. Set to true for physical goods that require delivery, false for digital goods.
    - `customer_notes` CustomerNote[] — Label for a custom field to collect additional information from customers about this item (e.g., "Engraving text" or "Special instructions"). Can be set as mandatory.
      - `required` boolean — Whether this custom field is required for checkout. Set to true to make the field mandatory.
      - `label` string — The label displayed to customers for this custom input field (e.g., "Enter engraving text" or "Delivery instructions").
    - `variants` Variants — Product variants such as size, color, or material presented to customers during checkout. Each variant (e.g., "Size") can have up to 10 options (e.g., "S", "M", "L", "XL"). Supports up to 5 variants total. One variant can be designated as primary to enable different prices per option.
      - `dimensions` Dimension[], required — List of variant dimensions available for this product. Each dimension can have multiple options.
        - `name` string, required — The name of the variant dimension (e.g., "Size", "Color").
        - `primary` boolean, required — Only one dimension has <code>primary</code> set to true. Only options in the primary dimension can have <code>unit_amount</code>.
        - `options` DimensionOption[], required — List of option available.
          - `label` string, required — The display label for this option (e.g., "Large").
          - `unit_amount` Money — The currency and amount for a financial transaction, such as a balance or payment due.
            - `currency_code` string, ppaas_common_currency_code_v2, required — The [three-character ISO-4217 currency code](/docs/integration/direct/rest/currency-codes/) that identifies the currency.
            - `value` string, required — The value, which might be:<ul><li>An integer for currencies like `JPY` that are not typically fractional.</li><li>A decimal fraction for currencies like `TND` that are subdivided into thousandths.</li></ul>For the required number of decimal places for a currency code, see [Currency Codes](/docs/integration/direct/rest/currency-codes/).
    - `adjustable_quantity` AdjustableQuantity — Allows customers to change the quantity of this item during checkout.
      - `maximum` integer, required — The maximum quantity customers can select. Must be between 1 and 100. Setting this value enables the quantity picker at checkout.
  - `code_snippets` CodeSnippet — Code snippets holds the code needed to inject payment resources for merchant experience. Only applicable when integration_mode="BUTTON" & type="BUY_NOW".
    - `single` Single — Code snippet to place the PayPal button on your site. Applicable only when integration_mode="BUTTON" & type="BUY_NOW".
      - `body` string — Paste this code in your page's body tag, ideally near your product. You can repeat this for each payment resource you have on the page.
    - `stacked` CodeSnippetStacked[] — Code snippets to place the PayPal buttons on your site.
      - `framework` 'HTML' | 'REACT', required — To identify the flavour of code snippets for stacked button (e.g. "HTML", "REACT").
      - `head` string — Paste this code in your website’s head (or at the top of your page’s body above the Part 2 code) only once per page.
      - `body` string — Paste this code in your page's body.
      - `button_placement` string — Paste this code in the page where you want the button to show up, near your product.

## Response `204`

A successful request returns the HTTP 204 No Content status code with no JSON response body.

## Other responses

- `400` — Request is not well-formed, syntactically incorrect, or violates schema.
- `403` — Authorization failed due to insufficient permissions.
- `422` — The requested action could not be performed, semantically incorrect, or failed business validation.
- `500` — An internal server error has occurred.
- `default` — The error response.

---

[API](https://skmtc.net/paypal/apis/payments.md) · [All operations](https://skmtc.net/paypal/apis/payments/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/paypal/payments/revisions/672aceee1190/schema)
