mollie-api-py 1.0.0__py3-none-any.whl

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 (337) hide show
  1. mollie/__init__.py +18 -0
  2. mollie/_hooks/__init__.py +5 -0
  3. mollie/_hooks/mollie_hooks.py +165 -0
  4. mollie/_hooks/registration.py +18 -0
  5. mollie/_hooks/sdkhooks.py +76 -0
  6. mollie/_hooks/types.py +113 -0
  7. mollie/_version.py +15 -0
  8. mollie/balance_transfers.py +651 -0
  9. mollie/balances.py +1105 -0
  10. mollie/basesdk.py +360 -0
  11. mollie/capabilities.py +209 -0
  12. mollie/captures.py +677 -0
  13. mollie/chargebacks_sdk.py +675 -0
  14. mollie/client_links.py +325 -0
  15. mollie/clients.py +409 -0
  16. mollie/customers.py +1563 -0
  17. mollie/delayed_routing.py +421 -0
  18. mollie/httpclient.py +125 -0
  19. mollie/invoices.py +429 -0
  20. mollie/mandates.py +895 -0
  21. mollie/methods.py +789 -0
  22. mollie/models/__init__.py +4002 -0
  23. mollie/models/address.py +29 -0
  24. mollie/models/amount.py +25 -0
  25. mollie/models/amount_nullable.py +24 -0
  26. mollie/models/apierror.py +40 -0
  27. mollie/models/balance_card_audience.py +10 -0
  28. mollie/models/balance_card_issuer.py +12 -0
  29. mollie/models/balance_card_region.py +12 -0
  30. mollie/models/balance_fee_type.py +43 -0
  31. mollie/models/balance_prepayment_part_type.py +13 -0
  32. mollie/models/balance_report_grouping.py +10 -0
  33. mollie/models/balance_transaction_type.py +47 -0
  34. mollie/models/balance_transfer_category.py +17 -0
  35. mollie/models/balance_transfer_category_response.py +18 -0
  36. mollie/models/balance_transfer_destination_type.py +14 -0
  37. mollie/models/balance_transfer_party_type.py +10 -0
  38. mollie/models/balance_transfer_party_type_response.py +11 -0
  39. mollie/models/balance_transfer_status.py +13 -0
  40. mollie/models/balance_transfer_status_reason_response.py +19 -0
  41. mollie/models/billingaddress.py +154 -0
  42. mollie/models/cancel_paymentop.py +93 -0
  43. mollie/models/cancel_refundop.py +86 -0
  44. mollie/models/cancel_subscriptionop.py +100 -0
  45. mollie/models/capability_requirement_status.py +15 -0
  46. mollie/models/capability_status.py +12 -0
  47. mollie/models/capability_status_reason.py +10 -0
  48. mollie/models/capture_mode.py +15 -0
  49. mollie/models/capture_mode_response.py +16 -0
  50. mollie/models/capture_response.py +265 -0
  51. mollie/models/client_link_request.py +210 -0
  52. mollie/models/client_link_response.py +56 -0
  53. mollie/models/clienterror.py +30 -0
  54. mollie/models/components_sub_totals.py +127 -0
  55. mollie/models/create_captureop.py +43 -0
  56. mollie/models/create_client_linkop.py +29 -0
  57. mollie/models/create_connect_balance_transferop.py +32 -0
  58. mollie/models/create_customer_paymentop.py +43 -0
  59. mollie/models/create_customerop.py +29 -0
  60. mollie/models/create_mandateop.py +43 -0
  61. mollie/models/create_payment_linkop.py +325 -0
  62. mollie/models/create_paymentop.py +73 -0
  63. mollie/models/create_profileop.py +29 -0
  64. mollie/models/create_refundop.py +43 -0
  65. mollie/models/create_sales_invoiceop.py +29 -0
  66. mollie/models/create_subscriptionop.py +43 -0
  67. mollie/models/create_webhook.py +123 -0
  68. mollie/models/create_webhookop.py +69 -0
  69. mollie/models/currencies.py +20 -0
  70. mollie/models/customer_response.py +169 -0
  71. mollie/models/delete_customerop.py +91 -0
  72. mollie/models/delete_payment_linkop.py +91 -0
  73. mollie/models/delete_profileop.py +29 -0
  74. mollie/models/delete_sales_invoiceop.py +44 -0
  75. mollie/models/delete_values_sales_invoice.py +54 -0
  76. mollie/models/delete_webhookop.py +56 -0
  77. mollie/models/entity_balance.py +325 -0
  78. mollie/models/entity_balance_report.py +541 -0
  79. mollie/models/entity_balance_transaction.py +1068 -0
  80. mollie/models/entity_balance_transfer.py +62 -0
  81. mollie/models/entity_balance_transfer_party.py +28 -0
  82. mollie/models/entity_balance_transfer_party_response.py +32 -0
  83. mollie/models/entity_balance_transfer_response.py +159 -0
  84. mollie/models/entity_capability.py +75 -0
  85. mollie/models/entity_capability_requirement.py +87 -0
  86. mollie/models/entity_capture.py +63 -0
  87. mollie/models/entity_chargeback.py +247 -0
  88. mollie/models/entity_customer.py +86 -0
  89. mollie/models/entity_event.py +46 -0
  90. mollie/models/entity_invoice.py +247 -0
  91. mollie/models/entity_method_get.py +329 -0
  92. mollie/models/entity_onboarding_status.py +95 -0
  93. mollie/models/entity_organization.py +178 -0
  94. mollie/models/entity_payment_route.py +111 -0
  95. mollie/models/entity_payment_route_response.py +140 -0
  96. mollie/models/entity_permission.py +61 -0
  97. mollie/models/entity_refund_response.py +361 -0
  98. mollie/models/entity_route.py +96 -0
  99. mollie/models/entity_settlement.py +467 -0
  100. mollie/models/entity_terminal.py +160 -0
  101. mollie/models/entity_webhook.py +122 -0
  102. mollie/models/entity_webhook_event.py +149 -0
  103. mollie/models/error_response.py +70 -0
  104. mollie/models/get_balance_reportop.py +126 -0
  105. mollie/models/get_balanceop.py +71 -0
  106. mollie/models/get_captureop.py +129 -0
  107. mollie/models/get_chargebackop.py +129 -0
  108. mollie/models/get_clientop.py +216 -0
  109. mollie/models/get_connect_balance_transferop.py +71 -0
  110. mollie/models/get_current_organizationop.py +22 -0
  111. mollie/models/get_current_profileop.py +22 -0
  112. mollie/models/get_customerop.py +286 -0
  113. mollie/models/get_invoiceop.py +29 -0
  114. mollie/models/get_mandateop.py +86 -0
  115. mollie/models/get_methodop.py +199 -0
  116. mollie/models/get_next_settlementop.py +22 -0
  117. mollie/models/get_onboarding_statusop.py +22 -0
  118. mollie/models/get_open_settlementop.py +22 -0
  119. mollie/models/get_organizationop.py +71 -0
  120. mollie/models/get_partner_statusop.py +231 -0
  121. mollie/models/get_payment_link_paymentsop.py +188 -0
  122. mollie/models/get_payment_linkop.py +77 -0
  123. mollie/models/get_paymentop.py +128 -0
  124. mollie/models/get_permissionop.py +73 -0
  125. mollie/models/get_primary_balanceop.py +22 -0
  126. mollie/models/get_profileop.py +71 -0
  127. mollie/models/get_refundop.py +129 -0
  128. mollie/models/get_sales_invoiceop.py +75 -0
  129. mollie/models/get_settlementop.py +29 -0
  130. mollie/models/get_subscriptionop.py +86 -0
  131. mollie/models/get_terminalop.py +77 -0
  132. mollie/models/get_webhook_eventop.py +71 -0
  133. mollie/models/get_webhookop.py +71 -0
  134. mollie/models/internal/__init__.py +54 -0
  135. mollie/models/internal/globals.py +59 -0
  136. mollie/models/line_categories.py +13 -0
  137. mollie/models/line_categories_response.py +14 -0
  138. mollie/models/list_all_chargebacksop.py +236 -0
  139. mollie/models/list_all_methodsop.py +249 -0
  140. mollie/models/list_all_refundsop.py +230 -0
  141. mollie/models/list_all_subscriptionsop.py +202 -0
  142. mollie/models/list_balance_transactionsop.py +174 -0
  143. mollie/models/list_balancesop.py +171 -0
  144. mollie/models/list_capabilitiesop.py +62 -0
  145. mollie/models/list_capture_response.py +264 -0
  146. mollie/models/list_capturesop.py +185 -0
  147. mollie/models/list_chargebacksop.py +185 -0
  148. mollie/models/list_clientsop.py +269 -0
  149. mollie/models/list_connect_balance_transfersop.py +177 -0
  150. mollie/models/list_customer_paymentsop.py +231 -0
  151. mollie/models/list_customer_response.py +164 -0
  152. mollie/models/list_customersop.py +172 -0
  153. mollie/models/list_entity_balance.py +322 -0
  154. mollie/models/list_entity_chargeback.py +244 -0
  155. mollie/models/list_entity_invoice.py +244 -0
  156. mollie/models/list_entity_method.py +315 -0
  157. mollie/models/list_entity_method_all.py +391 -0
  158. mollie/models/list_entity_permission.py +56 -0
  159. mollie/models/list_entity_refund.py +352 -0
  160. mollie/models/list_entity_settlement.py +457 -0
  161. mollie/models/list_entity_terminal.py +157 -0
  162. mollie/models/list_entity_webhook.py +117 -0
  163. mollie/models/list_invoicesop.py +175 -0
  164. mollie/models/list_links.py +68 -0
  165. mollie/models/list_mandate_response.py +261 -0
  166. mollie/models/list_mandatesop.py +186 -0
  167. mollie/models/list_methodsop.py +332 -0
  168. mollie/models/list_payment_linksop.py +159 -0
  169. mollie/models/list_payment_response.py +1953 -0
  170. mollie/models/list_paymentsop.py +217 -0
  171. mollie/models/list_permissionsop.py +85 -0
  172. mollie/models/list_profile_response.py +194 -0
  173. mollie/models/list_profilesop.py +118 -0
  174. mollie/models/list_refundsop.py +189 -0
  175. mollie/models/list_route_get_response.py +97 -0
  176. mollie/models/list_sales_invoice_response.py +505 -0
  177. mollie/models/list_sales_invoicesop.py +172 -0
  178. mollie/models/list_settlement_capturesop.py +187 -0
  179. mollie/models/list_settlement_chargebacksop.py +187 -0
  180. mollie/models/list_settlement_paymentsop.py +233 -0
  181. mollie/models/list_settlement_refundsop.py +191 -0
  182. mollie/models/list_settlementsop.py +178 -0
  183. mollie/models/list_subscription_paymentsop.py +242 -0
  184. mollie/models/list_subscription_response.py +344 -0
  185. mollie/models/list_subscriptionsop.py +189 -0
  186. mollie/models/list_terminalsop.py +172 -0
  187. mollie/models/list_webhooksop.py +189 -0
  188. mollie/models/locale.py +32 -0
  189. mollie/models/locale_response.py +33 -0
  190. mollie/models/mandate_details_card_label_response.py +22 -0
  191. mollie/models/mandate_method.py +15 -0
  192. mollie/models/mandate_method_response.py +16 -0
  193. mollie/models/mandate_request.py +160 -0
  194. mollie/models/mandate_response.py +264 -0
  195. mollie/models/metadata.py +19 -0
  196. mollie/models/method.py +50 -0
  197. mollie/models/method_include_wallets_parameter.py +8 -0
  198. mollie/models/method_resource_parameter.py +9 -0
  199. mollie/models/method_response.py +59 -0
  200. mollie/models/method_status.py +15 -0
  201. mollie/models/mode.py +12 -0
  202. mollie/models/no_response_error.py +17 -0
  203. mollie/models/onboarding_vat_regulation.py +16 -0
  204. mollie/models/organization_vat_regulation.py +17 -0
  205. mollie/models/payment_address.py +130 -0
  206. mollie/models/payment_create_routeop.py +43 -0
  207. mollie/models/payment_details_card_audition_response.py +12 -0
  208. mollie/models/payment_details_card_funding_response.py +14 -0
  209. mollie/models/payment_details_card_label_response.py +23 -0
  210. mollie/models/payment_details_card_security_response.py +12 -0
  211. mollie/models/payment_details_failure_reason_response.py +25 -0
  212. mollie/models/payment_details_fee_region_response.py +20 -0
  213. mollie/models/payment_details_receipt_card_read_method_response.py +17 -0
  214. mollie/models/payment_details_receipt_card_verification_method_response.py +21 -0
  215. mollie/models/payment_details_seller_protection_response.py +20 -0
  216. mollie/models/payment_details_wallet_response.py +11 -0
  217. mollie/models/payment_line_item.py +96 -0
  218. mollie/models/payment_line_item_response.py +104 -0
  219. mollie/models/payment_line_type.py +20 -0
  220. mollie/models/payment_line_type_response.py +21 -0
  221. mollie/models/payment_link_method.py +36 -0
  222. mollie/models/payment_link_method_response.py +37 -0
  223. mollie/models/payment_link_response.py +348 -0
  224. mollie/models/payment_link_sequence_type.py +9 -0
  225. mollie/models/payment_link_sequence_type_response.py +10 -0
  226. mollie/models/payment_list_routesop.py +140 -0
  227. mollie/models/payment_method.py +53 -0
  228. mollie/models/payment_request.py +919 -0
  229. mollie/models/payment_response.py +1953 -0
  230. mollie/models/profile_request.py +67 -0
  231. mollie/models/profile_response.py +197 -0
  232. mollie/models/profile_review_status_response.py +12 -0
  233. mollie/models/recurring_line_item.py +77 -0
  234. mollie/models/refund_external_reference_type.py +10 -0
  235. mollie/models/refund_external_reference_type_response.py +11 -0
  236. mollie/models/refund_request.py +200 -0
  237. mollie/models/release_authorizationop.py +108 -0
  238. mollie/models/request_apple_pay_payment_sessionop.py +76 -0
  239. mollie/models/responsevalidationerror.py +27 -0
  240. mollie/models/revoke_mandateop.py +100 -0
  241. mollie/models/route_create_response.py +97 -0
  242. mollie/models/route_destination_type.py +10 -0
  243. mollie/models/route_destination_type_response.py +11 -0
  244. mollie/models/sales_invoice_discount.py +21 -0
  245. mollie/models/sales_invoice_discount_response.py +25 -0
  246. mollie/models/sales_invoice_discount_type.py +11 -0
  247. mollie/models/sales_invoice_discount_type_response.py +12 -0
  248. mollie/models/sales_invoice_email_details.py +20 -0
  249. mollie/models/sales_invoice_line_item.py +67 -0
  250. mollie/models/sales_invoice_line_item_response.py +70 -0
  251. mollie/models/sales_invoice_payment_details.py +59 -0
  252. mollie/models/sales_invoice_payment_details_response.py +66 -0
  253. mollie/models/sales_invoice_payment_details_source.py +12 -0
  254. mollie/models/sales_invoice_payment_details_source_response.py +13 -0
  255. mollie/models/sales_invoice_payment_term.py +16 -0
  256. mollie/models/sales_invoice_payment_term_response.py +17 -0
  257. mollie/models/sales_invoice_recipient.py +176 -0
  258. mollie/models/sales_invoice_recipient_locale.py +18 -0
  259. mollie/models/sales_invoice_recipient_locale_response.py +19 -0
  260. mollie/models/sales_invoice_recipient_response.py +182 -0
  261. mollie/models/sales_invoice_recipient_type.py +13 -0
  262. mollie/models/sales_invoice_recipient_type_response.py +14 -0
  263. mollie/models/sales_invoice_request.py +256 -0
  264. mollie/models/sales_invoice_response.py +509 -0
  265. mollie/models/sales_invoice_status.py +25 -0
  266. mollie/models/sales_invoice_status_response.py +26 -0
  267. mollie/models/sales_invoice_vat_mode.py +13 -0
  268. mollie/models/sales_invoice_vat_mode_response.py +14 -0
  269. mollie/models/sales_invoice_vat_scheme.py +11 -0
  270. mollie/models/sales_invoice_vat_scheme_response.py +12 -0
  271. mollie/models/security.py +35 -0
  272. mollie/models/sequence_type.py +10 -0
  273. mollie/models/sequence_type_response.py +11 -0
  274. mollie/models/sorting.py +9 -0
  275. mollie/models/status_reason.py +168 -0
  276. mollie/models/sub_group.py +52 -0
  277. mollie/models/sub_totals.py +120 -0
  278. mollie/models/submit_onboarding_dataop.py +214 -0
  279. mollie/models/subscription_method.py +12 -0
  280. mollie/models/subscription_method_response.py +13 -0
  281. mollie/models/subscription_request.py +213 -0
  282. mollie/models/subscription_response.py +349 -0
  283. mollie/models/terminal_brand.py +12 -0
  284. mollie/models/terminal_model.py +16 -0
  285. mollie/models/test_webhookop.py +64 -0
  286. mollie/models/update_customerop.py +43 -0
  287. mollie/models/update_payment_linkop.py +172 -0
  288. mollie/models/update_paymentop.py +332 -0
  289. mollie/models/update_profileop.py +147 -0
  290. mollie/models/update_sales_invoiceop.py +44 -0
  291. mollie/models/update_subscriptionop.py +188 -0
  292. mollie/models/update_values_sales_invoice.py +176 -0
  293. mollie/models/update_webhookop.py +83 -0
  294. mollie/models/url.py +24 -0
  295. mollie/models/url_nullable.py +25 -0
  296. mollie/models/webhook_event_types.py +18 -0
  297. mollie/models/webhook_status.py +14 -0
  298. mollie/onboarding.py +403 -0
  299. mollie/organizations.py +579 -0
  300. mollie/payment_links.py +1323 -0
  301. mollie/payments_sdk.py +1385 -0
  302. mollie/permissions.py +397 -0
  303. mollie/profiles.py +1209 -0
  304. mollie/py.typed +1 -0
  305. mollie/refunds_sdk.py +1111 -0
  306. mollie/sales_invoices.py +1121 -0
  307. mollie/sdk.py +265 -0
  308. mollie/sdkconfiguration.py +50 -0
  309. mollie/settlements.py +1735 -0
  310. mollie/subscriptions.py +1617 -0
  311. mollie/terminals.py +427 -0
  312. mollie/types/__init__.py +21 -0
  313. mollie/types/basemodel.py +39 -0
  314. mollie/utils/__init__.py +200 -0
  315. mollie/utils/annotations.py +79 -0
  316. mollie/utils/datetimes.py +23 -0
  317. mollie/utils/enums.py +74 -0
  318. mollie/utils/eventstreaming.py +248 -0
  319. mollie/utils/forms.py +223 -0
  320. mollie/utils/headers.py +136 -0
  321. mollie/utils/logger.py +27 -0
  322. mollie/utils/metadata.py +118 -0
  323. mollie/utils/queryparams.py +205 -0
  324. mollie/utils/requestbodies.py +66 -0
  325. mollie/utils/retries.py +217 -0
  326. mollie/utils/security.py +195 -0
  327. mollie/utils/serializers.py +249 -0
  328. mollie/utils/unmarshal_json_response.py +24 -0
  329. mollie/utils/url.py +155 -0
  330. mollie/utils/values.py +137 -0
  331. mollie/wallets.py +263 -0
  332. mollie/webhook_events.py +211 -0
  333. mollie/webhooks.py +1305 -0
  334. mollie_api_py-1.0.0.dist-info/METADATA +834 -0
  335. mollie_api_py-1.0.0.dist-info/RECORD +337 -0
  336. mollie_api_py-1.0.0.dist-info/WHEEL +4 -0
  337. mollie_api_py-1.0.0.dist-info/licenses/LICENSE.md +24 -0
@@ -0,0 +1,344 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .amount import Amount, AmountTypedDict
5
+ from .metadata import Metadata, MetadataTypedDict
6
+ from .mode import Mode
7
+ from .subscription_method_response import SubscriptionMethodResponse
8
+ from .url import URL, URLTypedDict
9
+ from .url_nullable import URLNullable, URLNullableTypedDict
10
+ from enum import Enum
11
+ from mollie import utils
12
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
13
+ from mollie.utils import validate_open_enum
14
+ import pydantic
15
+ from pydantic import model_serializer
16
+ from pydantic.functional_validators import PlainValidator
17
+ from typing import Optional
18
+ from typing_extensions import Annotated, NotRequired, TypedDict
19
+
20
+
21
+ class ListSubscriptionResponseStatus(str, Enum, metaclass=utils.OpenEnumMeta):
22
+ r"""The subscription's current status is directly related to the status of the underlying customer or mandate that is
23
+ enabling the subscription.
24
+ """
25
+
26
+ PENDING = "pending"
27
+ ACTIVE = "active"
28
+ CANCELED = "canceled"
29
+ SUSPENDED = "suspended"
30
+ COMPLETED = "completed"
31
+
32
+
33
+ class ListSubscriptionResponseApplicationFeeTypedDict(TypedDict):
34
+ r"""With Mollie Connect you can charge fees on payments that your app is processing on behalf of other Mollie
35
+ merchants.
36
+
37
+ Setting an application fee on the subscription will ensure this fee is charged on each individual payment.
38
+
39
+ Refer to the `applicationFee` parameter on the [Get payment endpoint](get-payment) documentation for more
40
+ information.
41
+ """
42
+
43
+ amount: AmountTypedDict
44
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
45
+ description: str
46
+
47
+
48
+ class ListSubscriptionResponseApplicationFee(BaseModel):
49
+ r"""With Mollie Connect you can charge fees on payments that your app is processing on behalf of other Mollie
50
+ merchants.
51
+
52
+ Setting an application fee on the subscription will ensure this fee is charged on each individual payment.
53
+
54
+ Refer to the `applicationFee` parameter on the [Get payment endpoint](get-payment) documentation for more
55
+ information.
56
+ """
57
+
58
+ amount: Amount
59
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
60
+
61
+ description: str
62
+
63
+
64
+ class ListSubscriptionResponseLinksTypedDict(TypedDict):
65
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
66
+
67
+ self_: URLTypedDict
68
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
69
+ customer: Nullable[URLNullableTypedDict]
70
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
71
+ profile: Nullable[URLNullableTypedDict]
72
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
73
+ mandate: NotRequired[Nullable[URLNullableTypedDict]]
74
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
75
+ payments: NotRequired[Nullable[URLNullableTypedDict]]
76
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
77
+
78
+
79
+ class ListSubscriptionResponseLinks(BaseModel):
80
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
81
+
82
+ self_: Annotated[URL, pydantic.Field(alias="self")]
83
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
84
+
85
+ customer: Nullable[URLNullable]
86
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
87
+
88
+ profile: Nullable[URLNullable]
89
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
90
+
91
+ mandate: OptionalNullable[URLNullable] = UNSET
92
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
93
+
94
+ payments: OptionalNullable[URLNullable] = UNSET
95
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
96
+
97
+ @model_serializer(mode="wrap")
98
+ def serialize_model(self, handler):
99
+ optional_fields = ["mandate", "payments"]
100
+ nullable_fields = ["customer", "mandate", "profile", "payments"]
101
+ null_default_fields = []
102
+
103
+ serialized = handler(self)
104
+
105
+ m = {}
106
+
107
+ for n, f in type(self).model_fields.items():
108
+ k = f.alias or n
109
+ val = serialized.get(k)
110
+ serialized.pop(k, None)
111
+
112
+ optional_nullable = k in optional_fields and k in nullable_fields
113
+ is_set = (
114
+ self.__pydantic_fields_set__.intersection({n})
115
+ or k in null_default_fields
116
+ ) # pylint: disable=no-member
117
+
118
+ if val is not None and val != UNSET_SENTINEL:
119
+ m[k] = val
120
+ elif val != UNSET_SENTINEL and (
121
+ not k in optional_fields or (optional_nullable and is_set)
122
+ ):
123
+ m[k] = val
124
+
125
+ return m
126
+
127
+
128
+ class ListSubscriptionResponseTypedDict(TypedDict):
129
+ resource: str
130
+ r"""Indicates the response contains a subscription object. Will always contain the string `subscription` for this
131
+ endpoint.
132
+ """
133
+ id: str
134
+ r"""The identifier uniquely referring to this subscription. Example: `sub_rVKGtNd6s3`."""
135
+ mode: Mode
136
+ r"""Whether this entity was created in live mode or in test mode."""
137
+ status: ListSubscriptionResponseStatus
138
+ amount: AmountTypedDict
139
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
140
+ times: Nullable[int]
141
+ r"""Total number of payments for the subscription. Once this number of payments is reached, the subscription is
142
+ considered completed.
143
+
144
+ Test mode subscriptions will get canceled automatically after 10 payments.
145
+ """
146
+ times_remaining: Nullable[int]
147
+ r"""Number of payments left for the subscription."""
148
+ interval: str
149
+ r"""Interval to wait between payments, for example `1 month` or `14 days`.
150
+
151
+ The maximum interval is one year (`12 months`, `52 weeks`, or `365 days`).
152
+
153
+ Possible values: `... days`, `... weeks`, `... months`.
154
+ """
155
+ start_date: str
156
+ r"""The start date of the subscription in `YYYY-MM-DD` format."""
157
+ description: str
158
+ r"""The subscription's description will be used as the description of the resulting individual payments and so showing
159
+ up on the bank statement of the consumer.
160
+
161
+ **Please note:** the description needs to be unique for the Customer in case it has multiple active subscriptions.
162
+ """
163
+ method: Nullable[SubscriptionMethodResponse]
164
+ r"""The payment method used for this subscription. If omitted, any of the customer's valid mandates may be used."""
165
+ metadata: Nullable[MetadataTypedDict]
166
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
167
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
168
+ """
169
+ webhook_url: Nullable[str]
170
+ r"""We will call this URL for any payment status changes of payments resulting from this subscription.
171
+
172
+ This webhook will receive **all** events for the subscription's payments. This may include payment failures as
173
+ well. Be sure to verify the payment's subscription ID and its status.
174
+ """
175
+ customer_id: str
176
+ r"""The customer this subscription belongs to."""
177
+ created_at: str
178
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
179
+ links: ListSubscriptionResponseLinksTypedDict
180
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
181
+ next_payment_date: NotRequired[Nullable[str]]
182
+ r"""The date of the next scheduled payment in `YYYY-MM-DD` format. If the subscription has been completed or canceled,
183
+ this parameter will not be returned.
184
+ """
185
+ application_fee: NotRequired[ListSubscriptionResponseApplicationFeeTypedDict]
186
+ r"""With Mollie Connect you can charge fees on payments that your app is processing on behalf of other Mollie
187
+ merchants.
188
+
189
+ Setting an application fee on the subscription will ensure this fee is charged on each individual payment.
190
+
191
+ Refer to the `applicationFee` parameter on the [Get payment endpoint](get-payment) documentation for more
192
+ information.
193
+ """
194
+ mandate_id: NotRequired[str]
195
+ canceled_at: NotRequired[Nullable[str]]
196
+ r"""The subscription's date and time of cancellation, in ISO 8601 format. This parameter is omitted if the
197
+ subscription is not canceled (yet).
198
+ """
199
+
200
+
201
+ class ListSubscriptionResponse(BaseModel):
202
+ resource: str
203
+ r"""Indicates the response contains a subscription object. Will always contain the string `subscription` for this
204
+ endpoint.
205
+ """
206
+
207
+ id: str
208
+ r"""The identifier uniquely referring to this subscription. Example: `sub_rVKGtNd6s3`."""
209
+
210
+ mode: Annotated[Mode, PlainValidator(validate_open_enum(False))]
211
+ r"""Whether this entity was created in live mode or in test mode."""
212
+
213
+ status: Annotated[
214
+ ListSubscriptionResponseStatus, PlainValidator(validate_open_enum(False))
215
+ ]
216
+
217
+ amount: Amount
218
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
219
+
220
+ times: Nullable[int]
221
+ r"""Total number of payments for the subscription. Once this number of payments is reached, the subscription is
222
+ considered completed.
223
+
224
+ Test mode subscriptions will get canceled automatically after 10 payments.
225
+ """
226
+
227
+ times_remaining: Annotated[Nullable[int], pydantic.Field(alias="timesRemaining")]
228
+ r"""Number of payments left for the subscription."""
229
+
230
+ interval: str
231
+ r"""Interval to wait between payments, for example `1 month` or `14 days`.
232
+
233
+ The maximum interval is one year (`12 months`, `52 weeks`, or `365 days`).
234
+
235
+ Possible values: `... days`, `... weeks`, `... months`.
236
+ """
237
+
238
+ start_date: Annotated[str, pydantic.Field(alias="startDate")]
239
+ r"""The start date of the subscription in `YYYY-MM-DD` format."""
240
+
241
+ description: str
242
+ r"""The subscription's description will be used as the description of the resulting individual payments and so showing
243
+ up on the bank statement of the consumer.
244
+
245
+ **Please note:** the description needs to be unique for the Customer in case it has multiple active subscriptions.
246
+ """
247
+
248
+ method: Annotated[
249
+ Nullable[SubscriptionMethodResponse], PlainValidator(validate_open_enum(False))
250
+ ]
251
+ r"""The payment method used for this subscription. If omitted, any of the customer's valid mandates may be used."""
252
+
253
+ metadata: Nullable[Metadata]
254
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
255
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
256
+ """
257
+
258
+ webhook_url: Annotated[Nullable[str], pydantic.Field(alias="webhookUrl")]
259
+ r"""We will call this URL for any payment status changes of payments resulting from this subscription.
260
+
261
+ This webhook will receive **all** events for the subscription's payments. This may include payment failures as
262
+ well. Be sure to verify the payment's subscription ID and its status.
263
+ """
264
+
265
+ customer_id: Annotated[str, pydantic.Field(alias="customerId")]
266
+ r"""The customer this subscription belongs to."""
267
+
268
+ created_at: Annotated[str, pydantic.Field(alias="createdAt")]
269
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
270
+
271
+ links: Annotated[ListSubscriptionResponseLinks, pydantic.Field(alias="_links")]
272
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
273
+
274
+ next_payment_date: Annotated[
275
+ OptionalNullable[str], pydantic.Field(alias="nextPaymentDate")
276
+ ] = UNSET
277
+ r"""The date of the next scheduled payment in `YYYY-MM-DD` format. If the subscription has been completed or canceled,
278
+ this parameter will not be returned.
279
+ """
280
+
281
+ application_fee: Annotated[
282
+ Optional[ListSubscriptionResponseApplicationFee],
283
+ pydantic.Field(alias="applicationFee"),
284
+ ] = None
285
+ r"""With Mollie Connect you can charge fees on payments that your app is processing on behalf of other Mollie
286
+ merchants.
287
+
288
+ Setting an application fee on the subscription will ensure this fee is charged on each individual payment.
289
+
290
+ Refer to the `applicationFee` parameter on the [Get payment endpoint](get-payment) documentation for more
291
+ information.
292
+ """
293
+
294
+ mandate_id: Annotated[Optional[str], pydantic.Field(alias="mandateId")] = None
295
+
296
+ canceled_at: Annotated[
297
+ OptionalNullable[str], pydantic.Field(alias="canceledAt")
298
+ ] = UNSET
299
+ r"""The subscription's date and time of cancellation, in ISO 8601 format. This parameter is omitted if the
300
+ subscription is not canceled (yet).
301
+ """
302
+
303
+ @model_serializer(mode="wrap")
304
+ def serialize_model(self, handler):
305
+ optional_fields = [
306
+ "nextPaymentDate",
307
+ "applicationFee",
308
+ "mandateId",
309
+ "canceledAt",
310
+ ]
311
+ nullable_fields = [
312
+ "times",
313
+ "timesRemaining",
314
+ "nextPaymentDate",
315
+ "method",
316
+ "metadata",
317
+ "webhookUrl",
318
+ "canceledAt",
319
+ ]
320
+ null_default_fields = []
321
+
322
+ serialized = handler(self)
323
+
324
+ m = {}
325
+
326
+ for n, f in type(self).model_fields.items():
327
+ k = f.alias or n
328
+ val = serialized.get(k)
329
+ serialized.pop(k, None)
330
+
331
+ optional_nullable = k in optional_fields and k in nullable_fields
332
+ is_set = (
333
+ self.__pydantic_fields_set__.intersection({n})
334
+ or k in null_default_fields
335
+ ) # pylint: disable=no-member
336
+
337
+ if val is not None and val != UNSET_SENTINEL:
338
+ m[k] = val
339
+ elif val != UNSET_SENTINEL and (
340
+ not k in optional_fields or (optional_nullable and is_set)
341
+ ):
342
+ m[k] = val
343
+
344
+ return m
@@ -0,0 +1,189 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .list_links import ListLinks, ListLinksTypedDict
5
+ from .list_subscription_response import (
6
+ ListSubscriptionResponse,
7
+ ListSubscriptionResponseTypedDict,
8
+ )
9
+ from .sorting import Sorting
10
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
11
+ from mollie.utils import (
12
+ FieldMetadata,
13
+ HeaderMetadata,
14
+ PathParamMetadata,
15
+ QueryParamMetadata,
16
+ )
17
+ import pydantic
18
+ from pydantic import model_serializer
19
+ from typing import List, Optional
20
+ from typing_extensions import Annotated, NotRequired, TypedDict
21
+
22
+
23
+ class ListSubscriptionsGlobalsTypedDict(TypedDict):
24
+ testmode: NotRequired[bool]
25
+ r"""Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query
26
+ parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by
27
+ setting the `testmode` query parameter to `true`.
28
+
29
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
30
+ """
31
+
32
+
33
+ class ListSubscriptionsGlobals(BaseModel):
34
+ testmode: Annotated[
35
+ Optional[bool],
36
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
37
+ ] = None
38
+ r"""Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query
39
+ parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by
40
+ setting the `testmode` query parameter to `true`.
41
+
42
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
43
+ """
44
+
45
+
46
+ class ListSubscriptionsRequestTypedDict(TypedDict):
47
+ customer_id: str
48
+ r"""Provide the ID of the related customer."""
49
+ from_: NotRequired[str]
50
+ r"""Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the
51
+ result set.
52
+ """
53
+ limit: NotRequired[Nullable[int]]
54
+ r"""The maximum number of items to return. Defaults to 50 items."""
55
+ sort: NotRequired[Sorting]
56
+ r"""Used for setting the direction of the result set. Defaults to descending order, meaning the results are ordered from
57
+ newest to oldest.
58
+ """
59
+ testmode: NotRequired[bool]
60
+ r"""Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query
61
+ parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by
62
+ setting the `testmode` query parameter to `true`.
63
+
64
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
65
+ """
66
+ idempotency_key: NotRequired[str]
67
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
68
+
69
+
70
+ class ListSubscriptionsRequest(BaseModel):
71
+ customer_id: Annotated[
72
+ str,
73
+ pydantic.Field(alias="customerId"),
74
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
75
+ ]
76
+ r"""Provide the ID of the related customer."""
77
+
78
+ from_: Annotated[
79
+ Optional[str],
80
+ pydantic.Field(alias="from"),
81
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
82
+ ] = None
83
+ r"""Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the
84
+ result set.
85
+ """
86
+
87
+ limit: Annotated[
88
+ OptionalNullable[int],
89
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
90
+ ] = UNSET
91
+ r"""The maximum number of items to return. Defaults to 50 items."""
92
+
93
+ sort: Annotated[
94
+ Optional[Sorting],
95
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
96
+ ] = None
97
+ r"""Used for setting the direction of the result set. Defaults to descending order, meaning the results are ordered from
98
+ newest to oldest.
99
+ """
100
+
101
+ testmode: Annotated[
102
+ Optional[bool],
103
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
104
+ ] = None
105
+ r"""Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query
106
+ parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by
107
+ setting the `testmode` query parameter to `true`.
108
+
109
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
110
+ """
111
+
112
+ idempotency_key: Annotated[
113
+ Optional[str],
114
+ pydantic.Field(alias="idempotency-key"),
115
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
116
+ ] = None
117
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
118
+
119
+ @model_serializer(mode="wrap")
120
+ def serialize_model(self, handler):
121
+ optional_fields = ["from", "limit", "sort", "testmode", "idempotency-key"]
122
+ nullable_fields = ["limit"]
123
+ null_default_fields = []
124
+
125
+ serialized = handler(self)
126
+
127
+ m = {}
128
+
129
+ for n, f in type(self).model_fields.items():
130
+ k = f.alias or n
131
+ val = serialized.get(k)
132
+ serialized.pop(k, None)
133
+
134
+ optional_nullable = k in optional_fields and k in nullable_fields
135
+ is_set = (
136
+ self.__pydantic_fields_set__.intersection({n})
137
+ or k in null_default_fields
138
+ ) # pylint: disable=no-member
139
+
140
+ if val is not None and val != UNSET_SENTINEL:
141
+ m[k] = val
142
+ elif val != UNSET_SENTINEL and (
143
+ not k in optional_fields or (optional_nullable and is_set)
144
+ ):
145
+ m[k] = val
146
+
147
+ return m
148
+
149
+
150
+ class ListSubscriptionsEmbeddedTypedDict(TypedDict):
151
+ subscriptions: NotRequired[List[ListSubscriptionResponseTypedDict]]
152
+ r"""An array of subscription objects."""
153
+
154
+
155
+ class ListSubscriptionsEmbedded(BaseModel):
156
+ subscriptions: Optional[List[ListSubscriptionResponse]] = None
157
+ r"""An array of subscription objects."""
158
+
159
+
160
+ class ListSubscriptionsResponseTypedDict(TypedDict):
161
+ r"""A list of subscription objects."""
162
+
163
+ count: int
164
+ r"""The number of items in this result set. If more items are available, a `_links.next` URL will be present in the result
165
+ as well.
166
+
167
+ The maximum number of items per result set is controlled by the `limit` property provided in the request. The default
168
+ limit is 50 items.
169
+ """
170
+ embedded: ListSubscriptionsEmbeddedTypedDict
171
+ links: ListLinksTypedDict
172
+ r"""Links to help navigate through the lists of items. Every URL object will contain an `href` and a `type` field."""
173
+
174
+
175
+ class ListSubscriptionsResponse(BaseModel):
176
+ r"""A list of subscription objects."""
177
+
178
+ count: int
179
+ r"""The number of items in this result set. If more items are available, a `_links.next` URL will be present in the result
180
+ as well.
181
+
182
+ The maximum number of items per result set is controlled by the `limit` property provided in the request. The default
183
+ limit is 50 items.
184
+ """
185
+
186
+ embedded: Annotated[ListSubscriptionsEmbedded, pydantic.Field(alias="_embedded")]
187
+
188
+ links: Annotated[ListLinks, pydantic.Field(alias="_links")]
189
+ r"""Links to help navigate through the lists of items. Every URL object will contain an `href` and a `type` field."""