Class: Stripe::PaymentMethod

Inherits:
APIResource show all
Extended by:
APIOperations::Create, APIOperations::List
Includes:
APIOperations::Save
Defined in:
lib/stripe/resources/payment_method.rb

Overview

PaymentMethod objects represent your customer’s payment instruments. You can use them with [PaymentIntents](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](stripe.com/docs/payments/payment-methods) and [More Payment Scenarios](stripe.com/docs/payments/more-payment-scenarios).

Defined Under Namespace

Classes: AcssDebit, Affirm, AfterpayClearpay, Alipay, Alma, AmazonPay, AttachParams, AuBecsDebit, BacsDebit, Bancontact, Billie, BillingDetails, Blik, Boleto, Card, CardPresent, Cashapp, CreateParams, Crypto, CustomerBalance, DetachParams, Eps, Fpx, Giropay, Gopay, Grabpay, IdBankTransfer, Ideal, InteracPresent, KakaoPay, Klarna, Konbini, KrCard, Link, ListParams, MbWay, Mobilepay, Multibanco, NaverPay, NzBankAccount, Oxxo, P24, PayByBank, Payco, Paynow, Paypal, Payto, Pix, Promptpay, Qris, RadarOptions, Rechnung, RevolutPay, SamsungPay, Satispay, SepaDebit, Shopeepay, Sofort, StripeBalance, Swish, Twint, UpdateParams, UsBankAccount, WechatPay, Zip

Constant Summary collapse

OBJECT_NAME =
"payment_method"

Constants inherited from StripeObject

StripeObject::RESERVED_FIELD_NAMES

Instance Attribute Summary collapse

Attributes inherited from APIResource

#save_with_parent

Attributes inherited from StripeObject

#last_response

Class Method Summary collapse

Instance Method Summary collapse

Methods included from APIOperations::Create

create

Methods included from APIOperations::List

list

Methods included from APIOperations::Save

included, #save

Methods inherited from APIResource

class_name, custom_method, #refresh, #request_stripe_object, resource_url, #resource_url, retrieve, save_nested_resource

Methods included from APIOperations::Request

included

Methods inherited from StripeObject

#==, #[], #[]=, additive_object_param, additive_object_param?, #as_json, construct_from, #deleted?, #dirty!, #each, #eql?, #hash, #initialize, #inspect, #keys, #marshal_dump, #marshal_load, protected_fields, #serialize_params, #to_hash, #to_json, #to_s, #update_attributes, #values

Constructor Details

This class inherits a constructor from Stripe::StripeObject

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Stripe::StripeObject

Instance Attribute Details

#acss_debitObject (readonly)

Attribute for field acss_debit



1574
1575
1576
# File 'lib/stripe/resources/payment_method.rb', line 1574

def acss_debit
  @acss_debit
end

#affirmObject (readonly)

Attribute for field affirm



1576
1577
1578
# File 'lib/stripe/resources/payment_method.rb', line 1576

def affirm
  @affirm
end

#afterpay_clearpayObject (readonly)

Attribute for field afterpay_clearpay



1578
1579
1580
# File 'lib/stripe/resources/payment_method.rb', line 1578

def afterpay_clearpay
  @afterpay_clearpay
end

#alipayObject (readonly)

Attribute for field alipay



1580
1581
1582
# File 'lib/stripe/resources/payment_method.rb', line 1580

def alipay
  @alipay
end

#allow_redisplayObject (readonly)

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”.



1582
1583
1584
# File 'lib/stripe/resources/payment_method.rb', line 1582

def allow_redisplay
  @allow_redisplay
end

#almaObject (readonly)

Attribute for field alma



1584
1585
1586
# File 'lib/stripe/resources/payment_method.rb', line 1584

def alma
  @alma
end

#amazon_payObject (readonly)

Attribute for field amazon_pay



1586
1587
1588
# File 'lib/stripe/resources/payment_method.rb', line 1586

def amazon_pay
  @amazon_pay
end

#au_becs_debitObject (readonly)

Attribute for field au_becs_debit



1588
1589
1590
# File 'lib/stripe/resources/payment_method.rb', line 1588

def au_becs_debit
  @au_becs_debit
end

#bacs_debitObject (readonly)

Attribute for field bacs_debit



1590
1591
1592
# File 'lib/stripe/resources/payment_method.rb', line 1590

def bacs_debit
  @bacs_debit
end

#bancontactObject (readonly)

Attribute for field bancontact



1592
1593
1594
# File 'lib/stripe/resources/payment_method.rb', line 1592

def bancontact
  @bancontact
end

#billieObject (readonly)

Attribute for field billie



1594
1595
1596
# File 'lib/stripe/resources/payment_method.rb', line 1594

def billie
  @billie
end

#billing_detailsObject (readonly)

Attribute for field billing_details



1596
1597
1598
# File 'lib/stripe/resources/payment_method.rb', line 1596

def billing_details
  @billing_details
end

#blikObject (readonly)

Attribute for field blik



1598
1599
1600
# File 'lib/stripe/resources/payment_method.rb', line 1598

def blik
  @blik
end

#boletoObject (readonly)

Attribute for field boleto



1600
1601
1602
# File 'lib/stripe/resources/payment_method.rb', line 1600

def boleto
  @boleto
end

#cardObject (readonly)

Attribute for field card



1602
1603
1604
# File 'lib/stripe/resources/payment_method.rb', line 1602

def card
  @card
end

#card_presentObject (readonly)

Attribute for field card_present



1604
1605
1606
# File 'lib/stripe/resources/payment_method.rb', line 1604

def card_present
  @card_present
end

#cashappObject (readonly)

Attribute for field cashapp



1606
1607
1608
# File 'lib/stripe/resources/payment_method.rb', line 1606

def cashapp
  @cashapp
end

#createdObject (readonly)

Time at which the object was created. Measured in seconds since the Unix epoch.



1608
1609
1610
# File 'lib/stripe/resources/payment_method.rb', line 1608

def created
  @created
end

#cryptoObject (readonly)

Attribute for field crypto



1610
1611
1612
# File 'lib/stripe/resources/payment_method.rb', line 1610

def crypto
  @crypto
end

#customerObject (readonly)

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.



1612
1613
1614
# File 'lib/stripe/resources/payment_method.rb', line 1612

def customer
  @customer
end

#customer_accountObject (readonly)

Attribute for field customer_account



1614
1615
1616
# File 'lib/stripe/resources/payment_method.rb', line 1614

def 
  @customer_account
end

#customer_balanceObject (readonly)

Attribute for field customer_balance



1616
1617
1618
# File 'lib/stripe/resources/payment_method.rb', line 1616

def customer_balance
  @customer_balance
end

#epsObject (readonly)

Attribute for field eps



1618
1619
1620
# File 'lib/stripe/resources/payment_method.rb', line 1618

def eps
  @eps
end

#fpxObject (readonly)

Attribute for field fpx



1620
1621
1622
# File 'lib/stripe/resources/payment_method.rb', line 1620

def fpx
  @fpx
end

#giropayObject (readonly)

Attribute for field giropay



1622
1623
1624
# File 'lib/stripe/resources/payment_method.rb', line 1622

def giropay
  @giropay
end

#gopayObject (readonly)

Attribute for field gopay



1624
1625
1626
# File 'lib/stripe/resources/payment_method.rb', line 1624

def gopay
  @gopay
end

#grabpayObject (readonly)

Attribute for field grabpay



1626
1627
1628
# File 'lib/stripe/resources/payment_method.rb', line 1626

def grabpay
  @grabpay
end

#idObject (readonly)

Unique identifier for the object.



1628
1629
1630
# File 'lib/stripe/resources/payment_method.rb', line 1628

def id
  @id
end

#id_bank_transferObject (readonly)

Attribute for field id_bank_transfer



1630
1631
1632
# File 'lib/stripe/resources/payment_method.rb', line 1630

def id_bank_transfer
  @id_bank_transfer
end

#idealObject (readonly)

Attribute for field ideal



1632
1633
1634
# File 'lib/stripe/resources/payment_method.rb', line 1632

def ideal
  @ideal
end

#interac_presentObject (readonly)

Attribute for field interac_present



1634
1635
1636
# File 'lib/stripe/resources/payment_method.rb', line 1634

def interac_present
  @interac_present
end

#kakao_payObject (readonly)

Attribute for field kakao_pay



1636
1637
1638
# File 'lib/stripe/resources/payment_method.rb', line 1636

def kakao_pay
  @kakao_pay
end

#klarnaObject (readonly)

Attribute for field klarna



1638
1639
1640
# File 'lib/stripe/resources/payment_method.rb', line 1638

def klarna
  @klarna
end

#konbiniObject (readonly)

Attribute for field konbini



1640
1641
1642
# File 'lib/stripe/resources/payment_method.rb', line 1640

def konbini
  @konbini
end

#kr_cardObject (readonly)

Attribute for field kr_card



1642
1643
1644
# File 'lib/stripe/resources/payment_method.rb', line 1642

def kr_card
  @kr_card
end

Attribute for field link



1644
1645
1646
# File 'lib/stripe/resources/payment_method.rb', line 1644

def link
  @link
end

#livemodeObject (readonly)

Has the value ‘true` if the object exists in live mode or the value `false` if the object exists in test mode.



1646
1647
1648
# File 'lib/stripe/resources/payment_method.rb', line 1646

def livemode
  @livemode
end

#mb_wayObject (readonly)

Attribute for field mb_way



1648
1649
1650
# File 'lib/stripe/resources/payment_method.rb', line 1648

def mb_way
  @mb_way
end

#metadataObject (readonly)

Set of [key-value pairs](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.



1650
1651
1652
# File 'lib/stripe/resources/payment_method.rb', line 1650

def 
  @metadata
end

#mobilepayObject (readonly)

Attribute for field mobilepay



1652
1653
1654
# File 'lib/stripe/resources/payment_method.rb', line 1652

def mobilepay
  @mobilepay
end

#multibancoObject (readonly)

Attribute for field multibanco



1654
1655
1656
# File 'lib/stripe/resources/payment_method.rb', line 1654

def multibanco
  @multibanco
end

Attribute for field naver_pay



1656
1657
1658
# File 'lib/stripe/resources/payment_method.rb', line 1656

def naver_pay
  @naver_pay
end

#nz_bank_accountObject (readonly)

Attribute for field nz_bank_account



1658
1659
1660
# File 'lib/stripe/resources/payment_method.rb', line 1658

def 
  @nz_bank_account
end

#objectObject (readonly)

String representing the object’s type. Objects of the same type share the same value.



1660
1661
1662
# File 'lib/stripe/resources/payment_method.rb', line 1660

def object
  @object
end

#oxxoObject (readonly)

Attribute for field oxxo



1662
1663
1664
# File 'lib/stripe/resources/payment_method.rb', line 1662

def oxxo
  @oxxo
end

#p24Object (readonly)

Attribute for field p24



1664
1665
1666
# File 'lib/stripe/resources/payment_method.rb', line 1664

def p24
  @p24
end

#pay_by_bankObject (readonly)

Attribute for field pay_by_bank



1666
1667
1668
# File 'lib/stripe/resources/payment_method.rb', line 1666

def pay_by_bank
  @pay_by_bank
end

#paycoObject (readonly)

Attribute for field payco



1668
1669
1670
# File 'lib/stripe/resources/payment_method.rb', line 1668

def payco
  @payco
end

#paynowObject (readonly)

Attribute for field paynow



1670
1671
1672
# File 'lib/stripe/resources/payment_method.rb', line 1670

def paynow
  @paynow
end

#paypalObject (readonly)

Attribute for field paypal



1672
1673
1674
# File 'lib/stripe/resources/payment_method.rb', line 1672

def paypal
  @paypal
end

#paytoObject (readonly)

Attribute for field payto



1674
1675
1676
# File 'lib/stripe/resources/payment_method.rb', line 1674

def payto
  @payto
end

#pixObject (readonly)

Attribute for field pix



1676
1677
1678
# File 'lib/stripe/resources/payment_method.rb', line 1676

def pix
  @pix
end

#promptpayObject (readonly)

Attribute for field promptpay



1678
1679
1680
# File 'lib/stripe/resources/payment_method.rb', line 1678

def promptpay
  @promptpay
end

#qrisObject (readonly)

Attribute for field qris



1680
1681
1682
# File 'lib/stripe/resources/payment_method.rb', line 1680

def qris
  @qris
end

#radar_optionsObject (readonly)

Options to configure Radar. See [Radar Session](stripe.com/docs/radar/radar-session) for more information.



1682
1683
1684
# File 'lib/stripe/resources/payment_method.rb', line 1682

def radar_options
  @radar_options
end

#rechnungObject (readonly)

Attribute for field rechnung



1684
1685
1686
# File 'lib/stripe/resources/payment_method.rb', line 1684

def rechnung
  @rechnung
end

#revolut_payObject (readonly)

Attribute for field revolut_pay



1686
1687
1688
# File 'lib/stripe/resources/payment_method.rb', line 1686

def revolut_pay
  @revolut_pay
end

#samsung_payObject (readonly)

Attribute for field samsung_pay



1688
1689
1690
# File 'lib/stripe/resources/payment_method.rb', line 1688

def samsung_pay
  @samsung_pay
end

#satispayObject (readonly)

Attribute for field satispay



1690
1691
1692
# File 'lib/stripe/resources/payment_method.rb', line 1690

def satispay
  @satispay
end

#sepa_debitObject (readonly)

Attribute for field sepa_debit



1692
1693
1694
# File 'lib/stripe/resources/payment_method.rb', line 1692

def sepa_debit
  @sepa_debit
end

#shopeepayObject (readonly)

Attribute for field shopeepay



1694
1695
1696
# File 'lib/stripe/resources/payment_method.rb', line 1694

def shopeepay
  @shopeepay
end

#sofortObject (readonly)

Attribute for field sofort



1696
1697
1698
# File 'lib/stripe/resources/payment_method.rb', line 1696

def sofort
  @sofort
end

#stripe_balanceObject (readonly)

Attribute for field stripe_balance



1698
1699
1700
# File 'lib/stripe/resources/payment_method.rb', line 1698

def stripe_balance
  @stripe_balance
end

#swishObject (readonly)

Attribute for field swish



1700
1701
1702
# File 'lib/stripe/resources/payment_method.rb', line 1700

def swish
  @swish
end

#twintObject (readonly)

Attribute for field twint



1702
1703
1704
# File 'lib/stripe/resources/payment_method.rb', line 1702

def twint
  @twint
end

#typeObject (readonly)

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.



1704
1705
1706
# File 'lib/stripe/resources/payment_method.rb', line 1704

def type
  @type
end

#us_bank_accountObject (readonly)

Attribute for field us_bank_account



1706
1707
1708
# File 'lib/stripe/resources/payment_method.rb', line 1706

def 
  @us_bank_account
end

#wechat_payObject (readonly)

Attribute for field wechat_pay



1708
1709
1710
# File 'lib/stripe/resources/payment_method.rb', line 1708

def wechat_pay
  @wechat_pay
end

#zipObject (readonly)

Attribute for field zip



1710
1711
1712
# File 'lib/stripe/resources/payment_method.rb', line 1710

def zip
  @zip
end

Class Method Details

.attach(payment_method, params = {}, opts = {}) ⇒ Object

Attaches a PaymentMethod object to a Customer.

To attach a new PaymentMethod to a customer for future payments, we recommend you use a [SetupIntent](docs.stripe.com/docs/api/setup_intents) or a PaymentIntent with [setup_future_usage](docs.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](docs.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](docs.stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method), on the Customer to the PaymentMethod’s ID.



1747
1748
1749
1750
1751
1752
1753
1754
# File 'lib/stripe/resources/payment_method.rb', line 1747

def self.attach(payment_method, params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/payment_methods/%<payment_method>s/attach", { payment_method: CGI.escape(payment_method) }),
    params: params,
    opts: opts
  )
end

.create(params = {}, opts = {}) ⇒ Object

Creates a PaymentMethod object. Read the [Stripe.js reference](docs.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 <a href=“/docs/payments/save-and-reuse”>SetupIntent](docs.stripe.com/docs/payments/accept-a-payment) API to collect payment method details ahead of a future payment.



1759
1760
1761
# File 'lib/stripe/resources/payment_method.rb', line 1759

def self.create(params = {}, opts = {})
  request_stripe_object(method: :post, path: "/v1/payment_methods", params: params, opts: opts)
end

.detach(payment_method, params = {}, opts = {}) ⇒ Object

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.



1774
1775
1776
1777
1778
1779
1780
1781
# File 'lib/stripe/resources/payment_method.rb', line 1774

def self.detach(payment_method, params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/payment_methods/%<payment_method>s/detach", { payment_method: CGI.escape(payment_method) }),
    params: params,
    opts: opts
  )
end

.list(params = {}, opts = {}) ⇒ Object

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](docs.stripe.com/docs/api/payment_methods/customer_list) API instead.



1784
1785
1786
# File 'lib/stripe/resources/payment_method.rb', line 1784

def self.list(params = {}, opts = {})
  request_stripe_object(method: :get, path: "/v1/payment_methods", params: params, opts: opts)
end

.object_nameObject



16
17
18
# File 'lib/stripe/resources/payment_method.rb', line 16

def self.object_name
  "payment_method"
end

.update(payment_method, params = {}, opts = {}) ⇒ Object

Updates a PaymentMethod object. A PaymentMethod must be attached a customer to be updated.



1789
1790
1791
1792
1793
1794
1795
1796
# File 'lib/stripe/resources/payment_method.rb', line 1789

def self.update(payment_method, params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/payment_methods/%<payment_method>s", { payment_method: CGI.escape(payment_method) }),
    params: params,
    opts: opts
  )
end

Instance Method Details

#attach(params = {}, opts = {}) ⇒ Object

Attaches a PaymentMethod object to a Customer.

To attach a new PaymentMethod to a customer for future payments, we recommend you use a [SetupIntent](docs.stripe.com/docs/api/setup_intents) or a PaymentIntent with [setup_future_usage](docs.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](docs.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](docs.stripe.com/docs/api/customers/update#update_customer-invoice_settings-default_payment_method), on the Customer to the PaymentMethod’s ID.



1725
1726
1727
1728
1729
1730
1731
1732
# File 'lib/stripe/resources/payment_method.rb', line 1725

def attach(params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/payment_methods/%<payment_method>s/attach", { payment_method: CGI.escape(self["id"]) }),
    params: params,
    opts: opts
  )
end

#detach(params = {}, opts = {}) ⇒ Object

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.



1764
1765
1766
1767
1768
1769
1770
1771
# File 'lib/stripe/resources/payment_method.rb', line 1764

def detach(params = {}, opts = {})
  request_stripe_object(
    method: :post,
    path: format("/v1/payment_methods/%<payment_method>s/detach", { payment_method: CGI.escape(self["id"]) }),
    params: params,
    opts: opts
  )
end