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](docs.stripe.com/payments/payment-intents) to collect payments or save them to Customer objects to store instrument details for future payments.

Related guides: [Payment Methods](docs.stripe.com/payments/payment-methods) and [More Payment Scenarios](docs.stripe.com/payments/more-payment-scenarios).

Defined Under Namespace

Classes: AcssDebit, Affirm, AfterpayClearpay, Alipay, Alma, AmazonPay, AuBecsDebit, BacsDebit, Bancontact, Billie, BillingDetails, Blik, Boleto, Card, CardPresent, Cashapp, Crypto, Custom, CustomerBalance, Eps, Fpx, Giropay, Gopay, Grabpay, IdBankTransfer, Ideal, InteracPresent, KakaoPay, Klarna, Konbini, KrCard, Link, MbWay, Mobilepay, Multibanco, NaverPay, NzBankAccount, Oxxo, P24, PayByBank, Payco, Paynow, Paypal, Paypay, Payto, Pix, Promptpay, Qris, RadarOptions, Rechnung, RevolutPay, SamsungPay, Satispay, SepaDebit, Shopeepay, Sofort, StripeBalance, Swish, Twint, 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

#==, #[], #[]=, #_get_inner_class_type, 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



1520
1521
1522
# File 'lib/stripe/resources/payment_method.rb', line 1520

def acss_debit
  @acss_debit
end

#affirmObject (readonly)

Attribute for field affirm



1522
1523
1524
# File 'lib/stripe/resources/payment_method.rb', line 1522

def affirm
  @affirm
end

#afterpay_clearpayObject (readonly)

Attribute for field afterpay_clearpay



1524
1525
1526
# File 'lib/stripe/resources/payment_method.rb', line 1524

def afterpay_clearpay
  @afterpay_clearpay
end

#alipayObject (readonly)

Attribute for field alipay



1526
1527
1528
# File 'lib/stripe/resources/payment_method.rb', line 1526

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



1528
1529
1530
# File 'lib/stripe/resources/payment_method.rb', line 1528

def allow_redisplay
  @allow_redisplay
end

#almaObject (readonly)

Attribute for field alma



1530
1531
1532
# File 'lib/stripe/resources/payment_method.rb', line 1530

def alma
  @alma
end

#amazon_payObject (readonly)

Attribute for field amazon_pay



1532
1533
1534
# File 'lib/stripe/resources/payment_method.rb', line 1532

def amazon_pay
  @amazon_pay
end

#au_becs_debitObject (readonly)

Attribute for field au_becs_debit



1534
1535
1536
# File 'lib/stripe/resources/payment_method.rb', line 1534

def au_becs_debit
  @au_becs_debit
end

#bacs_debitObject (readonly)

Attribute for field bacs_debit



1536
1537
1538
# File 'lib/stripe/resources/payment_method.rb', line 1536

def bacs_debit
  @bacs_debit
end

#bancontactObject (readonly)

Attribute for field bancontact



1538
1539
1540
# File 'lib/stripe/resources/payment_method.rb', line 1538

def bancontact
  @bancontact
end

#billieObject (readonly)

Attribute for field billie



1540
1541
1542
# File 'lib/stripe/resources/payment_method.rb', line 1540

def billie
  @billie
end

#billing_detailsObject (readonly)

Attribute for field billing_details



1542
1543
1544
# File 'lib/stripe/resources/payment_method.rb', line 1542

def billing_details
  @billing_details
end

#blikObject (readonly)

Attribute for field blik



1544
1545
1546
# File 'lib/stripe/resources/payment_method.rb', line 1544

def blik
  @blik
end

#boletoObject (readonly)

Attribute for field boleto



1546
1547
1548
# File 'lib/stripe/resources/payment_method.rb', line 1546

def boleto
  @boleto
end

#cardObject (readonly)

Attribute for field card



1548
1549
1550
# File 'lib/stripe/resources/payment_method.rb', line 1548

def card
  @card
end

#card_presentObject (readonly)

Attribute for field card_present



1550
1551
1552
# File 'lib/stripe/resources/payment_method.rb', line 1550

def card_present
  @card_present
end

#cashappObject (readonly)

Attribute for field cashapp



1552
1553
1554
# File 'lib/stripe/resources/payment_method.rb', line 1552

def cashapp
  @cashapp
end

#createdObject (readonly)

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



1554
1555
1556
# File 'lib/stripe/resources/payment_method.rb', line 1554

def created
  @created
end

#cryptoObject (readonly)

Attribute for field crypto



1556
1557
1558
# File 'lib/stripe/resources/payment_method.rb', line 1556

def crypto
  @crypto
end

#customObject (readonly)

Attribute for field custom



1558
1559
1560
# File 'lib/stripe/resources/payment_method.rb', line 1558

def custom
  @custom
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.



1560
1561
1562
# File 'lib/stripe/resources/payment_method.rb', line 1560

def customer
  @customer
end

#customer_accountObject (readonly)

Attribute for field customer_account



1562
1563
1564
# File 'lib/stripe/resources/payment_method.rb', line 1562

def 
  @customer_account
end

#customer_balanceObject (readonly)

Attribute for field customer_balance



1564
1565
1566
# File 'lib/stripe/resources/payment_method.rb', line 1564

def customer_balance
  @customer_balance
end

#epsObject (readonly)

Attribute for field eps



1566
1567
1568
# File 'lib/stripe/resources/payment_method.rb', line 1566

def eps
  @eps
end

#fpxObject (readonly)

Attribute for field fpx



1568
1569
1570
# File 'lib/stripe/resources/payment_method.rb', line 1568

def fpx
  @fpx
end

#giropayObject (readonly)

Attribute for field giropay



1570
1571
1572
# File 'lib/stripe/resources/payment_method.rb', line 1570

def giropay
  @giropay
end

#gopayObject (readonly)

Attribute for field gopay



1572
1573
1574
# File 'lib/stripe/resources/payment_method.rb', line 1572

def gopay
  @gopay
end

#grabpayObject (readonly)

Attribute for field grabpay



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

def grabpay
  @grabpay
end

#idObject (readonly)

Unique identifier for the object.



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

def id
  @id
end

#id_bank_transferObject (readonly)

Attribute for field id_bank_transfer



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

def id_bank_transfer
  @id_bank_transfer
end

#idealObject (readonly)

Attribute for field ideal



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

def ideal
  @ideal
end

#interac_presentObject (readonly)

Attribute for field interac_present



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

def interac_present
  @interac_present
end

#kakao_payObject (readonly)

Attribute for field kakao_pay



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

def kakao_pay
  @kakao_pay
end

#klarnaObject (readonly)

Attribute for field klarna



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

def klarna
  @klarna
end

#konbiniObject (readonly)

Attribute for field konbini



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

def konbini
  @konbini
end

#kr_cardObject (readonly)

Attribute for field kr_card



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

def kr_card
  @kr_card
end

#latest_active_mandateObject (readonly)

The Mandate object of the most recently created Mandate associated with this payment method



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

def latest_active_mandate
  @latest_active_mandate
end

Attribute for field link



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

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.



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

def livemode
  @livemode
end

#mb_wayObject (readonly)

Attribute for field mb_way



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

def mb_way
  @mb_way
end

#metadataObject (readonly)

Set of [key-value pairs](docs.stripe.com/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.



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

def 
  @metadata
end

#mobilepayObject (readonly)

Attribute for field mobilepay



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

def mobilepay
  @mobilepay
end

#multibancoObject (readonly)

Attribute for field multibanco



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

def multibanco
  @multibanco
end

Attribute for field naver_pay



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

def naver_pay
  @naver_pay
end

#nz_bank_accountObject (readonly)

Attribute for field nz_bank_account



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

def 
  @nz_bank_account
end

#objectObject (readonly)

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



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

def object
  @object
end

#oxxoObject (readonly)

Attribute for field oxxo



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

def oxxo
  @oxxo
end

#p24Object (readonly)

Attribute for field p24



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

def p24
  @p24
end

#pay_by_bankObject (readonly)

Attribute for field pay_by_bank



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

def pay_by_bank
  @pay_by_bank
end

#paycoObject (readonly)

Attribute for field payco



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

def payco
  @payco
end

#paynowObject (readonly)

Attribute for field paynow



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

def paynow
  @paynow
end

#paypalObject (readonly)

Attribute for field paypal



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

def paypal
  @paypal
end

#paypayObject (readonly)

Attribute for field paypay



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

def paypay
  @paypay
end

#paytoObject (readonly)

Attribute for field payto



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

def payto
  @payto
end

#pixObject (readonly)

Attribute for field pix



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

def pix
  @pix
end

#promptpayObject (readonly)

Attribute for field promptpay



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

def promptpay
  @promptpay
end

#qrisObject (readonly)

Attribute for field qris



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

def qris
  @qris
end

#radar_optionsObject (readonly)

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



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

def radar_options
  @radar_options
end

#rechnungObject (readonly)

Attribute for field rechnung



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

def rechnung
  @rechnung
end

#revolut_payObject (readonly)

Attribute for field revolut_pay



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

def revolut_pay
  @revolut_pay
end

#samsung_payObject (readonly)

Attribute for field samsung_pay



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

def samsung_pay
  @samsung_pay
end

#satispayObject (readonly)

Attribute for field satispay



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

def satispay
  @satispay
end

#sepa_debitObject (readonly)

Attribute for field sepa_debit



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

def sepa_debit
  @sepa_debit
end

#shopeepayObject (readonly)

Attribute for field shopeepay



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

def shopeepay
  @shopeepay
end

#sofortObject (readonly)

Attribute for field sofort



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

def sofort
  @sofort
end

#stripe_balanceObject (readonly)

Attribute for field stripe_balance



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

def stripe_balance
  @stripe_balance
end

#swishObject (readonly)

Attribute for field swish



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

def swish
  @swish
end

#twintObject (readonly)

Attribute for field twint



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

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.



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

def type
  @type
end

#us_bank_accountObject (readonly)

Attribute for field us_bank_account



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

def 
  @us_bank_account
end

#wechat_payObject (readonly)

Attribute for field wechat_pay



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

def wechat_pay
  @wechat_pay
end

#zipObject (readonly)

Attribute for field zip



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

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.



1699
1700
1701
1702
1703
1704
1705
1706
# File 'lib/stripe/resources/payment_method.rb', line 1699

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.



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

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.



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

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

.field_remappingsObject



1817
1818
1819
# File 'lib/stripe/resources/payment_method.rb', line 1817

def self.field_remappings
  @field_remappings = {}
end

.inner_class_typesObject



1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
# File 'lib/stripe/resources/payment_method.rb', line 1750

def self.inner_class_types
  @inner_class_types = {
    acss_debit: AcssDebit,
    affirm: Affirm,
    afterpay_clearpay: AfterpayClearpay,
    alipay: Alipay,
    alma: Alma,
    amazon_pay: AmazonPay,
    au_becs_debit: AuBecsDebit,
    bacs_debit: BacsDebit,
    bancontact: Bancontact,
    billie: Billie,
    billing_details: BillingDetails,
    blik: Blik,
    boleto: Boleto,
    card: Card,
    card_present: CardPresent,
    cashapp: Cashapp,
    crypto: Crypto,
    custom: Custom,
    customer_balance: CustomerBalance,
    eps: Eps,
    fpx: Fpx,
    giropay: Giropay,
    gopay: Gopay,
    grabpay: Grabpay,
    id_bank_transfer: IdBankTransfer,
    ideal: Ideal,
    interac_present: InteracPresent,
    kakao_pay: KakaoPay,
    klarna: Klarna,
    konbini: Konbini,
    kr_card: KrCard,
    link: Link,
    mb_way: MbWay,
    mobilepay: Mobilepay,
    multibanco: Multibanco,
    naver_pay: NaverPay,
    nz_bank_account: NzBankAccount,
    oxxo: Oxxo,
    p24: P24,
    pay_by_bank: PayByBank,
    payco: Payco,
    paynow: Paynow,
    paypal: Paypal,
    paypay: Paypay,
    payto: Payto,
    pix: Pix,
    promptpay: Promptpay,
    qris: Qris,
    radar_options: RadarOptions,
    rechnung: Rechnung,
    revolut_pay: RevolutPay,
    samsung_pay: SamsungPay,
    satispay: Satispay,
    sepa_debit: SepaDebit,
    shopeepay: Shopeepay,
    sofort: Sofort,
    stripe_balance: StripeBalance,
    swish: Swish,
    twint: Twint,
    us_bank_account: UsBankAccount,
    wechat_pay: WechatPay,
    zip: Zip,
  }
end

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

Returns a list of all PaymentMethods.



1736
1737
1738
# File 'lib/stripe/resources/payment_method.rb', line 1736

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 to a customer to be updated.



1741
1742
1743
1744
1745
1746
1747
1748
# File 'lib/stripe/resources/payment_method.rb', line 1741

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.



1677
1678
1679
1680
1681
1682
1683
1684
# File 'lib/stripe/resources/payment_method.rb', line 1677

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.



1716
1717
1718
1719
1720
1721
1722
1723
# File 'lib/stripe/resources/payment_method.rb', line 1716

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