stripe 13.2.0 → 13.3.0.pre.beta.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +1391 -645
  3. data/OPENAPI_VERSION +1 -1
  4. data/VERSION +1 -1
  5. data/lib/stripe/object_types.rb +22 -0
  6. data/lib/stripe/request_signing_authenticator.rb +79 -0
  7. data/lib/stripe/resources/account_notice.rb +32 -0
  8. data/lib/stripe/resources/capital/financing_offer.rb +49 -0
  9. data/lib/stripe/resources/capital/financing_summary.rb +15 -0
  10. data/lib/stripe/resources/capital/financing_transaction.rb +27 -0
  11. data/lib/stripe/resources/financial_connections/account.rb +3 -0
  12. data/lib/stripe/resources/financial_connections/account_inferred_balance.rb +14 -0
  13. data/lib/stripe/resources/financial_connections/institution.rb +26 -0
  14. data/lib/stripe/resources/gift_cards/card.rb +59 -0
  15. data/lib/stripe/resources/gift_cards/transaction.rb +93 -0
  16. data/lib/stripe/resources/invoice.rb +81 -0
  17. data/lib/stripe/resources/invoice_payment.rb +12 -0
  18. data/lib/stripe/resources/issuing/credit_underwriting_record.rb +88 -0
  19. data/lib/stripe/resources/issuing/dispute_settlement_detail.rb +26 -0
  20. data/lib/stripe/resources/issuing/fraud_liability_debit.rb +26 -0
  21. data/lib/stripe/resources/margin.rb +37 -0
  22. data/lib/stripe/resources/order.rb +120 -0
  23. data/lib/stripe/resources/payment_attempt_record.rb +27 -0
  24. data/lib/stripe/resources/payment_intent.rb +70 -0
  25. data/lib/stripe/resources/payment_record.rb +115 -0
  26. data/lib/stripe/resources/quote.rb +104 -0
  27. data/lib/stripe/resources/quote_preview_invoice.rb +43 -0
  28. data/lib/stripe/resources/quote_preview_subscription_schedule.rb +11 -0
  29. data/lib/stripe/resources/subscription_schedule.rb +20 -0
  30. data/lib/stripe/resources/tax/association.rb +24 -0
  31. data/lib/stripe/resources/tax/form.rb +49 -0
  32. data/lib/stripe/resources/terminal/reader.rb +60 -0
  33. data/lib/stripe/resources/terminal/reader_collected_data.rb +14 -0
  34. data/lib/stripe/resources.rb +21 -0
  35. data/lib/stripe/services/account_notice_service.rb +39 -0
  36. data/lib/stripe/services/capital/financing_offer_service.rb +42 -0
  37. data/lib/stripe/services/capital/financing_summary_service.rb +19 -0
  38. data/lib/stripe/services/capital/financing_transaction_service.rb +31 -0
  39. data/lib/stripe/services/capital_service.rb +15 -0
  40. data/lib/stripe/services/financial_connections/account_inferred_balance_service.rb +19 -0
  41. data/lib/stripe/services/financial_connections/account_service.rb +3 -1
  42. data/lib/stripe/services/financial_connections/institution_service.rb +30 -0
  43. data/lib/stripe/services/financial_connections_service.rb +2 -1
  44. data/lib/stripe/services/gift_cards/card_service.rb +63 -0
  45. data/lib/stripe/services/gift_cards/transaction_service.rb +74 -0
  46. data/lib/stripe/services/gift_cards_service.rb +14 -0
  47. data/lib/stripe/services/invoice_payment_service.rb +28 -0
  48. data/lib/stripe/services/invoice_service.rb +44 -1
  49. data/lib/stripe/services/issuing/credit_underwriting_record_service.rb +74 -0
  50. data/lib/stripe/services/issuing/dispute_settlement_detail_service.rb +30 -0
  51. data/lib/stripe/services/issuing/fraud_liability_debit_service.rb +30 -0
  52. data/lib/stripe/services/issuing_service.rb +5 -1
  53. data/lib/stripe/services/margin_service.rb +50 -0
  54. data/lib/stripe/services/order_line_item_service.rb +17 -0
  55. data/lib/stripe/services/order_service.rb +78 -0
  56. data/lib/stripe/services/payment_attempt_record_service.rb +28 -0
  57. data/lib/stripe/services/payment_intent_service.rb +37 -0
  58. data/lib/stripe/services/payment_record_service.rb +78 -0
  59. data/lib/stripe/services/quote_line_service.rb +17 -0
  60. data/lib/stripe/services/quote_preview_invoice_service.rb +17 -0
  61. data/lib/stripe/services/quote_preview_subscription_schedule_service.rb +17 -0
  62. data/lib/stripe/services/quote_service.rb +49 -1
  63. data/lib/stripe/services/subscription_schedule_service.rb +11 -0
  64. data/lib/stripe/services/tax/association_service.rb +19 -0
  65. data/lib/stripe/services/tax/form_service.rb +37 -0
  66. data/lib/stripe/services/tax_service.rb +3 -1
  67. data/lib/stripe/services/terminal/reader_collected_data_service.rb +19 -0
  68. data/lib/stripe/services/terminal/reader_service.rb +33 -0
  69. data/lib/stripe/services/terminal_service.rb +2 -1
  70. data/lib/stripe/services/v1_services.rb +8 -1
  71. data/lib/stripe/services.rb +25 -0
  72. data/lib/stripe/stripe_configuration.rb +3 -1
  73. data/lib/stripe/util.rb +7 -1
  74. data/lib/stripe/version.rb +1 -1
  75. data/lib/stripe.rb +45 -0
  76. metadata +51 -4
@@ -0,0 +1,74 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module GiftCards
6
+ class TransactionService < StripeService
7
+ # Cancel a gift card transaction
8
+ def cancel(id, params = {}, opts = {})
9
+ request(
10
+ method: :post,
11
+ path: format("/v1/gift_cards/transactions/%<id>s/cancel", { id: CGI.escape(id) }),
12
+ params: params,
13
+ opts: opts,
14
+ base_address: :api
15
+ )
16
+ end
17
+
18
+ # Confirm a gift card transaction
19
+ def confirm(id, params = {}, opts = {})
20
+ request(
21
+ method: :post,
22
+ path: format("/v1/gift_cards/transactions/%<id>s/confirm", { id: CGI.escape(id) }),
23
+ params: params,
24
+ opts: opts,
25
+ base_address: :api
26
+ )
27
+ end
28
+
29
+ # Create a gift card transaction
30
+ def create(params = {}, opts = {})
31
+ request(
32
+ method: :post,
33
+ path: "/v1/gift_cards/transactions",
34
+ params: params,
35
+ opts: opts,
36
+ base_address: :api
37
+ )
38
+ end
39
+
40
+ # List gift card transactions for a gift card
41
+ def list(params = {}, opts = {})
42
+ request(
43
+ method: :get,
44
+ path: "/v1/gift_cards/transactions",
45
+ params: params,
46
+ opts: opts,
47
+ base_address: :api
48
+ )
49
+ end
50
+
51
+ # Retrieves the gift card transaction.
52
+ def retrieve(id, params = {}, opts = {})
53
+ request(
54
+ method: :get,
55
+ path: format("/v1/gift_cards/transactions/%<id>s", { id: CGI.escape(id) }),
56
+ params: params,
57
+ opts: opts,
58
+ base_address: :api
59
+ )
60
+ end
61
+
62
+ # Update a gift card transaction
63
+ def update(id, params = {}, opts = {})
64
+ request(
65
+ method: :post,
66
+ path: format("/v1/gift_cards/transactions/%<id>s", { id: CGI.escape(id) }),
67
+ params: params,
68
+ opts: opts,
69
+ base_address: :api
70
+ )
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,14 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class GiftCardsService < StripeService
6
+ attr_reader :cards, :transactions
7
+
8
+ def initialize(requestor)
9
+ super(requestor)
10
+ @cards = Stripe::GiftCards::CardService.new(@requestor)
11
+ @transactions = Stripe::GiftCards::TransactionService.new(@requestor)
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,28 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class InvoicePaymentService < StripeService
6
+ # When retrieving an invoice, there is an includable payments property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of payments.
7
+ def list(invoice, params = {}, opts = {})
8
+ request(
9
+ method: :get,
10
+ path: format("/v1/invoices/%<invoice>s/payments", { invoice: CGI.escape(invoice) }),
11
+ params: params,
12
+ opts: opts,
13
+ base_address: :api
14
+ )
15
+ end
16
+
17
+ # Retrieves the invoice payment with the given ID.
18
+ def retrieve(invoice, invoice_payment, params = {}, opts = {})
19
+ request(
20
+ method: :get,
21
+ path: format("/v1/invoices/%<invoice>s/payments/%<invoice_payment>s", { invoice: CGI.escape(invoice), invoice_payment: CGI.escape(invoice_payment) }),
22
+ params: params,
23
+ opts: opts,
24
+ base_address: :api
25
+ )
26
+ end
27
+ end
28
+ end
@@ -3,10 +3,11 @@
3
3
 
4
4
  module Stripe
5
5
  class InvoiceService < StripeService
6
- attr_reader :line_items, :upcoming_lines
6
+ attr_reader :payments, :line_items, :upcoming_lines
7
7
 
8
8
  def initialize(requestor)
9
9
  super(requestor)
10
+ @payments = Stripe::InvoicePaymentService.new(@requestor)
10
11
  @line_items = Stripe::InvoiceLineItemService.new(@requestor)
11
12
  @upcoming_lines = Stripe::InvoiceUpcomingLinesService.new(@requestor)
12
13
  end
@@ -22,6 +23,48 @@ module Stripe
22
23
  )
23
24
  end
24
25
 
26
+ # Attaches a PaymentIntent or an Out of Band Payment to the invoice, adding it to the list of payments.
27
+ #
28
+ # For Out of Band Payment, the payment is credited to the invoice immediately, increasing the amount_paid
29
+ # of the invoice and subsequently transitioning the status of the invoice to paid if necessary.
30
+ #
31
+ # For the PaymentIntent, when the PaymentIntent's status changes to succeeded, the payment is credited
32
+ # to the invoice, increasing its amount_paid. When the invoice is fully paid, the
33
+ # invoice's status becomes paid.
34
+ #
35
+ # If the PaymentIntent's status is already succeeded when it's attached, it's
36
+ # credited to the invoice immediately.
37
+ #
38
+ # See: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create) to learn more.
39
+ def attach_payment(invoice, params = {}, opts = {})
40
+ request(
41
+ method: :post,
42
+ path: format("/v1/invoices/%<invoice>s/attach_payment", { invoice: CGI.escape(invoice) }),
43
+ params: params,
44
+ opts: opts,
45
+ base_address: :api
46
+ )
47
+ end
48
+
49
+ # Attaches a PaymentIntent to the invoice, adding it to the list of payments.
50
+ # When the PaymentIntent's status changes to succeeded, the payment is credited
51
+ # to the invoice, increasing its amount_paid. When the invoice is fully paid, the
52
+ # invoice's status becomes paid.
53
+ #
54
+ # If the PaymentIntent's status is already succeeded when it is attached, it is
55
+ # credited to the invoice immediately.
56
+ #
57
+ # Related guide: [Create an invoice payment](https://stripe.com/docs/invoicing/payments/create)
58
+ def attach_payment_intent(invoice, params = {}, opts = {})
59
+ request(
60
+ method: :post,
61
+ path: format("/v1/invoices/%<invoice>s/attach_payment_intent", { invoice: CGI.escape(invoice) }),
62
+ params: params,
63
+ opts: opts,
64
+ base_address: :api
65
+ )
66
+ end
67
+
25
68
  # This endpoint creates a draft invoice for a given customer. The invoice remains a draft until you [finalize the invoice, which allows you to [pay](#pay_invoice) or <a href="#send_invoice">send](https://stripe.com/docs/api#finalize_invoice) the invoice to your customers.
26
69
  def create(params = {}, opts = {})
27
70
  request(method: :post, path: "/v1/invoices", params: params, opts: opts, base_address: :api)
@@ -0,0 +1,74 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Issuing
6
+ class CreditUnderwritingRecordService < StripeService
7
+ # Update a CreditUnderwritingRecord object to correct mistakes.
8
+ def correct(credit_underwriting_record, params = {}, opts = {})
9
+ request(
10
+ method: :post,
11
+ path: format("/v1/issuing/credit_underwriting_records/%<credit_underwriting_record>s/correct", { credit_underwriting_record: CGI.escape(credit_underwriting_record) }),
12
+ params: params,
13
+ opts: opts,
14
+ base_address: :api
15
+ )
16
+ end
17
+
18
+ # Creates a CreditUnderwritingRecord object with information about a credit application submission.
19
+ def create_from_application(params = {}, opts = {})
20
+ request(
21
+ method: :post,
22
+ path: "/v1/issuing/credit_underwriting_records/create_from_application",
23
+ params: params,
24
+ opts: opts,
25
+ base_address: :api
26
+ )
27
+ end
28
+
29
+ # Creates a CreditUnderwritingRecord object from an underwriting decision coming from a proactive review of an existing accountholder.
30
+ def create_from_proactive_review(params = {}, opts = {})
31
+ request(
32
+ method: :post,
33
+ path: "/v1/issuing/credit_underwriting_records/create_from_proactive_review",
34
+ params: params,
35
+ opts: opts,
36
+ base_address: :api
37
+ )
38
+ end
39
+
40
+ # Retrieves a list of CreditUnderwritingRecord objects. The objects are sorted in descending order by creation date, with the most-recently-created object appearing first.
41
+ def list(params = {}, opts = {})
42
+ request(
43
+ method: :get,
44
+ path: "/v1/issuing/credit_underwriting_records",
45
+ params: params,
46
+ opts: opts,
47
+ base_address: :api
48
+ )
49
+ end
50
+
51
+ # Update a CreditUnderwritingRecord object from a decision made on a credit application.
52
+ def report_decision(credit_underwriting_record, params = {}, opts = {})
53
+ request(
54
+ method: :post,
55
+ path: format("/v1/issuing/credit_underwriting_records/%<credit_underwriting_record>s/report_decision", { credit_underwriting_record: CGI.escape(credit_underwriting_record) }),
56
+ params: params,
57
+ opts: opts,
58
+ base_address: :api
59
+ )
60
+ end
61
+
62
+ # Retrieves a CreditUnderwritingRecord object.
63
+ def retrieve(credit_underwriting_record, params = {}, opts = {})
64
+ request(
65
+ method: :get,
66
+ path: format("/v1/issuing/credit_underwriting_records/%<credit_underwriting_record>s", { credit_underwriting_record: CGI.escape(credit_underwriting_record) }),
67
+ params: params,
68
+ opts: opts,
69
+ base_address: :api
70
+ )
71
+ end
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,30 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Issuing
6
+ class DisputeSettlementDetailService < StripeService
7
+ # Returns a list of Issuing DisputeSettlementDetail objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.
8
+ def list(params = {}, opts = {})
9
+ request(
10
+ method: :get,
11
+ path: "/v1/issuing/dispute_settlement_details",
12
+ params: params,
13
+ opts: opts,
14
+ base_address: :api
15
+ )
16
+ end
17
+
18
+ # Retrieves an Issuing DisputeSettlementDetail object.
19
+ def retrieve(dispute_settlement_detail, params = {}, opts = {})
20
+ request(
21
+ method: :get,
22
+ path: format("/v1/issuing/dispute_settlement_details/%<dispute_settlement_detail>s", { dispute_settlement_detail: CGI.escape(dispute_settlement_detail) }),
23
+ params: params,
24
+ opts: opts,
25
+ base_address: :api
26
+ )
27
+ end
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,30 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ module Issuing
6
+ class FraudLiabilityDebitService < StripeService
7
+ # Returns a list of Issuing FraudLiabilityDebit objects. The objects are sorted in descending order by creation date, with the most recently created object appearing first.
8
+ def list(params = {}, opts = {})
9
+ request(
10
+ method: :get,
11
+ path: "/v1/issuing/fraud_liability_debits",
12
+ params: params,
13
+ opts: opts,
14
+ base_address: :api
15
+ )
16
+ end
17
+
18
+ # Retrieves an Issuing FraudLiabilityDebit object.
19
+ def retrieve(fraud_liability_debit, params = {}, opts = {})
20
+ request(
21
+ method: :get,
22
+ path: format("/v1/issuing/fraud_liability_debits/%<fraud_liability_debit>s", { fraud_liability_debit: CGI.escape(fraud_liability_debit) }),
23
+ params: params,
24
+ opts: opts,
25
+ base_address: :api
26
+ )
27
+ end
28
+ end
29
+ end
30
+ end
@@ -3,14 +3,18 @@
3
3
 
4
4
  module Stripe
5
5
  class IssuingService < StripeService
6
- attr_reader :authorizations, :cards, :cardholders, :disputes, :personalization_designs, :physical_bundles, :tokens, :transactions
6
+ attr_reader :authorizations, :cards, :cardholders, :credit_underwriting_records, :disputes, :dispute_settlement_details, :fraud_liability_debits, :personalization_designs, :physical_bundles, :tokens, :transactions
7
7
 
8
8
  def initialize(requestor)
9
9
  super(requestor)
10
10
  @authorizations = Stripe::Issuing::AuthorizationService.new(@requestor)
11
11
  @cards = Stripe::Issuing::CardService.new(@requestor)
12
12
  @cardholders = Stripe::Issuing::CardholderService.new(@requestor)
13
+ @credit_underwriting_records = Stripe::Issuing::CreditUnderwritingRecordService
14
+ .new(@requestor)
13
15
  @disputes = Stripe::Issuing::DisputeService.new(@requestor)
16
+ @dispute_settlement_details = Stripe::Issuing::DisputeSettlementDetailService.new(@requestor)
17
+ @fraud_liability_debits = Stripe::Issuing::FraudLiabilityDebitService.new(@requestor)
14
18
  @personalization_designs = Stripe::Issuing::PersonalizationDesignService.new(@requestor)
15
19
  @physical_bundles = Stripe::Issuing::PhysicalBundleService.new(@requestor)
16
20
  @tokens = Stripe::Issuing::TokenService.new(@requestor)
@@ -0,0 +1,50 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class MarginService < StripeService
6
+ # Create a margin object to be used with invoices, invoice items, and invoice line items for a customer to represent a partner discount. A margin has a percent_off which is the percent that will be taken off the subtotal after all items and other discounts and promotions) of any invoices for a customer. Calculation of prorations do not include any partner margins applied on the original invoice item.
7
+ def create(params = {}, opts = {})
8
+ request(
9
+ method: :post,
10
+ path: "/v1/billing/margins",
11
+ params: params,
12
+ opts: opts,
13
+ base_address: :api
14
+ )
15
+ end
16
+
17
+ # Retrieve a list of your margins.
18
+ def list(params = {}, opts = {})
19
+ request(
20
+ method: :get,
21
+ path: "/v1/billing/margins",
22
+ params: params,
23
+ opts: opts,
24
+ base_address: :api
25
+ )
26
+ end
27
+
28
+ # Retrieve a margin object with the given ID.
29
+ def retrieve(margin, params = {}, opts = {})
30
+ request(
31
+ method: :get,
32
+ path: format("/v1/billing/margins/%<margin>s", { margin: CGI.escape(margin) }),
33
+ params: params,
34
+ opts: opts,
35
+ base_address: :api
36
+ )
37
+ end
38
+
39
+ # Update the specified margin object. Certain fields of the margin object are not editable.
40
+ def update(margin, params = {}, opts = {})
41
+ request(
42
+ method: :post,
43
+ path: format("/v1/billing/margins/%<margin>s", { margin: CGI.escape(margin) }),
44
+ params: params,
45
+ opts: opts,
46
+ base_address: :api
47
+ )
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,17 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class OrderLineItemService < StripeService
6
+ # When retrieving an order, there is an includable line_items property containing the first handful of those items. There is also a URL where you can retrieve the full (paginated) list of line items.
7
+ def list(id, params = {}, opts = {})
8
+ request(
9
+ method: :get,
10
+ path: format("/v1/orders/%<id>s/line_items", { id: CGI.escape(id) }),
11
+ params: params,
12
+ opts: opts,
13
+ base_address: :api
14
+ )
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,78 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class OrderService < StripeService
6
+ attr_reader :line_items
7
+
8
+ def initialize(requestor)
9
+ super(requestor)
10
+ @line_items = Stripe::OrderLineItemService.new(@requestor)
11
+ end
12
+
13
+ # Cancels the order as well as the payment intent if one is attached.
14
+ def cancel(id, params = {}, opts = {})
15
+ request(
16
+ method: :post,
17
+ path: format("/v1/orders/%<id>s/cancel", { id: CGI.escape(id) }),
18
+ params: params,
19
+ opts: opts,
20
+ base_address: :api
21
+ )
22
+ end
23
+
24
+ # Creates a new open order object.
25
+ def create(params = {}, opts = {})
26
+ request(method: :post, path: "/v1/orders", params: params, opts: opts, base_address: :api)
27
+ end
28
+
29
+ # Returns a list of your orders. The orders are returned sorted by creation date, with the most recently created orders appearing first.
30
+ def list(params = {}, opts = {})
31
+ request(method: :get, path: "/v1/orders", params: params, opts: opts, base_address: :api)
32
+ end
33
+
34
+ # Reopens a submitted order.
35
+ def reopen(id, params = {}, opts = {})
36
+ request(
37
+ method: :post,
38
+ path: format("/v1/orders/%<id>s/reopen", { id: CGI.escape(id) }),
39
+ params: params,
40
+ opts: opts,
41
+ base_address: :api
42
+ )
43
+ end
44
+
45
+ # Retrieves the details of an existing order. Supply the unique order ID from either an order creation request or the order list, and Stripe will return the corresponding order information.
46
+ def retrieve(id, params = {}, opts = {})
47
+ request(
48
+ method: :get,
49
+ path: format("/v1/orders/%<id>s", { id: CGI.escape(id) }),
50
+ params: params,
51
+ opts: opts,
52
+ base_address: :api
53
+ )
54
+ end
55
+
56
+ # Submitting an Order transitions the status to processing and creates a PaymentIntent object so the order can be paid. If the Order has an amount_total of 0, no PaymentIntent object will be created. Once the order is submitted, its contents cannot be changed, unless the [reopen](https://stripe.com/docs/api#reopen_order) method is called.
57
+ def submit(id, params = {}, opts = {})
58
+ request(
59
+ method: :post,
60
+ path: format("/v1/orders/%<id>s/submit", { id: CGI.escape(id) }),
61
+ params: params,
62
+ opts: opts,
63
+ base_address: :api
64
+ )
65
+ end
66
+
67
+ # Updates the specific order by setting the values of the parameters passed. Any parameters not provided will be left unchanged.
68
+ def update(id, params = {}, opts = {})
69
+ request(
70
+ method: :post,
71
+ path: format("/v1/orders/%<id>s", { id: CGI.escape(id) }),
72
+ params: params,
73
+ opts: opts,
74
+ base_address: :api
75
+ )
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,28 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class PaymentAttemptRecordService < StripeService
6
+ # List all the Payment Attempt Records attached to the specified Payment Record.
7
+ def list(params = {}, opts = {})
8
+ request(
9
+ method: :get,
10
+ path: "/v1/payment_attempt_records",
11
+ params: params,
12
+ opts: opts,
13
+ base_address: :api
14
+ )
15
+ end
16
+
17
+ # Retrieves a Payment Attempt Record with the given ID
18
+ def retrieve(id, params = {}, opts = {})
19
+ request(
20
+ method: :get,
21
+ path: format("/v1/payment_attempt_records/%<id>s", { id: CGI.escape(id) }),
22
+ params: params,
23
+ opts: opts,
24
+ base_address: :api
25
+ )
26
+ end
27
+ end
28
+ end
@@ -99,6 +99,32 @@ module Stripe
99
99
  )
100
100
  end
101
101
 
102
+ # Perform a decremental authorization on an eligible
103
+ # [PaymentIntent](https://stripe.com/docs/api/payment_intents/object). To be eligible, the
104
+ # PaymentIntent's status must be requires_capture and
105
+ # [decremental_authorization.status](https://stripe.com/docs/api/charges/object#charge_object-payment_method_details-card-decremental_authorization)
106
+ # must be available.
107
+ #
108
+ # Decremental authorizations decrease the authorized amount on your customer's card
109
+ # to the new, lower amount provided. A single PaymentIntent can call this endpoint multiple times to further decrease the authorized amount.
110
+ #
111
+ # After decrement, the PaymentIntent object
112
+ # returns with the updated
113
+ # [amount](https://stripe.com/docs/api/payment_intents/object#payment_intent_object-amount).
114
+ # The PaymentIntent will now be capturable up to the new authorized amount.
115
+ #
116
+ # Each PaymentIntent can have a maximum of 10 decremental or incremental authorization attempts, including declines.
117
+ # After it's fully captured, a PaymentIntent can no longer be decremented.
118
+ def decrement_authorization(intent, params = {}, opts = {})
119
+ request(
120
+ method: :post,
121
+ path: format("/v1/payment_intents/%<intent>s/decrement_authorization", { intent: CGI.escape(intent) }),
122
+ params: params,
123
+ opts: opts,
124
+ base_address: :api
125
+ )
126
+ end
127
+
102
128
  # Perform an incremental authorization on an eligible
103
129
  # [PaymentIntent](https://stripe.com/docs/api/payment_intents/object). To be eligible, the
104
130
  # PaymentIntent's status must be requires_capture and
@@ -173,6 +199,17 @@ module Stripe
173
199
  )
174
200
  end
175
201
 
202
+ # Trigger an external action on a PaymentIntent.
203
+ def trigger_action(intent, params = {}, opts = {})
204
+ request(
205
+ method: :post,
206
+ path: format("/v1/test/payment_intents/%<intent>s/trigger_action", { intent: CGI.escape(intent) }),
207
+ params: params,
208
+ opts: opts,
209
+ base_address: :api
210
+ )
211
+ end
212
+
176
213
  # Updates properties on a PaymentIntent object without confirming.
177
214
  #
178
215
  # Depending on which properties you update, you might need to confirm the
@@ -0,0 +1,78 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class PaymentRecordService < StripeService
6
+ # Report a new Payment Record. You may report a Payment Record as it is
7
+ # initialized and later report updates through the other report_* methods, or report Payment
8
+ # Records in a terminal state directly, through this method.
9
+ def report_payment(params = {}, opts = {})
10
+ request(
11
+ method: :post,
12
+ path: "/v1/payment_records/report_payment",
13
+ params: params,
14
+ opts: opts,
15
+ base_address: :api
16
+ )
17
+ end
18
+
19
+ # Report a new payment attempt on the specified Payment Record. A new payment
20
+ # attempt can only be specified if all other payment attempts are canceled or failed.
21
+ def report_payment_attempt(id, params = {}, opts = {})
22
+ request(
23
+ method: :post,
24
+ path: format("/v1/payment_records/%<id>s/report_payment_attempt", { id: CGI.escape(id) }),
25
+ params: params,
26
+ opts: opts,
27
+ base_address: :api
28
+ )
29
+ end
30
+
31
+ # Report that the most recent payment attempt on the specified Payment Record
32
+ # was canceled.
33
+ def report_payment_attempt_canceled(id, params = {}, opts = {})
34
+ request(
35
+ method: :post,
36
+ path: format("/v1/payment_records/%<id>s/report_payment_attempt_canceled", { id: CGI.escape(id) }),
37
+ params: params,
38
+ opts: opts,
39
+ base_address: :api
40
+ )
41
+ end
42
+
43
+ # Report that the most recent payment attempt on the specified Payment Record
44
+ # failed or errored.
45
+ def report_payment_attempt_failed(id, params = {}, opts = {})
46
+ request(
47
+ method: :post,
48
+ path: format("/v1/payment_records/%<id>s/report_payment_attempt_failed", { id: CGI.escape(id) }),
49
+ params: params,
50
+ opts: opts,
51
+ base_address: :api
52
+ )
53
+ end
54
+
55
+ # Report that the most recent payment attempt on the specified Payment Record
56
+ # was guaranteed.
57
+ def report_payment_attempt_guaranteed(id, params = {}, opts = {})
58
+ request(
59
+ method: :post,
60
+ path: format("/v1/payment_records/%<id>s/report_payment_attempt_guaranteed", { id: CGI.escape(id) }),
61
+ params: params,
62
+ opts: opts,
63
+ base_address: :api
64
+ )
65
+ end
66
+
67
+ # Retrieves a Payment Record with the given ID
68
+ def retrieve(id, params = {}, opts = {})
69
+ request(
70
+ method: :get,
71
+ path: format("/v1/payment_records/%<id>s", { id: CGI.escape(id) }),
72
+ params: params,
73
+ opts: opts,
74
+ base_address: :api
75
+ )
76
+ end
77
+ end
78
+ end
@@ -0,0 +1,17 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class QuoteLineService < StripeService
6
+ # Retrieves a paginated list of lines for a quote. These lines describe changes that will be used to create new subscription schedules or update existing subscription schedules when the quote is accepted.
7
+ def list(quote, params = {}, opts = {})
8
+ request(
9
+ method: :get,
10
+ path: format("/v1/quotes/%<quote>s/lines", { quote: CGI.escape(quote) }),
11
+ params: params,
12
+ opts: opts,
13
+ base_address: :api
14
+ )
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ # File generated from our OpenAPI spec
2
+ # frozen_string_literal: true
3
+
4
+ module Stripe
5
+ class QuotePreviewInvoiceService < StripeService
6
+ # Preview the invoices that would be generated by accepting the quote.
7
+ def list(quote, params = {}, opts = {})
8
+ request(
9
+ method: :get,
10
+ path: format("/v1/quotes/%<quote>s/preview_invoices", { quote: CGI.escape(quote) }),
11
+ params: params,
12
+ opts: opts,
13
+ base_address: :api
14
+ )
15
+ end
16
+ end
17
+ end