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, AuBecsDebit, BacsDebit, Bancontact, Billie, BillingDetails, Blik, Boleto, Card, CardPresent, Cashapp, Crypto, 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



1489
1490
1491
# File 'lib/stripe/resources/payment_method.rb', line 1489

def acss_debit
  @acss_debit
end

#affirmObject (readonly)

Attribute for field affirm



1491
1492
1493
# File 'lib/stripe/resources/payment_method.rb', line 1491

def affirm
  @affirm
end

#afterpay_clearpayObject (readonly)

Attribute for field afterpay_clearpay



1493
1494
1495
# File 'lib/stripe/resources/payment_method.rb', line 1493

def afterpay_clearpay
  @afterpay_clearpay
end

#alipayObject (readonly)

Attribute for field alipay



1495
1496
1497
# File 'lib/stripe/resources/payment_method.rb', line 1495

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



1497
1498
1499
# File 'lib/stripe/resources/payment_method.rb', line 1497

def allow_redisplay
  @allow_redisplay
end

#almaObject (readonly)

Attribute for field alma



1499
1500
1501
# File 'lib/stripe/resources/payment_method.rb', line 1499

def alma
  @alma
end

#amazon_payObject (readonly)

Attribute for field amazon_pay



1501
1502
1503
# File 'lib/stripe/resources/payment_method.rb', line 1501

def amazon_pay
  @amazon_pay
end

#au_becs_debitObject (readonly)

Attribute for field au_becs_debit



1503
1504
1505
# File 'lib/stripe/resources/payment_method.rb', line 1503

def au_becs_debit
  @au_becs_debit
end

#bacs_debitObject (readonly)

Attribute for field bacs_debit



1505
1506
1507
# File 'lib/stripe/resources/payment_method.rb', line 1505

def bacs_debit
  @bacs_debit
end

#bancontactObject (readonly)

Attribute for field bancontact



1507
1508
1509
# File 'lib/stripe/resources/payment_method.rb', line 1507

def bancontact
  @bancontact
end

#billieObject (readonly)

Attribute for field billie



1509
1510
1511
# File 'lib/stripe/resources/payment_method.rb', line 1509

def billie
  @billie
end

#billing_detailsObject (readonly)

Attribute for field billing_details



1511
1512
1513
# File 'lib/stripe/resources/payment_method.rb', line 1511

def billing_details
  @billing_details
end

#blikObject (readonly)

Attribute for field blik



1513
1514
1515
# File 'lib/stripe/resources/payment_method.rb', line 1513

def blik
  @blik
end

#boletoObject (readonly)

Attribute for field boleto



1515
1516
1517
# File 'lib/stripe/resources/payment_method.rb', line 1515

def boleto
  @boleto
end

#cardObject (readonly)

Attribute for field card



1517
1518
1519
# File 'lib/stripe/resources/payment_method.rb', line 1517

def card
  @card
end

#card_presentObject (readonly)

Attribute for field card_present



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

def card_present
  @card_present
end

#cashappObject (readonly)

Attribute for field cashapp



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

def cashapp
  @cashapp
end

#createdObject (readonly)

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



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

def created
  @created
end

#cryptoObject (readonly)

Attribute for field crypto



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

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.



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

def customer
  @customer
end

#customer_accountObject (readonly)

Attribute for field customer_account



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

def 
  @customer_account
end

#customer_balanceObject (readonly)

Attribute for field customer_balance



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

def customer_balance
  @customer_balance
end

#epsObject (readonly)

Attribute for field eps



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

def eps
  @eps
end

#fpxObject (readonly)

Attribute for field fpx



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

def fpx
  @fpx
end

#giropayObject (readonly)

Attribute for field giropay



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

def giropay
  @giropay
end

#gopayObject (readonly)

Attribute for field gopay



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

def gopay
  @gopay
end

#grabpayObject (readonly)

Attribute for field grabpay



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

def grabpay
  @grabpay
end

#idObject (readonly)

Unique identifier for the object.



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

def id
  @id
end

#id_bank_transferObject (readonly)

Attribute for field id_bank_transfer



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

def id_bank_transfer
  @id_bank_transfer
end

#idealObject (readonly)

Attribute for field ideal



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

def ideal
  @ideal
end

#interac_presentObject (readonly)

Attribute for field interac_present



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

def interac_present
  @interac_present
end

#kakao_payObject (readonly)

Attribute for field kakao_pay



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

def kakao_pay
  @kakao_pay
end

#klarnaObject (readonly)

Attribute for field klarna



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

def klarna
  @klarna
end

#konbiniObject (readonly)

Attribute for field konbini



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

def konbini
  @konbini
end

#kr_cardObject (readonly)

Attribute for field kr_card



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

def kr_card
  @kr_card
end

#latest_active_mandateObject (readonly)

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



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

def latest_active_mandate
  @latest_active_mandate
end

Attribute for field link



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

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.



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

def livemode
  @livemode
end

#mb_wayObject (readonly)

Attribute for field mb_way



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

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.



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

def 
  @metadata
end

#mobilepayObject (readonly)

Attribute for field mobilepay



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

def mobilepay
  @mobilepay
end

#multibancoObject (readonly)

Attribute for field multibanco



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

def multibanco
  @multibanco
end

Attribute for field naver_pay



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

def naver_pay
  @naver_pay
end

#nz_bank_accountObject (readonly)

Attribute for field nz_bank_account



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

def 
  @nz_bank_account
end

#objectObject (readonly)

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



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

def object
  @object
end

#oxxoObject (readonly)

Attribute for field oxxo



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

def oxxo
  @oxxo
end

#p24Object (readonly)

Attribute for field p24



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

def p24
  @p24
end

#pay_by_bankObject (readonly)

Attribute for field pay_by_bank



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

def pay_by_bank
  @pay_by_bank
end

#paycoObject (readonly)

Attribute for field payco



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

def payco
  @payco
end

#paynowObject (readonly)

Attribute for field paynow



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

def paynow
  @paynow
end

#paypalObject (readonly)

Attribute for field paypal



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

def paypal
  @paypal
end

#paypayObject (readonly)

Attribute for field paypay



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

def paypay
  @paypay
end

#paytoObject (readonly)

Attribute for field payto



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

def payto
  @payto
end

#pixObject (readonly)

Attribute for field pix



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

def pix
  @pix
end

#promptpayObject (readonly)

Attribute for field promptpay



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

def promptpay
  @promptpay
end

#qrisObject (readonly)

Attribute for field qris



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

def qris
  @qris
end

#radar_optionsObject (readonly)

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



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

def radar_options
  @radar_options
end

#rechnungObject (readonly)

Attribute for field rechnung



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

def rechnung
  @rechnung
end

#revolut_payObject (readonly)

Attribute for field revolut_pay



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

def revolut_pay
  @revolut_pay
end

#samsung_payObject (readonly)

Attribute for field samsung_pay



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

def samsung_pay
  @samsung_pay
end

#satispayObject (readonly)

Attribute for field satispay



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

def satispay
  @satispay
end

#sepa_debitObject (readonly)

Attribute for field sepa_debit



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

def sepa_debit
  @sepa_debit
end

#shopeepayObject (readonly)

Attribute for field shopeepay



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

def shopeepay
  @shopeepay
end

#sofortObject (readonly)

Attribute for field sofort



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

def sofort
  @sofort
end

#stripe_balanceObject (readonly)

Attribute for field stripe_balance



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

def stripe_balance
  @stripe_balance
end

#swishObject (readonly)

Attribute for field swish



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

def swish
  @swish
end

#twintObject (readonly)

Attribute for field twint



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

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.



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

def type
  @type
end

#us_bank_accountObject (readonly)

Attribute for field us_bank_account



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

def 
  @us_bank_account
end

#wechat_payObject (readonly)

Attribute for field wechat_pay



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

def wechat_pay
  @wechat_pay
end

#zipObject (readonly)

Attribute for field zip



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

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.



1666
1667
1668
1669
1670
1671
1672
1673
# File 'lib/stripe/resources/payment_method.rb', line 1666

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.



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

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.



1693
1694
1695
1696
1697
1698
1699
1700
# File 'lib/stripe/resources/payment_method.rb', line 1693

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



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

def self.field_remappings
  @field_remappings = {}
end

.inner_class_typesObject



1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
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
# File 'lib/stripe/resources/payment_method.rb', line 1717

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



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

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.



1708
1709
1710
1711
1712
1713
1714
1715
# File 'lib/stripe/resources/payment_method.rb', line 1708

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.



1644
1645
1646
1647
1648
1649
1650
1651
# File 'lib/stripe/resources/payment_method.rb', line 1644

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.



1683
1684
1685
1686
1687
1688
1689
1690
# File 'lib/stripe/resources/payment_method.rb', line 1683

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