diff --git a/OPENAPI_VERSION b/OPENAPI_VERSION
index 663b86eff09..5528f1cf80b 100644
--- a/OPENAPI_VERSION
+++ b/OPENAPI_VERSION
@@ -1 +1 @@
-v674
\ No newline at end of file
+v681
\ No newline at end of file
diff --git a/src/main/java/com/stripe/model/Charge.java b/src/main/java/com/stripe/model/Charge.java
index 19abe5b5806..55925122ffa 100644
--- a/src/main/java/com/stripe/model/Charge.java
+++ b/src/main/java/com/stripe/model/Charge.java
@@ -1839,6 +1839,30 @@ public static class ThreeDSecure extends StripeObject {
@SerializedName("authentication_flow")
String authenticationFlow;
+ /**
+ * The Electronic Commerce Indicator (ECI). A protocol-level field indicating what degree of
+ * authentication was performed.
+ *
+ *
One of {@code 01}, {@code 02}, {@code 05}, {@code 06}, or {@code 07}.
+ */
+ @SerializedName("electronic_commerce_indicator")
+ String electronicCommerceIndicator;
+
+ /**
+ * The exemption requested via 3DS and accepted by the issuer at authentication time.
+ *
+ *
One of {@code low_risk}, or {@code none}.
+ */
+ @SerializedName("exemption_indicator")
+ String exemptionIndicator;
+
+ /**
+ * Whether Stripe requested the value of {@code exemption_indicator} in the transaction.
+ * This will depend on the outcome of Stripe's internal risk assessment.
+ */
+ @SerializedName("exemption_indicator_applied")
+ Boolean exemptionIndicatorApplied;
+
/**
* Indicates the outcome of 3D Secure authentication.
*
@@ -1859,6 +1883,13 @@ public static class ThreeDSecure extends StripeObject {
@SerializedName("result_reason")
String resultReason;
+ /**
+ * The 3D Secure 1 XID or 3D Secure 2 Directory Server Transaction ID (dsTransId) for this
+ * payment.
+ */
+ @SerializedName("transaction_id")
+ String transactionId;
+
/**
* The version of 3D Secure that was used.
*
diff --git a/src/main/java/com/stripe/model/CustomerCashBalanceTransaction.java b/src/main/java/com/stripe/model/CustomerCashBalanceTransaction.java
index 411a546cbab..503a5ad28d4 100644
--- a/src/main/java/com/stripe/model/CustomerCashBalanceTransaction.java
+++ b/src/main/java/com/stripe/model/CustomerCashBalanceTransaction.java
@@ -84,6 +84,9 @@ public class CustomerCashBalanceTransaction extends StripeObject
@SerializedName("refunded_from_payment")
RefundedFromPayment refundedFromPayment;
+ @SerializedName("transferred_to_balance")
+ TransferredToBalance transferredToBalance;
+
/**
* The type of the cash balance transaction. New types may be added in future. See Customer Balance to learn
@@ -352,6 +355,39 @@ public void setRefundObject(Refund expandableObject) {
}
}
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class TransferredToBalance extends StripeObject {
+ /**
+ * The Balance Transaction
+ * that corresponds to funds transferred to your Stripe balance.
+ */
+ @SerializedName("balance_transaction")
+ @Getter(lombok.AccessLevel.NONE)
+ @Setter(lombok.AccessLevel.NONE)
+ ExpandableField balanceTransaction;
+
+ /** Get ID of expandable {@code balanceTransaction} object. */
+ public String getBalanceTransaction() {
+ return (this.balanceTransaction != null) ? this.balanceTransaction.getId() : null;
+ }
+
+ public void setBalanceTransaction(String id) {
+ this.balanceTransaction = ApiResource.setExpandableFieldId(id, this.balanceTransaction);
+ }
+
+ /** Get expanded {@code balanceTransaction}. */
+ public BalanceTransaction getBalanceTransactionObject() {
+ return (this.balanceTransaction != null) ? this.balanceTransaction.getExpanded() : null;
+ }
+
+ public void setBalanceTransactionObject(BalanceTransaction expandableObject) {
+ this.balanceTransaction =
+ new ExpandableField(expandableObject.getId(), expandableObject);
+ }
+ }
+
@Getter
@Setter
@EqualsAndHashCode(callSuper = false)
diff --git a/src/main/java/com/stripe/model/Refund.java b/src/main/java/com/stripe/model/Refund.java
index 11b28353b35..5eb9ff1af73 100644
--- a/src/main/java/com/stripe/model/Refund.java
+++ b/src/main/java/com/stripe/model/Refund.java
@@ -144,9 +144,8 @@ public class Refund extends ApiResource implements MetadataStore, Balanc
ExpandableField sourceTransferReversal;
/**
- * Status of the refund. For credit card refunds, this can be {@code pending}, {@code succeeded},
- * or {@code failed}. For other types of refunds, it can be {@code pending}, {@code
- * requires_action}, {@code succeeded}, {@code failed}, or {@code canceled}. Learn more about failed refunds.
*/
@SerializedName("status")
diff --git a/src/main/java/com/stripe/model/SetupAttempt.java b/src/main/java/com/stripe/model/SetupAttempt.java
index ca3345420f0..b459bfde3e9 100644
--- a/src/main/java/com/stripe/model/SetupAttempt.java
+++ b/src/main/java/com/stripe/model/SetupAttempt.java
@@ -565,6 +565,15 @@ public static class ThreeDSecure extends StripeObject {
@SerializedName("authentication_flow")
String authenticationFlow;
+ /**
+ * The Electronic Commerce Indicator (ECI). A protocol-level field indicating what degree of
+ * authentication was performed.
+ *
+ * One of {@code 01}, {@code 02}, {@code 05}, {@code 06}, or {@code 07}.
+ */
+ @SerializedName("electronic_commerce_indicator")
+ String electronicCommerceIndicator;
+
/**
* Indicates the outcome of 3D Secure authentication.
*
@@ -585,6 +594,13 @@ public static class ThreeDSecure extends StripeObject {
@SerializedName("result_reason")
String resultReason;
+ /**
+ * The 3D Secure 1 XID or 3D Secure 2 Directory Server Transaction ID (dsTransId) for this
+ * payment.
+ */
+ @SerializedName("transaction_id")
+ String transactionId;
+
/**
* The version of 3D Secure that was used.
*
diff --git a/src/main/java/com/stripe/model/StripeError.java b/src/main/java/com/stripe/model/StripeError.java
index a3a3c5cf167..e2bd2a4890c 100644
--- a/src/main/java/com/stripe/model/StripeError.java
+++ b/src/main/java/com/stripe/model/StripeError.java
@@ -36,19 +36,20 @@ public class StripeError extends StripeObject {
* {@code clearing_code_unsupported}, {@code country_code_invalid}, {@code country_unsupported},
* {@code coupon_expired}, {@code customer_max_payment_methods}, {@code
* customer_max_subscriptions}, {@code debit_not_authorized}, {@code email_invalid}, {@code
- * expired_card}, {@code idempotency_key_in_use}, {@code incorrect_address}, {@code
- * incorrect_cvc}, {@code incorrect_number}, {@code incorrect_zip}, {@code
- * instant_payouts_config_disabled}, {@code instant_payouts_currency_disabled}, {@code
- * instant_payouts_limit_exceeded}, {@code instant_payouts_unsupported}, {@code
- * insufficient_funds}, {@code intent_invalid_state}, {@code intent_verification_method_missing},
- * {@code invalid_card_type}, {@code invalid_characters}, {@code invalid_charge_amount}, {@code
- * invalid_cvc}, {@code invalid_expiry_month}, {@code invalid_expiry_year}, {@code
- * invalid_number}, {@code invalid_source_usage}, {@code invalid_tax_location}, {@code
- * invoice_no_customer_line_items}, {@code invoice_no_payment_method_types}, {@code
- * invoice_no_subscription_line_items}, {@code invoice_not_editable}, {@code
- * invoice_on_behalf_of_not_editable}, {@code invoice_payment_intent_requires_action}, {@code
- * invoice_upcoming_none}, {@code livemode_mismatch}, {@code lock_timeout}, {@code missing},
- * {@code no_account}, {@code not_allowed_on_standard_account}, {@code out_of_inventory}, {@code
+ * expired_card}, {@code financial_connections_account_inactive}, {@code idempotency_key_in_use},
+ * {@code incorrect_address}, {@code incorrect_cvc}, {@code incorrect_number}, {@code
+ * incorrect_zip}, {@code instant_payouts_config_disabled}, {@code
+ * instant_payouts_currency_disabled}, {@code instant_payouts_limit_exceeded}, {@code
+ * instant_payouts_unsupported}, {@code insufficient_funds}, {@code intent_invalid_state}, {@code
+ * intent_verification_method_missing}, {@code invalid_card_type}, {@code invalid_characters},
+ * {@code invalid_charge_amount}, {@code invalid_cvc}, {@code invalid_expiry_month}, {@code
+ * invalid_expiry_year}, {@code invalid_number}, {@code invalid_source_usage}, {@code
+ * invalid_tax_location}, {@code invoice_no_customer_line_items}, {@code
+ * invoice_no_payment_method_types}, {@code invoice_no_subscription_line_items}, {@code
+ * invoice_not_editable}, {@code invoice_on_behalf_of_not_editable}, {@code
+ * invoice_payment_intent_requires_action}, {@code invoice_upcoming_none}, {@code
+ * livemode_mismatch}, {@code lock_timeout}, {@code missing}, {@code no_account}, {@code
+ * not_allowed_on_standard_account}, {@code out_of_inventory}, {@code
* ownership_declaration_not_allowed}, {@code parameter_invalid_empty}, {@code
* parameter_invalid_integer}, {@code parameter_invalid_string_blank}, {@code
* parameter_invalid_string_empty}, {@code parameter_missing}, {@code parameter_unknown}, {@code
diff --git a/src/main/java/com/stripe/param/PaymentIntentConfirmParams.java b/src/main/java/com/stripe/param/PaymentIntentConfirmParams.java
index af1399d14d0..a340d391e0f 100644
--- a/src/main/java/com/stripe/param/PaymentIntentConfirmParams.java
+++ b/src/main/java/com/stripe/param/PaymentIntentConfirmParams.java
@@ -7717,6 +7717,13 @@ public static class Card {
@SerializedName("statement_descriptor_suffix_kanji")
Object statementDescriptorSuffixKanji;
+ /**
+ * If 3D Secure authentication was performed with a third-party provider, the authentication
+ * details to use for this payment.
+ */
+ @SerializedName("three_d_secure")
+ ThreeDSecure threeDSecure;
+
private Card(
ApiRequestParams.EnumParam captureMethod,
String cvcToken,
@@ -7732,7 +7739,8 @@ private Card(
RequestThreeDSecure requestThreeDSecure,
ApiRequestParams.EnumParam setupFutureUsage,
Object statementDescriptorSuffixKana,
- Object statementDescriptorSuffixKanji) {
+ Object statementDescriptorSuffixKanji,
+ ThreeDSecure threeDSecure) {
this.captureMethod = captureMethod;
this.cvcToken = cvcToken;
this.extraParams = extraParams;
@@ -7748,6 +7756,7 @@ private Card(
this.setupFutureUsage = setupFutureUsage;
this.statementDescriptorSuffixKana = statementDescriptorSuffixKana;
this.statementDescriptorSuffixKanji = statementDescriptorSuffixKanji;
+ this.threeDSecure = threeDSecure;
}
public static Builder builder() {
@@ -7785,6 +7794,8 @@ public static class Builder {
private Object statementDescriptorSuffixKanji;
+ private ThreeDSecure threeDSecure;
+
/** Finalize and obtain parameter instance from this builder. */
public PaymentIntentConfirmParams.PaymentMethodOptions.Card build() {
return new PaymentIntentConfirmParams.PaymentMethodOptions.Card(
@@ -7802,7 +7813,8 @@ public PaymentIntentConfirmParams.PaymentMethodOptions.Card build() {
this.requestThreeDSecure,
this.setupFutureUsage,
this.statementDescriptorSuffixKana,
- this.statementDescriptorSuffixKanji);
+ this.statementDescriptorSuffixKanji,
+ this.threeDSecure);
}
/**
@@ -8075,6 +8087,16 @@ public Builder setStatementDescriptorSuffixKanji(
this.statementDescriptorSuffixKanji = statementDescriptorSuffixKanji;
return this;
}
+
+ /**
+ * If 3D Secure authentication was performed with a third-party provider, the authentication
+ * details to use for this payment.
+ */
+ public Builder setThreeDSecure(
+ PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure threeDSecure) {
+ this.threeDSecure = threeDSecure;
+ return this;
+ }
}
@Getter
@@ -8659,6 +8681,558 @@ public enum SupportedType implements ApiRequestParams.EnumParam {
}
}
+ @Getter
+ public static class ThreeDSecure {
+ /** The {@code transStatus} returned from the card Issuer’s ACS in the ARes. */
+ @SerializedName("ares_trans_status")
+ AresTransStatus aresTransStatus;
+
+ /**
+ * Required. The cryptogram, also known as the "authentication
+ * value" (AAV, CAVV or AEVV). This value is 20 bytes, base64-encoded into a
+ * 28-character string. (Most 3D Secure providers will return the base64-encoded version,
+ * which is what you should specify here.)
+ */
+ @SerializedName("cryptogram")
+ String cryptogram;
+
+ /**
+ * The Electronic Commerce Indicator (ECI) is returned by your 3D Secure provider and
+ * indicates what degree of authentication was performed.
+ */
+ @SerializedName("electronic_commerce_indicator")
+ ElectronicCommerceIndicator electronicCommerceIndicator;
+
+ /** The exemption requested via 3DS and accepted by the issuer at authentication time. */
+ @SerializedName("exemption_indicator")
+ ExemptionIndicator exemptionIndicator;
+
+ /**
+ * 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;
+
+ /**
+ * Network specific 3DS fields. Network specific arguments require an explicit card brand
+ * choice. The parameter `payment_method_options.card.network`` must be populated
+ * accordingly
+ */
+ @SerializedName("network_options")
+ NetworkOptions networkOptions;
+
+ /**
+ * The challenge indicator ({@code threeDSRequestorChallengeInd}) which was requested in the
+ * AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
+ */
+ @SerializedName("requestor_challenge_indicator")
+ String requestorChallengeIndicator;
+
+ /**
+ * Required. For 3D Secure 1, the XID. For 3D Secure 2, the Directory
+ * Server Transaction ID (dsTransID).
+ */
+ @SerializedName("transaction_id")
+ String transactionId;
+
+ /** Required. The version of 3D Secure that was performed. */
+ @SerializedName("version")
+ Version version;
+
+ private ThreeDSecure(
+ AresTransStatus aresTransStatus,
+ String cryptogram,
+ ElectronicCommerceIndicator electronicCommerceIndicator,
+ ExemptionIndicator exemptionIndicator,
+ Map extraParams,
+ NetworkOptions networkOptions,
+ String requestorChallengeIndicator,
+ String transactionId,
+ Version version) {
+ this.aresTransStatus = aresTransStatus;
+ this.cryptogram = cryptogram;
+ this.electronicCommerceIndicator = electronicCommerceIndicator;
+ this.exemptionIndicator = exemptionIndicator;
+ this.extraParams = extraParams;
+ this.networkOptions = networkOptions;
+ this.requestorChallengeIndicator = requestorChallengeIndicator;
+ this.transactionId = transactionId;
+ this.version = version;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private AresTransStatus aresTransStatus;
+
+ private String cryptogram;
+
+ private ElectronicCommerceIndicator electronicCommerceIndicator;
+
+ private ExemptionIndicator exemptionIndicator;
+
+ private Map extraParams;
+
+ private NetworkOptions networkOptions;
+
+ private String requestorChallengeIndicator;
+
+ private String transactionId;
+
+ private Version version;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure build() {
+ return new PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure(
+ this.aresTransStatus,
+ this.cryptogram,
+ this.electronicCommerceIndicator,
+ this.exemptionIndicator,
+ this.extraParams,
+ this.networkOptions,
+ this.requestorChallengeIndicator,
+ this.transactionId,
+ this.version);
+ }
+
+ /** The {@code transStatus} returned from the card Issuer’s ACS in the ARes. */
+ public Builder setAresTransStatus(
+ PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.AresTransStatus
+ aresTransStatus) {
+ this.aresTransStatus = aresTransStatus;
+ return this;
+ }
+
+ /**
+ * Required. The cryptogram, also known as the "authentication
+ * value" (AAV, CAVV or AEVV). This value is 20 bytes, base64-encoded into a
+ * 28-character string. (Most 3D Secure providers will return the base64-encoded version,
+ * which is what you should specify here.)
+ */
+ public Builder setCryptogram(String cryptogram) {
+ this.cryptogram = cryptogram;
+ return this;
+ }
+
+ /**
+ * The Electronic Commerce Indicator (ECI) is returned by your 3D Secure provider and
+ * indicates what degree of authentication was performed.
+ */
+ public Builder setElectronicCommerceIndicator(
+ PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure
+ .ElectronicCommerceIndicator
+ electronicCommerceIndicator) {
+ this.electronicCommerceIndicator = electronicCommerceIndicator;
+ return this;
+ }
+
+ /** The exemption requested via 3DS and accepted by the issuer at authentication time. */
+ public Builder setExemptionIndicator(
+ PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.ExemptionIndicator
+ exemptionIndicator) {
+ this.exemptionIndicator = exemptionIndicator;
+ 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
+ * PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure#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
+ * PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure#extraParams} for the
+ * field documentation.
+ */
+ public Builder putAllExtraParam(Map map) {
+ if (this.extraParams == null) {
+ this.extraParams = new HashMap<>();
+ }
+ this.extraParams.putAll(map);
+ return this;
+ }
+
+ /**
+ * Network specific 3DS fields. Network specific arguments require an explicit card brand
+ * choice. The parameter `payment_method_options.card.network`` must be populated
+ * accordingly
+ */
+ public Builder setNetworkOptions(
+ PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ networkOptions) {
+ this.networkOptions = networkOptions;
+ return this;
+ }
+
+ /**
+ * The challenge indicator ({@code threeDSRequestorChallengeInd}) which was requested in
+ * the AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
+ */
+ public Builder setRequestorChallengeIndicator(String requestorChallengeIndicator) {
+ this.requestorChallengeIndicator = requestorChallengeIndicator;
+ return this;
+ }
+
+ /**
+ * Required. For 3D Secure 1, the XID. For 3D Secure 2, the Directory
+ * Server Transaction ID (dsTransID).
+ */
+ public Builder setTransactionId(String transactionId) {
+ this.transactionId = transactionId;
+ return this;
+ }
+
+ /** Required. The version of 3D Secure that was performed. */
+ public Builder setVersion(
+ PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.Version version) {
+ this.version = version;
+ return this;
+ }
+ }
+
+ @Getter
+ public static class NetworkOptions {
+ /** Cartes Bancaires-specific 3DS fields. */
+ @SerializedName("cartes_bancaires")
+ CartesBancaires cartesBancaires;
+
+ /**
+ * 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 NetworkOptions(CartesBancaires cartesBancaires, Map extraParams) {
+ this.cartesBancaires = cartesBancaires;
+ this.extraParams = extraParams;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private CartesBancaires cartesBancaires;
+
+ private Map extraParams;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ build() {
+ return new PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure
+ .NetworkOptions(this.cartesBancaires, this.extraParams);
+ }
+
+ /** Cartes Bancaires-specific 3DS fields. */
+ public Builder setCartesBancaires(
+ PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires
+ cartesBancaires) {
+ this.cartesBancaires = cartesBancaires;
+ 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
+ * PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions#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
+ * PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions#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 CartesBancaires {
+ /**
+ * Required. The cryptogram calculation algorithm used by the card
+ * Issuer's ACS to calculate the Authentication cryptogram. Also known as {@code
+ * cavvAlgorithm}. messageExtension: CB-AVALGO
+ */
+ @SerializedName("cb_avalgo")
+ CbAvalgo cbAvalgo;
+
+ /**
+ * The exemption indicator returned from Cartes Bancaires in the ARes. message
+ * extension: CB-EXEMPTION; string (4 characters) This is a 3 byte bitmap (low
+ * significant byte first and most significant bit first) that has been Base64 encoded
+ */
+ @SerializedName("cb_exemption")
+ String cbExemption;
+
+ /**
+ * The risk score returned from Cartes Bancaires in the ARes. message extension:
+ * CB-SCORE; numeric value 0-99
+ */
+ @SerializedName("cb_score")
+ Long cbScore;
+
+ /**
+ * 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 CartesBancaires(
+ CbAvalgo cbAvalgo,
+ String cbExemption,
+ Long cbScore,
+ Map extraParams) {
+ this.cbAvalgo = cbAvalgo;
+ this.cbExemption = cbExemption;
+ this.cbScore = cbScore;
+ this.extraParams = extraParams;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private CbAvalgo cbAvalgo;
+
+ private String cbExemption;
+
+ private Long cbScore;
+
+ private Map extraParams;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure
+ .NetworkOptions.CartesBancaires
+ build() {
+ return new PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure
+ .NetworkOptions.CartesBancaires(
+ this.cbAvalgo, this.cbExemption, this.cbScore, this.extraParams);
+ }
+
+ /**
+ * Required. The cryptogram calculation algorithm used by the card
+ * Issuer's ACS to calculate the Authentication cryptogram. Also known as {@code
+ * cavvAlgorithm}. messageExtension: CB-AVALGO
+ */
+ public Builder setCbAvalgo(
+ PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires.CbAvalgo
+ cbAvalgo) {
+ this.cbAvalgo = cbAvalgo;
+ return this;
+ }
+
+ /**
+ * The exemption indicator returned from Cartes Bancaires in the ARes. message
+ * extension: CB-EXEMPTION; string (4 characters) This is a 3 byte bitmap (low
+ * significant byte first and most significant bit first) that has been Base64 encoded
+ */
+ public Builder setCbExemption(String cbExemption) {
+ this.cbExemption = cbExemption;
+ return this;
+ }
+
+ /**
+ * The risk score returned from Cartes Bancaires in the ARes. message extension:
+ * CB-SCORE; numeric value 0-99
+ */
+ public Builder setCbScore(Long cbScore) {
+ this.cbScore = cbScore;
+ 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
+ * PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions.CartesBancaires#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
+ * PaymentIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions.CartesBancaires#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 CbAvalgo implements ApiRequestParams.EnumParam {
+ @SerializedName("0")
+ N0("0"),
+
+ @SerializedName("1")
+ N1("1"),
+
+ @SerializedName("2")
+ N2("2"),
+
+ @SerializedName("3")
+ N3("3"),
+
+ @SerializedName("4")
+ N4("4"),
+
+ @SerializedName("A")
+ A("A");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ CbAvalgo(String value) {
+ this.value = value;
+ }
+ }
+ }
+ }
+
+ public enum AresTransStatus implements ApiRequestParams.EnumParam {
+ @SerializedName("A")
+ A("A"),
+
+ @SerializedName("C")
+ C("C"),
+
+ @SerializedName("I")
+ I("I"),
+
+ @SerializedName("N")
+ N("N"),
+
+ @SerializedName("R")
+ R("R"),
+
+ @SerializedName("U")
+ U("U"),
+
+ @SerializedName("Y")
+ Y("Y");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ AresTransStatus(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum ElectronicCommerceIndicator implements ApiRequestParams.EnumParam {
+ @SerializedName("01")
+ N01("01"),
+
+ @SerializedName("02")
+ N02("02"),
+
+ @SerializedName("05")
+ N05("05"),
+
+ @SerializedName("06")
+ N06("06"),
+
+ @SerializedName("07")
+ N07("07");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ ElectronicCommerceIndicator(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum ExemptionIndicator implements ApiRequestParams.EnumParam {
+ @SerializedName("low_risk")
+ LOW_RISK("low_risk"),
+
+ @SerializedName("none")
+ NONE("none");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ ExemptionIndicator(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum Version implements ApiRequestParams.EnumParam {
+ @SerializedName("1.0.2")
+ N1__0__2("1.0.2"),
+
+ @SerializedName("2.1.0")
+ N2__1__0("2.1.0"),
+
+ @SerializedName("2.2.0")
+ N2__2__0("2.2.0");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ Version(String value) {
+ this.value = value;
+ }
+ }
+ }
+
public enum CaptureMethod implements ApiRequestParams.EnumParam {
@SerializedName("manual")
MANUAL("manual");
diff --git a/src/main/java/com/stripe/param/PaymentIntentCreateParams.java b/src/main/java/com/stripe/param/PaymentIntentCreateParams.java
index a752cdf5929..43431a8d90d 100644
--- a/src/main/java/com/stripe/param/PaymentIntentCreateParams.java
+++ b/src/main/java/com/stripe/param/PaymentIntentCreateParams.java
@@ -8242,6 +8242,13 @@ public static class Card {
@SerializedName("statement_descriptor_suffix_kanji")
Object statementDescriptorSuffixKanji;
+ /**
+ * If 3D Secure authentication was performed with a third-party provider, the authentication
+ * details to use for this payment.
+ */
+ @SerializedName("three_d_secure")
+ ThreeDSecure threeDSecure;
+
private Card(
ApiRequestParams.EnumParam captureMethod,
String cvcToken,
@@ -8257,7 +8264,8 @@ private Card(
RequestThreeDSecure requestThreeDSecure,
ApiRequestParams.EnumParam setupFutureUsage,
Object statementDescriptorSuffixKana,
- Object statementDescriptorSuffixKanji) {
+ Object statementDescriptorSuffixKanji,
+ ThreeDSecure threeDSecure) {
this.captureMethod = captureMethod;
this.cvcToken = cvcToken;
this.extraParams = extraParams;
@@ -8273,6 +8281,7 @@ private Card(
this.setupFutureUsage = setupFutureUsage;
this.statementDescriptorSuffixKana = statementDescriptorSuffixKana;
this.statementDescriptorSuffixKanji = statementDescriptorSuffixKanji;
+ this.threeDSecure = threeDSecure;
}
public static Builder builder() {
@@ -8310,6 +8319,8 @@ public static class Builder {
private Object statementDescriptorSuffixKanji;
+ private ThreeDSecure threeDSecure;
+
/** Finalize and obtain parameter instance from this builder. */
public PaymentIntentCreateParams.PaymentMethodOptions.Card build() {
return new PaymentIntentCreateParams.PaymentMethodOptions.Card(
@@ -8327,7 +8338,8 @@ public PaymentIntentCreateParams.PaymentMethodOptions.Card build() {
this.requestThreeDSecure,
this.setupFutureUsage,
this.statementDescriptorSuffixKana,
- this.statementDescriptorSuffixKanji);
+ this.statementDescriptorSuffixKanji,
+ this.threeDSecure);
}
/**
@@ -8599,6 +8611,16 @@ public Builder setStatementDescriptorSuffixKanji(
this.statementDescriptorSuffixKanji = statementDescriptorSuffixKanji;
return this;
}
+
+ /**
+ * If 3D Secure authentication was performed with a third-party provider, the authentication
+ * details to use for this payment.
+ */
+ public Builder setThreeDSecure(
+ PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure threeDSecure) {
+ this.threeDSecure = threeDSecure;
+ return this;
+ }
}
@Getter
@@ -9181,6 +9203,558 @@ public enum SupportedType implements ApiRequestParams.EnumParam {
}
}
+ @Getter
+ public static class ThreeDSecure {
+ /** The {@code transStatus} returned from the card Issuer’s ACS in the ARes. */
+ @SerializedName("ares_trans_status")
+ AresTransStatus aresTransStatus;
+
+ /**
+ * Required. The cryptogram, also known as the "authentication
+ * value" (AAV, CAVV or AEVV). This value is 20 bytes, base64-encoded into a
+ * 28-character string. (Most 3D Secure providers will return the base64-encoded version,
+ * which is what you should specify here.)
+ */
+ @SerializedName("cryptogram")
+ String cryptogram;
+
+ /**
+ * The Electronic Commerce Indicator (ECI) is returned by your 3D Secure provider and
+ * indicates what degree of authentication was performed.
+ */
+ @SerializedName("electronic_commerce_indicator")
+ ElectronicCommerceIndicator electronicCommerceIndicator;
+
+ /** The exemption requested via 3DS and accepted by the issuer at authentication time. */
+ @SerializedName("exemption_indicator")
+ ExemptionIndicator exemptionIndicator;
+
+ /**
+ * 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;
+
+ /**
+ * Network specific 3DS fields. Network specific arguments require an explicit card brand
+ * choice. The parameter `payment_method_options.card.network`` must be populated
+ * accordingly
+ */
+ @SerializedName("network_options")
+ NetworkOptions networkOptions;
+
+ /**
+ * The challenge indicator ({@code threeDSRequestorChallengeInd}) which was requested in the
+ * AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
+ */
+ @SerializedName("requestor_challenge_indicator")
+ String requestorChallengeIndicator;
+
+ /**
+ * Required. For 3D Secure 1, the XID. For 3D Secure 2, the Directory
+ * Server Transaction ID (dsTransID).
+ */
+ @SerializedName("transaction_id")
+ String transactionId;
+
+ /** Required. The version of 3D Secure that was performed. */
+ @SerializedName("version")
+ Version version;
+
+ private ThreeDSecure(
+ AresTransStatus aresTransStatus,
+ String cryptogram,
+ ElectronicCommerceIndicator electronicCommerceIndicator,
+ ExemptionIndicator exemptionIndicator,
+ Map extraParams,
+ NetworkOptions networkOptions,
+ String requestorChallengeIndicator,
+ String transactionId,
+ Version version) {
+ this.aresTransStatus = aresTransStatus;
+ this.cryptogram = cryptogram;
+ this.electronicCommerceIndicator = electronicCommerceIndicator;
+ this.exemptionIndicator = exemptionIndicator;
+ this.extraParams = extraParams;
+ this.networkOptions = networkOptions;
+ this.requestorChallengeIndicator = requestorChallengeIndicator;
+ this.transactionId = transactionId;
+ this.version = version;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private AresTransStatus aresTransStatus;
+
+ private String cryptogram;
+
+ private ElectronicCommerceIndicator electronicCommerceIndicator;
+
+ private ExemptionIndicator exemptionIndicator;
+
+ private Map extraParams;
+
+ private NetworkOptions networkOptions;
+
+ private String requestorChallengeIndicator;
+
+ private String transactionId;
+
+ private Version version;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure build() {
+ return new PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure(
+ this.aresTransStatus,
+ this.cryptogram,
+ this.electronicCommerceIndicator,
+ this.exemptionIndicator,
+ this.extraParams,
+ this.networkOptions,
+ this.requestorChallengeIndicator,
+ this.transactionId,
+ this.version);
+ }
+
+ /** The {@code transStatus} returned from the card Issuer’s ACS in the ARes. */
+ public Builder setAresTransStatus(
+ PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.AresTransStatus
+ aresTransStatus) {
+ this.aresTransStatus = aresTransStatus;
+ return this;
+ }
+
+ /**
+ * Required. The cryptogram, also known as the "authentication
+ * value" (AAV, CAVV or AEVV). This value is 20 bytes, base64-encoded into a
+ * 28-character string. (Most 3D Secure providers will return the base64-encoded version,
+ * which is what you should specify here.)
+ */
+ public Builder setCryptogram(String cryptogram) {
+ this.cryptogram = cryptogram;
+ return this;
+ }
+
+ /**
+ * The Electronic Commerce Indicator (ECI) is returned by your 3D Secure provider and
+ * indicates what degree of authentication was performed.
+ */
+ public Builder setElectronicCommerceIndicator(
+ PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure
+ .ElectronicCommerceIndicator
+ electronicCommerceIndicator) {
+ this.electronicCommerceIndicator = electronicCommerceIndicator;
+ return this;
+ }
+
+ /** The exemption requested via 3DS and accepted by the issuer at authentication time. */
+ public Builder setExemptionIndicator(
+ PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.ExemptionIndicator
+ exemptionIndicator) {
+ this.exemptionIndicator = exemptionIndicator;
+ 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
+ * PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure#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
+ * PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure#extraParams} for the
+ * field documentation.
+ */
+ public Builder putAllExtraParam(Map map) {
+ if (this.extraParams == null) {
+ this.extraParams = new HashMap<>();
+ }
+ this.extraParams.putAll(map);
+ return this;
+ }
+
+ /**
+ * Network specific 3DS fields. Network specific arguments require an explicit card brand
+ * choice. The parameter `payment_method_options.card.network`` must be populated
+ * accordingly
+ */
+ public Builder setNetworkOptions(
+ PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ networkOptions) {
+ this.networkOptions = networkOptions;
+ return this;
+ }
+
+ /**
+ * The challenge indicator ({@code threeDSRequestorChallengeInd}) which was requested in
+ * the AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
+ */
+ public Builder setRequestorChallengeIndicator(String requestorChallengeIndicator) {
+ this.requestorChallengeIndicator = requestorChallengeIndicator;
+ return this;
+ }
+
+ /**
+ * Required. For 3D Secure 1, the XID. For 3D Secure 2, the Directory
+ * Server Transaction ID (dsTransID).
+ */
+ public Builder setTransactionId(String transactionId) {
+ this.transactionId = transactionId;
+ return this;
+ }
+
+ /** Required. The version of 3D Secure that was performed. */
+ public Builder setVersion(
+ PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.Version version) {
+ this.version = version;
+ return this;
+ }
+ }
+
+ @Getter
+ public static class NetworkOptions {
+ /** Cartes Bancaires-specific 3DS fields. */
+ @SerializedName("cartes_bancaires")
+ CartesBancaires cartesBancaires;
+
+ /**
+ * 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 NetworkOptions(CartesBancaires cartesBancaires, Map extraParams) {
+ this.cartesBancaires = cartesBancaires;
+ this.extraParams = extraParams;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private CartesBancaires cartesBancaires;
+
+ private Map extraParams;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ build() {
+ return new PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure
+ .NetworkOptions(this.cartesBancaires, this.extraParams);
+ }
+
+ /** Cartes Bancaires-specific 3DS fields. */
+ public Builder setCartesBancaires(
+ PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires
+ cartesBancaires) {
+ this.cartesBancaires = cartesBancaires;
+ 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
+ * PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions#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
+ * PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions#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 CartesBancaires {
+ /**
+ * Required. The cryptogram calculation algorithm used by the card
+ * Issuer's ACS to calculate the Authentication cryptogram. Also known as {@code
+ * cavvAlgorithm}. messageExtension: CB-AVALGO
+ */
+ @SerializedName("cb_avalgo")
+ CbAvalgo cbAvalgo;
+
+ /**
+ * The exemption indicator returned from Cartes Bancaires in the ARes. message
+ * extension: CB-EXEMPTION; string (4 characters) This is a 3 byte bitmap (low
+ * significant byte first and most significant bit first) that has been Base64 encoded
+ */
+ @SerializedName("cb_exemption")
+ String cbExemption;
+
+ /**
+ * The risk score returned from Cartes Bancaires in the ARes. message extension:
+ * CB-SCORE; numeric value 0-99
+ */
+ @SerializedName("cb_score")
+ Long cbScore;
+
+ /**
+ * 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 CartesBancaires(
+ CbAvalgo cbAvalgo,
+ String cbExemption,
+ Long cbScore,
+ Map extraParams) {
+ this.cbAvalgo = cbAvalgo;
+ this.cbExemption = cbExemption;
+ this.cbScore = cbScore;
+ this.extraParams = extraParams;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private CbAvalgo cbAvalgo;
+
+ private String cbExemption;
+
+ private Long cbScore;
+
+ private Map extraParams;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires
+ build() {
+ return new PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure
+ .NetworkOptions.CartesBancaires(
+ this.cbAvalgo, this.cbExemption, this.cbScore, this.extraParams);
+ }
+
+ /**
+ * Required. The cryptogram calculation algorithm used by the card
+ * Issuer's ACS to calculate the Authentication cryptogram. Also known as {@code
+ * cavvAlgorithm}. messageExtension: CB-AVALGO
+ */
+ public Builder setCbAvalgo(
+ PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires.CbAvalgo
+ cbAvalgo) {
+ this.cbAvalgo = cbAvalgo;
+ return this;
+ }
+
+ /**
+ * The exemption indicator returned from Cartes Bancaires in the ARes. message
+ * extension: CB-EXEMPTION; string (4 characters) This is a 3 byte bitmap (low
+ * significant byte first and most significant bit first) that has been Base64 encoded
+ */
+ public Builder setCbExemption(String cbExemption) {
+ this.cbExemption = cbExemption;
+ return this;
+ }
+
+ /**
+ * The risk score returned from Cartes Bancaires in the ARes. message extension:
+ * CB-SCORE; numeric value 0-99
+ */
+ public Builder setCbScore(Long cbScore) {
+ this.cbScore = cbScore;
+ 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
+ * PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions.CartesBancaires#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
+ * PaymentIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions.CartesBancaires#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 CbAvalgo implements ApiRequestParams.EnumParam {
+ @SerializedName("0")
+ N0("0"),
+
+ @SerializedName("1")
+ N1("1"),
+
+ @SerializedName("2")
+ N2("2"),
+
+ @SerializedName("3")
+ N3("3"),
+
+ @SerializedName("4")
+ N4("4"),
+
+ @SerializedName("A")
+ A("A");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ CbAvalgo(String value) {
+ this.value = value;
+ }
+ }
+ }
+ }
+
+ public enum AresTransStatus implements ApiRequestParams.EnumParam {
+ @SerializedName("A")
+ A("A"),
+
+ @SerializedName("C")
+ C("C"),
+
+ @SerializedName("I")
+ I("I"),
+
+ @SerializedName("N")
+ N("N"),
+
+ @SerializedName("R")
+ R("R"),
+
+ @SerializedName("U")
+ U("U"),
+
+ @SerializedName("Y")
+ Y("Y");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ AresTransStatus(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum ElectronicCommerceIndicator implements ApiRequestParams.EnumParam {
+ @SerializedName("01")
+ N01("01"),
+
+ @SerializedName("02")
+ N02("02"),
+
+ @SerializedName("05")
+ N05("05"),
+
+ @SerializedName("06")
+ N06("06"),
+
+ @SerializedName("07")
+ N07("07");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ ElectronicCommerceIndicator(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum ExemptionIndicator implements ApiRequestParams.EnumParam {
+ @SerializedName("low_risk")
+ LOW_RISK("low_risk"),
+
+ @SerializedName("none")
+ NONE("none");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ ExemptionIndicator(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum Version implements ApiRequestParams.EnumParam {
+ @SerializedName("1.0.2")
+ N1__0__2("1.0.2"),
+
+ @SerializedName("2.1.0")
+ N2__1__0("2.1.0"),
+
+ @SerializedName("2.2.0")
+ N2__2__0("2.2.0");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ Version(String value) {
+ this.value = value;
+ }
+ }
+ }
+
public enum CaptureMethod implements ApiRequestParams.EnumParam {
@SerializedName("manual")
MANUAL("manual");
diff --git a/src/main/java/com/stripe/param/PaymentIntentUpdateParams.java b/src/main/java/com/stripe/param/PaymentIntentUpdateParams.java
index 3a093262275..185f214534d 100644
--- a/src/main/java/com/stripe/param/PaymentIntentUpdateParams.java
+++ b/src/main/java/com/stripe/param/PaymentIntentUpdateParams.java
@@ -7763,6 +7763,13 @@ public static class Card {
@SerializedName("statement_descriptor_suffix_kanji")
Object statementDescriptorSuffixKanji;
+ /**
+ * If 3D Secure authentication was performed with a third-party provider, the authentication
+ * details to use for this payment.
+ */
+ @SerializedName("three_d_secure")
+ ThreeDSecure threeDSecure;
+
private Card(
ApiRequestParams.EnumParam captureMethod,
Object cvcToken,
@@ -7778,7 +7785,8 @@ private Card(
RequestThreeDSecure requestThreeDSecure,
ApiRequestParams.EnumParam setupFutureUsage,
Object statementDescriptorSuffixKana,
- Object statementDescriptorSuffixKanji) {
+ Object statementDescriptorSuffixKanji,
+ ThreeDSecure threeDSecure) {
this.captureMethod = captureMethod;
this.cvcToken = cvcToken;
this.extraParams = extraParams;
@@ -7794,6 +7802,7 @@ private Card(
this.setupFutureUsage = setupFutureUsage;
this.statementDescriptorSuffixKana = statementDescriptorSuffixKana;
this.statementDescriptorSuffixKanji = statementDescriptorSuffixKanji;
+ this.threeDSecure = threeDSecure;
}
public static Builder builder() {
@@ -7831,6 +7840,8 @@ public static class Builder {
private Object statementDescriptorSuffixKanji;
+ private ThreeDSecure threeDSecure;
+
/** Finalize and obtain parameter instance from this builder. */
public PaymentIntentUpdateParams.PaymentMethodOptions.Card build() {
return new PaymentIntentUpdateParams.PaymentMethodOptions.Card(
@@ -7848,7 +7859,8 @@ public PaymentIntentUpdateParams.PaymentMethodOptions.Card build() {
this.requestThreeDSecure,
this.setupFutureUsage,
this.statementDescriptorSuffixKana,
- this.statementDescriptorSuffixKanji);
+ this.statementDescriptorSuffixKanji,
+ this.threeDSecure);
}
/**
@@ -8130,6 +8142,16 @@ public Builder setStatementDescriptorSuffixKanji(
this.statementDescriptorSuffixKanji = statementDescriptorSuffixKanji;
return this;
}
+
+ /**
+ * If 3D Secure authentication was performed with a third-party provider, the authentication
+ * details to use for this payment.
+ */
+ public Builder setThreeDSecure(
+ PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure threeDSecure) {
+ this.threeDSecure = threeDSecure;
+ return this;
+ }
}
@Getter
@@ -8727,6 +8749,597 @@ public enum SupportedType implements ApiRequestParams.EnumParam {
}
}
+ @Getter
+ public static class ThreeDSecure {
+ /** The {@code transStatus} returned from the card Issuer’s ACS in the ARes. */
+ @SerializedName("ares_trans_status")
+ AresTransStatus aresTransStatus;
+
+ /**
+ * Required. The cryptogram, also known as the "authentication
+ * value" (AAV, CAVV or AEVV). This value is 20 bytes, base64-encoded into a
+ * 28-character string. (Most 3D Secure providers will return the base64-encoded version,
+ * which is what you should specify here.)
+ */
+ @SerializedName("cryptogram")
+ Object cryptogram;
+
+ /**
+ * The Electronic Commerce Indicator (ECI) is returned by your 3D Secure provider and
+ * indicates what degree of authentication was performed.
+ */
+ @SerializedName("electronic_commerce_indicator")
+ ElectronicCommerceIndicator electronicCommerceIndicator;
+
+ /** The exemption requested via 3DS and accepted by the issuer at authentication time. */
+ @SerializedName("exemption_indicator")
+ ExemptionIndicator exemptionIndicator;
+
+ /**
+ * 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;
+
+ /**
+ * Network specific 3DS fields. Network specific arguments require an explicit card brand
+ * choice. The parameter `payment_method_options.card.network`` must be populated
+ * accordingly
+ */
+ @SerializedName("network_options")
+ NetworkOptions networkOptions;
+
+ /**
+ * The challenge indicator ({@code threeDSRequestorChallengeInd}) which was requested in the
+ * AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
+ */
+ @SerializedName("requestor_challenge_indicator")
+ Object requestorChallengeIndicator;
+
+ /**
+ * Required. For 3D Secure 1, the XID. For 3D Secure 2, the Directory
+ * Server Transaction ID (dsTransID).
+ */
+ @SerializedName("transaction_id")
+ Object transactionId;
+
+ /** Required. The version of 3D Secure that was performed. */
+ @SerializedName("version")
+ Version version;
+
+ private ThreeDSecure(
+ AresTransStatus aresTransStatus,
+ Object cryptogram,
+ ElectronicCommerceIndicator electronicCommerceIndicator,
+ ExemptionIndicator exemptionIndicator,
+ Map extraParams,
+ NetworkOptions networkOptions,
+ Object requestorChallengeIndicator,
+ Object transactionId,
+ Version version) {
+ this.aresTransStatus = aresTransStatus;
+ this.cryptogram = cryptogram;
+ this.electronicCommerceIndicator = electronicCommerceIndicator;
+ this.exemptionIndicator = exemptionIndicator;
+ this.extraParams = extraParams;
+ this.networkOptions = networkOptions;
+ this.requestorChallengeIndicator = requestorChallengeIndicator;
+ this.transactionId = transactionId;
+ this.version = version;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private AresTransStatus aresTransStatus;
+
+ private Object cryptogram;
+
+ private ElectronicCommerceIndicator electronicCommerceIndicator;
+
+ private ExemptionIndicator exemptionIndicator;
+
+ private Map extraParams;
+
+ private NetworkOptions networkOptions;
+
+ private Object requestorChallengeIndicator;
+
+ private Object transactionId;
+
+ private Version version;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure build() {
+ return new PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure(
+ this.aresTransStatus,
+ this.cryptogram,
+ this.electronicCommerceIndicator,
+ this.exemptionIndicator,
+ this.extraParams,
+ this.networkOptions,
+ this.requestorChallengeIndicator,
+ this.transactionId,
+ this.version);
+ }
+
+ /** The {@code transStatus} returned from the card Issuer’s ACS in the ARes. */
+ public Builder setAresTransStatus(
+ PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.AresTransStatus
+ aresTransStatus) {
+ this.aresTransStatus = aresTransStatus;
+ return this;
+ }
+
+ /**
+ * Required. The cryptogram, also known as the "authentication
+ * value" (AAV, CAVV or AEVV). This value is 20 bytes, base64-encoded into a
+ * 28-character string. (Most 3D Secure providers will return the base64-encoded version,
+ * which is what you should specify here.)
+ */
+ public Builder setCryptogram(String cryptogram) {
+ this.cryptogram = cryptogram;
+ return this;
+ }
+
+ /**
+ * Required. The cryptogram, also known as the "authentication
+ * value" (AAV, CAVV or AEVV). This value is 20 bytes, base64-encoded into a
+ * 28-character string. (Most 3D Secure providers will return the base64-encoded version,
+ * which is what you should specify here.)
+ */
+ public Builder setCryptogram(EmptyParam cryptogram) {
+ this.cryptogram = cryptogram;
+ return this;
+ }
+
+ /**
+ * The Electronic Commerce Indicator (ECI) is returned by your 3D Secure provider and
+ * indicates what degree of authentication was performed.
+ */
+ public Builder setElectronicCommerceIndicator(
+ PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure
+ .ElectronicCommerceIndicator
+ electronicCommerceIndicator) {
+ this.electronicCommerceIndicator = electronicCommerceIndicator;
+ return this;
+ }
+
+ /** The exemption requested via 3DS and accepted by the issuer at authentication time. */
+ public Builder setExemptionIndicator(
+ PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.ExemptionIndicator
+ exemptionIndicator) {
+ this.exemptionIndicator = exemptionIndicator;
+ return this;
+ }
+
+ /**
+ * Add a key/value pair to `extraParams` map. A map is initialized for the first
+ * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
+ * map. See {@link
+ * PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure#extraParams} for the
+ * field documentation.
+ */
+ public Builder putExtraParam(String key, Object value) {
+ if (this.extraParams == null) {
+ this.extraParams = new HashMap<>();
+ }
+ this.extraParams.put(key, value);
+ return this;
+ }
+
+ /**
+ * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
+ * `put/putAll` call, and subsequent calls add additional key/value pairs to the original
+ * map. See {@link
+ * PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure#extraParams} for the
+ * field documentation.
+ */
+ public Builder putAllExtraParam(Map map) {
+ if (this.extraParams == null) {
+ this.extraParams = new HashMap<>();
+ }
+ this.extraParams.putAll(map);
+ return this;
+ }
+
+ /**
+ * Network specific 3DS fields. Network specific arguments require an explicit card brand
+ * choice. The parameter `payment_method_options.card.network`` must be populated
+ * accordingly
+ */
+ public Builder setNetworkOptions(
+ PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ networkOptions) {
+ this.networkOptions = networkOptions;
+ return this;
+ }
+
+ /**
+ * The challenge indicator ({@code threeDSRequestorChallengeInd}) which was requested in
+ * the AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
+ */
+ public Builder setRequestorChallengeIndicator(String requestorChallengeIndicator) {
+ this.requestorChallengeIndicator = requestorChallengeIndicator;
+ return this;
+ }
+
+ /**
+ * The challenge indicator ({@code threeDSRequestorChallengeInd}) which was requested in
+ * the AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
+ */
+ public Builder setRequestorChallengeIndicator(EmptyParam requestorChallengeIndicator) {
+ this.requestorChallengeIndicator = requestorChallengeIndicator;
+ return this;
+ }
+
+ /**
+ * Required. For 3D Secure 1, the XID. For 3D Secure 2, the Directory
+ * Server Transaction ID (dsTransID).
+ */
+ public Builder setTransactionId(String transactionId) {
+ this.transactionId = transactionId;
+ return this;
+ }
+
+ /**
+ * Required. For 3D Secure 1, the XID. For 3D Secure 2, the Directory
+ * Server Transaction ID (dsTransID).
+ */
+ public Builder setTransactionId(EmptyParam transactionId) {
+ this.transactionId = transactionId;
+ return this;
+ }
+
+ /** Required. The version of 3D Secure that was performed. */
+ public Builder setVersion(
+ PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.Version version) {
+ this.version = version;
+ return this;
+ }
+ }
+
+ @Getter
+ public static class NetworkOptions {
+ /** Cartes Bancaires-specific 3DS fields. */
+ @SerializedName("cartes_bancaires")
+ CartesBancaires cartesBancaires;
+
+ /**
+ * 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 NetworkOptions(CartesBancaires cartesBancaires, Map extraParams) {
+ this.cartesBancaires = cartesBancaires;
+ this.extraParams = extraParams;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private CartesBancaires cartesBancaires;
+
+ private Map extraParams;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ build() {
+ return new PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure
+ .NetworkOptions(this.cartesBancaires, this.extraParams);
+ }
+
+ /** Cartes Bancaires-specific 3DS fields. */
+ public Builder setCartesBancaires(
+ PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires
+ cartesBancaires) {
+ this.cartesBancaires = cartesBancaires;
+ return this;
+ }
+
+ /**
+ * Add a key/value pair to `extraParams` map. A map is initialized for the first
+ * `put/putAll` call, and subsequent calls add additional key/value pairs to the
+ * original map. See {@link
+ * PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions#extraParams}
+ * for the field documentation.
+ */
+ public Builder putExtraParam(String key, Object value) {
+ if (this.extraParams == null) {
+ this.extraParams = new HashMap<>();
+ }
+ this.extraParams.put(key, value);
+ return this;
+ }
+
+ /**
+ * Add all map key/value pairs to `extraParams` map. A map is initialized for the first
+ * `put/putAll` call, and subsequent calls add additional key/value pairs to the
+ * original map. See {@link
+ * PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions#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 CartesBancaires {
+ /**
+ * Required. The cryptogram calculation algorithm used by the card
+ * Issuer's ACS to calculate the Authentication cryptogram. Also known as {@code
+ * cavvAlgorithm}. messageExtension: CB-AVALGO
+ */
+ @SerializedName("cb_avalgo")
+ CbAvalgo cbAvalgo;
+
+ /**
+ * The exemption indicator returned from Cartes Bancaires in the ARes. message
+ * extension: CB-EXEMPTION; string (4 characters) This is a 3 byte bitmap (low
+ * significant byte first and most significant bit first) that has been Base64 encoded
+ */
+ @SerializedName("cb_exemption")
+ Object cbExemption;
+
+ /**
+ * The risk score returned from Cartes Bancaires in the ARes. message extension:
+ * CB-SCORE; numeric value 0-99
+ */
+ @SerializedName("cb_score")
+ Long cbScore;
+
+ /**
+ * 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 CartesBancaires(
+ CbAvalgo cbAvalgo,
+ Object cbExemption,
+ Long cbScore,
+ Map extraParams) {
+ this.cbAvalgo = cbAvalgo;
+ this.cbExemption = cbExemption;
+ this.cbScore = cbScore;
+ this.extraParams = extraParams;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private CbAvalgo cbAvalgo;
+
+ private Object cbExemption;
+
+ private Long cbScore;
+
+ private Map extraParams;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires
+ build() {
+ return new PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure
+ .NetworkOptions.CartesBancaires(
+ this.cbAvalgo, this.cbExemption, this.cbScore, this.extraParams);
+ }
+
+ /**
+ * Required. The cryptogram calculation algorithm used by the card
+ * Issuer's ACS to calculate the Authentication cryptogram. Also known as {@code
+ * cavvAlgorithm}. messageExtension: CB-AVALGO
+ */
+ public Builder setCbAvalgo(
+ PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires.CbAvalgo
+ cbAvalgo) {
+ this.cbAvalgo = cbAvalgo;
+ return this;
+ }
+
+ /**
+ * The exemption indicator returned from Cartes Bancaires in the ARes. message
+ * extension: CB-EXEMPTION; string (4 characters) This is a 3 byte bitmap (low
+ * significant byte first and most significant bit first) that has been Base64 encoded
+ */
+ public Builder setCbExemption(String cbExemption) {
+ this.cbExemption = cbExemption;
+ return this;
+ }
+
+ /**
+ * The exemption indicator returned from Cartes Bancaires in the ARes. message
+ * extension: CB-EXEMPTION; string (4 characters) This is a 3 byte bitmap (low
+ * significant byte first and most significant bit first) that has been Base64 encoded
+ */
+ public Builder setCbExemption(EmptyParam cbExemption) {
+ this.cbExemption = cbExemption;
+ return this;
+ }
+
+ /**
+ * The risk score returned from Cartes Bancaires in the ARes. message extension:
+ * CB-SCORE; numeric value 0-99
+ */
+ public Builder setCbScore(Long cbScore) {
+ this.cbScore = cbScore;
+ return this;
+ }
+
+ /**
+ * Add a key/value pair to `extraParams` map. A map is initialized for the first
+ * `put/putAll` call, and subsequent calls add additional key/value pairs to the
+ * original map. See {@link
+ * PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions.CartesBancaires#extraParams}
+ * for the field documentation.
+ */
+ public Builder putExtraParam(String key, Object value) {
+ if (this.extraParams == null) {
+ this.extraParams = new HashMap<>();
+ }
+ this.extraParams.put(key, value);
+ return this;
+ }
+
+ /**
+ * Add all map key/value pairs to `extraParams` map. A map is initialized for the
+ * first `put/putAll` call, and subsequent calls add additional key/value pairs to the
+ * original map. See {@link
+ * PaymentIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions.CartesBancaires#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 CbAvalgo implements ApiRequestParams.EnumParam {
+ @SerializedName("0")
+ N0("0"),
+
+ @SerializedName("1")
+ N1("1"),
+
+ @SerializedName("2")
+ N2("2"),
+
+ @SerializedName("3")
+ N3("3"),
+
+ @SerializedName("4")
+ N4("4"),
+
+ @SerializedName("A")
+ A("A");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ CbAvalgo(String value) {
+ this.value = value;
+ }
+ }
+ }
+ }
+
+ public enum AresTransStatus implements ApiRequestParams.EnumParam {
+ @SerializedName("A")
+ A("A"),
+
+ @SerializedName("C")
+ C("C"),
+
+ @SerializedName("I")
+ I("I"),
+
+ @SerializedName("N")
+ N("N"),
+
+ @SerializedName("R")
+ R("R"),
+
+ @SerializedName("U")
+ U("U"),
+
+ @SerializedName("Y")
+ Y("Y");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ AresTransStatus(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum ElectronicCommerceIndicator implements ApiRequestParams.EnumParam {
+ @SerializedName("01")
+ N01("01"),
+
+ @SerializedName("02")
+ N02("02"),
+
+ @SerializedName("05")
+ N05("05"),
+
+ @SerializedName("06")
+ N06("06"),
+
+ @SerializedName("07")
+ N07("07");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ ElectronicCommerceIndicator(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum ExemptionIndicator implements ApiRequestParams.EnumParam {
+ @SerializedName("low_risk")
+ LOW_RISK("low_risk"),
+
+ @SerializedName("none")
+ NONE("none");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ ExemptionIndicator(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum Version implements ApiRequestParams.EnumParam {
+ @SerializedName("1.0.2")
+ N1__0__2("1.0.2"),
+
+ @SerializedName("2.1.0")
+ N2__1__0("2.1.0"),
+
+ @SerializedName("2.2.0")
+ N2__2__0("2.2.0");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ Version(String value) {
+ this.value = value;
+ }
+ }
+ }
+
public enum CaptureMethod implements ApiRequestParams.EnumParam {
@SerializedName("manual")
MANUAL("manual");
diff --git a/src/main/java/com/stripe/param/SetupIntentConfirmParams.java b/src/main/java/com/stripe/param/SetupIntentConfirmParams.java
index 94a5edcf002..e63af40b9c1 100644
--- a/src/main/java/com/stripe/param/SetupIntentConfirmParams.java
+++ b/src/main/java/com/stripe/param/SetupIntentConfirmParams.java
@@ -5148,17 +5148,26 @@ public static class Card {
@SerializedName("request_three_d_secure")
RequestThreeDSecure requestThreeDSecure;
+ /**
+ * If 3D Secure authentication was performed with a third-party provider, the authentication
+ * details to use for this setup.
+ */
+ @SerializedName("three_d_secure")
+ ThreeDSecure threeDSecure;
+
private Card(
Map extraParams,
MandateOptions mandateOptions,
Boolean moto,
Network network,
- RequestThreeDSecure requestThreeDSecure) {
+ RequestThreeDSecure requestThreeDSecure,
+ ThreeDSecure threeDSecure) {
this.extraParams = extraParams;
this.mandateOptions = mandateOptions;
this.moto = moto;
this.network = network;
this.requestThreeDSecure = requestThreeDSecure;
+ this.threeDSecure = threeDSecure;
}
public static Builder builder() {
@@ -5176,6 +5185,8 @@ public static class Builder {
private RequestThreeDSecure requestThreeDSecure;
+ private ThreeDSecure threeDSecure;
+
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentConfirmParams.PaymentMethodOptions.Card build() {
return new SetupIntentConfirmParams.PaymentMethodOptions.Card(
@@ -5183,7 +5194,8 @@ public SetupIntentConfirmParams.PaymentMethodOptions.Card build() {
this.mandateOptions,
this.moto,
this.network,
- this.requestThreeDSecure);
+ this.requestThreeDSecure,
+ this.threeDSecure);
}
/**
@@ -5258,6 +5270,16 @@ public Builder setRequestThreeDSecure(
this.requestThreeDSecure = requestThreeDSecure;
return this;
}
+
+ /**
+ * If 3D Secure authentication was performed with a third-party provider, the authentication
+ * details to use for this setup.
+ */
+ public Builder setThreeDSecure(
+ SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure threeDSecure) {
+ this.threeDSecure = threeDSecure;
+ return this;
+ }
}
@Getter
@@ -5612,6 +5634,525 @@ public enum SupportedType implements ApiRequestParams.EnumParam {
}
}
+ @Getter
+ public static class ThreeDSecure {
+ /** The {@code transStatus} returned from the card Issuer’s ACS in the ARes. */
+ @SerializedName("ares_trans_status")
+ AresTransStatus aresTransStatus;
+
+ /**
+ * The cryptogram, also known as the "authentication value" (AAV, CAVV or AEVV).
+ * This value is 20 bytes, base64-encoded into a 28-character string. (Most 3D Secure
+ * providers will return the base64-encoded version, which is what you should specify here.)
+ */
+ @SerializedName("cryptogram")
+ String cryptogram;
+
+ /**
+ * The Electronic Commerce Indicator (ECI) is returned by your 3D Secure provider and
+ * indicates what degree of authentication was performed.
+ */
+ @SerializedName("electronic_commerce_indicator")
+ ElectronicCommerceIndicator electronicCommerceIndicator;
+
+ /**
+ * 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;
+
+ /**
+ * Network specific 3DS fields. Network specific arguments require an explicit card brand
+ * choice. The parameter `payment_method_options.card.network`` must be populated
+ * accordingly
+ */
+ @SerializedName("network_options")
+ NetworkOptions networkOptions;
+
+ /**
+ * The challenge indicator ({@code threeDSRequestorChallengeInd}) which was requested in the
+ * AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
+ */
+ @SerializedName("requestor_challenge_indicator")
+ String requestorChallengeIndicator;
+
+ /**
+ * For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server Transaction ID
+ * (dsTransID).
+ */
+ @SerializedName("transaction_id")
+ String transactionId;
+
+ /** The version of 3D Secure that was performed. */
+ @SerializedName("version")
+ Version version;
+
+ private ThreeDSecure(
+ AresTransStatus aresTransStatus,
+ String cryptogram,
+ ElectronicCommerceIndicator electronicCommerceIndicator,
+ Map extraParams,
+ NetworkOptions networkOptions,
+ String requestorChallengeIndicator,
+ String transactionId,
+ Version version) {
+ this.aresTransStatus = aresTransStatus;
+ this.cryptogram = cryptogram;
+ this.electronicCommerceIndicator = electronicCommerceIndicator;
+ this.extraParams = extraParams;
+ this.networkOptions = networkOptions;
+ this.requestorChallengeIndicator = requestorChallengeIndicator;
+ this.transactionId = transactionId;
+ this.version = version;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private AresTransStatus aresTransStatus;
+
+ private String cryptogram;
+
+ private ElectronicCommerceIndicator electronicCommerceIndicator;
+
+ private Map extraParams;
+
+ private NetworkOptions networkOptions;
+
+ private String requestorChallengeIndicator;
+
+ private String transactionId;
+
+ private Version version;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure build() {
+ return new SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure(
+ this.aresTransStatus,
+ this.cryptogram,
+ this.electronicCommerceIndicator,
+ this.extraParams,
+ this.networkOptions,
+ this.requestorChallengeIndicator,
+ this.transactionId,
+ this.version);
+ }
+
+ /** The {@code transStatus} returned from the card Issuer’s ACS in the ARes. */
+ public Builder setAresTransStatus(
+ SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.AresTransStatus
+ aresTransStatus) {
+ this.aresTransStatus = aresTransStatus;
+ return this;
+ }
+
+ /**
+ * The cryptogram, also known as the "authentication value" (AAV, CAVV or AEVV).
+ * This value is 20 bytes, base64-encoded into a 28-character string. (Most 3D Secure
+ * providers will return the base64-encoded version, which is what you should specify
+ * here.)
+ */
+ public Builder setCryptogram(String cryptogram) {
+ this.cryptogram = cryptogram;
+ return this;
+ }
+
+ /**
+ * The Electronic Commerce Indicator (ECI) is returned by your 3D Secure provider and
+ * indicates what degree of authentication was performed.
+ */
+ public Builder setElectronicCommerceIndicator(
+ SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure
+ .ElectronicCommerceIndicator
+ electronicCommerceIndicator) {
+ this.electronicCommerceIndicator = electronicCommerceIndicator;
+ 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
+ * SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure#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
+ * SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure#extraParams} for the
+ * field documentation.
+ */
+ public Builder putAllExtraParam(Map map) {
+ if (this.extraParams == null) {
+ this.extraParams = new HashMap<>();
+ }
+ this.extraParams.putAll(map);
+ return this;
+ }
+
+ /**
+ * Network specific 3DS fields. Network specific arguments require an explicit card brand
+ * choice. The parameter `payment_method_options.card.network`` must be populated
+ * accordingly
+ */
+ public Builder setNetworkOptions(
+ SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ networkOptions) {
+ this.networkOptions = networkOptions;
+ return this;
+ }
+
+ /**
+ * The challenge indicator ({@code threeDSRequestorChallengeInd}) which was requested in
+ * the AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
+ */
+ public Builder setRequestorChallengeIndicator(String requestorChallengeIndicator) {
+ this.requestorChallengeIndicator = requestorChallengeIndicator;
+ return this;
+ }
+
+ /**
+ * For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server Transaction ID
+ * (dsTransID).
+ */
+ public Builder setTransactionId(String transactionId) {
+ this.transactionId = transactionId;
+ return this;
+ }
+
+ /** The version of 3D Secure that was performed. */
+ public Builder setVersion(
+ SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.Version version) {
+ this.version = version;
+ return this;
+ }
+ }
+
+ @Getter
+ public static class NetworkOptions {
+ /** Cartes Bancaires-specific 3DS fields. */
+ @SerializedName("cartes_bancaires")
+ CartesBancaires cartesBancaires;
+
+ /**
+ * 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 NetworkOptions(CartesBancaires cartesBancaires, Map extraParams) {
+ this.cartesBancaires = cartesBancaires;
+ this.extraParams = extraParams;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private CartesBancaires cartesBancaires;
+
+ private Map extraParams;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ build() {
+ return new SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure
+ .NetworkOptions(this.cartesBancaires, this.extraParams);
+ }
+
+ /** Cartes Bancaires-specific 3DS fields. */
+ public Builder setCartesBancaires(
+ SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires
+ cartesBancaires) {
+ this.cartesBancaires = cartesBancaires;
+ 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
+ * SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions#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
+ * SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions#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 CartesBancaires {
+ /**
+ * Required. The cryptogram calculation algorithm used by the card
+ * Issuer's ACS to calculate the Authentication cryptogram. Also known as {@code
+ * cavvAlgorithm}. messageExtension: CB-AVALGO
+ */
+ @SerializedName("cb_avalgo")
+ CbAvalgo cbAvalgo;
+
+ /**
+ * The exemption indicator returned from Cartes Bancaires in the ARes. message
+ * extension: CB-EXEMPTION; string (4 characters) This is a 3 byte bitmap (low
+ * significant byte first and most significant bit first) that has been Base64 encoded
+ */
+ @SerializedName("cb_exemption")
+ String cbExemption;
+
+ /**
+ * The risk score returned from Cartes Bancaires in the ARes. message extension:
+ * CB-SCORE; numeric value 0-99
+ */
+ @SerializedName("cb_score")
+ Long cbScore;
+
+ /**
+ * 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 CartesBancaires(
+ CbAvalgo cbAvalgo,
+ String cbExemption,
+ Long cbScore,
+ Map extraParams) {
+ this.cbAvalgo = cbAvalgo;
+ this.cbExemption = cbExemption;
+ this.cbScore = cbScore;
+ this.extraParams = extraParams;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private CbAvalgo cbAvalgo;
+
+ private String cbExemption;
+
+ private Long cbScore;
+
+ private Map extraParams;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires
+ build() {
+ return new SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure
+ .NetworkOptions.CartesBancaires(
+ this.cbAvalgo, this.cbExemption, this.cbScore, this.extraParams);
+ }
+
+ /**
+ * Required. The cryptogram calculation algorithm used by the card
+ * Issuer's ACS to calculate the Authentication cryptogram. Also known as {@code
+ * cavvAlgorithm}. messageExtension: CB-AVALGO
+ */
+ public Builder setCbAvalgo(
+ SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires.CbAvalgo
+ cbAvalgo) {
+ this.cbAvalgo = cbAvalgo;
+ return this;
+ }
+
+ /**
+ * The exemption indicator returned from Cartes Bancaires in the ARes. message
+ * extension: CB-EXEMPTION; string (4 characters) This is a 3 byte bitmap (low
+ * significant byte first and most significant bit first) that has been Base64 encoded
+ */
+ public Builder setCbExemption(String cbExemption) {
+ this.cbExemption = cbExemption;
+ return this;
+ }
+
+ /**
+ * The risk score returned from Cartes Bancaires in the ARes. message extension:
+ * CB-SCORE; numeric value 0-99
+ */
+ public Builder setCbScore(Long cbScore) {
+ this.cbScore = cbScore;
+ 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
+ * SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions.CartesBancaires#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
+ * SetupIntentConfirmParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions.CartesBancaires#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 CbAvalgo implements ApiRequestParams.EnumParam {
+ @SerializedName("0")
+ N0("0"),
+
+ @SerializedName("1")
+ N1("1"),
+
+ @SerializedName("2")
+ N2("2"),
+
+ @SerializedName("3")
+ N3("3"),
+
+ @SerializedName("4")
+ N4("4"),
+
+ @SerializedName("A")
+ A("A");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ CbAvalgo(String value) {
+ this.value = value;
+ }
+ }
+ }
+ }
+
+ public enum AresTransStatus implements ApiRequestParams.EnumParam {
+ @SerializedName("A")
+ A("A"),
+
+ @SerializedName("C")
+ C("C"),
+
+ @SerializedName("I")
+ I("I"),
+
+ @SerializedName("N")
+ N("N"),
+
+ @SerializedName("R")
+ R("R"),
+
+ @SerializedName("U")
+ U("U"),
+
+ @SerializedName("Y")
+ Y("Y");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ AresTransStatus(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum ElectronicCommerceIndicator implements ApiRequestParams.EnumParam {
+ @SerializedName("01")
+ N01("01"),
+
+ @SerializedName("02")
+ N02("02"),
+
+ @SerializedName("05")
+ N05("05"),
+
+ @SerializedName("06")
+ N06("06"),
+
+ @SerializedName("07")
+ N07("07");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ ElectronicCommerceIndicator(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum Version implements ApiRequestParams.EnumParam {
+ @SerializedName("1.0.2")
+ N1__0__2("1.0.2"),
+
+ @SerializedName("2.1.0")
+ N2__1__0("2.1.0"),
+
+ @SerializedName("2.2.0")
+ N2__2__0("2.2.0");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ Version(String value) {
+ this.value = value;
+ }
+ }
+ }
+
public enum Network implements ApiRequestParams.EnumParam {
@SerializedName("amex")
AMEX("amex"),
diff --git a/src/main/java/com/stripe/param/SetupIntentCreateParams.java b/src/main/java/com/stripe/param/SetupIntentCreateParams.java
index 1c6b53fb3bf..8a4b9cc9b15 100644
--- a/src/main/java/com/stripe/param/SetupIntentCreateParams.java
+++ b/src/main/java/com/stripe/param/SetupIntentCreateParams.java
@@ -5602,17 +5602,26 @@ public static class Card {
@SerializedName("request_three_d_secure")
RequestThreeDSecure requestThreeDSecure;
+ /**
+ * If 3D Secure authentication was performed with a third-party provider, the authentication
+ * details to use for this setup.
+ */
+ @SerializedName("three_d_secure")
+ ThreeDSecure threeDSecure;
+
private Card(
Map extraParams,
MandateOptions mandateOptions,
Boolean moto,
Network network,
- RequestThreeDSecure requestThreeDSecure) {
+ RequestThreeDSecure requestThreeDSecure,
+ ThreeDSecure threeDSecure) {
this.extraParams = extraParams;
this.mandateOptions = mandateOptions;
this.moto = moto;
this.network = network;
this.requestThreeDSecure = requestThreeDSecure;
+ this.threeDSecure = threeDSecure;
}
public static Builder builder() {
@@ -5630,6 +5639,8 @@ public static class Builder {
private RequestThreeDSecure requestThreeDSecure;
+ private ThreeDSecure threeDSecure;
+
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentCreateParams.PaymentMethodOptions.Card build() {
return new SetupIntentCreateParams.PaymentMethodOptions.Card(
@@ -5637,7 +5648,8 @@ public SetupIntentCreateParams.PaymentMethodOptions.Card build() {
this.mandateOptions,
this.moto,
this.network,
- this.requestThreeDSecure);
+ this.requestThreeDSecure,
+ this.threeDSecure);
}
/**
@@ -5712,6 +5724,16 @@ public Builder setRequestThreeDSecure(
this.requestThreeDSecure = requestThreeDSecure;
return this;
}
+
+ /**
+ * If 3D Secure authentication was performed with a third-party provider, the authentication
+ * details to use for this setup.
+ */
+ public Builder setThreeDSecure(
+ SetupIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure threeDSecure) {
+ this.threeDSecure = threeDSecure;
+ return this;
+ }
}
@Getter
@@ -6066,6 +6088,525 @@ public enum SupportedType implements ApiRequestParams.EnumParam {
}
}
+ @Getter
+ public static class ThreeDSecure {
+ /** The {@code transStatus} returned from the card Issuer’s ACS in the ARes. */
+ @SerializedName("ares_trans_status")
+ AresTransStatus aresTransStatus;
+
+ /**
+ * The cryptogram, also known as the "authentication value" (AAV, CAVV or AEVV).
+ * This value is 20 bytes, base64-encoded into a 28-character string. (Most 3D Secure
+ * providers will return the base64-encoded version, which is what you should specify here.)
+ */
+ @SerializedName("cryptogram")
+ String cryptogram;
+
+ /**
+ * The Electronic Commerce Indicator (ECI) is returned by your 3D Secure provider and
+ * indicates what degree of authentication was performed.
+ */
+ @SerializedName("electronic_commerce_indicator")
+ ElectronicCommerceIndicator electronicCommerceIndicator;
+
+ /**
+ * 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;
+
+ /**
+ * Network specific 3DS fields. Network specific arguments require an explicit card brand
+ * choice. The parameter `payment_method_options.card.network`` must be populated
+ * accordingly
+ */
+ @SerializedName("network_options")
+ NetworkOptions networkOptions;
+
+ /**
+ * The challenge indicator ({@code threeDSRequestorChallengeInd}) which was requested in the
+ * AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
+ */
+ @SerializedName("requestor_challenge_indicator")
+ String requestorChallengeIndicator;
+
+ /**
+ * For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server Transaction ID
+ * (dsTransID).
+ */
+ @SerializedName("transaction_id")
+ String transactionId;
+
+ /** The version of 3D Secure that was performed. */
+ @SerializedName("version")
+ Version version;
+
+ private ThreeDSecure(
+ AresTransStatus aresTransStatus,
+ String cryptogram,
+ ElectronicCommerceIndicator electronicCommerceIndicator,
+ Map extraParams,
+ NetworkOptions networkOptions,
+ String requestorChallengeIndicator,
+ String transactionId,
+ Version version) {
+ this.aresTransStatus = aresTransStatus;
+ this.cryptogram = cryptogram;
+ this.electronicCommerceIndicator = electronicCommerceIndicator;
+ this.extraParams = extraParams;
+ this.networkOptions = networkOptions;
+ this.requestorChallengeIndicator = requestorChallengeIndicator;
+ this.transactionId = transactionId;
+ this.version = version;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private AresTransStatus aresTransStatus;
+
+ private String cryptogram;
+
+ private ElectronicCommerceIndicator electronicCommerceIndicator;
+
+ private Map extraParams;
+
+ private NetworkOptions networkOptions;
+
+ private String requestorChallengeIndicator;
+
+ private String transactionId;
+
+ private Version version;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public SetupIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure build() {
+ return new SetupIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure(
+ this.aresTransStatus,
+ this.cryptogram,
+ this.electronicCommerceIndicator,
+ this.extraParams,
+ this.networkOptions,
+ this.requestorChallengeIndicator,
+ this.transactionId,
+ this.version);
+ }
+
+ /** The {@code transStatus} returned from the card Issuer’s ACS in the ARes. */
+ public Builder setAresTransStatus(
+ SetupIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.AresTransStatus
+ aresTransStatus) {
+ this.aresTransStatus = aresTransStatus;
+ return this;
+ }
+
+ /**
+ * The cryptogram, also known as the "authentication value" (AAV, CAVV or AEVV).
+ * This value is 20 bytes, base64-encoded into a 28-character string. (Most 3D Secure
+ * providers will return the base64-encoded version, which is what you should specify
+ * here.)
+ */
+ public Builder setCryptogram(String cryptogram) {
+ this.cryptogram = cryptogram;
+ return this;
+ }
+
+ /**
+ * The Electronic Commerce Indicator (ECI) is returned by your 3D Secure provider and
+ * indicates what degree of authentication was performed.
+ */
+ public Builder setElectronicCommerceIndicator(
+ SetupIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure
+ .ElectronicCommerceIndicator
+ electronicCommerceIndicator) {
+ this.electronicCommerceIndicator = electronicCommerceIndicator;
+ 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.PaymentMethodOptions.Card.ThreeDSecure#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.PaymentMethodOptions.Card.ThreeDSecure#extraParams} for the
+ * field documentation.
+ */
+ public Builder putAllExtraParam(Map map) {
+ if (this.extraParams == null) {
+ this.extraParams = new HashMap<>();
+ }
+ this.extraParams.putAll(map);
+ return this;
+ }
+
+ /**
+ * Network specific 3DS fields. Network specific arguments require an explicit card brand
+ * choice. The parameter `payment_method_options.card.network`` must be populated
+ * accordingly
+ */
+ public Builder setNetworkOptions(
+ SetupIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ networkOptions) {
+ this.networkOptions = networkOptions;
+ return this;
+ }
+
+ /**
+ * The challenge indicator ({@code threeDSRequestorChallengeInd}) which was requested in
+ * the AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
+ */
+ public Builder setRequestorChallengeIndicator(String requestorChallengeIndicator) {
+ this.requestorChallengeIndicator = requestorChallengeIndicator;
+ return this;
+ }
+
+ /**
+ * For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server Transaction ID
+ * (dsTransID).
+ */
+ public Builder setTransactionId(String transactionId) {
+ this.transactionId = transactionId;
+ return this;
+ }
+
+ /** The version of 3D Secure that was performed. */
+ public Builder setVersion(
+ SetupIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.Version version) {
+ this.version = version;
+ return this;
+ }
+ }
+
+ @Getter
+ public static class NetworkOptions {
+ /** Cartes Bancaires-specific 3DS fields. */
+ @SerializedName("cartes_bancaires")
+ CartesBancaires cartesBancaires;
+
+ /**
+ * 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 NetworkOptions(CartesBancaires cartesBancaires, Map extraParams) {
+ this.cartesBancaires = cartesBancaires;
+ this.extraParams = extraParams;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private CartesBancaires cartesBancaires;
+
+ private Map extraParams;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public SetupIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ build() {
+ return new SetupIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure
+ .NetworkOptions(this.cartesBancaires, this.extraParams);
+ }
+
+ /** Cartes Bancaires-specific 3DS fields. */
+ public Builder setCartesBancaires(
+ SetupIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires
+ cartesBancaires) {
+ this.cartesBancaires = cartesBancaires;
+ 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.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions#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.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions#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 CartesBancaires {
+ /**
+ * Required. The cryptogram calculation algorithm used by the card
+ * Issuer's ACS to calculate the Authentication cryptogram. Also known as {@code
+ * cavvAlgorithm}. messageExtension: CB-AVALGO
+ */
+ @SerializedName("cb_avalgo")
+ CbAvalgo cbAvalgo;
+
+ /**
+ * The exemption indicator returned from Cartes Bancaires in the ARes. message
+ * extension: CB-EXEMPTION; string (4 characters) This is a 3 byte bitmap (low
+ * significant byte first and most significant bit first) that has been Base64 encoded
+ */
+ @SerializedName("cb_exemption")
+ String cbExemption;
+
+ /**
+ * The risk score returned from Cartes Bancaires in the ARes. message extension:
+ * CB-SCORE; numeric value 0-99
+ */
+ @SerializedName("cb_score")
+ Long cbScore;
+
+ /**
+ * 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 CartesBancaires(
+ CbAvalgo cbAvalgo,
+ String cbExemption,
+ Long cbScore,
+ Map extraParams) {
+ this.cbAvalgo = cbAvalgo;
+ this.cbExemption = cbExemption;
+ this.cbScore = cbScore;
+ this.extraParams = extraParams;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private CbAvalgo cbAvalgo;
+
+ private String cbExemption;
+
+ private Long cbScore;
+
+ private Map extraParams;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public SetupIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires
+ build() {
+ return new SetupIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure
+ .NetworkOptions.CartesBancaires(
+ this.cbAvalgo, this.cbExemption, this.cbScore, this.extraParams);
+ }
+
+ /**
+ * Required. The cryptogram calculation algorithm used by the card
+ * Issuer's ACS to calculate the Authentication cryptogram. Also known as {@code
+ * cavvAlgorithm}. messageExtension: CB-AVALGO
+ */
+ public Builder setCbAvalgo(
+ SetupIntentCreateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires.CbAvalgo
+ cbAvalgo) {
+ this.cbAvalgo = cbAvalgo;
+ return this;
+ }
+
+ /**
+ * The exemption indicator returned from Cartes Bancaires in the ARes. message
+ * extension: CB-EXEMPTION; string (4 characters) This is a 3 byte bitmap (low
+ * significant byte first and most significant bit first) that has been Base64 encoded
+ */
+ public Builder setCbExemption(String cbExemption) {
+ this.cbExemption = cbExemption;
+ return this;
+ }
+
+ /**
+ * The risk score returned from Cartes Bancaires in the ARes. message extension:
+ * CB-SCORE; numeric value 0-99
+ */
+ public Builder setCbScore(Long cbScore) {
+ this.cbScore = cbScore;
+ 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.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions.CartesBancaires#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.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions.CartesBancaires#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 CbAvalgo implements ApiRequestParams.EnumParam {
+ @SerializedName("0")
+ N0("0"),
+
+ @SerializedName("1")
+ N1("1"),
+
+ @SerializedName("2")
+ N2("2"),
+
+ @SerializedName("3")
+ N3("3"),
+
+ @SerializedName("4")
+ N4("4"),
+
+ @SerializedName("A")
+ A("A");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ CbAvalgo(String value) {
+ this.value = value;
+ }
+ }
+ }
+ }
+
+ public enum AresTransStatus implements ApiRequestParams.EnumParam {
+ @SerializedName("A")
+ A("A"),
+
+ @SerializedName("C")
+ C("C"),
+
+ @SerializedName("I")
+ I("I"),
+
+ @SerializedName("N")
+ N("N"),
+
+ @SerializedName("R")
+ R("R"),
+
+ @SerializedName("U")
+ U("U"),
+
+ @SerializedName("Y")
+ Y("Y");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ AresTransStatus(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum ElectronicCommerceIndicator implements ApiRequestParams.EnumParam {
+ @SerializedName("01")
+ N01("01"),
+
+ @SerializedName("02")
+ N02("02"),
+
+ @SerializedName("05")
+ N05("05"),
+
+ @SerializedName("06")
+ N06("06"),
+
+ @SerializedName("07")
+ N07("07");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ ElectronicCommerceIndicator(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum Version implements ApiRequestParams.EnumParam {
+ @SerializedName("1.0.2")
+ N1__0__2("1.0.2"),
+
+ @SerializedName("2.1.0")
+ N2__1__0("2.1.0"),
+
+ @SerializedName("2.2.0")
+ N2__2__0("2.2.0");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ Version(String value) {
+ this.value = value;
+ }
+ }
+ }
+
public enum Network implements ApiRequestParams.EnumParam {
@SerializedName("amex")
AMEX("amex"),
diff --git a/src/main/java/com/stripe/param/SetupIntentUpdateParams.java b/src/main/java/com/stripe/param/SetupIntentUpdateParams.java
index 6360a2293bb..e217dd51796 100644
--- a/src/main/java/com/stripe/param/SetupIntentUpdateParams.java
+++ b/src/main/java/com/stripe/param/SetupIntentUpdateParams.java
@@ -5108,17 +5108,26 @@ public static class Card {
@SerializedName("request_three_d_secure")
RequestThreeDSecure requestThreeDSecure;
+ /**
+ * If 3D Secure authentication was performed with a third-party provider, the authentication
+ * details to use for this setup.
+ */
+ @SerializedName("three_d_secure")
+ ThreeDSecure threeDSecure;
+
private Card(
Map extraParams,
MandateOptions mandateOptions,
Boolean moto,
Network network,
- RequestThreeDSecure requestThreeDSecure) {
+ RequestThreeDSecure requestThreeDSecure,
+ ThreeDSecure threeDSecure) {
this.extraParams = extraParams;
this.mandateOptions = mandateOptions;
this.moto = moto;
this.network = network;
this.requestThreeDSecure = requestThreeDSecure;
+ this.threeDSecure = threeDSecure;
}
public static Builder builder() {
@@ -5136,6 +5145,8 @@ public static class Builder {
private RequestThreeDSecure requestThreeDSecure;
+ private ThreeDSecure threeDSecure;
+
/** Finalize and obtain parameter instance from this builder. */
public SetupIntentUpdateParams.PaymentMethodOptions.Card build() {
return new SetupIntentUpdateParams.PaymentMethodOptions.Card(
@@ -5143,7 +5154,8 @@ public SetupIntentUpdateParams.PaymentMethodOptions.Card build() {
this.mandateOptions,
this.moto,
this.network,
- this.requestThreeDSecure);
+ this.requestThreeDSecure,
+ this.threeDSecure);
}
/**
@@ -5218,6 +5230,16 @@ public Builder setRequestThreeDSecure(
this.requestThreeDSecure = requestThreeDSecure;
return this;
}
+
+ /**
+ * If 3D Secure authentication was performed with a third-party provider, the authentication
+ * details to use for this setup.
+ */
+ public Builder setThreeDSecure(
+ SetupIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure threeDSecure) {
+ this.threeDSecure = threeDSecure;
+ return this;
+ }
}
@Getter
@@ -5598,6 +5620,564 @@ public enum SupportedType implements ApiRequestParams.EnumParam {
}
}
+ @Getter
+ public static class ThreeDSecure {
+ /** The {@code transStatus} returned from the card Issuer’s ACS in the ARes. */
+ @SerializedName("ares_trans_status")
+ AresTransStatus aresTransStatus;
+
+ /**
+ * The cryptogram, also known as the "authentication value" (AAV, CAVV or AEVV).
+ * This value is 20 bytes, base64-encoded into a 28-character string. (Most 3D Secure
+ * providers will return the base64-encoded version, which is what you should specify here.)
+ */
+ @SerializedName("cryptogram")
+ Object cryptogram;
+
+ /**
+ * The Electronic Commerce Indicator (ECI) is returned by your 3D Secure provider and
+ * indicates what degree of authentication was performed.
+ */
+ @SerializedName("electronic_commerce_indicator")
+ ElectronicCommerceIndicator electronicCommerceIndicator;
+
+ /**
+ * 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;
+
+ /**
+ * Network specific 3DS fields. Network specific arguments require an explicit card brand
+ * choice. The parameter `payment_method_options.card.network`` must be populated
+ * accordingly
+ */
+ @SerializedName("network_options")
+ NetworkOptions networkOptions;
+
+ /**
+ * The challenge indicator ({@code threeDSRequestorChallengeInd}) which was requested in the
+ * AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
+ */
+ @SerializedName("requestor_challenge_indicator")
+ Object requestorChallengeIndicator;
+
+ /**
+ * For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server Transaction ID
+ * (dsTransID).
+ */
+ @SerializedName("transaction_id")
+ Object transactionId;
+
+ /** The version of 3D Secure that was performed. */
+ @SerializedName("version")
+ Version version;
+
+ private ThreeDSecure(
+ AresTransStatus aresTransStatus,
+ Object cryptogram,
+ ElectronicCommerceIndicator electronicCommerceIndicator,
+ Map extraParams,
+ NetworkOptions networkOptions,
+ Object requestorChallengeIndicator,
+ Object transactionId,
+ Version version) {
+ this.aresTransStatus = aresTransStatus;
+ this.cryptogram = cryptogram;
+ this.electronicCommerceIndicator = electronicCommerceIndicator;
+ this.extraParams = extraParams;
+ this.networkOptions = networkOptions;
+ this.requestorChallengeIndicator = requestorChallengeIndicator;
+ this.transactionId = transactionId;
+ this.version = version;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private AresTransStatus aresTransStatus;
+
+ private Object cryptogram;
+
+ private ElectronicCommerceIndicator electronicCommerceIndicator;
+
+ private Map extraParams;
+
+ private NetworkOptions networkOptions;
+
+ private Object requestorChallengeIndicator;
+
+ private Object transactionId;
+
+ private Version version;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public SetupIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure build() {
+ return new SetupIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure(
+ this.aresTransStatus,
+ this.cryptogram,
+ this.electronicCommerceIndicator,
+ this.extraParams,
+ this.networkOptions,
+ this.requestorChallengeIndicator,
+ this.transactionId,
+ this.version);
+ }
+
+ /** The {@code transStatus} returned from the card Issuer’s ACS in the ARes. */
+ public Builder setAresTransStatus(
+ SetupIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.AresTransStatus
+ aresTransStatus) {
+ this.aresTransStatus = aresTransStatus;
+ return this;
+ }
+
+ /**
+ * The cryptogram, also known as the "authentication value" (AAV, CAVV or AEVV).
+ * This value is 20 bytes, base64-encoded into a 28-character string. (Most 3D Secure
+ * providers will return the base64-encoded version, which is what you should specify
+ * here.)
+ */
+ public Builder setCryptogram(String cryptogram) {
+ this.cryptogram = cryptogram;
+ return this;
+ }
+
+ /**
+ * The cryptogram, also known as the "authentication value" (AAV, CAVV or AEVV).
+ * This value is 20 bytes, base64-encoded into a 28-character string. (Most 3D Secure
+ * providers will return the base64-encoded version, which is what you should specify
+ * here.)
+ */
+ public Builder setCryptogram(EmptyParam cryptogram) {
+ this.cryptogram = cryptogram;
+ return this;
+ }
+
+ /**
+ * The Electronic Commerce Indicator (ECI) is returned by your 3D Secure provider and
+ * indicates what degree of authentication was performed.
+ */
+ public Builder setElectronicCommerceIndicator(
+ SetupIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure
+ .ElectronicCommerceIndicator
+ electronicCommerceIndicator) {
+ this.electronicCommerceIndicator = electronicCommerceIndicator;
+ 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.Card.ThreeDSecure#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.ThreeDSecure#extraParams} for the
+ * field documentation.
+ */
+ public Builder putAllExtraParam(Map map) {
+ if (this.extraParams == null) {
+ this.extraParams = new HashMap<>();
+ }
+ this.extraParams.putAll(map);
+ return this;
+ }
+
+ /**
+ * Network specific 3DS fields. Network specific arguments require an explicit card brand
+ * choice. The parameter `payment_method_options.card.network`` must be populated
+ * accordingly
+ */
+ public Builder setNetworkOptions(
+ SetupIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ networkOptions) {
+ this.networkOptions = networkOptions;
+ return this;
+ }
+
+ /**
+ * The challenge indicator ({@code threeDSRequestorChallengeInd}) which was requested in
+ * the AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
+ */
+ public Builder setRequestorChallengeIndicator(String requestorChallengeIndicator) {
+ this.requestorChallengeIndicator = requestorChallengeIndicator;
+ return this;
+ }
+
+ /**
+ * The challenge indicator ({@code threeDSRequestorChallengeInd}) which was requested in
+ * the AReq sent to the card Issuer's ACS. A string containing 2 digits from 01-99.
+ */
+ public Builder setRequestorChallengeIndicator(EmptyParam requestorChallengeIndicator) {
+ this.requestorChallengeIndicator = requestorChallengeIndicator;
+ return this;
+ }
+
+ /**
+ * For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server Transaction ID
+ * (dsTransID).
+ */
+ public Builder setTransactionId(String transactionId) {
+ this.transactionId = transactionId;
+ return this;
+ }
+
+ /**
+ * For 3D Secure 1, the XID. For 3D Secure 2, the Directory Server Transaction ID
+ * (dsTransID).
+ */
+ public Builder setTransactionId(EmptyParam transactionId) {
+ this.transactionId = transactionId;
+ return this;
+ }
+
+ /** The version of 3D Secure that was performed. */
+ public Builder setVersion(
+ SetupIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.Version version) {
+ this.version = version;
+ return this;
+ }
+ }
+
+ @Getter
+ public static class NetworkOptions {
+ /** Cartes Bancaires-specific 3DS fields. */
+ @SerializedName("cartes_bancaires")
+ CartesBancaires cartesBancaires;
+
+ /**
+ * 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 NetworkOptions(CartesBancaires cartesBancaires, Map extraParams) {
+ this.cartesBancaires = cartesBancaires;
+ this.extraParams = extraParams;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private CartesBancaires cartesBancaires;
+
+ private Map extraParams;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public SetupIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ build() {
+ return new SetupIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure
+ .NetworkOptions(this.cartesBancaires, this.extraParams);
+ }
+
+ /** Cartes Bancaires-specific 3DS fields. */
+ public Builder setCartesBancaires(
+ SetupIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires
+ cartesBancaires) {
+ this.cartesBancaires = cartesBancaires;
+ 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.Card.ThreeDSecure.NetworkOptions#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.ThreeDSecure.NetworkOptions#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 CartesBancaires {
+ /**
+ * Required. The cryptogram calculation algorithm used by the card
+ * Issuer's ACS to calculate the Authentication cryptogram. Also known as {@code
+ * cavvAlgorithm}. messageExtension: CB-AVALGO
+ */
+ @SerializedName("cb_avalgo")
+ CbAvalgo cbAvalgo;
+
+ /**
+ * The exemption indicator returned from Cartes Bancaires in the ARes. message
+ * extension: CB-EXEMPTION; string (4 characters) This is a 3 byte bitmap (low
+ * significant byte first and most significant bit first) that has been Base64 encoded
+ */
+ @SerializedName("cb_exemption")
+ Object cbExemption;
+
+ /**
+ * The risk score returned from Cartes Bancaires in the ARes. message extension:
+ * CB-SCORE; numeric value 0-99
+ */
+ @SerializedName("cb_score")
+ Long cbScore;
+
+ /**
+ * 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 CartesBancaires(
+ CbAvalgo cbAvalgo,
+ Object cbExemption,
+ Long cbScore,
+ Map extraParams) {
+ this.cbAvalgo = cbAvalgo;
+ this.cbExemption = cbExemption;
+ this.cbScore = cbScore;
+ this.extraParams = extraParams;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ private CbAvalgo cbAvalgo;
+
+ private Object cbExemption;
+
+ private Long cbScore;
+
+ private Map extraParams;
+
+ /** Finalize and obtain parameter instance from this builder. */
+ public SetupIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires
+ build() {
+ return new SetupIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure
+ .NetworkOptions.CartesBancaires(
+ this.cbAvalgo, this.cbExemption, this.cbScore, this.extraParams);
+ }
+
+ /**
+ * Required. The cryptogram calculation algorithm used by the card
+ * Issuer's ACS to calculate the Authentication cryptogram. Also known as {@code
+ * cavvAlgorithm}. messageExtension: CB-AVALGO
+ */
+ public Builder setCbAvalgo(
+ SetupIntentUpdateParams.PaymentMethodOptions.Card.ThreeDSecure.NetworkOptions
+ .CartesBancaires.CbAvalgo
+ cbAvalgo) {
+ this.cbAvalgo = cbAvalgo;
+ return this;
+ }
+
+ /**
+ * The exemption indicator returned from Cartes Bancaires in the ARes. message
+ * extension: CB-EXEMPTION; string (4 characters) This is a 3 byte bitmap (low
+ * significant byte first and most significant bit first) that has been Base64 encoded
+ */
+ public Builder setCbExemption(String cbExemption) {
+ this.cbExemption = cbExemption;
+ return this;
+ }
+
+ /**
+ * The exemption indicator returned from Cartes Bancaires in the ARes. message
+ * extension: CB-EXEMPTION; string (4 characters) This is a 3 byte bitmap (low
+ * significant byte first and most significant bit first) that has been Base64 encoded
+ */
+ public Builder setCbExemption(EmptyParam cbExemption) {
+ this.cbExemption = cbExemption;
+ return this;
+ }
+
+ /**
+ * The risk score returned from Cartes Bancaires in the ARes. message extension:
+ * CB-SCORE; numeric value 0-99
+ */
+ public Builder setCbScore(Long cbScore) {
+ this.cbScore = cbScore;
+ 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.Card.ThreeDSecure.NetworkOptions.CartesBancaires#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.ThreeDSecure.NetworkOptions.CartesBancaires#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 CbAvalgo implements ApiRequestParams.EnumParam {
+ @SerializedName("0")
+ N0("0"),
+
+ @SerializedName("1")
+ N1("1"),
+
+ @SerializedName("2")
+ N2("2"),
+
+ @SerializedName("3")
+ N3("3"),
+
+ @SerializedName("4")
+ N4("4"),
+
+ @SerializedName("A")
+ A("A");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ CbAvalgo(String value) {
+ this.value = value;
+ }
+ }
+ }
+ }
+
+ public enum AresTransStatus implements ApiRequestParams.EnumParam {
+ @SerializedName("A")
+ A("A"),
+
+ @SerializedName("C")
+ C("C"),
+
+ @SerializedName("I")
+ I("I"),
+
+ @SerializedName("N")
+ N("N"),
+
+ @SerializedName("R")
+ R("R"),
+
+ @SerializedName("U")
+ U("U"),
+
+ @SerializedName("Y")
+ Y("Y");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ AresTransStatus(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum ElectronicCommerceIndicator implements ApiRequestParams.EnumParam {
+ @SerializedName("01")
+ N01("01"),
+
+ @SerializedName("02")
+ N02("02"),
+
+ @SerializedName("05")
+ N05("05"),
+
+ @SerializedName("06")
+ N06("06"),
+
+ @SerializedName("07")
+ N07("07");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ ElectronicCommerceIndicator(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum Version implements ApiRequestParams.EnumParam {
+ @SerializedName("1.0.2")
+ N1__0__2("1.0.2"),
+
+ @SerializedName("2.1.0")
+ N2__1__0("2.1.0"),
+
+ @SerializedName("2.2.0")
+ N2__2__0("2.2.0");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ Version(String value) {
+ this.value = value;
+ }
+ }
+ }
+
public enum Network implements ApiRequestParams.EnumParam {
@SerializedName("amex")
AMEX("amex"),
diff --git a/src/main/java/com/stripe/param/treasury/OutboundPaymentCreateParams.java b/src/main/java/com/stripe/param/treasury/OutboundPaymentCreateParams.java
index d16c9977f7d..b97ae0fa082 100644
--- a/src/main/java/com/stripe/param/treasury/OutboundPaymentCreateParams.java
+++ b/src/main/java/com/stripe/param/treasury/OutboundPaymentCreateParams.java
@@ -86,8 +86,8 @@ public class OutboundPaymentCreateParams extends ApiRequestParams {
/**
* The description that appears on the receiving end for this OutboundPayment (for example, bank
* statement for external bank transfer). Maximum 10 characters for {@code ach} payments, 140
- * characters for {@code wire} payments, or 500 characters for {@code stripe} network transfers.
- * The default value is {@code payment}.
+ * characters for {@code us_domestic_wire} payments, or 500 characters for {@code stripe} network
+ * transfers. The default value is "payment".
*/
@SerializedName("statement_descriptor")
String statementDescriptor;
@@ -321,8 +321,8 @@ public Builder putAllMetadata(Map map) {
/**
* The description that appears on the receiving end for this OutboundPayment (for example, bank
* statement for external bank transfer). Maximum 10 characters for {@code ach} payments, 140
- * characters for {@code wire} payments, or 500 characters for {@code stripe} network transfers.
- * The default value is {@code payment}.
+ * characters for {@code us_domestic_wire} payments, or 500 characters for {@code stripe}
+ * network transfers. The default value is "payment".
*/
public Builder setStatementDescriptor(String statementDescriptor) {
this.statementDescriptor = statementDescriptor;
diff --git a/src/main/java/com/stripe/param/treasury/OutboundTransferCreateParams.java b/src/main/java/com/stripe/param/treasury/OutboundTransferCreateParams.java
index 98a5cb9eff4..4d111b4365e 100644
--- a/src/main/java/com/stripe/param/treasury/OutboundTransferCreateParams.java
+++ b/src/main/java/com/stripe/param/treasury/OutboundTransferCreateParams.java
@@ -64,8 +64,8 @@ public class OutboundTransferCreateParams extends ApiRequestParams {
/**
* Statement descriptor to be shown on the receiving end of an OutboundTransfer. Maximum 10
- * characters for {@code ach} transfers or 140 characters for {@code wire} transfers. The default
- * value is {@code transfer}.
+ * characters for {@code ach} transfers or 140 characters for {@code us_domestic_wire} transfers.
+ * The default value is "transfer".
*/
@SerializedName("statement_descriptor")
String statementDescriptor;
@@ -255,8 +255,8 @@ public Builder putAllMetadata(Map map) {
/**
* Statement descriptor to be shown on the receiving end of an OutboundTransfer. Maximum 10
- * characters for {@code ach} transfers or 140 characters for {@code wire} transfers. The
- * default value is {@code transfer}.
+ * characters for {@code ach} transfers or 140 characters for {@code us_domestic_wire}
+ * transfers. The default value is "transfer".
*/
public Builder setStatementDescriptor(String statementDescriptor) {
this.statementDescriptor = statementDescriptor;