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,64 @@
1
+ module Dodopayments
2
+ module Models
3
+ module Payouts
4
+ module Breakup
5
+ type detail_list_response =
6
+ {
7
+ id: String,
8
+ created_at: Time,
9
+ event_type: String,
10
+ original_amount: Integer,
11
+ original_currency: String,
12
+ payout_currency_amount: Integer,
13
+ usd_equivalent_amount: Integer,
14
+ description: String?,
15
+ reference_object_id: String?
16
+ }
17
+
18
+ class DetailListResponse < Dodopayments::Internal::Type::BaseModel
19
+ attr_accessor id: String
20
+
21
+ attr_accessor created_at: Time
22
+
23
+ attr_accessor event_type: String
24
+
25
+ attr_accessor original_amount: Integer
26
+
27
+ attr_accessor original_currency: String
28
+
29
+ attr_accessor payout_currency_amount: Integer
30
+
31
+ attr_accessor usd_equivalent_amount: Integer
32
+
33
+ attr_accessor description: String?
34
+
35
+ attr_accessor reference_object_id: String?
36
+
37
+ def initialize: (
38
+ id: String,
39
+ created_at: Time,
40
+ event_type: String,
41
+ original_amount: Integer,
42
+ original_currency: String,
43
+ payout_currency_amount: Integer,
44
+ usd_equivalent_amount: Integer,
45
+ ?description: String?,
46
+ ?reference_object_id: String?
47
+ ) -> void
48
+
49
+ def to_hash: -> {
50
+ id: String,
51
+ created_at: Time,
52
+ event_type: String,
53
+ original_amount: Integer,
54
+ original_currency: String,
55
+ payout_currency_amount: Integer,
56
+ usd_equivalent_amount: Integer,
57
+ description: String?,
58
+ reference_object_id: String?
59
+ }
60
+ end
61
+ end
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,25 @@
1
+ module Dodopayments
2
+ module Models
3
+ module Payouts
4
+ type breakup_retrieve_params =
5
+ { payout_id: String } & Dodopayments::Internal::Type::request_parameters
6
+
7
+ class BreakupRetrieveParams < Dodopayments::Internal::Type::BaseModel
8
+ extend Dodopayments::Internal::Type::RequestParameters::Converter
9
+ include Dodopayments::Internal::Type::RequestParameters
10
+
11
+ attr_accessor payout_id: String
12
+
13
+ def initialize: (
14
+ payout_id: String,
15
+ ?request_options: Dodopayments::request_opts
16
+ ) -> void
17
+
18
+ def to_hash: -> {
19
+ payout_id: String,
20
+ request_options: Dodopayments::RequestOptions
21
+ }
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,23 @@
1
+ module Dodopayments
2
+ module Models
3
+ module Payouts
4
+ type breakup_retrieve_response_item =
5
+ { event_type: String, total: Integer }
6
+
7
+ class BreakupRetrieveResponseItem < Dodopayments::Internal::Type::BaseModel
8
+ attr_accessor event_type: String
9
+
10
+ attr_accessor total: Integer
11
+
12
+ def initialize: (event_type: String, total: Integer) -> void
13
+
14
+ def to_hash: -> { event_type: String, total: Integer }
15
+ end
16
+
17
+ type breakup_retrieve_response =
18
+ ::Array[Dodopayments::Models::Payouts::BreakupRetrieveResponseItem]
19
+
20
+ BreakupRetrieveResponse: Dodopayments::Internal::Type::Converter
21
+ end
22
+ end
23
+ end
@@ -5,6 +5,7 @@ module Dodopayments
5
5
  subscription_id: String,
6
6
  billing: Dodopayments::BillingAddress?,
7
7
  cancel_at_next_billing_date: bool?,
8
+ cancel_reason: Dodopayments::Models::SubscriptionUpdateParams::cancel_reason?,
8
9
  credit_entitlement_cart: ::Array[Dodopayments::SubscriptionUpdateParams::CreditEntitlementCart]?,
9
10
  customer_name: String?,
10
11
  disable_on_demand: Dodopayments::SubscriptionUpdateParams::DisableOnDemand?,
@@ -25,6 +26,8 @@ module Dodopayments
25
26
 
26
27
  attr_accessor cancel_at_next_billing_date: bool?
27
28
 
29
+ attr_accessor cancel_reason: Dodopayments::Models::SubscriptionUpdateParams::cancel_reason?
30
+
28
31
  attr_accessor credit_entitlement_cart: ::Array[Dodopayments::SubscriptionUpdateParams::CreditEntitlementCart]?
29
32
 
30
33
  attr_accessor customer_name: String?
@@ -43,6 +46,7 @@ module Dodopayments
43
46
  subscription_id: String,
44
47
  ?billing: Dodopayments::BillingAddress?,
45
48
  ?cancel_at_next_billing_date: bool?,
49
+ ?cancel_reason: Dodopayments::Models::SubscriptionUpdateParams::cancel_reason?,
46
50
  ?credit_entitlement_cart: ::Array[Dodopayments::SubscriptionUpdateParams::CreditEntitlementCart]?,
47
51
  ?customer_name: String?,
48
52
  ?disable_on_demand: Dodopayments::SubscriptionUpdateParams::DisableOnDemand?,
@@ -57,6 +61,7 @@ module Dodopayments
57
61
  subscription_id: String,
58
62
  billing: Dodopayments::BillingAddress?,
59
63
  cancel_at_next_billing_date: bool?,
64
+ cancel_reason: Dodopayments::Models::SubscriptionUpdateParams::cancel_reason?,
60
65
  credit_entitlement_cart: ::Array[Dodopayments::SubscriptionUpdateParams::CreditEntitlementCart]?,
61
66
  customer_name: String?,
62
67
  disable_on_demand: Dodopayments::SubscriptionUpdateParams::DisableOnDemand?,
@@ -67,6 +72,21 @@ module Dodopayments
67
72
  request_options: Dodopayments::RequestOptions
68
73
  }
69
74
 
75
+ type cancel_reason =
76
+ :cancelled_by_customer
77
+ | :cancelled_by_merchant
78
+ | :cancelled_by_merchant_send_dunning
79
+
80
+ module CancelReason
81
+ extend Dodopayments::Internal::Type::Enum
82
+
83
+ CANCELLED_BY_CUSTOMER: :cancelled_by_customer
84
+ CANCELLED_BY_MERCHANT: :cancelled_by_merchant
85
+ CANCELLED_BY_MERCHANT_SEND_DUNNING: :cancelled_by_merchant_send_dunning
86
+
87
+ def self?.values: -> ::Array[Dodopayments::Models::SubscriptionUpdateParams::cancel_reason]
88
+ end
89
+
70
90
  type credit_entitlement_cart =
71
91
  {
72
92
  credit_entitlement_id: String,
@@ -1,7 +1,9 @@
1
1
  module Dodopayments
2
2
  module Models
3
3
  type unsafe_unwrap_webhook_event =
4
- Dodopayments::CreditAddedWebhookEvent
4
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent
5
+ | Dodopayments::AbandonedCheckoutRecoveredWebhookEvent
6
+ | Dodopayments::CreditAddedWebhookEvent
5
7
  | Dodopayments::CreditBalanceLowWebhookEvent
6
8
  | Dodopayments::CreditDeductedWebhookEvent
7
9
  | Dodopayments::CreditExpiredWebhookEvent
@@ -16,6 +18,8 @@ module Dodopayments
16
18
  | Dodopayments::DisputeLostWebhookEvent
17
19
  | Dodopayments::DisputeOpenedWebhookEvent
18
20
  | Dodopayments::DisputeWonWebhookEvent
21
+ | Dodopayments::DunningRecoveredWebhookEvent
22
+ | Dodopayments::DunningStartedWebhookEvent
19
23
  | Dodopayments::LicenseKeyCreatedWebhookEvent
20
24
  | Dodopayments::PaymentCancelledWebhookEvent
21
25
  | Dodopayments::PaymentFailedWebhookEvent
@@ -1,7 +1,9 @@
1
1
  module Dodopayments
2
2
  module Models
3
3
  type unwrap_webhook_event =
4
- Dodopayments::CreditAddedWebhookEvent
4
+ Dodopayments::AbandonedCheckoutDetectedWebhookEvent
5
+ | Dodopayments::AbandonedCheckoutRecoveredWebhookEvent
6
+ | Dodopayments::CreditAddedWebhookEvent
5
7
  | Dodopayments::CreditBalanceLowWebhookEvent
6
8
  | Dodopayments::CreditDeductedWebhookEvent
7
9
  | Dodopayments::CreditExpiredWebhookEvent
@@ -16,6 +18,8 @@ module Dodopayments
16
18
  | Dodopayments::DisputeLostWebhookEvent
17
19
  | Dodopayments::DisputeOpenedWebhookEvent
18
20
  | Dodopayments::DisputeWonWebhookEvent
21
+ | Dodopayments::DunningRecoveredWebhookEvent
22
+ | Dodopayments::DunningStartedWebhookEvent
19
23
  | Dodopayments::LicenseKeyCreatedWebhookEvent
20
24
  | Dodopayments::PaymentCancelledWebhookEvent
21
25
  | Dodopayments::PaymentFailedWebhookEvent
@@ -36,6 +36,12 @@ module Dodopayments
36
36
  | :"credit.overage_charged"
37
37
  | :"credit.manual_adjustment"
38
38
  | :"credit.balance_low"
39
+ | :"abandoned_checkout.detected"
40
+ | :"abandoned_checkout.recovered"
41
+ | :"dunning.started"
42
+ | :"dunning.recovered"
43
+ | :"acr.email"
44
+ | :"dunning.email"
39
45
 
40
46
  module WebhookEventType
41
47
  extend Dodopayments::Internal::Type::Enum
@@ -75,6 +81,12 @@ module Dodopayments
75
81
  CREDIT_OVERAGE_CHARGED: :"credit.overage_charged"
76
82
  CREDIT_MANUAL_ADJUSTMENT: :"credit.manual_adjustment"
77
83
  CREDIT_BALANCE_LOW: :"credit.balance_low"
84
+ ABANDONED_CHECKOUT_DETECTED: :"abandoned_checkout.detected"
85
+ ABANDONED_CHECKOUT_RECOVERED: :"abandoned_checkout.recovered"
86
+ DUNNING_STARTED: :"dunning.started"
87
+ DUNNING_RECOVERED: :"dunning.recovered"
88
+ ACR_EMAIL: :"acr.email"
89
+ DUNNING_EMAIL: :"dunning.email"
78
90
 
79
91
  def self?.values: -> ::Array[Dodopayments::Models::webhook_event_type]
80
92
  end
@@ -39,6 +39,8 @@ module Dodopayments
39
39
  | Dodopayments::WebhookPayload::Data::LicenseKey
40
40
  | Dodopayments::WebhookPayload::Data::CreditLedgerEntry
41
41
  | Dodopayments::WebhookPayload::Data::CreditBalanceLow
42
+ | Dodopayments::WebhookPayload::Data::AbandonedCheckout
43
+ | Dodopayments::WebhookPayload::Data::DunningAttempt
42
44
 
43
45
  module Data
44
46
  extend Dodopayments::Internal::Type::Union
@@ -296,6 +298,169 @@ module Dodopayments
296
298
  end
297
299
  end
298
300
 
301
+ type abandoned_checkout =
302
+ {
303
+ abandoned_at: Time,
304
+ abandonment_reason: Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::abandonment_reason,
305
+ customer_id: String,
306
+ payload_type: Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::payload_type,
307
+ payment_id: String,
308
+ status: Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::status,
309
+ recovered_payment_id: String?
310
+ }
311
+
312
+ class AbandonedCheckout < Dodopayments::Internal::Type::BaseModel
313
+ attr_accessor abandoned_at: Time
314
+
315
+ attr_accessor abandonment_reason: Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::abandonment_reason
316
+
317
+ attr_accessor customer_id: String
318
+
319
+ attr_accessor payload_type: Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::payload_type
320
+
321
+ attr_accessor payment_id: String
322
+
323
+ attr_accessor status: Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::status
324
+
325
+ attr_accessor recovered_payment_id: String?
326
+
327
+ def initialize: (
328
+ abandoned_at: Time,
329
+ abandonment_reason: Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::abandonment_reason,
330
+ customer_id: String,
331
+ payload_type: Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::payload_type,
332
+ payment_id: String,
333
+ status: Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::status,
334
+ ?recovered_payment_id: String?
335
+ ) -> void
336
+
337
+ def to_hash: -> {
338
+ abandoned_at: Time,
339
+ abandonment_reason: Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::abandonment_reason,
340
+ customer_id: String,
341
+ payload_type: Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::payload_type,
342
+ payment_id: String,
343
+ status: Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::status,
344
+ recovered_payment_id: String?
345
+ }
346
+
347
+ type abandonment_reason = :payment_failed | :checkout_incomplete
348
+
349
+ module AbandonmentReason
350
+ extend Dodopayments::Internal::Type::Enum
351
+
352
+ PAYMENT_FAILED: :payment_failed
353
+ CHECKOUT_INCOMPLETE: :checkout_incomplete
354
+
355
+ def self?.values: -> ::Array[Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::abandonment_reason]
356
+ end
357
+
358
+ type payload_type = :AbandonedCheckout
359
+
360
+ module PayloadType
361
+ extend Dodopayments::Internal::Type::Enum
362
+
363
+ ABANDONED_CHECKOUT: :AbandonedCheckout
364
+
365
+ def self?.values: -> ::Array[Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::payload_type]
366
+ end
367
+
368
+ type status =
369
+ :abandoned | :recovering | :recovered | :exhausted | :opted_out
370
+
371
+ module Status
372
+ extend Dodopayments::Internal::Type::Enum
373
+
374
+ ABANDONED: :abandoned
375
+ RECOVERING: :recovering
376
+ RECOVERED: :recovered
377
+ EXHAUSTED: :exhausted
378
+ OPTED_OUT: :opted_out
379
+
380
+ def self?.values: -> ::Array[Dodopayments::Models::WebhookPayload::Data::AbandonedCheckout::status]
381
+ end
382
+ end
383
+
384
+ type dunning_attempt =
385
+ {
386
+ created_at: Time,
387
+ customer_id: String,
388
+ payload_type: Dodopayments::Models::WebhookPayload::Data::DunningAttempt::payload_type,
389
+ status: Dodopayments::Models::WebhookPayload::Data::DunningAttempt::status,
390
+ subscription_id: String,
391
+ trigger_state: Dodopayments::Models::WebhookPayload::Data::DunningAttempt::trigger_state,
392
+ payment_id: String?
393
+ }
394
+
395
+ class DunningAttempt < Dodopayments::Internal::Type::BaseModel
396
+ attr_accessor created_at: Time
397
+
398
+ attr_accessor customer_id: String
399
+
400
+ attr_accessor payload_type: Dodopayments::Models::WebhookPayload::Data::DunningAttempt::payload_type
401
+
402
+ attr_accessor status: Dodopayments::Models::WebhookPayload::Data::DunningAttempt::status
403
+
404
+ attr_accessor subscription_id: String
405
+
406
+ attr_accessor trigger_state: Dodopayments::Models::WebhookPayload::Data::DunningAttempt::trigger_state
407
+
408
+ attr_accessor payment_id: String?
409
+
410
+ def initialize: (
411
+ created_at: Time,
412
+ customer_id: String,
413
+ payload_type: Dodopayments::Models::WebhookPayload::Data::DunningAttempt::payload_type,
414
+ status: Dodopayments::Models::WebhookPayload::Data::DunningAttempt::status,
415
+ subscription_id: String,
416
+ trigger_state: Dodopayments::Models::WebhookPayload::Data::DunningAttempt::trigger_state,
417
+ ?payment_id: String?
418
+ ) -> void
419
+
420
+ def to_hash: -> {
421
+ created_at: Time,
422
+ customer_id: String,
423
+ payload_type: Dodopayments::Models::WebhookPayload::Data::DunningAttempt::payload_type,
424
+ status: Dodopayments::Models::WebhookPayload::Data::DunningAttempt::status,
425
+ subscription_id: String,
426
+ trigger_state: Dodopayments::Models::WebhookPayload::Data::DunningAttempt::trigger_state,
427
+ payment_id: String?
428
+ }
429
+
430
+ type payload_type = :DunningAttempt
431
+
432
+ module PayloadType
433
+ extend Dodopayments::Internal::Type::Enum
434
+
435
+ DUNNING_ATTEMPT: :DunningAttempt
436
+
437
+ def self?.values: -> ::Array[Dodopayments::Models::WebhookPayload::Data::DunningAttempt::payload_type]
438
+ end
439
+
440
+ type status = :recovering | :recovered | :exhausted
441
+
442
+ module Status
443
+ extend Dodopayments::Internal::Type::Enum
444
+
445
+ RECOVERING: :recovering
446
+ RECOVERED: :recovered
447
+ EXHAUSTED: :exhausted
448
+
449
+ def self?.values: -> ::Array[Dodopayments::Models::WebhookPayload::Data::DunningAttempt::status]
450
+ end
451
+
452
+ type trigger_state = :on_hold | :cancelled
453
+
454
+ module TriggerState
455
+ extend Dodopayments::Internal::Type::Enum
456
+
457
+ ON_HOLD: :on_hold
458
+ CANCELLED: :cancelled
459
+
460
+ def self?.values: -> ::Array[Dodopayments::Models::WebhookPayload::Data::DunningAttempt::trigger_state]
461
+ end
462
+ end
463
+
299
464
  def self?.variants: -> ::Array[Dodopayments::Models::WebhookPayload::data]
300
465
  end
301
466
  end
@@ -1,4 +1,8 @@
1
1
  module Dodopayments
2
+ class AbandonedCheckoutDetectedWebhookEvent = Dodopayments::Models::AbandonedCheckoutDetectedWebhookEvent
3
+
4
+ class AbandonedCheckoutRecoveredWebhookEvent = Dodopayments::Models::AbandonedCheckoutRecoveredWebhookEvent
5
+
2
6
  class AddMeterToPrice = Dodopayments::Models::AddMeterToPrice
3
7
 
4
8
  class AddonCartResponseItem = Dodopayments::Models::AddonCartResponseItem
@@ -177,6 +181,10 @@ module Dodopayments
177
181
 
178
182
  class DisputeWonWebhookEvent = Dodopayments::Models::DisputeWonWebhookEvent
179
183
 
184
+ class DunningRecoveredWebhookEvent = Dodopayments::Models::DunningRecoveredWebhookEvent
185
+
186
+ class DunningStartedWebhookEvent = Dodopayments::Models::DunningStartedWebhookEvent
187
+
180
188
  class Event = Dodopayments::Models::Event
181
189
 
182
190
  class EventInput = Dodopayments::Models::EventInput
@@ -269,6 +277,8 @@ module Dodopayments
269
277
 
270
278
  class PayoutListParams = Dodopayments::Models::PayoutListParams
271
279
 
280
+ module Payouts = Dodopayments::Models::Payouts
281
+
272
282
  module Price = Dodopayments::Models::Price
273
283
 
274
284
  class Product = Dodopayments::Models::Product
@@ -6,6 +6,7 @@ module Dodopayments
6
6
  type: Dodopayments::Models::discount_type,
7
7
  ?code: String?,
8
8
  ?expires_at: Time?,
9
+ ?metadata: ::Hash[Symbol, String],
9
10
  ?name: String?,
10
11
  ?preserve_on_plan_change: bool,
11
12
  ?restricted_to: ::Array[String]?,
@@ -24,6 +25,7 @@ module Dodopayments
24
25
  ?amount: Integer?,
25
26
  ?code: String?,
26
27
  ?expires_at: Time?,
28
+ ?metadata: ::Hash[Symbol, String]?,
27
29
  ?name: String?,
28
30
  ?preserve_on_plan_change: bool?,
29
31
  ?restricted_to: ::Array[String]?,
@@ -0,0 +1,23 @@
1
+ module Dodopayments
2
+ module Resources
3
+ class Payouts
4
+ class Breakup
5
+ class Details
6
+ def list: (
7
+ String payout_id,
8
+ ?page_number: Integer,
9
+ ?page_size: Integer,
10
+ ?request_options: Dodopayments::request_opts
11
+ ) -> Dodopayments::Internal::DefaultPageNumberPagination[Dodopayments::Models::Payouts::Breakup::DetailListResponse]
12
+
13
+ def download_csv: (
14
+ String payout_id,
15
+ ?request_options: Dodopayments::request_opts
16
+ ) -> nil
17
+
18
+ def initialize: (client: Dodopayments::Client) -> void
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,16 @@
1
+ module Dodopayments
2
+ module Resources
3
+ class Payouts
4
+ class Breakup
5
+ attr_reader details: Dodopayments::Resources::Payouts::Breakup::Details
6
+
7
+ def retrieve: (
8
+ String payout_id,
9
+ ?request_options: Dodopayments::request_opts
10
+ ) -> Dodopayments::Models::Payouts::breakup_retrieve_response
11
+
12
+ def initialize: (client: Dodopayments::Client) -> void
13
+ end
14
+ end
15
+ end
16
+ end
@@ -1,6 +1,8 @@
1
1
  module Dodopayments
2
2
  module Resources
3
3
  class Payouts
4
+ attr_reader breakup: Dodopayments::Resources::Payouts::Breakup
5
+
4
6
  def list: (
5
7
  ?created_at_gte: Time,
6
8
  ?created_at_lte: Time,
@@ -34,6 +34,7 @@ module Dodopayments
34
34
  String subscription_id,
35
35
  ?billing: Dodopayments::BillingAddress?,
36
36
  ?cancel_at_next_billing_date: bool?,
37
+ ?cancel_reason: Dodopayments::Models::SubscriptionUpdateParams::cancel_reason?,
37
38
  ?credit_entitlement_cart: ::Array[Dodopayments::SubscriptionUpdateParams::CreditEntitlementCart]?,
38
39
  ?customer_name: String?,
39
40
  ?disable_on_demand: Dodopayments::SubscriptionUpdateParams::DisableOnDemand?,
@@ -49,7 +49,9 @@ module Dodopayments
49
49
 
50
50
  def unsafe_unwrap: (
51
51
  String payload
52
- ) -> (Dodopayments::CreditAddedWebhookEvent
52
+ ) -> (Dodopayments::AbandonedCheckoutDetectedWebhookEvent
53
+ | Dodopayments::AbandonedCheckoutRecoveredWebhookEvent
54
+ | Dodopayments::CreditAddedWebhookEvent
53
55
  | Dodopayments::CreditBalanceLowWebhookEvent
54
56
  | Dodopayments::CreditDeductedWebhookEvent
55
57
  | Dodopayments::CreditExpiredWebhookEvent
@@ -64,6 +66,8 @@ module Dodopayments
64
66
  | Dodopayments::DisputeLostWebhookEvent
65
67
  | Dodopayments::DisputeOpenedWebhookEvent
66
68
  | Dodopayments::DisputeWonWebhookEvent
69
+ | Dodopayments::DunningRecoveredWebhookEvent
70
+ | Dodopayments::DunningStartedWebhookEvent
67
71
  | Dodopayments::LicenseKeyCreatedWebhookEvent
68
72
  | Dodopayments::PaymentCancelledWebhookEvent
69
73
  | Dodopayments::PaymentFailedWebhookEvent
@@ -84,7 +88,9 @@ module Dodopayments
84
88
  String payload,
85
89
  headers: ::Hash[String, String],
86
90
  ?key: String?
87
- ) -> (Dodopayments::CreditAddedWebhookEvent
91
+ ) -> (Dodopayments::AbandonedCheckoutDetectedWebhookEvent
92
+ | Dodopayments::AbandonedCheckoutRecoveredWebhookEvent
93
+ | Dodopayments::CreditAddedWebhookEvent
88
94
  | Dodopayments::CreditBalanceLowWebhookEvent
89
95
  | Dodopayments::CreditDeductedWebhookEvent
90
96
  | Dodopayments::CreditExpiredWebhookEvent
@@ -99,6 +105,8 @@ module Dodopayments
99
105
  | Dodopayments::DisputeLostWebhookEvent
100
106
  | Dodopayments::DisputeOpenedWebhookEvent
101
107
  | Dodopayments::DisputeWonWebhookEvent
108
+ | Dodopayments::DunningRecoveredWebhookEvent
109
+ | Dodopayments::DunningStartedWebhookEvent
102
110
  | Dodopayments::LicenseKeyCreatedWebhookEvent
103
111
  | Dodopayments::PaymentCancelledWebhookEvent
104
112
  | Dodopayments::PaymentFailedWebhookEvent