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, 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, SepaDebit, Sofort, 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



1408
1409
1410
# File 'lib/stripe/resources/payment_method.rb', line 1408

def acss_debit
  @acss_debit
end

#affirmObject (readonly)

Attribute for field affirm



1410
1411
1412
# File 'lib/stripe/resources/payment_method.rb', line 1410

def affirm
  @affirm
end

#afterpay_clearpayObject (readonly)

Attribute for field afterpay_clearpay



1412
1413
1414
# File 'lib/stripe/resources/payment_method.rb', line 1412

def afterpay_clearpay
  @afterpay_clearpay
end

#alipayObject (readonly)

Attribute for field alipay



1414
1415
1416
# File 'lib/stripe/resources/payment_method.rb', line 1414

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



1416
1417
1418
# File 'lib/stripe/resources/payment_method.rb', line 1416

def allow_redisplay
  @allow_redisplay
end

#almaObject (readonly)

Attribute for field alma



1418
1419
1420
# File 'lib/stripe/resources/payment_method.rb', line 1418

def alma
  @alma
end

#amazon_payObject (readonly)

Attribute for field amazon_pay



1420
1421
1422
# File 'lib/stripe/resources/payment_method.rb', line 1420

def amazon_pay
  @amazon_pay
end

#au_becs_debitObject (readonly)

Attribute for field au_becs_debit



1422
1423
1424
# File 'lib/stripe/resources/payment_method.rb', line 1422

def au_becs_debit
  @au_becs_debit
end

#bacs_debitObject (readonly)

Attribute for field bacs_debit



1424
1425
1426
# File 'lib/stripe/resources/payment_method.rb', line 1424

def bacs_debit
  @bacs_debit
end

#bancontactObject (readonly)

Attribute for field bancontact



1426
1427
1428
# File 'lib/stripe/resources/payment_method.rb', line 1426

def bancontact
  @bancontact
end

#billieObject (readonly)

Attribute for field billie



1428
1429
1430
# File 'lib/stripe/resources/payment_method.rb', line 1428

def billie
  @billie
end

#billing_detailsObject (readonly)

Attribute for field billing_details



1430
1431
1432
# File 'lib/stripe/resources/payment_method.rb', line 1430

def billing_details
  @billing_details
end

#blikObject (readonly)

Attribute for field blik



1432
1433
1434
# File 'lib/stripe/resources/payment_method.rb', line 1432

def blik
  @blik
end

#boletoObject (readonly)

Attribute for field boleto



1434
1435
1436
# File 'lib/stripe/resources/payment_method.rb', line 1434

def boleto
  @boleto
end

#cardObject (readonly)

Attribute for field card



1436
1437
1438
# File 'lib/stripe/resources/payment_method.rb', line 1436

def card
  @card
end

#card_presentObject (readonly)

Attribute for field card_present



1438
1439
1440
# File 'lib/stripe/resources/payment_method.rb', line 1438

def card_present
  @card_present
end

#cashappObject (readonly)

Attribute for field cashapp



1440
1441
1442
# File 'lib/stripe/resources/payment_method.rb', line 1440

def cashapp
  @cashapp
end

#createdObject (readonly)

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



1442
1443
1444
# File 'lib/stripe/resources/payment_method.rb', line 1442

def created
  @created
end

#cryptoObject (readonly)

Attribute for field crypto



1444
1445
1446
# File 'lib/stripe/resources/payment_method.rb', line 1444

def crypto
  @crypto
end

#customObject (readonly)

Attribute for field custom



1446
1447
1448
# File 'lib/stripe/resources/payment_method.rb', line 1446

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.



1448
1449
1450
# File 'lib/stripe/resources/payment_method.rb', line 1448

def customer
  @customer
end

#customer_accountObject (readonly)

Attribute for field customer_account



1450
1451
1452
# File 'lib/stripe/resources/payment_method.rb', line 1450

def 
  
end

#customer_balanceObject (readonly)

Attribute for field customer_balance



1452
1453
1454
# File 'lib/stripe/resources/payment_method.rb', line 1452

def customer_balance
  @customer_balance
end

#epsObject (readonly)

Attribute for field eps



1454
1455
1456
# File 'lib/stripe/resources/payment_method.rb', line 1454

def eps
  @eps
end

#fpxObject (readonly)

Attribute for field fpx



1456
1457
1458
# File 'lib/stripe/resources/payment_method.rb', line 1456

def fpx
  @fpx
end

#giropayObject (readonly)

Attribute for field giropay



1458
1459
1460
# File 'lib/stripe/resources/payment_method.rb', line 1458

def giropay
  @giropay
end

#grabpayObject (readonly)

Attribute for field grabpay



1460
1461
1462
# File 'lib/stripe/resources/payment_method.rb', line 1460

def grabpay
  @grabpay
end

#idObject (readonly)

Unique identifier for the object.



1462
1463
1464
# File 'lib/stripe/resources/payment_method.rb', line 1462

def id
  @id
end

#idealObject (readonly)

Attribute for field ideal



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

def ideal
  @ideal
end

#interac_presentObject (readonly)

Attribute for field interac_present



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

def interac_present
  @interac_present
end

#kakao_payObject (readonly)

Attribute for field kakao_pay



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

def kakao_pay
  @kakao_pay
end

#klarnaObject (readonly)

Attribute for field klarna



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

def klarna
  @klarna
end

#konbiniObject (readonly)

Attribute for field konbini



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

def konbini
  @konbini
end

#kr_cardObject (readonly)

Attribute for field kr_card



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

def kr_card
  @kr_card
end

Attribute for field link



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

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.



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

def livemode
  @livemode
end

#mb_wayObject (readonly)

Attribute for field mb_way



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

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.



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

def 
  
end

#mobilepayObject (readonly)

Attribute for field mobilepay



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

def mobilepay
  @mobilepay
end

#multibancoObject (readonly)

Attribute for field multibanco



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

def multibanco
  @multibanco
end

Attribute for field naver_pay



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

def naver_pay
  @naver_pay
end

#nz_bank_accountObject (readonly)

Attribute for field nz_bank_account



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

def 
  
end

#objectObject (readonly)

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



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

def object
  @object
end

#oxxoObject (readonly)

Attribute for field oxxo



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

def oxxo
  @oxxo
end

#p24Object (readonly)

Attribute for field p24



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

def p24
  @p24
end

#pay_by_bankObject (readonly)

Attribute for field pay_by_bank



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

def pay_by_bank
  @pay_by_bank
end

#paycoObject (readonly)

Attribute for field payco



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

def payco
  @payco
end

#paynowObject (readonly)

Attribute for field paynow



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

def paynow
  @paynow
end

#paypalObject (readonly)

Attribute for field paypal



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

def paypal
  @paypal
end

#paytoObject (readonly)

Attribute for field payto



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

def payto
  @payto
end

#pixObject (readonly)

Attribute for field pix



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

def pix
  @pix
end

#promptpayObject (readonly)

Attribute for field promptpay



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

def promptpay
  @promptpay
end

#radar_optionsObject (readonly)

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



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

def radar_options
  @radar_options
end

#revolut_payObject (readonly)

Attribute for field revolut_pay



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

def revolut_pay
  @revolut_pay
end

#samsung_payObject (readonly)

Attribute for field samsung_pay



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

def samsung_pay
  @samsung_pay
end

#satispayObject (readonly)

Attribute for field satispay



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

def satispay
  @satispay
end

#sepa_debitObject (readonly)

Attribute for field sepa_debit



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

def sepa_debit
  @sepa_debit
end

#sofortObject (readonly)

Attribute for field sofort



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

def sofort
  @sofort
end

#swishObject (readonly)

Attribute for field swish



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

def swish
  @swish
end

#twintObject (readonly)

Attribute for field twint



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

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.



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

def type
  @type
end

#us_bank_accountObject (readonly)

Attribute for field us_bank_account



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

def 
  
end

#wechat_payObject (readonly)

Attribute for field wechat_pay



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

def wechat_pay
  @wechat_pay
end

#zipObject (readonly)

Attribute for field zip



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

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.



1571
1572
1573
1574
1575
1576
1577
1578
# File 'lib/stripe/resources/payment_method.rb', line 1571

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.



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

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.



1598
1599
1600
1601
1602
1603
1604
1605
# File 'lib/stripe/resources/payment_method.rb', line 1598

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



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

def self.field_remappings
  @field_remappings = {}
end

.inner_class_typesObject



1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
# File 'lib/stripe/resources/payment_method.rb', line 1622

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,
    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,
    sepa_debit: SepaDebit,
    sofort: Sofort,
    swish: Swish,
    twint: Twint,
    us_bank_account: UsBankAccount,
    wechat_pay: WechatPay,
    zip: Zip,
  }
end

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

Returns a list of all PaymentMethods.



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

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.



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

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.



1549
1550
1551
1552
1553
1554
1555
1556
# File 'lib/stripe/resources/payment_method.rb', line 1549

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.



1588
1589
1590
1591
1592
1593
1594
1595
# File 'lib/stripe/resources/payment_method.rb', line 1588

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