stripe 5.55.0 → 13.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +567 -4
- data/Gemfile +12 -4
- data/Makefile +18 -3
- data/OPENAPI_VERSION +1 -0
- data/README.md +93 -21
- data/Rakefile +3 -6
- data/VERSION +1 -1
- data/examples/README.md +16 -0
- data/examples/example_template.rb +36 -0
- data/examples/meter_event_stream.rb +57 -0
- data/examples/thinevent_webhook_handler.rb +39 -0
- data/{bin → exe}/stripe-console +1 -1
- data/justfile +43 -0
- data/lib/data/ca-certificates.crt +1241 -1937
- data/lib/stripe/api_operations/create.rb +6 -2
- data/lib/stripe/api_operations/delete.rb +12 -7
- data/lib/stripe/api_operations/list.rb +6 -9
- data/lib/stripe/api_operations/nested_resource.rb +63 -35
- data/lib/stripe/api_operations/request.rb +29 -65
- data/lib/stripe/api_operations/save.rb +20 -10
- data/lib/stripe/api_operations/search.rb +11 -9
- data/lib/stripe/api_operations/singleton_save.rb +90 -0
- data/lib/stripe/api_requestor.rb +1131 -0
- data/lib/stripe/api_resource.rb +48 -18
- data/lib/stripe/api_resource_test_helpers.rb +9 -3
- data/lib/stripe/api_version.rb +8 -0
- data/lib/stripe/connection_manager.rb +5 -7
- data/lib/stripe/errors.rb +11 -13
- data/lib/stripe/event_types.rb +14 -0
- data/lib/stripe/events/v1_billing_meter_error_report_triggered_event.rb +23 -0
- data/lib/stripe/events/v1_billing_meter_no_meter_found_event.rb +13 -0
- data/lib/stripe/instrumentation.rb +37 -15
- data/lib/stripe/list_object.rb +5 -3
- data/lib/stripe/multipart_encoder.rb +7 -7
- data/lib/stripe/oauth.rb +14 -21
- data/lib/stripe/object_types.rb +151 -103
- data/lib/stripe/request_options.rb +129 -0
- data/lib/stripe/resources/account.rb +129 -25
- data/lib/stripe/resources/account_link.rb +12 -0
- data/lib/stripe/resources/account_session.rb +25 -0
- data/lib/stripe/resources/alipay_account.rb +1 -1
- data/lib/stripe/resources/apple_pay_domain.rb +38 -0
- data/lib/stripe/resources/application_fee.rb +9 -2
- data/lib/stripe/resources/application_fee_refund.rb +9 -2
- data/lib/stripe/resources/apps/secret.rb +55 -0
- data/lib/stripe/resources/balance.rb +14 -0
- data/lib/stripe/resources/balance_transaction.rb +19 -0
- data/lib/stripe/resources/bank_account.rb +53 -4
- data/lib/stripe/resources/billing/alert.rb +87 -0
- data/lib/stripe/resources/billing/credit_balance_summary.rb +14 -0
- data/lib/stripe/resources/billing/credit_balance_transaction.rb +26 -0
- data/lib/stripe/resources/billing/credit_grant.rb +90 -0
- data/lib/stripe/resources/billing/meter.rb +85 -0
- data/lib/stripe/resources/billing/meter_event.rb +26 -0
- data/lib/stripe/resources/billing/meter_event_adjustment.rb +26 -0
- data/lib/stripe/resources/billing/meter_event_summary.rb +17 -0
- data/lib/stripe/resources/billing_portal/configuration.rb +34 -0
- data/lib/stripe/resources/billing_portal/session.rb +27 -0
- data/lib/stripe/resources/capability.rb +7 -2
- data/lib/stripe/resources/card.rb +34 -3
- data/lib/stripe/resources/cash_balance.rb +4 -0
- data/lib/stripe/resources/charge.rb +52 -3
- data/lib/stripe/resources/checkout/session.rb +83 -5
- data/lib/stripe/resources/climate/order.rb +67 -0
- data/lib/stripe/resources/climate/product.rb +27 -0
- data/lib/stripe/resources/climate/supplier.rb +26 -0
- data/lib/stripe/resources/confirmation_token.rb +39 -0
- data/lib/stripe/resources/country_spec.rb +14 -0
- data/lib/stripe/resources/coupon.rb +48 -0
- data/lib/stripe/resources/credit_note.rb +67 -9
- data/lib/stripe/resources/credit_note_line_item.rb +4 -0
- data/lib/stripe/resources/customer.rb +172 -28
- data/lib/stripe/resources/customer_balance_transaction.rb +9 -1
- data/lib/stripe/resources/customer_cash_balance_transaction.rb +15 -0
- data/lib/stripe/resources/customer_session.rb +29 -0
- data/lib/stripe/resources/discount.rb +7 -0
- data/lib/stripe/resources/dispute.rb +41 -3
- data/lib/stripe/resources/entitlements/active_entitlement.rb +26 -0
- data/lib/stripe/resources/entitlements/feature.rb +49 -0
- data/lib/stripe/resources/ephemeral_key.rb +23 -0
- data/lib/stripe/resources/event.rb +38 -0
- data/lib/stripe/resources/exchange_rate.rb +34 -0
- data/lib/stripe/resources/file.rb +37 -15
- data/lib/stripe/resources/file_link.rb +26 -0
- data/lib/stripe/resources/financial_connections/account.rb +101 -6
- data/lib/stripe/resources/financial_connections/account_owner.rb +4 -0
- data/lib/stripe/resources/financial_connections/account_ownership.rb +4 -0
- data/lib/stripe/resources/financial_connections/session.rb +14 -0
- data/lib/stripe/resources/financial_connections/transaction.rb +26 -0
- data/lib/stripe/resources/forwarding/request.rb +52 -0
- data/lib/stripe/resources/funding_instructions.rb +8 -0
- data/lib/stripe/resources/identity/verification_report.rb +24 -0
- data/lib/stripe/resources/identity/verification_session.rb +117 -5
- data/lib/stripe/resources/invoice.rb +247 -20
- data/lib/stripe/resources/invoice_item.rb +54 -0
- data/lib/stripe/resources/invoice_line_item.rb +22 -1
- data/lib/stripe/resources/invoice_rendering_template.rb +65 -0
- data/lib/stripe/resources/issuing/authorization.rb +210 -5
- data/lib/stripe/resources/issuing/card.rb +128 -4
- data/lib/stripe/resources/issuing/cardholder.rb +36 -0
- data/lib/stripe/resources/issuing/dispute.rb +47 -2
- data/lib/stripe/resources/issuing/personalization_design.rb +119 -0
- data/lib/stripe/resources/issuing/physical_bundle.rb +26 -0
- data/lib/stripe/resources/issuing/token.rb +32 -0
- data/lib/stripe/resources/issuing/transaction.rb +79 -0
- data/lib/stripe/resources/line_item.rb +4 -0
- data/lib/stripe/resources/login_link.rb +4 -0
- data/lib/stripe/resources/mandate.rb +4 -0
- data/lib/stripe/resources/payment_intent.rb +238 -15
- data/lib/stripe/resources/payment_link.rb +39 -2
- data/lib/stripe/resources/payment_method.rb +78 -5
- data/lib/stripe/resources/payment_method_configuration.rb +59 -0
- data/lib/stripe/resources/payment_method_domain.rb +79 -0
- data/lib/stripe/resources/payout.rb +63 -5
- data/lib/stripe/resources/person.rb +8 -1
- data/lib/stripe/resources/plan.rb +51 -0
- data/lib/stripe/resources/price.rb +30 -1
- data/lib/stripe/resources/product.rb +55 -1
- data/lib/stripe/resources/product_feature.rb +13 -0
- data/lib/stripe/resources/promotion_code.rb +25 -0
- data/lib/stripe/resources/quote.rb +97 -39
- data/lib/stripe/resources/radar/early_fraud_warning.rb +17 -0
- data/lib/stripe/resources/radar/value_list.rb +56 -0
- data/lib/stripe/resources/radar/value_list_item.rb +46 -0
- data/lib/stripe/resources/refund.rb +70 -5
- data/lib/stripe/resources/reporting/report_run.rb +31 -0
- data/lib/stripe/resources/reporting/report_type.rb +21 -1
- data/lib/stripe/resources/reversal.rb +17 -2
- data/lib/stripe/resources/review.rb +24 -3
- data/lib/stripe/resources/setup_attempt.rb +12 -0
- data/lib/stripe/resources/setup_intent.rb +113 -7
- data/lib/stripe/resources/shipping_rate.rb +25 -0
- data/lib/stripe/resources/sigma/scheduled_query_run.rb +17 -0
- data/lib/stripe/resources/source.rb +52 -10
- data/lib/stripe/resources/source_transaction.rb +7 -0
- data/lib/stripe/resources/subscription.rb +118 -5
- data/lib/stripe/resources/subscription_item.rb +54 -6
- data/lib/stripe/resources/subscription_schedule.rb +60 -5
- data/lib/stripe/resources/tax/calculation.rb +48 -0
- data/lib/stripe/resources/tax/calculation_line_item.rb +13 -0
- data/lib/stripe/resources/tax/registration.rb +54 -0
- data/lib/stripe/resources/tax/settings.rb +17 -0
- data/lib/stripe/resources/tax/transaction.rb +56 -0
- data/lib/stripe/resources/tax/transaction_line_item.rb +13 -0
- data/lib/stripe/resources/tax_code.rb +9 -0
- data/lib/stripe/resources/tax_id.rb +34 -12
- data/lib/stripe/resources/tax_rate.rb +26 -0
- data/lib/stripe/resources/terminal/configuration.rb +54 -0
- data/lib/stripe/resources/terminal/connection_token.rb +16 -0
- data/lib/stripe/resources/terminal/location.rb +57 -0
- data/lib/stripe/resources/terminal/reader.rb +138 -11
- data/lib/stripe/resources/test_helpers/test_clock.rb +58 -3
- data/lib/stripe/resources/token.rb +29 -0
- data/lib/stripe/resources/topup.rb +40 -3
- data/lib/stripe/resources/transfer.rb +29 -6
- data/lib/stripe/resources/treasury/credit_reversal.rb +37 -0
- data/lib/stripe/resources/treasury/debit_reversal.rb +37 -0
- data/lib/stripe/resources/treasury/financial_account.rb +109 -0
- data/lib/stripe/resources/treasury/financial_account_features.rb +15 -0
- data/lib/stripe/resources/treasury/inbound_transfer.rb +130 -0
- data/lib/stripe/resources/treasury/outbound_payment.rb +152 -0
- data/lib/stripe/resources/treasury/outbound_transfer.rb +152 -0
- data/lib/stripe/resources/treasury/received_credit.rb +47 -0
- data/lib/stripe/resources/treasury/received_debit.rb +47 -0
- data/lib/stripe/resources/treasury/transaction.rb +26 -0
- data/lib/stripe/resources/treasury/transaction_entry.rb +30 -0
- data/lib/stripe/resources/usage_record.rb +9 -0
- data/lib/stripe/resources/usage_record_summary.rb +4 -0
- data/lib/stripe/resources/v2/billing/meter_event.rb +16 -0
- data/lib/stripe/resources/v2/billing/meter_event_adjustment.rb +15 -0
- data/lib/stripe/resources/v2/billing/meter_event_session.rb +15 -0
- data/lib/stripe/resources/v2/event.rb +13 -0
- data/lib/stripe/resources/v2/event_destination.rb +13 -0
- data/lib/stripe/resources/webhook_endpoint.rb +55 -0
- data/lib/stripe/resources.rb +51 -10
- data/lib/stripe/search_result_object.rb +5 -2
- data/lib/stripe/services/account_capability_service.rb +39 -0
- data/lib/stripe/services/account_external_account_service.rb +68 -0
- data/lib/stripe/services/account_link_service.rb +17 -0
- data/lib/stripe/services/account_login_link_service.rb +19 -0
- data/lib/stripe/services/account_person_service.rb +61 -0
- data/lib/stripe/services/account_service.rb +100 -0
- data/lib/stripe/services/account_session_service.rb +17 -0
- data/lib/stripe/services/apple_pay_domain_service.rb +50 -0
- data/lib/stripe/services/application_fee_refund_service.rb +60 -0
- data/lib/stripe/services/application_fee_service.rb +35 -0
- data/lib/stripe/services/apps/secret_service.rb +52 -0
- data/lib/stripe/services/apps_service.rb +13 -0
- data/lib/stripe/services/balance_service.rb +12 -0
- data/lib/stripe/services/balance_transaction_service.rb +32 -0
- data/lib/stripe/services/billing/alert_service.rb +74 -0
- data/lib/stripe/services/billing/credit_balance_summary_service.rb +19 -0
- data/lib/stripe/services/billing/credit_balance_transaction_service.rb +30 -0
- data/lib/stripe/services/billing/credit_grant_service.rb +74 -0
- data/lib/stripe/services/billing/meter_event_adjustment_service.rb +19 -0
- data/lib/stripe/services/billing/meter_event_service.rb +19 -0
- data/lib/stripe/services/billing/meter_event_summary_service.rb +19 -0
- data/lib/stripe/services/billing/meter_service.rb +81 -0
- data/lib/stripe/services/billing_portal/configuration_service.rb +52 -0
- data/lib/stripe/services/billing_portal/session_service.rb +19 -0
- data/lib/stripe/services/billing_portal_service.rb +14 -0
- data/lib/stripe/services/billing_service.rb +20 -0
- data/lib/stripe/services/charge_service.rb +69 -0
- data/lib/stripe/services/checkout/session_line_item_service.rb +19 -0
- data/lib/stripe/services/checkout/session_service.rb +72 -0
- data/lib/stripe/services/checkout_service.rb +13 -0
- data/lib/stripe/services/climate/order_service.rb +68 -0
- data/lib/stripe/services/climate/product_service.rb +30 -0
- data/lib/stripe/services/climate/supplier_service.rb +30 -0
- data/lib/stripe/services/climate_service.rb +15 -0
- data/lib/stripe/services/confirmation_token_service.rb +17 -0
- data/lib/stripe/services/country_spec_service.rb +28 -0
- data/lib/stripe/services/coupon_service.rb +51 -0
- data/lib/stripe/services/credit_note_line_item_service.rb +17 -0
- data/lib/stripe/services/credit_note_preview_lines_service.rb +17 -0
- data/lib/stripe/services/credit_note_service.rb +93 -0
- data/lib/stripe/services/customer_balance_transaction_service.rb +50 -0
- data/lib/stripe/services/customer_cash_balance_service.rb +28 -0
- data/lib/stripe/services/customer_cash_balance_transaction_service.rb +28 -0
- data/lib/stripe/services/customer_funding_instructions_service.rb +19 -0
- data/lib/stripe/services/customer_payment_method_service.rb +28 -0
- data/lib/stripe/services/customer_payment_source_service.rb +76 -0
- data/lib/stripe/services/customer_service.rb +89 -0
- data/lib/stripe/services/customer_session_service.rb +17 -0
- data/lib/stripe/services/customer_tax_id_service.rb +50 -0
- data/lib/stripe/services/dispute_service.rb +48 -0
- data/lib/stripe/services/entitlements/active_entitlement_service.rb +30 -0
- data/lib/stripe/services/entitlements/feature_service.rb +52 -0
- data/lib/stripe/services/entitlements_service.rb +14 -0
- data/lib/stripe/services/ephemeral_key_service.rb +28 -0
- data/lib/stripe/services/event_service.rb +22 -0
- data/lib/stripe/services/exchange_rate_service.rb +28 -0
- data/lib/stripe/services/file_link_service.rb +38 -0
- data/lib/stripe/services/file_service.rb +35 -0
- data/lib/stripe/services/financial_connections/account_owner_service.rb +19 -0
- data/lib/stripe/services/financial_connections/account_service.rb +81 -0
- data/lib/stripe/services/financial_connections/session_service.rb +30 -0
- data/lib/stripe/services/financial_connections/transaction_service.rb +30 -0
- data/lib/stripe/services/financial_connections_service.rb +15 -0
- data/lib/stripe/services/forwarding/request_service.rb +41 -0
- data/lib/stripe/services/forwarding_service.rb +13 -0
- data/lib/stripe/services/identity/verification_report_service.rb +30 -0
- data/lib/stripe/services/identity/verification_session_service.rb +106 -0
- data/lib/stripe/services/identity_service.rb +14 -0
- data/lib/stripe/services/invoice_item_service.rb +61 -0
- data/lib/stripe/services/invoice_line_item_service.rb +31 -0
- data/lib/stripe/services/invoice_rendering_template_service.rb +50 -0
- data/lib/stripe/services/invoice_service.rb +202 -0
- data/lib/stripe/services/invoice_upcoming_lines_service.rb +17 -0
- data/lib/stripe/services/issuing/authorization_service.rb +65 -0
- data/lib/stripe/services/issuing/card_service.rb +52 -0
- data/lib/stripe/services/issuing/cardholder_service.rb +52 -0
- data/lib/stripe/services/issuing/dispute_service.rb +63 -0
- data/lib/stripe/services/issuing/personalization_design_service.rb +52 -0
- data/lib/stripe/services/issuing/physical_bundle_service.rb +30 -0
- data/lib/stripe/services/issuing/token_service.rb +41 -0
- data/lib/stripe/services/issuing/transaction_service.rb +41 -0
- data/lib/stripe/services/issuing_service.rb +20 -0
- data/lib/stripe/services/mandate_service.rb +17 -0
- data/lib/stripe/services/oauth_service.rb +63 -0
- data/lib/stripe/services/payment_intent_service.rb +204 -0
- data/lib/stripe/services/payment_link_line_item_service.rb +17 -0
- data/lib/stripe/services/payment_link_service.rb +57 -0
- data/lib/stripe/services/payment_method_configuration_service.rb +50 -0
- data/lib/stripe/services/payment_method_domain_service.rb +66 -0
- data/lib/stripe/services/payment_method_service.rb +86 -0
- data/lib/stripe/services/payout_service.rb +66 -0
- data/lib/stripe/services/plan_service.rb +49 -0
- data/lib/stripe/services/price_service.rb +52 -0
- data/lib/stripe/services/product_feature_service.rb +50 -0
- data/lib/stripe/services/product_service.rb +70 -0
- data/lib/stripe/services/promotion_code_service.rb +50 -0
- data/lib/stripe/services/quote_computed_upfront_line_items_service.rb +17 -0
- data/lib/stripe/services/quote_line_item_service.rb +17 -0
- data/lib/stripe/services/quote_service.rb +92 -0
- data/lib/stripe/services/radar/early_fraud_warning_service.rb +32 -0
- data/lib/stripe/services/radar/value_list_item_service.rb +52 -0
- data/lib/stripe/services/radar/value_list_service.rb +63 -0
- data/lib/stripe/services/radar_service.rb +15 -0
- data/lib/stripe/services/refund_service.rb +63 -0
- data/lib/stripe/services/reporting/report_run_service.rb +41 -0
- data/lib/stripe/services/reporting/report_type_service.rb +30 -0
- data/lib/stripe/services/reporting_service.rb +14 -0
- data/lib/stripe/services/review_service.rb +33 -0
- data/lib/stripe/services/setup_attempt_service.rb +17 -0
- data/lib/stripe/services/setup_intent_service.rb +105 -0
- data/lib/stripe/services/shipping_rate_service.rb +50 -0
- data/lib/stripe/services/sigma/scheduled_query_run_service.rb +30 -0
- data/lib/stripe/services/sigma_service.rb +13 -0
- data/lib/stripe/services/source_service.rb +64 -0
- data/lib/stripe/services/source_transaction_service.rb +17 -0
- data/lib/stripe/services/subscription_item_service.rb +69 -0
- data/lib/stripe/services/subscription_item_usage_record_service.rb +23 -0
- data/lib/stripe/services/subscription_item_usage_record_summary_service.rb +19 -0
- data/lib/stripe/services/subscription_schedule_service.rb +72 -0
- data/lib/stripe/services/subscription_service.rb +127 -0
- data/lib/stripe/services/tax/calculation_line_item_service.rb +19 -0
- data/lib/stripe/services/tax/calculation_service.rb +37 -0
- data/lib/stripe/services/tax/registration_service.rb +54 -0
- data/lib/stripe/services/tax/settings_service.rb +30 -0
- data/lib/stripe/services/tax/transaction_line_item_service.rb +19 -0
- data/lib/stripe/services/tax/transaction_service.rb +48 -0
- data/lib/stripe/services/tax_code_service.rb +22 -0
- data/lib/stripe/services/tax_id_service.rb +38 -0
- data/lib/stripe/services/tax_rate_service.rb +38 -0
- data/lib/stripe/services/tax_service.rb +16 -0
- data/lib/stripe/services/terminal/configuration_service.rb +63 -0
- data/lib/stripe/services/terminal/connection_token_service.rb +19 -0
- data/lib/stripe/services/terminal/location_service.rb +64 -0
- data/lib/stripe/services/terminal/reader_service.rb +118 -0
- data/lib/stripe/services/terminal_service.rb +16 -0
- data/lib/stripe/services/test_helpers/confirmation_token_service.rb +19 -0
- data/lib/stripe/services/test_helpers/customer_service.rb +19 -0
- data/lib/stripe/services/test_helpers/issuing/authorization_service.rb +87 -0
- data/lib/stripe/services/test_helpers/issuing/card_service.rb +65 -0
- data/lib/stripe/services/test_helpers/issuing/personalization_design_service.rb +43 -0
- data/lib/stripe/services/test_helpers/issuing/transaction_service.rb +43 -0
- data/lib/stripe/services/test_helpers/issuing_service.rb +19 -0
- data/lib/stripe/services/test_helpers/refund_service.rb +19 -0
- data/lib/stripe/services/test_helpers/terminal/reader_service.rb +21 -0
- data/lib/stripe/services/test_helpers/terminal_service.rb +15 -0
- data/lib/stripe/services/test_helpers/test_clock_service.rb +63 -0
- data/lib/stripe/services/test_helpers/treasury/inbound_transfer_service.rb +43 -0
- data/lib/stripe/services/test_helpers/treasury/outbound_payment_service.rb +54 -0
- data/lib/stripe/services/test_helpers/treasury/outbound_transfer_service.rb +54 -0
- data/lib/stripe/services/test_helpers/treasury/received_credit_service.rb +21 -0
- data/lib/stripe/services/test_helpers/treasury/received_debit_service.rb +21 -0
- data/lib/stripe/services/test_helpers/treasury_service.rb +19 -0
- data/lib/stripe/services/test_helpers_service.rb +19 -0
- data/lib/stripe/services/token_service.rb +23 -0
- data/lib/stripe/services/topup_service.rb +49 -0
- data/lib/stripe/services/transfer_reversal_service.rb +56 -0
- data/lib/stripe/services/transfer_service.rb +47 -0
- data/lib/stripe/services/treasury/credit_reversal_service.rb +41 -0
- data/lib/stripe/services/treasury/debit_reversal_service.rb +41 -0
- data/lib/stripe/services/treasury/financial_account_features_service.rb +30 -0
- data/lib/stripe/services/treasury/financial_account_service.rb +70 -0
- data/lib/stripe/services/treasury/inbound_transfer_service.rb +52 -0
- data/lib/stripe/services/treasury/outbound_payment_service.rb +52 -0
- data/lib/stripe/services/treasury/outbound_transfer_service.rb +52 -0
- data/lib/stripe/services/treasury/received_credit_service.rb +30 -0
- data/lib/stripe/services/treasury/received_debit_service.rb +30 -0
- data/lib/stripe/services/treasury/transaction_entry_service.rb +30 -0
- data/lib/stripe/services/treasury/transaction_service.rb +30 -0
- data/lib/stripe/services/treasury_service.rb +22 -0
- data/lib/stripe/services/v1_services.rb +89 -0
- data/lib/stripe/services/v2/billing/meter_event_adjustment_service.rb +21 -0
- data/lib/stripe/services/v2/billing/meter_event_service.rb +21 -0
- data/lib/stripe/services/v2/billing/meter_event_session_service.rb +21 -0
- data/lib/stripe/services/v2/billing/meter_event_stream_service.rb +23 -0
- data/lib/stripe/services/v2/billing_service.rb +18 -0
- data/lib/stripe/services/v2/core/event_destination_service.rb +98 -0
- data/lib/stripe/services/v2/core/event_service.rb +32 -0
- data/lib/stripe/services/v2/core_service.rb +16 -0
- data/lib/stripe/services/v2_services.rb +14 -0
- data/lib/stripe/services/webhook_endpoint_service.rb +61 -0
- data/lib/stripe/services.rb +182 -0
- data/lib/stripe/singleton_api_resource.rb +3 -3
- data/lib/stripe/stripe_client.rb +55 -1028
- data/lib/stripe/stripe_configuration.rb +63 -42
- data/lib/stripe/stripe_object.rb +60 -38
- data/lib/stripe/stripe_response.rb +1 -3
- data/lib/stripe/stripe_service.rb +32 -0
- data/lib/stripe/thin_event.rb +37 -0
- data/lib/stripe/util.rb +109 -45
- data/lib/stripe/v2_list_object.rb +84 -0
- data/lib/stripe/version.rb +1 -1
- data/lib/stripe/webhook.rb +3 -2
- data/lib/stripe.rb +39 -0
- data/stripe.gemspec +7 -4
- metadata +252 -13
- data/lib/stripe/resources/bitcoin_receiver.rb +0 -24
- data/lib/stripe/resources/bitcoin_transaction.rb +0 -16
- data/lib/stripe/resources/issuing/card_details.rb +0 -10
- data/lib/stripe/resources/order.rb +0 -33
- data/lib/stripe/resources/order_return.rb +0 -10
- data/lib/stripe/resources/recipient.rb +0 -14
- data/lib/stripe/resources/sku.rb +0 -13
- data/lib/stripe/resources/three_d_secure.rb +0 -14
@@ -4,8 +4,12 @@ module Stripe
|
|
4
4
|
module APIOperations
|
5
5
|
module Create
|
6
6
|
def create(params = {}, opts = {})
|
7
|
-
|
8
|
-
|
7
|
+
request_stripe_object(
|
8
|
+
method: :post,
|
9
|
+
path: resource_url,
|
10
|
+
params: params,
|
11
|
+
opts: opts
|
12
|
+
)
|
9
13
|
end
|
10
14
|
end
|
11
15
|
end
|
@@ -18,17 +18,22 @@ module Stripe
|
|
18
18
|
# api_key to be overwritten. See
|
19
19
|
# {APIOperations::Request.execute_resource_request}.
|
20
20
|
def delete(id, params = {}, opts = {})
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
21
|
+
request_stripe_object(
|
22
|
+
method: :delete,
|
23
|
+
path: "#{resource_url}/#{id}",
|
24
|
+
params: params,
|
25
|
+
opts: opts
|
26
|
+
)
|
25
27
|
end
|
26
28
|
end
|
27
29
|
|
28
30
|
def delete(params = {}, opts = {})
|
29
|
-
|
30
|
-
|
31
|
-
|
31
|
+
request_stripe_object(
|
32
|
+
method: :delete,
|
33
|
+
path: resource_url,
|
34
|
+
params: params,
|
35
|
+
opts: opts
|
36
|
+
)
|
32
37
|
end
|
33
38
|
|
34
39
|
def self.included(base)
|
@@ -4,15 +4,12 @@ module Stripe
|
|
4
4
|
module APIOperations
|
5
5
|
module List
|
6
6
|
def list(filters = {}, opts = {})
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
# predicates when accessing the next and previous pages
|
14
|
-
obj.filters = filters.dup
|
15
|
-
obj
|
7
|
+
request_stripe_object(
|
8
|
+
method: :get,
|
9
|
+
path: resource_url,
|
10
|
+
params: filters,
|
11
|
+
opts: opts
|
12
|
+
)
|
16
13
|
end
|
17
14
|
end
|
18
15
|
end
|
@@ -26,46 +26,74 @@ module Stripe
|
|
26
26
|
end
|
27
27
|
|
28
28
|
operations.each do |operation|
|
29
|
-
|
30
|
-
|
31
|
-
|
29
|
+
define_operation(
|
30
|
+
resource,
|
31
|
+
operation,
|
32
|
+
resource_url_method,
|
33
|
+
resource_plural
|
34
|
+
)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
private def define_operation(
|
39
|
+
resource,
|
40
|
+
operation,
|
41
|
+
resource_url_method,
|
42
|
+
resource_plural
|
43
|
+
)
|
44
|
+
case operation
|
45
|
+
when :create
|
46
|
+
define_singleton_method(:"create_#{resource}") \
|
32
47
|
do |id, params = {}, opts = {}|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
Util.convert_to_stripe_object(resp.data, opts)
|
43
|
-
end
|
44
|
-
when :update
|
45
|
-
define_singleton_method(:"update_#{resource}") \
|
48
|
+
request_stripe_object(
|
49
|
+
method: :post,
|
50
|
+
path: send(resource_url_method, id),
|
51
|
+
params: params,
|
52
|
+
opts: opts
|
53
|
+
)
|
54
|
+
end
|
55
|
+
when :retrieve
|
56
|
+
define_singleton_method(:"retrieve_#{resource}") \
|
46
57
|
do |id, nested_id, params = {}, opts = {}|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
58
|
+
request_stripe_object(
|
59
|
+
method: :get,
|
60
|
+
path: send(resource_url_method, id, nested_id),
|
61
|
+
params: params,
|
62
|
+
opts: opts
|
63
|
+
)
|
64
|
+
end
|
65
|
+
when :update
|
66
|
+
define_singleton_method(:"update_#{resource}") \
|
67
|
+
do |id, nested_id, params = {}, opts = {}|
|
68
|
+
request_stripe_object(
|
69
|
+
method: :post,
|
70
|
+
path: send(resource_url_method, id, nested_id),
|
71
|
+
params: params,
|
72
|
+
opts: opts
|
73
|
+
)
|
74
|
+
end
|
75
|
+
when :delete
|
76
|
+
define_singleton_method(:"delete_#{resource}") \
|
53
77
|
do |id, nested_id, params = {}, opts = {}|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
78
|
+
request_stripe_object(
|
79
|
+
method: :delete,
|
80
|
+
path: send(resource_url_method, id, nested_id),
|
81
|
+
params: params,
|
82
|
+
opts: opts
|
83
|
+
)
|
84
|
+
end
|
85
|
+
when :list
|
86
|
+
define_singleton_method(:"list_#{resource_plural}") \
|
61
87
|
do |id, params = {}, opts = {}|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
88
|
+
request_stripe_object(
|
89
|
+
method: :get,
|
90
|
+
path: send(resource_url_method, id),
|
91
|
+
params: params,
|
92
|
+
opts: opts
|
93
|
+
)
|
68
94
|
end
|
95
|
+
else
|
96
|
+
raise ArgumentError, "Unknown operation: #{operation.inspect}"
|
69
97
|
end
|
70
98
|
end
|
71
99
|
end
|
@@ -4,29 +4,35 @@ module Stripe
|
|
4
4
|
module APIOperations
|
5
5
|
module Request
|
6
6
|
module ClassMethods
|
7
|
-
def execute_resource_request(method, url,
|
8
|
-
params = {}, opts = {})
|
7
|
+
def execute_resource_request(method, url, base_address = :api,
|
8
|
+
params = {}, opts = {}, usage = [])
|
9
9
|
execute_resource_request_internal(
|
10
|
-
:execute_request, method, url, params, opts
|
10
|
+
:execute_request, method, url, base_address, params, opts, usage
|
11
11
|
)
|
12
12
|
end
|
13
13
|
|
14
|
-
def execute_resource_request_stream(method, url,
|
15
|
-
params = {}, opts = {},
|
14
|
+
def execute_resource_request_stream(method, url, base_address = :api,
|
15
|
+
params = {}, opts = {}, usage = [],
|
16
16
|
&read_body_chunk_block)
|
17
17
|
execute_resource_request_internal(
|
18
18
|
:execute_request_stream,
|
19
19
|
method,
|
20
20
|
url,
|
21
|
+
base_address,
|
21
22
|
params,
|
22
23
|
opts,
|
24
|
+
usage,
|
23
25
|
&read_body_chunk_block
|
24
26
|
)
|
25
27
|
end
|
26
28
|
|
29
|
+
private def request_stripe_object(method:, path:, base_address: :api, params: {}, opts: {}, usage: [])
|
30
|
+
execute_resource_request(method, path, base_address, params, opts, usage)
|
31
|
+
end
|
32
|
+
|
27
33
|
private def execute_resource_request_internal(client_request_method_sym,
|
28
|
-
method, url,
|
29
|
-
params, opts,
|
34
|
+
method, url, base_address,
|
35
|
+
params, opts, usage,
|
30
36
|
&read_body_chunk_block)
|
31
37
|
params ||= {}
|
32
38
|
|
@@ -34,56 +40,15 @@ module Stripe
|
|
34
40
|
warn_on_opts_in_params(params)
|
35
41
|
|
36
42
|
opts = Util.normalize_opts(opts)
|
37
|
-
|
38
|
-
|
39
|
-
opts[:client] ||= StripeClient.active_client
|
40
|
-
|
41
|
-
headers = opts.clone
|
42
|
-
api_key = headers.delete(:api_key)
|
43
|
-
api_base = headers.delete(:api_base)
|
44
|
-
client = headers.delete(:client)
|
45
|
-
# Assume all remaining opts must be headers
|
43
|
+
req_opts = RequestOptions.extract_opts_from_hash(opts)
|
46
44
|
|
47
|
-
|
45
|
+
APIRequestor.active_requestor.send(
|
48
46
|
client_request_method_sym,
|
49
47
|
method, url,
|
50
|
-
|
51
|
-
|
48
|
+
base_address,
|
49
|
+
params: params, opts: req_opts, usage: usage,
|
52
50
|
&read_body_chunk_block
|
53
51
|
)
|
54
|
-
|
55
|
-
# Hash#select returns an array before 1.9
|
56
|
-
opts_to_persist = {}
|
57
|
-
opts.each do |k, v|
|
58
|
-
opts_to_persist[k] = v if Util::OPTS_PERSISTABLE.include?(k)
|
59
|
-
end
|
60
|
-
|
61
|
-
[resp, opts_to_persist]
|
62
|
-
end
|
63
|
-
|
64
|
-
# This method used to be called `request`, but it's such a short name
|
65
|
-
# that it eventually conflicted with the name of a field on an API
|
66
|
-
# resource (specifically, `Event#request`), so it was renamed to
|
67
|
-
# something more unique.
|
68
|
-
#
|
69
|
-
# The former name had been around for just about forever though, and
|
70
|
-
# although all internal uses have been renamed, I've left this alias in
|
71
|
-
# place for backwards compatibility. Consider removing it on the next
|
72
|
-
# major.
|
73
|
-
alias request execute_resource_request
|
74
|
-
|
75
|
-
private def error_on_non_string_user_opts(opts)
|
76
|
-
Util::OPTS_USER_SPECIFIED.each do |opt|
|
77
|
-
next unless opts.key?(opt)
|
78
|
-
|
79
|
-
val = opts[opt]
|
80
|
-
next if val.nil?
|
81
|
-
next if val.is_a?(String)
|
82
|
-
|
83
|
-
raise ArgumentError,
|
84
|
-
"request option '#{opt}' should be a string value " \
|
85
|
-
"(was a #{val.class})"
|
86
|
-
end
|
87
52
|
end
|
88
53
|
|
89
54
|
private def error_on_invalid_params(params)
|
@@ -91,14 +56,12 @@ module Stripe
|
|
91
56
|
|
92
57
|
raise ArgumentError,
|
93
58
|
"request params should be either a Hash or nil " \
|
94
|
-
|
59
|
+
"(was a #{params.class})"
|
95
60
|
end
|
96
61
|
|
97
62
|
private def warn_on_opts_in_params(params)
|
98
|
-
|
99
|
-
if params.key?(opt)
|
100
|
-
warn("WARNING: '#{opt}' should be in opts instead of params.")
|
101
|
-
end
|
63
|
+
RequestOptions::OPTS_USER_SPECIFIED.each do |opt|
|
64
|
+
warn("WARNING: '#{opt}' should be in opts instead of params.") if params.key?(opt)
|
102
65
|
end
|
103
66
|
end
|
104
67
|
end
|
@@ -107,23 +70,24 @@ module Stripe
|
|
107
70
|
base.extend(ClassMethods)
|
108
71
|
end
|
109
72
|
|
110
|
-
protected def execute_resource_request(method, url,
|
111
|
-
params = {}, opts = {})
|
73
|
+
protected def execute_resource_request(method, url, base_address = :api,
|
74
|
+
params = {}, opts = {}, usage = [])
|
112
75
|
opts = @opts.merge(Util.normalize_opts(opts))
|
113
|
-
self.class.execute_resource_request(method, url, params, opts)
|
76
|
+
self.class.execute_resource_request(method, url, base_address, params, opts, usage)
|
114
77
|
end
|
115
78
|
|
116
|
-
protected def execute_resource_request_stream(method, url,
|
117
|
-
params = {}, opts = {},
|
79
|
+
protected def execute_resource_request_stream(method, url, base_address = :api,
|
80
|
+
params = {}, opts = {}, usage = [],
|
118
81
|
&read_body_chunk_block)
|
119
82
|
opts = @opts.merge(Util.normalize_opts(opts))
|
120
83
|
self.class.execute_resource_request_stream(
|
121
|
-
method, url, params, opts, &read_body_chunk_block
|
84
|
+
method, url, base_address, params, opts, usage, &read_body_chunk_block
|
122
85
|
)
|
123
86
|
end
|
124
87
|
|
125
|
-
|
126
|
-
|
88
|
+
private def request_stripe_object(method:, path:, params:, base_address: :api, opts: {}, usage: [])
|
89
|
+
execute_resource_request(method, path, base_address, params, opts, usage)
|
90
|
+
end
|
127
91
|
end
|
128
92
|
end
|
129
93
|
end
|
@@ -19,17 +19,21 @@ module Stripe
|
|
19
19
|
# {APIOperations::Request.execute_resource_request}.
|
20
20
|
def update(id, params = {}, opts = {})
|
21
21
|
params.each_key do |k|
|
22
|
-
if protected_fields.include?(k)
|
23
|
-
raise ArgumentError, "Cannot update protected field: #{k}"
|
24
|
-
end
|
22
|
+
raise ArgumentError, "Cannot update protected field: #{k}" if protected_fields.include?(k)
|
25
23
|
end
|
26
24
|
|
27
|
-
|
28
|
-
|
29
|
-
|
25
|
+
request_stripe_object(
|
26
|
+
method: :post,
|
27
|
+
path: "#{resource_url}/#{id}",
|
28
|
+
params: params,
|
29
|
+
opts: opts
|
30
|
+
)
|
30
31
|
end
|
31
32
|
end
|
32
33
|
|
34
|
+
# The `save` method is DEPRECATED and will be removed in a future major
|
35
|
+
# version of the library. Use the `update` method on the resource instead.
|
36
|
+
#
|
33
37
|
# Creates or updates an API resource.
|
34
38
|
#
|
35
39
|
# If the resource doesn't yet have an assigned ID and the resource is one
|
@@ -58,13 +62,19 @@ module Stripe
|
|
58
62
|
|
59
63
|
values = serialize_params(self).merge(params)
|
60
64
|
|
61
|
-
# note that id gets removed here our call to #url above has already
|
65
|
+
# Please note that id gets removed here our call to #url above has already
|
62
66
|
# generated a uri for this object with an identifier baked in
|
63
67
|
values.delete(:id)
|
64
|
-
|
65
|
-
|
66
|
-
|
68
|
+
opts = Util.normalize_opts(opts)
|
69
|
+
APIRequestor.active_requestor.execute_request_initialize_from(:post, save_url, :api, self,
|
70
|
+
params: values,
|
71
|
+
opts: RequestOptions.extract_opts_from_hash(opts),
|
72
|
+
usage: ["save"])
|
67
73
|
end
|
74
|
+
extend Gem::Deprecate
|
75
|
+
deprecate :save, "the `update` class method (for examples " \
|
76
|
+
"see https://github.com/stripe/stripe-ruby" \
|
77
|
+
"/wiki/Migration-guide-for-v8)", 2022, 11
|
68
78
|
|
69
79
|
def self.included(base)
|
70
80
|
# Set `metadata` as additive so that when it's set directly we remember
|
@@ -2,18 +2,20 @@
|
|
2
2
|
|
3
3
|
module Stripe
|
4
4
|
module APIOperations
|
5
|
+
# The _search method via API Operations is deprecated.
|
6
|
+
# Please use the search method from within the resource instead.
|
5
7
|
module Search
|
6
8
|
def _search(search_url, filters = {}, opts = {})
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
# when accessing the next page
|
14
|
-
obj.filters = filters.dup
|
15
|
-
obj
|
9
|
+
request_stripe_object(
|
10
|
+
method: :get,
|
11
|
+
path: search_url,
|
12
|
+
params: filters,
|
13
|
+
opts: opts
|
14
|
+
)
|
16
15
|
end
|
16
|
+
|
17
|
+
extend Gem::Deprecate
|
18
|
+
deprecate :_search, "request_stripe_object", 2024, 1
|
17
19
|
end
|
18
20
|
end
|
19
21
|
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Stripe
|
4
|
+
module APIOperations
|
5
|
+
module SingletonSave
|
6
|
+
module ClassMethods
|
7
|
+
# Updates a singleton API resource
|
8
|
+
#
|
9
|
+
# Updates the identified resource with the passed in parameters.
|
10
|
+
#
|
11
|
+
# ==== Attributes
|
12
|
+
#
|
13
|
+
# * +params+ - A hash of parameters to pass to the API
|
14
|
+
# * +opts+ - A Hash of additional options (separate from the params /
|
15
|
+
# object values) to be added to the request. E.g. to allow for an
|
16
|
+
# idempotency_key to be passed in the request headers, or for the
|
17
|
+
# api_key to be overwritten. See
|
18
|
+
# {APIOperations::Request.execute_resource_request}.
|
19
|
+
def update(params = {}, opts = {})
|
20
|
+
params.each_key do |k|
|
21
|
+
raise ArgumentError, "Cannot update protected field: #{k}" if protected_fields.include?(k)
|
22
|
+
end
|
23
|
+
|
24
|
+
request_stripe_object(
|
25
|
+
method: :post,
|
26
|
+
path: resource_url,
|
27
|
+
params: params,
|
28
|
+
opts: opts
|
29
|
+
)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
# The `save` method is DEPRECATED and will be removed in a future major
|
34
|
+
# version of the library. Use the `update` method on the resource instead.
|
35
|
+
#
|
36
|
+
# Updates a singleton API resource.
|
37
|
+
#
|
38
|
+
# If the resource doesn't yet have an assigned ID and the resource is one
|
39
|
+
# that can be created, then the method attempts to create the resource.
|
40
|
+
# The resource is updated otherwise.
|
41
|
+
#
|
42
|
+
# ==== Attributes
|
43
|
+
#
|
44
|
+
# * +params+ - Overrides any parameters in the resource's serialized data
|
45
|
+
# and includes them in the create or update. If +:req_url:+ is included
|
46
|
+
# in the list, it overrides the update URL used for the create or
|
47
|
+
# update.
|
48
|
+
# * +opts+ - A Hash of additional options (separate from the params /
|
49
|
+
# object values) to be added to the request. E.g. to allow for an
|
50
|
+
# idempotency_key to be passed in the request headers, or for the
|
51
|
+
# api_key to be overwritten. See
|
52
|
+
# {APIOperations::Request.execute_resource_request}.
|
53
|
+
def save(params = {}, opts = {})
|
54
|
+
# We started unintentionally (sort of) allowing attributes sent to
|
55
|
+
# +save+ to override values used during the update. So as not to break
|
56
|
+
# the API, this makes that official here.
|
57
|
+
update_attributes(params)
|
58
|
+
|
59
|
+
# Now remove any parameters that look like object attributes.
|
60
|
+
params = params.reject { |k, _| respond_to?(k) }
|
61
|
+
|
62
|
+
values = serialize_params(self).merge(params)
|
63
|
+
|
64
|
+
opts = Util.normalize_opts(opts)
|
65
|
+
|
66
|
+
APIRequestor.active_requestor.execute_request_initialize_from(:post, resource_url, :api, self,
|
67
|
+
params: values,
|
68
|
+
opts: RequestOptions.extract_opts_from_hash(opts),
|
69
|
+
usage: ["save"])
|
70
|
+
end
|
71
|
+
extend Gem::Deprecate
|
72
|
+
deprecate :save, "the `update` class method (for examples " \
|
73
|
+
"see https://github.com/stripe/stripe-ruby" \
|
74
|
+
"/wiki/Migration-guide-for-v8)", 2022, 11
|
75
|
+
|
76
|
+
def self.included(base)
|
77
|
+
# Set `metadata` as additive so that when it's set directly we remember
|
78
|
+
# to clear keys that may have been previously set by sending empty
|
79
|
+
# values for them.
|
80
|
+
#
|
81
|
+
# It's possible that not every object with `Save` has `metadata`, but
|
82
|
+
# it's a close enough heuristic, and having this option set when there
|
83
|
+
# is no `metadata` field is not harmful.
|
84
|
+
base.additive_object_param(:metadata)
|
85
|
+
|
86
|
+
base.extend(ClassMethods)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|