# Payment Methods Payment methods represents payment method details associated with a customer account. ## Create a payment method - [POST /v1/payment-methods](https://developer.zuora.com/v1-api-reference/api/payment-methods/post_paymentmethods.md): You can use this operation to create either a payment method associated with a specific customer account, or an orphan payment method that is not associated with any customer account. To view the applicable fields for each payment method type, select the payment method type from the type list. The following types of the payment methods are supported: * CreditCard - Credit card payment method. * CreditCardReferenceTransaction - Credit Card Reference Transaction. See [Supported payment methods](https://knowledgecenter.zuora.com/Billing/Billing_and_Payments/L_Payment_Methods/Supported_Payment_Methods) for payment gateways that support this type of payment method. * ACH - ACH payment method. * SEPA - Single Euro Payments Area. * Betalingsservice - Direct Debit DK. * Autogiro - Direct Debit SE. * Bacs - Direct Debit UK. * Becs - Direct Entry AU. * Becsnz - Direct Debit NZ. * PAD - Pre-Authorized Debit. * PayPalCP - PayPal Commerce Platform payment method. Use this type if you are using a [PayPal Commerce Platform Gateway](https://knowledgecenter.zuora.com/Billing/Billing_and_Payments/M_Payment_Gateways/Supported_Payment_Gateways/PayPal_Commerce_Platform_Gateway) instance. * PayPalEC - PayPal Express Checkout payment method. Use this type if you are using a [PayPal Payflow Pro Gateway](https://knowledgecenter.zuora.com/CB_Billing/M_Payment_Gateways/Supported_Payment_Gateways/PayPal_Payflow_Pro%2C_Website_Payments_Payflow_Edition%2C_Website_Pro_Payment_Gateway) instance. * PayPalNativeEC - PayPal Native Express Checkout payment method. Use this type if you are using a [PayPal Express Checkout Gateway](https://knowledgecenter.zuora.com/CB_Billing/M_Payment_Gateways/Supported_Payment_Gateways/PayPal_Express_Checkout_Gateway) instance. * PayPalAdaptive - PayPal Adaptive payment method. Use this type if you are using a [PayPal Adaptive Payment Gateway](https://knowledgecenter.zuora.com/CB_Billing/M_Payment_Gateways/Supported_Payment_Gateways/PayPal_Adaptive_Payments_Gateway) instance. * AdyenApplePay - Apple Pay on Adyen Integration v2.0. See [Set up Adyen Apple Pay](https://knowledgecenter.zuora.com/Billing/Billing_and_Payments/L_Payment_Methods/Payment_Method_Types/Apple_Pay_on_Web/Set_up_Adyen_Apple_Pay) for details. * AdyenGooglePay - Google Pay on Adyen Integration v2.0. See [Set up Adyen Google Pay](https://knowledgecenter.zuora.com/Billing/Billing_and_Payments/L_Payment_Methods/Payment_Method_Types/Set_up_Adyen_Google_Pay) for details. * GooglePay - Google Pay on Chase Paymentech Orbital gateway integration. See [Set up Google Pay on Chase](https://knowledgecenter.zuora.com/Billing/Billing_and_Payments/L_Payment_Methods/Payment_Method_Types/Set_up_Google_Pay_on_Chase) for details. * AmazonPay - Amazon Pay integration. The fields marked as required must be specified when creating non-tokenized payment methods. For more information about the required fields for the tokenization of payment methods, see Create tokenized payment methods with existing tokens or account information. ## Create an Apple Pay payment method - [POST /v1/payment-methods/decryption](https://developer.zuora.com/v1-api-reference/api/payment-methods/post_paymentmethodsdecryption.md): The decryption API endpoint can conditionally perform 4 tasks in one atomic call: * Decrypt Apple Pay Payment token * Create Credit Card Payment Method in Zuora with decrypted Apple Pay information * Create a stored credential profile within the Apple Pay payment method * Process Payment on a specified Invoice (optional) ## Delete a payment method - [DELETE /v1/payment-methods/{payment-method-id}](https://developer.zuora.com/v1-api-reference/api/payment-methods/delete_paymentmethods.md): Deletes a credit card payment method. If the specified payment method is the account's default payment method, the request will fail. In that case, you must first designate a different payment method for that customer to be the default. ## Retrieve a payment method - [GET /v1/payment-methods/{payment-method-id}](https://developer.zuora.com/v1-api-reference/api/payment-methods/get_paymentmethod.md): Use this operation to get the detailed information of an electronic payment method. To retrieve information of both electronic and non-electronic payment methods, use the Object Query operation. Note: This operation also supports retrieving the custom payment method created through the Open Payment Method service. ## Update a payment method - [PUT /v1/payment-methods/{payment-method-id}](https://developer.zuora.com/v1-api-reference/api/payment-methods/put_paymentmethod.md): 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 ## Verify a payment method - [PUT /v1/payment-methods/{payment-method-id}/verify](https://developer.zuora.com/v1-api-reference/api/payment-methods/put_verifypaymentmethods.md): Sends an authorization request to the corresponding payment gateway to verify the payment method, even though no changes are made for the payment method. Supported payment methods are Credit Cards and Paypal. Zuora now supports performing a standalone zero dollar verification or one dollar authorization for credit cards. It also supports a billing agreement status check on PayPal payment methods. If a payment method is created by Hosted Payment Pages and is not assigned to any billing account, the payment method cannot be verified through this operation. ## Scrub a payment method - [PUT /v1/payment-methods/{payment-method-id}/scrub](https://developer.zuora.com/v1-api-reference/api/payment-methods/put_scrubpaymentmethods.md): This operation enables you to replace all sensitive data in a payment method, related payment method snapshot table, and four related log tables with dummy values that will be stored in Zuora databases. This operation will scrub the sensitive data and soft-delete the specified payment method at the same time. If you want to delete or anonymize personal data in Zuora, you must scrub the payment method before anonymizing the associated account and contact. See Delete or anonymize personal data for more information. Note: In order to use this operation, you must ensure that the Scrub Sensitive Data of Specific Payment Method payments permission is enabled in your user role. Contact your tenant administrator if you want to enable this permission. See Scrub Payment Methods for more information. ## Retrieve the balance of a bank account - [GET /v1/payment-methods/{payment-method-id}/balance](https://developer.zuora.com/v1-api-reference/api/payment-methods/getbankaccountbalance.md): Zuora supports Plaid's Auth and Balance products for ACH transactions. Auth authenticates account details before sending requests to the gateway, while Balance checks the real-time account balance before transactions. Use this API operation to implement the integration with Plaid Balance manually. Before you use this API operation, ensure that the support for Plaid Auth and Balance is enabled. For more information, see Enable the support for Plaid account validation solution. ## List stored credential profiles of a payment method - [GET /v1/payment-methods/{payment-method-id}/profiles](https://developer.zuora.com/v1-api-reference/api/payment-methods/get_storedcredentialprofiles.md): Retrieves the stored credential profiles within a payment method. ## Create a stored credential profile - [POST /v1/payment-methods/{payment-method-id}/profiles](https://developer.zuora.com/v1-api-reference/api/payment-methods/post_createstoredcredentialprofile.md): Creates a stored credential profile within a payment method. The stored credential profile represents a consent agreement that you have established with a customer. When you use the payment method in a transaction, Zuora may include information from the stored credential profile to inform the payment processor that the transaction is related to your pre-existing consent agreement with the customer. ## Cancel a stored credential profile - [POST /v1/payment-methods/{payment-method-id}/profiles/{profile-number}/cancel](https://developer.zuora.com/v1-api-reference/api/payment-methods/post_cancelstoredcredentialprofile.md): Cancels a stored credential profile within a payment method. Cancelling the stored credential profile indicates that the stored credentials are no longer valid, per a customer request. You cannot reactivate the stored credential profile after you have cancelled it. ## Expire a stored credential profile - [POST /v1/payment-methods/{payment-method-id}/profiles/{profile-number}/expire](https://developer.zuora.com/v1-api-reference/api/payment-methods/post_expirestoredcredentialprofile.md): Expires a stored credential profile within a payment method. Expiring the stored credential profile indicates that the stored credentials are no longer valid, per an expiration policy in the stored credential transaction framework. You cannot reactivate the stored credential profile after you have expired it. ## List registered Apple Pay domains - [GET /v1/payment-methods/apple-pay/domains](https://developer.zuora.com/v1-api-reference/api/payment-methods/get_listapplepaydomains.md): Use this operation to retrieve details of your domains that are already registered with Apple for Apple Pay button integration implemented through Zuora's JavaScript SDK. You can use domainName as the query parameter to restrict domains returned in the response. Specify a domain name and the registered domains containing the specified domain name will be returned. For more information about Zuora's JavaScript SDK for Apple Pay integration, see Set up Apple Pay through the JavaScript SDK approach. ## Register an Apple Pay domain - [POST /v1/payment-methods/apple-pay/domains](https://developer.zuora.com/v1-api-reference/api/payment-methods/post_registerapplepaydomain.md): Before adding Apple Pay to your checkout flow by integrating with the JavaScript SDK provided by Zuora, your domains that will show the Apple Pay button must be registered with Apple. Use this operation to register a domain. For more information about Zuora's JavaScript SDK for Apple Pay integration, see Set up Apple Pay through the JavaScript SDK approach. ## Unregister an Apple Pay domain - [DELETE /v1/payment-methods/apple-pay/domains/{id}](https://developer.zuora.com/v1-api-reference/api/payment-methods/delete_unregisterapplepaydomain.md): Use this operation to unregister a domain with Apple for Apple Pay button integration implemented through Zuora's JavaScript SDK. For more information about Zuora's JavaScript SDK for Apple Pay integration, see Set up Apple Pay through the JavaScript SDK approach. ## Create a payment session - [POST /web-payments/sessions](https://developer.zuora.com/v1-api-reference/api/payment-methods/post_createpaymentsession.md): Use this operation to create a payment session on your server side. The response contains a token for the payment session data. In addition to the required accountId and currency fields, you can specify the following fields to define the payment flow mode as one of the following: - Create and save a payment method: - processPayment: false - storePaymentMethod: true - amount - Process a one-time payment without saving the payment method: - processPayment: true - storePaymentMethod: false - amount or invoices + amount - Process the first payment and save the payment method for subsequent recurring payments: - processPayment: true - storePaymentMethod: true - amount or invoices + amount For more information, see the following articles: - Payment Form Implementation Guide - Set up a payment method through JavaScript SDK integration - Set up Alipay payment methods with Zuora JavaScript SDK