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

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

// Generated by delombok at Thu Oct 07 18:42:34 EDT 2021
// 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;

public class SetupIntentUpdateParams extends ApiRequestParams {
  /**
   * 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") Object customer; /** * An arbitrary string attached to the object. Often useful for displaying to users. */ @SerializedName("description") Object description; /** * Specifies which fields in the response should be expanded. */ @SerializedName("expand") List expand; /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** * Set of key-value pairs that you can attach * to an object. This can be useful for storing additional information about the object in a * structured format. Individual keys can be unset by posting an empty value to them. All keys can * be unset by posting an empty value to {@code metadata}. */ @SerializedName("metadata") Object metadata; /** * ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this * SetupIntent. */ @SerializedName("payment_method") Object paymentMethod; /** * Payment-method-specific configuration for this SetupIntent. */ @SerializedName("payment_method_options") PaymentMethodOptions paymentMethodOptions; /** * The list of payment method types (e.g. card) that this SetupIntent is allowed to set up. If * this is not provided, defaults to ["card"]. */ @SerializedName("payment_method_types") List paymentMethodTypes; private SetupIntentUpdateParams(Object customer, Object description, List expand, Map extraParams, Object metadata, Object paymentMethod, PaymentMethodOptions paymentMethodOptions, List paymentMethodTypes) { this.customer = customer; this.description = description; this.expand = expand; this.extraParams = extraParams; this.metadata = metadata; this.paymentMethod = paymentMethod; this.paymentMethodOptions = paymentMethodOptions; this.paymentMethodTypes = paymentMethodTypes; } public static Builder builder() { return new Builder(); } public static class Builder { private Object customer; private Object description; private List expand; private Map extraParams; private Object metadata; private Object paymentMethod; private PaymentMethodOptions paymentMethodOptions; private List paymentMethodTypes; /** * Finalize and obtain parameter instance from this builder. */ public SetupIntentUpdateParams build() { return new SetupIntentUpdateParams(this.customer, this.description, this.expand, this.extraParams, this.metadata, this.paymentMethod, this.paymentMethodOptions, this.paymentMethodTypes); } /** * 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; } /** * 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(EmptyParam customer) { this.customer = customer; return this; } /** * An arbitrary string attached to the object. Often useful for displaying to users. */ public Builder setDescription(String description) { this.description = description; return this; } /** * An arbitrary string attached to the object. Often useful for displaying to users. */ public Builder setDescription(EmptyParam description) { this.description = description; return this; } /** * Add an element to `expand` list. A list is initialized for the first `add/addAll` call, and * subsequent calls adds additional elements to the original list. See {@link * SetupIntentUpdateParams#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 * SetupIntentUpdateParams#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 * SetupIntentUpdateParams#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 SetupIntentUpdateParams#extraParams} for the field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** * Add a key/value pair to `metadata` map. A map is initialized for the first `put/putAll` call, * and subsequent calls add additional key/value pairs to the original map. See {@link * SetupIntentUpdateParams#metadata} for the field documentation. */ @SuppressWarnings("unchecked") public Builder putMetadata(String key, String value) { if (this.metadata == null || this.metadata instanceof EmptyParam) { this.metadata = new HashMap(); } ((Map) this.metadata).put(key, value); return this; } /** * Add all map key/value pairs to `metadata` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. * See {@link SetupIntentUpdateParams#metadata} for the field documentation. */ @SuppressWarnings("unchecked") public Builder putAllMetadata(Map map) { if (this.metadata == null || this.metadata instanceof EmptyParam) { this.metadata = new HashMap(); } ((Map) this.metadata).putAll(map); return this; } /** * Set of key-value pairs that you can attach * to an object. This can be useful for storing additional information about the object in a * structured format. Individual keys can be unset by posting an empty value to them. All keys * can be unset by posting an empty value to {@code metadata}. */ public Builder setMetadata(EmptyParam metadata) { this.metadata = metadata; return this; } /** * Set of key-value pairs that you can attach * to an object. This can be useful for storing additional information about the object in a * structured format. Individual keys can be unset by posting an empty value to them. All keys * can be unset by posting an empty value to {@code metadata}. */ public Builder setMetadata(Map metadata) { this.metadata = metadata; return this; } /** * ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this * SetupIntent. */ public Builder setPaymentMethod(String paymentMethod) { this.paymentMethod = paymentMethod; return this; } /** * ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this * SetupIntent. */ public Builder setPaymentMethod(EmptyParam paymentMethod) { this.paymentMethod = paymentMethod; return this; } /** * Payment-method-specific configuration for this SetupIntent. */ public Builder setPaymentMethodOptions(PaymentMethodOptions paymentMethodOptions) { this.paymentMethodOptions = paymentMethodOptions; return this; } /** * Add an element to `paymentMethodTypes` list. A list is initialized for the first `add/addAll` * call, and subsequent calls adds additional elements to the original list. See {@link * SetupIntentUpdateParams#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 SetupIntentUpdateParams#paymentMethodTypes} for the field documentation. */ public Builder addAllPaymentMethodType(List elements) { if (this.paymentMethodTypes == null) { this.paymentMethodTypes = new ArrayList<>(); } this.paymentMethodTypes.addAll(elements); return this; } } public static class PaymentMethodOptions { /** * If this is a {@code acss_debit} SetupIntent, this sub-hash contains details about the ACSS * Debit payment method options. */ @SerializedName("acss_debit") AcssDebit acssDebit; /** Configuration for any card setup attempted on this SetupIntent. */ @SerializedName("card") Card card; /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** * If this is a {@code sepa_debit} SetupIntent, this sub-hash contains details about the SEPA * Debit payment method options. */ @SerializedName("sepa_debit") SepaDebit sepaDebit; private PaymentMethodOptions(AcssDebit acssDebit, Card card, Map extraParams, SepaDebit sepaDebit) { this.acssDebit = acssDebit; this.card = card; this.extraParams = extraParams; this.sepaDebit = sepaDebit; } public static Builder builder() { return new Builder(); } public static class Builder { private AcssDebit acssDebit; private Card card; private Map extraParams; private SepaDebit sepaDebit; /** Finalize and obtain parameter instance from this builder. */ public PaymentMethodOptions build() { return new PaymentMethodOptions(this.acssDebit, this.card, this.extraParams, this.sepaDebit); } /** * If this is a {@code acss_debit} SetupIntent, this sub-hash contains details about the ACSS * Debit payment method options. */ public Builder setAcssDebit(AcssDebit acssDebit) { this.acssDebit = acssDebit; return this; } /** Configuration for any card setup attempted on this SetupIntent. */ public Builder setCard(Card card) { this.card = card; return this; } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first `put/putAll` * call, and subsequent calls add additional key/value pairs to the original map. See {@link * SetupIntentUpdateParams.PaymentMethodOptions#extraParams} for the field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original map. * See {@link SetupIntentUpdateParams.PaymentMethodOptions#extraParams} for the field * documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** * If this is a {@code sepa_debit} SetupIntent, this sub-hash contains details about the SEPA * Debit payment method options. */ public Builder setSepaDebit(SepaDebit sepaDebit) { this.sepaDebit = sepaDebit; return this; } } public static class AcssDebit { /** * Three-letter ISO currency * code, in lowercase. Must be a supported * currency. */ @SerializedName("currency") Currency currency; /** * 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; /** Additional fields for Mandate creation. */ @SerializedName("mandate_options") MandateOptions mandateOptions; /** Verification method for the intent. */ @SerializedName("verification_method") VerificationMethod verificationMethod; private AcssDebit(Currency currency, Map extraParams, MandateOptions mandateOptions, VerificationMethod verificationMethod) { this.currency = currency; this.extraParams = extraParams; this.mandateOptions = mandateOptions; this.verificationMethod = verificationMethod; } public static Builder builder() { return new Builder(); } public static class Builder { private Currency currency; private Map extraParams; private MandateOptions mandateOptions; private VerificationMethod verificationMethod; /** Finalize and obtain parameter instance from this builder. */ public AcssDebit build() { return new AcssDebit(this.currency, this.extraParams, this.mandateOptions, this.verificationMethod); } /** * Three-letter ISO currency * code, in lowercase. Must be a supported * currency. */ public Builder setCurrency(Currency currency) { this.currency = currency; 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 SetupIntentUpdateParams.PaymentMethodOptions.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 SetupIntentUpdateParams.PaymentMethodOptions.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; } /** Additional fields for Mandate creation. */ public Builder setMandateOptions(MandateOptions mandateOptions) { this.mandateOptions = mandateOptions; return this; } /** Verification method for the intent. */ public Builder setVerificationMethod(VerificationMethod verificationMethod) { this.verificationMethod = verificationMethod; return this; } } public static class MandateOptions { /** * A URL for custom mandate text to render during confirmation step. The URL will be * rendered with additional GET parameters {@code payment_intent} and {@code * payment_intent_client_secret} when confirming a Payment Intent, or {@code setup_intent} * and {@code setup_intent_client_secret} when confirming a Setup Intent. */ @SerializedName("custom_mandate_url") Object customMandateUrl; /** List of Stripe products where this mandate can be selected automatically. */ @SerializedName("default_for") List defaultFor; /** * 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; /** * Description of the mandate interval. Only required if 'payment_schedule' parameter is * 'interval' or 'combined'. */ @SerializedName("interval_description") Object intervalDescription; /** Payment schedule for the mandate. */ @SerializedName("payment_schedule") PaymentSchedule paymentSchedule; /** Transaction type of the mandate. */ @SerializedName("transaction_type") TransactionType transactionType; private MandateOptions(Object customMandateUrl, List defaultFor, Map extraParams, Object intervalDescription, PaymentSchedule paymentSchedule, TransactionType transactionType) { this.customMandateUrl = customMandateUrl; this.defaultFor = defaultFor; this.extraParams = extraParams; this.intervalDescription = intervalDescription; this.paymentSchedule = paymentSchedule; this.transactionType = transactionType; } public static Builder builder() { return new Builder(); } public static class Builder { private Object customMandateUrl; private List defaultFor; private Map extraParams; private Object intervalDescription; private PaymentSchedule paymentSchedule; private TransactionType transactionType; /** Finalize and obtain parameter instance from this builder. */ public MandateOptions build() { return new MandateOptions(this.customMandateUrl, this.defaultFor, this.extraParams, this.intervalDescription, this.paymentSchedule, this.transactionType); } /** * A URL for custom mandate text to render during confirmation step. The URL will be * rendered with additional GET parameters {@code payment_intent} and {@code * payment_intent_client_secret} when confirming a Payment Intent, or {@code setup_intent} * and {@code setup_intent_client_secret} when confirming a Setup Intent. */ public Builder setCustomMandateUrl(String customMandateUrl) { this.customMandateUrl = customMandateUrl; return this; } /** * A URL for custom mandate text to render during confirmation step. The URL will be * rendered with additional GET parameters {@code payment_intent} and {@code * payment_intent_client_secret} when confirming a Payment Intent, or {@code setup_intent} * and {@code setup_intent_client_secret} when confirming a Setup Intent. */ public Builder setCustomMandateUrl(EmptyParam customMandateUrl) { this.customMandateUrl = customMandateUrl; return this; } /** * Add an element to `defaultFor` list. A list is initialized for the first `add/addAll` * call, and subsequent calls adds additional elements to the original list. See {@link * SetupIntentUpdateParams.PaymentMethodOptions.AcssDebit.MandateOptions#defaultFor} for * the field documentation. */ public Builder addDefaultFor(DefaultFor element) { if (this.defaultFor == null) { this.defaultFor = new ArrayList<>(); } this.defaultFor.add(element); return this; } /** * Add all elements to `defaultFor` list. A list is initialized for the first `add/addAll` * call, and subsequent calls adds additional elements to the original list. See {@link * SetupIntentUpdateParams.PaymentMethodOptions.AcssDebit.MandateOptions#defaultFor} for * the field documentation. */ public Builder addAllDefaultFor(List elements) { if (this.defaultFor == null) { this.defaultFor = new ArrayList<>(); } this.defaultFor.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 * SetupIntentUpdateParams.PaymentMethodOptions.AcssDebit.MandateOptions#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 * SetupIntentUpdateParams.PaymentMethodOptions.AcssDebit.MandateOptions#extraParams} for * the field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** * Description of the mandate interval. Only required if 'payment_schedule' parameter is * 'interval' or 'combined'. */ public Builder setIntervalDescription(String intervalDescription) { this.intervalDescription = intervalDescription; return this; } /** * Description of the mandate interval. Only required if 'payment_schedule' parameter is * 'interval' or 'combined'. */ public Builder setIntervalDescription(EmptyParam intervalDescription) { this.intervalDescription = intervalDescription; return this; } /** Payment schedule for the mandate. */ public Builder setPaymentSchedule(PaymentSchedule paymentSchedule) { this.paymentSchedule = paymentSchedule; return this; } /** Transaction type of the mandate. */ public Builder setTransactionType(TransactionType transactionType) { this.transactionType = transactionType; return this; } } public enum DefaultFor implements ApiRequestParams.EnumParam { @SerializedName("invoice") INVOICE("invoice"), @SerializedName("subscription") SUBSCRIPTION("subscription"); private final String value; DefaultFor(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } public enum PaymentSchedule implements ApiRequestParams.EnumParam { @SerializedName("combined") COMBINED("combined"), @SerializedName("interval") INTERVAL("interval"), @SerializedName("sporadic") SPORADIC("sporadic"); private final String value; PaymentSchedule(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } public enum TransactionType implements ApiRequestParams.EnumParam { @SerializedName("business") BUSINESS("business"), @SerializedName("personal") PERSONAL("personal"); private final String value; TransactionType(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } @java.lang.SuppressWarnings("all") @lombok.Generated public Object getCustomMandateUrl() { return this.customMandateUrl; } @java.lang.SuppressWarnings("all") @lombok.Generated public List getDefaultFor() { return this.defaultFor; } @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } @java.lang.SuppressWarnings("all") @lombok.Generated public Object getIntervalDescription() { return this.intervalDescription; } @java.lang.SuppressWarnings("all") @lombok.Generated public PaymentSchedule getPaymentSchedule() { return this.paymentSchedule; } @java.lang.SuppressWarnings("all") @lombok.Generated public TransactionType getTransactionType() { return this.transactionType; } } public enum Currency implements ApiRequestParams.EnumParam { @SerializedName("cad") CAD("cad"), @SerializedName("usd") USD("usd"); private final String value; Currency(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } public enum VerificationMethod implements ApiRequestParams.EnumParam { @SerializedName("automatic") AUTOMATIC("automatic"), @SerializedName("instant") INSTANT("instant"), @SerializedName("microdeposits") MICRODEPOSITS("microdeposits"); private final String value; VerificationMethod(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } @java.lang.SuppressWarnings("all") @lombok.Generated public Currency getCurrency() { return this.currency; } @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } @java.lang.SuppressWarnings("all") @lombok.Generated public MandateOptions getMandateOptions() { return this.mandateOptions; } @java.lang.SuppressWarnings("all") @lombok.Generated public VerificationMethod getVerificationMethod() { return this.verificationMethod; } } public static class Card { /** * Map of extra parameters for custom features not available in this client library. The * content in this map is not serialized under this field's {@code @SerializedName} value. * Instead, each key/value pair is serialized as if the key is a root-level field (serialized) * name in this param object. Effectively, this map is flattened to its parent instance. */ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY) Map extraParams; /** * When specified, this parameter signals that a card has been collected as MOTO (Mail Order * Telephone Order) and thus out of scope for SCA. This parameter can only be provided during * confirmation. */ @SerializedName("moto") Boolean moto; /** * We strongly recommend that you rely on our SCA Engine to automatically prompt your * customers for authentication based on risk level and other requirements. * However, if you wish to request 3D Secure based on logic from your own fraud engine, * provide this option. Permitted values include: {@code automatic} or {@code any}. If not * provided, defaults to {@code automatic}. Read our guide on manually requesting 3D * Secure for more information on how this configuration interacts with Radar and our SCA * Engine. */ @SerializedName("request_three_d_secure") RequestThreeDSecure requestThreeDSecure; private Card(Map extraParams, Boolean moto, RequestThreeDSecure requestThreeDSecure) { this.extraParams = extraParams; this.moto = moto; this.requestThreeDSecure = requestThreeDSecure; } public static Builder builder() { return new Builder(); } public static class Builder { private Map extraParams; private Boolean moto; private RequestThreeDSecure requestThreeDSecure; /** Finalize and obtain parameter instance from this builder. */ public Card build() { return new Card(this.extraParams, this.moto, this.requestThreeDSecure); } /** * Add a key/value pair to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link SetupIntentUpdateParams.PaymentMethodOptions.Card#extraParams} for the * field documentation. */ public Builder putExtraParam(String key, Object value) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.put(key, value); return this; } /** * Add all map key/value pairs to `extraParams` map. A map is initialized for the first * `put/putAll` call, and subsequent calls add additional key/value pairs to the original * map. See {@link SetupIntentUpdateParams.PaymentMethodOptions.Card#extraParams} for the * field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } /** * When specified, this parameter signals that a card has been collected as MOTO (Mail Order * Telephone Order) and thus out of scope for SCA. This parameter can only be provided * during confirmation. */ public Builder setMoto(Boolean moto) { this.moto = moto; return this; } /** * We strongly recommend that you rely on our SCA Engine to automatically prompt your * customers for authentication based on risk level and other requirements. * However, if you wish to request 3D Secure based on logic from your own fraud engine, * provide this option. Permitted values include: {@code automatic} or {@code any}. If not * provided, defaults to {@code automatic}. Read our guide on manually requesting 3D * Secure for more information on how this configuration interacts with Radar and our * SCA Engine. */ public Builder setRequestThreeDSecure(RequestThreeDSecure requestThreeDSecure) { this.requestThreeDSecure = requestThreeDSecure; return this; } } public enum RequestThreeDSecure implements ApiRequestParams.EnumParam { @SerializedName("any") ANY("any"), @SerializedName("automatic") AUTOMATIC("automatic"); private final String value; RequestThreeDSecure(String value) { this.value = value; } @Override @java.lang.SuppressWarnings("all") @lombok.Generated public String getValue() { return this.value; } } @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } @java.lang.SuppressWarnings("all") @lombok.Generated public Boolean getMoto() { return this.moto; } @java.lang.SuppressWarnings("all") @lombok.Generated public RequestThreeDSecure getRequestThreeDSecure() { return this.requestThreeDSecure; } } 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; /** Additional fields for Mandate creation. */ @SerializedName("mandate_options") MandateOptions mandateOptions; private SepaDebit(Map extraParams, MandateOptions mandateOptions) { this.extraParams = extraParams; this.mandateOptions = mandateOptions; } public static Builder builder() { return new Builder(); } public static class Builder { private Map extraParams; private MandateOptions mandateOptions; /** Finalize and obtain parameter instance from this builder. */ public SepaDebit build() { return new SepaDebit(this.extraParams, this.mandateOptions); } /** * 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 SetupIntentUpdateParams.PaymentMethodOptions.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 SetupIntentUpdateParams.PaymentMethodOptions.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; } /** Additional fields for Mandate creation. */ public Builder setMandateOptions(MandateOptions mandateOptions) { this.mandateOptions = mandateOptions; return this; } } public static class MandateOptions { /** * 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 MandateOptions(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 MandateOptions build() { return new MandateOptions(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 * SetupIntentUpdateParams.PaymentMethodOptions.SepaDebit.MandateOptions#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 * SetupIntentUpdateParams.PaymentMethodOptions.SepaDebit.MandateOptions#extraParams} for * the field documentation. */ public Builder putAllExtraParam(Map map) { if (this.extraParams == null) { this.extraParams = new HashMap<>(); } this.extraParams.putAll(map); return this; } } @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } } @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } @java.lang.SuppressWarnings("all") @lombok.Generated public MandateOptions getMandateOptions() { return this.mandateOptions; } } @java.lang.SuppressWarnings("all") @lombok.Generated public AcssDebit getAcssDebit() { return this.acssDebit; } @java.lang.SuppressWarnings("all") @lombok.Generated public Card getCard() { return this.card; } @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } @java.lang.SuppressWarnings("all") @lombok.Generated public SepaDebit getSepaDebit() { return this.sepaDebit; } } /** * 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. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getCustomer() { return this.customer; } /** * An arbitrary string attached to the object. Often useful for displaying to users. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getDescription() { return this.description; } /** * Specifies which fields in the response should be expanded. */ @java.lang.SuppressWarnings("all") @lombok.Generated public List getExpand() { return this.expand; } /** * Map of extra parameters for custom features not available in this client library. The content * in this map is not serialized under this field's {@code @SerializedName} value. Instead, each * key/value pair is serialized as if the key is a root-level field (serialized) name in this * param object. Effectively, this map is flattened to its parent instance. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Map getExtraParams() { return this.extraParams; } /** * Set of key-value pairs that you can attach * to an object. This can be useful for storing additional information about the object in a * structured format. Individual keys can be unset by posting an empty value to them. All keys can * be unset by posting an empty value to {@code metadata}. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getMetadata() { return this.metadata; } /** * ID of the payment method (a PaymentMethod, Card, or saved Source object) to attach to this * SetupIntent. */ @java.lang.SuppressWarnings("all") @lombok.Generated public Object getPaymentMethod() { return this.paymentMethod; } /** * Payment-method-specific configuration for this SetupIntent. */ @java.lang.SuppressWarnings("all") @lombok.Generated public PaymentMethodOptions getPaymentMethodOptions() { return this.paymentMethodOptions; } /** * The list of payment method types (e.g. card) that this SetupIntent is allowed to set up. If * this is not provided, defaults to ["card"]. */ @java.lang.SuppressWarnings("all") @lombok.Generated public List getPaymentMethodTypes() { return this.paymentMethodTypes; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy