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;