---
title: "Update a payment method"
method: PUT
path: "/v1/payment-methods/{payment-method-id}"
tags: ["Payment Methods"]
---

# Update a payment method

`PUT /v1/payment-methods/{payment-method-id}`

This operation allows you to update an existing payment method.

The following fields in the request body can be updated for any payment method types:
  - `maxConsecutivePaymentFailures`
  - `paymentRetryWindow`
  - `useDefaultRetryRule`


The following fields in the request body can be updated for any payment method types 
except for Credit Card Reference Transaction payment methods:
  - `authGateway`
  - `accountHolderInfo`
  - `gatewayOptions`
  - `ipAddress`
  - Custom fields

The following fields in the request body can be updated only for Credit Card payment methods:
  - `expirationMonth`
  - `expirationYear`
  - `securityCode`

The following field in the request body can be updated for Credit Card, Credit Card Reference Transaction, ACH, and
Bank Transfer payment methods:
  - `mandateInfo`

## Path parameters

- `payment-method-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

- PUTPaymentMethodRequest — Container for custom fields of a payment method object.
  - `accountHolderInfo` PUTPMAccountHolderInfo — The account holder information. This field is not supported in updating Credit Card Reference Transaction payment methods.
    - `addressLine1` string — The first line of the address for the account holder. This field is required for SEPA Direct Debit payment methods on Stripe v2 for [certain countries](https://stripe.com/docs/payments/sepa-debit/set-up-payment?platform=web#web-submit-payment-method).
    - `addressLine2` string — The second line of the address for the account holder.
    - `city` string — The city where the account holder stays.
    - `country` string — The country where the account holder stays. This field is required for SEPA payment methods on Stripe v2 for [certain countries](https://stripe.com/docs/payments/sepa-debit/set-up-payment?platform=web#web-submit-payment-method).
    - `email` string — The email address of the account holder.
    - `phone` string — The phone number of the account holder.
    - `state` string — The state where the account holder stays.
    - `zipCode` string — The zip code for the address of the account holder.
  - `accountKey` string — The customer account ID such as `2x92c0f859b0480f0159d3a4a6ee5bb6` or the customer account number such as `A02855638`. **Note:** You can use this field to associate an orphan payment method with a customer account. If a payment method is already associated with a customer account, you cannot change the associated payment method through this operation. You cannot remove the previous account ID and leave this field empty, either.
  - `authGateway` string — Specifies the ID of the payment gateway that Zuora will use to authorize the payments that are made with the payment method. This field is not supported in updating Credit Card Reference Transaction payment methods. If <a href="https://docs.zuora.com?resourceId=payments-gateway-routing" target="_blank">Payment Gateway Routing</a> is enabled: - If this field is not specified, gateway routing rules will be invoked. - If this field is specified, the specified gateway will be used to update the payment. If Payment Gateway Routing is disabled: - If this field is not specified, the default payment gateway will be used to update the payment. The default gateway of the customer account takes precedence over the default gateway of the tenant. - If this field is specified, the specified gateway will be used to update the payment.
  - `currencyCode` string — The currency used for payment method authorization.
  - `gatewayOptions` object — The field used to pass gateway-specific parameters and parameter values. The fields supported by gateways vary. For more information, see the Overview topic of each gateway integration in [Zuora Knowledge Center](https://docs.zuora.com?resourceId=payments-supported-payment-gateways). Zuora sends all the information that you specified to the gateway. If you specify any unsupported gateway option parameters, they will be ignored without error prompts. This field is not supported in updating Credit Card Reference Transaction payment methods.
    - `key` string — The name of a gateway-specific parameter.
    - `value` string — The value of the gateway-specific parameter.
  - `ipAddress` string — The IPv4 or IPv6 information of the user when the payment method is created or updated. Some gateways use this field for fraud prevention. If this field is passed to Zuora, Zuora directly passes it to gateways. If the IP address length is beyond 45 characters, a validation error occurs. For validating SEPA payment methods on Stripe v2, this field is required.
  - `mandateInfo` object — The mandate information for the Credit Card, Credit Card Reference Transaction, ACH, or Bank Transfer payment method.
    - `mandateId` string — The mandate ID.
    - `mandateReason` string — The reason of the mandate from the gateway side.
    - `mandateStatus` string — The status of the mandate from the gateway side.
  - `processingOptions` object — The container for payment method processing options.
    - `checkDuplicated` boolean — Indicates whether to perform a duplication check when you create a payment method of the following types: - Credit Card - ACH - Bank Transfer The default value is `false`. With this field set to `true`, Zuora will check the active and closed payment methods associated with the same billing account to ensure that no duplicate payment methods are created. For more information, see <a href="https://docs.zuora.com?resourceId=payments-duplication-check" target="_blank">Duplication check on payment methods</a>.
  - `maxConsecutivePaymentFailures` integer, nullable — The maximum number of payment failures allowed for this payment method. This field is only applicable if `useDefaultRetryRule` is set to `false`.
  - `paymentRetryWindow` integer, nullable — The retry interval in hours. This field is only applicable if `useDefaultRetryRule` is set to `false`.
  - `useDefaultRetryRule` boolean — Specifies whether to apply the default retry rule configured for your tenant in the Zuora Payments settings: - To use the default retry rule, specify `true`. - To use the custom retry rule specific to this payment method, specify `false`.
  - `expirationMonth` integer — One or two digits expiration month (1-12).
  - `expirationYear` integer — Four-digit expiration year.
  - `securityCode` string — Optional. It is the CVV or CVV2 security code specific for the credit card or debit card. To ensure PCI compliance, this value is not stored and cannot be queried. If securityCode code is not passed in the request payload, this operation only updates related fields in the payload. It does not validate the payment method through the gateway. If securityCode is passed in the request payload, this operation retrieves the credit card information from payload and validates them through the gateway.

## Response `200`

OK

- PUTPaymentMethodResponse
  - `id` string — ID of the updated payment method.
  - `success` boolean — Returns `true` if the request was processed successfully.

## 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)
