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 to collect payments or save them to Customer objects to store instrument details for future payments.

Related guides: Payment Methods and More Payment Scenarios.

Defined Under Namespace

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



1464
1465
1466
# File 'lib/stripe/resources/payment_method.rb', line 1464

def acss_debit
  @acss_debit
end

#affirmObject (readonly)

Attribute for field affirm



1466
1467
1468
# File 'lib/stripe/resources/payment_method.rb', line 1466

def affirm
  @affirm
end

#afterpay_clearpayObject (readonly)

Attribute for field afterpay_clearpay



1468
1469
1470
# File 'lib/stripe/resources/payment_method.rb', line 1468

def afterpay_clearpay
  @afterpay_clearpay
end

#alipayObject (readonly)

Attribute for field alipay



1470
1471
1472
# File 'lib/stripe/resources/payment_method.rb', line 1470

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



1472
1473
1474
# File 'lib/stripe/resources/payment_method.rb', line 1472

def allow_redisplay
  @allow_redisplay
end

#almaObject (readonly)

Attribute for field alma



1474
1475
1476
# File 'lib/stripe/resources/payment_method.rb', line 1474

def alma
  @alma
end

#amazon_payObject (readonly)

Attribute for field amazon_pay



1476
1477
1478
# File 'lib/stripe/resources/payment_method.rb', line 1476

def amazon_pay
  @amazon_pay
end

#au_becs_debitObject (readonly)

Attribute for field au_becs_debit



1478
1479
1480
# File 'lib/stripe/resources/payment_method.rb', line 1478

def au_becs_debit
  @au_becs_debit
end

#bacs_debitObject (readonly)

Attribute for field bacs_debit



1480
1481
1482
# File 'lib/stripe/resources/payment_method.rb', line 1480

def bacs_debit
  @bacs_debit
end

#bancontactObject (readonly)

Attribute for field bancontact



1482
1483
1484
# File 'lib/stripe/resources/payment_method.rb', line 1482

def bancontact
  @bancontact
end

#billieObject (readonly)

Attribute for field billie



1484
1485
1486
# File 'lib/stripe/resources/payment_method.rb', line 1484

def billie
  @billie
end

#billing_detailsObject (readonly)

Attribute for field billing_details



1486
1487
1488
# File 'lib/stripe/resources/payment_method.rb', line 1486

def billing_details
  @billing_details
end

#bizumObject (readonly)

Attribute for field bizum



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

def bizum
  @bizum
end

#blikObject (readonly)

Attribute for field blik



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

def blik
  @blik
end

#boletoObject (readonly)

Attribute for field boleto



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

def boleto
  @boleto
end

#cardObject (readonly)

Attribute for field card



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

def card
  @card
end

#card_presentObject (readonly)

Attribute for field card_present



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

def card_present
  @card_present
end

#cashappObject (readonly)

Attribute for field cashapp



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

def cashapp
  @cashapp
end

#createdObject (readonly)

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



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

def created
  @created
end

#cryptoObject (readonly)

Attribute for field crypto



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

def crypto
  @crypto
end

#customObject (readonly)

Attribute for field custom



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

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.



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

def customer
  @customer
end

#customer_accountObject (readonly)

Attribute for field customer_account



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

def 
  @customer_account
end

#customer_balanceObject (readonly)

Attribute for field customer_balance



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

def customer_balance
  @customer_balance
end

#epsObject (readonly)

Attribute for field eps



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

def eps
  @eps
end

#fpxObject (readonly)

Attribute for field fpx



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

def fpx
  @fpx
end

#giropayObject (readonly)

Attribute for field giropay



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

def giropay
  @giropay
end

#grabpayObject (readonly)

Attribute for field grabpay



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

def grabpay
  @grabpay
end

#idObject (readonly)

Unique identifier for the object.



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

def id
  @id
end

#idealObject (readonly)

Attribute for field ideal



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

def ideal
  @ideal
end

#interac_presentObject (readonly)

Attribute for field interac_present



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

def interac_present
  @interac_present
end

#kakao_payObject (readonly)

Attribute for field kakao_pay



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

def kakao_pay
  @kakao_pay
end

#klarnaObject (readonly)

Attribute for field klarna



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

def klarna
  @klarna
end

#konbiniObject (readonly)

Attribute for field konbini



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

def konbini
  @konbini
end

#kr_cardObject (readonly)

Attribute for field kr_card



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

def kr_card
  @kr_card
end

Attribute for field link



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

def link
  @link
end

#livemodeObject (readonly)

If the object exists in live mode, the value is true. If the object exists in test mode, the value is false.



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

def livemode
  @livemode
end

#mb_wayObject (readonly)

Attribute for field mb_way



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

def mb_way
  @mb_way
end

#metadataObject (readonly)

Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.



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

def 
  @metadata
end

#mobilepayObject (readonly)

Attribute for field mobilepay



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

def mobilepay
  @mobilepay
end

#multibancoObject (readonly)

Attribute for field multibanco



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

def multibanco
  @multibanco
end

Attribute for field naver_pay



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

def naver_pay
  @naver_pay
end

#nz_bank_accountObject (readonly)

Attribute for field nz_bank_account



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

def 
  @nz_bank_account
end

#objectObject (readonly)

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



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

def object
  @object
end

#oxxoObject (readonly)

Attribute for field oxxo



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

def oxxo
  @oxxo
end

#p24Object (readonly)

Attribute for field p24



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

def p24
  @p24
end

#pay_by_bankObject (readonly)

Attribute for field pay_by_bank



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

def pay_by_bank
  @pay_by_bank
end

#paycoObject (readonly)

Attribute for field payco



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

def payco
  @payco
end

#paynowObject (readonly)

Attribute for field paynow



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

def paynow
  @paynow
end

#paypalObject (readonly)

Attribute for field paypal



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

def paypal
  @paypal
end

#paytoObject (readonly)

Attribute for field payto



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

def payto
  @payto
end

#pixObject (readonly)

Attribute for field pix



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

def pix
  @pix
end

#promptpayObject (readonly)

Attribute for field promptpay



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

def promptpay
  @promptpay
end

#radar_optionsObject (readonly)

Options to configure Radar. See Radar Session for more information.



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

def radar_options
  @radar_options
end

#revolut_payObject (readonly)

Attribute for field revolut_pay



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

def revolut_pay
  @revolut_pay
end

#samsung_payObject (readonly)

Attribute for field samsung_pay



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

def samsung_pay
  @samsung_pay
end

#satispayObject (readonly)

Attribute for field satispay



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

def satispay
  @satispay
end

#scalapayObject (readonly)

Attribute for field scalapay



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

def scalapay
  @scalapay
end

#sepa_debitObject (readonly)

Attribute for field sepa_debit



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

def sepa_debit
  @sepa_debit
end

#sofortObject (readonly)

Attribute for field sofort



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

def sofort
  @sofort
end

#sunbitObject (readonly)

Attribute for field sunbit



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

def sunbit
  @sunbit
end

#swishObject (readonly)

Attribute for field swish



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

def swish
  @swish
end

#twintObject (readonly)

Attribute for field twint



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

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.



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

def type
  @type
end

#upiObject (readonly)

Attribute for field upi



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

def upi
  @upi
end

#us_bank_accountObject (readonly)

Attribute for field us_bank_account



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

def 
  @us_bank_account
end

#wechat_payObject (readonly)

Attribute for field wechat_pay



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

def wechat_pay
  @wechat_pay
end

#zipObject (readonly)

Attribute for field zip



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

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 or a PaymentIntent with 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 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, on the Customer to the PaymentMethod's ID.



1635
1636
1637
1638
1639
1640
1641
1642
# File 'lib/stripe/resources/payment_method.rb', line 1635

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 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://docs.stripe.com/docs/payments/accept-a-payment) API to collect payment method details ahead of a future payment.



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

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. Detachment is permanent and irreversible — once detached, a PaymentMethod can no longer be used for payments or re-attached to a Customer.



1662
1663
1664
1665
1666
1667
1668
1669
# File 'lib/stripe/resources/payment_method.rb', line 1662

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



1750
1751
1752
# File 'lib/stripe/resources/payment_method.rb', line 1750

def self.field_remappings
  @field_remappings = {}
end

.inner_class_typesObject



1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
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
# File 'lib/stripe/resources/payment_method.rb', line 1686

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,
    bizum: Bizum,
    blik: Blik,
    boleto: Boleto,
    card: Card,
    card_present: CardPresent,
    cashapp: Cashapp,
    crypto: Crypto,
    custom: Custom,
    customer_balance: CustomerBalance,
    eps: Eps,
    fpx: Fpx,
    giropay: Giropay,
    grabpay: Grabpay,
    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,
    payto: Payto,
    pix: Pix,
    promptpay: Promptpay,
    radar_options: RadarOptions,
    revolut_pay: RevolutPay,
    samsung_pay: SamsungPay,
    satispay: Satispay,
    scalapay: Scalapay,
    sepa_debit: SepaDebit,
    sofort: Sofort,
    sunbit: Sunbit,
    swish: Swish,
    twint: Twint,
    upi: Upi,
    us_bank_account: UsBankAccount,
    wechat_pay: WechatPay,
    zip: Zip,
  }
end

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

Returns a list of all PaymentMethods.



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

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.



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

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 or a PaymentIntent with 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 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, on the Customer to the PaymentMethod's ID.



1613
1614
1615
1616
1617
1618
1619
1620
# File 'lib/stripe/resources/payment_method.rb', line 1613

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. Detachment is permanent and irreversible — once detached, a PaymentMethod can no longer be used for payments or re-attached to a Customer.



1652
1653
1654
1655
1656
1657
1658
1659
# File 'lib/stripe/resources/payment_method.rb', line 1652

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