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.
Files changed (219) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +44 -0
  3. data/README.md +5 -5
  4. data/lib/dodopayments/client.rb +12 -9
  5. data/lib/dodopayments/errors.rb +9 -9
  6. data/lib/dodopayments/file_part.rb +5 -5
  7. data/lib/dodopayments/internal/transport/base_client.rb +1 -1
  8. data/lib/dodopayments/internal/type/boolean.rb +10 -11
  9. data/lib/dodopayments/internal/type/converter.rb +3 -0
  10. data/lib/dodopayments/internal/type/enum.rb +10 -11
  11. data/lib/dodopayments/internal/type/file_input.rb +22 -11
  12. data/lib/dodopayments/internal/type/unknown.rb +10 -11
  13. data/lib/dodopayments/internal/util.rb +3 -3
  14. data/lib/dodopayments/models/addon_cart_response_item.rb +23 -0
  15. data/lib/dodopayments/models/addon_create_params.rb +58 -0
  16. data/lib/dodopayments/models/addon_list_params.rb +30 -0
  17. data/lib/dodopayments/models/addon_response.rb +93 -0
  18. data/lib/dodopayments/models/addon_retrieve_params.rb +14 -0
  19. data/lib/dodopayments/models/addon_update_images_params.rb +14 -0
  20. data/lib/dodopayments/models/addon_update_images_response.rb +22 -0
  21. data/lib/dodopayments/models/addon_update_params.rb +66 -0
  22. data/lib/dodopayments/models/currency.rb +158 -0
  23. data/lib/dodopayments/models/misc_list_supported_countries_response.rb +1 -0
  24. data/lib/dodopayments/models/payment.rb +14 -315
  25. data/lib/dodopayments/models/payment_create_params.rb +3 -158
  26. data/lib/dodopayments/models/payment_list_response.rb +3 -157
  27. data/lib/dodopayments/models/payout_list_response.rb +3 -157
  28. data/lib/dodopayments/models/price.rb +6 -314
  29. data/lib/dodopayments/models/product.rb +3 -19
  30. data/lib/dodopayments/models/product_create_params.rb +3 -17
  31. data/lib/dodopayments/models/product_list_response.rb +6 -176
  32. data/lib/dodopayments/models/product_update_params.rb +3 -17
  33. data/lib/dodopayments/models/refund.rb +3 -157
  34. data/lib/dodopayments/models/subscription.rb +21 -158
  35. data/lib/dodopayments/models/subscription_create_params.rb +30 -159
  36. data/lib/dodopayments/models/subscription_create_response.rb +10 -1
  37. data/lib/dodopayments/models/subscription_list_response.rb +179 -0
  38. data/lib/dodopayments/models/subscription_update_params.rb +19 -1
  39. data/lib/dodopayments/models/tax_category.rb +19 -0
  40. data/lib/dodopayments/request_options.rb +4 -5
  41. data/lib/dodopayments/resources/addons.rb +141 -0
  42. data/lib/dodopayments/resources/payments.rb +1 -1
  43. data/lib/dodopayments/resources/products.rb +2 -2
  44. data/lib/dodopayments/resources/subscriptions.rb +9 -5
  45. data/lib/dodopayments/version.rb +1 -1
  46. data/lib/dodopayments.rb +12 -0
  47. data/rbi/{lib/dodopayments → dodopayments}/client.rbi +7 -5
  48. data/rbi/{lib/dodopayments → dodopayments}/errors.rbi +1 -1
  49. data/rbi/{lib/dodopayments → dodopayments}/internal/transport/base_client.rbi +2 -2
  50. data/rbi/{lib/dodopayments → dodopayments}/internal/type/request_parameters.rbi +1 -1
  51. data/rbi/dodopayments/models/addon_cart_response_item.rbi +20 -0
  52. data/rbi/dodopayments/models/addon_create_params.rbi +69 -0
  53. data/rbi/dodopayments/models/addon_list_params.rbi +45 -0
  54. data/rbi/dodopayments/models/addon_response.rbi +103 -0
  55. data/rbi/dodopayments/models/addon_retrieve_params.rbi +19 -0
  56. data/rbi/dodopayments/models/addon_update_images_params.rbi +19 -0
  57. data/rbi/dodopayments/models/addon_update_images_response.rbi +19 -0
  58. data/rbi/dodopayments/models/addon_update_params.rbi +77 -0
  59. data/rbi/dodopayments/models/currency.rbi +161 -0
  60. data/rbi/dodopayments/models/payment.rbi +227 -0
  61. data/rbi/dodopayments/models/payment_create_params.rbi +189 -0
  62. data/rbi/dodopayments/models/payment_list_response.rbi +88 -0
  63. data/rbi/dodopayments/models/payout_list_response.rbi +155 -0
  64. data/rbi/dodopayments/models/price.rbi +218 -0
  65. data/rbi/{lib/dodopayments → dodopayments}/models/product.rbi +3 -20
  66. data/rbi/{lib/dodopayments → dodopayments}/models/product_create_params.rbi +3 -21
  67. data/rbi/dodopayments/models/product_list_response.rbi +153 -0
  68. data/rbi/{lib/dodopayments → dodopayments}/models/product_update_params.rbi +3 -21
  69. data/rbi/dodopayments/models/refund.rbi +83 -0
  70. data/rbi/dodopayments/models/subscription.rbi +198 -0
  71. data/rbi/dodopayments/models/subscription_create_params.rbi +282 -0
  72. data/rbi/{lib/dodopayments → dodopayments}/models/subscription_create_response.rbi +8 -0
  73. data/rbi/dodopayments/models/subscription_list_response.rbi +190 -0
  74. data/rbi/{lib/dodopayments → dodopayments}/models/subscription_update_params.rbi +37 -1
  75. data/rbi/dodopayments/models/tax_category.rbi +22 -0
  76. data/rbi/{lib/dodopayments → dodopayments}/request_options.rbi +2 -0
  77. data/rbi/dodopayments/resources/addons.rbi +97 -0
  78. data/rbi/{lib/dodopayments → dodopayments}/resources/customers/customer_portal.rbi +1 -1
  79. data/rbi/{lib/dodopayments → dodopayments}/resources/customers.rbi +4 -7
  80. data/rbi/{lib/dodopayments → dodopayments}/resources/discounts.rbi +5 -14
  81. data/rbi/{lib/dodopayments → dodopayments}/resources/disputes.rbi +2 -5
  82. data/rbi/{lib/dodopayments → dodopayments}/resources/invoices/payments.rbi +1 -7
  83. data/rbi/{lib/dodopayments → dodopayments}/resources/license_key_instances.rbi +3 -10
  84. data/rbi/{lib/dodopayments → dodopayments}/resources/license_keys.rbi +3 -9
  85. data/rbi/{lib/dodopayments → dodopayments}/resources/licenses.rbi +3 -7
  86. data/rbi/{lib/dodopayments → dodopayments}/resources/misc.rbi +1 -8
  87. data/rbi/{lib/dodopayments → dodopayments}/resources/payments.rbi +4 -7
  88. data/rbi/{lib/dodopayments → dodopayments}/resources/payouts.rbi +1 -1
  89. data/rbi/{lib/dodopayments → dodopayments}/resources/products/images.rbi +1 -5
  90. data/rbi/{lib/dodopayments → dodopayments}/resources/products.rbi +8 -26
  91. data/rbi/{lib/dodopayments → dodopayments}/resources/refunds.rbi +3 -11
  92. data/rbi/{lib/dodopayments → dodopayments}/resources/subscriptions.rbi +19 -15
  93. data/rbi/{lib/dodopayments → dodopayments}/resources/webhook_events.rbi +2 -5
  94. data/sig/dodopayments/client.rbs +4 -2
  95. data/sig/dodopayments/models/addon_cart_response_item.rbs +15 -0
  96. data/sig/dodopayments/models/addon_create_params.rbs +39 -0
  97. data/sig/dodopayments/models/addon_list_params.rbs +24 -0
  98. data/sig/dodopayments/models/addon_response.rbs +54 -0
  99. data/sig/dodopayments/models/addon_retrieve_params.rbs +15 -0
  100. data/sig/dodopayments/models/addon_update_images_params.rbs +15 -0
  101. data/sig/dodopayments/models/addon_update_images_response.rbs +15 -0
  102. data/sig/dodopayments/models/addon_update_params.rbs +43 -0
  103. data/sig/dodopayments/models/currency.rbs +302 -0
  104. data/sig/dodopayments/models/misc_list_supported_countries_response.rbs +1 -1
  105. data/sig/dodopayments/models/payment.rbs +10 -604
  106. data/sig/dodopayments/models/payment_create_params.rbs +3 -302
  107. data/sig/dodopayments/models/payment_list_response.rbs +3 -302
  108. data/sig/dodopayments/models/payout_list_response.rbs +3 -302
  109. data/sig/dodopayments/models/price.rbs +6 -604
  110. data/sig/dodopayments/models/product.rbs +3 -16
  111. data/sig/dodopayments/models/product_create_params.rbs +3 -16
  112. data/sig/dodopayments/models/product_list_response.rbs +6 -318
  113. data/sig/dodopayments/models/product_update_params.rbs +3 -16
  114. data/sig/dodopayments/models/refund.rbs +3 -302
  115. data/sig/dodopayments/models/subscription.rbs +11 -302
  116. data/sig/dodopayments/models/subscription_create_params.rbs +19 -302
  117. data/sig/dodopayments/models/subscription_create_response.rbs +4 -0
  118. data/sig/dodopayments/models/subscription_list_response.rbs +98 -0
  119. data/sig/dodopayments/models/subscription_update_params.rbs +14 -0
  120. data/sig/dodopayments/models/tax_category.rbs +16 -0
  121. data/sig/dodopayments/resources/addons.rbs +43 -0
  122. data/sig/dodopayments/resources/payments.rbs +1 -1
  123. data/sig/dodopayments/resources/products.rbs +2 -2
  124. data/sig/dodopayments/resources/subscriptions.rbs +4 -2
  125. metadata +160 -124
  126. data/rbi/lib/dodopayments/models/payment.rbi +0 -530
  127. data/rbi/lib/dodopayments/models/payment_create_params.rbi +0 -345
  128. data/rbi/lib/dodopayments/models/payment_list_response.rbi +0 -244
  129. data/rbi/lib/dodopayments/models/payout_list_response.rbi +0 -311
  130. data/rbi/lib/dodopayments/models/price.rbi +0 -530
  131. data/rbi/lib/dodopayments/models/product_list_response.rbi +0 -327
  132. data/rbi/lib/dodopayments/models/refund.rbi +0 -239
  133. data/rbi/lib/dodopayments/models/subscription.rbi +0 -338
  134. data/rbi/lib/dodopayments/models/subscription_create_params.rbi +0 -415
  135. /data/rbi/{lib/dodopayments → dodopayments}/file_part.rbi +0 -0
  136. /data/rbi/{lib/dodopayments → dodopayments}/internal/default_page_number_pagination.rbi +0 -0
  137. /data/rbi/{lib/dodopayments → dodopayments}/internal/transport/pooled_net_requester.rbi +0 -0
  138. /data/rbi/{lib/dodopayments → dodopayments}/internal/type/array_of.rbi +0 -0
  139. /data/rbi/{lib/dodopayments → dodopayments}/internal/type/base_model.rbi +0 -0
  140. /data/rbi/{lib/dodopayments → dodopayments}/internal/type/base_page.rbi +0 -0
  141. /data/rbi/{lib/dodopayments → dodopayments}/internal/type/boolean.rbi +0 -0
  142. /data/rbi/{lib/dodopayments → dodopayments}/internal/type/converter.rbi +0 -0
  143. /data/rbi/{lib/dodopayments → dodopayments}/internal/type/enum.rbi +0 -0
  144. /data/rbi/{lib/dodopayments → dodopayments}/internal/type/file_input.rbi +0 -0
  145. /data/rbi/{lib/dodopayments → dodopayments}/internal/type/hash_of.rbi +0 -0
  146. /data/rbi/{lib/dodopayments → dodopayments}/internal/type/union.rbi +0 -0
  147. /data/rbi/{lib/dodopayments → dodopayments}/internal/type/unknown.rbi +0 -0
  148. /data/rbi/{lib/dodopayments → dodopayments}/internal/util.rbi +0 -0
  149. /data/rbi/{lib/dodopayments → dodopayments}/internal.rbi +0 -0
  150. /data/rbi/{lib/dodopayments → dodopayments}/models/attach_existing_customer.rbi +0 -0
  151. /data/rbi/{lib/dodopayments → dodopayments}/models/billing_address.rbi +0 -0
  152. /data/rbi/{lib/dodopayments → dodopayments}/models/country_code.rbi +0 -0
  153. /data/rbi/{lib/dodopayments → dodopayments}/models/create_new_customer.rbi +0 -0
  154. /data/rbi/{lib/dodopayments → dodopayments}/models/customer.rbi +0 -0
  155. /data/rbi/{lib/dodopayments → dodopayments}/models/customer_create_params.rbi +0 -0
  156. /data/rbi/{lib/dodopayments → dodopayments}/models/customer_limited_details.rbi +0 -0
  157. /data/rbi/{lib/dodopayments → dodopayments}/models/customer_list_params.rbi +0 -0
  158. /data/rbi/{lib/dodopayments → dodopayments}/models/customer_portal_session.rbi +0 -0
  159. /data/rbi/{lib/dodopayments → dodopayments}/models/customer_request.rbi +0 -0
  160. /data/rbi/{lib/dodopayments → dodopayments}/models/customer_retrieve_params.rbi +0 -0
  161. /data/rbi/{lib/dodopayments → dodopayments}/models/customer_update_params.rbi +0 -0
  162. /data/rbi/{lib/dodopayments → dodopayments}/models/customers/customer_portal_create_params.rbi +0 -0
  163. /data/rbi/{lib/dodopayments → dodopayments}/models/discount.rbi +0 -0
  164. /data/rbi/{lib/dodopayments → dodopayments}/models/discount_create_params.rbi +0 -0
  165. /data/rbi/{lib/dodopayments → dodopayments}/models/discount_delete_params.rbi +0 -0
  166. /data/rbi/{lib/dodopayments → dodopayments}/models/discount_list_params.rbi +0 -0
  167. /data/rbi/{lib/dodopayments → dodopayments}/models/discount_retrieve_params.rbi +0 -0
  168. /data/rbi/{lib/dodopayments → dodopayments}/models/discount_type.rbi +0 -0
  169. /data/rbi/{lib/dodopayments → dodopayments}/models/discount_update_params.rbi +0 -0
  170. /data/rbi/{lib/dodopayments → dodopayments}/models/dispute.rbi +0 -0
  171. /data/rbi/{lib/dodopayments → dodopayments}/models/dispute_list_params.rbi +0 -0
  172. /data/rbi/{lib/dodopayments → dodopayments}/models/dispute_retrieve_params.rbi +0 -0
  173. /data/rbi/{lib/dodopayments → dodopayments}/models/dispute_stage.rbi +0 -0
  174. /data/rbi/{lib/dodopayments → dodopayments}/models/dispute_status.rbi +0 -0
  175. /data/rbi/{lib/dodopayments → dodopayments}/models/intent_status.rbi +0 -0
  176. /data/rbi/{lib/dodopayments → dodopayments}/models/invoices/payment_retrieve_params.rbi +0 -0
  177. /data/rbi/{lib/dodopayments → dodopayments}/models/license_activate_params.rbi +0 -0
  178. /data/rbi/{lib/dodopayments → dodopayments}/models/license_deactivate_params.rbi +0 -0
  179. /data/rbi/{lib/dodopayments → dodopayments}/models/license_key.rbi +0 -0
  180. /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_duration.rbi +0 -0
  181. /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_instance.rbi +0 -0
  182. /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_instance_list_params.rbi +0 -0
  183. /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_instance_retrieve_params.rbi +0 -0
  184. /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_instance_update_params.rbi +0 -0
  185. /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_list_params.rbi +0 -0
  186. /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_retrieve_params.rbi +0 -0
  187. /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_status.rbi +0 -0
  188. /data/rbi/{lib/dodopayments → dodopayments}/models/license_key_update_params.rbi +0 -0
  189. /data/rbi/{lib/dodopayments → dodopayments}/models/license_validate_params.rbi +0 -0
  190. /data/rbi/{lib/dodopayments → dodopayments}/models/license_validate_response.rbi +0 -0
  191. /data/rbi/{lib/dodopayments → dodopayments}/models/misc_list_supported_countries_params.rbi +0 -0
  192. /data/rbi/{lib/dodopayments → dodopayments}/models/misc_list_supported_countries_response.rbi +0 -0
  193. /data/rbi/{lib/dodopayments → dodopayments}/models/one_time_product_cart_item.rbi +0 -0
  194. /data/rbi/{lib/dodopayments → dodopayments}/models/payment_create_response.rbi +0 -0
  195. /data/rbi/{lib/dodopayments → dodopayments}/models/payment_list_params.rbi +0 -0
  196. /data/rbi/{lib/dodopayments → dodopayments}/models/payment_retrieve_params.rbi +0 -0
  197. /data/rbi/{lib/dodopayments → dodopayments}/models/payout_list_params.rbi +0 -0
  198. /data/rbi/{lib/dodopayments → dodopayments}/models/product_delete_params.rbi +0 -0
  199. /data/rbi/{lib/dodopayments → dodopayments}/models/product_list_params.rbi +0 -0
  200. /data/rbi/{lib/dodopayments → dodopayments}/models/product_retrieve_params.rbi +0 -0
  201. /data/rbi/{lib/dodopayments → dodopayments}/models/product_unarchive_params.rbi +0 -0
  202. /data/rbi/{lib/dodopayments → dodopayments}/models/products/image_update_params.rbi +0 -0
  203. /data/rbi/{lib/dodopayments → dodopayments}/models/products/image_update_response.rbi +0 -0
  204. /data/rbi/{lib/dodopayments → dodopayments}/models/refund_create_params.rbi +0 -0
  205. /data/rbi/{lib/dodopayments → dodopayments}/models/refund_list_params.rbi +0 -0
  206. /data/rbi/{lib/dodopayments → dodopayments}/models/refund_retrieve_params.rbi +0 -0
  207. /data/rbi/{lib/dodopayments → dodopayments}/models/refund_status.rbi +0 -0
  208. /data/rbi/{lib/dodopayments → dodopayments}/models/subscription_change_plan_params.rbi +0 -0
  209. /data/rbi/{lib/dodopayments → dodopayments}/models/subscription_charge_params.rbi +0 -0
  210. /data/rbi/{lib/dodopayments → dodopayments}/models/subscription_charge_response.rbi +0 -0
  211. /data/rbi/{lib/dodopayments → dodopayments}/models/subscription_list_params.rbi +0 -0
  212. /data/rbi/{lib/dodopayments → dodopayments}/models/subscription_retrieve_params.rbi +0 -0
  213. /data/rbi/{lib/dodopayments → dodopayments}/models/subscription_status.rbi +0 -0
  214. /data/rbi/{lib/dodopayments → dodopayments}/models/time_interval.rbi +0 -0
  215. /data/rbi/{lib/dodopayments → dodopayments}/models/webhook_event.rbi +0 -0
  216. /data/rbi/{lib/dodopayments → dodopayments}/models/webhook_event_list_params.rbi +0 -0
  217. /data/rbi/{lib/dodopayments → dodopayments}/models/webhook_event_retrieve_params.rbi +0 -0
  218. /data/rbi/{lib/dodopayments → dodopayments}/resources/invoices.rbi +0 -0
  219. /data/rbi/{lib/dodopayments → dodopayments}/version.rbi +0 -0
@@ -0,0 +1,227 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class Payment < Dodopayments::Internal::Type::BaseModel
6
+ sig { returns(Dodopayments::Models::BillingAddress) }
7
+ attr_reader :billing
8
+
9
+ sig { params(billing: T.any(Dodopayments::Models::BillingAddress, Dodopayments::Internal::AnyHash)).void }
10
+ attr_writer :billing
11
+
12
+ # Identifier of the business associated with the payment
13
+ sig { returns(String) }
14
+ attr_accessor :business_id
15
+
16
+ # Timestamp when the payment 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
+ # List of disputes associated with this payment
32
+ sig { returns(T::Array[Dodopayments::Models::Dispute]) }
33
+ attr_accessor :disputes
34
+
35
+ sig { returns(T::Hash[Symbol, String]) }
36
+ attr_accessor :metadata
37
+
38
+ # Unique identifier for the payment
39
+ sig { returns(String) }
40
+ attr_accessor :payment_id
41
+
42
+ # List of refunds issued for this payment
43
+ sig { returns(T::Array[Dodopayments::Models::Refund]) }
44
+ attr_accessor :refunds
45
+
46
+ # The amount that will be credited to your Dodo balance after currency conversion
47
+ # and processing. Especially relevant for adaptive pricing where the customer's
48
+ # payment currency differs from your settlement currency.
49
+ sig { returns(Integer) }
50
+ attr_accessor :settlement_amount
51
+
52
+ sig { returns(Dodopayments::Models::Currency::TaggedSymbol) }
53
+ attr_accessor :settlement_currency
54
+
55
+ # Total amount charged to the customer including tax, in smallest currency unit
56
+ # (e.g. cents)
57
+ sig { returns(Integer) }
58
+ attr_accessor :total_amount
59
+
60
+ # The discount id if discount is applied
61
+ sig { returns(T.nilable(String)) }
62
+ attr_accessor :discount_id
63
+
64
+ # An error message if the payment failed
65
+ sig { returns(T.nilable(String)) }
66
+ attr_accessor :error_message
67
+
68
+ # Checkout URL
69
+ sig { returns(T.nilable(String)) }
70
+ attr_accessor :payment_link
71
+
72
+ # Payment method used by customer (e.g. "card", "bank_transfer")
73
+ sig { returns(T.nilable(String)) }
74
+ attr_accessor :payment_method
75
+
76
+ # Specific type of payment method (e.g. "visa", "mastercard")
77
+ sig { returns(T.nilable(String)) }
78
+ attr_accessor :payment_method_type
79
+
80
+ # List of products purchased in a one-time payment
81
+ sig { returns(T.nilable(T::Array[Dodopayments::Models::Payment::ProductCart])) }
82
+ attr_accessor :product_cart
83
+
84
+ # This represents the portion of settlement_amount that corresponds to taxes
85
+ # collected. Especially relevant for adaptive pricing where the tax component must
86
+ # be tracked separately in your Dodo balance.
87
+ sig { returns(T.nilable(Integer)) }
88
+ attr_accessor :settlement_tax
89
+
90
+ sig { returns(T.nilable(Dodopayments::Models::IntentStatus::TaggedSymbol)) }
91
+ attr_accessor :status
92
+
93
+ # Identifier of the subscription if payment is part of a subscription
94
+ sig { returns(T.nilable(String)) }
95
+ attr_accessor :subscription_id
96
+
97
+ # Amount of tax collected in smallest currency unit (e.g. cents)
98
+ sig { returns(T.nilable(Integer)) }
99
+ attr_accessor :tax
100
+
101
+ # Timestamp when the payment was last updated
102
+ sig { returns(T.nilable(Time)) }
103
+ attr_accessor :updated_at
104
+
105
+ sig do
106
+ params(
107
+ billing: T.any(Dodopayments::Models::BillingAddress, Dodopayments::Internal::AnyHash),
108
+ business_id: String,
109
+ created_at: Time,
110
+ currency: Dodopayments::Models::Currency::OrSymbol,
111
+ customer: T.any(Dodopayments::Models::CustomerLimitedDetails, Dodopayments::Internal::AnyHash),
112
+ disputes: T::Array[T.any(Dodopayments::Models::Dispute, Dodopayments::Internal::AnyHash)],
113
+ metadata: T::Hash[Symbol, String],
114
+ payment_id: String,
115
+ refunds: T::Array[T.any(Dodopayments::Models::Refund, Dodopayments::Internal::AnyHash)],
116
+ settlement_amount: Integer,
117
+ settlement_currency: Dodopayments::Models::Currency::OrSymbol,
118
+ total_amount: Integer,
119
+ discount_id: T.nilable(String),
120
+ error_message: T.nilable(String),
121
+ payment_link: T.nilable(String),
122
+ payment_method: T.nilable(String),
123
+ payment_method_type: T.nilable(String),
124
+ product_cart: T.nilable(T::Array[T.any(Dodopayments::Models::Payment::ProductCart, Dodopayments::Internal::AnyHash)]),
125
+ settlement_tax: T.nilable(Integer),
126
+ status: T.nilable(Dodopayments::Models::IntentStatus::OrSymbol),
127
+ subscription_id: T.nilable(String),
128
+ tax: T.nilable(Integer),
129
+ updated_at: T.nilable(Time)
130
+ )
131
+ .returns(T.attached_class)
132
+ end
133
+ def self.new(
134
+ billing:,
135
+ # Identifier of the business associated with the payment
136
+ business_id:,
137
+ # Timestamp when the payment was created
138
+ created_at:,
139
+ currency:,
140
+ customer:,
141
+ # List of disputes associated with this payment
142
+ disputes:,
143
+ metadata:,
144
+ # Unique identifier for the payment
145
+ payment_id:,
146
+ # List of refunds issued for this payment
147
+ refunds:,
148
+ # The amount that will be credited to your Dodo balance after currency conversion
149
+ # and processing. Especially relevant for adaptive pricing where the customer's
150
+ # payment currency differs from your settlement currency.
151
+ settlement_amount:,
152
+ settlement_currency:,
153
+ # Total amount charged to the customer including tax, in smallest currency unit
154
+ # (e.g. cents)
155
+ total_amount:,
156
+ # The discount id if discount is applied
157
+ discount_id: nil,
158
+ # An error message if the payment failed
159
+ error_message: nil,
160
+ # Checkout URL
161
+ payment_link: nil,
162
+ # Payment method used by customer (e.g. "card", "bank_transfer")
163
+ payment_method: nil,
164
+ # Specific type of payment method (e.g. "visa", "mastercard")
165
+ payment_method_type: nil,
166
+ # List of products purchased in a one-time payment
167
+ product_cart: nil,
168
+ # This represents the portion of settlement_amount that corresponds to taxes
169
+ # collected. Especially relevant for adaptive pricing where the tax component must
170
+ # be tracked separately in your Dodo balance.
171
+ settlement_tax: nil,
172
+ status: nil,
173
+ # Identifier of the subscription if payment is part of a subscription
174
+ subscription_id: nil,
175
+ # Amount of tax collected in smallest currency unit (e.g. cents)
176
+ tax: nil,
177
+ # Timestamp when the payment was last updated
178
+ updated_at: nil
179
+ ); end
180
+ sig do
181
+ override
182
+ .returns(
183
+ {
184
+ billing: Dodopayments::Models::BillingAddress,
185
+ business_id: String,
186
+ created_at: Time,
187
+ currency: Dodopayments::Models::Currency::TaggedSymbol,
188
+ customer: Dodopayments::Models::CustomerLimitedDetails,
189
+ disputes: T::Array[Dodopayments::Models::Dispute],
190
+ metadata: T::Hash[Symbol, String],
191
+ payment_id: String,
192
+ refunds: T::Array[Dodopayments::Models::Refund],
193
+ settlement_amount: Integer,
194
+ settlement_currency: Dodopayments::Models::Currency::TaggedSymbol,
195
+ total_amount: Integer,
196
+ discount_id: T.nilable(String),
197
+ error_message: T.nilable(String),
198
+ payment_link: T.nilable(String),
199
+ payment_method: T.nilable(String),
200
+ payment_method_type: T.nilable(String),
201
+ product_cart: T.nilable(T::Array[Dodopayments::Models::Payment::ProductCart]),
202
+ settlement_tax: T.nilable(Integer),
203
+ status: T.nilable(Dodopayments::Models::IntentStatus::TaggedSymbol),
204
+ subscription_id: T.nilable(String),
205
+ tax: T.nilable(Integer),
206
+ updated_at: T.nilable(Time)
207
+ }
208
+ )
209
+ end
210
+ def to_hash; end
211
+
212
+ class ProductCart < Dodopayments::Internal::Type::BaseModel
213
+ sig { returns(String) }
214
+ attr_accessor :product_id
215
+
216
+ sig { returns(Integer) }
217
+ attr_accessor :quantity
218
+
219
+ sig { params(product_id: String, quantity: Integer).returns(T.attached_class) }
220
+ def self.new(product_id:, quantity:); end
221
+
222
+ sig { override.returns({product_id: String, quantity: Integer}) }
223
+ def to_hash; end
224
+ end
225
+ end
226
+ end
227
+ end
@@ -0,0 +1,189 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class PaymentCreateParams < 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
+ # List of products in the cart. Must contain at least 1 and at most 100 items.
19
+ sig { returns(T::Array[Dodopayments::Models::OneTimeProductCartItem]) }
20
+ attr_accessor :product_cart
21
+
22
+ # List of payment methods allowed during checkout.
23
+ #
24
+ # Customers will **never** see payment methods that are **not** in this list.
25
+ # However, adding a method here **does not guarantee** customers will see it.
26
+ # Availability still depends on other factors (e.g., customer location, merchant
27
+ # settings).
28
+ sig do
29
+ returns(
30
+ T.nilable(T::Array[Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::OrSymbol])
31
+ )
32
+ end
33
+ attr_accessor :allowed_payment_method_types
34
+
35
+ sig { returns(T.nilable(Dodopayments::Models::Currency::OrSymbol)) }
36
+ attr_accessor :billing_currency
37
+
38
+ # Discount Code to apply to the transaction
39
+ sig { returns(T.nilable(String)) }
40
+ attr_accessor :discount_code
41
+
42
+ sig { returns(T.nilable(T::Hash[Symbol, String])) }
43
+ attr_reader :metadata
44
+
45
+ sig { params(metadata: T::Hash[Symbol, String]).void }
46
+ attr_writer :metadata
47
+
48
+ # Whether to generate a payment link. Defaults to false if not specified.
49
+ sig { returns(T.nilable(T::Boolean)) }
50
+ attr_accessor :payment_link
51
+
52
+ # Optional URL to redirect the customer after payment. Must be a valid URL if
53
+ # provided.
54
+ sig { returns(T.nilable(String)) }
55
+ attr_accessor :return_url
56
+
57
+ # Display saved payment methods of a returning customer False by default
58
+ sig { returns(T.nilable(T::Boolean)) }
59
+ attr_reader :show_saved_payment_methods
60
+
61
+ sig { params(show_saved_payment_methods: T::Boolean).void }
62
+ attr_writer :show_saved_payment_methods
63
+
64
+ # Tax ID in case the payment is B2B. If tax id validation fails the payment
65
+ # creation will fail
66
+ sig { returns(T.nilable(String)) }
67
+ attr_accessor :tax_id
68
+
69
+ sig do
70
+ params(
71
+ billing: T.any(Dodopayments::Models::BillingAddress, Dodopayments::Internal::AnyHash),
72
+ customer: T.any(
73
+ Dodopayments::Models::AttachExistingCustomer,
74
+ Dodopayments::Internal::AnyHash,
75
+ Dodopayments::Models::CreateNewCustomer
76
+ ),
77
+ product_cart: T::Array[T.any(Dodopayments::Models::OneTimeProductCartItem, Dodopayments::Internal::AnyHash)],
78
+ allowed_payment_method_types: T.nilable(T::Array[Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::OrSymbol]),
79
+ billing_currency: T.nilable(Dodopayments::Models::Currency::OrSymbol),
80
+ discount_code: T.nilable(String),
81
+ metadata: T::Hash[Symbol, String],
82
+ payment_link: T.nilable(T::Boolean),
83
+ return_url: T.nilable(String),
84
+ show_saved_payment_methods: T::Boolean,
85
+ tax_id: T.nilable(String),
86
+ request_options: T.any(Dodopayments::RequestOptions, Dodopayments::Internal::AnyHash)
87
+ )
88
+ .returns(T.attached_class)
89
+ end
90
+ def self.new(
91
+ billing:,
92
+ customer:,
93
+ # List of products in the cart. Must contain at least 1 and at most 100 items.
94
+ product_cart:,
95
+ # List of payment methods allowed during checkout.
96
+ #
97
+ # Customers will **never** see payment methods that are **not** in this list.
98
+ # However, adding a method here **does not guarantee** customers will see it.
99
+ # Availability still depends on other factors (e.g., customer location, merchant
100
+ # settings).
101
+ allowed_payment_method_types: nil,
102
+ billing_currency: nil,
103
+ # Discount Code to apply to the transaction
104
+ discount_code: nil,
105
+ metadata: nil,
106
+ # Whether to generate a payment link. Defaults to false if not specified.
107
+ payment_link: nil,
108
+ # Optional URL to redirect the customer after payment. Must be a valid URL if
109
+ # provided.
110
+ return_url: nil,
111
+ # Display saved payment methods of a returning customer False by default
112
+ show_saved_payment_methods: nil,
113
+ # Tax ID in case the payment is B2B. If tax id validation fails the payment
114
+ # creation will fail
115
+ tax_id: nil,
116
+ request_options: {}
117
+ ); end
118
+ sig do
119
+ override
120
+ .returns(
121
+ {
122
+ billing: Dodopayments::Models::BillingAddress,
123
+ customer: T.any(Dodopayments::Models::AttachExistingCustomer, Dodopayments::Models::CreateNewCustomer),
124
+ product_cart: T::Array[Dodopayments::Models::OneTimeProductCartItem],
125
+ allowed_payment_method_types: T.nilable(T::Array[Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::OrSymbol]),
126
+ billing_currency: T.nilable(Dodopayments::Models::Currency::OrSymbol),
127
+ discount_code: T.nilable(String),
128
+ metadata: T::Hash[Symbol, String],
129
+ payment_link: T.nilable(T::Boolean),
130
+ return_url: T.nilable(String),
131
+ show_saved_payment_methods: T::Boolean,
132
+ tax_id: T.nilable(String),
133
+ request_options: Dodopayments::RequestOptions
134
+ }
135
+ )
136
+ end
137
+ def to_hash; end
138
+
139
+ module AllowedPaymentMethodType
140
+ extend Dodopayments::Internal::Type::Enum
141
+
142
+ TaggedSymbol =
143
+ T.type_alias { T.all(Symbol, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType) }
144
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
145
+
146
+ CREDIT =
147
+ T.let(:credit, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
148
+ DEBIT = T.let(:debit, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
149
+ UPI_COLLECT =
150
+ T.let(:upi_collect, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
151
+ UPI_INTENT =
152
+ T.let(:upi_intent, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
153
+ APPLE_PAY =
154
+ T.let(:apple_pay, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
155
+ CASHAPP =
156
+ T.let(:cashapp, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
157
+ GOOGLE_PAY =
158
+ T.let(:google_pay, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
159
+ MULTIBANCO =
160
+ T.let(:multibanco, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
161
+ BANCONTACT_CARD =
162
+ T.let(:bancontact_card, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
163
+ EPS = T.let(:eps, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
164
+ IDEAL = T.let(:ideal, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
165
+ PRZELEWY24 =
166
+ T.let(:przelewy24, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
167
+ AFFIRM =
168
+ T.let(:affirm, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
169
+ KLARNA =
170
+ T.let(:klarna, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
171
+ SEPA = T.let(:sepa, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
172
+ ACH = T.let(:ach, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
173
+ AMAZON_PAY =
174
+ T.let(:amazon_pay, Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol)
175
+ AFTERPAY_CLEARPAY =
176
+ T.let(
177
+ :afterpay_clearpay,
178
+ Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol
179
+ )
180
+
181
+ sig do
182
+ override
183
+ .returns(T::Array[Dodopayments::Models::PaymentCreateParams::AllowedPaymentMethodType::TaggedSymbol])
184
+ end
185
+ def self.values; end
186
+ end
187
+ end
188
+ end
189
+ end
@@ -0,0 +1,88 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class PaymentListResponse < Dodopayments::Internal::Type::BaseModel
6
+ sig { returns(Time) }
7
+ attr_accessor :created_at
8
+
9
+ sig { returns(Dodopayments::Models::Currency::TaggedSymbol) }
10
+ attr_accessor :currency
11
+
12
+ sig { returns(Dodopayments::Models::CustomerLimitedDetails) }
13
+ attr_reader :customer
14
+
15
+ sig do
16
+ params(customer: T.any(Dodopayments::Models::CustomerLimitedDetails, Dodopayments::Internal::AnyHash)).void
17
+ end
18
+ attr_writer :customer
19
+
20
+ sig { returns(T::Hash[Symbol, String]) }
21
+ attr_accessor :metadata
22
+
23
+ sig { returns(String) }
24
+ attr_accessor :payment_id
25
+
26
+ sig { returns(Integer) }
27
+ attr_accessor :total_amount
28
+
29
+ sig { returns(T.nilable(String)) }
30
+ attr_accessor :payment_method
31
+
32
+ sig { returns(T.nilable(String)) }
33
+ attr_accessor :payment_method_type
34
+
35
+ sig { returns(T.nilable(Dodopayments::Models::IntentStatus::TaggedSymbol)) }
36
+ attr_accessor :status
37
+
38
+ sig { returns(T.nilable(String)) }
39
+ attr_accessor :subscription_id
40
+
41
+ sig do
42
+ params(
43
+ created_at: Time,
44
+ currency: Dodopayments::Models::Currency::OrSymbol,
45
+ customer: T.any(Dodopayments::Models::CustomerLimitedDetails, Dodopayments::Internal::AnyHash),
46
+ metadata: T::Hash[Symbol, String],
47
+ payment_id: String,
48
+ total_amount: Integer,
49
+ payment_method: T.nilable(String),
50
+ payment_method_type: T.nilable(String),
51
+ status: T.nilable(Dodopayments::Models::IntentStatus::OrSymbol),
52
+ subscription_id: T.nilable(String)
53
+ )
54
+ .returns(T.attached_class)
55
+ end
56
+ def self.new(
57
+ created_at:,
58
+ currency:,
59
+ customer:,
60
+ metadata:,
61
+ payment_id:,
62
+ total_amount:,
63
+ payment_method: nil,
64
+ payment_method_type: nil,
65
+ status: nil,
66
+ subscription_id: nil
67
+ ); end
68
+ sig do
69
+ override
70
+ .returns(
71
+ {
72
+ created_at: Time,
73
+ currency: Dodopayments::Models::Currency::TaggedSymbol,
74
+ customer: Dodopayments::Models::CustomerLimitedDetails,
75
+ metadata: T::Hash[Symbol, String],
76
+ payment_id: String,
77
+ total_amount: Integer,
78
+ payment_method: T.nilable(String),
79
+ payment_method_type: T.nilable(String),
80
+ status: T.nilable(Dodopayments::Models::IntentStatus::TaggedSymbol),
81
+ subscription_id: T.nilable(String)
82
+ }
83
+ )
84
+ end
85
+ def to_hash; end
86
+ end
87
+ end
88
+ end
@@ -0,0 +1,155 @@
1
+ # typed: strong
2
+
3
+ module Dodopayments
4
+ module Models
5
+ class PayoutListResponse < Dodopayments::Internal::Type::BaseModel
6
+ # The total amount of the payout.
7
+ sig { returns(Integer) }
8
+ attr_accessor :amount
9
+
10
+ # The unique identifier of the business associated with the payout.
11
+ sig { returns(String) }
12
+ attr_accessor :business_id
13
+
14
+ # The total value of chargebacks associated with the payout.
15
+ sig { returns(Integer) }
16
+ attr_accessor :chargebacks
17
+
18
+ # The timestamp when the payout was created, in UTC.
19
+ sig { returns(Time) }
20
+ attr_accessor :created_at
21
+
22
+ sig { returns(Dodopayments::Models::Currency::TaggedSymbol) }
23
+ attr_accessor :currency
24
+
25
+ # The fee charged for processing the payout.
26
+ sig { returns(Integer) }
27
+ attr_accessor :fee
28
+
29
+ # The payment method used for the payout (e.g., bank transfer, card, etc.).
30
+ sig { returns(String) }
31
+ attr_accessor :payment_method
32
+
33
+ # The unique identifier of the payout.
34
+ sig { returns(String) }
35
+ attr_accessor :payout_id
36
+
37
+ # The total value of refunds associated with the payout.
38
+ sig { returns(Integer) }
39
+ attr_accessor :refunds
40
+
41
+ sig { returns(Dodopayments::Models::PayoutListResponse::Status::TaggedSymbol) }
42
+ attr_accessor :status
43
+
44
+ # The tax applied to the payout.
45
+ sig { returns(Integer) }
46
+ attr_accessor :tax
47
+
48
+ # The timestamp when the payout was last updated, in UTC.
49
+ sig { returns(Time) }
50
+ attr_accessor :updated_at
51
+
52
+ # The name of the payout recipient or purpose.
53
+ sig { returns(T.nilable(String)) }
54
+ attr_accessor :name
55
+
56
+ # The URL of the document associated with the payout.
57
+ sig { returns(T.nilable(String)) }
58
+ attr_accessor :payout_document_url
59
+
60
+ # Any additional remarks or notes associated with the payout.
61
+ sig { returns(T.nilable(String)) }
62
+ attr_accessor :remarks
63
+
64
+ sig do
65
+ params(
66
+ amount: Integer,
67
+ business_id: String,
68
+ chargebacks: Integer,
69
+ created_at: Time,
70
+ currency: Dodopayments::Models::Currency::OrSymbol,
71
+ fee: Integer,
72
+ payment_method: String,
73
+ payout_id: String,
74
+ refunds: Integer,
75
+ status: Dodopayments::Models::PayoutListResponse::Status::OrSymbol,
76
+ tax: Integer,
77
+ updated_at: Time,
78
+ name: T.nilable(String),
79
+ payout_document_url: T.nilable(String),
80
+ remarks: T.nilable(String)
81
+ )
82
+ .returns(T.attached_class)
83
+ end
84
+ def self.new(
85
+ # The total amount of the payout.
86
+ amount:,
87
+ # The unique identifier of the business associated with the payout.
88
+ business_id:,
89
+ # The total value of chargebacks associated with the payout.
90
+ chargebacks:,
91
+ # The timestamp when the payout was created, in UTC.
92
+ created_at:,
93
+ currency:,
94
+ # The fee charged for processing the payout.
95
+ fee:,
96
+ # The payment method used for the payout (e.g., bank transfer, card, etc.).
97
+ payment_method:,
98
+ # The unique identifier of the payout.
99
+ payout_id:,
100
+ # The total value of refunds associated with the payout.
101
+ refunds:,
102
+ status:,
103
+ # The tax applied to the payout.
104
+ tax:,
105
+ # The timestamp when the payout was last updated, in UTC.
106
+ updated_at:,
107
+ # The name of the payout recipient or purpose.
108
+ name: nil,
109
+ # The URL of the document associated with the payout.
110
+ payout_document_url: nil,
111
+ # Any additional remarks or notes associated with the payout.
112
+ remarks: nil
113
+ ); end
114
+ sig do
115
+ override
116
+ .returns(
117
+ {
118
+ amount: Integer,
119
+ business_id: String,
120
+ chargebacks: Integer,
121
+ created_at: Time,
122
+ currency: Dodopayments::Models::Currency::TaggedSymbol,
123
+ fee: Integer,
124
+ payment_method: String,
125
+ payout_id: String,
126
+ refunds: Integer,
127
+ status: Dodopayments::Models::PayoutListResponse::Status::TaggedSymbol,
128
+ tax: Integer,
129
+ updated_at: Time,
130
+ name: T.nilable(String),
131
+ payout_document_url: T.nilable(String),
132
+ remarks: T.nilable(String)
133
+ }
134
+ )
135
+ end
136
+ def to_hash; end
137
+
138
+ module Status
139
+ extend Dodopayments::Internal::Type::Enum
140
+
141
+ TaggedSymbol = T.type_alias { T.all(Symbol, Dodopayments::Models::PayoutListResponse::Status) }
142
+ OrSymbol = T.type_alias { T.any(Symbol, String) }
143
+
144
+ NOT_INITIATED = T.let(:not_initiated, Dodopayments::Models::PayoutListResponse::Status::TaggedSymbol)
145
+ IN_PROGRESS = T.let(:in_progress, Dodopayments::Models::PayoutListResponse::Status::TaggedSymbol)
146
+ ON_HOLD = T.let(:on_hold, Dodopayments::Models::PayoutListResponse::Status::TaggedSymbol)
147
+ FAILED = T.let(:failed, Dodopayments::Models::PayoutListResponse::Status::TaggedSymbol)
148
+ SUCCESS = T.let(:success, Dodopayments::Models::PayoutListResponse::Status::TaggedSymbol)
149
+
150
+ sig { override.returns(T::Array[Dodopayments::Models::PayoutListResponse::Status::TaggedSymbol]) }
151
+ def self.values; end
152
+ end
153
+ end
154
+ end
155
+ end