dodopayments 2.4.1 → 2.6.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.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -0
  3. data/README.md +1 -1
  4. data/lib/dodopayments/internal/util.rb +18 -4
  5. data/lib/dodopayments/models/abandoned_checkout_detected_webhook_event.rb +126 -0
  6. data/lib/dodopayments/models/abandoned_checkout_recovered_webhook_event.rb +126 -0
  7. data/lib/dodopayments/models/balance_ledger_entry.rb +2 -0
  8. data/lib/dodopayments/models/balance_retrieve_ledger_params.rb +2 -0
  9. data/lib/dodopayments/models/discount.rb +8 -1
  10. data/lib/dodopayments/models/discount_create_params.rb +9 -1
  11. data/lib/dodopayments/models/discount_update_params.rb +9 -1
  12. data/lib/dodopayments/models/dunning_recovered_webhook_event.rb +118 -0
  13. data/lib/dodopayments/models/dunning_started_webhook_event.rb +118 -0
  14. data/lib/dodopayments/models/payouts/breakup/detail_download_csv_params.rb +24 -0
  15. data/lib/dodopayments/models/payouts/breakup/detail_list_params.rb +41 -0
  16. data/lib/dodopayments/models/payouts/breakup/detail_list_response.rb +94 -0
  17. data/lib/dodopayments/models/payouts/breakup_retrieve_params.rb +22 -0
  18. data/lib/dodopayments/models/payouts/breakup_retrieve_response.rb +37 -0
  19. data/lib/dodopayments/models/subscription_update_params.rb +19 -1
  20. data/lib/dodopayments/models/unsafe_unwrap_webhook_event.rb +9 -1
  21. data/lib/dodopayments/models/unwrap_webhook_event.rb +9 -1
  22. data/lib/dodopayments/models/webhook_event_type.rb +6 -0
  23. data/lib/dodopayments/models/webhook_payload.rb +168 -3
  24. data/lib/dodopayments/models.rb +10 -0
  25. data/lib/dodopayments/resources/discounts.rb +6 -2
  26. data/lib/dodopayments/resources/payouts/breakup/details.rb +72 -0
  27. data/lib/dodopayments/resources/payouts/breakup.rb +43 -0
  28. data/lib/dodopayments/resources/payouts.rb +4 -0
  29. data/lib/dodopayments/resources/subscriptions.rb +3 -1
  30. data/lib/dodopayments/resources/webhooks.rb +2 -2
  31. data/lib/dodopayments/version.rb +1 -1
  32. data/lib/dodopayments.rb +11 -0
  33. data/rbi/dodopayments/internal/util.rbi +8 -0
  34. data/rbi/dodopayments/models/abandoned_checkout_detected_webhook_event.rbi +271 -0
  35. data/rbi/dodopayments/models/abandoned_checkout_recovered_webhook_event.rbi +273 -0
  36. data/rbi/dodopayments/models/balance_ledger_entry.rbi +10 -0
  37. data/rbi/dodopayments/models/balance_retrieve_ledger_params.rbi +10 -0
  38. data/rbi/dodopayments/models/discount.rbi +6 -0
  39. data/rbi/dodopayments/models/discount_create_params.rbi +11 -0
  40. data/rbi/dodopayments/models/discount_update_params.rbi +8 -0
  41. data/rbi/dodopayments/models/dunning_recovered_webhook_event.rbi +249 -0
  42. data/rbi/dodopayments/models/dunning_started_webhook_event.rbi +249 -0
  43. data/rbi/dodopayments/models/payouts/breakup/detail_download_csv_params.rbi +45 -0
  44. data/rbi/dodopayments/models/payouts/breakup/detail_list_params.rbi +70 -0
  45. data/rbi/dodopayments/models/payouts/breakup/detail_list_response.rbi +116 -0
  46. data/rbi/dodopayments/models/payouts/breakup_retrieve_params.rbi +40 -0
  47. data/rbi/dodopayments/models/payouts/breakup_retrieve_response.rbi +53 -0
  48. data/rbi/dodopayments/models/subscription_update_params.rbi +54 -0
  49. data/rbi/dodopayments/models/unsafe_unwrap_webhook_event.rbi +4 -0
  50. data/rbi/dodopayments/models/unwrap_webhook_event.rbi +4 -0
  51. data/rbi/dodopayments/models/webhook_event_type.rbi +21 -0
  52. data/rbi/dodopayments/models/webhook_payload.rbi +400 -4
  53. data/rbi/dodopayments/models.rbi +13 -0
  54. data/rbi/dodopayments/resources/discounts.rbi +6 -0
  55. data/rbi/dodopayments/resources/payouts/breakup/details.rbi +60 -0
  56. data/rbi/dodopayments/resources/payouts/breakup.rbi +36 -0
  57. data/rbi/dodopayments/resources/payouts.rbi +3 -0
  58. data/rbi/dodopayments/resources/subscriptions.rbi +5 -0
  59. data/rbi/dodopayments/resources/webhooks.rbi +8 -0
  60. data/sig/dodopayments/internal/util.rbs +4 -0
  61. data/sig/dodopayments/models/abandoned_checkout_detected_webhook_event.rbs +113 -0
  62. data/sig/dodopayments/models/abandoned_checkout_recovered_webhook_event.rbs +113 -0
  63. data/sig/dodopayments/models/balance_ledger_entry.rbs +4 -0
  64. data/sig/dodopayments/models/balance_retrieve_ledger_params.rbs +4 -0
  65. data/sig/dodopayments/models/discount.rbs +5 -0
  66. data/sig/dodopayments/models/discount_create_params.rbs +7 -0
  67. data/sig/dodopayments/models/discount_update_params.rbs +5 -0
  68. data/sig/dodopayments/models/dunning_recovered_webhook_event.rbs +110 -0
  69. data/sig/dodopayments/models/dunning_started_webhook_event.rbs +110 -0
  70. data/sig/dodopayments/models/payouts/breakup/detail_download_csv_params.rbs +28 -0
  71. data/sig/dodopayments/models/payouts/breakup/detail_list_params.rbs +40 -0
  72. data/sig/dodopayments/models/payouts/breakup/detail_list_response.rbs +64 -0
  73. data/sig/dodopayments/models/payouts/breakup_retrieve_params.rbs +25 -0
  74. data/sig/dodopayments/models/payouts/breakup_retrieve_response.rbs +23 -0
  75. data/sig/dodopayments/models/subscription_update_params.rbs +20 -0
  76. data/sig/dodopayments/models/unsafe_unwrap_webhook_event.rbs +5 -1
  77. data/sig/dodopayments/models/unwrap_webhook_event.rbs +5 -1
  78. data/sig/dodopayments/models/webhook_event_type.rbs +12 -0
  79. data/sig/dodopayments/models/webhook_payload.rbs +165 -0
  80. data/sig/dodopayments/models.rbs +10 -0
  81. data/sig/dodopayments/resources/discounts.rbs +2 -0
  82. data/sig/dodopayments/resources/payouts/breakup/details.rbs +23 -0
  83. data/sig/dodopayments/resources/payouts/breakup.rbs +16 -0
  84. data/sig/dodopayments/resources/payouts.rbs +2 -0
  85. data/sig/dodopayments/resources/subscriptions.rbs +1 -0
  86. data/sig/dodopayments/resources/webhooks.rbs +10 -2
  87. metadata +35 -2
@@ -0,0 +1,118 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class DunningStartedWebhookEvent < Dodopayments::Internal::Type::BaseModel
6
+ # @!attribute business_id
7
+ # The business identifier
8
+ #
9
+ # @return [String]
10
+ required :business_id, String
11
+
12
+ # @!attribute data
13
+ # Webhook payload for dunning.started and dunning.recovered events
14
+ #
15
+ # @return [Dodopayments::Models::DunningStartedWebhookEvent::Data]
16
+ required :data, -> { Dodopayments::DunningStartedWebhookEvent::Data }
17
+
18
+ # @!attribute timestamp
19
+ # The timestamp of when the event occurred
20
+ #
21
+ # @return [Time]
22
+ required :timestamp, Time
23
+
24
+ # @!attribute type
25
+ # The event type
26
+ #
27
+ # @return [Symbol, Dodopayments::Models::DunningStartedWebhookEvent::Type]
28
+ required :type, enum: -> { Dodopayments::DunningStartedWebhookEvent::Type }
29
+
30
+ # @!method initialize(business_id:, data:, timestamp:, type:)
31
+ # @param business_id [String] The business identifier
32
+ #
33
+ # @param data [Dodopayments::Models::DunningStartedWebhookEvent::Data] Webhook payload for dunning.started and dunning.recovered events
34
+ #
35
+ # @param timestamp [Time] The timestamp of when the event occurred
36
+ #
37
+ # @param type [Symbol, Dodopayments::Models::DunningStartedWebhookEvent::Type] The event type
38
+
39
+ # @see Dodopayments::Models::DunningStartedWebhookEvent#data
40
+ class Data < Dodopayments::Internal::Type::BaseModel
41
+ # @!attribute created_at
42
+ #
43
+ # @return [Time]
44
+ required :created_at, Time
45
+
46
+ # @!attribute customer_id
47
+ #
48
+ # @return [String]
49
+ required :customer_id, String
50
+
51
+ # @!attribute status
52
+ #
53
+ # @return [Symbol, Dodopayments::Models::DunningStartedWebhookEvent::Data::Status]
54
+ required :status, enum: -> { Dodopayments::DunningStartedWebhookEvent::Data::Status }
55
+
56
+ # @!attribute subscription_id
57
+ #
58
+ # @return [String]
59
+ required :subscription_id, String
60
+
61
+ # @!attribute trigger_state
62
+ #
63
+ # @return [Symbol, Dodopayments::Models::DunningStartedWebhookEvent::Data::TriggerState]
64
+ required :trigger_state, enum: -> { Dodopayments::DunningStartedWebhookEvent::Data::TriggerState }
65
+
66
+ # @!attribute payment_id
67
+ #
68
+ # @return [String, nil]
69
+ optional :payment_id, String, nil?: true
70
+
71
+ # @!method initialize(created_at:, customer_id:, status:, subscription_id:, trigger_state:, payment_id: nil)
72
+ # Webhook payload for dunning.started and dunning.recovered events
73
+ #
74
+ # @param created_at [Time]
75
+ # @param customer_id [String]
76
+ # @param status [Symbol, Dodopayments::Models::DunningStartedWebhookEvent::Data::Status]
77
+ # @param subscription_id [String]
78
+ # @param trigger_state [Symbol, Dodopayments::Models::DunningStartedWebhookEvent::Data::TriggerState]
79
+ # @param payment_id [String, nil]
80
+
81
+ # @see Dodopayments::Models::DunningStartedWebhookEvent::Data#status
82
+ module Status
83
+ extend Dodopayments::Internal::Type::Enum
84
+
85
+ RECOVERING = :recovering
86
+ RECOVERED = :recovered
87
+ EXHAUSTED = :exhausted
88
+
89
+ # @!method self.values
90
+ # @return [Array<Symbol>]
91
+ end
92
+
93
+ # @see Dodopayments::Models::DunningStartedWebhookEvent::Data#trigger_state
94
+ module TriggerState
95
+ extend Dodopayments::Internal::Type::Enum
96
+
97
+ ON_HOLD = :on_hold
98
+ CANCELLED = :cancelled
99
+
100
+ # @!method self.values
101
+ # @return [Array<Symbol>]
102
+ end
103
+ end
104
+
105
+ # The event type
106
+ #
107
+ # @see Dodopayments::Models::DunningStartedWebhookEvent#type
108
+ module Type
109
+ extend Dodopayments::Internal::Type::Enum
110
+
111
+ DUNNING_STARTED = :"dunning.started"
112
+
113
+ # @!method self.values
114
+ # @return [Array<Symbol>]
115
+ end
116
+ end
117
+ end
118
+ end
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Payouts
6
+ module Breakup
7
+ # @see Dodopayments::Resources::Payouts::Breakup::Details#download_csv
8
+ class DetailDownloadCsvParams < Dodopayments::Internal::Type::BaseModel
9
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
10
+ include Dodopayments::Internal::Type::RequestParameters
11
+
12
+ # @!attribute payout_id
13
+ #
14
+ # @return [String]
15
+ required :payout_id, String
16
+
17
+ # @!method initialize(payout_id:, request_options: {})
18
+ # @param payout_id [String]
19
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Payouts
6
+ module Breakup
7
+ # @see Dodopayments::Resources::Payouts::Breakup::Details#list
8
+ class DetailListParams < Dodopayments::Internal::Type::BaseModel
9
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
10
+ include Dodopayments::Internal::Type::RequestParameters
11
+
12
+ # @!attribute payout_id
13
+ #
14
+ # @return [String]
15
+ required :payout_id, String
16
+
17
+ # @!attribute page_number
18
+ # Page number (0-indexed). Default: 0.
19
+ #
20
+ # @return [Integer, nil]
21
+ optional :page_number, Integer
22
+
23
+ # @!attribute page_size
24
+ # Number of items per page. Default: 10, Max: 100.
25
+ #
26
+ # @return [Integer, nil]
27
+ optional :page_size, Integer
28
+
29
+ # @!method initialize(payout_id:, page_number: nil, page_size: nil, request_options: {})
30
+ # @param payout_id [String]
31
+ #
32
+ # @param page_number [Integer] Page number (0-indexed). Default: 0.
33
+ #
34
+ # @param page_size [Integer] Number of items per page. Default: 10, Max: 100.
35
+ #
36
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,94 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Payouts
6
+ module Breakup
7
+ # @see Dodopayments::Resources::Payouts::Breakup::Details#list
8
+ class DetailListResponse < Dodopayments::Internal::Type::BaseModel
9
+ # @!attribute id
10
+ # Unique identifier of the balance ledger entry.
11
+ #
12
+ # @return [String]
13
+ required :id, String
14
+
15
+ # @!attribute created_at
16
+ # Timestamp when this entry was created.
17
+ #
18
+ # @return [Time]
19
+ required :created_at, Time
20
+
21
+ # @!attribute event_type
22
+ # The type of balance ledger event (e.g., "payment", "refund", "dispute",
23
+ # "payment_fees").
24
+ #
25
+ # @return [String]
26
+ required :event_type, String
27
+
28
+ # @!attribute original_amount
29
+ # Original amount in the original currency (in smallest currency unit, e.g.,
30
+ # cents).
31
+ #
32
+ # @return [Integer]
33
+ required :original_amount, Integer
34
+
35
+ # @!attribute original_currency
36
+ # Original currency as ISO 4217 code (e.g., "USD", "EUR").
37
+ #
38
+ # @return [String]
39
+ required :original_currency, String
40
+
41
+ # @!attribute payout_currency_amount
42
+ # Amount in the payout's currency (in smallest currency unit). Uses cumulative
43
+ # rounding to ensure sum matches payout total exactly.
44
+ #
45
+ # @return [Integer]
46
+ required :payout_currency_amount, Integer
47
+
48
+ # @!attribute usd_equivalent_amount
49
+ # USD equivalent of the original amount (in cents).
50
+ #
51
+ # @return [Integer]
52
+ required :usd_equivalent_amount, Integer
53
+
54
+ # @!attribute description
55
+ # Human-readable description of the transaction.
56
+ #
57
+ # @return [String, nil]
58
+ optional :description, String, nil?: true
59
+
60
+ # @!attribute reference_object_id
61
+ # ID of the related object (e.g., payment ID, refund ID) if applicable.
62
+ #
63
+ # @return [String, nil]
64
+ optional :reference_object_id, String, nil?: true
65
+
66
+ # @!method initialize(id:, created_at:, event_type:, original_amount:, original_currency:, payout_currency_amount:, usd_equivalent_amount:, description: nil, reference_object_id: nil)
67
+ # Some parameter documentations has been truncated, see
68
+ # {Dodopayments::Models::Payouts::Breakup::DetailListResponse} for more details.
69
+ #
70
+ # Individual balance ledger entry for a payout, with amounts pro-rated into the
71
+ # payout's currency.
72
+ #
73
+ # @param id [String] Unique identifier of the balance ledger entry.
74
+ #
75
+ # @param created_at [Time] Timestamp when this entry was created.
76
+ #
77
+ # @param event_type [String] The type of balance ledger event (e.g., "payment", "refund", "dispute", "payment
78
+ #
79
+ # @param original_amount [Integer] Original amount in the original currency (in smallest currency unit, e.g., cents
80
+ #
81
+ # @param original_currency [String] Original currency as ISO 4217 code (e.g., "USD", "EUR").
82
+ #
83
+ # @param payout_currency_amount [Integer] Amount in the payout's currency (in smallest currency unit). Uses cumulative rou
84
+ #
85
+ # @param usd_equivalent_amount [Integer] USD equivalent of the original amount (in cents).
86
+ #
87
+ # @param description [String, nil] Human-readable description of the transaction.
88
+ #
89
+ # @param reference_object_id [String, nil] ID of the related object (e.g., payment ID, refund ID) if applicable.
90
+ end
91
+ end
92
+ end
93
+ end
94
+ end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Payouts
6
+ # @see Dodopayments::Resources::Payouts::Breakup#retrieve
7
+ class BreakupRetrieveParams < Dodopayments::Internal::Type::BaseModel
8
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
9
+ include Dodopayments::Internal::Type::RequestParameters
10
+
11
+ # @!attribute payout_id
12
+ #
13
+ # @return [String]
14
+ required :payout_id, String
15
+
16
+ # @!method initialize(payout_id:, request_options: {})
17
+ # @param payout_id [String]
18
+ # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Dodopayments
4
+ module Models
5
+ module Payouts
6
+ class BreakupRetrieveResponseItem < Dodopayments::Internal::Type::BaseModel
7
+ # @!attribute event_type
8
+ # The type of balance ledger event (e.g., "payment", "refund", "dispute",
9
+ # "payment_fees").
10
+ #
11
+ # @return [String]
12
+ required :event_type, String
13
+
14
+ # @!attribute total
15
+ # Total amount for this event type in the payout's currency (in smallest currency
16
+ # unit, e.g., cents).
17
+ #
18
+ # @return [Integer]
19
+ required :total, Integer
20
+
21
+ # @!method initialize(event_type:, total:)
22
+ # Some parameter documentations has been truncated, see
23
+ # {Dodopayments::Models::Payouts::BreakupRetrieveResponseItem} for more details.
24
+ #
25
+ # Payout breakup aggregated by event type, with amounts in the payout's currency.
26
+ #
27
+ # @param event_type [String] The type of balance ledger event (e.g., "payment", "refund", "dispute", "payment
28
+ #
29
+ # @param total [Integer] Total amount for this event type in the payout's currency (in smallest currency
30
+ end
31
+
32
+ # @type [Dodopayments::Internal::Type::Converter]
33
+ BreakupRetrieveResponse =
34
+ Dodopayments::Internal::Type::ArrayOf[-> { Dodopayments::Models::Payouts::BreakupRetrieveResponseItem }]
35
+ end
36
+ end
37
+ end
@@ -23,6 +23,11 @@ module Dodopayments
23
23
  # @return [Boolean, nil]
24
24
  optional :cancel_at_next_billing_date, Dodopayments::Internal::Type::Boolean, nil?: true
25
25
 
26
+ # @!attribute cancel_reason
27
+ #
28
+ # @return [Symbol, Dodopayments::Models::SubscriptionUpdateParams::CancelReason, nil]
29
+ optional :cancel_reason, enum: -> { Dodopayments::SubscriptionUpdateParams::CancelReason }, nil?: true
30
+
26
31
  # @!attribute credit_entitlement_cart
27
32
  # Update credit entitlement cart settings
28
33
  #
@@ -63,13 +68,15 @@ module Dodopayments
63
68
  # @return [String, nil]
64
69
  optional :tax_id, String, nil?: true
65
70
 
66
- # @!method initialize(subscription_id:, billing: nil, cancel_at_next_billing_date: nil, credit_entitlement_cart: nil, customer_name: nil, disable_on_demand: nil, metadata: nil, next_billing_date: nil, status: nil, tax_id: nil, request_options: {})
71
+ # @!method initialize(subscription_id:, billing: nil, cancel_at_next_billing_date: nil, cancel_reason: nil, credit_entitlement_cart: nil, customer_name: nil, disable_on_demand: nil, metadata: nil, next_billing_date: nil, status: nil, tax_id: nil, request_options: {})
67
72
  # @param subscription_id [String]
68
73
  #
69
74
  # @param billing [Dodopayments::Models::BillingAddress, nil]
70
75
  #
71
76
  # @param cancel_at_next_billing_date [Boolean, nil] When set, the subscription will remain active until the end of billing period
72
77
  #
78
+ # @param cancel_reason [Symbol, Dodopayments::Models::SubscriptionUpdateParams::CancelReason, nil]
79
+ #
73
80
  # @param credit_entitlement_cart [Array<Dodopayments::Models::SubscriptionUpdateParams::CreditEntitlementCart>, nil] Update credit entitlement cart settings
74
81
  #
75
82
  # @param customer_name [String, nil]
@@ -86,6 +93,17 @@ module Dodopayments
86
93
  #
87
94
  # @param request_options [Dodopayments::RequestOptions, Hash{Symbol=>Object}]
88
95
 
96
+ module CancelReason
97
+ extend Dodopayments::Internal::Type::Enum
98
+
99
+ CANCELLED_BY_CUSTOMER = :cancelled_by_customer
100
+ CANCELLED_BY_MERCHANT = :cancelled_by_merchant
101
+ CANCELLED_BY_MERCHANT_SEND_DUNNING = :cancelled_by_merchant_send_dunning
102
+
103
+ # @!method self.values
104
+ # @return [Array<Symbol>]
105
+ end
106
+
89
107
  class CreditEntitlementCart < Dodopayments::Internal::Type::BaseModel
90
108
  # @!attribute credit_entitlement_id
91
109
  #
@@ -5,6 +5,10 @@ module Dodopayments
5
5
  module UnsafeUnwrapWebhookEvent
6
6
  extend Dodopayments::Internal::Type::Union
7
7
 
8
+ variant -> { Dodopayments::AbandonedCheckoutDetectedWebhookEvent }
9
+
10
+ variant -> { Dodopayments::AbandonedCheckoutRecoveredWebhookEvent }
11
+
8
12
  variant -> { Dodopayments::CreditAddedWebhookEvent }
9
13
 
10
14
  variant -> { Dodopayments::CreditBalanceLowWebhookEvent }
@@ -35,6 +39,10 @@ module Dodopayments
35
39
 
36
40
  variant -> { Dodopayments::DisputeWonWebhookEvent }
37
41
 
42
+ variant -> { Dodopayments::DunningRecoveredWebhookEvent }
43
+
44
+ variant -> { Dodopayments::DunningStartedWebhookEvent }
45
+
38
46
  variant -> { Dodopayments::LicenseKeyCreatedWebhookEvent }
39
47
 
40
48
  variant -> { Dodopayments::PaymentCancelledWebhookEvent }
@@ -66,7 +74,7 @@ module Dodopayments
66
74
  variant -> { Dodopayments::SubscriptionUpdatedWebhookEvent }
67
75
 
68
76
  # @!method self.variants
69
- # @return [Array(Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent)]
77
+ # @return [Array(Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent)]
70
78
  end
71
79
  end
72
80
  end
@@ -5,6 +5,10 @@ module Dodopayments
5
5
  module UnwrapWebhookEvent
6
6
  extend Dodopayments::Internal::Type::Union
7
7
 
8
+ variant -> { Dodopayments::AbandonedCheckoutDetectedWebhookEvent }
9
+
10
+ variant -> { Dodopayments::AbandonedCheckoutRecoveredWebhookEvent }
11
+
8
12
  variant -> { Dodopayments::CreditAddedWebhookEvent }
9
13
 
10
14
  variant -> { Dodopayments::CreditBalanceLowWebhookEvent }
@@ -35,6 +39,10 @@ module Dodopayments
35
39
 
36
40
  variant -> { Dodopayments::DisputeWonWebhookEvent }
37
41
 
42
+ variant -> { Dodopayments::DunningRecoveredWebhookEvent }
43
+
44
+ variant -> { Dodopayments::DunningStartedWebhookEvent }
45
+
38
46
  variant -> { Dodopayments::LicenseKeyCreatedWebhookEvent }
39
47
 
40
48
  variant -> { Dodopayments::PaymentCancelledWebhookEvent }
@@ -66,7 +74,7 @@ module Dodopayments
66
74
  variant -> { Dodopayments::SubscriptionUpdatedWebhookEvent }
67
75
 
68
76
  # @!method self.variants
69
- # @return [Array(Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent)]
77
+ # @return [Array(Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent, Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent, Dodopayments::Models::CreditAddedWebhookEvent, Dodopayments::Models::CreditBalanceLowWebhookEvent, Dodopayments::Models::CreditDeductedWebhookEvent, Dodopayments::Models::CreditExpiredWebhookEvent, Dodopayments::Models::CreditManualAdjustmentWebhookEvent, Dodopayments::Models::CreditOverageChargedWebhookEvent, Dodopayments::Models::CreditRolledOverWebhookEvent, Dodopayments::Models::CreditRolloverForfeitedWebhookEvent, Dodopayments::Models::DisputeAcceptedWebhookEvent, Dodopayments::Models::DisputeCancelledWebhookEvent, Dodopayments::Models::DisputeChallengedWebhookEvent, Dodopayments::Models::DisputeExpiredWebhookEvent, Dodopayments::Models::DisputeLostWebhookEvent, Dodopayments::Models::DisputeOpenedWebhookEvent, Dodopayments::Models::DisputeWonWebhookEvent, Dodopayments::Models::DunningRecoveredWebhookEvent, Dodopayments::Models::DunningStartedWebhookEvent, Dodopayments::Models::LicenseKeyCreatedWebhookEvent, Dodopayments::Models::PaymentCancelledWebhookEvent, Dodopayments::Models::PaymentFailedWebhookEvent, Dodopayments::Models::PaymentProcessingWebhookEvent, Dodopayments::Models::PaymentSucceededWebhookEvent, Dodopayments::Models::RefundFailedWebhookEvent, Dodopayments::Models::RefundSucceededWebhookEvent, Dodopayments::Models::SubscriptionActiveWebhookEvent, Dodopayments::Models::SubscriptionCancelledWebhookEvent, Dodopayments::Models::SubscriptionExpiredWebhookEvent, Dodopayments::Models::SubscriptionFailedWebhookEvent, Dodopayments::Models::SubscriptionOnHoldWebhookEvent, Dodopayments::Models::SubscriptionPlanChangedWebhookEvent, Dodopayments::Models::SubscriptionRenewedWebhookEvent, Dodopayments::Models::SubscriptionUpdatedWebhookEvent)]
70
78
  end
71
79
  end
72
80
  end
@@ -41,6 +41,12 @@ module Dodopayments
41
41
  CREDIT_OVERAGE_CHARGED = :"credit.overage_charged"
42
42
  CREDIT_MANUAL_ADJUSTMENT = :"credit.manual_adjustment"
43
43
  CREDIT_BALANCE_LOW = :"credit.balance_low"
44
+ ABANDONED_CHECKOUT_DETECTED = :"abandoned_checkout.detected"
45
+ ABANDONED_CHECKOUT_RECOVERED = :"abandoned_checkout.recovered"
46
+ DUNNING_STARTED = :"dunning.started"
47
+ DUNNING_RECOVERED = :"dunning.recovered"
48
+ ACR_EMAIL = :"acr.email"
49
+ DUNNING_EMAIL = :"dunning.email"
44
50
 
45
51
  # @!method self.values
46
52
  # @return [Array<Symbol>]
@@ -11,7 +11,7 @@ module Dodopayments
11
11
  # @!attribute data
12
12
  # The latest data at the time of delivery attempt
13
13
  #
14
- # @return [Dodopayments::Models::WebhookPayload::Data::Payment, Dodopayments::Models::WebhookPayload::Data::Subscription, Dodopayments::Models::WebhookPayload::Data::Refund, Dodopayments::Models::WebhookPayload::Data::Dispute, Dodopayments::Models::WebhookPayload::Data::LicenseKey, Dodopayments::Models::WebhookPayload::Data::CreditLedgerEntry, Dodopayments::Models::WebhookPayload::Data::CreditBalanceLow]
14
+ # @return [Dodopayments::Models::WebhookPayload::Data::Payment, Dodopayments::Models::WebhookPayload::Data::Subscription, Dodopayments::Models::WebhookPayload::Data::Refund, Dodopayments::Models::WebhookPayload::Data::Dispute, Dodopayments::Models::WebhookPayload::Data::LicenseKey, Dodopayments::Models::WebhookPayload::Data::CreditLedgerEntry, Dodopayments::Models::WebhookPayload::Data::CreditBalanceLow, Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout, Dodopayments::Models::WebhookPayload::Data::DunningAttempt]
15
15
  required :data, union: -> { Dodopayments::WebhookPayload::Data }
16
16
 
17
17
  # @!attribute timestamp
@@ -33,7 +33,7 @@ module Dodopayments
33
33
  #
34
34
  # @param business_id [String]
35
35
  #
36
- # @param data [Dodopayments::Models::WebhookPayload::Data::Payment, Dodopayments::Models::WebhookPayload::Data::Subscription, Dodopayments::Models::WebhookPayload::Data::Refund, Dodopayments::Models::WebhookPayload::Data::Dispute, Dodopayments::Models::WebhookPayload::Data::LicenseKey, Dodopayments::Models::WebhookPayload::Data::CreditLedgerEntry, Dodopayments::Models::WebhookPayload::Data::CreditBalanceLow] The latest data at the time of delivery attempt
36
+ # @param data [Dodopayments::Models::WebhookPayload::Data::Payment, Dodopayments::Models::WebhookPayload::Data::Subscription, Dodopayments::Models::WebhookPayload::Data::Refund, Dodopayments::Models::WebhookPayload::Data::Dispute, Dodopayments::Models::WebhookPayload::Data::LicenseKey, Dodopayments::Models::WebhookPayload::Data::CreditLedgerEntry, Dodopayments::Models::WebhookPayload::Data::CreditBalanceLow, Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout, Dodopayments::Models::WebhookPayload::Data::DunningAttempt] The latest data at the time of delivery attempt
37
37
  #
38
38
  # @param timestamp [Time] The timestamp of when the event occurred (not necessarily the same of when it wa
39
39
  #
@@ -61,6 +61,10 @@ module Dodopayments
61
61
 
62
62
  variant -> { Dodopayments::WebhookPayload::Data::CreditBalanceLow }
63
63
 
64
+ variant -> { Dodopayments::WebhookPayload::Data::AbandonedCheckout }
65
+
66
+ variant -> { Dodopayments::WebhookPayload::Data::DunningAttempt }
67
+
64
68
  class Payment < Dodopayments::Models::Payment
65
69
  # @!attribute payload_type
66
70
  #
@@ -247,8 +251,169 @@ module Dodopayments
247
251
  end
248
252
  end
249
253
 
254
+ class AbandonedCheckout < Dodopayments::Internal::Type::BaseModel
255
+ # @!attribute abandoned_at
256
+ #
257
+ # @return [Time]
258
+ required :abandoned_at, Time
259
+
260
+ # @!attribute abandonment_reason
261
+ #
262
+ # @return [Symbol, Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::AbandonmentReason]
263
+ required :abandonment_reason,
264
+ enum: -> { Dodopayments::WebhookPayload::Data::AbandonedCheckout::AbandonmentReason }
265
+
266
+ # @!attribute customer_id
267
+ #
268
+ # @return [String]
269
+ required :customer_id, String
270
+
271
+ # @!attribute payload_type
272
+ #
273
+ # @return [Symbol, Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::PayloadType]
274
+ required :payload_type, enum: -> { Dodopayments::WebhookPayload::Data::AbandonedCheckout::PayloadType }
275
+
276
+ # @!attribute payment_id
277
+ #
278
+ # @return [String]
279
+ required :payment_id, String
280
+
281
+ # @!attribute status
282
+ #
283
+ # @return [Symbol, Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::Status]
284
+ required :status, enum: -> { Dodopayments::WebhookPayload::Data::AbandonedCheckout::Status }
285
+
286
+ # @!attribute recovered_payment_id
287
+ #
288
+ # @return [String, nil]
289
+ optional :recovered_payment_id, String, nil?: true
290
+
291
+ # @!method initialize(abandoned_at:, abandonment_reason:, customer_id:, payload_type:, payment_id:, status:, recovered_payment_id: nil)
292
+ # @param abandoned_at [Time]
293
+ # @param abandonment_reason [Symbol, Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::AbandonmentReason]
294
+ # @param customer_id [String]
295
+ # @param payload_type [Symbol, Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::PayloadType]
296
+ # @param payment_id [String]
297
+ # @param status [Symbol, Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::Status]
298
+ # @param recovered_payment_id [String, nil]
299
+
300
+ # @see Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout#abandonment_reason
301
+ module AbandonmentReason
302
+ extend Dodopayments::Internal::Type::Enum
303
+
304
+ PAYMENT_FAILED = :payment_failed
305
+ CHECKOUT_INCOMPLETE = :checkout_incomplete
306
+
307
+ # @!method self.values
308
+ # @return [Array<Symbol>]
309
+ end
310
+
311
+ # @see Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout#payload_type
312
+ module PayloadType
313
+ extend Dodopayments::Internal::Type::Enum
314
+
315
+ ABANDONED_CHECKOUT = :AbandonedCheckout
316
+
317
+ # @!method self.values
318
+ # @return [Array<Symbol>]
319
+ end
320
+
321
+ # @see Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout#status
322
+ module Status
323
+ extend Dodopayments::Internal::Type::Enum
324
+
325
+ ABANDONED = :abandoned
326
+ RECOVERING = :recovering
327
+ RECOVERED = :recovered
328
+ EXHAUSTED = :exhausted
329
+ OPTED_OUT = :opted_out
330
+
331
+ # @!method self.values
332
+ # @return [Array<Symbol>]
333
+ end
334
+ end
335
+
336
+ class DunningAttempt < Dodopayments::Internal::Type::BaseModel
337
+ # @!attribute created_at
338
+ #
339
+ # @return [Time]
340
+ required :created_at, Time
341
+
342
+ # @!attribute customer_id
343
+ #
344
+ # @return [String]
345
+ required :customer_id, String
346
+
347
+ # @!attribute payload_type
348
+ #
349
+ # @return [Symbol, Dodopayments::Models::WebhookPayload::Data::DunningAttempt::PayloadType]
350
+ required :payload_type, enum: -> { Dodopayments::WebhookPayload::Data::DunningAttempt::PayloadType }
351
+
352
+ # @!attribute status
353
+ #
354
+ # @return [Symbol, Dodopayments::Models::WebhookPayload::Data::DunningAttempt::Status]
355
+ required :status, enum: -> { Dodopayments::WebhookPayload::Data::DunningAttempt::Status }
356
+
357
+ # @!attribute subscription_id
358
+ #
359
+ # @return [String]
360
+ required :subscription_id, String
361
+
362
+ # @!attribute trigger_state
363
+ #
364
+ # @return [Symbol, Dodopayments::Models::WebhookPayload::Data::DunningAttempt::TriggerState]
365
+ required :trigger_state, enum: -> { Dodopayments::WebhookPayload::Data::DunningAttempt::TriggerState }
366
+
367
+ # @!attribute payment_id
368
+ #
369
+ # @return [String, nil]
370
+ optional :payment_id, String, nil?: true
371
+
372
+ # @!method initialize(created_at:, customer_id:, payload_type:, status:, subscription_id:, trigger_state:, payment_id: nil)
373
+ # @param created_at [Time]
374
+ # @param customer_id [String]
375
+ # @param payload_type [Symbol, Dodopayments::Models::WebhookPayload::Data::DunningAttempt::PayloadType]
376
+ # @param status [Symbol, Dodopayments::Models::WebhookPayload::Data::DunningAttempt::Status]
377
+ # @param subscription_id [String]
378
+ # @param trigger_state [Symbol, Dodopayments::Models::WebhookPayload::Data::DunningAttempt::TriggerState]
379
+ # @param payment_id [String, nil]
380
+
381
+ # @see Dodopayments::Models::WebhookPayload::Data::DunningAttempt#payload_type
382
+ module PayloadType
383
+ extend Dodopayments::Internal::Type::Enum
384
+
385
+ DUNNING_ATTEMPT = :DunningAttempt
386
+
387
+ # @!method self.values
388
+ # @return [Array<Symbol>]
389
+ end
390
+
391
+ # @see Dodopayments::Models::WebhookPayload::Data::DunningAttempt#status
392
+ module Status
393
+ extend Dodopayments::Internal::Type::Enum
394
+
395
+ RECOVERING = :recovering
396
+ RECOVERED = :recovered
397
+ EXHAUSTED = :exhausted
398
+
399
+ # @!method self.values
400
+ # @return [Array<Symbol>]
401
+ end
402
+
403
+ # @see Dodopayments::Models::WebhookPayload::Data::DunningAttempt#trigger_state
404
+ module TriggerState
405
+ extend Dodopayments::Internal::Type::Enum
406
+
407
+ ON_HOLD = :on_hold
408
+ CANCELLED = :cancelled
409
+
410
+ # @!method self.values
411
+ # @return [Array<Symbol>]
412
+ end
413
+ end
414
+
250
415
  # @!method self.variants
251
- # @return [Array(Dodopayments::Models::WebhookPayload::Data::Payment, Dodopayments::Models::WebhookPayload::Data::Subscription, Dodopayments::Models::WebhookPayload::Data::Refund, Dodopayments::Models::WebhookPayload::Data::Dispute, Dodopayments::Models::WebhookPayload::Data::LicenseKey, Dodopayments::Models::WebhookPayload::Data::CreditLedgerEntry, Dodopayments::Models::WebhookPayload::Data::CreditBalanceLow)]
416
+ # @return [Array(Dodopayments::Models::WebhookPayload::Data::Payment, Dodopayments::Models::WebhookPayload::Data::Subscription, Dodopayments::Models::WebhookPayload::Data::Refund, Dodopayments::Models::WebhookPayload::Data::Dispute, Dodopayments::Models::WebhookPayload::Data::LicenseKey, Dodopayments::Models::WebhookPayload::Data::CreditLedgerEntry, Dodopayments::Models::WebhookPayload::Data::CreditBalanceLow, Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout, Dodopayments::Models::WebhookPayload::Data::DunningAttempt)]
252
417
  end
253
418
  end
254
419
  end