All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.stripe.param.PaymentIntentUpdateParams Maven / Gradle / Ivy

There is a newer version: 28.3.0-beta.1
Show newest version
// Generated by delombok at Wed Aug 05 16:28:32 PDT 2020
package com.stripe.param;

import com.google.gson.annotations.SerializedName;
import com.stripe.net.ApiRequestParams;
import com.stripe.net.ApiRequestParams.EnumParam;
import com.stripe.param.common.EmptyParam;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class PaymentIntentUpdateParams extends ApiRequestParams {
  /**
   * Amount intended to be collected by this PaymentIntent. A positive integer representing how much
   * to charge in the smallest currency
   * unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The
   * minimum amount is $0.50 US or equivalent in
   * charge currency. The amount value supports up to eight digits (e.g., a value of 99999999
   * for a USD charge of $999,999.99).
   */
  @SerializedName("amount")
  Long amount;
  /**
   * The amount of the application fee (if any) that will be applied to the payment and transferred
   * to the application owner's Stripe account. Must be greater than zero when provided. For more
   * information, see the PaymentIntents use case for connected accounts.
   */
  @SerializedName("application_fee_amount")
  Object applicationFeeAmount;
  /**
   * Three-letter ISO currency code,
   * in lowercase. Must be a supported currency.
   */
  @SerializedName("currency")
  Object currency;
  /**
   * ID of the Customer this PaymentIntent belongs to, if one exists.
   *
   * 

Payment methods attached to other Customers cannot be used with this PaymentIntent. * *

If present in combination with setup_future_usage, * this PaymentIntent's payment method will be attached to the Customer after the PaymentIntent * has been confirmed and any required actions from the user are complete. */ @SerializedName("customer") Object customer; /** * An arbitrary string attached to the object. Often useful for displaying to users. */ @SerializedName("description") Object description; /** * Specifies which fields in the response should be expanded. */ @SerializedName("expand") List expand; /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** * Set of key-value pairs that you can attach * to an object. This can be useful for storing additional information about the object in a * structured format. Individual keys can be unset by posting an empty value to them. All keys can * be unset by posting an empty value to {@code metadata}. */ @SerializedName("metadata") Object metadata; /** * ID of the payment method (a PaymentMethod, Card, or compatible Source * object) to attach to this PaymentIntent. */ @SerializedName("payment_method") Object paymentMethod; /** * If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will * appear in the payment_method * property on the PaymentIntent. */ @SerializedName("payment_method_data") PaymentMethodData paymentMethodData; /** * Payment-method-specific configuration for this PaymentIntent. */ @SerializedName("payment_method_options") PaymentMethodOptions paymentMethodOptions; /** * The list of payment method types (e.g. card) that this PaymentIntent is allowed to use. */ @SerializedName("payment_method_types") List paymentMethodTypes; /** * Email address that the receipt for the resulting payment will be sent to. If {@code * receipt_email} is specified for a payment in live mode, a receipt will be sent regardless of * your email settings. */ @SerializedName("receipt_email") Object receiptEmail; /** * If the PaymentIntent has a {@code payment_method} and a {@code customer} or if you're attaching * a payment method to the PaymentIntent in this request, you can pass {@code * save_payment_method=true} to save the payment method to the customer immediately. * *

If the payment method is already saved to a customer, this parameter does nothing. If this * type of payment method cannot be saved to a customer, the request will error. * *

Saving a payment method using this parameter is not recommended because it will * save the payment method even if it cannot be charged (e.g. the user made a typo). To ensure * that only payment methods which are likely to be chargeable are saved to a customer, use the * (setup_future_usage)[#payment_intents/object#payment_intent_object-setup_future_usage] * property, which saves the payment method after the PaymentIntent has been confirmed and all * required actions by the customer are complete. */ @SerializedName("save_payment_method") Boolean savePaymentMethod; /** * Indicates that you intend to make future payments with this PaymentIntent's payment method. * *

Providing this parameter will attach the payment method to * the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required * actions from the user are complete. If no Customer was provided, the payment method can still * be attached to a Customer * after the transaction completes. * *

When processing card payments, Stripe also uses {@code setup_future_usage} to dynamically * optimize your payment flow and comply with regional legislation and network rules, such as SCA. * *

If {@code setup_future_usage} is already set and you are performing a request using a * publishable key, you may only update the value from {@code on_session} to {@code off_session}. */ @SerializedName("setup_future_usage") EnumParam setupFutureUsage; /** * Shipping information for this PaymentIntent. */ @SerializedName("shipping") Object shipping; /** * This is a legacy field that will be removed in the future. It is the ID of the Source object to * attach to this PaymentIntent. Please use the {@code payment_method} field instead, which also * supports Cards and compatible Source * objects. */ @SerializedName("source") Object source; /** * For non-card charges, you can use this value as the complete description that appears on your * customers’ statements. Must contain at least one letter, maximum 22 characters. */ @SerializedName("statement_descriptor") Object statementDescriptor; /** * Provides information about a card payment that customers see on their statements. Concatenated * with the prefix (shortened descriptor) or statement descriptor that’s set on the account to * form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor. */ @SerializedName("statement_descriptor_suffix") Object statementDescriptorSuffix; /** * The parameters used to automatically create a Transfer when the payment succeeds. For more * information, see the PaymentIntents use case for connected accounts. */ @SerializedName("transfer_data") TransferData transferData; /** * A string that identifies the resulting payment as part of a group. {@code transfer_group} may * only be provided if it has not been set. See the PaymentIntents use case for connected accounts * for details. */ @SerializedName("transfer_group") Object transferGroup; private PaymentIntentUpdateParams(Long amount, Object applicationFeeAmount, Object currency, Object customer, Object description, List expand, Map extraParams, Object metadata, Object paymentMethod, PaymentMethodData paymentMethodData, PaymentMethodOptions paymentMethodOptions, List paymentMethodTypes, Object receiptEmail, Boolean savePaymentMethod, EnumParam setupFutureUsage, Object shipping, Object source, Object statementDescriptor, Object statementDescriptorSuffix, TransferData transferData, Object transferGroup) { this.amount = amount; this.applicationFeeAmount = applicationFeeAmount; this.currency = currency; this.customer = customer; this.description = description; this.expand = expand; this.extraParams = extraParams; this.metadata = metadata; this.paymentMethod = paymentMethod; this.paymentMethodData = paymentMethodData; this.paymentMethodOptions = paymentMethodOptions; this.paymentMethodTypes = paymentMethodTypes; this.receiptEmail = receiptEmail; this.savePaymentMethod = savePaymentMethod; this.setupFutureUsage = setupFutureUsage; this.shipping = shipping; this.source = source; this.statementDescriptor = statementDescriptor; this.statementDescriptorSuffix = statementDescriptorSuffix; this.transferData = transferData; this.transferGroup = transferGroup; } public static Builder builder() { return new Builder(); } public static class Builder { private Long amount; private Object applicationFeeAmount; private Object currency; private Object customer; private Object description; private List expand; private Map extraParams; private Object metadata; private Object paymentMethod; private PaymentMethodData paymentMethodData; private PaymentMethodOptions paymentMethodOptions; private List paymentMethodTypes; private Object receiptEmail; private Boolean savePaymentMethod; private EnumParam setupFutureUsage; private Object shipping; private Object source; private Object statementDescriptor; private Object statementDescriptorSuffix; private TransferData transferData; private Object transferGroup; /** * Finalize and obtain parameter instance from this builder. */ public PaymentIntentUpdateParams build() { return new PaymentIntentUpdateParams(this.amount, this.applicationFeeAmount, this.currency, this.customer, this.description, this.expand, this.extraParams, this.metadata, this.paymentMethod, this.paymentMethodData, this.paymentMethodOptions, this.paymentMethodTypes, this.receiptEmail, this.savePaymentMethod, this.setupFutureUsage, this.shipping, this.source, this.statementDescriptor, this.statementDescriptorSuffix, this.transferData, this.transferGroup); } /** * Amount intended to be collected by this PaymentIntent. A positive integer representing how * much to charge in the smallest * currency unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal * currency). The minimum amount is $0.50 US or equivalent in * charge currency. The amount value supports up to eight digits (e.g., a value of 99999999 * for a USD charge of $999,999.99). */ public Builder setAmount(Long amount) { this.amount = amount; return this; } /** * The amount of the application fee (if any) that will be applied to the payment and * transferred to the application owner's Stripe account. Must be greater than zero when * provided. For more information, see the PaymentIntents use case for connected * accounts. */ public Builder setApplicationFeeAmount(Long applicationFeeAmount) { this.applicationFeeAmount = applicationFeeAmount; return this; } /** * The amount of the application fee (if any) that will be applied to the payment and * transferred to the application owner's Stripe account. Must be greater than zero when * provided. For more information, see the PaymentIntents use case for connected * accounts. */ public Builder setApplicationFeeAmount(EmptyParam applicationFeeAmount) { this.applicationFeeAmount = applicationFeeAmount; return this; } /** * Three-letter ISO currency * code, in lowercase. Must be a supported * currency. */ public Builder setCurrency(String currency) { this.currency = currency; return this; } /** * Three-letter ISO currency * code, in lowercase. Must be a supported * currency. */ public Builder setCurrency(EmptyParam currency) { this.currency = currency; return this; } /** * ID of the Customer this PaymentIntent belongs to, if one exists. * *

Payment methods attached to other Customers cannot be used with this PaymentIntent. * *

If present in combination with setup_future_usage, * this PaymentIntent's payment method will be attached to the Customer after the PaymentIntent * has been confirmed and any required actions from the user are complete. */ public Builder setCustomer(String customer) { this.customer = customer; return this; } /** * ID of the Customer this PaymentIntent belongs to, if one exists. * *

Payment methods attached to other Customers cannot be used with this PaymentIntent. * *

If present in combination with setup_future_usage, * this PaymentIntent's payment method will be attached to the Customer after the PaymentIntent * has been confirmed and any required actions from the user are complete. */ public Builder setCustomer(EmptyParam customer) { this.customer = customer; return this; } /** * An arbitrary string attached to the object. Often useful for displaying to users. */ public Builder setDescription(String description) { this.description = description; return this; } /** * An arbitrary string attached to the object. Often useful for displaying to users. */ public Builder setDescription(EmptyParam description) { this.description = description; return this; } /** * Add an element to `expand` list. A list is initialized for the first `add/addAll` call, and * subsequent calls adds additional elements to the original list. See {@link * PaymentIntentUpdateParams#expand} for the field documentation. */ public Builder addExpand(String element) { if (this.expand == null) { this.expand = new ArrayList<>(); } this.expand.add(element); return this; } /** * Add all elements to `expand` list. A list is initialized for the first `add/addAll` call, and * subsequent calls adds additional elements to the original list. See {@link * PaymentIntentUpdateParams#expand} for the field documentation. */ public Builder addAllExpand(List elements) { if (this.expand == null) { this.expand = new ArrayList<>(); } this.expand.addAll(elements); return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll` * call, and subsequent calls add additional key/value pairs to the original map. See {@link * PaymentIntentUpdateParams#extraParams} for the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. * See {@link PaymentIntentUpdateParams#extraParams} for the field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** * Add a key/value pair to `metadata` map. A map is initialized for the first `put/putAll` call, * and subsequent calls add additional key/value pairs to the original map. See {@link * PaymentIntentUpdateParams#metadata} for the field documentation. */ @SuppressWarnings("unchecked") public Builder putMetadata(String key, String value) { if (this.metadata == null || this.metadata instanceof EmptyParam) { this.metadata = new HashMap(); } ((Map) this.metadata).put(key, value); return this; } /** * Add all map key/value pairs to `metadata` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. * See {@link PaymentIntentUpdateParams#metadata} for the field documentation. */ @SuppressWarnings("unchecked") public Builder putAllMetadata(Map map) { if (this.metadata == null || this.metadata instanceof EmptyParam) { this.metadata = new HashMap(); } ((Map) this.metadata).putAll(map); return this; } /** * Set of key-value pairs that you can attach * to an object. This can be useful for storing additional information about the object in a * structured format. Individual keys can be unset by posting an empty value to them. All keys * can be unset by posting an empty value to {@code metadata}. */ public Builder setMetadata(EmptyParam metadata) { this.metadata = metadata; return this; } /** * Set of key-value pairs that you can attach * to an object. This can be useful for storing additional information about the object in a * structured format. Individual keys can be unset by posting an empty value to them. All keys * can be unset by posting an empty value to {@code metadata}. */ public Builder setMetadata(Map metadata) { this.metadata = metadata; return this; } /** * ID of the payment method (a PaymentMethod, Card, or compatible Source * object) to attach to this PaymentIntent. */ public Builder setPaymentMethod(String paymentMethod) { this.paymentMethod = paymentMethod; return this; } /** * ID of the payment method (a PaymentMethod, Card, or compatible Source * object) to attach to this PaymentIntent. */ public Builder setPaymentMethod(EmptyParam paymentMethod) { this.paymentMethod = paymentMethod; return this; } /** * If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will * appear in the payment_method * property on the PaymentIntent. */ public Builder setPaymentMethodData(PaymentMethodData paymentMethodData) { this.paymentMethodData = paymentMethodData; return this; } /** * Payment-method-specific configuration for this PaymentIntent. */ public Builder setPaymentMethodOptions(PaymentMethodOptions paymentMethodOptions) { this.paymentMethodOptions = paymentMethodOptions; return this; } /** * Add an element to `paymentMethodTypes` list. A list is initialized for the first `add/addAll` * call, and subsequent calls adds additional elements to the original list. See {@link * PaymentIntentUpdateParams#paymentMethodTypes} for the field documentation. */ public Builder addPaymentMethodType(String element) { if (this.paymentMethodTypes == null) { this.paymentMethodTypes = new ArrayList<>(); } this.paymentMethodTypes.add(element); return this; } /** * Add all elements to `paymentMethodTypes` list. A list is initialized for the first * `add/addAll` call, and subsequent calls adds additional elements to the original list. See * {@link PaymentIntentUpdateParams#paymentMethodTypes} for the field documentation. */ public Builder addAllPaymentMethodType(List elements) { if (this.paymentMethodTypes == null) { this.paymentMethodTypes = new ArrayList<>(); } this.paymentMethodTypes.addAll(elements); return this; } /** * Email address that the receipt for the resulting payment will be sent to. If {@code * receipt_email} is specified for a payment in live mode, a receipt will be sent regardless of * your email settings. */ public Builder setReceiptEmail(String receiptEmail) { this.receiptEmail = receiptEmail; return this; } /** * Email address that the receipt for the resulting payment will be sent to. If {@code * receipt_email} is specified for a payment in live mode, a receipt will be sent regardless of * your email settings. */ public Builder setReceiptEmail(EmptyParam receiptEmail) { this.receiptEmail = receiptEmail; return this; } /** * If the PaymentIntent has a {@code payment_method} and a {@code customer} or if you're * attaching a payment method to the PaymentIntent in this request, you can pass {@code * save_payment_method=true} to save the payment method to the customer immediately. * *

If the payment method is already saved to a customer, this parameter does nothing. If this * type of payment method cannot be saved to a customer, the request will error. * *

Saving a payment method using this parameter is not recommended because it will * save the payment method even if it cannot be charged (e.g. the user made a typo). To ensure * that only payment methods which are likely to be chargeable are saved to a customer, use the * (setup_future_usage)[#payment_intents/object#payment_intent_object-setup_future_usage] * property, which saves the payment method after the PaymentIntent has been confirmed and all * required actions by the customer are complete. */ public Builder setSavePaymentMethod(Boolean savePaymentMethod) { this.savePaymentMethod = savePaymentMethod; return this; } /** * Indicates that you intend to make future payments with this PaymentIntent's payment method. * *

Providing this parameter will attach the payment method to * the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any * required actions from the user are complete. If no Customer was provided, the payment method * can still be attached to a * Customer after the transaction completes. * *

When processing card payments, Stripe also uses {@code setup_future_usage} to dynamically * optimize your payment flow and comply with regional legislation and network rules, such as SCA. * *

If {@code setup_future_usage} is already set and you are performing a request using a * publishable key, you may only update the value from {@code on_session} to {@code * off_session}. */ public Builder setSetupFutureUsage(SetupFutureUsage setupFutureUsage) { this.setupFutureUsage = setupFutureUsage; return this; } /** * Indicates that you intend to make future payments with this PaymentIntent's payment method. * *

Providing this parameter will attach the payment method to * the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any * required actions from the user are complete. If no Customer was provided, the payment method * can still be attached to a * Customer after the transaction completes. * *

When processing card payments, Stripe also uses {@code setup_future_usage} to dynamically * optimize your payment flow and comply with regional legislation and network rules, such as SCA. * *

If {@code setup_future_usage} is already set and you are performing a request using a * publishable key, you may only update the value from {@code on_session} to {@code * off_session}. */ public Builder setSetupFutureUsage(EmptyParam setupFutureUsage) { this.setupFutureUsage = setupFutureUsage; return this; } /** * Shipping information for this PaymentIntent. */ public Builder setShipping(Shipping shipping) { this.shipping = shipping; return this; } /** * Shipping information for this PaymentIntent. */ public Builder setShipping(EmptyParam shipping) { this.shipping = shipping; return this; } /** * This is a legacy field that will be removed in the future. It is the ID of the Source object * to attach to this PaymentIntent. Please use the {@code payment_method} field instead, which * also supports Cards and compatible Source * objects. */ public Builder setSource(String source) { this.source = source; return this; } /** * This is a legacy field that will be removed in the future. It is the ID of the Source object * to attach to this PaymentIntent. Please use the {@code payment_method} field instead, which * also supports Cards and compatible Source * objects. */ public Builder setSource(EmptyParam source) { this.source = source; return this; } /** * For non-card charges, you can use this value as the complete description that appears on your * customers’ statements. Must contain at least one letter, maximum 22 characters. */ public Builder setStatementDescriptor(String statementDescriptor) { this.statementDescriptor = statementDescriptor; return this; } /** * For non-card charges, you can use this value as the complete description that appears on your * customers’ statements. Must contain at least one letter, maximum 22 characters. */ public Builder setStatementDescriptor(EmptyParam statementDescriptor) { this.statementDescriptor = statementDescriptor; return this; } /** * Provides information about a card payment that customers see on their statements. * Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the * account to form the complete statement descriptor. Maximum 22 characters for the concatenated * descriptor. */ public Builder setStatementDescriptorSuffix(String statementDescriptorSuffix) { this.statementDescriptorSuffix = statementDescriptorSuffix; return this; } /** * Provides information about a card payment that customers see on their statements. * Concatenated with the prefix (shortened descriptor) or statement descriptor that’s set on the * account to form the complete statement descriptor. Maximum 22 characters for the concatenated * descriptor. */ public Builder setStatementDescriptorSuffix(EmptyParam statementDescriptorSuffix) { this.statementDescriptorSuffix = statementDescriptorSuffix; return this; } /** * The parameters used to automatically create a Transfer when the payment succeeds. For more * information, see the PaymentIntents use case for connected * accounts. */ public Builder setTransferData(TransferData transferData) { this.transferData = transferData; return this; } /** * A string that identifies the resulting payment as part of a group. {@code transfer_group} may * only be provided if it has not been set. See the PaymentIntents use case for connected * accounts for details. */ public Builder setTransferGroup(String transferGroup) { this.transferGroup = transferGroup; return this; } /** * A string that identifies the resulting payment as part of a group. {@code transfer_group} may * only be provided if it has not been set. See the PaymentIntents use case for connected * accounts for details. */ public Builder setTransferGroup(EmptyParam transferGroup) { this.transferGroup = transferGroup; return this; } } public static class PaymentMethodData { /** * If this is an {@code au_becs_debit} PaymentMethod, this hash contains details about the bank * account. */ @SerializedName("au_becs_debit") AuBecsDebit auBecsDebit; /** * If this is a {@code bacs_debit} PaymentMethod, this hash contains details about the Bacs * Direct Debit bank account. */ @SerializedName("bacs_debit") BacsDebit bacsDebit; /** * If this is a {@code bancontact} PaymentMethod, this hash contains details about the * Bancontact payment method. */ @SerializedName("bancontact") Bancontact bancontact; /** * Billing information associated with the PaymentMethod that may be used or required by * particular types of payment methods. */ @SerializedName("billing_details") BillingDetails billingDetails; /** * If this is an {@code eps} PaymentMethod, this hash contains details about the EPS payment * method. */ @SerializedName("eps") Eps eps; /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** * If this is an {@code fpx} PaymentMethod, this hash contains details about the FPX payment * method. */ @SerializedName("fpx") Fpx fpx; /** * If this is a {@code giropay} PaymentMethod, this hash contains details about the Giropay * payment method. */ @SerializedName("giropay") Giropay giropay; /** * If this is an {@code ideal} PaymentMethod, this hash contains details about the iDEAL payment * method. */ @SerializedName("ideal") Ideal ideal; /** * If this is an {@code interac_present} PaymentMethod, this hash contains details about the * Interac Present payment method. */ @SerializedName("interac_present") InteracPresent interacPresent; /** * Set of key-value pairs that you can attach * to an object. This can be useful for storing additional information about the object in a * structured format. Individual keys can be unset by posting an empty value to them. All keys * can be unset by posting an empty value to {@code metadata}. */ @SerializedName("metadata") Map metadata; /** * If this is a {@code p24} PaymentMethod, this hash contains details about the P24 payment * method. */ @SerializedName("p24") P24 p24; /** * If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA * debit bank account. */ @SerializedName("sepa_debit") SepaDebit sepaDebit; /** * The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a * name matching this value. It contains additional information specific to the PaymentMethod * type. */ @SerializedName("type") Type type; private PaymentMethodData(AuBecsDebit auBecsDebit, BacsDebit bacsDebit, Bancontact bancontact, BillingDetails billingDetails, Eps eps, Map extraParams, Fpx fpx, Giropay giropay, Ideal ideal, InteracPresent interacPresent, Map metadata, P24 p24, SepaDebit sepaDebit, Type type) { this.auBecsDebit = auBecsDebit; this.bacsDebit = bacsDebit; this.bancontact = bancontact; this.billingDetails = billingDetails; this.eps = eps; this.extraParams = extraParams; this.fpx = fpx; this.giropay = giropay; this.ideal = ideal; this.interacPresent = interacPresent; this.metadata = metadata; this.p24 = p24; this.sepaDebit = sepaDebit; this.type = type; } public static Builder builder() { return new Builder(); } public static class Builder { private AuBecsDebit auBecsDebit; private BacsDebit bacsDebit; private Bancontact bancontact; private BillingDetails billingDetails; private Eps eps; private Map extraParams; private Fpx fpx; private Giropay giropay; private Ideal ideal; private InteracPresent interacPresent; private Map metadata; private P24 p24; private SepaDebit sepaDebit; private Type type; /** * Finalize and obtain parameter instance from this builder. */ public PaymentMethodData build() { return new PaymentMethodData(this.auBecsDebit, this.bacsDebit, this.bancontact, this.billingDetails, this.eps, this.extraParams, this.fpx, this.giropay, this.ideal, this.interacPresent, this.metadata, this.p24, this.sepaDebit, this.type); } /** * If this is an {@code au_becs_debit} PaymentMethod, this hash contains details about the * bank account. */ public Builder setAuBecsDebit(AuBecsDebit auBecsDebit) { this.auBecsDebit = auBecsDebit; return this; } /** * If this is a {@code bacs_debit} PaymentMethod, this hash contains details about the Bacs * Direct Debit bank account. */ public Builder setBacsDebit(BacsDebit bacsDebit) { this.bacsDebit = bacsDebit; return this; } /** * If this is a {@code bancontact} PaymentMethod, this hash contains details about the * Bancontact payment method. */ public Builder setBancontact(Bancontact bancontact) { this.bancontact = bancontact; return this; } /** * Billing information associated with the PaymentMethod that may be used or required by * particular types of payment methods. */ public Builder setBillingDetails(BillingDetails billingDetails) { this.billingDetails = billingDetails; return this; } /** * If this is an {@code eps} PaymentMethod, this hash contains details about the EPS payment * method. */ public Builder setEps(Eps eps) { this.eps = eps; return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll` * call, and subsequent calls add additional key/value pairs to the original map. See {@link * PaymentIntentUpdateParams.PaymentMethodData#extraParams} for the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. * See {@link PaymentIntentUpdateParams.PaymentMethodData#extraParams} for the field * documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** * If this is an {@code fpx} PaymentMethod, this hash contains details about the FPX payment * method. */ public Builder setFpx(Fpx fpx) { this.fpx = fpx; return this; } /** * If this is a {@code giropay} PaymentMethod, this hash contains details about the Giropay * payment method. */ public Builder setGiropay(Giropay giropay) { this.giropay = giropay; return this; } /** * If this is an {@code ideal} PaymentMethod, this hash contains details about the iDEAL * payment method. */ public Builder setIdeal(Ideal ideal) { this.ideal = ideal; return this; } /** * If this is an {@code interac_present} PaymentMethod, this hash contains details about the * Interac Present payment method. */ public Builder setInteracPresent(InteracPresent interacPresent) { this.interacPresent = interacPresent; return this; } /** * Add a key/value pair to `metadata` map. A map is initialized for the first `put/putAll` * call, and subsequent calls add additional key/value pairs to the original map. See {@link * PaymentIntentUpdateParams.PaymentMethodData#metadata} for the field documentation. */ public Builder putMetadata(String key, String value) { if (this.metadata == null) { this.metadata = new HashMap<>(); } this.metadata.put(key, value); return this; } /** * Add all map key/value pairs to `metadata` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. * See {@link PaymentIntentUpdateParams.PaymentMethodData#metadata} for the field * documentation. */ public Builder putAllMetadata(Map map) { if (this.metadata == null) { this.metadata = new HashMap<>(); } this.metadata.putAll(map); return this; } /** * If this is a {@code p24} PaymentMethod, this hash contains details about the P24 payment * method. */ public Builder setP24(P24 p24) { this.p24 = p24; return this; } /** * If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA * debit bank account. */ public Builder setSepaDebit(SepaDebit sepaDebit) { this.sepaDebit = sepaDebit; return this; } /** * The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a * name matching this value. It contains additional information specific to the PaymentMethod * type. */ public Builder setType(Type type) { this.type = type; return this; } } public static class AuBecsDebit { /** * The account number for the bank account. */ @SerializedName("account_number") Object accountNumber; /** * Bank-State-Branch number of the bank account. */ @SerializedName("bsb_number") Object bsbNumber; /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; private AuBecsDebit(Object accountNumber, Object bsbNumber, Map extraParams) { this.accountNumber = accountNumber; this.bsbNumber = bsbNumber; this.extraParams = extraParams; } public static Builder builder() { return new Builder(); } public static class Builder { private Object accountNumber; private Object bsbNumber; private Map extraParams; /** Finalize and obtain parameter instance from this builder. */ public AuBecsDebit build() { return new AuBecsDebit(this.accountNumber, this.bsbNumber, this.extraParams); } /** The account number for the bank account. */ public Builder setAccountNumber(String accountNumber) { this.accountNumber = accountNumber; return this; } /** The account number for the bank account. */ public Builder setAccountNumber(EmptyParam accountNumber) { this.accountNumber = accountNumber; return this; } /** Bank-State-Branch number of the bank account. */ public Builder setBsbNumber(String bsbNumber) { this.bsbNumber = bsbNumber; return this; } /** Bank-State-Branch number of the bank account. */ public Builder setBsbNumber(EmptyParam bsbNumber) { this.bsbNumber = bsbNumber; return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.AuBecsDebit#extraParams} for * the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } } /** * The account number for the bank account. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getAccountNumber() { return this.accountNumber; } /** * Bank-State-Branch number of the bank account. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getBsbNumber() { return this.bsbNumber; } /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.AuBecsDebit#extraParams} for * the field documentation. */ public static class BacsDebit { /** * Account number of the bank account that the funds will be debited from. */ @SerializedName("account_number") Object accountNumber; /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** * Sort code of the bank account. (e.g., {@code 10-20-30}) */ @SerializedName("sort_code") Object sortCode; private BacsDebit(Object accountNumber, Map extraParams, Object sortCode) { this.accountNumber = accountNumber; this.extraParams = extraParams; this.sortCode = sortCode; } public static Builder builder() { return new Builder(); } public static class Builder { private Object accountNumber; private Map extraParams; private Object sortCode; /** Finalize and obtain parameter instance from this builder. */ public BacsDebit build() { return new BacsDebit(this.accountNumber, this.extraParams, this.sortCode); } /** Account number of the bank account that the funds will be debited from. */ public Builder setAccountNumber(String accountNumber) { this.accountNumber = accountNumber; return this; } /** Account number of the bank account that the funds will be debited from. */ public Builder setAccountNumber(EmptyParam accountNumber) { this.accountNumber = accountNumber; return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.BacsDebit#extraParams} for * the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.BacsDebit#extraParams} for * the field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** Sort code of the bank account. (e.g., {@code 10-20-30}) */ public Builder setSortCode(String sortCode) { this.sortCode = sortCode; return this; } public Builder setSortCode(EmptyParam sortCode) { this.sortCode = sortCode; return this; } } /** * Account number of the bank account that the funds will be debited from. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getAccountNumber() { return this.accountNumber; } /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } /** * Sort code of the bank account. (e.g., {@code 10-20-30}) */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getSortCode() { return this.sortCode; } } /** * Sort code of the bank account. (e.g., {@code 10-20-30}) */ public static class Bancontact { /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; private Bancontact(Map extraParams) { this.extraParams = extraParams; } public static Builder builder() { return new Builder(); } public static class Builder { private Map extraParams; /** Finalize and obtain parameter instance from this builder. */ public Bancontact build() { return new Bancontact(this.extraParams); } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.Bancontact#extraParams} for * the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } } /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.Bancontact#extraParams} for * the field documentation. */ public static class BillingDetails { /** * Billing address. */ @SerializedName("address") Address address; /** * Email address. */ @SerializedName("email") Object email; /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** * Full name. */ @SerializedName("name") Object name; /** * Billing phone number (including extension). */ @SerializedName("phone") Object phone; private BillingDetails(Address address, Object email, Map extraParams, Object name, Object phone) { this.address = address; this.email = email; this.extraParams = extraParams; this.name = name; this.phone = phone; } public static Builder builder() { return new Builder(); } public static class Builder { private Address address; private Object email; private Map extraParams; private Object name; private Object phone; /** * Finalize and obtain parameter instance from this builder. */ public BillingDetails build() { return new BillingDetails(this.address, this.email, this.extraParams, this.name, this.phone); } /** * Billing address. */ public Builder setAddress(Address address) { this.address = address; return this; } /** * Email address. */ public Builder setEmail(String email) { this.email = email; return this; } /** * Email address. */ public Builder setEmail(EmptyParam email) { this.email = email; return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.BillingDetails#extraParams} * for the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.BillingDetails#extraParams} * for the field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** * Full name. */ public Builder setName(String name) { this.name = name; return this; } /** * Full name. */ public Builder setName(EmptyParam name) { this.name = name; return this; } /** * Billing phone number (including extension). */ public Builder setPhone(String phone) { this.phone = phone; return this; } /** * Billing phone number (including extension). */ public Builder setPhone(EmptyParam phone) { this.phone = phone; return this; } } public static class Address { /** City, district, suburb, town, or village. */ @SerializedName("city") Object city; /** * Two-letter country code (ISO * 3166-1 alpha-2). */ @SerializedName("country") Object country; /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field * (serialized) name in this param object. Effectively, this map is flattened to its parent * instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** Address line 1 (e.g., street, PO Box, or company name). */ @SerializedName("line1") Object line1; /** Address line 2 (e.g., apartment, suite, unit, or building). */ @SerializedName("line2") Object line2; /** ZIP or postal code. */ @SerializedName("postal_code") Object postalCode; /** State, county, province, or region. */ @SerializedName("state") Object state; private Address(Object city, Object country, Map extraParams, Object line1, Object line2, Object postalCode, Object state) { this.city = city; this.country = country; this.extraParams = extraParams; this.line1 = line1; this.line2 = line2; this.postalCode = postalCode; this.state = state; } public static Builder builder() { return new Builder(); } public static class Builder { private Object city; private Object country; private Map extraParams; private Object line1; private Object line2; private Object postalCode; private Object state; /** Finalize and obtain parameter instance from this builder. */ public Address build() { return new Address(this.city, this.country, this.extraParams, this.line1, this.line2, this.postalCode, this.state); } /** City, district, suburb, town, or village. */ public Builder setCity(String city) { this.city = city; return this; } /** City, district, suburb, town, or village. */ public Builder setCity(EmptyParam city) { this.city = city; return this; } /** * Two-letter country code (ISO * 3166-1 alpha-2). */ public Builder setCountry(String country) { this.country = country; return this; } /** * Two-letter country code (ISO * 3166-1 alpha-2). */ public Builder setCountry(EmptyParam country) { this.country = country; return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link * PaymentIntentUpdateParams.PaymentMethodData.BillingDetails.Address#extraParams} for the * field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link * PaymentIntentUpdateParams.PaymentMethodData.BillingDetails.Address#extraParams} for the * field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** Address line 1 (e.g., street, PO Box, or company name). */ public Builder setLine1(String line1) { this.line1 = line1; return this; } /** Address line 1 (e.g., street, PO Box, or company name). */ public Builder setLine1(EmptyParam line1) { this.line1 = line1; return this; } /** Address line 2 (e.g., apartment, suite, unit, or building). */ public Builder setLine2(String line2) { this.line2 = line2; return this; } /** Address line 2 (e.g., apartment, suite, unit, or building). */ public Builder setLine2(EmptyParam line2) { this.line2 = line2; return this; } /** ZIP or postal code. */ public Builder setPostalCode(String postalCode) { this.postalCode = postalCode; return this; } /** ZIP or postal code. */ public Builder setPostalCode(EmptyParam postalCode) { this.postalCode = postalCode; return this; } /** State, county, province, or region. */ public Builder setState(String state) { this.state = state; return this; } public Builder setState(EmptyParam state) { this.state = state; return this; } } @java.lang.SuppressWarnings("all") @lombok.Generated public Object getCity() { return this.city; } @java.lang.SuppressWarnings("all") @lombok.Generated public Object getCountry() { return this.country; } @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } @java.lang.SuppressWarnings("all") @lombok.Generated public Object getLine1() { return this.line1; } @java.lang.SuppressWarnings("all") @lombok.Generated public Object getLine2() { return this.line2; } @java.lang.SuppressWarnings("all") @lombok.Generated public Object getPostalCode() { return this.postalCode; } @java.lang.SuppressWarnings("all") @lombok.Generated public Object getState() { return this.state; } } /** * Billing address. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Address getAddress() { return this.address; } /** * Email address. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getEmail() { return this.email; } /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } /** * Full name. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getName() { return this.name; } /** * Billing phone number (including extension). */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getPhone() { return this.phone; } } /** * State, county, province, or region. */ public static class Eps { /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; private Eps(Map extraParams) { this.extraParams = extraParams; } public static Builder builder() { return new Builder(); } public static class Builder { private Map extraParams; /** Finalize and obtain parameter instance from this builder. */ public Eps build() { return new Eps(this.extraParams); } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.Eps#extraParams} for the * field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } } /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.Eps#extraParams} for the * field documentation. */ public static class Fpx { /** * Account holder type for FPX transaction. */ @SerializedName("account_holder_type") AccountHolderType accountHolderType; /** * The customer's bank. */ @SerializedName("bank") Bank bank; /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; private Fpx(AccountHolderType accountHolderType, Bank bank, Map extraParams) { this.accountHolderType = accountHolderType; this.bank = bank; this.extraParams = extraParams; } public static Builder builder() { return new Builder(); } public static class Builder { private AccountHolderType accountHolderType; private Bank bank; private Map extraParams; /** * Finalize and obtain parameter instance from this builder. */ public Fpx build() { return new Fpx(this.accountHolderType, this.bank, this.extraParams); } /** * Account holder type for FPX transaction. */ public Builder setAccountHolderType(AccountHolderType accountHolderType) { this.accountHolderType = accountHolderType; return this; } /** * The customer's bank. */ public Builder setBank(Bank bank) { this.bank = bank; return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.Fpx#extraParams} for the * field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.Fpx#extraParams} for the * field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } } public enum AccountHolderType implements ApiRequestParams.EnumParam { @SerializedName("company") COMPANY("company"), @SerializedName("individual") INDIVIDUAL("individual"); private final String value; AccountHolderType(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } public enum Bank implements ApiRequestParams.EnumParam { @SerializedName("affin_bank") AFFIN_BANK("affin_bank"), @SerializedName("alliance_bank") ALLIANCE_BANK("alliance_bank"), @SerializedName("ambank") AMBANK("ambank"), @SerializedName("bank_islam") BANK_ISLAM("bank_islam"), @SerializedName("bank_muamalat") BANK_MUAMALAT("bank_muamalat"), @SerializedName("bank_rakyat") BANK_RAKYAT("bank_rakyat"), @SerializedName("bsn") BSN("bsn"), @SerializedName("cimb") CIMB("cimb"), @SerializedName("deutsche_bank") DEUTSCHE_BANK("deutsche_bank"), @SerializedName("hong_leong_bank") HONG_LEONG_BANK("hong_leong_bank"), @SerializedName("hsbc") HSBC("hsbc"), @SerializedName("kfh") KFH("kfh"), @SerializedName("maybank2e") MAYBANK2E("maybank2e"), @SerializedName("maybank2u") MAYBANK2U("maybank2u"), @SerializedName("ocbc") OCBC("ocbc"), @SerializedName("pb_enterprise") PB_ENTERPRISE("pb_enterprise"), @SerializedName("public_bank") PUBLIC_BANK("public_bank"), @SerializedName("rhb") RHB("rhb"), @SerializedName("standard_chartered") STANDARD_CHARTERED("standard_chartered"), @SerializedName("uob") UOB("uob"); private final String value; Bank(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } /** * Account holder type for FPX transaction. */ @java.lang.SuppressWarnings("all") @lombok.Generated public AccountHolderType getAccountHolderType() { return this.accountHolderType; } /** * The customer's bank. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Bank getBank() { return this.bank; } /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } } public static class Giropay { /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; private Giropay(Map extraParams) { this.extraParams = extraParams; } public static Builder builder() { return new Builder(); } public static class Builder { private Map extraParams; /** Finalize and obtain parameter instance from this builder. */ public Giropay build() { return new Giropay(this.extraParams); } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.Giropay#extraParams} for the * field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } } /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.Giropay#extraParams} for the * field documentation. */ public static class Ideal { /** * The customer's bank. */ @SerializedName("bank") Bank bank; /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; private Ideal(Bank bank, Map extraParams) { this.bank = bank; this.extraParams = extraParams; } public static Builder builder() { return new Builder(); } public static class Builder { private Bank bank; private Map extraParams; /** * Finalize and obtain parameter instance from this builder. */ public Ideal build() { return new Ideal(this.bank, this.extraParams); } /** * The customer's bank. */ public Builder setBank(Bank bank) { this.bank = bank; return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.Ideal#extraParams} for the * field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.Ideal#extraParams} for the * field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } } public enum Bank implements ApiRequestParams.EnumParam { @SerializedName("abn_amro") ABN_AMRO("abn_amro"), @SerializedName("asn_bank") ASN_BANK("asn_bank"), @SerializedName("bunq") BUNQ("bunq"), @SerializedName("handelsbanken") HANDELSBANKEN("handelsbanken"), @SerializedName("ing") ING("ing"), @SerializedName("knab") KNAB("knab"), @SerializedName("moneyou") MONEYOU("moneyou"), @SerializedName("rabobank") RABOBANK("rabobank"), @SerializedName("regiobank") REGIOBANK("regiobank"), @SerializedName("sns_bank") SNS_BANK("sns_bank"), @SerializedName("triodos_bank") TRIODOS_BANK("triodos_bank"), @SerializedName("van_lanschot") VAN_LANSCHOT("van_lanschot"); private final String value; Bank(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } /** * The customer's bank. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Bank getBank() { return this.bank; } /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } } public static class InteracPresent { /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; private InteracPresent(Map extraParams) { this.extraParams = extraParams; } public static Builder builder() { return new Builder(); } public static class Builder { private Map extraParams; /** Finalize and obtain parameter instance from this builder. */ public InteracPresent build() { return new InteracPresent(this.extraParams); } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.InteracPresent#extraParams} * for the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } } /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.InteracPresent#extraParams} * for the field documentation. */ public static class P24 { /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; private P24(Map extraParams) { this.extraParams = extraParams; } public static Builder builder() { return new Builder(); } public static class Builder { private Map extraParams; /** Finalize and obtain parameter instance from this builder. */ public P24 build() { return new P24(this.extraParams); } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.P24#extraParams} for the * field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } } /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.P24#extraParams} for the * field documentation. */ public static class SepaDebit { /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** * IBAN of the bank account. */ @SerializedName("iban") Object iban; private SepaDebit(Map extraParams, Object iban) { this.extraParams = extraParams; this.iban = iban; } public static Builder builder() { return new Builder(); } public static class Builder { private Map extraParams; private Object iban; /** Finalize and obtain parameter instance from this builder. */ public SepaDebit build() { return new SepaDebit(this.extraParams, this.iban); } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.SepaDebit#extraParams} for * the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodData.SepaDebit#extraParams} for * the field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** IBAN of the bank account. */ public Builder setIban(String iban) { this.iban = iban; return this; } public Builder setIban(EmptyParam iban) { this.iban = iban; return this; } } /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } /** * IBAN of the bank account. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getIban() { return this.iban; } } /** * IBAN of the bank account. */ public enum Type implements ApiRequestParams.EnumParam { @SerializedName("au_becs_debit") AU_BECS_DEBIT("au_becs_debit"), @SerializedName("bacs_debit") BACS_DEBIT("bacs_debit"), @SerializedName("bancontact") BANCONTACT("bancontact"), @SerializedName("card_present") CARD_PRESENT("card_present"), @SerializedName("eps") EPS("eps"), @SerializedName("fpx") FPX("fpx"), @SerializedName("giropay") GIROPAY("giropay"), @SerializedName("ideal") IDEAL("ideal"), @SerializedName("p24") P24("p24"), @SerializedName("sepa_debit") SEPA_DEBIT("sepa_debit"); private final String value; Type(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } /** * If this is an {@code au_becs_debit} PaymentMethod, this hash contains details about the bank * account. */ @java.lang.SuppressWarnings("all") @lombok.Generated public AuBecsDebit getAuBecsDebit() { return this.auBecsDebit; } /** * If this is a {@code bacs_debit} PaymentMethod, this hash contains details about the Bacs * Direct Debit bank account. */ @java.lang.SuppressWarnings("all") @lombok.Generated public BacsDebit getBacsDebit() { return this.bacsDebit; } /** * If this is a {@code bancontact} PaymentMethod, this hash contains details about the * Bancontact payment method. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Bancontact getBancontact() { return this.bancontact; } /** * Billing information associated with the PaymentMethod that may be used or required by * particular types of payment methods. */ @java.lang.SuppressWarnings("all") @lombok.Generated public BillingDetails getBillingDetails() { return this.billingDetails; } /** * If this is an {@code eps} PaymentMethod, this hash contains details about the EPS payment * method. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Eps getEps() { return this.eps; } /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } /** * If this is an {@code fpx} PaymentMethod, this hash contains details about the FPX payment * method. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Fpx getFpx() { return this.fpx; } /** * If this is a {@code giropay} PaymentMethod, this hash contains details about the Giropay * payment method. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Giropay getGiropay() { return this.giropay; } /** * If this is an {@code ideal} PaymentMethod, this hash contains details about the iDEAL payment * method. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Ideal getIdeal() { return this.ideal; } /** * If this is an {@code interac_present} PaymentMethod, this hash contains details about the * Interac Present payment method. */ @java.lang.SuppressWarnings("all") @lombok.Generated public InteracPresent getInteracPresent() { return this.interacPresent; } /** * Set of key-value pairs that you can attach * to an object. This can be useful for storing additional information about the object in a * structured format. Individual keys can be unset by posting an empty value to them. All keys * can be unset by posting an empty value to {@code metadata}. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getMetadata() { return this.metadata; } /** * If this is a {@code p24} PaymentMethod, this hash contains details about the P24 payment * method. */ @java.lang.SuppressWarnings("all") @lombok.Generated public P24 getP24() { return this.p24; } /** * If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA * debit bank account. */ @java.lang.SuppressWarnings("all") @lombok.Generated public SepaDebit getSepaDebit() { return this.sepaDebit; } /** * The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a * name matching this value. It contains additional information specific to the PaymentMethod * type. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Type getType() { return this.type; } } public static class PaymentMethodOptions { /** * If this is a {@code bancontact} PaymentMethod, this sub-hash contains details about the * Bancontact payment method options. */ @SerializedName("bancontact") Object bancontact; /** * Configuration for any card payments attempted on this PaymentIntent. */ @SerializedName("card") Object card; /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; private PaymentMethodOptions(Object bancontact, Object card, Map extraParams) { this.bancontact = bancontact; this.card = card; this.extraParams = extraParams; } public static Builder builder() { return new Builder(); } public static class Builder { private Object bancontact; private Object card; private Map extraParams; /** * Finalize and obtain parameter instance from this builder. */ public PaymentMethodOptions build() { return new PaymentMethodOptions(this.bancontact, this.card, this.extraParams); } /** * If this is a {@code bancontact} PaymentMethod, this sub-hash contains details about the * Bancontact payment method options. */ public Builder setBancontact(Bancontact bancontact) { this.bancontact = bancontact; return this; } /** * If this is a {@code bancontact} PaymentMethod, this sub-hash contains details about the * Bancontact payment method options. */ public Builder setBancontact(EmptyParam bancontact) { this.bancontact = bancontact; return this; } /** * Configuration for any card payments attempted on this PaymentIntent. */ public Builder setCard(Card card) { this.card = card; return this; } /** * Configuration for any card payments attempted on this PaymentIntent. */ public Builder setCard(EmptyParam card) { this.card = card; return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll` * call, and subsequent calls add additional key/value pairs to the original map. See {@link * PaymentIntentUpdateParams.PaymentMethodOptions#extraParams} for the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. * See {@link PaymentIntentUpdateParams.PaymentMethodOptions#extraParams} for the field * documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } } public static class Bancontact { /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** * Preferred language of the Bancontact authorization page that the customer is redirected to. */ @SerializedName("preferred_language") PreferredLanguage preferredLanguage; private Bancontact(Map extraParams, PreferredLanguage preferredLanguage) { this.extraParams = extraParams; this.preferredLanguage = preferredLanguage; } public static Builder builder() { return new Builder(); } public static class Builder { private Map extraParams; private PreferredLanguage preferredLanguage; /** * Finalize and obtain parameter instance from this builder. */ public Bancontact build() { return new Bancontact(this.extraParams, this.preferredLanguage); } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodOptions.Bancontact#extraParams} * for the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodOptions.Bancontact#extraParams} * for the field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** * Preferred language of the Bancontact authorization page that the customer is redirected * to. */ public Builder setPreferredLanguage(PreferredLanguage preferredLanguage) { this.preferredLanguage = preferredLanguage; return this; } } public enum PreferredLanguage implements ApiRequestParams.EnumParam { @SerializedName("de") DE("de"), @SerializedName("en") EN("en"), @SerializedName("fr") FR("fr"), @SerializedName("nl") NL("nl"); private final String value; PreferredLanguage(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } /** * Preferred language of the Bancontact authorization page that the customer is redirected to. */ @java.lang.SuppressWarnings("all") @lombok.Generated public PreferredLanguage getPreferredLanguage() { return this.preferredLanguage; } } public static class Card { /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** * Installment configuration for payments attempted on this PaymentIntent (Mexico Only). * *

For more information, see the installments integration guide. */ @SerializedName("installments") Installments installments; /** * When specified, this parameter indicates that a transaction will be marked as MOTO (Mail * Order Telephone Order) and thus out of scope for SCA. This parameter can only be provided * during confirmation. */ @SerializedName("moto") Boolean moto; /** * Selected network to process this PaymentIntent on. Depends on the available networks of the * card attached to the PaymentIntent. Can be only set confirm-time. */ @SerializedName("network") Network network; /** * We strongly recommend that you rely on our SCA Engine to automatically prompt your * customers for authentication based on risk level and other requirements. * However, if you wish to request 3D Secure based on logic from your own fraud engine, * provide this option. Permitted values include: {@code automatic} or {@code any}. If not * provided, defaults to {@code automatic}. Read our guide on manually requesting 3D * Secure for more information on how this configuration interacts with Radar and our SCA * Engine. */ @SerializedName("request_three_d_secure") RequestThreeDSecure requestThreeDSecure; private Card(Map extraParams, Installments installments, Boolean moto, Network network, RequestThreeDSecure requestThreeDSecure) { this.extraParams = extraParams; this.installments = installments; this.moto = moto; this.network = network; this.requestThreeDSecure = requestThreeDSecure; } public static Builder builder() { return new Builder(); } public static class Builder { private Map extraParams; private Installments installments; private Boolean moto; private Network network; private RequestThreeDSecure requestThreeDSecure; /** Finalize and obtain parameter instance from this builder. */ public Card build() { return new Card(this.extraParams, this.installments, this.moto, this.network, this.requestThreeDSecure); } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodOptions.Card#extraParams} for the * field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.PaymentMethodOptions.Card#extraParams} for the * field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** * Installment configuration for payments attempted on this PaymentIntent (Mexico Only). * *

For more information, see the installments integration guide. */ public Builder setInstallments(Installments installments) { this.installments = installments; return this; } /** * When specified, this parameter indicates that a transaction will be marked as MOTO (Mail * Order Telephone Order) and thus out of scope for SCA. This parameter can only be provided * during confirmation. */ public Builder setMoto(Boolean moto) { this.moto = moto; return this; } /** * Selected network to process this PaymentIntent on. Depends on the available networks of * the card attached to the PaymentIntent. Can be only set confirm-time. */ public Builder setNetwork(Network network) { this.network = network; return this; } /** * We strongly recommend that you rely on our SCA Engine to automatically prompt your * customers for authentication based on risk level and other requirements. * However, if you wish to request 3D Secure based on logic from your own fraud engine, * provide this option. Permitted values include: {@code automatic} or {@code any}. If not * provided, defaults to {@code automatic}. Read our guide on manually requesting 3D * Secure for more information on how this configuration interacts with Radar and our * SCA Engine. */ public Builder setRequestThreeDSecure(RequestThreeDSecure requestThreeDSecure) { this.requestThreeDSecure = requestThreeDSecure; return this; } } public static class Installments { /** * Setting to true enables installments for this PaymentIntent. This will cause the response * to contain a list of available installment plans. Setting to false will prevent any * selected plan from applying to a charge. */ @SerializedName("enabled") Boolean enabled; /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field * (serialized) name in this param object. Effectively, this map is flattened to its parent * instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** * The selected installment plan to use for this payment attempt. This parameter can only be * provided during confirmation. */ @SerializedName("plan") Object plan; private Installments(Boolean enabled, Map extraParams, Object plan) { this.enabled = enabled; this.extraParams = extraParams; this.plan = plan; } public static Builder builder() { return new Builder(); } public static class Builder { private Boolean enabled; private Map extraParams; private Object plan; /** Finalize and obtain parameter instance from this builder. */ public Installments build() { return new Installments(this.enabled, this.extraParams, this.plan); } /** * Setting to true enables installments for this PaymentIntent. This will cause the * response to contain a list of available installment plans. Setting to false will * prevent any selected plan from applying to a charge. */ public Builder setEnabled(Boolean enabled) { this.enabled = enabled; return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link * PaymentIntentUpdateParams.PaymentMethodOptions.Card.Installments#extraParams} for the * field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link * PaymentIntentUpdateParams.PaymentMethodOptions.Card.Installments#extraParams} for the * field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** * The selected installment plan to use for this payment attempt. This parameter can only * be provided during confirmation. */ public Builder setPlan(Plan plan) { this.plan = plan; return this; } /** * The selected installment plan to use for this payment attempt. This parameter can only * be provided during confirmation. */ public Builder setPlan(EmptyParam plan) { this.plan = plan; return this; } } public static class Plan { /** * For {@code fixed_count} installment plans, this is the number of installment payments * your customer will make to their credit card. */ @SerializedName("count") Long count; /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field * (serialized) name in this param object. Effectively, this map is flattened to its * parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** * For {@code fixed_count} installment plans, this is the interval between installment * payments your customer will make to their credit card. One of {@code month}. */ @SerializedName("interval") Interval interval; /** Type of installment plan, one of {@code fixed_count}. */ @SerializedName("type") Type type; private Plan(Long count, Map extraParams, Interval interval, Type type) { this.count = count; this.extraParams = extraParams; this.interval = interval; this.type = type; } public static Builder builder() { return new Builder(); } public static class Builder { private Long count; private Map extraParams; private Interval interval; private Type type; /** Finalize and obtain parameter instance from this builder. */ public Plan build() { return new Plan(this.count, this.extraParams, this.interval, this.type); } /** * For {@code fixed_count} installment plans, this is the number of installment payments * your customer will make to their credit card. */ public Builder setCount(Long count) { this.count = count; return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the * original map. See {@link * PaymentIntentUpdateParams.PaymentMethodOptions.Card.Installments.Plan#extraParams} * for the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the * original map. See {@link * PaymentIntentUpdateParams.PaymentMethodOptions.Card.Installments.Plan#extraParams} * for the field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** * For {@code fixed_count} installment plans, this is the interval between installment * payments your customer will make to their credit card. One of {@code month}. */ public Builder setInterval(Interval interval) { this.interval = interval; return this; } public Builder setType(Type type) { this.type = type; return this; } } public enum Interval implements ApiRequestParams.EnumParam { @SerializedName("month") MONTH("month"); private final String value; Interval(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } public enum Type implements ApiRequestParams.EnumParam { @SerializedName("fixed_count") FIXED_COUNT("fixed_count"); private final String value; Type(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } @java.lang.SuppressWarnings("all") @lombok.Generated public Long getCount() { return this.count; } @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } @java.lang.SuppressWarnings("all") @lombok.Generated public Interval getInterval() { return this.interval; } @java.lang.SuppressWarnings("all") @lombok.Generated public Type getType() { return this.type; } } @java.lang.SuppressWarnings("all") @lombok.Generated public Boolean getEnabled() { return this.enabled; } @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } @java.lang.SuppressWarnings("all") @lombok.Generated public Object getPlan() { return this.plan; } } public enum Network implements ApiRequestParams.EnumParam { @SerializedName("amex") AMEX("amex"), @SerializedName("cartes_bancaires") CARTES_BANCAIRES("cartes_bancaires"), @SerializedName("diners") DINERS("diners"), @SerializedName("discover") DISCOVER("discover"), @SerializedName("interac") INTERAC("interac"), @SerializedName("jcb") JCB("jcb"), @SerializedName("mastercard") MASTERCARD("mastercard"), @SerializedName("unionpay") UNIONPAY("unionpay"), @SerializedName("unknown") UNKNOWN("unknown"), @SerializedName("visa") VISA("visa"); private final String value; Network(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } public enum RequestThreeDSecure implements ApiRequestParams.EnumParam { @SerializedName("any") ANY("any"), @SerializedName("automatic") AUTOMATIC("automatic"); private final String value; RequestThreeDSecure(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } @java.lang.SuppressWarnings("all") @lombok.Generated public Installments getInstallments() { return this.installments; } @java.lang.SuppressWarnings("all") @lombok.Generated public Boolean getMoto() { return this.moto; } @java.lang.SuppressWarnings("all") @lombok.Generated public Network getNetwork() { return this.network; } @java.lang.SuppressWarnings("all") @lombok.Generated public RequestThreeDSecure getRequestThreeDSecure() { return this.requestThreeDSecure; } } /** * If this is a {@code bancontact} PaymentMethod, this sub-hash contains details about the * Bancontact payment method options. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getBancontact() { return this.bancontact; } /** * Configuration for any card payments attempted on this PaymentIntent. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getCard() { return this.card; } /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } } /** * Type of installment plan, one of {@code fixed_count}. */ public static class Shipping { /** * Shipping address. */ @SerializedName("address") Address address; /** * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. */ @SerializedName("carrier") Object carrier; /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** * Recipient name. */ @SerializedName("name") Object name; /** * Recipient phone (including extension). */ @SerializedName("phone") Object phone; /** * The tracking number for a physical product, obtained from the delivery service. If multiple * tracking numbers were generated for this purchase, please separate them with commas. */ @SerializedName("tracking_number") Object trackingNumber; private Shipping(Address address, Object carrier, Map extraParams, Object name, Object phone, Object trackingNumber) { this.address = address; this.carrier = carrier; this.extraParams = extraParams; this.name = name; this.phone = phone; this.trackingNumber = trackingNumber; } public static Builder builder() { return new Builder(); } public static class Builder { private Address address; private Object carrier; private Map extraParams; private Object name; private Object phone; private Object trackingNumber; /** * Finalize and obtain parameter instance from this builder. */ public Shipping build() { return new Shipping(this.address, this.carrier, this.extraParams, this.name, this.phone, this.trackingNumber); } /** * Shipping address. */ public Builder setAddress(Address address) { this.address = address; return this; } /** * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. */ public Builder setCarrier(String carrier) { this.carrier = carrier; return this; } /** * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. */ public Builder setCarrier(EmptyParam carrier) { this.carrier = carrier; return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll` * call, and subsequent calls add additional key/value pairs to the original map. See {@link * PaymentIntentUpdateParams.Shipping#extraParams} for the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. * See {@link PaymentIntentUpdateParams.Shipping#extraParams} for the field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** * Recipient name. */ public Builder setName(String name) { this.name = name; return this; } /** * Recipient name. */ public Builder setName(EmptyParam name) { this.name = name; return this; } /** * Recipient phone (including extension). */ public Builder setPhone(String phone) { this.phone = phone; return this; } /** * Recipient phone (including extension). */ public Builder setPhone(EmptyParam phone) { this.phone = phone; return this; } /** * The tracking number for a physical product, obtained from the delivery service. If multiple * tracking numbers were generated for this purchase, please separate them with commas. */ public Builder setTrackingNumber(String trackingNumber) { this.trackingNumber = trackingNumber; return this; } /** * The tracking number for a physical product, obtained from the delivery service. If multiple * tracking numbers were generated for this purchase, please separate them with commas. */ public Builder setTrackingNumber(EmptyParam trackingNumber) { this.trackingNumber = trackingNumber; return this; } } public static class Address { /** City, district, suburb, town, or village. */ @SerializedName("city") Object city; /** * Two-letter country code (ISO * 3166-1 alpha-2). */ @SerializedName("country") Object country; /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** Address line 1 (e.g., street, PO Box, or company name). */ @SerializedName("line1") Object line1; /** Address line 2 (e.g., apartment, suite, unit, or building). */ @SerializedName("line2") Object line2; /** ZIP or postal code. */ @SerializedName("postal_code") Object postalCode; /** State, county, province, or region. */ @SerializedName("state") Object state; private Address(Object city, Object country, Map extraParams, Object line1, Object line2, Object postalCode, Object state) { this.city = city; this.country = country; this.extraParams = extraParams; this.line1 = line1; this.line2 = line2; this.postalCode = postalCode; this.state = state; } public static Builder builder() { return new Builder(); } public static class Builder { private Object city; private Object country; private Map extraParams; private Object line1; private Object line2; private Object postalCode; private Object state; /** Finalize and obtain parameter instance from this builder. */ public Address build() { return new Address(this.city, this.country, this.extraParams, this.line1, this.line2, this.postalCode, this.state); } /** City, district, suburb, town, or village. */ public Builder setCity(String city) { this.city = city; return this; } /** City, district, suburb, town, or village. */ public Builder setCity(EmptyParam city) { this.city = city; return this; } /** * Two-letter country code (ISO * 3166-1 alpha-2). */ public Builder setCountry(String country) { this.country = country; return this; } /** * Two-letter country code (ISO * 3166-1 alpha-2). */ public Builder setCountry(EmptyParam country) { this.country = country; return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.Shipping.Address#extraParams} for the field * documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link PaymentIntentUpdateParams.Shipping.Address#extraParams} for the field * documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** Address line 1 (e.g., street, PO Box, or company name). */ public Builder setLine1(String line1) { this.line1 = line1; return this; } /** Address line 1 (e.g., street, PO Box, or company name). */ public Builder setLine1(EmptyParam line1) { this.line1 = line1; return this; } /** Address line 2 (e.g., apartment, suite, unit, or building). */ public Builder setLine2(String line2) { this.line2 = line2; return this; } /** Address line 2 (e.g., apartment, suite, unit, or building). */ public Builder setLine2(EmptyParam line2) { this.line2 = line2; return this; } /** ZIP or postal code. */ public Builder setPostalCode(String postalCode) { this.postalCode = postalCode; return this; } /** ZIP or postal code. */ public Builder setPostalCode(EmptyParam postalCode) { this.postalCode = postalCode; return this; } /** State, county, province, or region. */ public Builder setState(String state) { this.state = state; return this; } public Builder setState(EmptyParam state) { this.state = state; return this; } } @java.lang.SuppressWarnings("all") @lombok.Generated public Object getCity() { return this.city; } @java.lang.SuppressWarnings("all") @lombok.Generated public Object getCountry() { return this.country; } @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } @java.lang.SuppressWarnings("all") @lombok.Generated public Object getLine1() { return this.line1; } @java.lang.SuppressWarnings("all") @lombok.Generated public Object getLine2() { return this.line2; } @java.lang.SuppressWarnings("all") @lombok.Generated public Object getPostalCode() { return this.postalCode; } @java.lang.SuppressWarnings("all") @lombok.Generated public Object getState() { return this.state; } } /** * Shipping address. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Address getAddress() { return this.address; } /** * The delivery service that shipped a physical product, such as Fedex, UPS, USPS, etc. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getCarrier() { return this.carrier; } /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } /** * Recipient name. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getName() { return this.name; } /** * Recipient phone (including extension). */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getPhone() { return this.phone; } /** * The tracking number for a physical product, obtained from the delivery service. If multiple * tracking numbers were generated for this purchase, please separate them with commas. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getTrackingNumber() { return this.trackingNumber; } } /** * State, county, province, or region. */ public static class TransferData { /** * The amount that will be transferred automatically when a charge succeeds. */ @SerializedName("amount") Long amount; /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; private TransferData(Long amount, Map extraParams) { this.amount = amount; this.extraParams = extraParams; } public static Builder builder() { return new Builder(); } public static class Builder { private Long amount; private Map extraParams; /** Finalize and obtain parameter instance from this builder. */ public TransferData build() { return new TransferData(this.amount, this.extraParams); } /** The amount that will be transferred automatically when a charge succeeds. */ public Builder setAmount(Long amount) { this.amount = amount; return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll` * call, and subsequent calls add additional key/value pairs to the original map. See {@link * PaymentIntentUpdateParams.TransferData#extraParams} for the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } } /** * The amount that will be transferred automatically when a charge succeeds. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Long getAmount() { return this.amount; } /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. * See {@link PaymentIntentUpdateParams.TransferData#extraParams} for the field documentation. */ public enum SetupFutureUsage implements ApiRequestParams.EnumParam { @SerializedName("off_session") OFF_SESSION("off_session"), @SerializedName("on_session") ON_SESSION("on_session"); private final String value; SetupFutureUsage(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } /** * Amount intended to be collected by this PaymentIntent. A positive integer representing how much * to charge in the smallest currency * unit (e.g., 100 cents to charge $1.00 or 100 to charge ¥100, a zero-decimal currency). The * minimum amount is $0.50 US or equivalent in * charge currency. The amount value supports up to eight digits (e.g., a value of 99999999 * for a USD charge of $999,999.99). */ @java.lang.SuppressWarnings("all") @lombok.Generated public Long getAmount() { return this.amount; } /** * The amount of the application fee (if any) that will be applied to the payment and transferred * to the application owner's Stripe account. Must be greater than zero when provided. For more * information, see the PaymentIntents use case for connected accounts. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getApplicationFeeAmount() { return this.applicationFeeAmount; } /** * Three-letter ISO currency code, * in lowercase. Must be a supported currency. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getCurrency() { return this.currency; } /** * ID of the Customer this PaymentIntent belongs to, if one exists. * *

Payment methods attached to other Customers cannot be used with this PaymentIntent. * *

If present in combination with setup_future_usage, * this PaymentIntent's payment method will be attached to the Customer after the PaymentIntent * has been confirmed and any required actions from the user are complete. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getCustomer() { return this.customer; } /** * An arbitrary string attached to the object. Often useful for displaying to users. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getDescription() { return this.description; } /** * Specifies which fields in the response should be expanded. */ @java.lang.SuppressWarnings("all") @lombok.Generated public List getExpand() { return this.expand; } /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } /** * Set of key-value pairs that you can attach * to an object. This can be useful for storing additional information about the object in a * structured format. Individual keys can be unset by posting an empty value to them. All keys can * be unset by posting an empty value to {@code metadata}. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getMetadata() { return this.metadata; } /** * ID of the payment method (a PaymentMethod, Card, or compatible Source * object) to attach to this PaymentIntent. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getPaymentMethod() { return this.paymentMethod; } /** * If provided, this hash will be used to create a PaymentMethod. The new PaymentMethod will * appear in the payment_method * property on the PaymentIntent. */ @java.lang.SuppressWarnings("all") @lombok.Generated public PaymentMethodData getPaymentMethodData() { return this.paymentMethodData; } /** * Payment-method-specific configuration for this PaymentIntent. */ @java.lang.SuppressWarnings("all") @lombok.Generated public PaymentMethodOptions getPaymentMethodOptions() { return this.paymentMethodOptions; } /** * The list of payment method types (e.g. card) that this PaymentIntent is allowed to use. */ @java.lang.SuppressWarnings("all") @lombok.Generated public List getPaymentMethodTypes() { return this.paymentMethodTypes; } /** * Email address that the receipt for the resulting payment will be sent to. If {@code * receipt_email} is specified for a payment in live mode, a receipt will be sent regardless of * your email settings. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getReceiptEmail() { return this.receiptEmail; } /** * If the PaymentIntent has a {@code payment_method} and a {@code customer} or if you're attaching * a payment method to the PaymentIntent in this request, you can pass {@code * save_payment_method=true} to save the payment method to the customer immediately. * *

If the payment method is already saved to a customer, this parameter does nothing. If this * type of payment method cannot be saved to a customer, the request will error. * *

Saving a payment method using this parameter is not recommended because it will * save the payment method even if it cannot be charged (e.g. the user made a typo). To ensure * that only payment methods which are likely to be chargeable are saved to a customer, use the * (setup_future_usage)[#payment_intents/object#payment_intent_object-setup_future_usage] * property, which saves the payment method after the PaymentIntent has been confirmed and all * required actions by the customer are complete. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Boolean getSavePaymentMethod() { return this.savePaymentMethod; } /** * Indicates that you intend to make future payments with this PaymentIntent's payment method. * *

Providing this parameter will attach the payment method to * the PaymentIntent's Customer, if present, after the PaymentIntent is confirmed and any required * actions from the user are complete. If no Customer was provided, the payment method can still * be attached to a Customer * after the transaction completes. * *

When processing card payments, Stripe also uses {@code setup_future_usage} to dynamically * optimize your payment flow and comply with regional legislation and network rules, such as SCA. * *

If {@code setup_future_usage} is already set and you are performing a request using a * publishable key, you may only update the value from {@code on_session} to {@code off_session}. */ @java.lang.SuppressWarnings("all") @lombok.Generated public EnumParam getSetupFutureUsage() { return this.setupFutureUsage; } /** * Shipping information for this PaymentIntent. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getShipping() { return this.shipping; } /** * This is a legacy field that will be removed in the future. It is the ID of the Source object to * attach to this PaymentIntent. Please use the {@code payment_method} field instead, which also * supports Cards and compatible Source * objects. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getSource() { return this.source; } /** * For non-card charges, you can use this value as the complete description that appears on your * customers’ statements. Must contain at least one letter, maximum 22 characters. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getStatementDescriptor() { return this.statementDescriptor; } /** * Provides information about a card payment that customers see on their statements. Concatenated * with the prefix (shortened descriptor) or statement descriptor that’s set on the account to * form the complete statement descriptor. Maximum 22 characters for the concatenated descriptor. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getStatementDescriptorSuffix() { return this.statementDescriptorSuffix; } /** * The parameters used to automatically create a Transfer when the payment succeeds. For more * information, see the PaymentIntents use case for connected accounts. */ @java.lang.SuppressWarnings("all") @lombok.Generated public TransferData getTransferData() { return this.transferData; } /** * A string that identifies the resulting payment as part of a group. {@code transfer_group} may * only be provided if it has not been set. See the PaymentIntents use case for connected accounts * for details. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getTransferGroup() { return this.transferGroup; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy