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

This operation allows you to update an existing payment method.

The following request body fields can be updated for any payment method types except for Credit Card Reference Transaction:

The following request body fields can be updated only for the Credit Card payment method:

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

Servers

Path parameters

Name Type Required Description
payment-method-id String Yes

Unique ID of the payment method to update.

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/json"

Content-Encoding String No

Include the Content-Encoding: gzip header to compress a request. With this header specified, you should upload a gzipped file for the request payload instead of sending the JSON payload.

Zuora-Track-Id String No

A custom identifier for tracing the API call. If you set a value for this header, Zuora returns the same value in the response headers. This header enables you to associate your system process identifiers with Zuora API calls, to assist with troubleshooting in the event of an issue.

The value of this field must use the US-ASCII character set and must not include any of the following characters: colon (:), semicolon (;), double quote ("), and quote (').

Authorization String No

The value is in the Bearer {token} format where {token} is a valid OAuth token generated by calling Create an OAuth token.

Zuora-Entity-Ids String No

An entity ID. If you have Zuora Multi-entity enabled and the OAuth token is valid for more than one entity, you must use this header to specify which entity to perform the operation in. If the OAuth token is only valid for a single entity, or you do not have Zuora Multi-entity enabled, you do not need to set this header.

Zuora-Org-Ids String No

Comma separated IDs. If you have Zuora Multi-Org enabled, you can use this header to specify which orgs to perform the operation in. If you do not have Zuora Multi-Org enabled, you should not set this header.

The IDs must be a sub-set of the user's accessible orgs. If you specify an org that the user does not have access to, the operation fails.

If the header is not set, the operation is performed in scope of the user's accessible orgs.

Accept-Encoding String No

Include the Accept-Encoding: gzip header to compress responses as a gzipped file. It can significantly reduce the bandwidth required for a response.

If specified, Zuora automatically compresses responses that contain over 1000 bytes of data, and the response contains a Content-Encoding header with the compression algorithm so that your client can decompress it.

Request body fields

Name Type Required Description
currencyCode String No

The currency used for payment method authorization.

gatewayOptions Object No

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.

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.

gatewayOptions.key String No

The name of a gateway-specific parameter.

gatewayOptions.value String No

The value of the gateway-specific parameter.

authGateway String No

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.

securityCode String No

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.

ipAddress String No

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.

processingOptions Object No

The container for payment method processing options.

processingOptions.checkDuplicated Boolean No

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 Duplication check on payment methods.

accountKey String No

The ID of the customer account associated with this payment method, such as 2x92c0f859b0480f0159d3a4a6ee5bb6.

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.

mandateInfo Object No

The mandate information for the Credit Card, Credit Card Reference Transaction, ACH, or Bank Transfer payment method.

mandateInfo.mandateStatus String No

The status of the mandate from the gateway side.

mandateInfo.mandateReason String No

The reason of the mandate from the gateway side.

mandateInfo.mandateId String No

The mandate ID.

accountHolderInfo Object No

The account holder information. This field is not supported in updating Credit Card Reference Transaction payment methods.

accountHolderInfo.email String No

The email address of the account holder.

accountHolderInfo.phone String No

The phone number of the account holder.

accountHolderInfo.country String No

The country where the account holder stays.

This field is required for SEPA payment methods on Stripe v2 for certain countries.

accountHolderInfo.state String No

The state where the account holder stays.

accountHolderInfo.zipCode String No

The zip code for the address of the account holder.

accountHolderInfo.addressLine1 String No

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.

accountHolderInfo.city String No

The city where the account holder stays.

accountHolderInfo.addressLine2 String No

The second line of the address for the account holder.

expirationMonth Integer No

One or two digits expiration month (1-12).

expirationYear Integer No

Four-digit expiration year.

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.