# File generated from our OpenAPI spec # frozen_string_literal: true module Stripe # PaymentMethod objects represent your customer's payment instruments. # You can use them with [PaymentIntents](https://stripe.com/docs/payments/payment-intents) to collect payments or save them to # Customer objects to store instrument details for future payments. # # Related guides: [Payment Methods](https://stripe.com/docs/payments/payment-methods) and [More Payment Scenarios](https://stripe.com/docs/payments/more-payment-scenarios). class PaymentMethod < APIResource extend Stripe::APIOperations::Create extend Stripe::APIOperations::List include Stripe::APIOperations::Save OBJECT_NAME = "payment_method" def self.object_name "payment_method" end class AcssDebit < Stripe::StripeObject # Name of the bank associated with the bank account. attr_reader :bank_name # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. attr_reader :fingerprint # Institution number of the bank account. attr_reader :institution_number # Last four digits of the bank account number. attr_reader :last4 # Transit number of the bank account. attr_reader :transit_number end class Affirm < Stripe::StripeObject; end class AfterpayClearpay < Stripe::StripeObject; end class Alipay < Stripe::StripeObject; end class Alma < Stripe::StripeObject; end class AmazonPay < Stripe::StripeObject; end class AuBecsDebit < Stripe::StripeObject # Six-digit number identifying bank and branch associated with this bank account. attr_reader :bsb_number # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. attr_reader :fingerprint # Last four digits of the bank account number. attr_reader :last4 end class BacsDebit < Stripe::StripeObject # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. attr_reader :fingerprint # Last four digits of the bank account number. attr_reader :last4 # Sort code of the bank account. (e.g., `10-20-30`) attr_reader :sort_code end class Bancontact < Stripe::StripeObject; end class Billie < Stripe::StripeObject; end class BillingDetails < Stripe::StripeObject class Address < Stripe::StripeObject # City, district, suburb, town, or village. attr_reader :city # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). attr_reader :country # Address line 1 (e.g., street, PO Box, or company name). attr_reader :line1 # Address line 2 (e.g., apartment, suite, unit, or building). attr_reader :line2 # ZIP or postal code. attr_reader :postal_code # State, county, province, or region. attr_reader :state end # Billing address. attr_reader :address # Email address. attr_reader :email # Full name. attr_reader :name # Billing phone number (including extension). attr_reader :phone end class Blik < Stripe::StripeObject; end class Boleto < Stripe::StripeObject # Uniquely identifies the customer tax id (CNPJ or CPF) attr_reader :tax_id end class Card < Stripe::StripeObject class Checks < Stripe::StripeObject # If a address line1 was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`. attr_reader :address_line1_check # If a address postal code was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`. attr_reader :address_postal_code_check # If a CVC was provided, results of the check, one of `pass`, `fail`, `unavailable`, or `unchecked`. attr_reader :cvc_check end class GeneratedFrom < Stripe::StripeObject class PaymentMethodDetails < Stripe::StripeObject class CardPresent < Stripe::StripeObject class Offline < Stripe::StripeObject # Time at which the payment was collected while offline attr_reader :stored_at # The method used to process this payment method offline. Only deferred is allowed. attr_reader :type end class Receipt < Stripe::StripeObject # The type of account being debited or credited attr_reader :account_type # EMV tag 9F26, cryptogram generated by the integrated circuit chip. attr_reader :application_cryptogram # Mnenomic of the Application Identifier. attr_reader :application_preferred_name # Identifier for this transaction. attr_reader :authorization_code # EMV tag 8A. A code returned by the card issuer. attr_reader :authorization_response_code # Describes the method used by the cardholder to verify ownership of the card. One of the following: `approval`, `failure`, `none`, `offline_pin`, `offline_pin_and_signature`, `online_pin`, or `signature`. attr_reader :cardholder_verification_method # EMV tag 84. Similar to the application identifier stored on the integrated circuit chip. attr_reader :dedicated_file_name # The outcome of a series of EMV functions performed by the card reader. attr_reader :terminal_verification_results # An indication of various EMV functions performed during the transaction. attr_reader :transaction_status_information end class Wallet < Stripe::StripeObject # The type of mobile wallet, one of `apple_pay`, `google_pay`, `samsung_pay`, or `unknown`. attr_reader :type end # The authorized amount attr_reader :amount_authorized # Card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`. attr_reader :brand # The [product code](https://stripe.com/docs/card-product-codes) that identifies the specific program or product associated with a card. attr_reader :brand_product # When using manual capture, a future timestamp after which the charge will be automatically refunded if uncaptured. attr_reader :capture_before # The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). 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. attr_reader :cardholder_name # 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. attr_reader :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.) attr_reader :description # Authorization response cryptogram. attr_reader :emv_auth_data # Two-digit number representing the card's expiration month. attr_reader :exp_month # Four-digit number representing the card's expiration year. attr_reader :exp_year # 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.* attr_reader :fingerprint # Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. attr_reader :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. attr_reader :generated_card # Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) attr_reader :iin # Whether this [PaymentIntent](https://stripe.com/docs/api/payment_intents) is eligible for incremental authorizations. Request support using [request_incremental_authorization_support](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-payment_method_options-card_present-request_incremental_authorization_support). attr_reader :incremental_authorization_supported # The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) attr_reader :issuer # The last four digits of the card. attr_reader :last4 # Identifies which network this charge was processed on. Can be `amex`, `cartes_bancaires`, `diners`, `discover`, `eftpos_au`, `interac`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`. attr_reader :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. attr_reader :network_transaction_id # Details about payments collected offline. attr_reader :offline # Defines whether the authorized amount can be over-captured or not attr_reader :overcapture_supported # EMV tag 5F2D. Preferred languages specified by the integrated circuit chip. attr_reader :preferred_locales # How card details were read in this transaction. attr_reader :read_method # A collection of fields required to be displayed on receipts. Only required for EMV transactions. attr_reader :receipt # Attribute for field wallet attr_reader :wallet end # Attribute for field card_present attr_reader :card_present # The type of payment method transaction-specific details from the transaction that generated this `card` payment method. Always `card_present`. attr_reader :type end # The charge that created this object. attr_reader :charge # Transaction-specific details of the payment method used in the payment. attr_reader :payment_method_details # The ID of the SetupAttempt that generated this PaymentMethod, if any. attr_reader :setup_attempt end class Networks < Stripe::StripeObject # All networks available for selection via [payment_method_options.card.network](/api/payment_intents/confirm#confirm_payment_intent-payment_method_options-card-network). attr_reader :available # The preferred network for co-branded cards. Can be `cartes_bancaires`, `mastercard`, `visa` or `invalid_preference` if requested network is not valid for the card. attr_reader :preferred end class ThreeDSecureUsage < Stripe::StripeObject # Whether 3D Secure is supported on this card. attr_reader :supported end class Wallet < Stripe::StripeObject class AmexExpressCheckout < Stripe::StripeObject; end class ApplePay < Stripe::StripeObject; end class GooglePay < Stripe::StripeObject; end class Link < Stripe::StripeObject; end class Masterpass < Stripe::StripeObject class BillingAddress < Stripe::StripeObject # City, district, suburb, town, or village. attr_reader :city # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). attr_reader :country # Address line 1 (e.g., street, PO Box, or company name). attr_reader :line1 # Address line 2 (e.g., apartment, suite, unit, or building). attr_reader :line2 # ZIP or postal code. attr_reader :postal_code # State, county, province, or region. attr_reader :state end class ShippingAddress < Stripe::StripeObject # City, district, suburb, town, or village. attr_reader :city # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). attr_reader :country # Address line 1 (e.g., street, PO Box, or company name). attr_reader :line1 # Address line 2 (e.g., apartment, suite, unit, or building). attr_reader :line2 # ZIP or postal code. attr_reader :postal_code # State, county, province, or region. attr_reader :state end # Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. attr_reader :billing_address # Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. attr_reader :email # Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. attr_reader :name # Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. attr_reader :shipping_address end class SamsungPay < Stripe::StripeObject; end class VisaCheckout < Stripe::StripeObject class BillingAddress < Stripe::StripeObject # City, district, suburb, town, or village. attr_reader :city # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). attr_reader :country # Address line 1 (e.g., street, PO Box, or company name). attr_reader :line1 # Address line 2 (e.g., apartment, suite, unit, or building). attr_reader :line2 # ZIP or postal code. attr_reader :postal_code # State, county, province, or region. attr_reader :state end class ShippingAddress < Stripe::StripeObject # City, district, suburb, town, or village. attr_reader :city # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). attr_reader :country # Address line 1 (e.g., street, PO Box, or company name). attr_reader :line1 # Address line 2 (e.g., apartment, suite, unit, or building). attr_reader :line2 # ZIP or postal code. attr_reader :postal_code # State, county, province, or region. attr_reader :state end # Owner's verified billing address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. attr_reader :billing_address # Owner's verified email. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. attr_reader :email # Owner's verified full name. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. attr_reader :name # Owner's verified shipping address. Values are verified or provided by the wallet directly (if supported) at the time of authorization or settlement. They cannot be set or mutated. attr_reader :shipping_address end # Attribute for field amex_express_checkout attr_reader :amex_express_checkout # Attribute for field apple_pay attr_reader :apple_pay # (For tokenized numbers only.) The last four digits of the device account number. attr_reader :dynamic_last4 # Attribute for field google_pay attr_reader :google_pay # Attribute for field link attr_reader :link # Attribute for field masterpass attr_reader :masterpass # Attribute for field samsung_pay attr_reader :samsung_pay # The type of the card wallet, one of `amex_express_checkout`, `apple_pay`, `google_pay`, `masterpass`, `samsung_pay`, `visa_checkout`, or `link`. 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. attr_reader :type # Attribute for field visa_checkout attr_reader :visa_checkout end # Card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`. attr_reader :brand # Checks on Card address and CVC if provided. attr_reader :checks # 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. attr_reader :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.) attr_reader :description # The brand to use when displaying the card, this accounts for customer's brand choice on dual-branded cards. Can be `american_express`, `cartes_bancaires`, `diners_club`, `discover`, `eftpos_australia`, `interac`, `jcb`, `mastercard`, `union_pay`, `visa`, or `other` and may contain more values in the future. attr_reader :display_brand # Two-digit number representing the card's expiration month. attr_reader :exp_month # Four-digit number representing the card's expiration year. attr_reader :exp_year # 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.* attr_reader :fingerprint # Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. attr_reader :funding # Details of the original PaymentMethod that created this object. attr_reader :generated_from # Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) attr_reader :iin # The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) attr_reader :issuer # The last four digits of the card. attr_reader :last4 # Contains information about card networks that can be used to process the payment. attr_reader :networks # Status of a card based on the card issuer. attr_reader :regulated_status # Contains details on how this Card may be used for 3D Secure authentication. attr_reader :three_d_secure_usage # If this Card is part of a card wallet, this contains the details of the card wallet. attr_reader :wallet end class CardPresent < Stripe::StripeObject class Networks < Stripe::StripeObject # All networks available for selection via [payment_method_options.card.network](/api/payment_intents/confirm#confirm_payment_intent-payment_method_options-card-network). attr_reader :available # The preferred network for the card. attr_reader :preferred end class Offline < Stripe::StripeObject # Time at which the payment was collected while offline attr_reader :stored_at # The method used to process this payment method offline. Only deferred is allowed. attr_reader :type end class Wallet < Stripe::StripeObject # The type of mobile wallet, one of `apple_pay`, `google_pay`, `samsung_pay`, or `unknown`. attr_reader :type end # Card brand. Can be `amex`, `diners`, `discover`, `eftpos_au`, `jcb`, `link`, `mastercard`, `unionpay`, `visa`, or `unknown`. attr_reader :brand # The [product code](https://stripe.com/docs/card-product-codes) that identifies the specific program or product associated with a card. attr_reader :brand_product # The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). 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. attr_reader :cardholder_name # 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. attr_reader :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.) attr_reader :description # Two-digit number representing the card's expiration month. attr_reader :exp_month # Four-digit number representing the card's expiration year. attr_reader :exp_year # 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.* attr_reader :fingerprint # Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. attr_reader :funding # Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) attr_reader :iin # The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) attr_reader :issuer # The last four digits of the card. attr_reader :last4 # Contains information about card networks that can be used to process the payment. attr_reader :networks # Details about payment methods collected offline. attr_reader :offline # EMV tag 5F2D. Preferred languages specified by the integrated circuit chip. attr_reader :preferred_locales # How card details were read in this transaction. attr_reader :read_method # Attribute for field wallet attr_reader :wallet end class Cashapp < Stripe::StripeObject # A unique and immutable identifier assigned by Cash App to every buyer. attr_reader :buyer_id # A public identifier for buyers using Cash App. attr_reader :cashtag end class CustomerBalance < Stripe::StripeObject; end class Eps < Stripe::StripeObject # The customer's bank. Should be one of `arzte_und_apotheker_bank`, `austrian_anadi_bank_ag`, `bank_austria`, `bankhaus_carl_spangler`, `bankhaus_schelhammer_und_schattera_ag`, `bawag_psk_ag`, `bks_bank_ag`, `brull_kallmus_bank_ag`, `btv_vier_lander_bank`, `capital_bank_grawe_gruppe_ag`, `deutsche_bank_ag`, `dolomitenbank`, `easybank_ag`, `erste_bank_und_sparkassen`, `hypo_alpeadriabank_international_ag`, `hypo_noe_lb_fur_niederosterreich_u_wien`, `hypo_oberosterreich_salzburg_steiermark`, `hypo_tirol_bank_ag`, `hypo_vorarlberg_bank_ag`, `hypo_bank_burgenland_aktiengesellschaft`, `marchfelder_bank`, `oberbank_ag`, `raiffeisen_bankengruppe_osterreich`, `schoellerbank_ag`, `sparda_bank_wien`, `volksbank_gruppe`, `volkskreditbank_ag`, or `vr_bank_braunau`. attr_reader :bank end class Fpx < Stripe::StripeObject # Account holder type, if provided. Can be one of `individual` or `company`. attr_reader :account_holder_type # The customer's bank, if provided. Can be one of `affin_bank`, `agrobank`, `alliance_bank`, `ambank`, `bank_islam`, `bank_muamalat`, `bank_rakyat`, `bsn`, `cimb`, `hong_leong_bank`, `hsbc`, `kfh`, `maybank2u`, `ocbc`, `public_bank`, `rhb`, `standard_chartered`, `uob`, `deutsche_bank`, `maybank2e`, `pb_enterprise`, or `bank_of_china`. attr_reader :bank end class Giropay < Stripe::StripeObject; end class Gopay < Stripe::StripeObject; end class Grabpay < Stripe::StripeObject; end class IdBankTransfer < Stripe::StripeObject # Attribute for field bank attr_reader :bank # Attribute for field bank_code attr_reader :bank_code # Attribute for field bank_name attr_reader :bank_name # Attribute for field display_name attr_reader :display_name end class Ideal < Stripe::StripeObject # The customer's bank, if provided. Can be one of `abn_amro`, `asn_bank`, `bunq`, `handelsbanken`, `ing`, `knab`, `moneyou`, `n26`, `nn`, `rabobank`, `regiobank`, `revolut`, `sns_bank`, `triodos_bank`, `van_lanschot`, or `yoursafe`. attr_reader :bank # The Bank Identifier Code of the customer's bank, if the bank was provided. attr_reader :bic end class InteracPresent < Stripe::StripeObject class Networks < Stripe::StripeObject # All networks available for selection via [payment_method_options.card.network](/api/payment_intents/confirm#confirm_payment_intent-payment_method_options-card-network). attr_reader :available # The preferred network for the card. attr_reader :preferred end # Card brand. Can be `interac`, `mastercard` or `visa`. attr_reader :brand # The cardholder name as read from the card, in [ISO 7813](https://en.wikipedia.org/wiki/ISO/IEC_7813) format. May include alphanumeric characters, special characters and first/last name separator (`/`). 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. attr_reader :cardholder_name # 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. attr_reader :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.) attr_reader :description # Two-digit number representing the card's expiration month. attr_reader :exp_month # Four-digit number representing the card's expiration year. attr_reader :exp_year # 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.* attr_reader :fingerprint # Card funding type. Can be `credit`, `debit`, `prepaid`, or `unknown`. attr_reader :funding # Issuer identification number of the card. (For internal use only and not typically available in standard API requests.) attr_reader :iin # The name of the card's issuing bank. (For internal use only and not typically available in standard API requests.) attr_reader :issuer # The last four digits of the card. attr_reader :last4 # Contains information about card networks that can be used to process the payment. attr_reader :networks # EMV tag 5F2D. Preferred languages specified by the integrated circuit chip. attr_reader :preferred_locales # How card details were read in this transaction. attr_reader :read_method end class KakaoPay < Stripe::StripeObject; end class Klarna < Stripe::StripeObject class Dob < Stripe::StripeObject # The day of birth, between 1 and 31. attr_reader :day # The month of birth, between 1 and 12. attr_reader :month # The four-digit year of birth. attr_reader :year end # The customer's date of birth, if provided. attr_reader :dob end class Konbini < Stripe::StripeObject; end class KrCard < Stripe::StripeObject # The local credit or debit card brand. attr_reader :brand # The last four digits of the card. This may not be present for American Express cards. attr_reader :last4 end class Link < Stripe::StripeObject # Account owner's email address. attr_reader :email # [Deprecated] This is a legacy parameter that no longer has any function. attr_reader :persistent_token end class MbWay < Stripe::StripeObject; end class Mobilepay < Stripe::StripeObject; end class Multibanco < Stripe::StripeObject; end class NaverPay < Stripe::StripeObject # Uniquely identifies this particular Naver Pay account. You can use this attribute to check whether two Naver Pay accounts are the same. attr_reader :buyer_id # Whether to fund this transaction with Naver Pay points or a card. attr_reader :funding end class NzBankAccount < Stripe::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. attr_reader :account_holder_name # The numeric code for the bank account's bank. attr_reader :bank_code # The name of the bank. attr_reader :bank_name # The numeric code for the bank account's bank branch. attr_reader :branch_code # Last four digits of the bank account number. attr_reader :last4 # The suffix of the bank account number. attr_reader :suffix end class Oxxo < Stripe::StripeObject; end class P24 < Stripe::StripeObject # The customer's bank, if provided. attr_reader :bank end class PayByBank < Stripe::StripeObject; end class Payco < Stripe::StripeObject; end class Paynow < Stripe::StripeObject; end class Paypal < Stripe::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. attr_reader :country # Uniquely identifies this particular PayPal account. You can use this attribute to check whether two PayPal accounts are the same. attr_reader :fingerprint # Owner's email. Values are provided by PayPal directly # (if supported) at the time of authorization or settlement. They cannot be set or mutated. attr_reader :payer_email # PayPal account PayerID. This identifier uniquely identifies the PayPal customer. attr_reader :payer_id # Owner's verified email. Values are verified or provided by PayPal directly # (if supported) at the time of authorization or settlement. They cannot be set or mutated. attr_reader :verified_email end class Payto < Stripe::StripeObject # Bank-State-Branch number of the bank account. attr_reader :bsb_number # Last four digits of the bank account number. attr_reader :last4 # The PayID alias for the bank account. attr_reader :pay_id end class Pix < Stripe::StripeObject; end class Promptpay < Stripe::StripeObject; end class Qris < Stripe::StripeObject; end class RadarOptions < Stripe::StripeObject # A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. attr_reader :session end class Rechnung < Stripe::StripeObject class Dob < Stripe::StripeObject # The day of birth, between 1 and 31. attr_reader :day # The month of birth, between 1 and 12. attr_reader :month # The four-digit year of birth. attr_reader :year end # Attribute for field dob attr_reader :dob end class RevolutPay < Stripe::StripeObject; end class SamsungPay < Stripe::StripeObject; end class Satispay < Stripe::StripeObject; end class SepaDebit < Stripe::StripeObject class GeneratedFrom < Stripe::StripeObject # The ID of the Charge that generated this PaymentMethod, if any. attr_reader :charge # The ID of the SetupAttempt that generated this PaymentMethod, if any. attr_reader :setup_attempt end # Bank code of bank associated with the bank account. attr_reader :bank_code # Branch code of bank associated with the bank account. attr_reader :branch_code # Two-letter ISO code representing the country the bank account is located in. attr_reader :country # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. attr_reader :fingerprint # Information about the object that generated this PaymentMethod. attr_reader :generated_from # Last four characters of the IBAN. attr_reader :last4 end class Shopeepay < Stripe::StripeObject; end class Sofort < Stripe::StripeObject # Two-letter ISO code representing the country the bank account is located in. attr_reader :country end class Swish < Stripe::StripeObject; end class Twint < Stripe::StripeObject; end class UsBankAccount < Stripe::StripeObject class Networks < Stripe::StripeObject # The preferred network. attr_reader :preferred # All supported networks. attr_reader :supported end class StatusDetails < Stripe::StripeObject class Blocked < Stripe::StripeObject # The ACH network code that resulted in this block. attr_reader :network_code # The reason why this PaymentMethod's fingerprint has been blocked attr_reader :reason end # Attribute for field blocked attr_reader :blocked end # Account holder type: individual or company. attr_reader :account_holder_type # Account number of the bank account. attr_reader :account_number # Account type: checkings or savings. Defaults to checking if omitted. attr_reader :account_type # The name of the bank. attr_reader :bank_name # The ID of the Financial Connections Account used to create the payment method. attr_reader :financial_connections_account # Uniquely identifies this particular bank account. You can use this attribute to check whether two bank accounts are the same. attr_reader :fingerprint # Last four digits of the bank account number. attr_reader :last4 # Contains information about US bank account networks that can be used. attr_reader :networks # Routing number of the bank account. attr_reader :routing_number # Contains information about the future reusability of this PaymentMethod. attr_reader :status_details end class WechatPay < Stripe::StripeObject; end class Zip < Stripe::StripeObject; end class ListParams < Stripe::RequestParams # The ID of the customer whose PaymentMethods will be retrieved. attr_accessor :customer # A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with `obj_bar`, your subsequent call can include `ending_before=obj_bar` in order to fetch the previous page of the list. attr_accessor :ending_before # Specifies which fields in the response should be expanded. attr_accessor :expand # A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 10. attr_accessor :limit # A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with `obj_foo`, your subsequent call can include `starting_after=obj_foo` in order to fetch the next page of the list. attr_accessor :starting_after # An optional filter on the list, based on the object `type` field. Without the filter, the list includes all current and future payment method types. If your integration expects only one type of payment method in the response, make sure to provide a type value in the request. attr_accessor :type def initialize( customer: nil, ending_before: nil, expand: nil, limit: nil, starting_after: nil, type: nil ) @customer = customer @ending_before = ending_before @expand = expand @limit = limit @starting_after = starting_after @type = type end end class CreateParams < Stripe::RequestParams class AcssDebit < Stripe::RequestParams # Customer's bank account number. attr_accessor :account_number # Institution number of the customer's bank. attr_accessor :institution_number # Transit number of the customer's bank. attr_accessor :transit_number def initialize(account_number: nil, institution_number: nil, transit_number: nil) @account_number = account_number @institution_number = institution_number @transit_number = transit_number end end class Affirm < Stripe::RequestParams end class AfterpayClearpay < Stripe::RequestParams end class Alipay < Stripe::RequestParams end class Alma < Stripe::RequestParams end class AmazonPay < Stripe::RequestParams end class AuBecsDebit < Stripe::RequestParams # The account number for the bank account. attr_accessor :account_number # Bank-State-Branch number of the bank account. attr_accessor :bsb_number def initialize(account_number: nil, bsb_number: nil) @account_number = account_number @bsb_number = bsb_number end end class BacsDebit < Stripe::RequestParams # Account number of the bank account that the funds will be debited from. attr_accessor :account_number # Sort code of the bank account. (e.g., `10-20-30`) attr_accessor :sort_code def initialize(account_number: nil, sort_code: nil) @account_number = account_number @sort_code = sort_code end end class Bancontact < Stripe::RequestParams end class Billie < Stripe::RequestParams end class BillingDetails < Stripe::RequestParams class Address < Stripe::RequestParams # City, district, suburb, town, or village. attr_accessor :city # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). attr_accessor :country # Address line 1 (e.g., street, PO Box, or company name). attr_accessor :line1 # Address line 2 (e.g., apartment, suite, unit, or building). attr_accessor :line2 # ZIP or postal code. attr_accessor :postal_code # State, county, province, or region. attr_accessor :state def initialize( city: nil, country: nil, line1: nil, line2: nil, postal_code: nil, state: nil ) @city = city @country = country @line1 = line1 @line2 = line2 @postal_code = postal_code @state = state end end # Billing address. attr_accessor :address # Email address. attr_accessor :email # Full name. attr_accessor :name # Billing phone number (including extension). attr_accessor :phone def initialize(address: nil, email: nil, name: nil, phone: nil) @address = address @email = email @name = name @phone = phone end end class Blik < Stripe::RequestParams end class Boleto < Stripe::RequestParams # The tax ID of the customer (CPF for individual consumers or CNPJ for businesses consumers) attr_accessor :tax_id def initialize(tax_id: nil) @tax_id = tax_id end end class Card < Stripe::RequestParams class Networks < Stripe::RequestParams # The customer's preferred card network for co-branded cards. Supports `cartes_bancaires`, `mastercard`, or `visa`. Selection of a network that does not apply to the card will be stored as `invalid_preference` on the card. attr_accessor :preferred def initialize(preferred: nil) @preferred = preferred end end # The card's CVC. It is highly recommended to always include this value. attr_accessor :cvc # Two-digit number representing the card's expiration month. attr_accessor :exp_month # Four-digit number representing the card's expiration year. attr_accessor :exp_year # Contains information about card networks used to process the payment. attr_accessor :networks # The card number, as a string without any separators. attr_accessor :number # For backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple Pay, Amex Express Checkout, or legacy Checkout) into the card hash with format card: {token: "tok_visa"}. attr_accessor :token def initialize( cvc: nil, exp_month: nil, exp_year: nil, networks: nil, number: nil, token: nil ) @cvc = cvc @exp_month = exp_month @exp_year = exp_year @networks = networks @number = number @token = token end end class Cashapp < Stripe::RequestParams end class CustomerBalance < Stripe::RequestParams end class Eps < Stripe::RequestParams # The customer's bank. attr_accessor :bank def initialize(bank: nil) @bank = bank end end class Fpx < Stripe::RequestParams # Account holder type for FPX transaction attr_accessor :account_holder_type # The customer's bank. attr_accessor :bank def initialize(account_holder_type: nil, bank: nil) @account_holder_type = account_holder_type @bank = bank end end class Giropay < Stripe::RequestParams end class Gopay < Stripe::RequestParams end class Grabpay < Stripe::RequestParams end class IdBankTransfer < Stripe::RequestParams # Bank where the account is held. attr_accessor :bank def initialize(bank: nil) @bank = bank end end class Ideal < Stripe::RequestParams # The customer's bank. Only use this parameter for existing customers. Don't use it for new customers. attr_accessor :bank def initialize(bank: nil) @bank = bank end end class InteracPresent < Stripe::RequestParams end class KakaoPay < Stripe::RequestParams end class Klarna < Stripe::RequestParams class Dob < Stripe::RequestParams # The day of birth, between 1 and 31. attr_accessor :day # The month of birth, between 1 and 12. attr_accessor :month # The four-digit year of birth. attr_accessor :year def initialize(day: nil, month: nil, year: nil) @day = day @month = month @year = year end end # Customer's date of birth attr_accessor :dob def initialize(dob: nil) @dob = dob end end class Konbini < Stripe::RequestParams end class KrCard < Stripe::RequestParams end class Link < Stripe::RequestParams end class MbWay < Stripe::RequestParams end class Mobilepay < Stripe::RequestParams end class Multibanco < Stripe::RequestParams end class NaverPay < Stripe::RequestParams # Whether to use Naver Pay points or a card to fund this transaction. If not provided, this defaults to `card`. attr_accessor :funding def initialize(funding: nil) @funding = funding end end class NzBankAccount < Stripe::RequestParams # The name on the bank account. Only required if the account holder name is different from the name of the authorized signatory collected in the PaymentMethod’s billing details. attr_accessor :account_holder_name # The account number for the bank account. attr_accessor :account_number # The numeric code for the bank account's bank. attr_accessor :bank_code # The numeric code for the bank account's bank branch. attr_accessor :branch_code # Attribute for param field reference attr_accessor :reference # The suffix of the bank account number. attr_accessor :suffix def initialize( account_holder_name: nil, account_number: nil, bank_code: nil, branch_code: nil, reference: nil, suffix: nil ) @account_holder_name = account_holder_name @account_number = account_number @bank_code = bank_code @branch_code = branch_code @reference = reference @suffix = suffix end end class Oxxo < Stripe::RequestParams end class P24 < Stripe::RequestParams # The customer's bank. attr_accessor :bank def initialize(bank: nil) @bank = bank end end class PayByBank < Stripe::RequestParams end class Payco < Stripe::RequestParams end class Paynow < Stripe::RequestParams end class Paypal < Stripe::RequestParams end class Payto < Stripe::RequestParams # The account number for the bank account. attr_accessor :account_number # Bank-State-Branch number of the bank account. attr_accessor :bsb_number # The PayID alias for the bank account. attr_accessor :pay_id def initialize(account_number: nil, bsb_number: nil, pay_id: nil) @account_number = account_number @bsb_number = bsb_number @pay_id = pay_id end end class Pix < Stripe::RequestParams end class Promptpay < Stripe::RequestParams end class Qris < Stripe::RequestParams end class RadarOptions < Stripe::RequestParams # A [Radar Session](https://stripe.com/docs/radar/radar-session) is a snapshot of the browser metadata and device details that help Radar make more accurate predictions on your payments. attr_accessor :session def initialize(session: nil) @session = session end end class Rechnung < Stripe::RequestParams class Dob < Stripe::RequestParams # The day of birth, between 1 and 31. attr_accessor :day # The month of birth, between 1 and 12. attr_accessor :month # The four-digit year of birth. attr_accessor :year def initialize(day: nil, month: nil, year: nil) @day = day @month = month @year = year end end # Customer's date of birth attr_accessor :dob def initialize(dob: nil) @dob = dob end end class RevolutPay < Stripe::RequestParams end class SamsungPay < Stripe::RequestParams end class Satispay < Stripe::RequestParams end class SepaDebit < Stripe::RequestParams # IBAN of the bank account. attr_accessor :iban def initialize(iban: nil) @iban = iban end end class Shopeepay < Stripe::RequestParams end class Sofort < Stripe::RequestParams # Two-letter ISO code representing the country the bank account is located in. attr_accessor :country def initialize(country: nil) @country = country end end class Swish < Stripe::RequestParams end class Twint < Stripe::RequestParams end class UsBankAccount < Stripe::RequestParams # Account holder type: individual or company. attr_accessor :account_holder_type # Account number of the bank account. attr_accessor :account_number # Account type: checkings or savings. Defaults to checking if omitted. attr_accessor :account_type # The ID of a Financial Connections Account to use as a payment method. attr_accessor :financial_connections_account # Routing number of the bank account. attr_accessor :routing_number def initialize( account_holder_type: nil, account_number: nil, account_type: nil, financial_connections_account: nil, routing_number: nil ) @account_holder_type = account_holder_type @account_number = account_number @account_type = account_type @financial_connections_account = financial_connections_account @routing_number = routing_number end end class WechatPay < Stripe::RequestParams end class Zip < Stripe::RequestParams end # If this is an `acss_debit` PaymentMethod, this hash contains details about the ACSS Debit payment method. attr_accessor :acss_debit # If this is an `affirm` PaymentMethod, this hash contains details about the Affirm payment method. attr_accessor :affirm # If this is an `AfterpayClearpay` PaymentMethod, this hash contains details about the AfterpayClearpay payment method. attr_accessor :afterpay_clearpay # If this is an `Alipay` PaymentMethod, this hash contains details about the Alipay payment method. attr_accessor :alipay # This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`. attr_accessor :allow_redisplay # If this is a Alma PaymentMethod, this hash contains details about the Alma payment method. attr_accessor :alma # If this is a AmazonPay PaymentMethod, this hash contains details about the AmazonPay payment method. attr_accessor :amazon_pay # If this is an `au_becs_debit` PaymentMethod, this hash contains details about the bank account. attr_accessor :au_becs_debit # If this is a `bacs_debit` PaymentMethod, this hash contains details about the Bacs Direct Debit bank account. attr_accessor :bacs_debit # If this is a `bancontact` PaymentMethod, this hash contains details about the Bancontact payment method. attr_accessor :bancontact # If this is a `billie` PaymentMethod, this hash contains details about the billie payment method. attr_accessor :billie # Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. attr_accessor :billing_details # If this is a `blik` PaymentMethod, this hash contains details about the BLIK payment method. attr_accessor :blik # If this is a `boleto` PaymentMethod, this hash contains details about the Boleto payment method. attr_accessor :boleto # If this is a `card` PaymentMethod, this hash contains the user's card details. For backwards compatibility, you can alternatively provide a Stripe token (e.g., for Apple Pay, Amex Express Checkout, or legacy Checkout) into the card hash with format `card: {token: "tok_visa"}`. When providing a card number, you must meet the requirements for [PCI compliance](https://stripe.com/docs/security#validating-pci-compliance). We strongly recommend using Stripe.js instead of interacting with this API directly. attr_accessor :card # If this is a `cashapp` PaymentMethod, this hash contains details about the Cash App Pay payment method. attr_accessor :cashapp # The `Customer` to whom the original PaymentMethod is attached. attr_accessor :customer # If this is a `customer_balance` PaymentMethod, this hash contains details about the CustomerBalance payment method. attr_accessor :customer_balance # If this is an `eps` PaymentMethod, this hash contains details about the EPS payment method. attr_accessor :eps # Specifies which fields in the response should be expanded. attr_accessor :expand # If this is an `fpx` PaymentMethod, this hash contains details about the FPX payment method. attr_accessor :fpx # If this is a `giropay` PaymentMethod, this hash contains details about the Giropay payment method. attr_accessor :giropay # If this is a Gopay PaymentMethod, this hash contains details about the Gopay payment method. attr_accessor :gopay # If this is a `grabpay` PaymentMethod, this hash contains details about the GrabPay payment method. attr_accessor :grabpay # If this is an `IdBankTransfer` PaymentMethod, this hash contains details about the IdBankTransfer payment method. attr_accessor :id_bank_transfer # If this is an `ideal` PaymentMethod, this hash contains details about the iDEAL payment method. attr_accessor :ideal # If this is an `interac_present` PaymentMethod, this hash contains details about the Interac Present payment method. attr_accessor :interac_present # If this is a `kakao_pay` PaymentMethod, this hash contains details about the Kakao Pay payment method. attr_accessor :kakao_pay # If this is a `klarna` PaymentMethod, this hash contains details about the Klarna payment method. attr_accessor :klarna # If this is a `konbini` PaymentMethod, this hash contains details about the Konbini payment method. attr_accessor :konbini # If this is a `kr_card` PaymentMethod, this hash contains details about the Korean Card payment method. attr_accessor :kr_card # If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. attr_accessor :link # If this is a MB WAY PaymentMethod, this hash contains details about the MB WAY payment method. attr_accessor :mb_way # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. attr_accessor :metadata # If this is a `mobilepay` PaymentMethod, this hash contains details about the MobilePay payment method. attr_accessor :mobilepay # If this is a `multibanco` PaymentMethod, this hash contains details about the Multibanco payment method. attr_accessor :multibanco # If this is a `naver_pay` PaymentMethod, this hash contains details about the Naver Pay payment method. attr_accessor :naver_pay # If this is an nz_bank_account PaymentMethod, this hash contains details about the nz_bank_account payment method. attr_accessor :nz_bank_account # If this is an `oxxo` PaymentMethod, this hash contains details about the OXXO payment method. attr_accessor :oxxo # If this is a `p24` PaymentMethod, this hash contains details about the P24 payment method. attr_accessor :p24 # If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method. attr_accessor :pay_by_bank # If this is a `payco` PaymentMethod, this hash contains details about the PAYCO payment method. attr_accessor :payco # The PaymentMethod to share. attr_accessor :payment_method # If this is a `paynow` PaymentMethod, this hash contains details about the PayNow payment method. attr_accessor :paynow # If this is a `paypal` PaymentMethod, this hash contains details about the PayPal payment method. attr_accessor :paypal # If this is a `payto` PaymentMethod, this hash contains details about the PayTo payment method. attr_accessor :payto # If this is a `pix` PaymentMethod, this hash contains details about the Pix payment method. attr_accessor :pix # If this is a `promptpay` PaymentMethod, this hash contains details about the PromptPay payment method. attr_accessor :promptpay # If this is a `qris` PaymentMethod, this hash contains details about the QRIS payment method. attr_accessor :qris # Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. attr_accessor :radar_options # If this is a `rechnung` PaymentMethod, this hash contains details about the Rechnung payment method. attr_accessor :rechnung # If this is a `Revolut Pay` PaymentMethod, this hash contains details about the Revolut Pay payment method. attr_accessor :revolut_pay # If this is a `samsung_pay` PaymentMethod, this hash contains details about the SamsungPay payment method. attr_accessor :samsung_pay # If this is a `satispay` PaymentMethod, this hash contains details about the satispay payment method. attr_accessor :satispay # If this is a `sepa_debit` PaymentMethod, this hash contains details about the SEPA debit bank account. attr_accessor :sepa_debit # If this is a Shopeepay PaymentMethod, this hash contains details about the Shopeepay payment method. attr_accessor :shopeepay # If this is a `sofort` PaymentMethod, this hash contains details about the SOFORT payment method. attr_accessor :sofort # If this is a `swish` PaymentMethod, this hash contains details about the Swish payment method. attr_accessor :swish # If this is a TWINT PaymentMethod, this hash contains details about the TWINT payment method. attr_accessor :twint # The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. attr_accessor :type # If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. attr_accessor :us_bank_account # If this is an `wechat_pay` PaymentMethod, this hash contains details about the wechat_pay payment method. attr_accessor :wechat_pay # If this is a `zip` PaymentMethod, this hash contains details about the Zip payment method. attr_accessor :zip def initialize( acss_debit: nil, affirm: nil, afterpay_clearpay: nil, alipay: nil, allow_redisplay: nil, alma: nil, amazon_pay: nil, au_becs_debit: nil, bacs_debit: nil, bancontact: nil, billie: nil, billing_details: nil, blik: nil, boleto: nil, card: nil, cashapp: nil, customer: nil, customer_balance: nil, eps: nil, expand: nil, fpx: nil, giropay: nil, gopay: nil, grabpay: nil, id_bank_transfer: nil, ideal: nil, interac_present: nil, kakao_pay: nil, klarna: nil, konbini: nil, kr_card: nil, link: nil, mb_way: nil, metadata: nil, mobilepay: nil, multibanco: nil, naver_pay: nil, nz_bank_account: nil, oxxo: nil, p24: nil, pay_by_bank: nil, payco: nil, payment_method: nil, paynow: nil, paypal: nil, payto: nil, pix: nil, promptpay: nil, qris: nil, radar_options: nil, rechnung: nil, revolut_pay: nil, samsung_pay: nil, satispay: nil, sepa_debit: nil, shopeepay: nil, sofort: nil, swish: nil, twint: nil, type: nil, us_bank_account: nil, wechat_pay: nil, zip: nil ) @acss_debit = acss_debit @affirm = affirm @afterpay_clearpay = afterpay_clearpay @alipay = alipay @allow_redisplay = allow_redisplay @alma = alma @amazon_pay = amazon_pay @au_becs_debit = au_becs_debit @bacs_debit = bacs_debit @bancontact = bancontact @billie = billie @billing_details = billing_details @blik = blik @boleto = boleto @card = card @cashapp = cashapp @customer = customer @customer_balance = customer_balance @eps = eps @expand = expand @fpx = fpx @giropay = giropay @gopay = gopay @grabpay = grabpay @id_bank_transfer = id_bank_transfer @ideal = ideal @interac_present = interac_present @kakao_pay = kakao_pay @klarna = klarna @konbini = konbini @kr_card = kr_card @link = link @mb_way = mb_way @metadata = metadata @mobilepay = mobilepay @multibanco = multibanco @naver_pay = naver_pay @nz_bank_account = nz_bank_account @oxxo = oxxo @p24 = p24 @pay_by_bank = pay_by_bank @payco = payco @payment_method = payment_method @paynow = paynow @paypal = paypal @payto = payto @pix = pix @promptpay = promptpay @qris = qris @radar_options = radar_options @rechnung = rechnung @revolut_pay = revolut_pay @samsung_pay = samsung_pay @satispay = satispay @sepa_debit = sepa_debit @shopeepay = shopeepay @sofort = sofort @swish = swish @twint = twint @type = type @us_bank_account = us_bank_account @wechat_pay = wechat_pay @zip = zip end end class RetrieveParams < Stripe::RequestParams # Specifies which fields in the response should be expanded. attr_accessor :expand def initialize(expand: nil) @expand = expand end end class UpdateParams < Stripe::RequestParams class BillingDetails < Stripe::RequestParams class Address < Stripe::RequestParams # City, district, suburb, town, or village. attr_accessor :city # Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)). attr_accessor :country # Address line 1 (e.g., street, PO Box, or company name). attr_accessor :line1 # Address line 2 (e.g., apartment, suite, unit, or building). attr_accessor :line2 # ZIP or postal code. attr_accessor :postal_code # State, county, province, or region. attr_accessor :state def initialize( city: nil, country: nil, line1: nil, line2: nil, postal_code: nil, state: nil ) @city = city @country = country @line1 = line1 @line2 = line2 @postal_code = postal_code @state = state end end # Billing address. attr_accessor :address # Email address. attr_accessor :email # Full name. attr_accessor :name # Billing phone number (including extension). attr_accessor :phone def initialize(address: nil, email: nil, name: nil, phone: nil) @address = address @email = email @name = name @phone = phone end end class Card < Stripe::RequestParams class Networks < Stripe::RequestParams # The customer's preferred card network for co-branded cards. Supports `cartes_bancaires`, `mastercard`, or `visa`. Selection of a network that does not apply to the card will be stored as `invalid_preference` on the card. attr_accessor :preferred def initialize(preferred: nil) @preferred = preferred end end # Two-digit number representing the card's expiration month. attr_accessor :exp_month # Four-digit number representing the card's expiration year. attr_accessor :exp_year # Contains information about card networks used to process the payment. attr_accessor :networks def initialize(exp_month: nil, exp_year: nil, networks: nil) @exp_month = exp_month @exp_year = exp_year @networks = networks end end class Link < Stripe::RequestParams end class PayByBank < Stripe::RequestParams end class Payto < Stripe::RequestParams # The account number for the bank account. attr_accessor :account_number # Bank-State-Branch number of the bank account. attr_accessor :bsb_number # The PayID alias for the bank account. attr_accessor :pay_id def initialize(account_number: nil, bsb_number: nil, pay_id: nil) @account_number = account_number @bsb_number = bsb_number @pay_id = pay_id end end class UsBankAccount < Stripe::RequestParams # Bank account holder type. attr_accessor :account_holder_type # Bank account type. attr_accessor :account_type def initialize(account_holder_type: nil, account_type: nil) @account_holder_type = account_holder_type @account_type = account_type end end # This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to `unspecified`. attr_accessor :allow_redisplay # Billing information associated with the PaymentMethod that may be used or required by particular types of payment methods. attr_accessor :billing_details # If this is a `card` PaymentMethod, this hash contains the user's card details. attr_accessor :card # Specifies which fields in the response should be expanded. attr_accessor :expand # If this is an `Link` PaymentMethod, this hash contains details about the Link payment method. attr_accessor :link # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to `metadata`. attr_accessor :metadata # If this is a `pay_by_bank` PaymentMethod, this hash contains details about the PayByBank payment method. attr_accessor :pay_by_bank # If this is a `payto` PaymentMethod, this hash contains details about the PayTo payment method. attr_accessor :payto # If this is an `us_bank_account` PaymentMethod, this hash contains details about the US bank account payment method. attr_accessor :us_bank_account def initialize( allow_redisplay: nil, billing_details: nil, card: nil, expand: nil, link: nil, metadata: nil, pay_by_bank: nil, payto: nil, us_bank_account: nil ) @allow_redisplay = allow_redisplay @billing_details = billing_details @card = card @expand = expand @link = link @metadata = metadata @pay_by_bank = pay_by_bank @payto = payto @us_bank_account = us_bank_account end end class AttachParams < Stripe::RequestParams # The ID of the customer to which to attach the PaymentMethod. attr_accessor :customer # Specifies which fields in the response should be expanded. attr_accessor :expand def initialize(customer: nil, expand: nil) @customer = customer @expand = expand end end class DetachParams < Stripe::RequestParams # Specifies which fields in the response should be expanded. attr_accessor :expand def initialize(expand: nil) @expand = expand end end # Attribute for field acss_debit attr_reader :acss_debit # Attribute for field affirm attr_reader :affirm # Attribute for field afterpay_clearpay attr_reader :afterpay_clearpay # Attribute for field alipay attr_reader :alipay # This field indicates whether this payment method can be shown again to its customer in a checkout flow. Stripe products such as Checkout and Elements use this field to determine whether a payment method can be shown as a saved payment method in a checkout flow. The field defaults to “unspecified”. attr_reader :allow_redisplay # Attribute for field alma attr_reader :alma # Attribute for field amazon_pay attr_reader :amazon_pay # Attribute for field au_becs_debit attr_reader :au_becs_debit # Attribute for field bacs_debit attr_reader :bacs_debit # Attribute for field bancontact attr_reader :bancontact # Attribute for field billie attr_reader :billie # Attribute for field billing_details attr_reader :billing_details # Attribute for field blik attr_reader :blik # Attribute for field boleto attr_reader :boleto # Attribute for field card attr_reader :card # Attribute for field card_present attr_reader :card_present # Attribute for field cashapp attr_reader :cashapp # Time at which the object was created. Measured in seconds since the Unix epoch. attr_reader :created # The ID of the Customer to which this PaymentMethod is saved. This will not be set when the PaymentMethod has not been saved to a Customer. attr_reader :customer # Attribute for field customer_balance attr_reader :customer_balance # Attribute for field eps attr_reader :eps # Attribute for field fpx attr_reader :fpx # Attribute for field giropay attr_reader :giropay # Attribute for field gopay attr_reader :gopay # Attribute for field grabpay attr_reader :grabpay # Unique identifier for the object. attr_reader :id # Attribute for field id_bank_transfer attr_reader :id_bank_transfer # Attribute for field ideal attr_reader :ideal # Attribute for field interac_present attr_reader :interac_present # Attribute for field kakao_pay attr_reader :kakao_pay # Attribute for field klarna attr_reader :klarna # Attribute for field konbini attr_reader :konbini # Attribute for field kr_card attr_reader :kr_card # Attribute for field link attr_reader :link # Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode. attr_reader :livemode # Attribute for field mb_way attr_reader :mb_way # Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format. attr_reader :metadata # Attribute for field mobilepay attr_reader :mobilepay # Attribute for field multibanco attr_reader :multibanco # Attribute for field naver_pay attr_reader :naver_pay # Attribute for field nz_bank_account attr_reader :nz_bank_account # String representing the object's type. Objects of the same type share the same value. attr_reader :object # Attribute for field oxxo attr_reader :oxxo # Attribute for field p24 attr_reader :p24 # Attribute for field pay_by_bank attr_reader :pay_by_bank # Attribute for field payco attr_reader :payco # Attribute for field paynow attr_reader :paynow # Attribute for field paypal attr_reader :paypal # Attribute for field payto attr_reader :payto # Attribute for field pix attr_reader :pix # Attribute for field promptpay attr_reader :promptpay # Attribute for field qris attr_reader :qris # Options to configure Radar. See [Radar Session](https://stripe.com/docs/radar/radar-session) for more information. attr_reader :radar_options # Attribute for field rechnung attr_reader :rechnung # Attribute for field revolut_pay attr_reader :revolut_pay # Attribute for field samsung_pay attr_reader :samsung_pay # Attribute for field satispay attr_reader :satispay # Attribute for field sepa_debit attr_reader :sepa_debit # Attribute for field shopeepay attr_reader :shopeepay # Attribute for field sofort attr_reader :sofort # Attribute for field swish attr_reader :swish # Attribute for field twint attr_reader :twint # The type of the PaymentMethod. An additional hash is included on the PaymentMethod with a name matching this value. It contains additional information specific to the PaymentMethod type. attr_reader :type # Attribute for field us_bank_account attr_reader :us_bank_account # Attribute for field wechat_pay attr_reader :wechat_pay # Attribute for field zip attr_reader :zip # Attaches a PaymentMethod object to a Customer. # # To attach a new PaymentMethod to a customer for future payments, we recommend you use a [SetupIntent](https://stripe.com/docs/api/setup_intents) # or a PaymentIntent with [setup_future_usage](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-setup_future_usage). # These approaches will perform any necessary steps to set up the PaymentMethod for future payments. Using the /v1/payment_methods/:id/attach # endpoint without first using a SetupIntent or PaymentIntent with setup_future_usage does not optimize the PaymentMethod for # future use, which makes later declines and payment friction more likely. # See [Optimizing cards for future payments](https://stripe.com/docs/payments/payment-intents#future-usage) for more information about setting up # future payments. # # To use this PaymentMethod as the default for invoice or subscription payments, # set [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method), # on the Customer to the PaymentMethod's ID. def attach(params = {}, opts = {}) request_stripe_object( method: :post, path: format("/v1/payment_methods/%s/attach", { payment_method: CGI.escape(self["id"]) }), params: params, opts: opts ) end # Attaches a PaymentMethod object to a Customer. # # To attach a new PaymentMethod to a customer for future payments, we recommend you use a [SetupIntent](https://stripe.com/docs/api/setup_intents) # or a PaymentIntent with [setup_future_usage](https://stripe.com/docs/api/payment_intents/create#create_payment_intent-setup_future_usage). # These approaches will perform any necessary steps to set up the PaymentMethod for future payments. Using the /v1/payment_methods/:id/attach # endpoint without first using a SetupIntent or PaymentIntent with setup_future_usage does not optimize the PaymentMethod for # future use, which makes later declines and payment friction more likely. # See [Optimizing cards for future payments](https://stripe.com/docs/payments/payment-intents#future-usage) for more information about setting up # future payments. # # To use this PaymentMethod as the default for invoice or subscription payments, # set [invoice_settings.default_payment_method](https://stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method), # on the Customer to the PaymentMethod's ID. def self.attach(payment_method, params = {}, opts = {}) request_stripe_object( method: :post, path: format("/v1/payment_methods/%s/attach", { payment_method: CGI.escape(payment_method) }), params: params, opts: opts ) end # Creates a PaymentMethod object. Read the [Stripe.js reference](https://stripe.com/docs/stripe-js/reference#stripe-create-payment-method) to learn how to create PaymentMethods via Stripe.js. # # Instead of creating a PaymentMethod directly, we recommend using the [PaymentIntents API to accept a payment immediately or the SetupIntent](https://stripe.com/docs/payments/accept-a-payment) API to collect payment method details ahead of a future payment. def self.create(params = {}, opts = {}) request_stripe_object(method: :post, path: "/v1/payment_methods", params: params, opts: opts) end # Detaches a PaymentMethod object from a Customer. After a PaymentMethod is detached, it can no longer be used for a payment or re-attached to a Customer. def detach(params = {}, opts = {}) request_stripe_object( method: :post, path: format("/v1/payment_methods/%s/detach", { payment_method: CGI.escape(self["id"]) }), params: params, opts: opts ) end # Detaches a PaymentMethod object from a Customer. After a PaymentMethod is detached, it can no longer be used for a payment or re-attached to a Customer. def self.detach(payment_method, params = {}, opts = {}) request_stripe_object( method: :post, path: format("/v1/payment_methods/%s/detach", { payment_method: CGI.escape(payment_method) }), params: params, opts: opts ) end # Returns a list of PaymentMethods for Treasury flows. If you want to list the PaymentMethods attached to a Customer for payments, you should use the [List a Customer's PaymentMethods](https://stripe.com/docs/api/payment_methods/customer_list) API instead. def self.list(params = {}, opts = {}) request_stripe_object(method: :get, path: "/v1/payment_methods", params: params, opts: opts) end # Updates a PaymentMethod object. A PaymentMethod must be attached a customer to be updated. def self.update(payment_method, params = {}, opts = {}) request_stripe_object( method: :post, path: format("/v1/payment_methods/%s", { payment_method: CGI.escape(payment_method) }), params: params, opts: opts ) end end end