
com.stripe.param.SetupIntentCreateParams Maven / Gradle / Ivy
// File generated from our OpenAPI spec
package com.stripe.param;
import com.google.gson.annotations.SerializedName;
import com.stripe.net.ApiRequestParams;
import com.stripe.param.common.EmptyParam;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import lombok.Getter;
@Getter
public class SetupIntentCreateParams extends ApiRequestParams {
/**
* If present, the SetupIntent's payment method will be attached to the in-context Stripe Account.
*
* It can only be used for this Stripe Account’s own money movement flows like InboundTransfer
* and OutboundTransfers. It cannot be set to true when setting up a PaymentMethod for a Customer,
* and defaults to false when attaching a PaymentMethod to a Customer.
*/
@SerializedName("attach_to_self")
Boolean attachToSelf;
/**
* When you enable this parameter, this SetupIntent accepts payment methods that you enable in the
* Dashboard and that are compatible with its other parameters.
*/
@SerializedName("automatic_payment_methods")
AutomaticPaymentMethods automaticPaymentMethods;
/**
* Set to {@code true} to attempt to confirm this SetupIntent immediately. This parameter defaults
* to {@code false}. If a card is the attached payment method, you can provide a {@code
* return_url} in case further authentication is necessary.
*/
@SerializedName("confirm")
Boolean confirm;
/**
* ID of the ConfirmationToken used to confirm this SetupIntent.
*
*
If the provided ConfirmationToken contains properties that are also being provided in this
* request, such as {@code payment_method}, then the values in this request will take precedence.
*/
@SerializedName("confirmation_token")
String confirmationToken;
/**
* ID of the Customer this SetupIntent belongs to, if one exists.
*
*
If present, the SetupIntent's payment method will be attached to the Customer on successful
* setup. Payment methods attached to other Customers cannot be used with this SetupIntent.
*/
@SerializedName("customer")
String customer;
/** An arbitrary string attached to the object. Often useful for displaying to users. */
@SerializedName("description")
String 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;
/**
* Indicates the directions of money movement for which this payment method is intended to be
* used.
*
* Include {@code inbound} if you intend to use the payment method as the origin to pull funds
* from. Include {@code outbound} if you intend to use the payment method as the destination to
* send funds to. You can include both if you intend to use the payment method for both purposes.
*/
@SerializedName("flow_directions")
List flowDirections;
/**
* This hash contains details about the mandate to create. This parameter can only be used with {@code
* confirm=true}.
*/
@SerializedName("mandate_data")
Object mandateData;
/**
* 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;
/** The Stripe account ID created for this SetupIntent. */
@SerializedName("on_behalf_of")
String onBehalfOf;
/**
* ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this
* SetupIntent.
*/
@SerializedName("payment_method")
String paymentMethod;
/**
* The ID of the payment
* method configuration to use with this SetupIntent.
*/
@SerializedName("payment_method_configuration")
String paymentMethodConfiguration;
/**
* When included, this hash creates a PaymentMethod that is set as the {@code
* payment_method} value in the SetupIntent.
*/
@SerializedName("payment_method_data")
PaymentMethodData paymentMethodData;
/** Payment method-specific configuration for this SetupIntent. */
@SerializedName("payment_method_options")
PaymentMethodOptions paymentMethodOptions;
/**
* The list of payment method types (for example, card) that this SetupIntent can use. If you
* don't provide this, Stripe will dynamically show relevant payment methods from your payment method settings.
*/
@SerializedName("payment_method_types")
List paymentMethodTypes;
/**
* The URL to redirect your customer back to after they authenticate or cancel their payment on
* the payment method's app or site. To redirect to a mobile application, you can alternatively
* supply an application URI scheme. This parameter can only be used with {@code
* confirm=true}.
*/
@SerializedName("return_url")
String returnUrl;
/**
* If you populate this hash, this SetupIntent generates a {@code single_use} mandate after
* successful completion.
*/
@SerializedName("single_use")
SingleUse singleUse;
/**
* Indicates how the payment method is intended to be used in the future. If not provided, this
* value defaults to {@code off_session}.
*/
@SerializedName("usage")
Usage usage;
/**
* Set to {@code true} when confirming server-side and using Stripe.js, iOS, or Android
* client-side SDKs to handle the next actions.
*/
@SerializedName("use_stripe_sdk")
Boolean useStripeSdk;
private SetupIntentCreateParams(
Boolean attachToSelf,
AutomaticPaymentMethods automaticPaymentMethods,
Boolean confirm,
String confirmationToken,
String customer,
String description,
List expand,
Map extraParams,
List flowDirections,
Object mandateData,
Map metadata,
String onBehalfOf,
String paymentMethod,
String paymentMethodConfiguration,
PaymentMethodData paymentMethodData,
PaymentMethodOptions paymentMethodOptions,
List paymentMethodTypes,
String returnUrl,
SingleUse singleUse,
Usage usage,
Boolean useStripeSdk) {
this.attachToSelf = attachToSelf;
this.automaticPaymentMethods = automaticPaymentMethods;
this.confirm = confirm;
this.confirmationToken = confirmationToken;
this.customer = customer;
this.description = description;
this.expand = expand;
this.extraParams = extraParams;
this.flowDirections = flowDirections;
this.mandateData = mandateData;
this.metadata = metadata;
this.onBehalfOf = onBehalfOf;
this.paymentMethod = paymentMethod;
this.paymentMethodConfiguration = paymentMethodConfiguration;
this.paymentMethodData = paymentMethodData;
this.paymentMethodOptions = paymentMethodOptions;
this.paymentMethodTypes = paymentMethodTypes;
this.returnUrl = returnUrl;
this.singleUse = singleUse;
this.usage = usage;
this.useStripeSdk = useStripeSdk;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private Boolean attachToSelf;
private AutomaticPaymentMethods automaticPaymentMethods;
private Boolean confirm;
private String confirmationToken;
private String customer;
private String description;
private List expand;
private Map extraParams;
private List flowDirections;
private Object mandateData;
private Map metadata;
private String onBehalfOf;
private String paymentMethod;
private String paymentMethodConfiguration;
private PaymentMethodData paymentMethodData;
private PaymentMethodOptions paymentMethodOptions;
private List paymentMethodTypes;
private String returnUrl;
private SingleUse singleUse;
private Usage usage;
private Boolean useStripeSdk;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams build() {
return new SetupIntentCreateParams(
this.attachToSelf,
this.automaticPaymentMethods,
this.confirm,
this.confirmationToken,
this.customer,
this.description,
this.expand,
this.extraParams,
this.flowDirections,
this.mandateData,
this.metadata,
this.onBehalfOf,
this.paymentMethod,
this.paymentMethodConfiguration,
this.paymentMethodData,
this.paymentMethodOptions,
this.paymentMethodTypes,
this.returnUrl,
this.singleUse,
this.usage,
this.useStripeSdk);
}
/**
* If present, the SetupIntent's payment method will be attached to the in-context Stripe
* Account.
*
* It can only be used for this Stripe Account’s own money movement flows like
* InboundTransfer and OutboundTransfers. It cannot be set to true when setting up a
* PaymentMethod for a Customer, and defaults to false when attaching a PaymentMethod to a
* Customer.
*/
public Builder setAttachToSelf(Boolean attachToSelf) {
this.attachToSelf = attachToSelf;
return this;
}
/**
* When you enable this parameter, this SetupIntent accepts payment methods that you enable in
* the Dashboard and that are compatible with its other parameters.
*/
public Builder setAutomaticPaymentMethods(
SetupIntentCreateParams.AutomaticPaymentMethods automaticPaymentMethods) {
this.automaticPaymentMethods = automaticPaymentMethods;
return this;
}
/**
* Set to {@code true} to attempt to confirm this SetupIntent immediately. This parameter
* defaults to {@code false}. If a card is the attached payment method, you can provide a {@code
* return_url} in case further authentication is necessary.
*/
public Builder setConfirm(Boolean confirm) {
this.confirm = confirm;
return this;
}
/**
* ID of the ConfirmationToken used to confirm this SetupIntent.
*
*
If the provided ConfirmationToken contains properties that are also being provided in this
* request, such as {@code payment_method}, then the values in this request will take
* precedence.
*/
public Builder setConfirmationToken(String confirmationToken) {
this.confirmationToken = confirmationToken;
return this;
}
/**
* ID of the Customer this SetupIntent belongs to, if one exists.
*
*
If present, the SetupIntent's payment method will be attached to the Customer on
* successful setup. Payment methods attached to other Customers cannot be used with this
* SetupIntent.
*/
public Builder setCustomer(String 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;
}
/**
* 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
* SetupIntentCreateParams#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
* SetupIntentCreateParams#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
* SetupIntentCreateParams#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 SetupIntentCreateParams#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 an element to `flowDirections` list. A list is initialized for the first `add/addAll`
* call, and subsequent calls adds additional elements to the original list. See {@link
* SetupIntentCreateParams#flowDirections} for the field documentation.
*/
public Builder addFlowDirection(SetupIntentCreateParams.FlowDirection element) {
if (this.flowDirections == null) {
this.flowDirections = new ArrayList<>();
}
this.flowDirections.add(element);
return this;
}
/**
* Add all elements to `flowDirections` list. A list is initialized for the first `add/addAll`
* call, and subsequent calls adds additional elements to the original list. See {@link
* SetupIntentCreateParams#flowDirections} for the field documentation.
*/
public Builder addAllFlowDirection(List elements) {
if (this.flowDirections == null) {
this.flowDirections = new ArrayList<>();
}
this.flowDirections.addAll(elements);
return this;
}
/**
* This hash contains details about the mandate to create. This parameter can only be used with
* {@code
* confirm=true}.
*/
public Builder setMandateData(SetupIntentCreateParams.MandateData mandateData) {
this.mandateData = mandateData;
return this;
}
/**
* This hash contains details about the mandate to create. This parameter can only be used with
* {@code
* confirm=true}.
*/
public Builder setMandateData(EmptyParam mandateData) {
this.mandateData = mandateData;
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
* SetupIntentCreateParams#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 SetupIntentCreateParams#metadata} for the field documentation.
*/
public Builder putAllMetadata(Map map) {
if (this.metadata == null) {
this.metadata = new HashMap<>();
}
this.metadata.putAll(map);
return this;
}
/** The Stripe account ID created for this SetupIntent. */
public Builder setOnBehalfOf(String onBehalfOf) {
this.onBehalfOf = onBehalfOf;
return this;
}
/**
* ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this
* SetupIntent.
*/
public Builder setPaymentMethod(String paymentMethod) {
this.paymentMethod = paymentMethod;
return this;
}
/**
* The ID of the payment
* method configuration to use with this SetupIntent.
*/
public Builder setPaymentMethodConfiguration(String paymentMethodConfiguration) {
this.paymentMethodConfiguration = paymentMethodConfiguration;
return this;
}
/**
* When included, this hash creates a PaymentMethod that is set as the {@code
* payment_method} value in the SetupIntent.
*/
public Builder setPaymentMethodData(
SetupIntentCreateParams.PaymentMethodData paymentMethodData) {
this.paymentMethodData = paymentMethodData;
return this;
}
/** Payment method-specific configuration for this SetupIntent. */
public Builder setPaymentMethodOptions(
SetupIntentCreateParams.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
* SetupIntentCreateParams#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 SetupIntentCreateParams#paymentMethodTypes} for the field documentation.
*/
public Builder addAllPaymentMethodType(List elements) {
if (this.paymentMethodTypes == null) {
this.paymentMethodTypes = new ArrayList<>();
}
this.paymentMethodTypes.addAll(elements);
return this;
}
/**
* The URL to redirect your customer back to after they authenticate or cancel their payment on
* the payment method's app or site. To redirect to a mobile application, you can alternatively
* supply an application URI scheme. This parameter can only be used with {@code
* confirm=true}.
*/
public Builder setReturnUrl(String returnUrl) {
this.returnUrl = returnUrl;
return this;
}
/**
* If you populate this hash, this SetupIntent generates a {@code single_use} mandate after
* successful completion.
*/
public Builder setSingleUse(SetupIntentCreateParams.SingleUse singleUse) {
this.singleUse = singleUse;
return this;
}
/**
* Indicates how the payment method is intended to be used in the future. If not provided, this
* value defaults to {@code off_session}.
*/
public Builder setUsage(SetupIntentCreateParams.Usage usage) {
this.usage = usage;
return this;
}
/**
* Set to {@code true} when confirming server-side and using Stripe.js, iOS, or Android
* client-side SDKs to handle the next actions.
*/
public Builder setUseStripeSdk(Boolean useStripeSdk) {
this.useStripeSdk = useStripeSdk;
return this;
}
}
@Getter
public static class AutomaticPaymentMethods {
/**
* Controls whether this SetupIntent will accept redirect-based payment methods.
*
* Redirect-based payment methods may require your customer to be redirected to a payment
* method's app or site for authentication or additional steps. To confirm this SetupIntent, you
* may be required to provide a {@code return_url} to redirect customers back to your site after
* they authenticate or complete the setup.
*/
@SerializedName("allow_redirects")
AllowRedirects allowRedirects;
/** Required. Whether this feature is enabled. */
@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;
private AutomaticPaymentMethods(
AllowRedirects allowRedirects, Boolean enabled, Map extraParams) {
this.allowRedirects = allowRedirects;
this.enabled = enabled;
this.extraParams = extraParams;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private AllowRedirects allowRedirects;
private Boolean enabled;
private Map extraParams;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.AutomaticPaymentMethods build() {
return new SetupIntentCreateParams.AutomaticPaymentMethods(
this.allowRedirects, this.enabled, this.extraParams);
}
/**
* Controls whether this SetupIntent will accept redirect-based payment methods.
*
* Redirect-based payment methods may require your customer to be redirected to a payment
* method's app or site for authentication or additional steps. To confirm this SetupIntent, you
* may be required to provide a {@code return_url} to redirect customers back to your site
* after they authenticate or complete the setup.
*/
public Builder setAllowRedirects(
SetupIntentCreateParams.AutomaticPaymentMethods.AllowRedirects allowRedirects) {
this.allowRedirects = allowRedirects;
return this;
}
/** Required. Whether this feature is enabled. */
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
* SetupIntentCreateParams.AutomaticPaymentMethods#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 SetupIntentCreateParams.AutomaticPaymentMethods#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 AllowRedirects implements ApiRequestParams.EnumParam {
@SerializedName("always")
ALWAYS("always"),
@SerializedName("never")
NEVER("never");
@Getter(onMethod_ = {@Override})
private final String value;
AllowRedirects(String value) {
this.value = value;
}
}
}
@Getter
public static class MandateData {
/**
* Required. This hash contains details about the customer acceptance of the
* Mandate.
*/
@SerializedName("customer_acceptance")
CustomerAcceptance customerAcceptance;
/**
* 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 MandateData(CustomerAcceptance customerAcceptance, Map extraParams) {
this.customerAcceptance = customerAcceptance;
this.extraParams = extraParams;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private CustomerAcceptance customerAcceptance;
private Map extraParams;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.MandateData build() {
return new SetupIntentCreateParams.MandateData(this.customerAcceptance, this.extraParams);
}
/**
* Required. This hash contains details about the customer acceptance of the
* Mandate.
*/
public Builder setCustomerAcceptance(
SetupIntentCreateParams.MandateData.CustomerAcceptance customerAcceptance) {
this.customerAcceptance = customerAcceptance;
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
* SetupIntentCreateParams.MandateData#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 SetupIntentCreateParams.MandateData#extraParams} for the field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
@Getter
public static class CustomerAcceptance {
/** The time at which the customer accepted the Mandate. */
@SerializedName("accepted_at")
Long acceptedAt;
/**
* 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 a Mandate accepted offline, this hash contains details about the offline
* acceptance.
*/
@SerializedName("offline")
Offline offline;
/**
* If this is a Mandate accepted online, this hash contains details about the online
* acceptance.
*/
@SerializedName("online")
Online online;
/**
* Required. The type of customer acceptance information included with the
* Mandate. One of {@code online} or {@code offline}.
*/
@SerializedName("type")
Type type;
private CustomerAcceptance(
Long acceptedAt,
Map extraParams,
Offline offline,
Online online,
Type type) {
this.acceptedAt = acceptedAt;
this.extraParams = extraParams;
this.offline = offline;
this.online = online;
this.type = type;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private Long acceptedAt;
private Map extraParams;
private Offline offline;
private Online online;
private Type type;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.MandateData.CustomerAcceptance build() {
return new SetupIntentCreateParams.MandateData.CustomerAcceptance(
this.acceptedAt, this.extraParams, this.offline, this.online, this.type);
}
/** The time at which the customer accepted the Mandate. */
public Builder setAcceptedAt(Long acceptedAt) {
this.acceptedAt = acceptedAt;
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 SetupIntentCreateParams.MandateData.CustomerAcceptance#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 SetupIntentCreateParams.MandateData.CustomerAcceptance#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 a Mandate accepted offline, this hash contains details about the offline
* acceptance.
*/
public Builder setOffline(
SetupIntentCreateParams.MandateData.CustomerAcceptance.Offline offline) {
this.offline = offline;
return this;
}
/**
* If this is a Mandate accepted online, this hash contains details about the online
* acceptance.
*/
public Builder setOnline(
SetupIntentCreateParams.MandateData.CustomerAcceptance.Online online) {
this.online = online;
return this;
}
/**
* Required. The type of customer acceptance information included with the
* Mandate. One of {@code online} or {@code offline}.
*/
public Builder setType(SetupIntentCreateParams.MandateData.CustomerAcceptance.Type type) {
this.type = type;
return this;
}
}
@Getter
public static class Offline {
/**
* 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 Offline(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 SetupIntentCreateParams.MandateData.CustomerAcceptance.Offline build() {
return new SetupIntentCreateParams.MandateData.CustomerAcceptance.Offline(
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
* SetupIntentCreateParams.MandateData.CustomerAcceptance.Offline#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
* SetupIntentCreateParams.MandateData.CustomerAcceptance.Offline#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Online {
/**
* 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;
/**
* Required. The IP address from which the Mandate was accepted by the
* customer.
*/
@SerializedName("ip_address")
String ipAddress;
/**
* Required. The user agent of the browser from which the Mandate was
* accepted by the customer.
*/
@SerializedName("user_agent")
String userAgent;
private Online(Map extraParams, String ipAddress, String userAgent) {
this.extraParams = extraParams;
this.ipAddress = ipAddress;
this.userAgent = userAgent;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private Map extraParams;
private String ipAddress;
private String userAgent;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.MandateData.CustomerAcceptance.Online build() {
return new SetupIntentCreateParams.MandateData.CustomerAcceptance.Online(
this.extraParams, this.ipAddress, this.userAgent);
}
/**
* 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
* SetupIntentCreateParams.MandateData.CustomerAcceptance.Online#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
* SetupIntentCreateParams.MandateData.CustomerAcceptance.Online#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
/**
* Required. The IP address from which the Mandate was accepted by the
* customer.
*/
public Builder setIpAddress(String ipAddress) {
this.ipAddress = ipAddress;
return this;
}
/**
* Required. The user agent of the browser from which the Mandate was
* accepted by the customer.
*/
public Builder setUserAgent(String userAgent) {
this.userAgent = userAgent;
return this;
}
}
}
public enum Type implements ApiRequestParams.EnumParam {
@SerializedName("offline")
OFFLINE("offline"),
@SerializedName("online")
ONLINE("online");
@Getter(onMethod_ = {@Override})
private final String value;
Type(String value) {
this.value = value;
}
}
}
}
@Getter
public static class PaymentMethodData {
/**
* If this is an {@code acss_debit} PaymentMethod, this hash contains details about the ACSS
* Debit payment method.
*/
@SerializedName("acss_debit")
AcssDebit acssDebit;
/**
* If this is an {@code affirm} PaymentMethod, this hash contains details about the Affirm
* payment method.
*/
@SerializedName("affirm")
Affirm affirm;
/**
* If this is an {@code AfterpayClearpay} PaymentMethod, this hash contains details about the
* AfterpayClearpay payment method.
*/
@SerializedName("afterpay_clearpay")
AfterpayClearpay afterpayClearpay;
/**
* If this is an {@code Alipay} PaymentMethod, this hash contains details about the Alipay
* payment method.
*/
@SerializedName("alipay")
Alipay alipay;
/**
* This field indicates whether this payment method can be shown again to its customer in a
* checkout flow. Stripe products such as Checkout and Elements use this field to determine
* whether a payment method can be shown as a saved payment method in a checkout flow. The field
* defaults to {@code unspecified}.
*/
@SerializedName("allow_redisplay")
AllowRedisplay allowRedisplay;
/**
* If this is a Alma PaymentMethod, this hash contains details about the Alma payment method.
*/
@SerializedName("alma")
Alma alma;
/**
* If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment
* method.
*/
@SerializedName("amazon_pay")
AmazonPay amazonPay;
/**
* 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 a {@code blik} PaymentMethod, this hash contains details about the BLIK payment
* method.
*/
@SerializedName("blik")
Blik blik;
/**
* If this is a {@code boleto} PaymentMethod, this hash contains details about the Boleto
* payment method.
*/
@SerializedName("boleto")
Boleto boleto;
/**
* If this is a {@code cashapp} PaymentMethod, this hash contains details about the Cash App Pay
* payment method.
*/
@SerializedName("cashapp")
Cashapp cashapp;
/**
* If this is a {@code customer_balance} PaymentMethod, this hash contains details about the
* CustomerBalance payment method.
*/
@SerializedName("customer_balance")
CustomerBalance customerBalance;
/**
* 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 a Gopay PaymentMethod, this hash contains details about the Gopay payment method.
*/
@SerializedName("gopay")
Gopay gopay;
/**
* If this is a {@code grabpay} PaymentMethod, this hash contains details about the GrabPay
* payment method.
*/
@SerializedName("grabpay")
Grabpay grabpay;
/**
* If this is an {@code IdBankTransfer} PaymentMethod, this hash contains details about the
* IdBankTransfer payment method.
*/
@SerializedName("id_bank_transfer")
IdBankTransfer idBankTransfer;
/**
* 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;
/**
* If this is a {@code kakao_pay} PaymentMethod, this hash contains details about the Kakao Pay
* payment method.
*/
@SerializedName("kakao_pay")
KakaoPay kakaoPay;
/**
* If this is a {@code klarna} PaymentMethod, this hash contains details about the Klarna
* payment method.
*/
@SerializedName("klarna")
Klarna klarna;
/**
* If this is a {@code konbini} PaymentMethod, this hash contains details about the Konbini
* payment method.
*/
@SerializedName("konbini")
Konbini konbini;
/**
* If this is a {@code kr_card} PaymentMethod, this hash contains details about the Korean Card
* payment method.
*/
@SerializedName("kr_card")
KrCard krCard;
/**
* If this is an {@code Link} PaymentMethod, this hash contains details about the Link payment
* method.
*/
@SerializedName("link")
Link link;
/**
* If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment
* method.
*/
@SerializedName("mb_way")
MbWay mbWay;
/**
* 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 mobilepay} PaymentMethod, this hash contains details about the MobilePay
* payment method.
*/
@SerializedName("mobilepay")
Mobilepay mobilepay;
/**
* If this is a {@code multibanco} PaymentMethod, this hash contains details about the
* Multibanco payment method.
*/
@SerializedName("multibanco")
Multibanco multibanco;
/**
* If this is a {@code naver_pay} PaymentMethod, this hash contains details about the Naver Pay
* payment method.
*/
@SerializedName("naver_pay")
NaverPay naverPay;
/**
* If this is an {@code oxxo} PaymentMethod, this hash contains details about the OXXO payment
* method.
*/
@SerializedName("oxxo")
Oxxo oxxo;
/**
* 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 payco} PaymentMethod, this hash contains details about the PAYCO payment
* method.
*/
@SerializedName("payco")
Payco payco;
/**
* If this is a {@code paynow} PaymentMethod, this hash contains details about the PayNow
* payment method.
*/
@SerializedName("paynow")
Paynow paynow;
/**
* If this is a {@code paypal} PaymentMethod, this hash contains details about the PayPal
* payment method.
*/
@SerializedName("paypal")
Paypal paypal;
/**
* If this is a {@code payto} PaymentMethod, this hash contains details about the PayTo payment
* method.
*/
@SerializedName("payto")
Payto payto;
/**
* If this is a {@code pix} PaymentMethod, this hash contains details about the Pix payment
* method.
*/
@SerializedName("pix")
Pix pix;
/**
* If this is a {@code promptpay} PaymentMethod, this hash contains details about the PromptPay
* payment method.
*/
@SerializedName("promptpay")
Promptpay promptpay;
/**
* If this is a {@code qris} PaymentMethod, this hash contains details about the QRIS payment
* method.
*/
@SerializedName("qris")
Qris qris;
/**
* Options to configure Radar. See Radar
* Session for more information.
*/
@SerializedName("radar_options")
RadarOptions radarOptions;
/**
* If this is a {@code rechnung} PaymentMethod, this hash contains details about the Rechnung
* payment method.
*/
@SerializedName("rechnung")
Rechnung rechnung;
/**
* If this is a {@code Revolut Pay} PaymentMethod, this hash contains details about the Revolut
* Pay payment method.
*/
@SerializedName("revolut_pay")
RevolutPay revolutPay;
/**
* If this is a {@code samsung_pay} PaymentMethod, this hash contains details about the
* SamsungPay payment method.
*/
@SerializedName("samsung_pay")
SamsungPay samsungPay;
/**
* If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA
* debit bank account.
*/
@SerializedName("sepa_debit")
SepaDebit sepaDebit;
/**
* If this is a Shopeepay PaymentMethod, this hash contains details about the Shopeepay payment
* method.
*/
@SerializedName("shopeepay")
Shopeepay shopeepay;
/**
* If this is a {@code sofort} PaymentMethod, this hash contains details about the SOFORT
* payment method.
*/
@SerializedName("sofort")
Sofort sofort;
/**
* If this is a {@code swish} PaymentMethod, this hash contains details about the Swish payment
* method.
*/
@SerializedName("swish")
Swish swish;
/**
* If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method.
*/
@SerializedName("twint")
Twint twint;
/**
* Required. 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;
/**
* If this is an {@code us_bank_account} PaymentMethod, this hash contains details about the US
* bank account payment method.
*/
@SerializedName("us_bank_account")
UsBankAccount usBankAccount;
/**
* If this is an {@code wechat_pay} PaymentMethod, this hash contains details about the
* wechat_pay payment method.
*/
@SerializedName("wechat_pay")
WechatPay wechatPay;
/**
* If this is a {@code zip} PaymentMethod, this hash contains details about the Zip payment
* method.
*/
@SerializedName("zip")
Zip zip;
private PaymentMethodData(
AcssDebit acssDebit,
Affirm affirm,
AfterpayClearpay afterpayClearpay,
Alipay alipay,
AllowRedisplay allowRedisplay,
Alma alma,
AmazonPay amazonPay,
AuBecsDebit auBecsDebit,
BacsDebit bacsDebit,
Bancontact bancontact,
BillingDetails billingDetails,
Blik blik,
Boleto boleto,
Cashapp cashapp,
CustomerBalance customerBalance,
Eps eps,
Map extraParams,
Fpx fpx,
Giropay giropay,
Gopay gopay,
Grabpay grabpay,
IdBankTransfer idBankTransfer,
Ideal ideal,
InteracPresent interacPresent,
KakaoPay kakaoPay,
Klarna klarna,
Konbini konbini,
KrCard krCard,
Link link,
MbWay mbWay,
Map metadata,
Mobilepay mobilepay,
Multibanco multibanco,
NaverPay naverPay,
Oxxo oxxo,
P24 p24,
Payco payco,
Paynow paynow,
Paypal paypal,
Payto payto,
Pix pix,
Promptpay promptpay,
Qris qris,
RadarOptions radarOptions,
Rechnung rechnung,
RevolutPay revolutPay,
SamsungPay samsungPay,
SepaDebit sepaDebit,
Shopeepay shopeepay,
Sofort sofort,
Swish swish,
Twint twint,
Type type,
UsBankAccount usBankAccount,
WechatPay wechatPay,
Zip zip) {
this.acssDebit = acssDebit;
this.affirm = affirm;
this.afterpayClearpay = afterpayClearpay;
this.alipay = alipay;
this.allowRedisplay = allowRedisplay;
this.alma = alma;
this.amazonPay = amazonPay;
this.auBecsDebit = auBecsDebit;
this.bacsDebit = bacsDebit;
this.bancontact = bancontact;
this.billingDetails = billingDetails;
this.blik = blik;
this.boleto = boleto;
this.cashapp = cashapp;
this.customerBalance = customerBalance;
this.eps = eps;
this.extraParams = extraParams;
this.fpx = fpx;
this.giropay = giropay;
this.gopay = gopay;
this.grabpay = grabpay;
this.idBankTransfer = idBankTransfer;
this.ideal = ideal;
this.interacPresent = interacPresent;
this.kakaoPay = kakaoPay;
this.klarna = klarna;
this.konbini = konbini;
this.krCard = krCard;
this.link = link;
this.mbWay = mbWay;
this.metadata = metadata;
this.mobilepay = mobilepay;
this.multibanco = multibanco;
this.naverPay = naverPay;
this.oxxo = oxxo;
this.p24 = p24;
this.payco = payco;
this.paynow = paynow;
this.paypal = paypal;
this.payto = payto;
this.pix = pix;
this.promptpay = promptpay;
this.qris = qris;
this.radarOptions = radarOptions;
this.rechnung = rechnung;
this.revolutPay = revolutPay;
this.samsungPay = samsungPay;
this.sepaDebit = sepaDebit;
this.shopeepay = shopeepay;
this.sofort = sofort;
this.swish = swish;
this.twint = twint;
this.type = type;
this.usBankAccount = usBankAccount;
this.wechatPay = wechatPay;
this.zip = zip;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private AcssDebit acssDebit;
private Affirm affirm;
private AfterpayClearpay afterpayClearpay;
private Alipay alipay;
private AllowRedisplay allowRedisplay;
private Alma alma;
private AmazonPay amazonPay;
private AuBecsDebit auBecsDebit;
private BacsDebit bacsDebit;
private Bancontact bancontact;
private BillingDetails billingDetails;
private Blik blik;
private Boleto boleto;
private Cashapp cashapp;
private CustomerBalance customerBalance;
private Eps eps;
private Map extraParams;
private Fpx fpx;
private Giropay giropay;
private Gopay gopay;
private Grabpay grabpay;
private IdBankTransfer idBankTransfer;
private Ideal ideal;
private InteracPresent interacPresent;
private KakaoPay kakaoPay;
private Klarna klarna;
private Konbini konbini;
private KrCard krCard;
private Link link;
private MbWay mbWay;
private Map metadata;
private Mobilepay mobilepay;
private Multibanco multibanco;
private NaverPay naverPay;
private Oxxo oxxo;
private P24 p24;
private Payco payco;
private Paynow paynow;
private Paypal paypal;
private Payto payto;
private Pix pix;
private Promptpay promptpay;
private Qris qris;
private RadarOptions radarOptions;
private Rechnung rechnung;
private RevolutPay revolutPay;
private SamsungPay samsungPay;
private SepaDebit sepaDebit;
private Shopeepay shopeepay;
private Sofort sofort;
private Swish swish;
private Twint twint;
private Type type;
private UsBankAccount usBankAccount;
private WechatPay wechatPay;
private Zip zip;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.PaymentMethodData build() {
return new SetupIntentCreateParams.PaymentMethodData(
this.acssDebit,
this.affirm,
this.afterpayClearpay,
this.alipay,
this.allowRedisplay,
this.alma,
this.amazonPay,
this.auBecsDebit,
this.bacsDebit,
this.bancontact,
this.billingDetails,
this.blik,
this.boleto,
this.cashapp,
this.customerBalance,
this.eps,
this.extraParams,
this.fpx,
this.giropay,
this.gopay,
this.grabpay,
this.idBankTransfer,
this.ideal,
this.interacPresent,
this.kakaoPay,
this.klarna,
this.konbini,
this.krCard,
this.link,
this.mbWay,
this.metadata,
this.mobilepay,
this.multibanco,
this.naverPay,
this.oxxo,
this.p24,
this.payco,
this.paynow,
this.paypal,
this.payto,
this.pix,
this.promptpay,
this.qris,
this.radarOptions,
this.rechnung,
this.revolutPay,
this.samsungPay,
this.sepaDebit,
this.shopeepay,
this.sofort,
this.swish,
this.twint,
this.type,
this.usBankAccount,
this.wechatPay,
this.zip);
}
/**
* If this is an {@code acss_debit} PaymentMethod, this hash contains details about the ACSS
* Debit payment method.
*/
public Builder setAcssDebit(SetupIntentCreateParams.PaymentMethodData.AcssDebit acssDebit) {
this.acssDebit = acssDebit;
return this;
}
/**
* If this is an {@code affirm} PaymentMethod, this hash contains details about the Affirm
* payment method.
*/
public Builder setAffirm(SetupIntentCreateParams.PaymentMethodData.Affirm affirm) {
this.affirm = affirm;
return this;
}
/**
* If this is an {@code AfterpayClearpay} PaymentMethod, this hash contains details about the
* AfterpayClearpay payment method.
*/
public Builder setAfterpayClearpay(
SetupIntentCreateParams.PaymentMethodData.AfterpayClearpay afterpayClearpay) {
this.afterpayClearpay = afterpayClearpay;
return this;
}
/**
* If this is an {@code Alipay} PaymentMethod, this hash contains details about the Alipay
* payment method.
*/
public Builder setAlipay(SetupIntentCreateParams.PaymentMethodData.Alipay alipay) {
this.alipay = alipay;
return this;
}
/**
* This field indicates whether this payment method can be shown again to its customer in a
* checkout flow. Stripe products such as Checkout and Elements use this field to determine
* whether a payment method can be shown as a saved payment method in a checkout flow. The
* field defaults to {@code unspecified}.
*/
public Builder setAllowRedisplay(
SetupIntentCreateParams.PaymentMethodData.AllowRedisplay allowRedisplay) {
this.allowRedisplay = allowRedisplay;
return this;
}
/**
* If this is a Alma PaymentMethod, this hash contains details about the Alma payment method.
*/
public Builder setAlma(SetupIntentCreateParams.PaymentMethodData.Alma alma) {
this.alma = alma;
return this;
}
/**
* If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay
* payment method.
*/
public Builder setAmazonPay(SetupIntentCreateParams.PaymentMethodData.AmazonPay amazonPay) {
this.amazonPay = amazonPay;
return this;
}
/**
* If this is an {@code au_becs_debit} PaymentMethod, this hash contains details about the
* bank account.
*/
public Builder setAuBecsDebit(
SetupIntentCreateParams.PaymentMethodData.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(SetupIntentCreateParams.PaymentMethodData.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(
SetupIntentCreateParams.PaymentMethodData.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(
SetupIntentCreateParams.PaymentMethodData.BillingDetails billingDetails) {
this.billingDetails = billingDetails;
return this;
}
/**
* If this is a {@code blik} PaymentMethod, this hash contains details about the BLIK payment
* method.
*/
public Builder setBlik(SetupIntentCreateParams.PaymentMethodData.Blik blik) {
this.blik = blik;
return this;
}
/**
* If this is a {@code boleto} PaymentMethod, this hash contains details about the Boleto
* payment method.
*/
public Builder setBoleto(SetupIntentCreateParams.PaymentMethodData.Boleto boleto) {
this.boleto = boleto;
return this;
}
/**
* If this is a {@code cashapp} PaymentMethod, this hash contains details about the Cash App
* Pay payment method.
*/
public Builder setCashapp(SetupIntentCreateParams.PaymentMethodData.Cashapp cashapp) {
this.cashapp = cashapp;
return this;
}
/**
* If this is a {@code customer_balance} PaymentMethod, this hash contains details about the
* CustomerBalance payment method.
*/
public Builder setCustomerBalance(
SetupIntentCreateParams.PaymentMethodData.CustomerBalance customerBalance) {
this.customerBalance = customerBalance;
return this;
}
/**
* If this is an {@code eps} PaymentMethod, this hash contains details about the EPS payment
* method.
*/
public Builder setEps(SetupIntentCreateParams.PaymentMethodData.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
* SetupIntentCreateParams.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 SetupIntentCreateParams.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(SetupIntentCreateParams.PaymentMethodData.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(SetupIntentCreateParams.PaymentMethodData.Giropay giropay) {
this.giropay = giropay;
return this;
}
/**
* If this is a Gopay PaymentMethod, this hash contains details about the Gopay payment
* method.
*/
public Builder setGopay(SetupIntentCreateParams.PaymentMethodData.Gopay gopay) {
this.gopay = gopay;
return this;
}
/**
* If this is a {@code grabpay} PaymentMethod, this hash contains details about the GrabPay
* payment method.
*/
public Builder setGrabpay(SetupIntentCreateParams.PaymentMethodData.Grabpay grabpay) {
this.grabpay = grabpay;
return this;
}
/**
* If this is an {@code IdBankTransfer} PaymentMethod, this hash contains details about the
* IdBankTransfer payment method.
*/
public Builder setIdBankTransfer(
SetupIntentCreateParams.PaymentMethodData.IdBankTransfer idBankTransfer) {
this.idBankTransfer = idBankTransfer;
return this;
}
/**
* If this is an {@code ideal} PaymentMethod, this hash contains details about the iDEAL
* payment method.
*/
public Builder setIdeal(SetupIntentCreateParams.PaymentMethodData.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(
SetupIntentCreateParams.PaymentMethodData.InteracPresent interacPresent) {
this.interacPresent = interacPresent;
return this;
}
/**
* If this is a {@code kakao_pay} PaymentMethod, this hash contains details about the Kakao
* Pay payment method.
*/
public Builder setKakaoPay(SetupIntentCreateParams.PaymentMethodData.KakaoPay kakaoPay) {
this.kakaoPay = kakaoPay;
return this;
}
/**
* If this is a {@code klarna} PaymentMethod, this hash contains details about the Klarna
* payment method.
*/
public Builder setKlarna(SetupIntentCreateParams.PaymentMethodData.Klarna klarna) {
this.klarna = klarna;
return this;
}
/**
* If this is a {@code konbini} PaymentMethod, this hash contains details about the Konbini
* payment method.
*/
public Builder setKonbini(SetupIntentCreateParams.PaymentMethodData.Konbini konbini) {
this.konbini = konbini;
return this;
}
/**
* If this is a {@code kr_card} PaymentMethod, this hash contains details about the Korean
* Card payment method.
*/
public Builder setKrCard(SetupIntentCreateParams.PaymentMethodData.KrCard krCard) {
this.krCard = krCard;
return this;
}
/**
* If this is an {@code Link} PaymentMethod, this hash contains details about the Link payment
* method.
*/
public Builder setLink(SetupIntentCreateParams.PaymentMethodData.Link link) {
this.link = link;
return this;
}
/**
* If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment
* method.
*/
public Builder setMbWay(SetupIntentCreateParams.PaymentMethodData.MbWay mbWay) {
this.mbWay = mbWay;
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
* SetupIntentCreateParams.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 SetupIntentCreateParams.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 mobilepay} PaymentMethod, this hash contains details about the
* MobilePay payment method.
*/
public Builder setMobilepay(SetupIntentCreateParams.PaymentMethodData.Mobilepay mobilepay) {
this.mobilepay = mobilepay;
return this;
}
/**
* If this is a {@code multibanco} PaymentMethod, this hash contains details about the
* Multibanco payment method.
*/
public Builder setMultibanco(
SetupIntentCreateParams.PaymentMethodData.Multibanco multibanco) {
this.multibanco = multibanco;
return this;
}
/**
* If this is a {@code naver_pay} PaymentMethod, this hash contains details about the Naver
* Pay payment method.
*/
public Builder setNaverPay(SetupIntentCreateParams.PaymentMethodData.NaverPay naverPay) {
this.naverPay = naverPay;
return this;
}
/**
* If this is an {@code oxxo} PaymentMethod, this hash contains details about the OXXO payment
* method.
*/
public Builder setOxxo(SetupIntentCreateParams.PaymentMethodData.Oxxo oxxo) {
this.oxxo = oxxo;
return this;
}
/**
* If this is a {@code p24} PaymentMethod, this hash contains details about the P24 payment
* method.
*/
public Builder setP24(SetupIntentCreateParams.PaymentMethodData.P24 p24) {
this.p24 = p24;
return this;
}
/**
* If this is a {@code payco} PaymentMethod, this hash contains details about the PAYCO
* payment method.
*/
public Builder setPayco(SetupIntentCreateParams.PaymentMethodData.Payco payco) {
this.payco = payco;
return this;
}
/**
* If this is a {@code paynow} PaymentMethod, this hash contains details about the PayNow
* payment method.
*/
public Builder setPaynow(SetupIntentCreateParams.PaymentMethodData.Paynow paynow) {
this.paynow = paynow;
return this;
}
/**
* If this is a {@code paypal} PaymentMethod, this hash contains details about the PayPal
* payment method.
*/
public Builder setPaypal(SetupIntentCreateParams.PaymentMethodData.Paypal paypal) {
this.paypal = paypal;
return this;
}
/**
* If this is a {@code payto} PaymentMethod, this hash contains details about the PayTo
* payment method.
*/
public Builder setPayto(SetupIntentCreateParams.PaymentMethodData.Payto payto) {
this.payto = payto;
return this;
}
/**
* If this is a {@code pix} PaymentMethod, this hash contains details about the Pix payment
* method.
*/
public Builder setPix(SetupIntentCreateParams.PaymentMethodData.Pix pix) {
this.pix = pix;
return this;
}
/**
* If this is a {@code promptpay} PaymentMethod, this hash contains details about the
* PromptPay payment method.
*/
public Builder setPromptpay(SetupIntentCreateParams.PaymentMethodData.Promptpay promptpay) {
this.promptpay = promptpay;
return this;
}
/**
* If this is a {@code qris} PaymentMethod, this hash contains details about the QRIS payment
* method.
*/
public Builder setQris(SetupIntentCreateParams.PaymentMethodData.Qris qris) {
this.qris = qris;
return this;
}
/**
* Options to configure Radar. See Radar
* Session for more information.
*/
public Builder setRadarOptions(
SetupIntentCreateParams.PaymentMethodData.RadarOptions radarOptions) {
this.radarOptions = radarOptions;
return this;
}
/**
* If this is a {@code rechnung} PaymentMethod, this hash contains details about the Rechnung
* payment method.
*/
public Builder setRechnung(SetupIntentCreateParams.PaymentMethodData.Rechnung rechnung) {
this.rechnung = rechnung;
return this;
}
/**
* If this is a {@code Revolut Pay} PaymentMethod, this hash contains details about the
* Revolut Pay payment method.
*/
public Builder setRevolutPay(
SetupIntentCreateParams.PaymentMethodData.RevolutPay revolutPay) {
this.revolutPay = revolutPay;
return this;
}
/**
* If this is a {@code samsung_pay} PaymentMethod, this hash contains details about the
* SamsungPay payment method.
*/
public Builder setSamsungPay(
SetupIntentCreateParams.PaymentMethodData.SamsungPay samsungPay) {
this.samsungPay = samsungPay;
return this;
}
/**
* If this is a {@code sepa_debit} PaymentMethod, this hash contains details about the SEPA
* debit bank account.
*/
public Builder setSepaDebit(SetupIntentCreateParams.PaymentMethodData.SepaDebit sepaDebit) {
this.sepaDebit = sepaDebit;
return this;
}
/**
* If this is a Shopeepay PaymentMethod, this hash contains details about the Shopeepay
* payment method.
*/
public Builder setShopeepay(SetupIntentCreateParams.PaymentMethodData.Shopeepay shopeepay) {
this.shopeepay = shopeepay;
return this;
}
/**
* If this is a {@code sofort} PaymentMethod, this hash contains details about the SOFORT
* payment method.
*/
public Builder setSofort(SetupIntentCreateParams.PaymentMethodData.Sofort sofort) {
this.sofort = sofort;
return this;
}
/**
* If this is a {@code swish} PaymentMethod, this hash contains details about the Swish
* payment method.
*/
public Builder setSwish(SetupIntentCreateParams.PaymentMethodData.Swish swish) {
this.swish = swish;
return this;
}
/**
* If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment
* method.
*/
public Builder setTwint(SetupIntentCreateParams.PaymentMethodData.Twint twint) {
this.twint = twint;
return this;
}
/**
* Required. 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(SetupIntentCreateParams.PaymentMethodData.Type type) {
this.type = type;
return this;
}
/**
* If this is an {@code us_bank_account} PaymentMethod, this hash contains details about the
* US bank account payment method.
*/
public Builder setUsBankAccount(
SetupIntentCreateParams.PaymentMethodData.UsBankAccount usBankAccount) {
this.usBankAccount = usBankAccount;
return this;
}
/**
* If this is an {@code wechat_pay} PaymentMethod, this hash contains details about the
* wechat_pay payment method.
*/
public Builder setWechatPay(SetupIntentCreateParams.PaymentMethodData.WechatPay wechatPay) {
this.wechatPay = wechatPay;
return this;
}
/**
* If this is a {@code zip} PaymentMethod, this hash contains details about the Zip payment
* method.
*/
public Builder setZip(SetupIntentCreateParams.PaymentMethodData.Zip zip) {
this.zip = zip;
return this;
}
}
@Getter
public static class AcssDebit {
/** Required. Customer's bank account number. */
@SerializedName("account_number")
String 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;
/** Required. Institution number of the customer's bank. */
@SerializedName("institution_number")
String institutionNumber;
/** Required. Transit number of the customer's bank. */
@SerializedName("transit_number")
String transitNumber;
private AcssDebit(
String accountNumber,
Map extraParams,
String institutionNumber,
String transitNumber) {
this.accountNumber = accountNumber;
this.extraParams = extraParams;
this.institutionNumber = institutionNumber;
this.transitNumber = transitNumber;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private String accountNumber;
private Map extraParams;
private String institutionNumber;
private String transitNumber;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.PaymentMethodData.AcssDebit build() {
return new SetupIntentCreateParams.PaymentMethodData.AcssDebit(
this.accountNumber, this.extraParams, this.institutionNumber, this.transitNumber);
}
/** Required. Customer's bank account number. */
public Builder setAccountNumber(String 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 SetupIntentCreateParams.PaymentMethodData.AcssDebit#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 SetupIntentCreateParams.PaymentMethodData.AcssDebit#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
/** Required. Institution number of the customer's bank. */
public Builder setInstitutionNumber(String institutionNumber) {
this.institutionNumber = institutionNumber;
return this;
}
/** Required. Transit number of the customer's bank. */
public Builder setTransitNumber(String transitNumber) {
this.transitNumber = transitNumber;
return this;
}
}
}
@Getter
public static class Affirm {
/**
* 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 Affirm(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 SetupIntentCreateParams.PaymentMethodData.Affirm build() {
return new SetupIntentCreateParams.PaymentMethodData.Affirm(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 SetupIntentCreateParams.PaymentMethodData.Affirm#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 SetupIntentCreateParams.PaymentMethodData.Affirm#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class AfterpayClearpay {
/**
* 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 AfterpayClearpay(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 SetupIntentCreateParams.PaymentMethodData.AfterpayClearpay build() {
return new SetupIntentCreateParams.PaymentMethodData.AfterpayClearpay(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 SetupIntentCreateParams.PaymentMethodData.AfterpayClearpay#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 SetupIntentCreateParams.PaymentMethodData.AfterpayClearpay#extraParams}
* for the field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Alipay {
/**
* 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 Alipay(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 SetupIntentCreateParams.PaymentMethodData.Alipay build() {
return new SetupIntentCreateParams.PaymentMethodData.Alipay(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 SetupIntentCreateParams.PaymentMethodData.Alipay#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 SetupIntentCreateParams.PaymentMethodData.Alipay#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Alma {
/**
* 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 Alma(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 SetupIntentCreateParams.PaymentMethodData.Alma build() {
return new SetupIntentCreateParams.PaymentMethodData.Alma(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 SetupIntentCreateParams.PaymentMethodData.Alma#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 SetupIntentCreateParams.PaymentMethodData.Alma#extraParams} for the field
* documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class AmazonPay {
/**
* 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 AmazonPay(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 SetupIntentCreateParams.PaymentMethodData.AmazonPay build() {
return new SetupIntentCreateParams.PaymentMethodData.AmazonPay(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 SetupIntentCreateParams.PaymentMethodData.AmazonPay#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 SetupIntentCreateParams.PaymentMethodData.AmazonPay#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class AuBecsDebit {
/** Required. The account number for the bank account. */
@SerializedName("account_number")
String accountNumber;
/** Required. Bank-State-Branch number of the bank account. */
@SerializedName("bsb_number")
String 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(String accountNumber, String bsbNumber, Map extraParams) {
this.accountNumber = accountNumber;
this.bsbNumber = bsbNumber;
this.extraParams = extraParams;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private String accountNumber;
private String bsbNumber;
private Map extraParams;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.PaymentMethodData.AuBecsDebit build() {
return new SetupIntentCreateParams.PaymentMethodData.AuBecsDebit(
this.accountNumber, this.bsbNumber, this.extraParams);
}
/** Required. The account number for the bank account. */
public Builder setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
return this;
}
/** Required. Bank-State-Branch number of the bank account. */
public Builder setBsbNumber(String 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 SetupIntentCreateParams.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;
}
/**
* 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 SetupIntentCreateParams.PaymentMethodData.AuBecsDebit#extraParams} for
* the field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class BacsDebit {
/** Account number of the bank account that the funds will be debited from. */
@SerializedName("account_number")
String 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")
String sortCode;
private BacsDebit(String accountNumber, Map extraParams, String sortCode) {
this.accountNumber = accountNumber;
this.extraParams = extraParams;
this.sortCode = sortCode;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private String accountNumber;
private Map extraParams;
private String sortCode;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.PaymentMethodData.BacsDebit build() {
return new SetupIntentCreateParams.PaymentMethodData.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;
}
/**
* 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 SetupIntentCreateParams.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 SetupIntentCreateParams.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;
}
}
}
@Getter
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 SetupIntentCreateParams.PaymentMethodData.Bancontact build() {
return new SetupIntentCreateParams.PaymentMethodData.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 SetupIntentCreateParams.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;
}
/**
* 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 SetupIntentCreateParams.PaymentMethodData.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;
}
}
}
@Getter
public static class BillingDetails {
/** Billing address. */
@SerializedName("address")
Object 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(
Object 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 Object address;
private Object email;
private Map extraParams;
private Object name;
private Object phone;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.PaymentMethodData.BillingDetails build() {
return new SetupIntentCreateParams.PaymentMethodData.BillingDetails(
this.address, this.email, this.extraParams, this.name, this.phone);
}
/** Billing address. */
public Builder setAddress(
SetupIntentCreateParams.PaymentMethodData.BillingDetails.Address address) {
this.address = address;
return this;
}
/** Billing address. */
public Builder setAddress(EmptyParam 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 SetupIntentCreateParams.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 SetupIntentCreateParams.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;
}
}
@Getter
public static class Address {
/** City, district, suburb, town, or village. */
@SerializedName("city")
String city;
/**
* Two-letter country code (ISO
* 3166-1 alpha-2).
*/
@SerializedName("country")
String 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")
String line1;
/** Address line 2 (e.g., apartment, suite, unit, or building). */
@SerializedName("line2")
String line2;
/** ZIP or postal code. */
@SerializedName("postal_code")
String postalCode;
/** State, county, province, or region. */
@SerializedName("state")
String state;
private Address(
String city,
String country,
Map extraParams,
String line1,
String line2,
String postalCode,
String 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 String city;
private String country;
private Map extraParams;
private String line1;
private String line2;
private String postalCode;
private String state;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.PaymentMethodData.BillingDetails.Address build() {
return new SetupIntentCreateParams.PaymentMethodData.BillingDetails.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;
}
/**
* Two-letter country code (ISO
* 3166-1 alpha-2).
*/
public Builder setCountry(String 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
* SetupIntentCreateParams.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
* SetupIntentCreateParams.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 2 (e.g., apartment, suite, unit, or building). */
public Builder setLine2(String line2) {
this.line2 = line2;
return this;
}
/** ZIP or postal code. */
public Builder setPostalCode(String postalCode) {
this.postalCode = postalCode;
return this;
}
/** State, county, province, or region. */
public Builder setState(String state) {
this.state = state;
return this;
}
}
}
}
@Getter
public static class Blik {
/**
* 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 Blik(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 SetupIntentCreateParams.PaymentMethodData.Blik build() {
return new SetupIntentCreateParams.PaymentMethodData.Blik(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 SetupIntentCreateParams.PaymentMethodData.Blik#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 SetupIntentCreateParams.PaymentMethodData.Blik#extraParams} for the field
* documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Boleto {
/**
* 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;
/**
* Required. The tax ID of the customer (CPF for individual consumers or CNPJ
* for businesses consumers)
*/
@SerializedName("tax_id")
String taxId;
private Boleto(Map extraParams, String taxId) {
this.extraParams = extraParams;
this.taxId = taxId;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private Map extraParams;
private String taxId;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.PaymentMethodData.Boleto build() {
return new SetupIntentCreateParams.PaymentMethodData.Boleto(this.extraParams, this.taxId);
}
/**
* 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 SetupIntentCreateParams.PaymentMethodData.Boleto#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 SetupIntentCreateParams.PaymentMethodData.Boleto#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
/**
* Required. The tax ID of the customer (CPF for individual consumers or
* CNPJ for businesses consumers)
*/
public Builder setTaxId(String taxId) {
this.taxId = taxId;
return this;
}
}
}
@Getter
public static class Cashapp {
/**
* 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 Cashapp(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 SetupIntentCreateParams.PaymentMethodData.Cashapp build() {
return new SetupIntentCreateParams.PaymentMethodData.Cashapp(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 SetupIntentCreateParams.PaymentMethodData.Cashapp#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 SetupIntentCreateParams.PaymentMethodData.Cashapp#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class CustomerBalance {
/**
* 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 CustomerBalance(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 SetupIntentCreateParams.PaymentMethodData.CustomerBalance build() {
return new SetupIntentCreateParams.PaymentMethodData.CustomerBalance(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 SetupIntentCreateParams.PaymentMethodData.CustomerBalance#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 SetupIntentCreateParams.PaymentMethodData.CustomerBalance#extraParams}
* for the field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Eps {
/** 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 Eps(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 SetupIntentCreateParams.PaymentMethodData.Eps build() {
return new SetupIntentCreateParams.PaymentMethodData.Eps(this.bank, this.extraParams);
}
/** The customer's bank. */
public Builder setBank(SetupIntentCreateParams.PaymentMethodData.Eps.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 SetupIntentCreateParams.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;
}
/**
* 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 SetupIntentCreateParams.PaymentMethodData.Eps#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("arzte_und_apotheker_bank")
ARZTE_UND_APOTHEKER_BANK("arzte_und_apotheker_bank"),
@SerializedName("austrian_anadi_bank_ag")
AUSTRIAN_ANADI_BANK_AG("austrian_anadi_bank_ag"),
@SerializedName("bank_austria")
BANK_AUSTRIA("bank_austria"),
@SerializedName("bankhaus_carl_spangler")
BANKHAUS_CARL_SPANGLER("bankhaus_carl_spangler"),
@SerializedName("bankhaus_schelhammer_und_schattera_ag")
BANKHAUS_SCHELHAMMER_UND_SCHATTERA_AG("bankhaus_schelhammer_und_schattera_ag"),
@SerializedName("bawag_psk_ag")
BAWAG_PSK_AG("bawag_psk_ag"),
@SerializedName("bks_bank_ag")
BKS_BANK_AG("bks_bank_ag"),
@SerializedName("brull_kallmus_bank_ag")
BRULL_KALLMUS_BANK_AG("brull_kallmus_bank_ag"),
@SerializedName("btv_vier_lander_bank")
BTV_VIER_LANDER_BANK("btv_vier_lander_bank"),
@SerializedName("capital_bank_grawe_gruppe_ag")
CAPITAL_BANK_GRAWE_GRUPPE_AG("capital_bank_grawe_gruppe_ag"),
@SerializedName("deutsche_bank_ag")
DEUTSCHE_BANK_AG("deutsche_bank_ag"),
@SerializedName("dolomitenbank")
DOLOMITENBANK("dolomitenbank"),
@SerializedName("easybank_ag")
EASYBANK_AG("easybank_ag"),
@SerializedName("erste_bank_und_sparkassen")
ERSTE_BANK_UND_SPARKASSEN("erste_bank_und_sparkassen"),
@SerializedName("hypo_alpeadriabank_international_ag")
HYPO_ALPEADRIABANK_INTERNATIONAL_AG("hypo_alpeadriabank_international_ag"),
@SerializedName("hypo_bank_burgenland_aktiengesellschaft")
HYPO_BANK_BURGENLAND_AKTIENGESELLSCHAFT("hypo_bank_burgenland_aktiengesellschaft"),
@SerializedName("hypo_noe_lb_fur_niederosterreich_u_wien")
HYPO_NOE_LB_FUR_NIEDEROSTERREICH_U_WIEN("hypo_noe_lb_fur_niederosterreich_u_wien"),
@SerializedName("hypo_oberosterreich_salzburg_steiermark")
HYPO_OBEROSTERREICH_SALZBURG_STEIERMARK("hypo_oberosterreich_salzburg_steiermark"),
@SerializedName("hypo_tirol_bank_ag")
HYPO_TIROL_BANK_AG("hypo_tirol_bank_ag"),
@SerializedName("hypo_vorarlberg_bank_ag")
HYPO_VORARLBERG_BANK_AG("hypo_vorarlberg_bank_ag"),
@SerializedName("marchfelder_bank")
MARCHFELDER_BANK("marchfelder_bank"),
@SerializedName("oberbank_ag")
OBERBANK_AG("oberbank_ag"),
@SerializedName("raiffeisen_bankengruppe_osterreich")
RAIFFEISEN_BANKENGRUPPE_OSTERREICH("raiffeisen_bankengruppe_osterreich"),
@SerializedName("schoellerbank_ag")
SCHOELLERBANK_AG("schoellerbank_ag"),
@SerializedName("sparda_bank_wien")
SPARDA_BANK_WIEN("sparda_bank_wien"),
@SerializedName("volksbank_gruppe")
VOLKSBANK_GRUPPE("volksbank_gruppe"),
@SerializedName("volkskreditbank_ag")
VOLKSKREDITBANK_AG("volkskreditbank_ag"),
@SerializedName("vr_bank_braunau")
VR_BANK_BRAUNAU("vr_bank_braunau");
@Getter(onMethod_ = {@Override})
private final String value;
Bank(String value) {
this.value = value;
}
}
}
@Getter
public static class Fpx {
/** Account holder type for FPX transaction. */
@SerializedName("account_holder_type")
AccountHolderType accountHolderType;
/** Required. 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 SetupIntentCreateParams.PaymentMethodData.Fpx build() {
return new SetupIntentCreateParams.PaymentMethodData.Fpx(
this.accountHolderType, this.bank, this.extraParams);
}
/** Account holder type for FPX transaction. */
public Builder setAccountHolderType(
SetupIntentCreateParams.PaymentMethodData.Fpx.AccountHolderType accountHolderType) {
this.accountHolderType = accountHolderType;
return this;
}
/** Required. The customer's bank. */
public Builder setBank(SetupIntentCreateParams.PaymentMethodData.Fpx.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 SetupIntentCreateParams.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 SetupIntentCreateParams.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");
@Getter(onMethod_ = {@Override})
private final String value;
AccountHolderType(String value) {
this.value = value;
}
}
public enum Bank implements ApiRequestParams.EnumParam {
@SerializedName("affin_bank")
AFFIN_BANK("affin_bank"),
@SerializedName("agrobank")
AGROBANK("agrobank"),
@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_of_china")
BANK_OF_CHINA("bank_of_china"),
@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");
@Getter(onMethod_ = {@Override})
private final String value;
Bank(String value) {
this.value = value;
}
}
}
@Getter
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 SetupIntentCreateParams.PaymentMethodData.Giropay build() {
return new SetupIntentCreateParams.PaymentMethodData.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 SetupIntentCreateParams.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;
}
/**
* 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 SetupIntentCreateParams.PaymentMethodData.Giropay#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Gopay {
/**
* 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 Gopay(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 SetupIntentCreateParams.PaymentMethodData.Gopay build() {
return new SetupIntentCreateParams.PaymentMethodData.Gopay(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 SetupIntentCreateParams.PaymentMethodData.Gopay#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 SetupIntentCreateParams.PaymentMethodData.Gopay#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Grabpay {
/**
* 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 Grabpay(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 SetupIntentCreateParams.PaymentMethodData.Grabpay build() {
return new SetupIntentCreateParams.PaymentMethodData.Grabpay(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 SetupIntentCreateParams.PaymentMethodData.Grabpay#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 SetupIntentCreateParams.PaymentMethodData.Grabpay#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class IdBankTransfer {
/** Bank where the account is held. */
@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 IdBankTransfer(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 SetupIntentCreateParams.PaymentMethodData.IdBankTransfer build() {
return new SetupIntentCreateParams.PaymentMethodData.IdBankTransfer(
this.bank, this.extraParams);
}
/** Bank where the account is held. */
public Builder setBank(SetupIntentCreateParams.PaymentMethodData.IdBankTransfer.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 SetupIntentCreateParams.PaymentMethodData.IdBankTransfer#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 SetupIntentCreateParams.PaymentMethodData.IdBankTransfer#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("bca")
BCA("bca"),
@SerializedName("bni")
BNI("bni"),
@SerializedName("bri")
BRI("bri"),
@SerializedName("cimb")
CIMB("cimb"),
@SerializedName("permata")
PERMATA("permata");
@Getter(onMethod_ = {@Override})
private final String value;
Bank(String value) {
this.value = value;
}
}
}
@Getter
public static class Ideal {
/**
* The customer's bank. Only use this parameter for existing customers. Don't use it for new
* customers.
*/
@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 SetupIntentCreateParams.PaymentMethodData.Ideal build() {
return new SetupIntentCreateParams.PaymentMethodData.Ideal(this.bank, this.extraParams);
}
/**
* The customer's bank. Only use this parameter for existing customers. Don't use it for new
* customers.
*/
public Builder setBank(SetupIntentCreateParams.PaymentMethodData.Ideal.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 SetupIntentCreateParams.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 SetupIntentCreateParams.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("n26")
N26("n26"),
@SerializedName("nn")
NN("nn"),
@SerializedName("rabobank")
RABOBANK("rabobank"),
@SerializedName("regiobank")
REGIOBANK("regiobank"),
@SerializedName("revolut")
REVOLUT("revolut"),
@SerializedName("sns_bank")
SNS_BANK("sns_bank"),
@SerializedName("triodos_bank")
TRIODOS_BANK("triodos_bank"),
@SerializedName("van_lanschot")
VAN_LANSCHOT("van_lanschot"),
@SerializedName("yoursafe")
YOURSAFE("yoursafe");
@Getter(onMethod_ = {@Override})
private final String value;
Bank(String value) {
this.value = value;
}
}
}
@Getter
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 SetupIntentCreateParams.PaymentMethodData.InteracPresent build() {
return new SetupIntentCreateParams.PaymentMethodData.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 SetupIntentCreateParams.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;
}
/**
* 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 SetupIntentCreateParams.PaymentMethodData.InteracPresent#extraParams} for
* the field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class KakaoPay {
/**
* 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 KakaoPay(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 SetupIntentCreateParams.PaymentMethodData.KakaoPay build() {
return new SetupIntentCreateParams.PaymentMethodData.KakaoPay(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 SetupIntentCreateParams.PaymentMethodData.KakaoPay#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 SetupIntentCreateParams.PaymentMethodData.KakaoPay#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Klarna {
/** Customer's date of birth. */
@SerializedName("dob")
Dob dob;
/**
* 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 Klarna(Dob dob, Map extraParams) {
this.dob = dob;
this.extraParams = extraParams;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private Dob dob;
private Map extraParams;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.PaymentMethodData.Klarna build() {
return new SetupIntentCreateParams.PaymentMethodData.Klarna(this.dob, this.extraParams);
}
/** Customer's date of birth. */
public Builder setDob(SetupIntentCreateParams.PaymentMethodData.Klarna.Dob dob) {
this.dob = dob;
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 SetupIntentCreateParams.PaymentMethodData.Klarna#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 SetupIntentCreateParams.PaymentMethodData.Klarna#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
@Getter
public static class Dob {
/** Required. The day of birth, between 1 and 31. */
@SerializedName("day")
Long day;
/**
* 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;
/** Required. The month of birth, between 1 and 12. */
@SerializedName("month")
Long month;
/** Required. The four-digit year of birth. */
@SerializedName("year")
Long year;
private Dob(Long day, Map extraParams, Long month, Long year) {
this.day = day;
this.extraParams = extraParams;
this.month = month;
this.year = year;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private Long day;
private Map extraParams;
private Long month;
private Long year;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.PaymentMethodData.Klarna.Dob build() {
return new SetupIntentCreateParams.PaymentMethodData.Klarna.Dob(
this.day, this.extraParams, this.month, this.year);
}
/** Required. The day of birth, between 1 and 31. */
public Builder setDay(Long day) {
this.day = day;
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 SetupIntentCreateParams.PaymentMethodData.Klarna.Dob#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 SetupIntentCreateParams.PaymentMethodData.Klarna.Dob#extraParams} for
* the field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
/** Required. The month of birth, between 1 and 12. */
public Builder setMonth(Long month) {
this.month = month;
return this;
}
/** Required. The four-digit year of birth. */
public Builder setYear(Long year) {
this.year = year;
return this;
}
}
}
}
@Getter
public static class Konbini {
/**
* 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 Konbini(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 SetupIntentCreateParams.PaymentMethodData.Konbini build() {
return new SetupIntentCreateParams.PaymentMethodData.Konbini(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 SetupIntentCreateParams.PaymentMethodData.Konbini#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 SetupIntentCreateParams.PaymentMethodData.Konbini#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class KrCard {
/**
* 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 KrCard(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 SetupIntentCreateParams.PaymentMethodData.KrCard build() {
return new SetupIntentCreateParams.PaymentMethodData.KrCard(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 SetupIntentCreateParams.PaymentMethodData.KrCard#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 SetupIntentCreateParams.PaymentMethodData.KrCard#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Link {
/**
* 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 Link(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 SetupIntentCreateParams.PaymentMethodData.Link build() {
return new SetupIntentCreateParams.PaymentMethodData.Link(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 SetupIntentCreateParams.PaymentMethodData.Link#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 SetupIntentCreateParams.PaymentMethodData.Link#extraParams} for the field
* documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class MbWay {
/**
* 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 MbWay(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 SetupIntentCreateParams.PaymentMethodData.MbWay build() {
return new SetupIntentCreateParams.PaymentMethodData.MbWay(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 SetupIntentCreateParams.PaymentMethodData.MbWay#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 SetupIntentCreateParams.PaymentMethodData.MbWay#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Mobilepay {
/**
* 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 Mobilepay(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 SetupIntentCreateParams.PaymentMethodData.Mobilepay build() {
return new SetupIntentCreateParams.PaymentMethodData.Mobilepay(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 SetupIntentCreateParams.PaymentMethodData.Mobilepay#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 SetupIntentCreateParams.PaymentMethodData.Mobilepay#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Multibanco {
/**
* 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 Multibanco(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 SetupIntentCreateParams.PaymentMethodData.Multibanco build() {
return new SetupIntentCreateParams.PaymentMethodData.Multibanco(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 SetupIntentCreateParams.PaymentMethodData.Multibanco#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 SetupIntentCreateParams.PaymentMethodData.Multibanco#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class NaverPay {
/**
* 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;
/**
* Whether to use Naver Pay points or a card to fund this transaction. If not provided, this
* defaults to {@code card}.
*/
@SerializedName("funding")
Funding funding;
private NaverPay(Map extraParams, Funding funding) {
this.extraParams = extraParams;
this.funding = funding;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private Map extraParams;
private Funding funding;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.PaymentMethodData.NaverPay build() {
return new SetupIntentCreateParams.PaymentMethodData.NaverPay(
this.extraParams, this.funding);
}
/**
* 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 SetupIntentCreateParams.PaymentMethodData.NaverPay#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 SetupIntentCreateParams.PaymentMethodData.NaverPay#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
/**
* Whether to use Naver Pay points or a card to fund this transaction. If not provided, this
* defaults to {@code card}.
*/
public Builder setFunding(
SetupIntentCreateParams.PaymentMethodData.NaverPay.Funding funding) {
this.funding = funding;
return this;
}
}
public enum Funding implements ApiRequestParams.EnumParam {
@SerializedName("card")
CARD("card"),
@SerializedName("points")
POINTS("points");
@Getter(onMethod_ = {@Override})
private final String value;
Funding(String value) {
this.value = value;
}
}
}
@Getter
public static class Oxxo {
/**
* 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 Oxxo(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 SetupIntentCreateParams.PaymentMethodData.Oxxo build() {
return new SetupIntentCreateParams.PaymentMethodData.Oxxo(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 SetupIntentCreateParams.PaymentMethodData.Oxxo#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 SetupIntentCreateParams.PaymentMethodData.Oxxo#extraParams} for the field
* documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class P24 {
/** 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 P24(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 SetupIntentCreateParams.PaymentMethodData.P24 build() {
return new SetupIntentCreateParams.PaymentMethodData.P24(this.bank, this.extraParams);
}
/** The customer's bank. */
public Builder setBank(SetupIntentCreateParams.PaymentMethodData.P24.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 SetupIntentCreateParams.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;
}
/**
* 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 SetupIntentCreateParams.PaymentMethodData.P24#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("alior_bank")
ALIOR_BANK("alior_bank"),
@SerializedName("bank_millennium")
BANK_MILLENNIUM("bank_millennium"),
@SerializedName("bank_nowy_bfg_sa")
BANK_NOWY_BFG_SA("bank_nowy_bfg_sa"),
@SerializedName("bank_pekao_sa")
BANK_PEKAO_SA("bank_pekao_sa"),
@SerializedName("banki_spbdzielcze")
BANKI_SPBDZIELCZE("banki_spbdzielcze"),
@SerializedName("blik")
BLIK("blik"),
@SerializedName("bnp_paribas")
BNP_PARIBAS("bnp_paribas"),
@SerializedName("boz")
BOZ("boz"),
@SerializedName("citi_handlowy")
CITI_HANDLOWY("citi_handlowy"),
@SerializedName("credit_agricole")
CREDIT_AGRICOLE("credit_agricole"),
@SerializedName("envelobank")
ENVELOBANK("envelobank"),
@SerializedName("etransfer_pocztowy24")
ETRANSFER_POCZTOWY24("etransfer_pocztowy24"),
@SerializedName("getin_bank")
GETIN_BANK("getin_bank"),
@SerializedName("ideabank")
IDEABANK("ideabank"),
@SerializedName("ing")
ING("ing"),
@SerializedName("inteligo")
INTELIGO("inteligo"),
@SerializedName("mbank_mtransfer")
MBANK_MTRANSFER("mbank_mtransfer"),
@SerializedName("nest_przelew")
NEST_PRZELEW("nest_przelew"),
@SerializedName("noble_pay")
NOBLE_PAY("noble_pay"),
@SerializedName("pbac_z_ipko")
PBAC_Z_IPKO("pbac_z_ipko"),
@SerializedName("plus_bank")
PLUS_BANK("plus_bank"),
@SerializedName("santander_przelew24")
SANTANDER_PRZELEW24("santander_przelew24"),
@SerializedName("tmobile_usbugi_bankowe")
TMOBILE_USBUGI_BANKOWE("tmobile_usbugi_bankowe"),
@SerializedName("toyota_bank")
TOYOTA_BANK("toyota_bank"),
@SerializedName("velobank")
VELOBANK("velobank"),
@SerializedName("volkswagen_bank")
VOLKSWAGEN_BANK("volkswagen_bank");
@Getter(onMethod_ = {@Override})
private final String value;
Bank(String value) {
this.value = value;
}
}
}
@Getter
public static class Payco {
/**
* 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 Payco(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 SetupIntentCreateParams.PaymentMethodData.Payco build() {
return new SetupIntentCreateParams.PaymentMethodData.Payco(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 SetupIntentCreateParams.PaymentMethodData.Payco#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 SetupIntentCreateParams.PaymentMethodData.Payco#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Paynow {
/**
* 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 Paynow(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 SetupIntentCreateParams.PaymentMethodData.Paynow build() {
return new SetupIntentCreateParams.PaymentMethodData.Paynow(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 SetupIntentCreateParams.PaymentMethodData.Paynow#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 SetupIntentCreateParams.PaymentMethodData.Paynow#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Paypal {
/**
* 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 Paypal(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 SetupIntentCreateParams.PaymentMethodData.Paypal build() {
return new SetupIntentCreateParams.PaymentMethodData.Paypal(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 SetupIntentCreateParams.PaymentMethodData.Paypal#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 SetupIntentCreateParams.PaymentMethodData.Paypal#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Payto {
/** The account number for the bank account. */
@SerializedName("account_number")
String accountNumber;
/** Bank-State-Branch number of the bank account. */
@SerializedName("bsb_number")
String 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;
/** The PayID alias for the bank account. */
@SerializedName("pay_id")
String payId;
private Payto(
String accountNumber, String bsbNumber, Map extraParams, String payId) {
this.accountNumber = accountNumber;
this.bsbNumber = bsbNumber;
this.extraParams = extraParams;
this.payId = payId;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private String accountNumber;
private String bsbNumber;
private Map extraParams;
private String payId;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.PaymentMethodData.Payto build() {
return new SetupIntentCreateParams.PaymentMethodData.Payto(
this.accountNumber, this.bsbNumber, this.extraParams, this.payId);
}
/** The account number for the bank account. */
public Builder setAccountNumber(String accountNumber) {
this.accountNumber = accountNumber;
return this;
}
/** Bank-State-Branch number of the bank account. */
public Builder setBsbNumber(String 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 SetupIntentCreateParams.PaymentMethodData.Payto#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 SetupIntentCreateParams.PaymentMethodData.Payto#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 PayID alias for the bank account. */
public Builder setPayId(String payId) {
this.payId = payId;
return this;
}
}
}
@Getter
public static class Pix {
/**
* 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 Pix(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 SetupIntentCreateParams.PaymentMethodData.Pix build() {
return new SetupIntentCreateParams.PaymentMethodData.Pix(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 SetupIntentCreateParams.PaymentMethodData.Pix#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 SetupIntentCreateParams.PaymentMethodData.Pix#extraParams} for the field
* documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Promptpay {
/**
* 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 Promptpay(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 SetupIntentCreateParams.PaymentMethodData.Promptpay build() {
return new SetupIntentCreateParams.PaymentMethodData.Promptpay(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 SetupIntentCreateParams.PaymentMethodData.Promptpay#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 SetupIntentCreateParams.PaymentMethodData.Promptpay#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Qris {
/**
* 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 Qris(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 SetupIntentCreateParams.PaymentMethodData.Qris build() {
return new SetupIntentCreateParams.PaymentMethodData.Qris(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 SetupIntentCreateParams.PaymentMethodData.Qris#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 SetupIntentCreateParams.PaymentMethodData.Qris#extraParams} for the field
* documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class RadarOptions {
/**
* 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;
/**
* A Radar Session is a snapshot of
* the browser metadata and device details that help Radar make more accurate predictions on
* your payments.
*/
@SerializedName("session")
String session;
private RadarOptions(Map extraParams, String session) {
this.extraParams = extraParams;
this.session = session;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private Map extraParams;
private String session;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.PaymentMethodData.RadarOptions build() {
return new SetupIntentCreateParams.PaymentMethodData.RadarOptions(
this.extraParams, this.session);
}
/**
* 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 SetupIntentCreateParams.PaymentMethodData.RadarOptions#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 SetupIntentCreateParams.PaymentMethodData.RadarOptions#extraParams} for
* the field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
/**
* A Radar Session is a snapshot
* of the browser metadata and device details that help Radar make more accurate predictions
* on your payments.
*/
public Builder setSession(String session) {
this.session = session;
return this;
}
}
}
@Getter
public static class Rechnung {
/** Required. Customer's date of birth */
@SerializedName("dob")
Dob dob;
/**
* 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 Rechnung(Dob dob, Map extraParams) {
this.dob = dob;
this.extraParams = extraParams;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private Dob dob;
private Map extraParams;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.PaymentMethodData.Rechnung build() {
return new SetupIntentCreateParams.PaymentMethodData.Rechnung(this.dob, this.extraParams);
}
/** Required. Customer's date of birth */
public Builder setDob(SetupIntentCreateParams.PaymentMethodData.Rechnung.Dob dob) {
this.dob = dob;
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 SetupIntentCreateParams.PaymentMethodData.Rechnung#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 SetupIntentCreateParams.PaymentMethodData.Rechnung#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
@Getter
public static class Dob {
/** Required. The day of birth, between 1 and 31. */
@SerializedName("day")
Long day;
/**
* 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;
/** Required. The month of birth, between 1 and 12. */
@SerializedName("month")
Long month;
/** Required. The four-digit year of birth. */
@SerializedName("year")
Long year;
private Dob(Long day, Map extraParams, Long month, Long year) {
this.day = day;
this.extraParams = extraParams;
this.month = month;
this.year = year;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private Long day;
private Map extraParams;
private Long month;
private Long year;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.PaymentMethodData.Rechnung.Dob build() {
return new SetupIntentCreateParams.PaymentMethodData.Rechnung.Dob(
this.day, this.extraParams, this.month, this.year);
}
/** Required. The day of birth, between 1 and 31. */
public Builder setDay(Long day) {
this.day = day;
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 SetupIntentCreateParams.PaymentMethodData.Rechnung.Dob#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 SetupIntentCreateParams.PaymentMethodData.Rechnung.Dob#extraParams} for
* the field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
/** Required. The month of birth, between 1 and 12. */
public Builder setMonth(Long month) {
this.month = month;
return this;
}
/** Required. The four-digit year of birth. */
public Builder setYear(Long year) {
this.year = year;
return this;
}
}
}
}
@Getter
public static class RevolutPay {
/**
* 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 RevolutPay(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 SetupIntentCreateParams.PaymentMethodData.RevolutPay build() {
return new SetupIntentCreateParams.PaymentMethodData.RevolutPay(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 SetupIntentCreateParams.PaymentMethodData.RevolutPay#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 SetupIntentCreateParams.PaymentMethodData.RevolutPay#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class SamsungPay {
/**
* 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 SamsungPay(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 SetupIntentCreateParams.PaymentMethodData.SamsungPay build() {
return new SetupIntentCreateParams.PaymentMethodData.SamsungPay(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 SetupIntentCreateParams.PaymentMethodData.SamsungPay#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 SetupIntentCreateParams.PaymentMethodData.SamsungPay#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
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;
/** Required. IBAN of the bank account. */
@SerializedName("iban")
String iban;
private SepaDebit(Map extraParams, String iban) {
this.extraParams = extraParams;
this.iban = iban;
}
public static Builder builder() {
return new Builder();
}
public static class Builder {
private Map extraParams;
private String iban;
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.PaymentMethodData.SepaDebit build() {
return new SetupIntentCreateParams.PaymentMethodData.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 SetupIntentCreateParams.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 SetupIntentCreateParams.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;
}
/** Required. IBAN of the bank account. */
public Builder setIban(String iban) {
this.iban = iban;
return this;
}
}
}
@Getter
public static class Shopeepay {
/**
* 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 Shopeepay(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 SetupIntentCreateParams.PaymentMethodData.Shopeepay build() {
return new SetupIntentCreateParams.PaymentMethodData.Shopeepay(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 SetupIntentCreateParams.PaymentMethodData.Shopeepay#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 SetupIntentCreateParams.PaymentMethodData.Shopeepay#extraParams} for the
* field documentation.
*/
public Builder putAllExtraParam(Map map) {
if (this.extraParams == null) {
this.extraParams = new HashMap<>();
}
this.extraParams.putAll(map);
return this;
}
}
}
@Getter
public static class Sofort {
/**
* Required. Two-letter ISO code representing the country the bank account is
* located in.
*/
@SerializedName("country")
Country 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;
private Sofort(Country country, Map