dodopayments 1.18.3 → 1.20.0
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 +44 -0
- data/README.md +5 -5
- data/lib/dodopayments/client.rb +12 -9
- data/lib/dodopayments/errors.rb +9 -9
- data/lib/dodopayments/file_part.rb +5 -5
- data/lib/dodopayments/internal/transport/base_client.rb +1 -1
- data/lib/dodopayments/internal/type/boolean.rb +10 -11
- data/lib/dodopayments/internal/type/converter.rb +3 -0
- data/lib/dodopayments/internal/type/enum.rb +10 -11
- data/lib/dodopayments/internal/type/file_input.rb +22 -11
- data/lib/dodopayments/internal/type/unknown.rb +10 -11
- data/lib/dodopayments/internal/util.rb +3 -3
- data/lib/dodopayments/models/addon_cart_response_item.rb +23 -0
- data/lib/dodopayments/models/addon_create_params.rb +58 -0
- data/lib/dodopayments/models/addon_list_params.rb +30 -0
- data/lib/dodopayments/models/addon_response.rb +93 -0
- data/lib/dodopayments/models/addon_retrieve_params.rb +14 -0
- data/lib/dodopayments/models/addon_update_images_params.rb +14 -0
- data/lib/dodopayments/models/addon_update_images_response.rb +22 -0
- data/lib/dodopayments/models/addon_update_params.rb +66 -0
- data/lib/dodopayments/models/currency.rb +158 -0
- data/lib/dodopayments/models/misc_list_supported_countries_response.rb +1 -0
- data/lib/dodopayments/models/payment.rb +14 -315
- data/lib/dodopayments/models/payment_create_params.rb +3 -158
- data/lib/dodopayments/models/payment_list_response.rb +3 -157
- data/lib/dodopayments/models/payout_list_response.rb +3 -157
- data/lib/dodopayments/models/price.rb +6 -314
- data/lib/dodopayments/models/product.rb +3 -19
- data/lib/dodopayments/models/product_create_params.rb +3 -17
- data/lib/dodopayments/models/product_list_response.rb +6 -176
- data/lib/dodopayments/models/product_update_params.rb +3 -17
- data/lib/dodopayments/models/refund.rb +3 -157
- data/lib/dodopayments/models/subscription.rb +21 -158
- data/lib/dodopayments/models/subscription_create_params.rb +30 -159
- data/lib/dodopayments/models/subscription_create_response.rb +10 -1
- data/lib/dodopayments/models/subscription_list_response.rb +179 -0
- data/lib/dodopayments/models/subscription_update_params.rb +19 -1
- data/lib/dodopayments/models/tax_category.rb +19 -0
- data/lib/dodopayments/request_options.rb +4 -5
- data/lib/dodopayments/resources/addons.rb +141 -0
- data/lib/dodopayments/resources/payments.rb +1 -1
- data/lib/dodopayments/resources/products.rb +2 -2
- data/lib/dodopayments/resources/subscriptions.rb +9 -5
- data/lib/dodopayments/version.rb +1 -1
- data/lib/dodopayments.rb +12 -0
- data/rbi/{lib/dodopayments → dodopayments}/client.rbi +7 -5
- data/rbi/{lib/dodopayments → dodopayments}/errors.rbi +1 -1
- data/rbi/{lib/dodopayments → dodopayments}/internal/transport/base_client.rbi +2 -2
- data/rbi/{lib/dodopayments → dodopayments}/internal/type/request_parameters.rbi +1 -1
- data/rbi/dodopayments/models/addon_cart_response_item.rbi +20 -0
- data/rbi/dodopayments/models/addon_create_params.rbi +69 -0
- data/rbi/dodopayments/models/addon_list_params.rbi +45 -0
- data/rbi/dodopayments/models/addon_response.rbi +103 -0
- data/rbi/dodopayments/models/addon_retrieve_params.rbi +19 -0
- data/rbi/dodopayments/models/addon_update_images_params.rbi +19 -0
- data/rbi/dodopayments/models/addon_update_images_response.rbi +19 -0
- data/rbi/dodopayments/models/addon_update_params.rbi +77 -0
- data/rbi/dodopayments/models/currency.rbi +161 -0
- data/rbi/dodopayments/models/payment.rbi +227 -0
- data/rbi/dodopayments/models/payment_create_params.rbi +189 -0
- data/rbi/dodopayments/models/payment_list_response.rbi +88 -0
- data/rbi/dodopayments/models/payout_list_response.rbi +155 -0
- data/rbi/dodopayments/models/price.rbi +218 -0
- data/rbi/{lib/dodopayments → dodopayments}/models/product.rbi +3 -20
- data/rbi/{lib/dodopayments → dodopayments}/models/product_create_params.rbi +3 -21
- data/rbi/dodopayments/models/product_list_response.rbi +153 -0
- data/rbi/{lib/dodopayments → dodopayments}/models/product_update_params.rbi +3 -21
- data/rbi/dodopayments/models/refund.rbi +83 -0
- data/rbi/dodopayments/models/subscription.rbi +198 -0
- data/rbi/dodopayments/models/subscription_create_params.rbi +282 -0
- data/rbi/{lib/dodopayments → dodopayments}/models/subscription_create_response.rbi +8 -0
- data/rbi/dodopayments/models/subscription_list_response.rbi +190 -0
- data/rbi/{lib/dodopayments → dodopayments}/models/subscription_update_params.rbi +37 -1
- data/rbi/dodopayments/models/tax_category.rbi +22 -0
- data/rbi/{lib/dodopayments → dodopayments}/request_options.rbi +2 -0
- data/rbi/dodopayments/resources/addons.rbi +97 -0
- data/rbi/{lib/dodopayments → dodopayments}/resources/customers/customer_portal.rbi +1 -1
- data/rbi/{lib/dodopayments → dodopayments}/resources/customers.rbi +4 -7
- data/rbi/{lib/dodopayments → dodopayments}/resources/discounts.rbi +5 -14
- data/rbi/{lib/dodopayments → dodopayments}/resources/disputes.rbi +2 -5
- data/rbi/{lib/dodopayments → dodopayments}/resources/invoices/payments.rbi +1 -7
- data/rbi/{lib/dodopayments → dodopayments}/resources/license_key_instances.rbi +3 -10
- data/rbi/{lib/dodopayments → dodopayments}/resources/license_keys.rbi +3 -9
- data/rbi/{lib/dodopayments → dodopayments}/resources/licenses.rbi +3 -7
- data/rbi/{lib/dodopayments → dodopayments}/resources/misc.rbi +1 -8
- data/rbi/{lib/dodopayments → dodopayments}/resources/payments.rbi +4 -7
- data/rbi/{lib/dodopayments → dodopayments}/resources/payouts.rbi +1 -1
- data/rbi/{lib/dodopayments → dodopayments}/resources/products/images.rbi +1 -5
- data/rbi/{lib/dodopayments → dodopayments}/resources/products.rbi +8 -26
- data/rbi/{lib/dodopayments → dodopayments}/resources/refunds.rbi +3 -11
- data/rbi/{lib/dodopayments → dodopayments}/resources/subscriptions.rbi +19 -15
- data/rbi/{lib/dodopayments → dodopayments}/resources/webhook_events.rbi +2 -5
- data/sig/dodopayments/client.rbs +4 -2
- data/sig/dodopayments/models/addon_cart_response_item.rbs +15 -0
- data/sig/dodopayments/models/addon_create_params.rbs +39 -0
- data/sig/dodopayments/models/addon_list_params.rbs +24 -0
- data/sig/dodopayments/models/addon_response.rbs +54 -0
- data/sig/dodopayments/models/addon_retrieve_params.rbs +15 -0
- data/sig/dodopayments/models/addon_update_images_params.rbs +15 -0
- data/sig/dodopayments/models/addon_update_images_response.rbs +15 -0
- data/sig/dodopayments/models/addon_update_params.rbs +43 -0
- data/sig/dodopayments/models/currency.rbs +302 -0
- data/sig/dodopayments/models/misc_list_supported_countries_response.rbs +1 -1
- data/sig/dodopayments/models/payment.rbs +10 -604
- data/sig/dodopayments/models/payment_create_params.rbs +3 -302
- data/sig/dodopayments/models/payment_list_response.rbs +3 -302
- data/sig/dodopayments/models/payout_list_response.rbs +3 -302
- data/sig/dodopayments/models/price.rbs +6 -604
- data/sig/dodopayments/models/product.rbs +3 -16
- data/sig/dodopayments/models/product_create_params.rbs +3 -16
- data/sig/dodopayments/models/product_list_response.rbs +6 -318
- data/sig/dodopayments/models/product_update_params.rbs +3 -16
- data/sig/dodopayments/models/refund.rbs +3 -302
- data/sig/dodopayments/models/subscription.rbs +11 -302
- data/sig/dodopayments/models/subscription_create_params.rbs +19 -302
- data/sig/dodopayments/models/subscription_create_response.rbs +4 -0
- data/sig/dodopayments/models/subscription_list_response.rbs +98 -0
- data/sig/dodopayments/models/subscription_update_params.rbs +14 -0
- data/sig/dodopayments/models/tax_category.rbs +16 -0
- data/sig/dodopayments/resources/addons.rbs +43 -0
- data/sig/dodopayments/resources/payments.rbs +1 -1
- data/sig/dodopayments/resources/products.rbs +2 -2
- data/sig/dodopayments/resources/subscriptions.rbs +4 -2
- metadata +160 -124
- data/rbi/lib/dodopayments/models/payment.rbi +0 -530
- data/rbi/lib/dodopayments/models/payment_create_params.rbi +0 -345
- data/rbi/lib/dodopayments/models/payment_list_response.rbi +0 -244
- data/rbi/lib/dodopayments/models/payout_list_response.rbi +0 -311
- data/rbi/lib/dodopayments/models/price.rbi +0 -530
- data/rbi/lib/dodopayments/models/product_list_response.rbi +0 -327
- data/rbi/lib/dodopayments/models/refund.rbi +0 -239
- data/rbi/lib/dodopayments/models/subscription.rbi +0 -338
- data/rbi/lib/dodopayments/models/subscription_create_params.rbi +0 -415
- /data/rbi/{lib/dodopayments → dodopayments}/file_part.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/internal/default_page_number_pagination.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/internal/transport/pooled_net_requester.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/internal/type/array_of.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/internal/type/base_model.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/internal/type/base_page.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/internal/type/boolean.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/internal/type/converter.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/internal/type/enum.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/internal/type/file_input.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/internal/type/hash_of.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/internal/type/union.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/internal/type/unknown.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/internal/util.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/internal.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/attach_existing_customer.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/billing_address.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/country_code.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/create_new_customer.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/customer.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/customer_create_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/customer_limited_details.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/customer_list_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/customer_portal_session.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/customer_request.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/customer_retrieve_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/customer_update_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/customers/customer_portal_create_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/discount.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/discount_create_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/discount_delete_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/discount_list_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/discount_retrieve_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/discount_type.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/discount_update_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/dispute.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/dispute_list_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/dispute_retrieve_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/dispute_stage.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/dispute_status.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/intent_status.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/invoices/payment_retrieve_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/license_activate_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/license_deactivate_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/license_key.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_duration.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_instance.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_instance_list_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_instance_retrieve_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_instance_update_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_list_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_retrieve_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_status.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_update_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/license_validate_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/license_validate_response.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/misc_list_supported_countries_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/misc_list_supported_countries_response.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/one_time_product_cart_item.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/payment_create_response.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/payment_list_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/payment_retrieve_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/payout_list_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/product_delete_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/product_list_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/product_retrieve_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/product_unarchive_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/products/image_update_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/products/image_update_response.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/refund_create_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/refund_list_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/refund_retrieve_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/refund_status.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/subscription_change_plan_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/subscription_charge_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/subscription_charge_response.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/subscription_list_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/subscription_retrieve_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/subscription_status.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/time_interval.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/webhook_event.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/webhook_event_list_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/models/webhook_event_retrieve_params.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/resources/invoices.rbi +0 -0
- /data/rbi/{lib/dodopayments → dodopayments}/version.rbi +0 -0
@@ -0,0 +1,198 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Dodopayments
|
4
|
+
module Models
|
5
|
+
class Subscription < Dodopayments::Internal::Type::BaseModel
|
6
|
+
# Addons associated with this subscription
|
7
|
+
sig { returns(T::Array[Dodopayments::Models::AddonCartResponseItem]) }
|
8
|
+
attr_accessor :addons
|
9
|
+
|
10
|
+
sig { returns(Dodopayments::Models::BillingAddress) }
|
11
|
+
attr_reader :billing
|
12
|
+
|
13
|
+
sig { params(billing: T.any(Dodopayments::Models::BillingAddress, Dodopayments::Internal::AnyHash)).void }
|
14
|
+
attr_writer :billing
|
15
|
+
|
16
|
+
# Timestamp when the subscription was created
|
17
|
+
sig { returns(Time) }
|
18
|
+
attr_accessor :created_at
|
19
|
+
|
20
|
+
sig { returns(Dodopayments::Models::Currency::TaggedSymbol) }
|
21
|
+
attr_accessor :currency
|
22
|
+
|
23
|
+
sig { returns(Dodopayments::Models::CustomerLimitedDetails) }
|
24
|
+
attr_reader :customer
|
25
|
+
|
26
|
+
sig do
|
27
|
+
params(customer: T.any(Dodopayments::Models::CustomerLimitedDetails, Dodopayments::Internal::AnyHash)).void
|
28
|
+
end
|
29
|
+
attr_writer :customer
|
30
|
+
|
31
|
+
sig { returns(T::Hash[Symbol, String]) }
|
32
|
+
attr_accessor :metadata
|
33
|
+
|
34
|
+
# Timestamp of the next scheduled billing. Indicates the end of current billing
|
35
|
+
# period
|
36
|
+
sig { returns(Time) }
|
37
|
+
attr_accessor :next_billing_date
|
38
|
+
|
39
|
+
# Wether the subscription is on-demand or not
|
40
|
+
sig { returns(T::Boolean) }
|
41
|
+
attr_accessor :on_demand
|
42
|
+
|
43
|
+
# Number of payment frequency intervals
|
44
|
+
sig { returns(Integer) }
|
45
|
+
attr_accessor :payment_frequency_count
|
46
|
+
|
47
|
+
sig { returns(Dodopayments::Models::TimeInterval::TaggedSymbol) }
|
48
|
+
attr_accessor :payment_frequency_interval
|
49
|
+
|
50
|
+
# Timestamp of the last payment. Indicates the start of current billing period
|
51
|
+
sig { returns(Time) }
|
52
|
+
attr_accessor :previous_billing_date
|
53
|
+
|
54
|
+
# Identifier of the product associated with this subscription
|
55
|
+
sig { returns(String) }
|
56
|
+
attr_accessor :product_id
|
57
|
+
|
58
|
+
# Number of units/items included in the subscription
|
59
|
+
sig { returns(Integer) }
|
60
|
+
attr_accessor :quantity
|
61
|
+
|
62
|
+
# Amount charged before tax for each recurring payment in smallest currency unit
|
63
|
+
# (e.g. cents)
|
64
|
+
sig { returns(Integer) }
|
65
|
+
attr_accessor :recurring_pre_tax_amount
|
66
|
+
|
67
|
+
sig { returns(Dodopayments::Models::SubscriptionStatus::TaggedSymbol) }
|
68
|
+
attr_accessor :status
|
69
|
+
|
70
|
+
# Unique identifier for the subscription
|
71
|
+
sig { returns(String) }
|
72
|
+
attr_accessor :subscription_id
|
73
|
+
|
74
|
+
# Number of subscription period intervals
|
75
|
+
sig { returns(Integer) }
|
76
|
+
attr_accessor :subscription_period_count
|
77
|
+
|
78
|
+
sig { returns(Dodopayments::Models::TimeInterval::TaggedSymbol) }
|
79
|
+
attr_accessor :subscription_period_interval
|
80
|
+
|
81
|
+
# Indicates if the recurring_pre_tax_amount is tax inclusive
|
82
|
+
sig { returns(T::Boolean) }
|
83
|
+
attr_accessor :tax_inclusive
|
84
|
+
|
85
|
+
# Number of days in the trial period (0 if no trial)
|
86
|
+
sig { returns(Integer) }
|
87
|
+
attr_accessor :trial_period_days
|
88
|
+
|
89
|
+
# Cancelled timestamp if the subscription is cancelled
|
90
|
+
sig { returns(T.nilable(Time)) }
|
91
|
+
attr_accessor :cancelled_at
|
92
|
+
|
93
|
+
# The discount id if discount is applied
|
94
|
+
sig { returns(T.nilable(String)) }
|
95
|
+
attr_accessor :discount_id
|
96
|
+
|
97
|
+
# Response struct representing subscription details
|
98
|
+
sig do
|
99
|
+
params(
|
100
|
+
addons: T::Array[T.any(Dodopayments::Models::AddonCartResponseItem, Dodopayments::Internal::AnyHash)],
|
101
|
+
billing: T.any(Dodopayments::Models::BillingAddress, Dodopayments::Internal::AnyHash),
|
102
|
+
created_at: Time,
|
103
|
+
currency: Dodopayments::Models::Currency::OrSymbol,
|
104
|
+
customer: T.any(Dodopayments::Models::CustomerLimitedDetails, Dodopayments::Internal::AnyHash),
|
105
|
+
metadata: T::Hash[Symbol, String],
|
106
|
+
next_billing_date: Time,
|
107
|
+
on_demand: T::Boolean,
|
108
|
+
payment_frequency_count: Integer,
|
109
|
+
payment_frequency_interval: Dodopayments::Models::TimeInterval::OrSymbol,
|
110
|
+
previous_billing_date: Time,
|
111
|
+
product_id: String,
|
112
|
+
quantity: Integer,
|
113
|
+
recurring_pre_tax_amount: Integer,
|
114
|
+
status: Dodopayments::Models::SubscriptionStatus::OrSymbol,
|
115
|
+
subscription_id: String,
|
116
|
+
subscription_period_count: Integer,
|
117
|
+
subscription_period_interval: Dodopayments::Models::TimeInterval::OrSymbol,
|
118
|
+
tax_inclusive: T::Boolean,
|
119
|
+
trial_period_days: Integer,
|
120
|
+
cancelled_at: T.nilable(Time),
|
121
|
+
discount_id: T.nilable(String)
|
122
|
+
)
|
123
|
+
.returns(T.attached_class)
|
124
|
+
end
|
125
|
+
def self.new(
|
126
|
+
# Addons associated with this subscription
|
127
|
+
addons:,
|
128
|
+
billing:,
|
129
|
+
# Timestamp when the subscription was created
|
130
|
+
created_at:,
|
131
|
+
currency:,
|
132
|
+
customer:,
|
133
|
+
metadata:,
|
134
|
+
# Timestamp of the next scheduled billing. Indicates the end of current billing
|
135
|
+
# period
|
136
|
+
next_billing_date:,
|
137
|
+
# Wether the subscription is on-demand or not
|
138
|
+
on_demand:,
|
139
|
+
# Number of payment frequency intervals
|
140
|
+
payment_frequency_count:,
|
141
|
+
payment_frequency_interval:,
|
142
|
+
# Timestamp of the last payment. Indicates the start of current billing period
|
143
|
+
previous_billing_date:,
|
144
|
+
# Identifier of the product associated with this subscription
|
145
|
+
product_id:,
|
146
|
+
# Number of units/items included in the subscription
|
147
|
+
quantity:,
|
148
|
+
# Amount charged before tax for each recurring payment in smallest currency unit
|
149
|
+
# (e.g. cents)
|
150
|
+
recurring_pre_tax_amount:,
|
151
|
+
status:,
|
152
|
+
# Unique identifier for the subscription
|
153
|
+
subscription_id:,
|
154
|
+
# Number of subscription period intervals
|
155
|
+
subscription_period_count:,
|
156
|
+
subscription_period_interval:,
|
157
|
+
# Indicates if the recurring_pre_tax_amount is tax inclusive
|
158
|
+
tax_inclusive:,
|
159
|
+
# Number of days in the trial period (0 if no trial)
|
160
|
+
trial_period_days:,
|
161
|
+
# Cancelled timestamp if the subscription is cancelled
|
162
|
+
cancelled_at: nil,
|
163
|
+
# The discount id if discount is applied
|
164
|
+
discount_id: nil
|
165
|
+
); end
|
166
|
+
sig do
|
167
|
+
override
|
168
|
+
.returns(
|
169
|
+
{
|
170
|
+
addons: T::Array[Dodopayments::Models::AddonCartResponseItem],
|
171
|
+
billing: Dodopayments::Models::BillingAddress,
|
172
|
+
created_at: Time,
|
173
|
+
currency: Dodopayments::Models::Currency::TaggedSymbol,
|
174
|
+
customer: Dodopayments::Models::CustomerLimitedDetails,
|
175
|
+
metadata: T::Hash[Symbol, String],
|
176
|
+
next_billing_date: Time,
|
177
|
+
on_demand: T::Boolean,
|
178
|
+
payment_frequency_count: Integer,
|
179
|
+
payment_frequency_interval: Dodopayments::Models::TimeInterval::TaggedSymbol,
|
180
|
+
previous_billing_date: Time,
|
181
|
+
product_id: String,
|
182
|
+
quantity: Integer,
|
183
|
+
recurring_pre_tax_amount: Integer,
|
184
|
+
status: Dodopayments::Models::SubscriptionStatus::TaggedSymbol,
|
185
|
+
subscription_id: String,
|
186
|
+
subscription_period_count: Integer,
|
187
|
+
subscription_period_interval: Dodopayments::Models::TimeInterval::TaggedSymbol,
|
188
|
+
tax_inclusive: T::Boolean,
|
189
|
+
trial_period_days: Integer,
|
190
|
+
cancelled_at: T.nilable(Time),
|
191
|
+
discount_id: T.nilable(String)
|
192
|
+
}
|
193
|
+
)
|
194
|
+
end
|
195
|
+
def to_hash; end
|
196
|
+
end
|
197
|
+
end
|
198
|
+
end
|
@@ -0,0 +1,282 @@
|
|
1
|
+
# typed: strong
|
2
|
+
|
3
|
+
module Dodopayments
|
4
|
+
module Models
|
5
|
+
class SubscriptionCreateParams < Dodopayments::Internal::Type::BaseModel
|
6
|
+
extend Dodopayments::Internal::Type::RequestParameters::Converter
|
7
|
+
include Dodopayments::Internal::Type::RequestParameters
|
8
|
+
|
9
|
+
sig { returns(Dodopayments::Models::BillingAddress) }
|
10
|
+
attr_reader :billing
|
11
|
+
|
12
|
+
sig { params(billing: T.any(Dodopayments::Models::BillingAddress, Dodopayments::Internal::AnyHash)).void }
|
13
|
+
attr_writer :billing
|
14
|
+
|
15
|
+
sig { returns(T.any(Dodopayments::Models::AttachExistingCustomer, Dodopayments::Models::CreateNewCustomer)) }
|
16
|
+
attr_accessor :customer
|
17
|
+
|
18
|
+
# Unique identifier of the product to subscribe to
|
19
|
+
sig { returns(String) }
|
20
|
+
attr_accessor :product_id
|
21
|
+
|
22
|
+
# Number of units to subscribe for. Must be at least 1.
|
23
|
+
sig { returns(Integer) }
|
24
|
+
attr_accessor :quantity
|
25
|
+
|
26
|
+
# Attach addons to this subscription
|
27
|
+
sig { returns(T.nilable(T::Array[Dodopayments::Models::SubscriptionCreateParams::Addon])) }
|
28
|
+
attr_accessor :addons
|
29
|
+
|
30
|
+
# List of payment methods allowed during checkout.
|
31
|
+
#
|
32
|
+
# Customers will **never** see payment methods that are **not** in this list.
|
33
|
+
# However, adding a method here **does not guarantee** customers will see it.
|
34
|
+
# Availability still depends on other factors (e.g., customer location, merchant
|
35
|
+
# settings).
|
36
|
+
sig do
|
37
|
+
returns(
|
38
|
+
T.nilable(T::Array[Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::OrSymbol])
|
39
|
+
)
|
40
|
+
end
|
41
|
+
attr_accessor :allowed_payment_method_types
|
42
|
+
|
43
|
+
sig { returns(T.nilable(Dodopayments::Models::Currency::OrSymbol)) }
|
44
|
+
attr_accessor :billing_currency
|
45
|
+
|
46
|
+
# Discount Code to apply to the subscription
|
47
|
+
sig { returns(T.nilable(String)) }
|
48
|
+
attr_accessor :discount_code
|
49
|
+
|
50
|
+
sig { returns(T.nilable(T::Hash[Symbol, String])) }
|
51
|
+
attr_reader :metadata
|
52
|
+
|
53
|
+
sig { params(metadata: T::Hash[Symbol, String]).void }
|
54
|
+
attr_writer :metadata
|
55
|
+
|
56
|
+
sig { returns(T.nilable(Dodopayments::Models::SubscriptionCreateParams::OnDemand)) }
|
57
|
+
attr_reader :on_demand
|
58
|
+
|
59
|
+
sig do
|
60
|
+
params(
|
61
|
+
on_demand: T.nilable(
|
62
|
+
T.any(Dodopayments::Models::SubscriptionCreateParams::OnDemand, Dodopayments::Internal::AnyHash)
|
63
|
+
)
|
64
|
+
)
|
65
|
+
.void
|
66
|
+
end
|
67
|
+
attr_writer :on_demand
|
68
|
+
|
69
|
+
# If true, generates a payment link. Defaults to false if not specified.
|
70
|
+
sig { returns(T.nilable(T::Boolean)) }
|
71
|
+
attr_accessor :payment_link
|
72
|
+
|
73
|
+
# Optional URL to redirect after successful subscription creation
|
74
|
+
sig { returns(T.nilable(String)) }
|
75
|
+
attr_accessor :return_url
|
76
|
+
|
77
|
+
# Display saved payment methods of a returning customer False by default
|
78
|
+
sig { returns(T.nilable(T::Boolean)) }
|
79
|
+
attr_reader :show_saved_payment_methods
|
80
|
+
|
81
|
+
sig { params(show_saved_payment_methods: T::Boolean).void }
|
82
|
+
attr_writer :show_saved_payment_methods
|
83
|
+
|
84
|
+
# Tax ID in case the payment is B2B. If tax id validation fails the payment
|
85
|
+
# creation will fail
|
86
|
+
sig { returns(T.nilable(String)) }
|
87
|
+
attr_accessor :tax_id
|
88
|
+
|
89
|
+
# Optional trial period in days If specified, this value overrides the trial
|
90
|
+
# period set in the product's price Must be between 0 and 10000 days
|
91
|
+
sig { returns(T.nilable(Integer)) }
|
92
|
+
attr_accessor :trial_period_days
|
93
|
+
|
94
|
+
sig do
|
95
|
+
params(
|
96
|
+
billing: T.any(Dodopayments::Models::BillingAddress, Dodopayments::Internal::AnyHash),
|
97
|
+
customer: T.any(
|
98
|
+
Dodopayments::Models::AttachExistingCustomer,
|
99
|
+
Dodopayments::Internal::AnyHash,
|
100
|
+
Dodopayments::Models::CreateNewCustomer
|
101
|
+
),
|
102
|
+
product_id: String,
|
103
|
+
quantity: Integer,
|
104
|
+
addons: T.nilable(
|
105
|
+
T::Array[T.any(Dodopayments::Models::SubscriptionCreateParams::Addon, Dodopayments::Internal::AnyHash)]
|
106
|
+
),
|
107
|
+
allowed_payment_method_types: T.nilable(T::Array[Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::OrSymbol]),
|
108
|
+
billing_currency: T.nilable(Dodopayments::Models::Currency::OrSymbol),
|
109
|
+
discount_code: T.nilable(String),
|
110
|
+
metadata: T::Hash[Symbol, String],
|
111
|
+
on_demand: T.nilable(
|
112
|
+
T.any(Dodopayments::Models::SubscriptionCreateParams::OnDemand, Dodopayments::Internal::AnyHash)
|
113
|
+
),
|
114
|
+
payment_link: T.nilable(T::Boolean),
|
115
|
+
return_url: T.nilable(String),
|
116
|
+
show_saved_payment_methods: T::Boolean,
|
117
|
+
tax_id: T.nilable(String),
|
118
|
+
trial_period_days: T.nilable(Integer),
|
119
|
+
request_options: T.any(Dodopayments::RequestOptions, Dodopayments::Internal::AnyHash)
|
120
|
+
)
|
121
|
+
.returns(T.attached_class)
|
122
|
+
end
|
123
|
+
def self.new(
|
124
|
+
billing:,
|
125
|
+
customer:,
|
126
|
+
# Unique identifier of the product to subscribe to
|
127
|
+
product_id:,
|
128
|
+
# Number of units to subscribe for. Must be at least 1.
|
129
|
+
quantity:,
|
130
|
+
# Attach addons to this subscription
|
131
|
+
addons: nil,
|
132
|
+
# List of payment methods allowed during checkout.
|
133
|
+
#
|
134
|
+
# Customers will **never** see payment methods that are **not** in this list.
|
135
|
+
# However, adding a method here **does not guarantee** customers will see it.
|
136
|
+
# Availability still depends on other factors (e.g., customer location, merchant
|
137
|
+
# settings).
|
138
|
+
allowed_payment_method_types: nil,
|
139
|
+
billing_currency: nil,
|
140
|
+
# Discount Code to apply to the subscription
|
141
|
+
discount_code: nil,
|
142
|
+
metadata: nil,
|
143
|
+
on_demand: nil,
|
144
|
+
# If true, generates a payment link. Defaults to false if not specified.
|
145
|
+
payment_link: nil,
|
146
|
+
# Optional URL to redirect after successful subscription creation
|
147
|
+
return_url: nil,
|
148
|
+
# Display saved payment methods of a returning customer False by default
|
149
|
+
show_saved_payment_methods: nil,
|
150
|
+
# Tax ID in case the payment is B2B. If tax id validation fails the payment
|
151
|
+
# creation will fail
|
152
|
+
tax_id: nil,
|
153
|
+
# Optional trial period in days If specified, this value overrides the trial
|
154
|
+
# period set in the product's price Must be between 0 and 10000 days
|
155
|
+
trial_period_days: nil,
|
156
|
+
request_options: {}
|
157
|
+
); end
|
158
|
+
sig do
|
159
|
+
override
|
160
|
+
.returns(
|
161
|
+
{
|
162
|
+
billing: Dodopayments::Models::BillingAddress,
|
163
|
+
customer: T.any(Dodopayments::Models::AttachExistingCustomer, Dodopayments::Models::CreateNewCustomer),
|
164
|
+
product_id: String,
|
165
|
+
quantity: Integer,
|
166
|
+
addons: T.nilable(T::Array[Dodopayments::Models::SubscriptionCreateParams::Addon]),
|
167
|
+
allowed_payment_method_types: T.nilable(T::Array[Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::OrSymbol]),
|
168
|
+
billing_currency: T.nilable(Dodopayments::Models::Currency::OrSymbol),
|
169
|
+
discount_code: T.nilable(String),
|
170
|
+
metadata: T::Hash[Symbol, String],
|
171
|
+
on_demand: T.nilable(Dodopayments::Models::SubscriptionCreateParams::OnDemand),
|
172
|
+
payment_link: T.nilable(T::Boolean),
|
173
|
+
return_url: T.nilable(String),
|
174
|
+
show_saved_payment_methods: T::Boolean,
|
175
|
+
tax_id: T.nilable(String),
|
176
|
+
trial_period_days: T.nilable(Integer),
|
177
|
+
request_options: Dodopayments::RequestOptions
|
178
|
+
}
|
179
|
+
)
|
180
|
+
end
|
181
|
+
def to_hash; end
|
182
|
+
|
183
|
+
class Addon < Dodopayments::Internal::Type::BaseModel
|
184
|
+
sig { returns(String) }
|
185
|
+
attr_accessor :addon_id
|
186
|
+
|
187
|
+
sig { returns(Integer) }
|
188
|
+
attr_accessor :quantity
|
189
|
+
|
190
|
+
sig { params(addon_id: String, quantity: Integer).returns(T.attached_class) }
|
191
|
+
def self.new(addon_id:, quantity:); end
|
192
|
+
|
193
|
+
sig { override.returns({addon_id: String, quantity: Integer}) }
|
194
|
+
def to_hash; end
|
195
|
+
end
|
196
|
+
|
197
|
+
module AllowedPaymentMethodType
|
198
|
+
extend Dodopayments::Internal::Type::Enum
|
199
|
+
|
200
|
+
TaggedSymbol =
|
201
|
+
T.type_alias { T.all(Symbol, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType) }
|
202
|
+
OrSymbol = T.type_alias { T.any(Symbol, String) }
|
203
|
+
|
204
|
+
CREDIT =
|
205
|
+
T.let(:credit, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol)
|
206
|
+
DEBIT =
|
207
|
+
T.let(:debit, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol)
|
208
|
+
UPI_COLLECT =
|
209
|
+
T.let(
|
210
|
+
:upi_collect,
|
211
|
+
Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol
|
212
|
+
)
|
213
|
+
UPI_INTENT =
|
214
|
+
T.let(:upi_intent, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol)
|
215
|
+
APPLE_PAY =
|
216
|
+
T.let(:apple_pay, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol)
|
217
|
+
CASHAPP =
|
218
|
+
T.let(:cashapp, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol)
|
219
|
+
GOOGLE_PAY =
|
220
|
+
T.let(:google_pay, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol)
|
221
|
+
MULTIBANCO =
|
222
|
+
T.let(:multibanco, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol)
|
223
|
+
BANCONTACT_CARD =
|
224
|
+
T.let(
|
225
|
+
:bancontact_card,
|
226
|
+
Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol
|
227
|
+
)
|
228
|
+
EPS = T.let(:eps, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol)
|
229
|
+
IDEAL =
|
230
|
+
T.let(:ideal, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol)
|
231
|
+
PRZELEWY24 =
|
232
|
+
T.let(:przelewy24, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol)
|
233
|
+
AFFIRM =
|
234
|
+
T.let(:affirm, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol)
|
235
|
+
KLARNA =
|
236
|
+
T.let(:klarna, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol)
|
237
|
+
SEPA =
|
238
|
+
T.let(:sepa, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol)
|
239
|
+
ACH = T.let(:ach, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol)
|
240
|
+
AMAZON_PAY =
|
241
|
+
T.let(:amazon_pay, Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol)
|
242
|
+
AFTERPAY_CLEARPAY =
|
243
|
+
T.let(
|
244
|
+
:afterpay_clearpay,
|
245
|
+
Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol
|
246
|
+
)
|
247
|
+
|
248
|
+
sig do
|
249
|
+
override
|
250
|
+
.returns(T::Array[Dodopayments::Models::SubscriptionCreateParams::AllowedPaymentMethodType::TaggedSymbol])
|
251
|
+
end
|
252
|
+
def self.values; end
|
253
|
+
end
|
254
|
+
|
255
|
+
class OnDemand < Dodopayments::Internal::Type::BaseModel
|
256
|
+
# If set as True, does not perform any charge and only authorizes payment method
|
257
|
+
# details for future use.
|
258
|
+
sig { returns(T::Boolean) }
|
259
|
+
attr_accessor :mandate_only
|
260
|
+
|
261
|
+
# Product price for the initial charge to customer If not specified the stored
|
262
|
+
# price of the product will be used Represented in the lowest denomination of the
|
263
|
+
# currency (e.g., cents for USD). For example, to charge $1.00, pass `100`.
|
264
|
+
sig { returns(T.nilable(Integer)) }
|
265
|
+
attr_accessor :product_price
|
266
|
+
|
267
|
+
sig { params(mandate_only: T::Boolean, product_price: T.nilable(Integer)).returns(T.attached_class) }
|
268
|
+
def self.new(
|
269
|
+
# If set as True, does not perform any charge and only authorizes payment method
|
270
|
+
# details for future use.
|
271
|
+
mandate_only:,
|
272
|
+
# Product price for the initial charge to customer If not specified the stored
|
273
|
+
# price of the product will be used Represented in the lowest denomination of the
|
274
|
+
# currency (e.g., cents for USD). For example, to charge $1.00, pass `100`.
|
275
|
+
product_price: nil
|
276
|
+
); end
|
277
|
+
sig { override.returns({mandate_only: T::Boolean, product_price: T.nilable(Integer)}) }
|
278
|
+
def to_hash; end
|
279
|
+
end
|
280
|
+
end
|
281
|
+
end
|
282
|
+
end
|
@@ -3,6 +3,10 @@
|
|
3
3
|
module Dodopayments
|
4
4
|
module Models
|
5
5
|
class SubscriptionCreateResponse < Dodopayments::Internal::Type::BaseModel
|
6
|
+
# Addons associated with this subscription
|
7
|
+
sig { returns(T::Array[Dodopayments::Models::AddonCartResponseItem]) }
|
8
|
+
attr_accessor :addons
|
9
|
+
|
6
10
|
sig { returns(Dodopayments::Models::CustomerLimitedDetails) }
|
7
11
|
attr_reader :customer
|
8
12
|
|
@@ -38,6 +42,7 @@ module Dodopayments
|
|
38
42
|
|
39
43
|
sig do
|
40
44
|
params(
|
45
|
+
addons: T::Array[T.any(Dodopayments::Models::AddonCartResponseItem, Dodopayments::Internal::AnyHash)],
|
41
46
|
customer: T.any(Dodopayments::Models::CustomerLimitedDetails, Dodopayments::Internal::AnyHash),
|
42
47
|
metadata: T::Hash[Symbol, String],
|
43
48
|
recurring_pre_tax_amount: Integer,
|
@@ -49,6 +54,8 @@ module Dodopayments
|
|
49
54
|
.returns(T.attached_class)
|
50
55
|
end
|
51
56
|
def self.new(
|
57
|
+
# Addons associated with this subscription
|
58
|
+
addons:,
|
52
59
|
customer:,
|
53
60
|
metadata:,
|
54
61
|
# Tax will be added to the amount and charged to the customer on each billing
|
@@ -68,6 +75,7 @@ module Dodopayments
|
|
68
75
|
override
|
69
76
|
.returns(
|
70
77
|
{
|
78
|
+
addons: T::Array[Dodopayments::Models::AddonCartResponseItem],
|
71
79
|
customer: Dodopayments::Models::CustomerLimitedDetails,
|
72
80
|
metadata: T::Hash[Symbol, String],
|
73
81
|
recurring_pre_tax_amount: Integer,
|