---
title: "Update a payment schedule item"
method: PUT
path: "/v1/payment-schedule-items/{psi-id}"
tags: ["Payment Schedules"]
---

# Update a payment schedule item

`PUT /v1/payment-schedule-items/{psi-id}`

Updates a payment schedule item by ID.

**Note:**
- The Payment Schedules feature is in the **Early Adopter** phase. We are actively soliciting feedback from a small set of early adopters before releasing it as generally available. To manag](https://docs.zuora.com?resourceId=payments-enable-manage-payments-settings).
- This operation is only available if you have [Invoice Settlement](https://docs.zuora.com?resourceId=billing-invoice-settlement) enabled.
- To link or unlink multiple payments with the item, specify the `linkPayments` and `unlinkPayments` field in the request body. 
- When the Multi-currency and Standalone Payments features are not enabled, you can create and update a payment schedule and payment schedule item in a currency other than the account currency.
- The maximum number of payments that are allowed to be linked to a payment schedule item is `10`.
- When unlinking and linking payments with the payment schedule item in one request, Zuora will first unlink the linked payments, and then link new payments to the item.

## Path parameters

- `psi-id` string, required

## Headers

- `Accept-Encoding` string
- `Content-Encoding` string
- `Zuora-Track-Id` string
- `Zuora-Entity-Ids` string
- `Zuora-Org-Ids` string
- `Zuora-Version` string

## Request body

- PUTPaymentScheduleItemRequest — Container for custom fields of a Payment Schedule Item object.
  - `amount` number — The amount of the payment.
  - `currency` string — The currency of the payment. **Note:** - For custom payments, if Multi-currency is enabled, the payment currency can be different from the account currency for custom payment. - For recurring payments, if Multi-currency is enabled, the payment currency can be different from the account currency but should be the same as billing currency for a recurring payment.
  - `description` string — The description of the payment schedule item.
  - `linkPayments` string[] — Container for payments linked to the payment schedule item.
  - `paymentGatewayId` string, nullable — ID of the payment gateway of the payment schedule item.
  - `paymentMethodId` string — ID of the payment method of the payment schedule item.
  - `paymentOption` PaymentSchedulePaymentOptionFields[] — Container for the paymentOption items, which describe the transactional level rules for processing payments. Currently, only the Gateway Options type is supported. Here is an example: ``` "paymentOption": [ { "type": "GatewayOptions", "detail": { "SecCode":"WEB" } } ] ``` `paymentOption` of the payment schedule takes precedence over `paymentOption` of the payment schedule item.
    - `detail` object — The field used to pass the transactional payment data to the gateway side in the key-value format.
      - `key` string — The name of the field.
      - `value` string — The value of the field.
    - `type` string — The type of the payment option. Currently, only `GatewayOptions` is supported for specifying Gateway Options fields supported by a payment gateway.
  - `runHour` integer — At which hour of the day in the tenant’s timezone this payment will be collected. If the payment `runHour` and `scheduledDate` are backdated, the system will collect the payment when the next runHour occurs.
  - `scheduledDate` string, date — The scheduled date when the payment is processed.
  - `unlinkPayments` string[] — Container for payments to be unlinked from the payment schedule item.

## Response `200`

OK

- PUTPaymentScheduleItemResponse — Container for custom fields of a Payment Schedule Item object.
  - `accountId` string — ID of the customer account that owns the payment schedule item, for example `402880e741112b310149b7343ef81234`.
  - `amount` number — The amount of the payment schedule item.
  - `balance` number — The remaining balance of payment schedule item.
  - `billingDocument` object
    - `id` string — ID of the billing document. for example, `2c9890306fb2121e016fb21a6b550041`.
    - `number` string — The number of the billing docuemnt, for example, `INV00002345`.
    - `type` string — Indicates whether the associated billing document is a debit memo or a invoice.
  - `cancellationReason` string, nullable — The reason for the cancellation of payment schedule item.
  - `createdById` string — The ID of the user who created the payment schedule item.
  - `createdDate` string, date — The date and time when the payment schedule item was created.
  - `currency` string — The currency of the payment.
  - `description` string, nullable — The description of the payment schedule item.
  - `errorMessage` string, nullable — The error message indicating if the error is related to the configuration or the payment collection.
  - `id` string — ID of the payment schedule item. For example, `412880e749b72b310149b7343ef81346`.
  - `number` string — Number of the payment schedule item.
  - `paymentGatewayId` string, nullable — ID of the payment gateway of the payment schedule item.
  - `paymentMethodId` string — ID of the payment method of the payment schedule item.
  - `paymentOption` PaymentSchedulePaymentOptionFields[] — Container for the paymentOption items, which describe the transactional level rules for processing payments. Currently, only the Gateway Options type is supported. `paymentOption` of the payment schedule takes precedence over `paymentOption` of the payment schedule item.
    - `detail` object — The field used to pass the transactional payment data to the gateway side in the key-value format.
      - `key` string — The name of the field.
      - `value` string — The value of the field.
    - `type` string — The type of the payment option. Currently, only `GatewayOptions` is supported for specifying Gateway Options fields supported by a payment gateway.
  - `paymentScheduleId` string — ID of the payment schedule that contains the payment schedule item, for example, `ID402880e749b72b310149b7343ef80005`,
  - `paymentScheduleNumber` string — Number of the payment schedule that contains the payment schedule item, for example, `ID402880e749b72b310149b7343ef80005`,
  - `psiPayments` LinkedPaymentID[] — Container for payments linked to the payment schedule item.
    - `paymentId` string — ID of the payment.
  - `runHour` integer — At which hour in the day in the tenant’s timezone this payment will be collected.
  - `scheduledDate` string, date — The scheduled date when the payment is processed.
  - `standalone` boolean — Indicates if the payment created by the payment schedule item is a standalone payment.
  - `status` 'Pending' | 'Processed' | 'Error' | 'Canceled' — ID of the payment method of the payment schedule item. - `Pending`: Waiting for processing. - `Processed`: The payment has been collected. - `Error`: Failed to collect the payment. - `Canceled`: After a pending payment schedule item is canceled by the user, the item is marked as `Canceled`.
  - `success` boolean — Returns `true` if the request was processed successfully.
  - `updatedById` string — The ID of the user who updated the payment schedule item.
  - `updatedDate` string, date — The date and time when the payment schedule item was last updated.

## Other responses

- `500` — Internal Server Error
- `4XX` — Request Errors

---

[API](https://skmtc.dev/zuora/apis/api-reference.md) · [All operations](https://skmtc.dev/zuora/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/zuora/api-reference/revisions/d11e237f3e54/schema)
