diff --git a/API_VERSION b/API_VERSION index fb725068586..7fa3a2d3c56 100644 --- a/API_VERSION +++ b/API_VERSION @@ -1 +1 @@ -2025-09-30.clover \ No newline at end of file +577fcb57736b925392ea563c0284df9002c75ac9 \ No newline at end of file diff --git a/OPENAPI_VERSION b/OPENAPI_VERSION index f0bb0d526f9..edaae7f4520 100644 --- a/OPENAPI_VERSION +++ b/OPENAPI_VERSION @@ -1 +1 @@ -v2028 \ No newline at end of file +v2099 \ No newline at end of file diff --git a/src/main/java/com/stripe/ApiVersion.java b/src/main/java/com/stripe/ApiVersion.java index 23d4cc98162..933e22b0b18 100644 --- a/src/main/java/com/stripe/ApiVersion.java +++ b/src/main/java/com/stripe/ApiVersion.java @@ -2,6 +2,6 @@ package com.stripe; final class ApiVersion { - public static final String CURRENT = "2025-09-30.clover"; + public static final String CURRENT = "2025-10-29.clover"; public static final String CURRENT_MAJOR = "clover"; } diff --git a/src/main/java/com/stripe/StripeClient.java b/src/main/java/com/stripe/StripeClient.java index e7143089ae3..360b3c26b09 100644 --- a/src/main/java/com/stripe/StripeClient.java +++ b/src/main/java/com/stripe/StripeClient.java @@ -541,6 +541,18 @@ public com.stripe.service.MandateService mandates() { return new com.stripe.service.MandateService(this.getResponseGetter()); } + /** + * @deprecated StripeClient.paymentAttemptRecords() is deprecated, use + * StripeClient.v1().paymentAttemptRecords() instead. All functionality under it has been + * copied over to StripeClient.v1().paymentAttemptRecords(). See migration + * guide for more on this and tips on migrating to the new v1 namespace. + */ + @Deprecated + public com.stripe.service.PaymentAttemptRecordService paymentAttemptRecords() { + return new com.stripe.service.PaymentAttemptRecordService(this.getResponseGetter()); + } + /** * @deprecated StripeClient.paymentIntents() is deprecated, use StripeClient.v1().paymentIntents() * instead. All functionality under it has been copied over to @@ -601,6 +613,18 @@ public com.stripe.service.PaymentMethodService paymentMethods() { return new com.stripe.service.PaymentMethodService(this.getResponseGetter()); } + /** + * @deprecated StripeClient.paymentRecords() is deprecated, use StripeClient.v1().paymentRecords() + * instead. All functionality under it has been copied over to + * StripeClient.v1().paymentRecords(). See migration + * guide for more on this and tips on migrating to the new v1 namespace. + */ + @Deprecated + public com.stripe.service.PaymentRecordService paymentRecords() { + return new com.stripe.service.PaymentRecordService(this.getResponseGetter()); + } + /** * @deprecated StripeClient.payouts() is deprecated, use StripeClient.v1().payouts() instead. All * functionality under it has been copied over to StripeClient.v1().payouts(). See API Reference. + */ + @Getter + @Setter + @EqualsAndHashCode(callSuper = false) + public static class RepresentativeDeclaration extends StripeObject { + /** The Unix timestamp marking when the representative declaration attestation was made. */ + @SerializedName("date") + Long date; + + /** The IP address from which the representative declaration attestation was made. */ + @SerializedName("ip") + String ip; + + /** + * The user-agent string from the browser where the representative declaration attestation was + * made. + */ + @SerializedName("user_agent") + String userAgent; + } + /** * For more details about Verification, please refer to the API Reference. diff --git a/src/main/java/com/stripe/model/Charge.java b/src/main/java/com/stripe/model/Charge.java index ba9efcaf66b..c5c6e994c56 100644 --- a/src/main/java/com/stripe/model/Charge.java +++ b/src/main/java/com/stripe/model/Charge.java @@ -2690,7 +2690,7 @@ public static class Crypto extends StripeObject { /** * The blockchain network that the transaction was sent on. * - *
One of {@code base}, {@code ethereum}, or {@code polygon}. + *
One of {@code base}, {@code ethereum}, {@code polygon}, or {@code solana}. */ @SerializedName("network") String network; diff --git a/src/main/java/com/stripe/model/ConfirmationToken.java b/src/main/java/com/stripe/model/ConfirmationToken.java index b4eaa24b022..8af3bf46de1 100644 --- a/src/main/java/com/stripe/model/ConfirmationToken.java +++ b/src/main/java/com/stripe/model/ConfirmationToken.java @@ -442,14 +442,14 @@ public static class PaymentMethodPreview extends StripeObject { *
One of {@code acss_debit}, {@code affirm}, {@code afterpay_clearpay}, {@code alipay},
* {@code alma}, {@code amazon_pay}, {@code au_becs_debit}, {@code bacs_debit}, {@code
* bancontact}, {@code billie}, {@code blik}, {@code boleto}, {@code card}, {@code
- * card_present}, {@code cashapp}, {@code crypto}, {@code customer_balance}, {@code eps}, {@code
- * fpx}, {@code giropay}, {@code grabpay}, {@code ideal}, {@code interac_present}, {@code
- * kakao_pay}, {@code klarna}, {@code konbini}, {@code kr_card}, {@code link}, {@code mb_way},
- * {@code mobilepay}, {@code multibanco}, {@code naver_pay}, {@code nz_bank_account}, {@code
- * oxxo}, {@code p24}, {@code pay_by_bank}, {@code payco}, {@code paynow}, {@code paypal},
- * {@code pix}, {@code promptpay}, {@code revolut_pay}, {@code samsung_pay}, {@code satispay},
- * {@code sepa_debit}, {@code sofort}, {@code swish}, {@code twint}, {@code us_bank_account},
- * {@code wechat_pay}, or {@code zip}.
+ * card_present}, {@code cashapp}, {@code crypto}, {@code custom}, {@code customer_balance},
+ * {@code eps}, {@code fpx}, {@code giropay}, {@code grabpay}, {@code ideal}, {@code
+ * interac_present}, {@code kakao_pay}, {@code klarna}, {@code konbini}, {@code kr_card}, {@code
+ * link}, {@code mb_way}, {@code mobilepay}, {@code multibanco}, {@code naver_pay}, {@code
+ * nz_bank_account}, {@code oxxo}, {@code p24}, {@code pay_by_bank}, {@code payco}, {@code
+ * paynow}, {@code paypal}, {@code pix}, {@code promptpay}, {@code revolut_pay}, {@code
+ * samsung_pay}, {@code satispay}, {@code sepa_debit}, {@code sofort}, {@code swish}, {@code
+ * twint}, {@code us_bank_account}, {@code wechat_pay}, or {@code zip}.
*/
@SerializedName("type")
String type;
diff --git a/src/main/java/com/stripe/model/CreditNote.java b/src/main/java/com/stripe/model/CreditNote.java
index 8576cb7d60e..b64f4a8674e 100644
--- a/src/main/java/com/stripe/model/CreditNote.java
+++ b/src/main/java/com/stripe/model/CreditNote.java
@@ -739,12 +739,20 @@ public static class Refund extends StripeObject {
@SerializedName("amount_refunded")
Long amountRefunded;
+ /** The PaymentRecord refund details associated with this credit note refund. */
+ @SerializedName("payment_record_refund")
+ PaymentRecordRefund paymentRecordRefund;
+
/** ID of the refund. */
@SerializedName("refund")
@Getter(lombok.AccessLevel.NONE)
@Setter(lombok.AccessLevel.NONE)
ExpandableField One of {@code anrok}, {@code avalara}, {@code sphere}, or {@code stripe}.
+ */
+ @SerializedName("provider")
+ String provider;
+
/**
* For more details about Location, please refer to the API Reference.
diff --git a/src/main/java/com/stripe/model/CustomerSession.java b/src/main/java/com/stripe/model/CustomerSession.java
index 534a5a172e7..031e0b4c448 100644
--- a/src/main/java/com/stripe/model/CustomerSession.java
+++ b/src/main/java/com/stripe/model/CustomerSession.java
@@ -149,6 +149,17 @@ public static class Components extends StripeObject {
@SerializedName("buy_button")
BuyButton buyButton;
+ /** This hash contains whether the customer sheet is enabled and the features it supports. */
+ @SerializedName("customer_sheet")
+ CustomerSheet customerSheet;
+
+ /**
+ * This hash contains whether the mobile payment element is enabled and the features it
+ * supports.
+ */
+ @SerializedName("mobile_payment_element")
+ MobilePaymentElement mobilePaymentElement;
+
/** This hash contains whether the Payment Element is enabled and the features it supports. */
@SerializedName("payment_element")
PaymentElement paymentElement;
@@ -167,6 +178,144 @@ public static class BuyButton extends StripeObject {
Boolean enabled;
}
+ /** This hash contains whether the customer sheet is enabled and the features it supports. */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class CustomerSheet extends StripeObject {
+ /** Whether the customer sheet is enabled. */
+ @SerializedName("enabled")
+ Boolean enabled;
+
+ /** This hash defines whether the customer sheet supports certain features. */
+ @SerializedName("features")
+ Features features;
+
+ /** This hash contains the features the customer sheet supports. */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Features extends StripeObject {
+ /**
+ * A list of {@code
+ * allow_redisplay} values that controls which saved payment methods the customer sheet
+ * displays by filtering to only show payment methods with an {@code allow_redisplay} value
+ * that is present in this list.
+ *
+ * If not specified, defaults to ["always"]. In order to display all saved
+ * payment methods, specify ["always", "limited",
+ * "unspecified"].
+ */
+ @SerializedName("payment_method_allow_redisplay_filters")
+ List Allowing buyers to remove their saved payment methods impacts subscriptions that
+ * depend on that payment method. Removing the payment method detaches the {@code
+ * customer} object from that PaymentMethod.
+ *
+ * One of {@code disabled}, or {@code enabled}.
+ */
+ @SerializedName("payment_method_remove")
+ String paymentMethodRemove;
+ }
+ }
+
+ /**
+ * This hash contains whether the mobile payment element is enabled and the features it
+ * supports.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class MobilePaymentElement extends StripeObject {
+ /** Whether the mobile payment element is enabled. */
+ @SerializedName("enabled")
+ Boolean enabled;
+
+ /** This hash defines whether the mobile payment element supports certain features. */
+ @SerializedName("features")
+ Features features;
+
+ /** This hash contains the features the mobile payment element supports. */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Features extends StripeObject {
+ /**
+ * A list of {@code
+ * allow_redisplay} values that controls which saved payment methods the mobile payment
+ * element displays by filtering to only show payment methods with an {@code
+ * allow_redisplay} value that is present in this list.
+ *
+ * If not specified, defaults to ["always"]. In order to display all saved
+ * payment methods, specify ["always", "limited",
+ * "unspecified"].
+ */
+ @SerializedName("payment_method_allow_redisplay_filters")
+ List One of {@code disabled}, or {@code enabled}.
+ */
+ @SerializedName("payment_method_redisplay")
+ String paymentMethodRedisplay;
+
+ /**
+ * Controls whether the mobile payment element displays the option to remove a saved payment
+ * method."
+ *
+ * Allowing buyers to remove their saved payment methods impacts subscriptions that
+ * depend on that payment method. Removing the payment method detaches the {@code
+ * customer} object from that PaymentMethod.
+ *
+ * One of {@code disabled}, or {@code enabled}.
+ */
+ @SerializedName("payment_method_remove")
+ String paymentMethodRemove;
+
+ /**
+ * Controls whether the mobile payment element displays a checkbox offering to save a new
+ * payment method.
+ *
+ * If a customer checks the box, the {@code
+ * allow_redisplay} value on the PaymentMethod is set to {@code 'always'} at
+ * confirmation time. For PaymentIntents, the {@code
+ * setup_future_usage} value is also set to the value defined in {@code
+ * payment_method_save_usage}.
+ *
+ * One of {@code disabled}, or {@code enabled}.
+ */
+ @SerializedName("payment_method_save")
+ String paymentMethodSave;
+
+ /**
+ * Allows overriding the value of allow_override when saving a new payment method when
+ * payment_method_save is set to disabled. Use values: "always",
+ * "limited", or "unspecified".
+ *
+ * If not specified, defaults to {@code nil} (no override value).
+ *
+ * One of {@code always}, {@code limited}, or {@code unspecified}.
+ */
+ @SerializedName("payment_method_save_allow_redisplay_override")
+ String paymentMethodSaveAllowRedisplayOverride;
+ }
+ }
+
/** This hash contains whether the Payment Element is enabled and the features it supports. */
@Getter
@Setter
diff --git a/src/main/java/com/stripe/model/Event.java b/src/main/java/com/stripe/model/Event.java
index 46b57125e94..8f0b0911e4e 100644
--- a/src/main/java/com/stripe/model/Event.java
+++ b/src/main/java/com/stripe/model/Event.java
@@ -104,7 +104,7 @@ public class Event extends ApiResource implements HasId {
* {@code account.external_account.created}, {@code account.external_account.deleted}, {@code
* account.external_account.updated}, {@code account.updated}, {@code application_fee.created},
* {@code application_fee.refund.updated}, {@code application_fee.refunded}, {@code
- * balance.available}, {@code billing.alert.triggered}, {@code
+ * balance.available}, {@code balance_settings.updated}, {@code billing.alert.triggered}, {@code
* billing_portal.configuration.created}, {@code billing_portal.configuration.updated}, {@code
* billing_portal.session.created}, {@code capability.updated}, {@code
* cash_balance.funds_available}, {@code charge.captured}, {@code charge.dispute.closed}, {@code
@@ -141,7 +141,8 @@ public class Event extends ApiResource implements HasId {
* identity.verification_session.verified}, {@code invoice.created}, {@code invoice.deleted},
* {@code invoice.finalization_failed}, {@code invoice.finalized}, {@code
* invoice.marked_uncollectible}, {@code invoice.overdue}, {@code invoice.overpaid}, {@code
- * invoice.paid}, {@code invoice.payment_action_required}, {@code invoice.payment_failed}, {@code
+ * invoice.paid}, {@code invoice.payment_action_required}, {@code
+ * invoice.payment_attempt_required}, {@code invoice.payment_failed}, {@code
* invoice.payment_succeeded}, {@code invoice.sent}, {@code invoice.upcoming}, {@code
* invoice.updated}, {@code invoice.voided}, {@code invoice.will_be_due}, {@code
* invoice_payment.paid}, {@code invoiceitem.created}, {@code invoiceitem.deleted}, {@code
diff --git a/src/main/java/com/stripe/model/EventDataClassLookup.java b/src/main/java/com/stripe/model/EventDataClassLookup.java
index 20b214eed72..7449b2bf619 100644
--- a/src/main/java/com/stripe/model/EventDataClassLookup.java
+++ b/src/main/java/com/stripe/model/EventDataClassLookup.java
@@ -58,12 +58,17 @@ public final class EventDataClassLookup {
classLookup.put("line_item", com.stripe.model.InvoiceLineItem.class);
classLookup.put("login_link", com.stripe.model.LoginLink.class);
classLookup.put("mandate", com.stripe.model.Mandate.class);
+ classLookup.put("payment_attempt_record", com.stripe.model.PaymentAttemptRecord.class);
classLookup.put("payment_intent", com.stripe.model.PaymentIntent.class);
+ classLookup.put(
+ "payment_intent_amount_details_line_item",
+ com.stripe.model.PaymentIntentAmountDetailsLineItem.class);
classLookup.put("payment_link", com.stripe.model.PaymentLink.class);
classLookup.put("payment_method", com.stripe.model.PaymentMethod.class);
classLookup.put(
"payment_method_configuration", com.stripe.model.PaymentMethodConfiguration.class);
classLookup.put("payment_method_domain", com.stripe.model.PaymentMethodDomain.class);
+ classLookup.put("payment_record", com.stripe.model.PaymentRecord.class);
classLookup.put("payout", com.stripe.model.Payout.class);
classLookup.put("person", com.stripe.model.Person.class);
classLookup.put("plan", com.stripe.model.Plan.class);
diff --git a/src/main/java/com/stripe/model/File.java b/src/main/java/com/stripe/model/File.java
index 39b436af72a..f11567995b5 100644
--- a/src/main/java/com/stripe/model/File.java
+++ b/src/main/java/com/stripe/model/File.java
@@ -70,8 +70,9 @@ public class File extends ApiResource implements HasId {
* document_provider_identity_document}, {@code finance_report_run}, {@code
* financial_account_statement}, {@code identity_document}, {@code
* identity_document_downloadable}, {@code issuing_regulatory_reporting}, {@code pci_document},
- * {@code selfie}, {@code sigma_scheduled_query}, {@code tax_document_user_upload}, {@code
- * terminal_android_apk}, or {@code terminal_reader_splashscreen}.
+ * {@code platform_terms_of_service}, {@code selfie}, {@code sigma_scheduled_query}, {@code
+ * tax_document_user_upload}, {@code terminal_android_apk}, or {@code
+ * terminal_reader_splashscreen}.
*/
@SerializedName("purpose")
String purpose;
diff --git a/src/main/java/com/stripe/model/InvoicePayment.java b/src/main/java/com/stripe/model/InvoicePayment.java
index eba29cef181..300ebea267f 100644
--- a/src/main/java/com/stripe/model/InvoicePayment.java
+++ b/src/main/java/com/stripe/model/InvoicePayment.java
@@ -232,6 +232,15 @@ public static class Payment extends StripeObject {
@Setter(lombok.AccessLevel.NONE)
ExpandableField One of {@code off_session}, or {@code on_session}.
+ */
+ @SerializedName("customer_presence")
+ String customerPresence;
+
+ /** An arbitrary string attached to the object. Often useful for displaying to users. */
+ @SerializedName("description")
+ String description;
+
+ /** Unique identifier for the object. */
+ @Getter(onMethod_ = {@Override})
+ @SerializedName("id")
+ String id;
+
+ /**
+ * Has the value {@code true} if the object exists in live mode or the value {@code false} if the
+ * object exists in test mode.
+ */
+ @SerializedName("livemode")
+ Boolean livemode;
+
+ /**
+ * Set of key-value pairs that you can attach
+ * to an object. This can be useful for storing additional information about the object in a
+ * structured format.
+ */
+ @SerializedName("metadata")
+ Map Equal to {@code payment_attempt_record}.
+ */
+ @SerializedName("object")
+ String object;
+
+ /** Information about the Payment Method debited for this payment. */
+ @SerializedName("payment_method_details")
+ PaymentMethodDetails paymentMethodDetails;
+
+ /** ID of the Payment Record this Payment Attempt Record belongs to. */
+ @SerializedName("payment_record")
+ String paymentRecord;
+
+ /** Processor information associated with this payment. */
+ @SerializedName("processor_details")
+ ProcessorDetails processorDetails;
+
+ /**
+ * Indicates who reported the payment.
+ *
+ * One of {@code self}, or {@code stripe}.
+ */
+ @SerializedName("reported_by")
+ String reportedBy;
+
+ /** Shipping information for this payment. */
+ @SerializedName("shipping_details")
+ ShippingDetails shippingDetails;
+
+ /** List all the Payment Attempt Records attached to the specified Payment Record. */
+ public static PaymentAttemptRecordCollection list(Map One of {@code company}, or {@code individual}.
+ */
+ @SerializedName("account_holder_type")
+ String accountHolderType;
+
+ /** Name of the bank associated with the bank account. */
+ @SerializedName("bank_name")
+ String bankName;
+
+ /** Two-letter ISO code representing the country the bank account is located in. */
+ @SerializedName("country")
+ String country;
+
+ /**
+ * Uniquely identifies this particular bank account. You can use this attribute to check
+ * whether two bank accounts are the same.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /** Last four digits of the bank account number. */
+ @SerializedName("last4")
+ String last4;
+
+ /** Routing transit number of the bank account. */
+ @SerializedName("routing_number")
+ String routingNumber;
+ }
+
+ /**
+ * For more details about AcssDebit, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class AcssDebit extends StripeObject {
+ /** Name of the bank associated with the bank account. */
+ @SerializedName("bank_name")
+ String bankName;
+
+ /**
+ * Uniquely identifies this particular bank account. You can use this attribute to check
+ * whether two bank accounts are the same.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /** Institution number of the bank account. */
+ @SerializedName("institution_number")
+ String institutionNumber;
+
+ /** Last four digits of the bank account number. */
+ @SerializedName("last4")
+ String last4;
+
+ /** ID of the mandate used to make this payment. */
+ @SerializedName("mandate")
+ String mandate;
+
+ /** Transit number of the bank account. */
+ @SerializedName("transit_number")
+ String transitNumber;
+ }
+
+ /**
+ * For more details about Affirm, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Affirm extends StripeObject {
+ /**
+ * ID of the location that this
+ * transaction's reader is assigned to.
+ */
+ @SerializedName("location")
+ String location;
+
+ /**
+ * ID of the reader this
+ * transaction was made on.
+ */
+ @SerializedName("reader")
+ String reader;
+
+ /** The Affirm transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about AfterpayClearpay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class AfterpayClearpay extends StripeObject {
+ /** The Afterpay order ID associated with this payment intent. */
+ @SerializedName("order_id")
+ String orderId;
+
+ /** Order identifier shown to the merchant in Afterpay’s online portal. */
+ @SerializedName("reference")
+ String reference;
+ }
+
+ /**
+ * For more details about Alipay, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Alipay extends StripeObject {
+ /**
+ * Uniquely identifies this particular Alipay account. You can use this attribute to check
+ * whether two Alipay accounts are the same.
+ */
+ @SerializedName("buyer_id")
+ String buyerId;
+
+ /**
+ * Uniquely identifies this particular Alipay account. You can use this attribute to check
+ * whether two Alipay accounts are the same.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /** Transaction ID of this particular Alipay transaction. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about Alma, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Alma extends StripeObject {
+ @SerializedName("installments")
+ Installments installments;
+
+ /** The Alma transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+
+ /**
+ * For more details about Installments, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Installments extends StripeObject {
+ /** The number of installments. */
+ @SerializedName("count")
+ Long count;
+ }
+ }
+
+ /**
+ * For more details about AmazonPay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class AmazonPay extends StripeObject {
+ @SerializedName("funding")
+ Funding funding;
+
+ /** The Amazon Pay transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+
+ /**
+ * For more details about Funding, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Funding extends StripeObject {
+ @SerializedName("card")
+ Card card;
+
+ /**
+ * funding type of the underlying payment method.
+ *
+ * Equal to {@code card}.
+ */
+ @SerializedName("type")
+ String type;
+
+ /**
+ * For more details about Card, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Card extends StripeObject {
+ /**
+ * Card brand. Can be {@code amex}, {@code cartes_bancaires}, {@code diners}, {@code
+ * discover}, {@code eftpos_au}, {@code jcb}, {@code link}, {@code mastercard}, {@code
+ * unionpay}, {@code visa} or {@code unknown}.
+ */
+ @SerializedName("brand")
+ String brand;
+
+ /**
+ * Two-letter ISO code representing the country of the card. You could use this attribute
+ * to get a sense of the international breakdown of cards you've collected.
+ */
+ @SerializedName("country")
+ String country;
+
+ /** Two-digit number representing the card's expiration month. */
+ @SerializedName("exp_month")
+ Long expMonth;
+
+ /** Four-digit number representing the card's expiration year. */
+ @SerializedName("exp_year")
+ Long expYear;
+
+ /**
+ * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
+ * unknown}.
+ */
+ @SerializedName("funding")
+ String funding;
+
+ /** The last four digits of the card. */
+ @SerializedName("last4")
+ String last4;
+ }
+ }
+ }
+
+ /**
+ * For more details about AuBecsDebit, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class AuBecsDebit extends StripeObject {
+ /** Bank-State-Branch number of the bank account. */
+ @SerializedName("bsb_number")
+ String bsbNumber;
+
+ /**
+ * Uniquely identifies this particular bank account. You can use this attribute to check
+ * whether two bank accounts are the same.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /** Last four digits of the bank account number. */
+ @SerializedName("last4")
+ String last4;
+
+ /** ID of the mandate used to make this payment. */
+ @SerializedName("mandate")
+ String mandate;
+ }
+
+ /**
+ * For more details about BacsDebit, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class BacsDebit extends StripeObject {
+ /**
+ * Uniquely identifies this particular bank account. You can use this attribute to check
+ * whether two bank accounts are the same.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /** Last four digits of the bank account number. */
+ @SerializedName("last4")
+ String last4;
+
+ /** ID of the mandate used to make this payment. */
+ @SerializedName("mandate")
+ String mandate;
+
+ /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
+ @SerializedName("sort_code")
+ String sortCode;
+ }
+
+ /**
+ * For more details about Bancontact, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Bancontact extends StripeObject {
+ /** Bank code of bank associated with the bank account. */
+ @SerializedName("bank_code")
+ String bankCode;
+
+ /** Name of the bank associated with the bank account. */
+ @SerializedName("bank_name")
+ String bankName;
+
+ /** Bank Identifier Code of the bank associated with the bank account. */
+ @SerializedName("bic")
+ String bic;
+
+ /** The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
+ @SerializedName("generated_sepa_debit")
+ @Getter(lombok.AccessLevel.NONE)
+ @Setter(lombok.AccessLevel.NONE)
+ ExpandableField As of May 1, 2021, card fingerprint in India for Connect changed to allow two
+ * fingerprints for the same card---one for India and one for the rest of the world.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /**
+ * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
+ * unknown}.
+ */
+ @SerializedName("funding")
+ String funding;
+
+ /** The last four digits of the card. */
+ @SerializedName("last4")
+ String last4;
+
+ /** True if this payment was marked as MOTO and out of scope for SCA. */
+ @SerializedName("moto")
+ Boolean moto;
+
+ /**
+ * Identifies which network this charge was processed on. Can be {@code amex}, {@code
+ * cartes_bancaires}, {@code diners}, {@code discover}, {@code eftpos_au}, {@code interac},
+ * {@code jcb}, {@code link}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code
+ * unknown}.
+ */
+ @SerializedName("network")
+ String network;
+
+ /**
+ * If this card has network token credentials, this contains the details of the network token
+ * credentials.
+ */
+ @SerializedName("network_token")
+ NetworkToken networkToken;
+
+ /**
+ * This is used by the financial networks to identify a transaction. Visa calls this the
+ * Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
+ * Acquirer Reference Data. This value will be present if it is returned by the financial
+ * network in the authorization response, and null otherwise.
+ */
+ @SerializedName("network_transaction_id")
+ String networkTransactionId;
+
+ /** Populated if this transaction used 3D Secure authentication. */
+ @SerializedName("three_d_secure")
+ ThreeDSecure threeDSecure;
+
+ /** If this Card is part of a card wallet, this contains the details of the card wallet. */
+ @SerializedName("wallet")
+ Wallet wallet;
+
+ /**
+ * For more details about Checks, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Checks extends StripeObject {
+ @SerializedName("address_line1_check")
+ String addressLine1Check;
+
+ @SerializedName("address_postal_code_check")
+ String addressPostalCodeCheck;
+
+ @SerializedName("cvc_check")
+ String cvcCheck;
+ }
+
+ /**
+ * For more details about NetworkToken, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class NetworkToken extends StripeObject {
+ /**
+ * Indicates if Stripe used a network token, either user provided or Stripe managed when
+ * processing the transaction.
+ */
+ @SerializedName("used")
+ Boolean used;
+ }
+
+ /**
+ * For more details about ThreeDSecure, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class ThreeDSecure extends StripeObject {
+ @SerializedName("authentication_flow")
+ String authenticationFlow;
+
+ @SerializedName("result")
+ String result;
+
+ @SerializedName("result_reason")
+ String resultReason;
+
+ @SerializedName("version")
+ String version;
+ }
+
+ /**
+ * For more details about Wallet, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Wallet extends StripeObject {
+ @SerializedName("apple_pay")
+ ApplePay applePay;
+
+ /** (For tokenized numbers only.) The last four digits of the device account number. */
+ @SerializedName("dynamic_last4")
+ String dynamicLast4;
+
+ @SerializedName("google_pay")
+ GooglePay googlePay;
+
+ /**
+ * The type of the card wallet, one of {@code apple_pay} or {@code google_pay}. An
+ * additional hash is included on the Wallet subhash with a name matching this value. It
+ * contains additional information specific to the card wallet type.
+ */
+ @SerializedName("type")
+ String type;
+
+ /**
+ * For more details about ApplePay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class ApplePay extends StripeObject {
+ /**
+ * Type of the apple_pay transaction, one of {@code apple_pay} or {@code apple_pay_later}.
+ */
+ @SerializedName("type")
+ String type;
+ }
+
+ /**
+ * For more details about GooglePay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class GooglePay extends StripeObject {}
+ }
+ }
+
+ /**
+ * For more details about CardPresent, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class CardPresent extends StripeObject {
+ /** The authorized amount. */
+ @SerializedName("amount_authorized")
+ Long amountAuthorized;
+
+ /**
+ * Card brand. Can be {@code amex}, {@code cartes_bancaires}, {@code diners}, {@code
+ * discover}, {@code eftpos_au}, {@code jcb}, {@code link}, {@code mastercard}, {@code
+ * unionpay}, {@code visa} or {@code unknown}.
+ */
+ @SerializedName("brand")
+ String brand;
+
+ /**
+ * The product code that identifies
+ * the specific program or product associated with a card.
+ */
+ @SerializedName("brand_product")
+ String brandProduct;
+
+ /**
+ * When using manual capture, a future timestamp after which the charge will be automatically
+ * refunded if uncaptured.
+ */
+ @SerializedName("capture_before")
+ Long captureBefore;
+
+ /**
+ * The cardholder name as read from the card, in ISO 7813 format. May include
+ * alphanumeric characters, special characters and first/last name separator ({@code /}). In
+ * some cases, the cardholder name may not be available depending on how the issuer has
+ * configured the card. Cardholder name is typically not available on swipe or contactless
+ * payments, such as those made with Apple Pay and Google Pay.
+ */
+ @SerializedName("cardholder_name")
+ String cardholderName;
+
+ /**
+ * Two-letter ISO code representing the country of the card. You could use this attribute to
+ * get a sense of the international breakdown of cards you've collected.
+ */
+ @SerializedName("country")
+ String country;
+
+ /**
+ * A high-level description of the type of cards issued in this range. (For internal use only
+ * and not typically available in standard API requests.)
+ */
+ @SerializedName("description")
+ String description;
+
+ /** Authorization response cryptogram. */
+ @SerializedName("emv_auth_data")
+ String emvAuthData;
+
+ /** Two-digit number representing the card's expiration month. */
+ @SerializedName("exp_month")
+ Long expMonth;
+
+ /** Four-digit number representing the card's expiration year. */
+ @SerializedName("exp_year")
+ Long expYear;
+
+ /**
+ * Uniquely identifies this particular card number. You can use this attribute to check
+ * whether two customers who’ve signed up with you are using the same card number, for
+ * example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
+ * tokenized number might be provided instead of the underlying card number.
+ *
+ * As of May 1, 2021, card fingerprint in India for Connect changed to allow two
+ * fingerprints for the same card---one for India and one for the rest of the world.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /**
+ * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
+ * unknown}.
+ */
+ @SerializedName("funding")
+ String funding;
+
+ /**
+ * ID of a card PaymentMethod generated from the card_present PaymentMethod that may be
+ * attached to a Customer for future transactions. Only present if it was possible to generate
+ * a card PaymentMethod.
+ */
+ @SerializedName("generated_card")
+ String generatedCard;
+
+ /**
+ * Issuer identification number of the card. (For internal use only and not typically
+ * available in standard API requests.)
+ */
+ @SerializedName("iin")
+ String iin;
+
+ /**
+ * Whether this PaymentIntent is
+ * eligible for incremental authorizations. Request support using request_incremental_authorization_support.
+ */
+ @SerializedName("incremental_authorization_supported")
+ Boolean incrementalAuthorizationSupported;
+
+ /**
+ * The name of the card's issuing bank. (For internal use only and not typically available in
+ * standard API requests.)
+ */
+ @SerializedName("issuer")
+ String issuer;
+
+ /** The last four digits of the card. */
+ @SerializedName("last4")
+ String last4;
+
+ /**
+ * Identifies which network this charge was processed on. Can be {@code amex}, {@code
+ * cartes_bancaires}, {@code diners}, {@code discover}, {@code eftpos_au}, {@code interac},
+ * {@code jcb}, {@code link}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code
+ * unknown}.
+ */
+ @SerializedName("network")
+ String network;
+
+ /**
+ * This is used by the financial networks to identify a transaction. Visa calls this the
+ * Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
+ * Acquirer Reference Data. This value will be present if it is returned by the financial
+ * network in the authorization response, and null otherwise.
+ */
+ @SerializedName("network_transaction_id")
+ String networkTransactionId;
+
+ /** Details about payments collected offline. */
+ @SerializedName("offline")
+ Offline offline;
+
+ /** Defines whether the authorized amount can be over-captured or not. */
+ @SerializedName("overcapture_supported")
+ Boolean overcaptureSupported;
+
+ /**
+ * The languages that the issuing bank recommends using for localizing any customer-facing
+ * text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's chip.
+ */
+ @SerializedName("preferred_locales")
+ List One of {@code contact_emv}, {@code contactless_emv}, {@code contactless_magstripe_mode},
+ * {@code magnetic_stripe_fallback}, or {@code magnetic_stripe_track2}.
+ */
+ @SerializedName("read_method")
+ String readMethod;
+
+ /**
+ * A collection of fields required to be displayed on receipts. Only required for EMV
+ * transactions.
+ */
+ @SerializedName("receipt")
+ Receipt receipt;
+
+ @SerializedName("wallet")
+ Wallet wallet;
+
+ /**
+ * For more details about Offline, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Offline extends StripeObject {
+ /** Time at which the payment was collected while offline. */
+ @SerializedName("stored_at")
+ Long storedAt;
+
+ /**
+ * The method used to process this payment method offline. Only deferred is allowed.
+ *
+ * Equal to {@code deferred}.
+ */
+ @SerializedName("type")
+ String type;
+ }
+
+ /**
+ * For more details about Receipt, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Receipt extends StripeObject {
+ /**
+ * The type of account being debited or credited
+ *
+ * One of {@code checking}, {@code credit}, {@code prepaid}, or {@code unknown}.
+ */
+ @SerializedName("account_type")
+ String accountType;
+
+ /**
+ * The Application Cryptogram, a unique value generated by the card to authenticate the
+ * transaction with issuers.
+ */
+ @SerializedName("application_cryptogram")
+ String applicationCryptogram;
+
+ /**
+ * The Application Identifier (AID) on the card used to determine which networks are
+ * eligible to process the transaction. Referenced from EMV tag 9F12, data encoded on the
+ * card's chip.
+ */
+ @SerializedName("application_preferred_name")
+ String applicationPreferredName;
+
+ /** Identifier for this transaction. */
+ @SerializedName("authorization_code")
+ String authorizationCode;
+
+ /** EMV tag 8A. A code returned by the card issuer. */
+ @SerializedName("authorization_response_code")
+ String authorizationResponseCode;
+
+ /**
+ * Describes the method used by the cardholder to verify ownership of the card. One of the
+ * following: {@code approval}, {@code failure}, {@code none}, {@code offline_pin}, {@code
+ * offline_pin_and_signature}, {@code online_pin}, or {@code signature}.
+ */
+ @SerializedName("cardholder_verification_method")
+ String cardholderVerificationMethod;
+
+ /**
+ * Similar to the application_preferred_name, identifying the applications (AIDs) available
+ * on the card. Referenced from EMV tag 84.
+ */
+ @SerializedName("dedicated_file_name")
+ String dedicatedFileName;
+
+ /**
+ * A 5-byte string that records the checks and validations that occur between the card and
+ * the terminal. These checks determine how the terminal processes the transaction and what
+ * risk tolerance is acceptable. Referenced from EMV Tag 95.
+ */
+ @SerializedName("terminal_verification_results")
+ String terminalVerificationResults;
+
+ /**
+ * An indication of which steps were completed during the card read process. Referenced from
+ * EMV Tag 9B.
+ */
+ @SerializedName("transaction_status_information")
+ String transactionStatusInformation;
+ }
+
+ /**
+ * For more details about Wallet, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Wallet extends StripeObject {
+ /**
+ * The type of mobile wallet, one of {@code apple_pay}, {@code google_pay}, {@code
+ * samsung_pay}, or {@code unknown}.
+ */
+ @SerializedName("type")
+ String type;
+ }
+ }
+
+ /**
+ * For more details about Cashapp, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Cashapp extends StripeObject {
+ /** A unique and immutable identifier assigned by Cash App to every buyer. */
+ @SerializedName("buyer_id")
+ String buyerId;
+
+ /** A public identifier for buyers using Cash App. */
+ @SerializedName("cashtag")
+ String cashtag;
+
+ /** A unique and immutable identifier of payments assigned by Cash App. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about Crypto, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Crypto extends StripeObject {
+ /** The wallet address of the customer. */
+ @SerializedName("buyer_address")
+ String buyerAddress;
+
+ /**
+ * The blockchain network that the transaction was sent on.
+ *
+ * One of {@code base}, {@code ethereum}, {@code polygon}, or {@code solana}.
+ */
+ @SerializedName("network")
+ String network;
+
+ /**
+ * The token currency that the transaction was sent with.
+ *
+ * One of {@code usdc}, {@code usdg}, or {@code usdp}.
+ */
+ @SerializedName("token_currency")
+ String tokenCurrency;
+
+ /** The blockchain transaction hash of the crypto payment. */
+ @SerializedName("transaction_hash")
+ String transactionHash;
+ }
+
+ /**
+ * Custom Payment Methods represent Payment Method types not modeled directly in the Stripe API.
+ * This resource consists of details about the custom payment method used for this payment
+ * attempt.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Custom extends StripeObject {
+ /**
+ * Display name for the custom (user-defined) payment method type used to make this payment.
+ */
+ @SerializedName("display_name")
+ String displayName;
+
+ /** The custom payment method type associated with this payment. */
+ @SerializedName("type")
+ String type;
+ }
+
+ /**
+ * For more details about CustomerBalance, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class CustomerBalance extends StripeObject {}
+
+ /**
+ * For more details about Eps, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Eps extends StripeObject {
+ /**
+ * The customer's bank. Should be one of {@code arzte_und_apotheker_bank}, {@code
+ * austrian_anadi_bank_ag}, {@code bank_austria}, {@code bankhaus_carl_spangler}, {@code
+ * bankhaus_schelhammer_und_schattera_ag}, {@code bawag_psk_ag}, {@code bks_bank_ag}, {@code
+ * brull_kallmus_bank_ag}, {@code btv_vier_lander_bank}, {@code capital_bank_grawe_gruppe_ag},
+ * {@code deutsche_bank_ag}, {@code dolomitenbank}, {@code easybank_ag}, {@code
+ * erste_bank_und_sparkassen}, {@code hypo_alpeadriabank_international_ag}, {@code
+ * hypo_noe_lb_fur_niederosterreich_u_wien}, {@code hypo_oberosterreich_salzburg_steiermark},
+ * {@code hypo_tirol_bank_ag}, {@code hypo_vorarlberg_bank_ag}, {@code
+ * hypo_bank_burgenland_aktiengesellschaft}, {@code marchfelder_bank}, {@code oberbank_ag},
+ * {@code raiffeisen_bankengruppe_osterreich}, {@code schoellerbank_ag}, {@code
+ * sparda_bank_wien}, {@code volksbank_gruppe}, {@code volkskreditbank_ag}, or {@code
+ * vr_bank_braunau}.
+ */
+ @SerializedName("bank")
+ String bank;
+
+ /**
+ * Owner's verified full name. Values are verified or provided by EPS directly (if supported)
+ * at the time of authorization or settlement. They cannot be set or mutated. EPS rarely
+ * provides this information so the attribute is usually empty.
+ */
+ @SerializedName("verified_name")
+ String verifiedName;
+ }
+
+ /**
+ * For more details about Fpx, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Fpx extends StripeObject {
+ /** Account holder type, if provided. Can be one of {@code individual} or {@code company}. */
+ @SerializedName("account_holder_type")
+ String accountHolderType;
+
+ /**
+ * The customer's bank. Can be one of {@code affin_bank}, {@code agrobank}, {@code
+ * alliance_bank}, {@code ambank}, {@code bank_islam}, {@code bank_muamalat}, {@code
+ * bank_rakyat}, {@code bsn}, {@code cimb}, {@code hong_leong_bank}, {@code hsbc}, {@code
+ * kfh}, {@code maybank2u}, {@code ocbc}, {@code public_bank}, {@code rhb}, {@code
+ * standard_chartered}, {@code uob}, {@code deutsche_bank}, {@code maybank2e}, {@code
+ * pb_enterprise}, or {@code bank_of_china}.
+ */
+ @SerializedName("bank")
+ String bank;
+
+ /** Unique transaction id generated by FPX for every request from the merchant. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about Giropay, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Giropay extends StripeObject {
+ /** Bank code of bank associated with the bank account. */
+ @SerializedName("bank_code")
+ String bankCode;
+
+ /** Name of the bank associated with the bank account. */
+ @SerializedName("bank_name")
+ String bankName;
+
+ /** Bank Identifier Code of the bank associated with the bank account. */
+ @SerializedName("bic")
+ String bic;
+
+ /**
+ * Owner's verified full name. Values are verified or provided by Giropay directly (if
+ * supported) at the time of authorization or settlement. They cannot be set or mutated.
+ * Giropay rarely provides this information so the attribute is usually empty.
+ */
+ @SerializedName("verified_name")
+ String verifiedName;
+ }
+
+ /**
+ * For more details about Grabpay, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Grabpay extends StripeObject {
+ /** Unique transaction id generated by GrabPay. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about Ideal, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Ideal extends StripeObject {
+ /**
+ * The customer's bank. Can be one of {@code abn_amro}, {@code asn_bank}, {@code bunq}, {@code
+ * buut}, {@code handelsbanken}, {@code ing}, {@code knab}, {@code moneyou}, {@code n26},
+ * {@code nn}, {@code rabobank}, {@code regiobank}, {@code revolut}, {@code sns_bank}, {@code
+ * triodos_bank}, {@code van_lanschot}, or {@code yoursafe}.
+ */
+ @SerializedName("bank")
+ String bank;
+
+ /**
+ * The Bank Identifier Code of the customer's bank.
+ *
+ * One of {@code ABNANL2A}, {@code ASNBNL21}, {@code BITSNL2A}, {@code BUNQNL2A}, {@code
+ * BUUTNL2A}, {@code FVLBNL22}, {@code HANDNL2A}, {@code INGBNL2A}, {@code KNABNL2H}, {@code
+ * MOYONL21}, {@code NNBANL2G}, {@code NTSBDEB1}, {@code RABONL2U}, {@code RBRBNL21}, {@code
+ * REVOIE23}, {@code REVOLT21}, {@code SNSBNL2A}, or {@code TRIONL2U}.
+ */
+ @SerializedName("bic")
+ String bic;
+
+ /** The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
+ @SerializedName("generated_sepa_debit")
+ @Getter(lombok.AccessLevel.NONE)
+ @Setter(lombok.AccessLevel.NONE)
+ ExpandableField As of May 1, 2021, card fingerprint in India for Connect changed to allow two
+ * fingerprints for the same card---one for India and one for the rest of the world.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /**
+ * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
+ * unknown}.
+ */
+ @SerializedName("funding")
+ String funding;
+
+ /**
+ * ID of a card PaymentMethod generated from the card_present PaymentMethod that may be
+ * attached to a Customer for future transactions. Only present if it was possible to generate
+ * a card PaymentMethod.
+ */
+ @SerializedName("generated_card")
+ String generatedCard;
+
+ /**
+ * Issuer identification number of the card. (For internal use only and not typically
+ * available in standard API requests.)
+ */
+ @SerializedName("iin")
+ String iin;
+
+ /**
+ * The name of the card's issuing bank. (For internal use only and not typically available in
+ * standard API requests.)
+ */
+ @SerializedName("issuer")
+ String issuer;
+
+ /** The last four digits of the card. */
+ @SerializedName("last4")
+ String last4;
+
+ /**
+ * Identifies which network this charge was processed on. Can be {@code amex}, {@code
+ * cartes_bancaires}, {@code diners}, {@code discover}, {@code eftpos_au}, {@code interac},
+ * {@code jcb}, {@code link}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code
+ * unknown}.
+ */
+ @SerializedName("network")
+ String network;
+
+ /**
+ * This is used by the financial networks to identify a transaction. Visa calls this the
+ * Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
+ * Acquirer Reference Data. This value will be present if it is returned by the financial
+ * network in the authorization response, and null otherwise.
+ */
+ @SerializedName("network_transaction_id")
+ String networkTransactionId;
+
+ /**
+ * The languages that the issuing bank recommends using for localizing any customer-facing
+ * text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's chip.
+ */
+ @SerializedName("preferred_locales")
+ List One of {@code contact_emv}, {@code contactless_emv}, {@code contactless_magstripe_mode},
+ * {@code magnetic_stripe_fallback}, or {@code magnetic_stripe_track2}.
+ */
+ @SerializedName("read_method")
+ String readMethod;
+
+ /**
+ * A collection of fields required to be displayed on receipts. Only required for EMV
+ * transactions.
+ */
+ @SerializedName("receipt")
+ Receipt receipt;
+
+ /**
+ * For more details about Receipt, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Receipt extends StripeObject {
+ /**
+ * The type of account being debited or credited
+ *
+ * One of {@code checking}, {@code savings}, or {@code unknown}.
+ */
+ @SerializedName("account_type")
+ String accountType;
+
+ /**
+ * The Application Cryptogram, a unique value generated by the card to authenticate the
+ * transaction with issuers.
+ */
+ @SerializedName("application_cryptogram")
+ String applicationCryptogram;
+
+ /**
+ * The Application Identifier (AID) on the card used to determine which networks are
+ * eligible to process the transaction. Referenced from EMV tag 9F12, data encoded on the
+ * card's chip.
+ */
+ @SerializedName("application_preferred_name")
+ String applicationPreferredName;
+
+ /** Identifier for this transaction. */
+ @SerializedName("authorization_code")
+ String authorizationCode;
+
+ /** EMV tag 8A. A code returned by the card issuer. */
+ @SerializedName("authorization_response_code")
+ String authorizationResponseCode;
+
+ /**
+ * Describes the method used by the cardholder to verify ownership of the card. One of the
+ * following: {@code approval}, {@code failure}, {@code none}, {@code offline_pin}, {@code
+ * offline_pin_and_signature}, {@code online_pin}, or {@code signature}.
+ */
+ @SerializedName("cardholder_verification_method")
+ String cardholderVerificationMethod;
+
+ /**
+ * Similar to the application_preferred_name, identifying the applications (AIDs) available
+ * on the card. Referenced from EMV tag 84.
+ */
+ @SerializedName("dedicated_file_name")
+ String dedicatedFileName;
+
+ /**
+ * A 5-byte string that records the checks and validations that occur between the card and
+ * the terminal. These checks determine how the terminal processes the transaction and what
+ * risk tolerance is acceptable. Referenced from EMV Tag 95.
+ */
+ @SerializedName("terminal_verification_results")
+ String terminalVerificationResults;
+
+ /**
+ * An indication of which steps were completed during the card read process. Referenced from
+ * EMV Tag 9B.
+ */
+ @SerializedName("transaction_status_information")
+ String transactionStatusInformation;
+ }
+ }
+
+ /**
+ * For more details about KakaoPay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class KakaoPay extends StripeObject {
+ /** A unique identifier for the buyer as determined by the local payment processor. */
+ @SerializedName("buyer_id")
+ String buyerId;
+
+ /** The Kakao Pay transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about Klarna, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Klarna extends StripeObject {
+ /** The payer details for this transaction. */
+ @SerializedName("payer_details")
+ PayerDetails payerDetails;
+
+ /**
+ * The Klarna payment method used for this transaction. Can be one of {@code pay_later},
+ * {@code pay_now}, {@code pay_with_financing}, or {@code pay_in_installments}
+ */
+ @SerializedName("payment_method_category")
+ String paymentMethodCategory;
+
+ /**
+ * Preferred language of the Klarna authorization page that the customer is redirected to. Can
+ * be one of {@code de-AT}, {@code en-AT}, {@code nl-BE}, {@code fr-BE}, {@code en-BE}, {@code
+ * de-DE}, {@code en-DE}, {@code da-DK}, {@code en-DK}, {@code es-ES}, {@code en-ES}, {@code
+ * fi-FI}, {@code sv-FI}, {@code en-FI}, {@code en-GB}, {@code en-IE}, {@code it-IT}, {@code
+ * en-IT}, {@code nl-NL}, {@code en-NL}, {@code nb-NO}, {@code en-NO}, {@code sv-SE}, {@code
+ * en-SE}, {@code en-US}, {@code es-US}, {@code fr-FR}, {@code en-FR}, {@code cs-CZ}, {@code
+ * en-CZ}, {@code ro-RO}, {@code en-RO}, {@code el-GR}, {@code en-GR}, {@code en-AU}, {@code
+ * en-NZ}, {@code en-CA}, {@code fr-CA}, {@code pl-PL}, {@code en-PL}, {@code pt-PT}, {@code
+ * en-PT}, {@code de-CH}, {@code fr-CH}, {@code it-CH}, or {@code en-CH}
+ */
+ @SerializedName("preferred_locale")
+ String preferredLocale;
+
+ /**
+ * For more details about PayerDetails, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class PayerDetails extends StripeObject {
+ /** The payer's address. */
+ @SerializedName("address")
+ Address address;
+
+ /**
+ * For more details about Address, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Address extends StripeObject {
+ /** The payer address country. */
+ @SerializedName("country")
+ String country;
+ }
+ }
+ }
+
+ /**
+ * For more details about Konbini, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Konbini extends StripeObject {
+ /**
+ * If the payment succeeded, this contains the details of the convenience store where the
+ * payment was completed.
+ */
+ @SerializedName("store")
+ Store store;
+
+ /**
+ * For more details about Store, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Store extends StripeObject {
+ /**
+ * The name of the convenience store chain where the payment was completed.
+ *
+ * One of {@code familymart}, {@code lawson}, {@code ministop}, or {@code seicomart}.
+ */
+ @SerializedName("chain")
+ String chain;
+ }
+ }
+
+ /**
+ * For more details about KrCard, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class KrCard extends StripeObject {
+ /**
+ * The local credit or debit card brand.
+ *
+ * One of {@code bc}, {@code citi}, {@code hana}, {@code hyundai}, {@code jeju}, {@code
+ * jeonbuk}, {@code kakaobank}, {@code kbank}, {@code kdbbank}, {@code kookmin}, {@code
+ * kwangju}, {@code lotte}, {@code mg}, {@code nh}, {@code post}, {@code samsung}, {@code
+ * savingsbank}, {@code shinhan}, {@code shinhyup}, {@code suhyup}, {@code tossbank}, or
+ * {@code woori}.
+ */
+ @SerializedName("brand")
+ String brand;
+
+ /** A unique identifier for the buyer as determined by the local payment processor. */
+ @SerializedName("buyer_id")
+ String buyerId;
+
+ /** The last four digits of the card. This may not be present for American Express cards. */
+ @SerializedName("last4")
+ String last4;
+
+ /** The Korean Card transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about Link, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Link extends StripeObject {
+ /**
+ * Two-letter ISO code representing the funding source country beneath the Link payment. You
+ * could use this attribute to get a sense of international fees.
+ */
+ @SerializedName("country")
+ String country;
+ }
+
+ /**
+ * For more details about MbWay, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class MbWay extends StripeObject {}
+
+ /**
+ * For more details about Mobilepay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Mobilepay extends StripeObject {
+ /** Internal card details. */
+ @SerializedName("card")
+ Card card;
+
+ /**
+ * For more details about Card, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Card extends StripeObject {
+ /** Brand of the card used in the transaction. */
+ @SerializedName("brand")
+ String brand;
+
+ /** Two-letter ISO code representing the country of the card. */
+ @SerializedName("country")
+ String country;
+
+ /** Two digit number representing the card's expiration month. */
+ @SerializedName("exp_month")
+ Long expMonth;
+
+ /** Two digit number representing the card's expiration year. */
+ @SerializedName("exp_year")
+ Long expYear;
+
+ /** The last 4 digits of the card. */
+ @SerializedName("last4")
+ String last4;
+ }
+ }
+
+ /**
+ * For more details about Multibanco, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Multibanco extends StripeObject {
+ /** Entity number associated with this Multibanco payment. */
+ @SerializedName("entity")
+ String entity;
+
+ /** Reference number associated with this Multibanco payment. */
+ @SerializedName("reference")
+ String reference;
+ }
+
+ /**
+ * For more details about NaverPay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class NaverPay extends StripeObject {
+ /** A unique identifier for the buyer as determined by the local payment processor. */
+ @SerializedName("buyer_id")
+ String buyerId;
+
+ /** The Naver Pay transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about NzBankAccount, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class NzBankAccount extends StripeObject {
+ /**
+ * The name on the bank account. Only present if the account holder name is different from the
+ * name of the authorized signatory collected in the PaymentMethod’s billing details.
+ */
+ @SerializedName("account_holder_name")
+ String accountHolderName;
+
+ /** The numeric code for the bank account's bank. */
+ @SerializedName("bank_code")
+ String bankCode;
+
+ /** The name of the bank. */
+ @SerializedName("bank_name")
+ String bankName;
+
+ /** The numeric code for the bank account's bank branch. */
+ @SerializedName("branch_code")
+ String branchCode;
+
+ /** Last four digits of the bank account number. */
+ @SerializedName("last4")
+ String last4;
+
+ /** The suffix of the bank account number. */
+ @SerializedName("suffix")
+ String suffix;
+ }
+
+ /**
+ * For more details about Oxxo, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Oxxo extends StripeObject {
+ /** OXXO reference number. */
+ @SerializedName("number")
+ String number;
+ }
+
+ /**
+ * For more details about P24, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class P24 extends StripeObject {
+ /**
+ * The customer's bank. Can be one of {@code ing}, {@code citi_handlowy}, {@code
+ * tmobile_usbugi_bankowe}, {@code plus_bank}, {@code etransfer_pocztowy24}, {@code
+ * banki_spbdzielcze}, {@code bank_nowy_bfg_sa}, {@code getin_bank}, {@code velobank}, {@code
+ * blik}, {@code noble_pay}, {@code ideabank}, {@code envelobank}, {@code
+ * santander_przelew24}, {@code nest_przelew}, {@code mbank_mtransfer}, {@code inteligo},
+ * {@code pbac_z_ipko}, {@code bnp_paribas}, {@code credit_agricole}, {@code toyota_bank},
+ * {@code bank_pekao_sa}, {@code volkswagen_bank}, {@code bank_millennium}, {@code
+ * alior_bank}, or {@code boz}.
+ */
+ @SerializedName("bank")
+ String bank;
+
+ /** Unique reference for this Przelewy24 payment. */
+ @SerializedName("reference")
+ String reference;
+
+ /**
+ * Owner's verified full name. Values are verified or provided by Przelewy24 directly (if
+ * supported) at the time of authorization or settlement. They cannot be set or mutated.
+ * Przelewy24 rarely provides this information so the attribute is usually empty.
+ */
+ @SerializedName("verified_name")
+ String verifiedName;
+ }
+
+ /**
+ * For more details about PayByBank, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class PayByBank extends StripeObject {}
+
+ /**
+ * For more details about Payco, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Payco extends StripeObject {
+ /** A unique identifier for the buyer as determined by the local payment processor. */
+ @SerializedName("buyer_id")
+ String buyerId;
+
+ /** The Payco transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about Paynow, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Paynow extends StripeObject {
+ /**
+ * ID of the location that this
+ * transaction's reader is assigned to.
+ */
+ @SerializedName("location")
+ String location;
+
+ /**
+ * ID of the reader this
+ * transaction was made on.
+ */
+ @SerializedName("reader")
+ String reader;
+
+ /** Reference number associated with this PayNow payment. */
+ @SerializedName("reference")
+ String reference;
+ }
+
+ /**
+ * For more details about Paypal, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Paypal extends StripeObject {
+ /**
+ * Two-letter ISO code representing the buyer's country. Values are provided by PayPal
+ * directly (if supported) at the time of authorization or settlement. They cannot be set or
+ * mutated.
+ */
+ @SerializedName("country")
+ String country;
+
+ /**
+ * Owner's email. Values are provided by PayPal directly (if supported) at the time of
+ * authorization or settlement. They cannot be set or mutated.
+ */
+ @SerializedName("payer_email")
+ String payerEmail;
+
+ /** PayPal account PayerID. This identifier uniquely identifies the PayPal customer. */
+ @SerializedName("payer_id")
+ String payerId;
+
+ /**
+ * Owner's full name. Values provided by PayPal directly (if supported) at the time of
+ * authorization or settlement. They cannot be set or mutated.
+ */
+ @SerializedName("payer_name")
+ String payerName;
+
+ /**
+ * The level of protection offered as defined by PayPal Seller Protection for Merchants, for
+ * this transaction.
+ */
+ @SerializedName("seller_protection")
+ SellerProtection sellerProtection;
+
+ /** A unique ID generated by PayPal for this transaction. */
+ @SerializedName("transaction_id")
+ String transactionId;
+
+ /**
+ * For more details about SellerProtection, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class SellerProtection extends StripeObject {
+ /** An array of conditions that are covered for the transaction, if applicable. */
+ @SerializedName("dispute_categories")
+ List One of {@code eligible}, {@code not_eligible}, or {@code partially_eligible}.
+ */
+ @SerializedName("status")
+ String status;
+ }
+ }
+
+ /**
+ * For more details about Pix, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Pix extends StripeObject {
+ /** Unique transaction id generated by BCB. */
+ @SerializedName("bank_transaction_id")
+ String bankTransactionId;
+ }
+
+ /**
+ * For more details about Promptpay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Promptpay extends StripeObject {
+ /** Bill reference generated by PromptPay. */
+ @SerializedName("reference")
+ String reference;
+ }
+
+ /**
+ * For more details about RevolutPay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class RevolutPay extends StripeObject {
+ @SerializedName("funding")
+ Funding funding;
+
+ /** The Revolut Pay transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+
+ /**
+ * For more details about Funding, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Funding extends StripeObject {
+ @SerializedName("card")
+ Card card;
+
+ /**
+ * funding type of the underlying payment method.
+ *
+ * Equal to {@code card}.
+ */
+ @SerializedName("type")
+ String type;
+
+ /**
+ * For more details about Card, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Card extends StripeObject {
+ /**
+ * Card brand. Can be {@code amex}, {@code cartes_bancaires}, {@code diners}, {@code
+ * discover}, {@code eftpos_au}, {@code jcb}, {@code link}, {@code mastercard}, {@code
+ * unionpay}, {@code visa} or {@code unknown}.
+ */
+ @SerializedName("brand")
+ String brand;
+
+ /**
+ * Two-letter ISO code representing the country of the card. You could use this attribute
+ * to get a sense of the international breakdown of cards you've collected.
+ */
+ @SerializedName("country")
+ String country;
+
+ /** Two-digit number representing the card's expiration month. */
+ @SerializedName("exp_month")
+ Long expMonth;
+
+ /** Four-digit number representing the card's expiration year. */
+ @SerializedName("exp_year")
+ Long expYear;
+
+ /**
+ * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
+ * unknown}.
+ */
+ @SerializedName("funding")
+ String funding;
+
+ /** The last four digits of the card. */
+ @SerializedName("last4")
+ String last4;
+ }
+ }
+ }
+
+ /**
+ * For more details about SamsungPay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class SamsungPay extends StripeObject {
+ /** A unique identifier for the buyer as determined by the local payment processor. */
+ @SerializedName("buyer_id")
+ String buyerId;
+
+ /** The Samsung Pay transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about Satispay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Satispay extends StripeObject {
+ /** The Satispay transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about SepaCreditTransfer, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class SepaCreditTransfer extends StripeObject {
+ /** Name of the bank associated with the bank account. */
+ @SerializedName("bank_name")
+ String bankName;
+
+ /** Bank Identifier Code of the bank associated with the bank account. */
+ @SerializedName("bic")
+ String bic;
+
+ /** IBAN of the bank account to transfer funds to. */
+ @SerializedName("iban")
+ String iban;
+ }
+
+ /**
+ * For more details about SepaDebit, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class SepaDebit extends StripeObject {
+ /** Bank code of bank associated with the bank account. */
+ @SerializedName("bank_code")
+ String bankCode;
+
+ /** Branch code of bank associated with the bank account. */
+ @SerializedName("branch_code")
+ String branchCode;
+
+ /** Two-letter ISO code representing the country the bank account is located in. */
+ @SerializedName("country")
+ String country;
+
+ /**
+ * Uniquely identifies this particular bank account. You can use this attribute to check
+ * whether two bank accounts are the same.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /** Last four characters of the IBAN. */
+ @SerializedName("last4")
+ String last4;
+
+ /**
+ * Find the ID of the mandate used for this payment under the payment_method_details.sepa_debit.mandate
+ * property on the Charge. Use this mandate ID to retrieve the Mandate.
+ */
+ @SerializedName("mandate")
+ String mandate;
+ }
+
+ /**
+ * For more details about Sofort, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Sofort extends StripeObject {
+ /** Bank code of bank associated with the bank account. */
+ @SerializedName("bank_code")
+ String bankCode;
+
+ /** Name of the bank associated with the bank account. */
+ @SerializedName("bank_name")
+ String bankName;
+
+ /** Bank Identifier Code of the bank associated with the bank account. */
+ @SerializedName("bic")
+ String bic;
+
+ /** Two-letter ISO code representing the country the bank account is located in. */
+ @SerializedName("country")
+ String country;
+
+ /** The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
+ @SerializedName("generated_sepa_debit")
+ @Getter(lombok.AccessLevel.NONE)
+ @Setter(lombok.AccessLevel.NONE)
+ ExpandableField Equal to {@code custom}.
+ */
+ @SerializedName("type")
+ String type;
+
+ /**
+ * Custom processors represent payment processors not modeled directly in the Stripe API. This
+ * resource consists of details about the custom processor used for this payment attempt.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Custom extends StripeObject {
+ /**
+ * An opaque string for manual reconciliation of this payment, for example a check number or a
+ * payment processor ID.
+ */
+ @SerializedName("payment_reference")
+ String paymentReference;
+ }
+ }
+
+ /** The customer's shipping information associated with this payment. */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class ShippingDetails extends StripeObject {
+ /** A representation of a physical address. */
+ @SerializedName("address")
+ Address address;
+
+ /** The shipping recipient's name. */
+ @SerializedName("name")
+ String name;
+
+ /** The shipping recipient's phone number. */
+ @SerializedName("phone")
+ String phone;
+
+ /** A representation of a physical address. */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Address extends StripeObject {
+ /** City, district, suburb, town, or village. */
+ @SerializedName("city")
+ String city;
+
+ /**
+ * Two-letter country code (ISO
+ * 3166-1 alpha-2).
+ */
+ @SerializedName("country")
+ String country;
+
+ /** Address line 1, such as the street, PO Box, or company name. */
+ @SerializedName("line1")
+ String line1;
+
+ /** Address line 2, such as the apartment, suite, unit, or building. */
+ @SerializedName("line2")
+ String line2;
+
+ /** ZIP or postal code. */
+ @SerializedName("postal_code")
+ String postalCode;
+
+ /** State, county, province, or region. */
+ @SerializedName("state")
+ String state;
+ }
+ }
+
+ @Override
+ public void setResponseGetter(StripeResponseGetter responseGetter) {
+ super.setResponseGetter(responseGetter);
+ trySetResponseGetter(amount, responseGetter);
+ trySetResponseGetter(amountAuthorized, responseGetter);
+ trySetResponseGetter(amountCanceled, responseGetter);
+ trySetResponseGetter(amountFailed, responseGetter);
+ trySetResponseGetter(amountGuaranteed, responseGetter);
+ trySetResponseGetter(amountRefunded, responseGetter);
+ trySetResponseGetter(amountRequested, responseGetter);
+ trySetResponseGetter(customerDetails, responseGetter);
+ trySetResponseGetter(paymentMethodDetails, responseGetter);
+ trySetResponseGetter(processorDetails, responseGetter);
+ trySetResponseGetter(shippingDetails, responseGetter);
+ }
+}
diff --git a/src/main/java/com/stripe/model/PaymentAttemptRecordCollection.java b/src/main/java/com/stripe/model/PaymentAttemptRecordCollection.java
new file mode 100644
index 00000000000..4ed311a29ca
--- /dev/null
+++ b/src/main/java/com/stripe/model/PaymentAttemptRecordCollection.java
@@ -0,0 +1,4 @@
+// File generated from our OpenAPI spec
+package com.stripe.model;
+
+public class PaymentAttemptRecordCollection extends StripeCollection onBehalfOf;
+ @SerializedName("payment_details")
+ PaymentDetails paymentDetails;
+
/** ID of the payment method used in this PaymentIntent. */
@SerializedName("payment_method")
@Getter(lombok.AccessLevel.NONE)
@@ -1516,9 +1519,60 @@ public PaymentIntent verifyMicrodeposits(
@Setter
@EqualsAndHashCode(callSuper = false)
public static class AmountDetails extends StripeObject {
+ /** The total discount applied on the transaction. */
+ @SerializedName("discount_amount")
+ Long discountAmount;
+
+ /**
+ * A list of line items, each containing information about a product in the PaymentIntent. There
+ * is a maximum of 100 line items.
+ */
+ @SerializedName("line_items")
+ PaymentIntentAmountDetailsLineItemCollection lineItems;
+
+ @SerializedName("shipping")
+ Shipping shipping;
+
+ @SerializedName("tax")
+ Tax tax;
+
@SerializedName("tip")
Tip tip;
+ /**
+ * For more details about Shipping, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Shipping extends StripeObject {
+ /** Portion of the amount that is for shipping. */
+ @SerializedName("amount")
+ Long amount;
+
+ /** The postal code that represents the shipping source. */
+ @SerializedName("from_postal_code")
+ String fromPostalCode;
+
+ /** The postal code that represents the shipping destination. */
+ @SerializedName("to_postal_code")
+ String toPostalCode;
+ }
+
+ /**
+ * For more details about Tax, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Tax extends StripeObject {
+ /** Total portion of the amount that is for tax. */
+ @SerializedName("total_tax_amount")
+ Long totalTaxAmount;
+ }
+
/**
* For more details about Tip, please refer to the API
* Reference.
@@ -2497,6 +2551,26 @@ public static class WechatPayRedirectToIosApp extends StripeObject {
}
}
+ /**
+ * For more details about PaymentDetails, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class PaymentDetails extends StripeObject {
+ /**
+ * Some customers might be required by their company or organization to provide this
+ * information. If so, provide this value. Otherwise you can ignore this field.
+ */
+ @SerializedName("customer_reference")
+ String customerReference;
+
+ /** A unique value assigned by the business to identify the transaction. */
+ @SerializedName("order_reference")
+ String orderReference;
+ }
+
/**
* For more details about PaymentMethodConfigurationDetails, please refer to the API Reference.
@@ -5139,6 +5213,7 @@ public void setResponseGetter(StripeResponseGetter responseGetter) {
trySetResponseGetter(latestCharge, responseGetter);
trySetResponseGetter(nextAction, responseGetter);
trySetResponseGetter(onBehalfOf, responseGetter);
+ trySetResponseGetter(paymentDetails, responseGetter);
trySetResponseGetter(paymentMethod, responseGetter);
trySetResponseGetter(paymentMethodConfigurationDetails, responseGetter);
trySetResponseGetter(paymentMethodOptions, responseGetter);
diff --git a/src/main/java/com/stripe/model/PaymentIntentAmountDetailsLineItem.java b/src/main/java/com/stripe/model/PaymentIntentAmountDetailsLineItem.java
new file mode 100644
index 00000000000..6ca0911d59a
--- /dev/null
+++ b/src/main/java/com/stripe/model/PaymentIntentAmountDetailsLineItem.java
@@ -0,0 +1,225 @@
+// File generated from our OpenAPI spec
+package com.stripe.model;
+
+import com.google.gson.annotations.SerializedName;
+import com.stripe.exception.StripeException;
+import com.stripe.net.ApiRequest;
+import com.stripe.net.ApiRequestParams;
+import com.stripe.net.ApiResource;
+import com.stripe.net.BaseAddress;
+import com.stripe.net.RequestOptions;
+import com.stripe.net.StripeResponseGetter;
+import com.stripe.param.PaymentIntentAmountDetailsLineItemListParams;
+import java.util.Map;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@EqualsAndHashCode(callSuper = false)
+public class PaymentIntentAmountDetailsLineItem extends ApiResource implements HasId {
+ /** The amount an item was discounted for. Positive integer. */
+ @SerializedName("discount_amount")
+ Long discountAmount;
+
+ /** Unique identifier for the object. */
+ @Getter(onMethod_ = {@Override})
+ @SerializedName("id")
+ String id;
+
+ /**
+ * String representing the object's type. Objects of the same type share the same value.
+ *
+ * Equal to {@code payment_intent_amount_details_line_item}.
+ */
+ @SerializedName("object")
+ String object;
+
+ /** Payment method-specific information for line items. */
+ @SerializedName("payment_method_options")
+ PaymentMethodOptions paymentMethodOptions;
+
+ /** Unique identifier of the product. At most 12 characters long. */
+ @SerializedName("product_code")
+ String productCode;
+
+ /** Name of the product. At most 100 characters long. */
+ @SerializedName("product_name")
+ String productName;
+
+ /** Number of items of the product. Positive integer. */
+ @SerializedName("quantity")
+ Long quantity;
+
+ /** Contains information about the tax on the item. */
+ @SerializedName("tax")
+ Tax tax;
+
+ /** Cost of the product. Non-negative integer. */
+ @SerializedName("unit_cost")
+ Long unitCost;
+
+ /** A unit of measure for the line item, such as gallons, feet, meters, etc. */
+ @SerializedName("unit_of_measure")
+ String unitOfMeasure;
+
+ /** Lists all LineItems of a given PaymentIntent. */
+ public static PaymentIntentAmountDetailsLineItemCollection list(
+ String intent, Map One of {@code digital_goods}, {@code donation}, or {@code physical_goods}.
+ */
+ @SerializedName("category")
+ String category;
+
+ /** Description of the line item. */
+ @SerializedName("description")
+ String description;
+
+ /**
+ * The Stripe account ID of the connected account that sells the item. This is only needed
+ * when using Separate Charges and
+ * Transfers.
+ */
+ @SerializedName("sold_by")
+ String soldBy;
+ }
+ }
+
+ /**
+ * For more details about Tax, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Tax extends StripeObject {
+ /** Total portion of the amount that is for tax. */
+ @SerializedName("total_tax_amount")
+ Long totalTaxAmount;
+ }
+
+ @Override
+ public void setResponseGetter(StripeResponseGetter responseGetter) {
+ super.setResponseGetter(responseGetter);
+ trySetResponseGetter(paymentMethodOptions, responseGetter);
+ trySetResponseGetter(tax, responseGetter);
+ }
+}
diff --git a/src/main/java/com/stripe/model/PaymentIntentAmountDetailsLineItemCollection.java b/src/main/java/com/stripe/model/PaymentIntentAmountDetailsLineItemCollection.java
new file mode 100644
index 00000000000..a83124044e4
--- /dev/null
+++ b/src/main/java/com/stripe/model/PaymentIntentAmountDetailsLineItemCollection.java
@@ -0,0 +1,5 @@
+// File generated from our OpenAPI spec
+package com.stripe.model;
+
+public class PaymentIntentAmountDetailsLineItemCollection
+ extends StripeCollection One of {@code acss_debit}, {@code affirm}, {@code afterpay_clearpay}, {@code alipay}, {@code
* alma}, {@code amazon_pay}, {@code au_becs_debit}, {@code bacs_debit}, {@code bancontact},
* {@code billie}, {@code blik}, {@code boleto}, {@code card}, {@code card_present}, {@code
- * cashapp}, {@code crypto}, {@code customer_balance}, {@code eps}, {@code fpx}, {@code giropay},
- * {@code grabpay}, {@code ideal}, {@code interac_present}, {@code kakao_pay}, {@code klarna},
- * {@code konbini}, {@code kr_card}, {@code link}, {@code mb_way}, {@code mobilepay}, {@code
- * multibanco}, {@code naver_pay}, {@code nz_bank_account}, {@code oxxo}, {@code p24}, {@code
- * pay_by_bank}, {@code payco}, {@code paynow}, {@code paypal}, {@code pix}, {@code promptpay},
- * {@code revolut_pay}, {@code samsung_pay}, {@code satispay}, {@code sepa_debit}, {@code sofort},
- * {@code swish}, {@code twint}, {@code us_bank_account}, {@code wechat_pay}, or {@code zip}.
+ * cashapp}, {@code crypto}, {@code custom}, {@code customer_balance}, {@code eps}, {@code fpx},
+ * {@code giropay}, {@code grabpay}, {@code ideal}, {@code interac_present}, {@code kakao_pay},
+ * {@code klarna}, {@code konbini}, {@code kr_card}, {@code link}, {@code mb_way}, {@code
+ * mobilepay}, {@code multibanco}, {@code naver_pay}, {@code nz_bank_account}, {@code oxxo},
+ * {@code p24}, {@code pay_by_bank}, {@code payco}, {@code paynow}, {@code paypal}, {@code pix},
+ * {@code promptpay}, {@code revolut_pay}, {@code samsung_pay}, {@code satispay}, {@code
+ * sepa_debit}, {@code sofort}, {@code swish}, {@code twint}, {@code us_bank_account}, {@code
+ * wechat_pay}, or {@code zip}.
*/
@SerializedName("type")
String type;
@@ -1768,6 +1772,44 @@ public static class Cashapp extends StripeObject {
@EqualsAndHashCode(callSuper = false)
public static class Crypto extends StripeObject {}
+ /**
+ * For more details about Custom, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Custom extends StripeObject {
+ /** Display name of the Dashboard-only CustomPaymentMethodType. */
+ @SerializedName("display_name")
+ String displayName;
+
+ /** Contains information about the Dashboard-only CustomPaymentMethodType logo. */
+ @SerializedName("logo")
+ Logo logo;
+
+ /** ID of the Dashboard-only CustomPaymentMethodType. Not expandable. */
+ @SerializedName("type")
+ String type;
+
+ /**
+ * For more details about Logo, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Logo extends StripeObject {
+ /** Content type of the Dashboard-only CustomPaymentMethodType logo. */
+ @SerializedName("content_type")
+ String contentType;
+
+ /** URL of the Dashboard-only CustomPaymentMethodType logo. */
+ @SerializedName("url")
+ String url;
+ }
+ }
+
/**
* For more details about CustomerBalance, please refer to the API Reference.
@@ -2602,6 +2644,7 @@ public void setResponseGetter(StripeResponseGetter responseGetter) {
trySetResponseGetter(cardPresent, responseGetter);
trySetResponseGetter(cashapp, responseGetter);
trySetResponseGetter(crypto, responseGetter);
+ trySetResponseGetter(custom, responseGetter);
trySetResponseGetter(customer, responseGetter);
trySetResponseGetter(customerBalance, responseGetter);
trySetResponseGetter(eps, responseGetter);
diff --git a/src/main/java/com/stripe/model/PaymentMethodConfiguration.java b/src/main/java/com/stripe/model/PaymentMethodConfiguration.java
index ad21e06edf3..833a54b6497 100644
--- a/src/main/java/com/stripe/model/PaymentMethodConfiguration.java
+++ b/src/main/java/com/stripe/model/PaymentMethodConfiguration.java
@@ -108,6 +108,9 @@ public class PaymentMethodConfiguration extends ApiResource implements HasId {
@SerializedName("cashapp")
Cashapp cashapp;
+ @SerializedName("crypto")
+ Crypto crypto;
+
@SerializedName("customer_balance")
CustomerBalance customerBalance;
@@ -163,6 +166,9 @@ public class PaymentMethodConfiguration extends ApiResource implements HasId {
@SerializedName("livemode")
Boolean livemode;
+ @SerializedName("mb_way")
+ MbWay mbWay;
+
@SerializedName("mobilepay")
Mobilepay mobilepay;
@@ -1215,6 +1221,57 @@ public static class DisplayPreference extends StripeObject {
}
}
+ /**
+ * For more details about Crypto, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Crypto extends StripeObject {
+ /**
+ * Whether this payment method may be offered at checkout. True if {@code display_preference} is
+ * {@code on} and the payment method's capability is active.
+ */
+ @SerializedName("available")
+ Boolean available;
+
+ @SerializedName("display_preference")
+ DisplayPreference displayPreference;
+
+ /**
+ * For more details about DisplayPreference, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class DisplayPreference extends StripeObject {
+ /**
+ * For child configs, whether or not the account's preference will be observed. If {@code
+ * false}, the parent configuration's default is used.
+ */
+ @SerializedName("overridable")
+ Boolean overridable;
+
+ /**
+ * The account's display preference.
+ *
+ * One of {@code none}, {@code off}, or {@code on}.
+ */
+ @SerializedName("preference")
+ String preference;
+
+ /**
+ * The effective display preference value.
+ *
+ * One of {@code off}, or {@code on}.
+ */
+ @SerializedName("value")
+ String value;
+ }
+ }
+
/**
* For more details about CustomerBalance, please refer to the API Reference.
@@ -1878,6 +1935,57 @@ public static class DisplayPreference extends StripeObject {
}
}
+ /**
+ * For more details about MbWay, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class MbWay extends StripeObject {
+ /**
+ * Whether this payment method may be offered at checkout. True if {@code display_preference} is
+ * {@code on} and the payment method's capability is active.
+ */
+ @SerializedName("available")
+ Boolean available;
+
+ @SerializedName("display_preference")
+ DisplayPreference displayPreference;
+
+ /**
+ * For more details about DisplayPreference, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class DisplayPreference extends StripeObject {
+ /**
+ * For child configs, whether or not the account's preference will be observed. If {@code
+ * false}, the parent configuration's default is used.
+ */
+ @SerializedName("overridable")
+ Boolean overridable;
+
+ /**
+ * The account's display preference.
+ *
+ * One of {@code none}, {@code off}, or {@code on}.
+ */
+ @SerializedName("preference")
+ String preference;
+
+ /**
+ * The effective display preference value.
+ *
+ * One of {@code off}, or {@code on}.
+ */
+ @SerializedName("value")
+ String value;
+ }
+ }
+
/**
* For more details about Mobilepay, please refer to the API
* Reference.
@@ -3019,6 +3127,7 @@ public void setResponseGetter(StripeResponseGetter responseGetter) {
trySetResponseGetter(card, responseGetter);
trySetResponseGetter(cartesBancaires, responseGetter);
trySetResponseGetter(cashapp, responseGetter);
+ trySetResponseGetter(crypto, responseGetter);
trySetResponseGetter(customerBalance, responseGetter);
trySetResponseGetter(eps, responseGetter);
trySetResponseGetter(fpx, responseGetter);
@@ -3032,6 +3141,7 @@ public void setResponseGetter(StripeResponseGetter responseGetter) {
trySetResponseGetter(konbini, responseGetter);
trySetResponseGetter(krCard, responseGetter);
trySetResponseGetter(link, responseGetter);
+ trySetResponseGetter(mbWay, responseGetter);
trySetResponseGetter(mobilepay, responseGetter);
trySetResponseGetter(multibanco, responseGetter);
trySetResponseGetter(naverPay, responseGetter);
diff --git a/src/main/java/com/stripe/model/PaymentRecord.java b/src/main/java/com/stripe/model/PaymentRecord.java
new file mode 100644
index 00000000000..26756e7f90c
--- /dev/null
+++ b/src/main/java/com/stripe/model/PaymentRecord.java
@@ -0,0 +1,3383 @@
+// File generated from our OpenAPI spec
+package com.stripe.model;
+
+import com.google.gson.annotations.SerializedName;
+import com.stripe.exception.StripeException;
+import com.stripe.net.ApiRequest;
+import com.stripe.net.ApiRequestParams;
+import com.stripe.net.ApiResource;
+import com.stripe.net.BaseAddress;
+import com.stripe.net.RequestOptions;
+import com.stripe.net.StripeResponseGetter;
+import com.stripe.param.PaymentRecordReportPaymentAttemptCanceledParams;
+import com.stripe.param.PaymentRecordReportPaymentAttemptFailedParams;
+import com.stripe.param.PaymentRecordReportPaymentAttemptGuaranteedParams;
+import com.stripe.param.PaymentRecordReportPaymentAttemptInformationalParams;
+import com.stripe.param.PaymentRecordReportPaymentAttemptParams;
+import com.stripe.param.PaymentRecordReportPaymentParams;
+import com.stripe.param.PaymentRecordReportRefundParams;
+import com.stripe.param.PaymentRecordRetrieveParams;
+import java.util.List;
+import java.util.Map;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * A Payment Record is a resource that allows you to represent payments that occur on- or
+ * off-Stripe. For example, you can create a Payment Record to model a payment made on a different
+ * payment processor, in order to mark an Invoice as paid and a Subscription as active. Payment
+ * Records consist of one or more Payment Attempt Records, which represent individual attempts made
+ * on a payment network.
+ */
+@Getter
+@Setter
+@EqualsAndHashCode(callSuper = false)
+public class PaymentRecord extends ApiResource implements HasId {
+ /** A representation of an amount of money, consisting of an amount and a currency. */
+ @SerializedName("amount")
+ Amount amount;
+
+ /** A representation of an amount of money, consisting of an amount and a currency. */
+ @SerializedName("amount_authorized")
+ AmountAuthorized amountAuthorized;
+
+ /** A representation of an amount of money, consisting of an amount and a currency. */
+ @SerializedName("amount_canceled")
+ AmountCanceled amountCanceled;
+
+ /** A representation of an amount of money, consisting of an amount and a currency. */
+ @SerializedName("amount_failed")
+ AmountFailed amountFailed;
+
+ /** A representation of an amount of money, consisting of an amount and a currency. */
+ @SerializedName("amount_guaranteed")
+ AmountGuaranteed amountGuaranteed;
+
+ /** A representation of an amount of money, consisting of an amount and a currency. */
+ @SerializedName("amount_refunded")
+ AmountRefunded amountRefunded;
+
+ /** A representation of an amount of money, consisting of an amount and a currency. */
+ @SerializedName("amount_requested")
+ AmountRequested amountRequested;
+
+ /** ID of the Connect application that created the PaymentRecord. */
+ @SerializedName("application")
+ String application;
+
+ /** Time at which the object was created. Measured in seconds since the Unix epoch. */
+ @SerializedName("created")
+ Long created;
+
+ /** Customer information for this payment. */
+ @SerializedName("customer_details")
+ CustomerDetails customerDetails;
+
+ /**
+ * Indicates whether the customer was present in your checkout flow during this payment.
+ *
+ * One of {@code off_session}, or {@code on_session}.
+ */
+ @SerializedName("customer_presence")
+ String customerPresence;
+
+ /** An arbitrary string attached to the object. Often useful for displaying to users. */
+ @SerializedName("description")
+ String description;
+
+ /** Unique identifier for the object. */
+ @Getter(onMethod_ = {@Override})
+ @SerializedName("id")
+ String id;
+
+ /** ID of the latest Payment Attempt Record attached to this Payment Record. */
+ @SerializedName("latest_payment_attempt_record")
+ String latestPaymentAttemptRecord;
+
+ /**
+ * Has the value {@code true} if the object exists in live mode or the value {@code false} if the
+ * object exists in test mode.
+ */
+ @SerializedName("livemode")
+ Boolean livemode;
+
+ /**
+ * Set of key-value pairs that you can attach
+ * to an object. This can be useful for storing additional information about the object in a
+ * structured format.
+ */
+ @SerializedName("metadata")
+ Map Equal to {@code payment_record}.
+ */
+ @SerializedName("object")
+ String object;
+
+ /** Information about the Payment Method debited for this payment. */
+ @SerializedName("payment_method_details")
+ PaymentMethodDetails paymentMethodDetails;
+
+ /** Processor information associated with this payment. */
+ @SerializedName("processor_details")
+ ProcessorDetails processorDetails;
+
+ /** Shipping information for this payment. */
+ @SerializedName("shipping_details")
+ ShippingDetails shippingDetails;
+
+ /**
+ * Report a new Payment Record. You may report a Payment Record as it is initialized and later
+ * report updates through the other report_* methods, or report Payment Records in a terminal
+ * state directly, through this method.
+ */
+ public static PaymentRecord reportPayment(Map One of {@code company}, or {@code individual}.
+ */
+ @SerializedName("account_holder_type")
+ String accountHolderType;
+
+ /** Name of the bank associated with the bank account. */
+ @SerializedName("bank_name")
+ String bankName;
+
+ /** Two-letter ISO code representing the country the bank account is located in. */
+ @SerializedName("country")
+ String country;
+
+ /**
+ * Uniquely identifies this particular bank account. You can use this attribute to check
+ * whether two bank accounts are the same.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /** Last four digits of the bank account number. */
+ @SerializedName("last4")
+ String last4;
+
+ /** Routing transit number of the bank account. */
+ @SerializedName("routing_number")
+ String routingNumber;
+ }
+
+ /**
+ * For more details about AcssDebit, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class AcssDebit extends StripeObject {
+ /** Name of the bank associated with the bank account. */
+ @SerializedName("bank_name")
+ String bankName;
+
+ /**
+ * Uniquely identifies this particular bank account. You can use this attribute to check
+ * whether two bank accounts are the same.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /** Institution number of the bank account. */
+ @SerializedName("institution_number")
+ String institutionNumber;
+
+ /** Last four digits of the bank account number. */
+ @SerializedName("last4")
+ String last4;
+
+ /** ID of the mandate used to make this payment. */
+ @SerializedName("mandate")
+ String mandate;
+
+ /** Transit number of the bank account. */
+ @SerializedName("transit_number")
+ String transitNumber;
+ }
+
+ /**
+ * For more details about Affirm, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Affirm extends StripeObject {
+ /**
+ * ID of the location that this
+ * transaction's reader is assigned to.
+ */
+ @SerializedName("location")
+ String location;
+
+ /**
+ * ID of the reader this
+ * transaction was made on.
+ */
+ @SerializedName("reader")
+ String reader;
+
+ /** The Affirm transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about AfterpayClearpay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class AfterpayClearpay extends StripeObject {
+ /** The Afterpay order ID associated with this payment intent. */
+ @SerializedName("order_id")
+ String orderId;
+
+ /** Order identifier shown to the merchant in Afterpay’s online portal. */
+ @SerializedName("reference")
+ String reference;
+ }
+
+ /**
+ * For more details about Alipay, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Alipay extends StripeObject {
+ /**
+ * Uniquely identifies this particular Alipay account. You can use this attribute to check
+ * whether two Alipay accounts are the same.
+ */
+ @SerializedName("buyer_id")
+ String buyerId;
+
+ /**
+ * Uniquely identifies this particular Alipay account. You can use this attribute to check
+ * whether two Alipay accounts are the same.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /** Transaction ID of this particular Alipay transaction. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about Alma, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Alma extends StripeObject {
+ @SerializedName("installments")
+ Installments installments;
+
+ /** The Alma transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+
+ /**
+ * For more details about Installments, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Installments extends StripeObject {
+ /** The number of installments. */
+ @SerializedName("count")
+ Long count;
+ }
+ }
+
+ /**
+ * For more details about AmazonPay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class AmazonPay extends StripeObject {
+ @SerializedName("funding")
+ Funding funding;
+
+ /** The Amazon Pay transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+
+ /**
+ * For more details about Funding, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Funding extends StripeObject {
+ @SerializedName("card")
+ Card card;
+
+ /**
+ * funding type of the underlying payment method.
+ *
+ * Equal to {@code card}.
+ */
+ @SerializedName("type")
+ String type;
+
+ /**
+ * For more details about Card, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Card extends StripeObject {
+ /**
+ * Card brand. Can be {@code amex}, {@code cartes_bancaires}, {@code diners}, {@code
+ * discover}, {@code eftpos_au}, {@code jcb}, {@code link}, {@code mastercard}, {@code
+ * unionpay}, {@code visa} or {@code unknown}.
+ */
+ @SerializedName("brand")
+ String brand;
+
+ /**
+ * Two-letter ISO code representing the country of the card. You could use this attribute
+ * to get a sense of the international breakdown of cards you've collected.
+ */
+ @SerializedName("country")
+ String country;
+
+ /** Two-digit number representing the card's expiration month. */
+ @SerializedName("exp_month")
+ Long expMonth;
+
+ /** Four-digit number representing the card's expiration year. */
+ @SerializedName("exp_year")
+ Long expYear;
+
+ /**
+ * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
+ * unknown}.
+ */
+ @SerializedName("funding")
+ String funding;
+
+ /** The last four digits of the card. */
+ @SerializedName("last4")
+ String last4;
+ }
+ }
+ }
+
+ /**
+ * For more details about AuBecsDebit, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class AuBecsDebit extends StripeObject {
+ /** Bank-State-Branch number of the bank account. */
+ @SerializedName("bsb_number")
+ String bsbNumber;
+
+ /**
+ * Uniquely identifies this particular bank account. You can use this attribute to check
+ * whether two bank accounts are the same.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /** Last four digits of the bank account number. */
+ @SerializedName("last4")
+ String last4;
+
+ /** ID of the mandate used to make this payment. */
+ @SerializedName("mandate")
+ String mandate;
+ }
+
+ /**
+ * For more details about BacsDebit, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class BacsDebit extends StripeObject {
+ /**
+ * Uniquely identifies this particular bank account. You can use this attribute to check
+ * whether two bank accounts are the same.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /** Last four digits of the bank account number. */
+ @SerializedName("last4")
+ String last4;
+
+ /** ID of the mandate used to make this payment. */
+ @SerializedName("mandate")
+ String mandate;
+
+ /** Sort code of the bank account. (e.g., {@code 10-20-30}) */
+ @SerializedName("sort_code")
+ String sortCode;
+ }
+
+ /**
+ * For more details about Bancontact, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Bancontact extends StripeObject {
+ /** Bank code of bank associated with the bank account. */
+ @SerializedName("bank_code")
+ String bankCode;
+
+ /** Name of the bank associated with the bank account. */
+ @SerializedName("bank_name")
+ String bankName;
+
+ /** Bank Identifier Code of the bank associated with the bank account. */
+ @SerializedName("bic")
+ String bic;
+
+ /** The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
+ @SerializedName("generated_sepa_debit")
+ @Getter(lombok.AccessLevel.NONE)
+ @Setter(lombok.AccessLevel.NONE)
+ ExpandableField As of May 1, 2021, card fingerprint in India for Connect changed to allow two
+ * fingerprints for the same card---one for India and one for the rest of the world.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /**
+ * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
+ * unknown}.
+ */
+ @SerializedName("funding")
+ String funding;
+
+ /** The last four digits of the card. */
+ @SerializedName("last4")
+ String last4;
+
+ /** True if this payment was marked as MOTO and out of scope for SCA. */
+ @SerializedName("moto")
+ Boolean moto;
+
+ /**
+ * Identifies which network this charge was processed on. Can be {@code amex}, {@code
+ * cartes_bancaires}, {@code diners}, {@code discover}, {@code eftpos_au}, {@code interac},
+ * {@code jcb}, {@code link}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code
+ * unknown}.
+ */
+ @SerializedName("network")
+ String network;
+
+ /**
+ * If this card has network token credentials, this contains the details of the network token
+ * credentials.
+ */
+ @SerializedName("network_token")
+ NetworkToken networkToken;
+
+ /**
+ * This is used by the financial networks to identify a transaction. Visa calls this the
+ * Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
+ * Acquirer Reference Data. This value will be present if it is returned by the financial
+ * network in the authorization response, and null otherwise.
+ */
+ @SerializedName("network_transaction_id")
+ String networkTransactionId;
+
+ /** Populated if this transaction used 3D Secure authentication. */
+ @SerializedName("three_d_secure")
+ ThreeDSecure threeDSecure;
+
+ /** If this Card is part of a card wallet, this contains the details of the card wallet. */
+ @SerializedName("wallet")
+ Wallet wallet;
+
+ /**
+ * For more details about Checks, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Checks extends StripeObject {
+ @SerializedName("address_line1_check")
+ String addressLine1Check;
+
+ @SerializedName("address_postal_code_check")
+ String addressPostalCodeCheck;
+
+ @SerializedName("cvc_check")
+ String cvcCheck;
+ }
+
+ /**
+ * For more details about NetworkToken, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class NetworkToken extends StripeObject {
+ /**
+ * Indicates if Stripe used a network token, either user provided or Stripe managed when
+ * processing the transaction.
+ */
+ @SerializedName("used")
+ Boolean used;
+ }
+
+ /**
+ * For more details about ThreeDSecure, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class ThreeDSecure extends StripeObject {
+ @SerializedName("authentication_flow")
+ String authenticationFlow;
+
+ @SerializedName("result")
+ String result;
+
+ @SerializedName("result_reason")
+ String resultReason;
+
+ @SerializedName("version")
+ String version;
+ }
+
+ /**
+ * For more details about Wallet, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Wallet extends StripeObject {
+ @SerializedName("apple_pay")
+ ApplePay applePay;
+
+ /** (For tokenized numbers only.) The last four digits of the device account number. */
+ @SerializedName("dynamic_last4")
+ String dynamicLast4;
+
+ @SerializedName("google_pay")
+ GooglePay googlePay;
+
+ /**
+ * The type of the card wallet, one of {@code apple_pay} or {@code google_pay}. An
+ * additional hash is included on the Wallet subhash with a name matching this value. It
+ * contains additional information specific to the card wallet type.
+ */
+ @SerializedName("type")
+ String type;
+
+ /**
+ * For more details about ApplePay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class ApplePay extends StripeObject {
+ /**
+ * Type of the apple_pay transaction, one of {@code apple_pay} or {@code apple_pay_later}.
+ */
+ @SerializedName("type")
+ String type;
+ }
+
+ /**
+ * For more details about GooglePay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class GooglePay extends StripeObject {}
+ }
+ }
+
+ /**
+ * For more details about CardPresent, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class CardPresent extends StripeObject {
+ /** The authorized amount. */
+ @SerializedName("amount_authorized")
+ Long amountAuthorized;
+
+ /**
+ * Card brand. Can be {@code amex}, {@code cartes_bancaires}, {@code diners}, {@code
+ * discover}, {@code eftpos_au}, {@code jcb}, {@code link}, {@code mastercard}, {@code
+ * unionpay}, {@code visa} or {@code unknown}.
+ */
+ @SerializedName("brand")
+ String brand;
+
+ /**
+ * The product code that identifies
+ * the specific program or product associated with a card.
+ */
+ @SerializedName("brand_product")
+ String brandProduct;
+
+ /**
+ * When using manual capture, a future timestamp after which the charge will be automatically
+ * refunded if uncaptured.
+ */
+ @SerializedName("capture_before")
+ Long captureBefore;
+
+ /**
+ * The cardholder name as read from the card, in ISO 7813 format. May include
+ * alphanumeric characters, special characters and first/last name separator ({@code /}). In
+ * some cases, the cardholder name may not be available depending on how the issuer has
+ * configured the card. Cardholder name is typically not available on swipe or contactless
+ * payments, such as those made with Apple Pay and Google Pay.
+ */
+ @SerializedName("cardholder_name")
+ String cardholderName;
+
+ /**
+ * Two-letter ISO code representing the country of the card. You could use this attribute to
+ * get a sense of the international breakdown of cards you've collected.
+ */
+ @SerializedName("country")
+ String country;
+
+ /**
+ * A high-level description of the type of cards issued in this range. (For internal use only
+ * and not typically available in standard API requests.)
+ */
+ @SerializedName("description")
+ String description;
+
+ /** Authorization response cryptogram. */
+ @SerializedName("emv_auth_data")
+ String emvAuthData;
+
+ /** Two-digit number representing the card's expiration month. */
+ @SerializedName("exp_month")
+ Long expMonth;
+
+ /** Four-digit number representing the card's expiration year. */
+ @SerializedName("exp_year")
+ Long expYear;
+
+ /**
+ * Uniquely identifies this particular card number. You can use this attribute to check
+ * whether two customers who’ve signed up with you are using the same card number, for
+ * example. For payment methods that tokenize card information (Apple Pay, Google Pay), the
+ * tokenized number might be provided instead of the underlying card number.
+ *
+ * As of May 1, 2021, card fingerprint in India for Connect changed to allow two
+ * fingerprints for the same card---one for India and one for the rest of the world.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /**
+ * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
+ * unknown}.
+ */
+ @SerializedName("funding")
+ String funding;
+
+ /**
+ * ID of a card PaymentMethod generated from the card_present PaymentMethod that may be
+ * attached to a Customer for future transactions. Only present if it was possible to generate
+ * a card PaymentMethod.
+ */
+ @SerializedName("generated_card")
+ String generatedCard;
+
+ /**
+ * Issuer identification number of the card. (For internal use only and not typically
+ * available in standard API requests.)
+ */
+ @SerializedName("iin")
+ String iin;
+
+ /**
+ * Whether this PaymentIntent is
+ * eligible for incremental authorizations. Request support using request_incremental_authorization_support.
+ */
+ @SerializedName("incremental_authorization_supported")
+ Boolean incrementalAuthorizationSupported;
+
+ /**
+ * The name of the card's issuing bank. (For internal use only and not typically available in
+ * standard API requests.)
+ */
+ @SerializedName("issuer")
+ String issuer;
+
+ /** The last four digits of the card. */
+ @SerializedName("last4")
+ String last4;
+
+ /**
+ * Identifies which network this charge was processed on. Can be {@code amex}, {@code
+ * cartes_bancaires}, {@code diners}, {@code discover}, {@code eftpos_au}, {@code interac},
+ * {@code jcb}, {@code link}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code
+ * unknown}.
+ */
+ @SerializedName("network")
+ String network;
+
+ /**
+ * This is used by the financial networks to identify a transaction. Visa calls this the
+ * Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
+ * Acquirer Reference Data. This value will be present if it is returned by the financial
+ * network in the authorization response, and null otherwise.
+ */
+ @SerializedName("network_transaction_id")
+ String networkTransactionId;
+
+ /** Details about payments collected offline. */
+ @SerializedName("offline")
+ Offline offline;
+
+ /** Defines whether the authorized amount can be over-captured or not. */
+ @SerializedName("overcapture_supported")
+ Boolean overcaptureSupported;
+
+ /**
+ * The languages that the issuing bank recommends using for localizing any customer-facing
+ * text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's chip.
+ */
+ @SerializedName("preferred_locales")
+ List One of {@code contact_emv}, {@code contactless_emv}, {@code contactless_magstripe_mode},
+ * {@code magnetic_stripe_fallback}, or {@code magnetic_stripe_track2}.
+ */
+ @SerializedName("read_method")
+ String readMethod;
+
+ /**
+ * A collection of fields required to be displayed on receipts. Only required for EMV
+ * transactions.
+ */
+ @SerializedName("receipt")
+ Receipt receipt;
+
+ @SerializedName("wallet")
+ Wallet wallet;
+
+ /**
+ * For more details about Offline, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Offline extends StripeObject {
+ /** Time at which the payment was collected while offline. */
+ @SerializedName("stored_at")
+ Long storedAt;
+
+ /**
+ * The method used to process this payment method offline. Only deferred is allowed.
+ *
+ * Equal to {@code deferred}.
+ */
+ @SerializedName("type")
+ String type;
+ }
+
+ /**
+ * For more details about Receipt, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Receipt extends StripeObject {
+ /**
+ * The type of account being debited or credited
+ *
+ * One of {@code checking}, {@code credit}, {@code prepaid}, or {@code unknown}.
+ */
+ @SerializedName("account_type")
+ String accountType;
+
+ /**
+ * The Application Cryptogram, a unique value generated by the card to authenticate the
+ * transaction with issuers.
+ */
+ @SerializedName("application_cryptogram")
+ String applicationCryptogram;
+
+ /**
+ * The Application Identifier (AID) on the card used to determine which networks are
+ * eligible to process the transaction. Referenced from EMV tag 9F12, data encoded on the
+ * card's chip.
+ */
+ @SerializedName("application_preferred_name")
+ String applicationPreferredName;
+
+ /** Identifier for this transaction. */
+ @SerializedName("authorization_code")
+ String authorizationCode;
+
+ /** EMV tag 8A. A code returned by the card issuer. */
+ @SerializedName("authorization_response_code")
+ String authorizationResponseCode;
+
+ /**
+ * Describes the method used by the cardholder to verify ownership of the card. One of the
+ * following: {@code approval}, {@code failure}, {@code none}, {@code offline_pin}, {@code
+ * offline_pin_and_signature}, {@code online_pin}, or {@code signature}.
+ */
+ @SerializedName("cardholder_verification_method")
+ String cardholderVerificationMethod;
+
+ /**
+ * Similar to the application_preferred_name, identifying the applications (AIDs) available
+ * on the card. Referenced from EMV tag 84.
+ */
+ @SerializedName("dedicated_file_name")
+ String dedicatedFileName;
+
+ /**
+ * A 5-byte string that records the checks and validations that occur between the card and
+ * the terminal. These checks determine how the terminal processes the transaction and what
+ * risk tolerance is acceptable. Referenced from EMV Tag 95.
+ */
+ @SerializedName("terminal_verification_results")
+ String terminalVerificationResults;
+
+ /**
+ * An indication of which steps were completed during the card read process. Referenced from
+ * EMV Tag 9B.
+ */
+ @SerializedName("transaction_status_information")
+ String transactionStatusInformation;
+ }
+
+ /**
+ * For more details about Wallet, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Wallet extends StripeObject {
+ /**
+ * The type of mobile wallet, one of {@code apple_pay}, {@code google_pay}, {@code
+ * samsung_pay}, or {@code unknown}.
+ */
+ @SerializedName("type")
+ String type;
+ }
+ }
+
+ /**
+ * For more details about Cashapp, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Cashapp extends StripeObject {
+ /** A unique and immutable identifier assigned by Cash App to every buyer. */
+ @SerializedName("buyer_id")
+ String buyerId;
+
+ /** A public identifier for buyers using Cash App. */
+ @SerializedName("cashtag")
+ String cashtag;
+
+ /** A unique and immutable identifier of payments assigned by Cash App. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about Crypto, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Crypto extends StripeObject {
+ /** The wallet address of the customer. */
+ @SerializedName("buyer_address")
+ String buyerAddress;
+
+ /**
+ * The blockchain network that the transaction was sent on.
+ *
+ * One of {@code base}, {@code ethereum}, {@code polygon}, or {@code solana}.
+ */
+ @SerializedName("network")
+ String network;
+
+ /**
+ * The token currency that the transaction was sent with.
+ *
+ * One of {@code usdc}, {@code usdg}, or {@code usdp}.
+ */
+ @SerializedName("token_currency")
+ String tokenCurrency;
+
+ /** The blockchain transaction hash of the crypto payment. */
+ @SerializedName("transaction_hash")
+ String transactionHash;
+ }
+
+ /**
+ * Custom Payment Methods represent Payment Method types not modeled directly in the Stripe API.
+ * This resource consists of details about the custom payment method used for this payment
+ * attempt.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Custom extends StripeObject {
+ /**
+ * Display name for the custom (user-defined) payment method type used to make this payment.
+ */
+ @SerializedName("display_name")
+ String displayName;
+
+ /** The custom payment method type associated with this payment. */
+ @SerializedName("type")
+ String type;
+ }
+
+ /**
+ * For more details about CustomerBalance, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class CustomerBalance extends StripeObject {}
+
+ /**
+ * For more details about Eps, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Eps extends StripeObject {
+ /**
+ * The customer's bank. Should be one of {@code arzte_und_apotheker_bank}, {@code
+ * austrian_anadi_bank_ag}, {@code bank_austria}, {@code bankhaus_carl_spangler}, {@code
+ * bankhaus_schelhammer_und_schattera_ag}, {@code bawag_psk_ag}, {@code bks_bank_ag}, {@code
+ * brull_kallmus_bank_ag}, {@code btv_vier_lander_bank}, {@code capital_bank_grawe_gruppe_ag},
+ * {@code deutsche_bank_ag}, {@code dolomitenbank}, {@code easybank_ag}, {@code
+ * erste_bank_und_sparkassen}, {@code hypo_alpeadriabank_international_ag}, {@code
+ * hypo_noe_lb_fur_niederosterreich_u_wien}, {@code hypo_oberosterreich_salzburg_steiermark},
+ * {@code hypo_tirol_bank_ag}, {@code hypo_vorarlberg_bank_ag}, {@code
+ * hypo_bank_burgenland_aktiengesellschaft}, {@code marchfelder_bank}, {@code oberbank_ag},
+ * {@code raiffeisen_bankengruppe_osterreich}, {@code schoellerbank_ag}, {@code
+ * sparda_bank_wien}, {@code volksbank_gruppe}, {@code volkskreditbank_ag}, or {@code
+ * vr_bank_braunau}.
+ */
+ @SerializedName("bank")
+ String bank;
+
+ /**
+ * Owner's verified full name. Values are verified or provided by EPS directly (if supported)
+ * at the time of authorization or settlement. They cannot be set or mutated. EPS rarely
+ * provides this information so the attribute is usually empty.
+ */
+ @SerializedName("verified_name")
+ String verifiedName;
+ }
+
+ /**
+ * For more details about Fpx, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Fpx extends StripeObject {
+ /** Account holder type, if provided. Can be one of {@code individual} or {@code company}. */
+ @SerializedName("account_holder_type")
+ String accountHolderType;
+
+ /**
+ * The customer's bank. Can be one of {@code affin_bank}, {@code agrobank}, {@code
+ * alliance_bank}, {@code ambank}, {@code bank_islam}, {@code bank_muamalat}, {@code
+ * bank_rakyat}, {@code bsn}, {@code cimb}, {@code hong_leong_bank}, {@code hsbc}, {@code
+ * kfh}, {@code maybank2u}, {@code ocbc}, {@code public_bank}, {@code rhb}, {@code
+ * standard_chartered}, {@code uob}, {@code deutsche_bank}, {@code maybank2e}, {@code
+ * pb_enterprise}, or {@code bank_of_china}.
+ */
+ @SerializedName("bank")
+ String bank;
+
+ /** Unique transaction id generated by FPX for every request from the merchant. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about Giropay, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Giropay extends StripeObject {
+ /** Bank code of bank associated with the bank account. */
+ @SerializedName("bank_code")
+ String bankCode;
+
+ /** Name of the bank associated with the bank account. */
+ @SerializedName("bank_name")
+ String bankName;
+
+ /** Bank Identifier Code of the bank associated with the bank account. */
+ @SerializedName("bic")
+ String bic;
+
+ /**
+ * Owner's verified full name. Values are verified or provided by Giropay directly (if
+ * supported) at the time of authorization or settlement. They cannot be set or mutated.
+ * Giropay rarely provides this information so the attribute is usually empty.
+ */
+ @SerializedName("verified_name")
+ String verifiedName;
+ }
+
+ /**
+ * For more details about Grabpay, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Grabpay extends StripeObject {
+ /** Unique transaction id generated by GrabPay. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about Ideal, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Ideal extends StripeObject {
+ /**
+ * The customer's bank. Can be one of {@code abn_amro}, {@code asn_bank}, {@code bunq}, {@code
+ * buut}, {@code handelsbanken}, {@code ing}, {@code knab}, {@code moneyou}, {@code n26},
+ * {@code nn}, {@code rabobank}, {@code regiobank}, {@code revolut}, {@code sns_bank}, {@code
+ * triodos_bank}, {@code van_lanschot}, or {@code yoursafe}.
+ */
+ @SerializedName("bank")
+ String bank;
+
+ /**
+ * The Bank Identifier Code of the customer's bank.
+ *
+ * One of {@code ABNANL2A}, {@code ASNBNL21}, {@code BITSNL2A}, {@code BUNQNL2A}, {@code
+ * BUUTNL2A}, {@code FVLBNL22}, {@code HANDNL2A}, {@code INGBNL2A}, {@code KNABNL2H}, {@code
+ * MOYONL21}, {@code NNBANL2G}, {@code NTSBDEB1}, {@code RABONL2U}, {@code RBRBNL21}, {@code
+ * REVOIE23}, {@code REVOLT21}, {@code SNSBNL2A}, or {@code TRIONL2U}.
+ */
+ @SerializedName("bic")
+ String bic;
+
+ /** The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
+ @SerializedName("generated_sepa_debit")
+ @Getter(lombok.AccessLevel.NONE)
+ @Setter(lombok.AccessLevel.NONE)
+ ExpandableField As of May 1, 2021, card fingerprint in India for Connect changed to allow two
+ * fingerprints for the same card---one for India and one for the rest of the world.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /**
+ * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
+ * unknown}.
+ */
+ @SerializedName("funding")
+ String funding;
+
+ /**
+ * ID of a card PaymentMethod generated from the card_present PaymentMethod that may be
+ * attached to a Customer for future transactions. Only present if it was possible to generate
+ * a card PaymentMethod.
+ */
+ @SerializedName("generated_card")
+ String generatedCard;
+
+ /**
+ * Issuer identification number of the card. (For internal use only and not typically
+ * available in standard API requests.)
+ */
+ @SerializedName("iin")
+ String iin;
+
+ /**
+ * The name of the card's issuing bank. (For internal use only and not typically available in
+ * standard API requests.)
+ */
+ @SerializedName("issuer")
+ String issuer;
+
+ /** The last four digits of the card. */
+ @SerializedName("last4")
+ String last4;
+
+ /**
+ * Identifies which network this charge was processed on. Can be {@code amex}, {@code
+ * cartes_bancaires}, {@code diners}, {@code discover}, {@code eftpos_au}, {@code interac},
+ * {@code jcb}, {@code link}, {@code mastercard}, {@code unionpay}, {@code visa}, or {@code
+ * unknown}.
+ */
+ @SerializedName("network")
+ String network;
+
+ /**
+ * This is used by the financial networks to identify a transaction. Visa calls this the
+ * Transaction ID, Mastercard calls this the Trace ID, and American Express calls this the
+ * Acquirer Reference Data. This value will be present if it is returned by the financial
+ * network in the authorization response, and null otherwise.
+ */
+ @SerializedName("network_transaction_id")
+ String networkTransactionId;
+
+ /**
+ * The languages that the issuing bank recommends using for localizing any customer-facing
+ * text, as read from the card. Referenced from EMV tag 5F2D, data encoded on the card's chip.
+ */
+ @SerializedName("preferred_locales")
+ List One of {@code contact_emv}, {@code contactless_emv}, {@code contactless_magstripe_mode},
+ * {@code magnetic_stripe_fallback}, or {@code magnetic_stripe_track2}.
+ */
+ @SerializedName("read_method")
+ String readMethod;
+
+ /**
+ * A collection of fields required to be displayed on receipts. Only required for EMV
+ * transactions.
+ */
+ @SerializedName("receipt")
+ Receipt receipt;
+
+ /**
+ * For more details about Receipt, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Receipt extends StripeObject {
+ /**
+ * The type of account being debited or credited
+ *
+ * One of {@code checking}, {@code savings}, or {@code unknown}.
+ */
+ @SerializedName("account_type")
+ String accountType;
+
+ /**
+ * The Application Cryptogram, a unique value generated by the card to authenticate the
+ * transaction with issuers.
+ */
+ @SerializedName("application_cryptogram")
+ String applicationCryptogram;
+
+ /**
+ * The Application Identifier (AID) on the card used to determine which networks are
+ * eligible to process the transaction. Referenced from EMV tag 9F12, data encoded on the
+ * card's chip.
+ */
+ @SerializedName("application_preferred_name")
+ String applicationPreferredName;
+
+ /** Identifier for this transaction. */
+ @SerializedName("authorization_code")
+ String authorizationCode;
+
+ /** EMV tag 8A. A code returned by the card issuer. */
+ @SerializedName("authorization_response_code")
+ String authorizationResponseCode;
+
+ /**
+ * Describes the method used by the cardholder to verify ownership of the card. One of the
+ * following: {@code approval}, {@code failure}, {@code none}, {@code offline_pin}, {@code
+ * offline_pin_and_signature}, {@code online_pin}, or {@code signature}.
+ */
+ @SerializedName("cardholder_verification_method")
+ String cardholderVerificationMethod;
+
+ /**
+ * Similar to the application_preferred_name, identifying the applications (AIDs) available
+ * on the card. Referenced from EMV tag 84.
+ */
+ @SerializedName("dedicated_file_name")
+ String dedicatedFileName;
+
+ /**
+ * A 5-byte string that records the checks and validations that occur between the card and
+ * the terminal. These checks determine how the terminal processes the transaction and what
+ * risk tolerance is acceptable. Referenced from EMV Tag 95.
+ */
+ @SerializedName("terminal_verification_results")
+ String terminalVerificationResults;
+
+ /**
+ * An indication of which steps were completed during the card read process. Referenced from
+ * EMV Tag 9B.
+ */
+ @SerializedName("transaction_status_information")
+ String transactionStatusInformation;
+ }
+ }
+
+ /**
+ * For more details about KakaoPay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class KakaoPay extends StripeObject {
+ /** A unique identifier for the buyer as determined by the local payment processor. */
+ @SerializedName("buyer_id")
+ String buyerId;
+
+ /** The Kakao Pay transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about Klarna, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Klarna extends StripeObject {
+ /** The payer details for this transaction. */
+ @SerializedName("payer_details")
+ PayerDetails payerDetails;
+
+ /**
+ * The Klarna payment method used for this transaction. Can be one of {@code pay_later},
+ * {@code pay_now}, {@code pay_with_financing}, or {@code pay_in_installments}
+ */
+ @SerializedName("payment_method_category")
+ String paymentMethodCategory;
+
+ /**
+ * Preferred language of the Klarna authorization page that the customer is redirected to. Can
+ * be one of {@code de-AT}, {@code en-AT}, {@code nl-BE}, {@code fr-BE}, {@code en-BE}, {@code
+ * de-DE}, {@code en-DE}, {@code da-DK}, {@code en-DK}, {@code es-ES}, {@code en-ES}, {@code
+ * fi-FI}, {@code sv-FI}, {@code en-FI}, {@code en-GB}, {@code en-IE}, {@code it-IT}, {@code
+ * en-IT}, {@code nl-NL}, {@code en-NL}, {@code nb-NO}, {@code en-NO}, {@code sv-SE}, {@code
+ * en-SE}, {@code en-US}, {@code es-US}, {@code fr-FR}, {@code en-FR}, {@code cs-CZ}, {@code
+ * en-CZ}, {@code ro-RO}, {@code en-RO}, {@code el-GR}, {@code en-GR}, {@code en-AU}, {@code
+ * en-NZ}, {@code en-CA}, {@code fr-CA}, {@code pl-PL}, {@code en-PL}, {@code pt-PT}, {@code
+ * en-PT}, {@code de-CH}, {@code fr-CH}, {@code it-CH}, or {@code en-CH}
+ */
+ @SerializedName("preferred_locale")
+ String preferredLocale;
+
+ /**
+ * For more details about PayerDetails, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class PayerDetails extends StripeObject {
+ /** The payer's address. */
+ @SerializedName("address")
+ Address address;
+
+ /**
+ * For more details about Address, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Address extends StripeObject {
+ /** The payer address country. */
+ @SerializedName("country")
+ String country;
+ }
+ }
+ }
+
+ /**
+ * For more details about Konbini, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Konbini extends StripeObject {
+ /**
+ * If the payment succeeded, this contains the details of the convenience store where the
+ * payment was completed.
+ */
+ @SerializedName("store")
+ Store store;
+
+ /**
+ * For more details about Store, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Store extends StripeObject {
+ /**
+ * The name of the convenience store chain where the payment was completed.
+ *
+ * One of {@code familymart}, {@code lawson}, {@code ministop}, or {@code seicomart}.
+ */
+ @SerializedName("chain")
+ String chain;
+ }
+ }
+
+ /**
+ * For more details about KrCard, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class KrCard extends StripeObject {
+ /**
+ * The local credit or debit card brand.
+ *
+ * One of {@code bc}, {@code citi}, {@code hana}, {@code hyundai}, {@code jeju}, {@code
+ * jeonbuk}, {@code kakaobank}, {@code kbank}, {@code kdbbank}, {@code kookmin}, {@code
+ * kwangju}, {@code lotte}, {@code mg}, {@code nh}, {@code post}, {@code samsung}, {@code
+ * savingsbank}, {@code shinhan}, {@code shinhyup}, {@code suhyup}, {@code tossbank}, or
+ * {@code woori}.
+ */
+ @SerializedName("brand")
+ String brand;
+
+ /** A unique identifier for the buyer as determined by the local payment processor. */
+ @SerializedName("buyer_id")
+ String buyerId;
+
+ /** The last four digits of the card. This may not be present for American Express cards. */
+ @SerializedName("last4")
+ String last4;
+
+ /** The Korean Card transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about Link, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Link extends StripeObject {
+ /**
+ * Two-letter ISO code representing the funding source country beneath the Link payment. You
+ * could use this attribute to get a sense of international fees.
+ */
+ @SerializedName("country")
+ String country;
+ }
+
+ /**
+ * For more details about MbWay, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class MbWay extends StripeObject {}
+
+ /**
+ * For more details about Mobilepay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Mobilepay extends StripeObject {
+ /** Internal card details. */
+ @SerializedName("card")
+ Card card;
+
+ /**
+ * For more details about Card, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Card extends StripeObject {
+ /** Brand of the card used in the transaction. */
+ @SerializedName("brand")
+ String brand;
+
+ /** Two-letter ISO code representing the country of the card. */
+ @SerializedName("country")
+ String country;
+
+ /** Two digit number representing the card's expiration month. */
+ @SerializedName("exp_month")
+ Long expMonth;
+
+ /** Two digit number representing the card's expiration year. */
+ @SerializedName("exp_year")
+ Long expYear;
+
+ /** The last 4 digits of the card. */
+ @SerializedName("last4")
+ String last4;
+ }
+ }
+
+ /**
+ * For more details about Multibanco, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Multibanco extends StripeObject {
+ /** Entity number associated with this Multibanco payment. */
+ @SerializedName("entity")
+ String entity;
+
+ /** Reference number associated with this Multibanco payment. */
+ @SerializedName("reference")
+ String reference;
+ }
+
+ /**
+ * For more details about NaverPay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class NaverPay extends StripeObject {
+ /** A unique identifier for the buyer as determined by the local payment processor. */
+ @SerializedName("buyer_id")
+ String buyerId;
+
+ /** The Naver Pay transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about NzBankAccount, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class NzBankAccount extends StripeObject {
+ /**
+ * The name on the bank account. Only present if the account holder name is different from the
+ * name of the authorized signatory collected in the PaymentMethod’s billing details.
+ */
+ @SerializedName("account_holder_name")
+ String accountHolderName;
+
+ /** The numeric code for the bank account's bank. */
+ @SerializedName("bank_code")
+ String bankCode;
+
+ /** The name of the bank. */
+ @SerializedName("bank_name")
+ String bankName;
+
+ /** The numeric code for the bank account's bank branch. */
+ @SerializedName("branch_code")
+ String branchCode;
+
+ /** Last four digits of the bank account number. */
+ @SerializedName("last4")
+ String last4;
+
+ /** The suffix of the bank account number. */
+ @SerializedName("suffix")
+ String suffix;
+ }
+
+ /**
+ * For more details about Oxxo, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Oxxo extends StripeObject {
+ /** OXXO reference number. */
+ @SerializedName("number")
+ String number;
+ }
+
+ /**
+ * For more details about P24, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class P24 extends StripeObject {
+ /**
+ * The customer's bank. Can be one of {@code ing}, {@code citi_handlowy}, {@code
+ * tmobile_usbugi_bankowe}, {@code plus_bank}, {@code etransfer_pocztowy24}, {@code
+ * banki_spbdzielcze}, {@code bank_nowy_bfg_sa}, {@code getin_bank}, {@code velobank}, {@code
+ * blik}, {@code noble_pay}, {@code ideabank}, {@code envelobank}, {@code
+ * santander_przelew24}, {@code nest_przelew}, {@code mbank_mtransfer}, {@code inteligo},
+ * {@code pbac_z_ipko}, {@code bnp_paribas}, {@code credit_agricole}, {@code toyota_bank},
+ * {@code bank_pekao_sa}, {@code volkswagen_bank}, {@code bank_millennium}, {@code
+ * alior_bank}, or {@code boz}.
+ */
+ @SerializedName("bank")
+ String bank;
+
+ /** Unique reference for this Przelewy24 payment. */
+ @SerializedName("reference")
+ String reference;
+
+ /**
+ * Owner's verified full name. Values are verified or provided by Przelewy24 directly (if
+ * supported) at the time of authorization or settlement. They cannot be set or mutated.
+ * Przelewy24 rarely provides this information so the attribute is usually empty.
+ */
+ @SerializedName("verified_name")
+ String verifiedName;
+ }
+
+ /**
+ * For more details about PayByBank, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class PayByBank extends StripeObject {}
+
+ /**
+ * For more details about Payco, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Payco extends StripeObject {
+ /** A unique identifier for the buyer as determined by the local payment processor. */
+ @SerializedName("buyer_id")
+ String buyerId;
+
+ /** The Payco transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about Paynow, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Paynow extends StripeObject {
+ /**
+ * ID of the location that this
+ * transaction's reader is assigned to.
+ */
+ @SerializedName("location")
+ String location;
+
+ /**
+ * ID of the reader this
+ * transaction was made on.
+ */
+ @SerializedName("reader")
+ String reader;
+
+ /** Reference number associated with this PayNow payment. */
+ @SerializedName("reference")
+ String reference;
+ }
+
+ /**
+ * For more details about Paypal, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Paypal extends StripeObject {
+ /**
+ * Two-letter ISO code representing the buyer's country. Values are provided by PayPal
+ * directly (if supported) at the time of authorization or settlement. They cannot be set or
+ * mutated.
+ */
+ @SerializedName("country")
+ String country;
+
+ /**
+ * Owner's email. Values are provided by PayPal directly (if supported) at the time of
+ * authorization or settlement. They cannot be set or mutated.
+ */
+ @SerializedName("payer_email")
+ String payerEmail;
+
+ /** PayPal account PayerID. This identifier uniquely identifies the PayPal customer. */
+ @SerializedName("payer_id")
+ String payerId;
+
+ /**
+ * Owner's full name. Values provided by PayPal directly (if supported) at the time of
+ * authorization or settlement. They cannot be set or mutated.
+ */
+ @SerializedName("payer_name")
+ String payerName;
+
+ /**
+ * The level of protection offered as defined by PayPal Seller Protection for Merchants, for
+ * this transaction.
+ */
+ @SerializedName("seller_protection")
+ SellerProtection sellerProtection;
+
+ /** A unique ID generated by PayPal for this transaction. */
+ @SerializedName("transaction_id")
+ String transactionId;
+
+ /**
+ * For more details about SellerProtection, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class SellerProtection extends StripeObject {
+ /** An array of conditions that are covered for the transaction, if applicable. */
+ @SerializedName("dispute_categories")
+ List One of {@code eligible}, {@code not_eligible}, or {@code partially_eligible}.
+ */
+ @SerializedName("status")
+ String status;
+ }
+ }
+
+ /**
+ * For more details about Pix, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Pix extends StripeObject {
+ /** Unique transaction id generated by BCB. */
+ @SerializedName("bank_transaction_id")
+ String bankTransactionId;
+ }
+
+ /**
+ * For more details about Promptpay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Promptpay extends StripeObject {
+ /** Bill reference generated by PromptPay. */
+ @SerializedName("reference")
+ String reference;
+ }
+
+ /**
+ * For more details about RevolutPay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class RevolutPay extends StripeObject {
+ @SerializedName("funding")
+ Funding funding;
+
+ /** The Revolut Pay transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+
+ /**
+ * For more details about Funding, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Funding extends StripeObject {
+ @SerializedName("card")
+ Card card;
+
+ /**
+ * funding type of the underlying payment method.
+ *
+ * Equal to {@code card}.
+ */
+ @SerializedName("type")
+ String type;
+
+ /**
+ * For more details about Card, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Card extends StripeObject {
+ /**
+ * Card brand. Can be {@code amex}, {@code cartes_bancaires}, {@code diners}, {@code
+ * discover}, {@code eftpos_au}, {@code jcb}, {@code link}, {@code mastercard}, {@code
+ * unionpay}, {@code visa} or {@code unknown}.
+ */
+ @SerializedName("brand")
+ String brand;
+
+ /**
+ * Two-letter ISO code representing the country of the card. You could use this attribute
+ * to get a sense of the international breakdown of cards you've collected.
+ */
+ @SerializedName("country")
+ String country;
+
+ /** Two-digit number representing the card's expiration month. */
+ @SerializedName("exp_month")
+ Long expMonth;
+
+ /** Four-digit number representing the card's expiration year. */
+ @SerializedName("exp_year")
+ Long expYear;
+
+ /**
+ * Card funding type. Can be {@code credit}, {@code debit}, {@code prepaid}, or {@code
+ * unknown}.
+ */
+ @SerializedName("funding")
+ String funding;
+
+ /** The last four digits of the card. */
+ @SerializedName("last4")
+ String last4;
+ }
+ }
+ }
+
+ /**
+ * For more details about SamsungPay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class SamsungPay extends StripeObject {
+ /** A unique identifier for the buyer as determined by the local payment processor. */
+ @SerializedName("buyer_id")
+ String buyerId;
+
+ /** The Samsung Pay transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about Satispay, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Satispay extends StripeObject {
+ /** The Satispay transaction ID associated with this payment. */
+ @SerializedName("transaction_id")
+ String transactionId;
+ }
+
+ /**
+ * For more details about SepaCreditTransfer, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class SepaCreditTransfer extends StripeObject {
+ /** Name of the bank associated with the bank account. */
+ @SerializedName("bank_name")
+ String bankName;
+
+ /** Bank Identifier Code of the bank associated with the bank account. */
+ @SerializedName("bic")
+ String bic;
+
+ /** IBAN of the bank account to transfer funds to. */
+ @SerializedName("iban")
+ String iban;
+ }
+
+ /**
+ * For more details about SepaDebit, please refer to the API Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class SepaDebit extends StripeObject {
+ /** Bank code of bank associated with the bank account. */
+ @SerializedName("bank_code")
+ String bankCode;
+
+ /** Branch code of bank associated with the bank account. */
+ @SerializedName("branch_code")
+ String branchCode;
+
+ /** Two-letter ISO code representing the country the bank account is located in. */
+ @SerializedName("country")
+ String country;
+
+ /**
+ * Uniquely identifies this particular bank account. You can use this attribute to check
+ * whether two bank accounts are the same.
+ */
+ @SerializedName("fingerprint")
+ String fingerprint;
+
+ /** Last four characters of the IBAN. */
+ @SerializedName("last4")
+ String last4;
+
+ /**
+ * Find the ID of the mandate used for this payment under the payment_method_details.sepa_debit.mandate
+ * property on the Charge. Use this mandate ID to retrieve the Mandate.
+ */
+ @SerializedName("mandate")
+ String mandate;
+ }
+
+ /**
+ * For more details about Sofort, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Sofort extends StripeObject {
+ /** Bank code of bank associated with the bank account. */
+ @SerializedName("bank_code")
+ String bankCode;
+
+ /** Name of the bank associated with the bank account. */
+ @SerializedName("bank_name")
+ String bankName;
+
+ /** Bank Identifier Code of the bank associated with the bank account. */
+ @SerializedName("bic")
+ String bic;
+
+ /** Two-letter ISO code representing the country the bank account is located in. */
+ @SerializedName("country")
+ String country;
+
+ /** The ID of the SEPA Direct Debit PaymentMethod which was generated by this Charge. */
+ @SerializedName("generated_sepa_debit")
+ @Getter(lombok.AccessLevel.NONE)
+ @Setter(lombok.AccessLevel.NONE)
+ ExpandableField Equal to {@code custom}.
+ */
+ @SerializedName("type")
+ String type;
+
+ /**
+ * Custom processors represent payment processors not modeled directly in the Stripe API. This
+ * resource consists of details about the custom processor used for this payment attempt.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Custom extends StripeObject {
+ /**
+ * An opaque string for manual reconciliation of this payment, for example a check number or a
+ * payment processor ID.
+ */
+ @SerializedName("payment_reference")
+ String paymentReference;
+ }
+ }
+
+ /** The customer's shipping information associated with this payment. */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class ShippingDetails extends StripeObject {
+ /** A representation of a physical address. */
+ @SerializedName("address")
+ Address address;
+
+ /** The shipping recipient's name. */
+ @SerializedName("name")
+ String name;
+
+ /** The shipping recipient's phone number. */
+ @SerializedName("phone")
+ String phone;
+
+ /** A representation of a physical address. */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Address extends StripeObject {
+ /** City, district, suburb, town, or village. */
+ @SerializedName("city")
+ String city;
+
+ /**
+ * Two-letter country code (ISO
+ * 3166-1 alpha-2).
+ */
+ @SerializedName("country")
+ String country;
+
+ /** Address line 1, such as the street, PO Box, or company name. */
+ @SerializedName("line1")
+ String line1;
+
+ /** Address line 2, such as the apartment, suite, unit, or building. */
+ @SerializedName("line2")
+ String line2;
+
+ /** ZIP or postal code. */
+ @SerializedName("postal_code")
+ String postalCode;
+
+ /** State, county, province, or region. */
+ @SerializedName("state")
+ String state;
+ }
+ }
+
+ @Override
+ public void setResponseGetter(StripeResponseGetter responseGetter) {
+ super.setResponseGetter(responseGetter);
+ trySetResponseGetter(amount, responseGetter);
+ trySetResponseGetter(amountAuthorized, responseGetter);
+ trySetResponseGetter(amountCanceled, responseGetter);
+ trySetResponseGetter(amountFailed, responseGetter);
+ trySetResponseGetter(amountGuaranteed, responseGetter);
+ trySetResponseGetter(amountRefunded, responseGetter);
+ trySetResponseGetter(amountRequested, responseGetter);
+ trySetResponseGetter(customerDetails, responseGetter);
+ trySetResponseGetter(paymentMethodDetails, responseGetter);
+ trySetResponseGetter(processorDetails, responseGetter);
+ trySetResponseGetter(shippingDetails, responseGetter);
+ }
+}
diff --git a/src/main/java/com/stripe/model/Payout.java b/src/main/java/com/stripe/model/Payout.java
index 8285426488d..05b7d4ec829 100644
--- a/src/main/java/com/stripe/model/Payout.java
+++ b/src/main/java/com/stripe/model/Payout.java
@@ -573,8 +573,8 @@ public static Payout retrieve(String payout, PayoutRetrieveParams params, Reques
/**
* Reverses a payout by debiting the destination bank account. At this time, you can only reverse
- * payouts for connected accounts to US bank accounts. If the payout is manual and in the {@code
- * pending} status, use {@code /v1/payouts/:id/cancel} instead.
+ * payouts for connected accounts to US and Canadian bank accounts. If the payout is manual and in
+ * the {@code pending} status, use {@code /v1/payouts/:id/cancel} instead.
*
* By requesting a reversal through {@code /v1/payouts/:id/reverse}, you confirm that the
* authorized signatory of the selected bank account authorizes the debit on the bank account and
@@ -586,8 +586,8 @@ public Payout reverse() throws StripeException {
/**
* Reverses a payout by debiting the destination bank account. At this time, you can only reverse
- * payouts for connected accounts to US bank accounts. If the payout is manual and in the {@code
- * pending} status, use {@code /v1/payouts/:id/cancel} instead.
+ * payouts for connected accounts to US and Canadian bank accounts. If the payout is manual and in
+ * the {@code pending} status, use {@code /v1/payouts/:id/cancel} instead.
*
* By requesting a reversal through {@code /v1/payouts/:id/reverse}, you confirm that the
* authorized signatory of the selected bank account authorizes the debit on the bank account and
@@ -599,8 +599,8 @@ public Payout reverse(RequestOptions options) throws StripeException {
/**
* Reverses a payout by debiting the destination bank account. At this time, you can only reverse
- * payouts for connected accounts to US bank accounts. If the payout is manual and in the {@code
- * pending} status, use {@code /v1/payouts/:id/cancel} instead.
+ * payouts for connected accounts to US and Canadian bank accounts. If the payout is manual and in
+ * the {@code pending} status, use {@code /v1/payouts/:id/cancel} instead.
*
* By requesting a reversal through {@code /v1/payouts/:id/reverse}, you confirm that the
* authorized signatory of the selected bank account authorizes the debit on the bank account and
@@ -612,8 +612,8 @@ public Payout reverse(Map By requesting a reversal through {@code /v1/payouts/:id/reverse}, you confirm that the
* authorized signatory of the selected bank account authorizes the debit on the bank account and
@@ -628,8 +628,8 @@ public Payout reverse(Map By requesting a reversal through {@code /v1/payouts/:id/reverse}, you confirm that the
* authorized signatory of the selected bank account authorizes the debit on the bank account and
@@ -641,8 +641,8 @@ public Payout reverse(PayoutReverseParams params) throws StripeException {
/**
* Reverses a payout by debiting the destination bank account. At this time, you can only reverse
- * payouts for connected accounts to US bank accounts. If the payout is manual and in the {@code
- * pending} status, use {@code /v1/payouts/:id/cancel} instead.
+ * payouts for connected accounts to US and Canadian bank accounts. If the payout is manual and in
+ * the {@code pending} status, use {@code /v1/payouts/:id/cancel} instead.
*
* By requesting a reversal through {@code /v1/payouts/:id/reverse}, you confirm that the
* authorized signatory of the selected bank account authorizes the debit on the bank account and
diff --git a/src/main/java/com/stripe/model/Refund.java b/src/main/java/com/stripe/model/Refund.java
index d4fde53341b..86641f8018f 100644
--- a/src/main/java/com/stripe/model/Refund.java
+++ b/src/main/java/com/stripe/model/Refund.java
@@ -625,6 +625,9 @@ public static class DestinationDetails extends StripeObject {
@SerializedName("cashapp")
Cashapp cashapp;
+ @SerializedName("crypto")
+ Crypto crypto;
+
@SerializedName("customer_cash_balance")
CustomerCashBalance customerCashBalance;
@@ -841,6 +844,19 @@ public static class Card extends StripeObject {
@EqualsAndHashCode(callSuper = false)
public static class Cashapp extends StripeObject {}
+ /**
+ * For more details about Crypto, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Crypto extends StripeObject {
+ /** The transaction hash of the refund. */
+ @SerializedName("reference")
+ String reference;
+ }
+
/**
* For more details about CustomerCashBalance, please refer to the API Reference.
diff --git a/src/main/java/com/stripe/model/SetupIntent.java b/src/main/java/com/stripe/model/SetupIntent.java
index 7593c837533..1c077101075 100644
--- a/src/main/java/com/stripe/model/SetupIntent.java
+++ b/src/main/java/com/stripe/model/SetupIntent.java
@@ -113,6 +113,10 @@ public class SetupIntent extends ApiResource implements HasId, MetadataStore If you provide a Customer with the PaymentIntent, you can use this parameter to attach the payment method to the
+ * Customer after the PaymentIntent is confirmed and the customer completes any required
+ * actions. If you don't provide a Customer, you can still attach the payment method to a
+ * Customer after the transaction completes.
+ *
+ * If the payment method is {@code card_present} and isn't a digital wallet, Stripe creates
+ * and attaches a generated_card
+ * payment method representing the card to the Customer instead.
+ *
+ * When processing card payments, Stripe uses {@code setup_future_usage} to help you comply
+ * with regional legislation and network rules, such as SCA.
+ *
+ * Equal to {@code none}.
+ */
+ @SerializedName("setup_future_usage")
+ String setupFutureUsage;
+ }
+
/**
* For more details about UsBankAccount, please refer to the API Reference.
diff --git a/src/main/java/com/stripe/model/financialconnections/Account.java b/src/main/java/com/stripe/model/financialconnections/Account.java
index 3e79be1330e..46ce0ad5ea6 100644
--- a/src/main/java/com/stripe/model/financialconnections/Account.java
+++ b/src/main/java/com/stripe/model/financialconnections/Account.java
@@ -393,7 +393,7 @@ public static com.stripe.model.financialconnections.Account retrieve(
/**
* Subscribes to periodic refreshes of data associated with a Financial Connections {@code
- * Account}.
+ * Account}. When the account status is active, data is typically refreshed once a day.
*/
public com.stripe.model.financialconnections.Account subscribe(Map Equal to {@code simplified}.
+ */
+ @SerializedName("type")
+ String type;
+ }
+
/**
* For more details about Tz, please refer to the API
* Reference.
diff --git a/src/main/java/com/stripe/model/terminal/Configuration.java b/src/main/java/com/stripe/model/terminal/Configuration.java
index 75dbbd4a3b4..b6adb662df1 100644
--- a/src/main/java/com/stripe/model/terminal/Configuration.java
+++ b/src/main/java/com/stripe/model/terminal/Configuration.java
@@ -428,6 +428,9 @@ public static class Tipping extends StripeObject {
@SerializedName("gbp")
Gbp gbp;
+ @SerializedName("gip")
+ Gip gip;
+
@SerializedName("hkd")
Hkd hkd;
@@ -680,6 +683,30 @@ public static class Gbp extends StripeObject {
Long smartTipThreshold;
}
+ /**
+ * For more details about Gip, please refer to the API
+ * Reference.
+ */
+ @Getter
+ @Setter
+ @EqualsAndHashCode(callSuper = false)
+ public static class Gip extends StripeObject {
+ /** Fixed amounts displayed when collecting a tip. */
+ @SerializedName("fixed_amounts")
+ List One of {@code primary}, or {@code secondary}.
- */
+ /** The button style for the choice. Can be {@code primary} or {@code secondary}. */
@SerializedName("style")
String style;
- /** The text to be selected. */
+ /** The text to be selected. Maximum 30 characters. */
@SerializedName("text")
String text;
}
@@ -910,27 +1042,19 @@ public static class Text extends StripeObject {
@Setter
@EqualsAndHashCode(callSuper = false)
public static class Toggle extends StripeObject {
- /**
- * The toggle's default value
- *
- * One of {@code disabled}, or {@code enabled}.
- */
+ /** The toggle's default value. Can be {@code enabled} or {@code disabled}. */
@SerializedName("default_value")
String defaultValue;
- /** The toggle's description text. */
+ /** The toggle's description text. Maximum 50 characters. */
@SerializedName("description")
String description;
- /** The toggle's title text. */
+ /** The toggle's title text. Maximum 50 characters. */
@SerializedName("title")
String title;
- /**
- * The toggle's collected value
- *
- * One of {@code disabled}, or {@code enabled}.
- */
+ /** The toggle's collected value. Can be {@code enabled} or {@code disabled}. */
@SerializedName("value")
String value;
}
@@ -1328,12 +1452,13 @@ public static class RefundPaymentConfig extends StripeObject {
@Setter
@EqualsAndHashCode(callSuper = false)
public static class SetReaderDisplay extends StripeObject {
- /** Cart object to be displayed by the reader. */
+ /** Cart object to be displayed by the reader, including line items, amounts, and currency. */
@SerializedName("cart")
Cart cart;
/**
- * Type of information to be displayed by the reader.
+ * Type of information to be displayed by the reader. Only {@code cart} is currently
+ * supported.
*
* Equal to {@code cart}.
*/
diff --git a/src/main/java/com/stripe/param/AccountCreateParams.java b/src/main/java/com/stripe/param/AccountCreateParams.java
index 10d09fd38da..c3016cdefe9 100644
--- a/src/main/java/com/stripe/param/AccountCreateParams.java
+++ b/src/main/java/com/stripe/param/AccountCreateParams.java
@@ -7185,6 +7185,13 @@ public static class Company {
@SerializedName("registration_number")
String registrationNumber;
+ /**
+ * This hash is used to attest that the representative is authorized to act as the
+ * representative of their legal entity.
+ */
+ @SerializedName("representative_declaration")
+ RepresentativeDeclaration representativeDeclaration;
+
/**
* The category identifying the legal structure of the company or legal entity. See Business
@@ -7234,6 +7241,7 @@ private Company(
String phone,
Object registrationDate,
String registrationNumber,
+ RepresentativeDeclaration representativeDeclaration,
ApiRequestParams.EnumParam structure,
String taxId,
String taxIdRegistrar,
@@ -7257,6 +7265,7 @@ private Company(
this.phone = phone;
this.registrationDate = registrationDate;
this.registrationNumber = registrationNumber;
+ this.representativeDeclaration = representativeDeclaration;
this.structure = structure;
this.taxId = taxId;
this.taxIdRegistrar = taxIdRegistrar;
@@ -7305,6 +7314,8 @@ public static class Builder {
private String registrationNumber;
+ private RepresentativeDeclaration representativeDeclaration;
+
private ApiRequestParams.EnumParam structure;
private String taxId;
@@ -7336,6 +7347,7 @@ public AccountCreateParams.Company build() {
this.phone,
this.registrationDate,
this.registrationNumber,
+ this.representativeDeclaration,
this.structure,
this.taxId,
this.taxIdRegistrar,
@@ -7529,6 +7541,16 @@ public Builder setRegistrationNumber(String registrationNumber) {
return this;
}
+ /**
+ * This hash is used to attest that the representative is authorized to act as the
+ * representative of their legal entity.
+ */
+ public Builder setRepresentativeDeclaration(
+ AccountCreateParams.Company.RepresentativeDeclaration representativeDeclaration) {
+ this.representativeDeclaration = representativeDeclaration;
+ return this;
+ }
+
/**
* The category identifying the legal structure of the company or legal entity. See Business
@@ -8379,6 +8401,111 @@ public Builder setYear(Long year) {
}
}
+ @Getter
+ @EqualsAndHashCode(callSuper = false)
+ public static class RepresentativeDeclaration {
+ /** The Unix timestamp marking when the representative declaration attestation was made. */
+ @SerializedName("date")
+ Long date;
+
+ /**
+ * 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 If not specified, defaults to ["always"]. In order to display all saved
+ * payment methods, specify ["always", "limited",
+ * "unspecified"].
+ */
+ @SerializedName("payment_method_allow_redisplay_filters")
+ List<
+ CustomerSessionCreateParams.Components.CustomerSheet.Features
+ .PaymentMethodAllowRedisplayFilter>
+ paymentMethodAllowRedisplayFilters;
+
+ /**
+ * Controls whether the customer sheet displays the option to remove a saved payment
+ * method."
+ *
+ * Allowing buyers to remove their saved payment methods impacts subscriptions that
+ * depend on that payment method. Removing the payment method detaches the {@code
+ * customer} object from that PaymentMethod.
+ */
+ @SerializedName("payment_method_remove")
+ PaymentMethodRemove paymentMethodRemove;
+
+ private Features(
+ Map Allowing buyers to remove their saved payment methods impacts subscriptions that
+ * depend on that payment method. Removing the payment method detaches the {@code
+ * customer} object from that PaymentMethod.
+ */
+ public Builder setPaymentMethodRemove(
+ CustomerSessionCreateParams.Components.CustomerSheet.Features.PaymentMethodRemove
+ paymentMethodRemove) {
+ this.paymentMethodRemove = paymentMethodRemove;
+ return this;
+ }
+ }
+
+ public enum PaymentMethodAllowRedisplayFilter implements ApiRequestParams.EnumParam {
+ @SerializedName("always")
+ ALWAYS("always"),
+
+ @SerializedName("limited")
+ LIMITED("limited"),
+
+ @SerializedName("unspecified")
+ UNSPECIFIED("unspecified");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ PaymentMethodAllowRedisplayFilter(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum PaymentMethodRemove implements ApiRequestParams.EnumParam {
+ @SerializedName("disabled")
+ DISABLED("disabled"),
+
+ @SerializedName("enabled")
+ ENABLED("enabled");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ PaymentMethodRemove(String value) {
+ this.value = value;
+ }
+ }
+ }
+ }
+
+ @Getter
+ @EqualsAndHashCode(callSuper = false)
+ public static class MobilePaymentElement {
+ /** Required. Whether the mobile payment element is enabled. */
+ @SerializedName("enabled")
+ Boolean enabled;
+
+ /**
+ * Map of extra parameters for custom features not available in this client library. The
+ * content in this map is not serialized under this field's {@code @SerializedName} value.
+ * Instead, each key/value pair is serialized as if the key is a root-level field (serialized)
+ * name in this param object. Effectively, this map is flattened to its parent instance.
+ */
+ @SerializedName(ApiRequestParams.EXTRA_PARAMS_KEY)
+ Map If not specified, defaults to ["always"]. In order to display all saved
+ * payment methods, specify ["always", "limited",
+ * "unspecified"].
+ */
+ @SerializedName("payment_method_allow_redisplay_filters")
+ List<
+ CustomerSessionCreateParams.Components.MobilePaymentElement.Features
+ .PaymentMethodAllowRedisplayFilter>
+ paymentMethodAllowRedisplayFilters;
+
+ /** Controls whether or not the mobile payment element shows saved payment methods. */
+ @SerializedName("payment_method_redisplay")
+ PaymentMethodRedisplay paymentMethodRedisplay;
+
+ /**
+ * Controls whether the mobile payment element displays the option to remove a saved payment
+ * method."
+ *
+ * Allowing buyers to remove their saved payment methods impacts subscriptions that
+ * depend on that payment method. Removing the payment method detaches the {@code
+ * customer} object from that PaymentMethod.
+ */
+ @SerializedName("payment_method_remove")
+ PaymentMethodRemove paymentMethodRemove;
+
+ /**
+ * Controls whether the mobile payment element displays a checkbox offering to save a new
+ * payment method.
+ *
+ * If a customer checks the box, the {@code
+ * allow_redisplay} value on the PaymentMethod is set to {@code 'always'} at
+ * confirmation time. For PaymentIntents, the {@code
+ * setup_future_usage} value is also set to the value defined in {@code
+ * payment_method_save_usage}.
+ */
+ @SerializedName("payment_method_save")
+ PaymentMethodSave paymentMethodSave;
+
+ /**
+ * Allows overriding the value of allow_override when saving a new payment method when
+ * payment_method_save is set to disabled. Use values: "always",
+ * "limited", or "unspecified".
+ *
+ * If not specified, defaults to {@code nil} (no override value).
+ */
+ @SerializedName("payment_method_save_allow_redisplay_override")
+ PaymentMethodSaveAllowRedisplayOverride paymentMethodSaveAllowRedisplayOverride;
+
+ private Features(
+ Map Allowing buyers to remove their saved payment methods impacts subscriptions that
+ * depend on that payment method. Removing the payment method detaches the {@code
+ * customer} object from that PaymentMethod.
+ */
+ public Builder setPaymentMethodRemove(
+ CustomerSessionCreateParams.Components.MobilePaymentElement.Features
+ .PaymentMethodRemove
+ paymentMethodRemove) {
+ this.paymentMethodRemove = paymentMethodRemove;
+ return this;
+ }
+
+ /**
+ * Controls whether the mobile payment element displays a checkbox offering to save a new
+ * payment method.
+ *
+ * If a customer checks the box, the {@code
+ * allow_redisplay} value on the PaymentMethod is set to {@code 'always'} at
+ * confirmation time. For PaymentIntents, the {@code
+ * setup_future_usage} value is also set to the value defined in {@code
+ * payment_method_save_usage}.
+ */
+ public Builder setPaymentMethodSave(
+ CustomerSessionCreateParams.Components.MobilePaymentElement.Features.PaymentMethodSave
+ paymentMethodSave) {
+ this.paymentMethodSave = paymentMethodSave;
+ return this;
+ }
+
+ /**
+ * Allows overriding the value of allow_override when saving a new payment method when
+ * payment_method_save is set to disabled. Use values: "always",
+ * "limited", or "unspecified".
+ *
+ * If not specified, defaults to {@code nil} (no override value).
+ */
+ public Builder setPaymentMethodSaveAllowRedisplayOverride(
+ CustomerSessionCreateParams.Components.MobilePaymentElement.Features
+ .PaymentMethodSaveAllowRedisplayOverride
+ paymentMethodSaveAllowRedisplayOverride) {
+ this.paymentMethodSaveAllowRedisplayOverride = paymentMethodSaveAllowRedisplayOverride;
+ return this;
+ }
+ }
+
+ public enum PaymentMethodAllowRedisplayFilter implements ApiRequestParams.EnumParam {
+ @SerializedName("always")
+ ALWAYS("always"),
+
+ @SerializedName("limited")
+ LIMITED("limited"),
+
+ @SerializedName("unspecified")
+ UNSPECIFIED("unspecified");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ PaymentMethodAllowRedisplayFilter(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum PaymentMethodRedisplay implements ApiRequestParams.EnumParam {
+ @SerializedName("disabled")
+ DISABLED("disabled"),
+
+ @SerializedName("enabled")
+ ENABLED("enabled");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ PaymentMethodRedisplay(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum PaymentMethodRemove implements ApiRequestParams.EnumParam {
+ @SerializedName("disabled")
+ DISABLED("disabled"),
+
+ @SerializedName("enabled")
+ ENABLED("enabled");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ PaymentMethodRemove(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum PaymentMethodSave implements ApiRequestParams.EnumParam {
+ @SerializedName("disabled")
+ DISABLED("disabled"),
+
+ @SerializedName("enabled")
+ ENABLED("enabled");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ PaymentMethodSave(String value) {
+ this.value = value;
+ }
+ }
+
+ public enum PaymentMethodSaveAllowRedisplayOverride implements ApiRequestParams.EnumParam {
+ @SerializedName("always")
+ ALWAYS("always"),
+
+ @SerializedName("limited")
+ LIMITED("limited"),
+
+ @SerializedName("unspecified")
+ UNSPECIFIED("unspecified");
+
+ @Getter(onMethod_ = {@Override})
+ private final String value;
+
+ PaymentMethodSaveAllowRedisplayOverride(String value) {
+ this.value = value;
+ }
+ }
+ }
+ }
+
@Getter
@EqualsAndHashCode(callSuper = false)
public static class PaymentElement {
diff --git a/src/main/java/com/stripe/param/FileCreateParams.java b/src/main/java/com/stripe/param/FileCreateParams.java
index 55026b17719..665a984b1b9 100644
--- a/src/main/java/com/stripe/param/FileCreateParams.java
+++ b/src/main/java/com/stripe/param/FileCreateParams.java
@@ -361,6 +361,9 @@ public enum Purpose implements ApiRequestParams.EnumParam {
@SerializedName("pci_document")
PCI_DOCUMENT("pci_document"),
+ @SerializedName("platform_terms_of_service")
+ PLATFORM_TERMS_OF_SERVICE("platform_terms_of_service"),
+
@SerializedName("tax_document_user_upload")
TAX_DOCUMENT_USER_UPLOAD("tax_document_user_upload"),
diff --git a/src/main/java/com/stripe/param/FileListParams.java b/src/main/java/com/stripe/param/FileListParams.java
index ad1192cacea..f0085ee3138 100644
--- a/src/main/java/com/stripe/param/FileListParams.java
+++ b/src/main/java/com/stripe/param/FileListParams.java
@@ -363,6 +363,9 @@ public enum Purpose implements ApiRequestParams.EnumParam {
@SerializedName("pci_document")
PCI_DOCUMENT("pci_document"),
+ @SerializedName("platform_terms_of_service")
+ PLATFORM_TERMS_OF_SERVICE("platform_terms_of_service"),
+
@SerializedName("selfie")
SELFIE("selfie"),
diff --git a/src/main/java/com/stripe/param/InvoiceAttachPaymentParams.java b/src/main/java/com/stripe/param/InvoiceAttachPaymentParams.java
index 3cfd7b21ed9..50caccd07a0 100644
--- a/src/main/java/com/stripe/param/InvoiceAttachPaymentParams.java
+++ b/src/main/java/com/stripe/param/InvoiceAttachPaymentParams.java
@@ -30,11 +30,19 @@ public class InvoiceAttachPaymentParams extends ApiRequestParams {
@SerializedName("payment_intent")
String paymentIntent;
+ /** The ID of the PaymentRecord to attach to the invoice. */
+ @SerializedName("payment_record")
+ String paymentRecord;
+
private InvoiceAttachPaymentParams(
- List