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,213 @@
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 .subscription_method import SubscriptionMethod
7
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
8
+ import pydantic
9
+ from pydantic import model_serializer
10
+ from typing import Optional
11
+ from typing_extensions import Annotated, NotRequired, TypedDict
12
+
13
+
14
+ class SubscriptionRequestApplicationFeeTypedDict(TypedDict):
15
+ r"""With Mollie Connect you can charge fees on payments that your app is processing on behalf of other Mollie
16
+ merchants.
17
+
18
+ Setting an application fee on the subscription will ensure this fee is charged on each individual payment.
19
+
20
+ Refer to the `applicationFee` parameter on the [Get payment endpoint](get-payment) documentation for more
21
+ information.
22
+ """
23
+
24
+ amount: AmountTypedDict
25
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
26
+ description: str
27
+
28
+
29
+ class SubscriptionRequestApplicationFee(BaseModel):
30
+ r"""With Mollie Connect you can charge fees on payments that your app is processing on behalf of other Mollie
31
+ merchants.
32
+
33
+ Setting an application fee on the subscription will ensure this fee is charged on each individual payment.
34
+
35
+ Refer to the `applicationFee` parameter on the [Get payment endpoint](get-payment) documentation for more
36
+ information.
37
+ """
38
+
39
+ amount: Amount
40
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
41
+
42
+ description: str
43
+
44
+
45
+ class SubscriptionRequestTypedDict(TypedDict):
46
+ amount: NotRequired[AmountTypedDict]
47
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
48
+ times: NotRequired[Nullable[int]]
49
+ r"""Total number of payments for the subscription. Once this number of payments is reached, the subscription is
50
+ considered completed.
51
+
52
+ Test mode subscriptions will get canceled automatically after 10 payments.
53
+ """
54
+ interval: NotRequired[str]
55
+ r"""Interval to wait between payments, for example `1 month` or `14 days`.
56
+
57
+ The maximum interval is one year (`12 months`, `52 weeks`, or `365 days`).
58
+
59
+ Possible values: `... days`, `... weeks`, `... months`.
60
+ """
61
+ start_date: NotRequired[str]
62
+ r"""The start date of the subscription in `YYYY-MM-DD` format."""
63
+ description: NotRequired[str]
64
+ r"""The subscription's description will be used as the description of the resulting individual payments and so showing
65
+ up on the bank statement of the consumer.
66
+
67
+ **Please note:** the description needs to be unique for the Customer in case it has multiple active subscriptions.
68
+ """
69
+ method: NotRequired[Nullable[SubscriptionMethod]]
70
+ r"""The payment method used for this subscription. If omitted, any of the customer's valid mandates may be used."""
71
+ application_fee: NotRequired[SubscriptionRequestApplicationFeeTypedDict]
72
+ r"""With Mollie Connect you can charge fees on payments that your app is processing on behalf of other Mollie
73
+ merchants.
74
+
75
+ Setting an application fee on the subscription will ensure this fee is charged on each individual payment.
76
+
77
+ Refer to the `applicationFee` parameter on the [Get payment endpoint](get-payment) documentation for more
78
+ information.
79
+ """
80
+ metadata: NotRequired[Nullable[MetadataTypedDict]]
81
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
82
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
83
+ """
84
+ webhook_url: NotRequired[Nullable[str]]
85
+ r"""We will call this URL for any payment status changes of payments resulting from this subscription.
86
+
87
+ This webhook will receive **all** events for the subscription's payments. This may include payment failures as
88
+ well. Be sure to verify the payment's subscription ID and its status.
89
+ """
90
+ mandate_id: NotRequired[str]
91
+ profile_id: NotRequired[str]
92
+ testmode: NotRequired[Nullable[bool]]
93
+ r"""Whether to create the entity in test mode or live mode.
94
+
95
+ Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
96
+ omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
97
+ `testmode` to `true`.
98
+ """
99
+
100
+
101
+ class SubscriptionRequest(BaseModel):
102
+ amount: Optional[Amount] = None
103
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
104
+
105
+ times: OptionalNullable[int] = UNSET
106
+ r"""Total number of payments for the subscription. Once this number of payments is reached, the subscription is
107
+ considered completed.
108
+
109
+ Test mode subscriptions will get canceled automatically after 10 payments.
110
+ """
111
+
112
+ interval: Optional[str] = None
113
+ r"""Interval to wait between payments, for example `1 month` or `14 days`.
114
+
115
+ The maximum interval is one year (`12 months`, `52 weeks`, or `365 days`).
116
+
117
+ Possible values: `... days`, `... weeks`, `... months`.
118
+ """
119
+
120
+ start_date: Annotated[Optional[str], pydantic.Field(alias="startDate")] = None
121
+ r"""The start date of the subscription in `YYYY-MM-DD` format."""
122
+
123
+ description: Optional[str] = None
124
+ r"""The subscription's description will be used as the description of the resulting individual payments and so showing
125
+ up on the bank statement of the consumer.
126
+
127
+ **Please note:** the description needs to be unique for the Customer in case it has multiple active subscriptions.
128
+ """
129
+
130
+ method: OptionalNullable[SubscriptionMethod] = UNSET
131
+ r"""The payment method used for this subscription. If omitted, any of the customer's valid mandates may be used."""
132
+
133
+ application_fee: Annotated[
134
+ Optional[SubscriptionRequestApplicationFee],
135
+ pydantic.Field(alias="applicationFee"),
136
+ ] = None
137
+ r"""With Mollie Connect you can charge fees on payments that your app is processing on behalf of other Mollie
138
+ merchants.
139
+
140
+ Setting an application fee on the subscription will ensure this fee is charged on each individual payment.
141
+
142
+ Refer to the `applicationFee` parameter on the [Get payment endpoint](get-payment) documentation for more
143
+ information.
144
+ """
145
+
146
+ metadata: OptionalNullable[Metadata] = UNSET
147
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
148
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
149
+ """
150
+
151
+ webhook_url: Annotated[
152
+ OptionalNullable[str], pydantic.Field(alias="webhookUrl")
153
+ ] = UNSET
154
+ r"""We will call this URL for any payment status changes of payments resulting from this subscription.
155
+
156
+ This webhook will receive **all** events for the subscription's payments. This may include payment failures as
157
+ well. Be sure to verify the payment's subscription ID and its status.
158
+ """
159
+
160
+ mandate_id: Annotated[Optional[str], pydantic.Field(alias="mandateId")] = None
161
+
162
+ profile_id: Annotated[Optional[str], pydantic.Field(alias="profileId")] = None
163
+
164
+ testmode: OptionalNullable[bool] = UNSET
165
+ r"""Whether to create the entity in test mode or live mode.
166
+
167
+ Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
168
+ omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
169
+ `testmode` to `true`.
170
+ """
171
+
172
+ @model_serializer(mode="wrap")
173
+ def serialize_model(self, handler):
174
+ optional_fields = [
175
+ "amount",
176
+ "times",
177
+ "interval",
178
+ "startDate",
179
+ "description",
180
+ "method",
181
+ "applicationFee",
182
+ "metadata",
183
+ "webhookUrl",
184
+ "mandateId",
185
+ "profileId",
186
+ "testmode",
187
+ ]
188
+ nullable_fields = ["times", "method", "metadata", "webhookUrl", "testmode"]
189
+ null_default_fields = []
190
+
191
+ serialized = handler(self)
192
+
193
+ m = {}
194
+
195
+ for n, f in type(self).model_fields.items():
196
+ k = f.alias or n
197
+ val = serialized.get(k)
198
+ serialized.pop(k, None)
199
+
200
+ optional_nullable = k in optional_fields and k in nullable_fields
201
+ is_set = (
202
+ self.__pydantic_fields_set__.intersection({n})
203
+ or k in null_default_fields
204
+ ) # pylint: disable=no-member
205
+
206
+ if val is not None and val != UNSET_SENTINEL:
207
+ m[k] = val
208
+ elif val != UNSET_SENTINEL and (
209
+ not k in optional_fields or (optional_nullable and is_set)
210
+ ):
211
+ m[k] = val
212
+
213
+ return m
@@ -0,0 +1,349 @@
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 SubscriptionResponseStatus(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 SubscriptionResponseApplicationFeeTypedDict(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 SubscriptionResponseApplicationFee(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 SubscriptionResponseLinksTypedDict(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
+ documentation: URLTypedDict
74
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
75
+ mandate: NotRequired[Nullable[URLNullableTypedDict]]
76
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
77
+ payments: NotRequired[Nullable[URLNullableTypedDict]]
78
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
79
+
80
+
81
+ class SubscriptionResponseLinks(BaseModel):
82
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
83
+
84
+ self_: Annotated[URL, pydantic.Field(alias="self")]
85
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
86
+
87
+ customer: Nullable[URLNullable]
88
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
89
+
90
+ profile: Nullable[URLNullable]
91
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
92
+
93
+ documentation: URL
94
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
95
+
96
+ mandate: OptionalNullable[URLNullable] = UNSET
97
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
98
+
99
+ payments: OptionalNullable[URLNullable] = UNSET
100
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
101
+
102
+ @model_serializer(mode="wrap")
103
+ def serialize_model(self, handler):
104
+ optional_fields = ["mandate", "payments"]
105
+ nullable_fields = ["customer", "mandate", "profile", "payments"]
106
+ null_default_fields = []
107
+
108
+ serialized = handler(self)
109
+
110
+ m = {}
111
+
112
+ for n, f in type(self).model_fields.items():
113
+ k = f.alias or n
114
+ val = serialized.get(k)
115
+ serialized.pop(k, None)
116
+
117
+ optional_nullable = k in optional_fields and k in nullable_fields
118
+ is_set = (
119
+ self.__pydantic_fields_set__.intersection({n})
120
+ or k in null_default_fields
121
+ ) # pylint: disable=no-member
122
+
123
+ if val is not None and val != UNSET_SENTINEL:
124
+ m[k] = val
125
+ elif val != UNSET_SENTINEL and (
126
+ not k in optional_fields or (optional_nullable and is_set)
127
+ ):
128
+ m[k] = val
129
+
130
+ return m
131
+
132
+
133
+ class SubscriptionResponseTypedDict(TypedDict):
134
+ resource: str
135
+ r"""Indicates the response contains a subscription object. Will always contain the string `subscription` for this
136
+ endpoint.
137
+ """
138
+ id: str
139
+ r"""The identifier uniquely referring to this subscription. Example: `sub_rVKGtNd6s3`."""
140
+ mode: Mode
141
+ r"""Whether this entity was created in live mode or in test mode."""
142
+ status: SubscriptionResponseStatus
143
+ amount: AmountTypedDict
144
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
145
+ times: Nullable[int]
146
+ r"""Total number of payments for the subscription. Once this number of payments is reached, the subscription is
147
+ considered completed.
148
+
149
+ Test mode subscriptions will get canceled automatically after 10 payments.
150
+ """
151
+ times_remaining: Nullable[int]
152
+ r"""Number of payments left for the subscription."""
153
+ interval: str
154
+ r"""Interval to wait between payments, for example `1 month` or `14 days`.
155
+
156
+ The maximum interval is one year (`12 months`, `52 weeks`, or `365 days`).
157
+
158
+ Possible values: `... days`, `... weeks`, `... months`.
159
+ """
160
+ start_date: str
161
+ r"""The start date of the subscription in `YYYY-MM-DD` format."""
162
+ description: str
163
+ r"""The subscription's description will be used as the description of the resulting individual payments and so showing
164
+ up on the bank statement of the consumer.
165
+
166
+ **Please note:** the description needs to be unique for the Customer in case it has multiple active subscriptions.
167
+ """
168
+ method: Nullable[SubscriptionMethodResponse]
169
+ r"""The payment method used for this subscription. If omitted, any of the customer's valid mandates may be used."""
170
+ metadata: Nullable[MetadataTypedDict]
171
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
172
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
173
+ """
174
+ webhook_url: Nullable[str]
175
+ r"""We will call this URL for any payment status changes of payments resulting from this subscription.
176
+
177
+ This webhook will receive **all** events for the subscription's payments. This may include payment failures as
178
+ well. Be sure to verify the payment's subscription ID and its status.
179
+ """
180
+ customer_id: str
181
+ r"""The customer this subscription belongs to."""
182
+ created_at: str
183
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
184
+ links: SubscriptionResponseLinksTypedDict
185
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
186
+ next_payment_date: NotRequired[Nullable[str]]
187
+ r"""The date of the next scheduled payment in `YYYY-MM-DD` format. If the subscription has been completed or canceled,
188
+ this parameter will not be returned.
189
+ """
190
+ application_fee: NotRequired[SubscriptionResponseApplicationFeeTypedDict]
191
+ r"""With Mollie Connect you can charge fees on payments that your app is processing on behalf of other Mollie
192
+ merchants.
193
+
194
+ Setting an application fee on the subscription will ensure this fee is charged on each individual payment.
195
+
196
+ Refer to the `applicationFee` parameter on the [Get payment endpoint](get-payment) documentation for more
197
+ information.
198
+ """
199
+ mandate_id: NotRequired[str]
200
+ canceled_at: NotRequired[Nullable[str]]
201
+ r"""The subscription's date and time of cancellation, in ISO 8601 format. This parameter is omitted if the
202
+ subscription is not canceled (yet).
203
+ """
204
+
205
+
206
+ class SubscriptionResponse(BaseModel):
207
+ resource: str
208
+ r"""Indicates the response contains a subscription object. Will always contain the string `subscription` for this
209
+ endpoint.
210
+ """
211
+
212
+ id: str
213
+ r"""The identifier uniquely referring to this subscription. Example: `sub_rVKGtNd6s3`."""
214
+
215
+ mode: Annotated[Mode, PlainValidator(validate_open_enum(False))]
216
+ r"""Whether this entity was created in live mode or in test mode."""
217
+
218
+ status: Annotated[
219
+ SubscriptionResponseStatus, PlainValidator(validate_open_enum(False))
220
+ ]
221
+
222
+ amount: Amount
223
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
224
+
225
+ times: Nullable[int]
226
+ r"""Total number of payments for the subscription. Once this number of payments is reached, the subscription is
227
+ considered completed.
228
+
229
+ Test mode subscriptions will get canceled automatically after 10 payments.
230
+ """
231
+
232
+ times_remaining: Annotated[Nullable[int], pydantic.Field(alias="timesRemaining")]
233
+ r"""Number of payments left for the subscription."""
234
+
235
+ interval: str
236
+ r"""Interval to wait between payments, for example `1 month` or `14 days`.
237
+
238
+ The maximum interval is one year (`12 months`, `52 weeks`, or `365 days`).
239
+
240
+ Possible values: `... days`, `... weeks`, `... months`.
241
+ """
242
+
243
+ start_date: Annotated[str, pydantic.Field(alias="startDate")]
244
+ r"""The start date of the subscription in `YYYY-MM-DD` format."""
245
+
246
+ description: str
247
+ r"""The subscription's description will be used as the description of the resulting individual payments and so showing
248
+ up on the bank statement of the consumer.
249
+
250
+ **Please note:** the description needs to be unique for the Customer in case it has multiple active subscriptions.
251
+ """
252
+
253
+ method: Annotated[
254
+ Nullable[SubscriptionMethodResponse], PlainValidator(validate_open_enum(False))
255
+ ]
256
+ r"""The payment method used for this subscription. If omitted, any of the customer's valid mandates may be used."""
257
+
258
+ metadata: Nullable[Metadata]
259
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
260
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
261
+ """
262
+
263
+ webhook_url: Annotated[Nullable[str], pydantic.Field(alias="webhookUrl")]
264
+ r"""We will call this URL for any payment status changes of payments resulting from this subscription.
265
+
266
+ This webhook will receive **all** events for the subscription's payments. This may include payment failures as
267
+ well. Be sure to verify the payment's subscription ID and its status.
268
+ """
269
+
270
+ customer_id: Annotated[str, pydantic.Field(alias="customerId")]
271
+ r"""The customer this subscription belongs to."""
272
+
273
+ created_at: Annotated[str, pydantic.Field(alias="createdAt")]
274
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
275
+
276
+ links: Annotated[SubscriptionResponseLinks, pydantic.Field(alias="_links")]
277
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
278
+
279
+ next_payment_date: Annotated[
280
+ OptionalNullable[str], pydantic.Field(alias="nextPaymentDate")
281
+ ] = UNSET
282
+ r"""The date of the next scheduled payment in `YYYY-MM-DD` format. If the subscription has been completed or canceled,
283
+ this parameter will not be returned.
284
+ """
285
+
286
+ application_fee: Annotated[
287
+ Optional[SubscriptionResponseApplicationFee],
288
+ pydantic.Field(alias="applicationFee"),
289
+ ] = None
290
+ r"""With Mollie Connect you can charge fees on payments that your app is processing on behalf of other Mollie
291
+ merchants.
292
+
293
+ Setting an application fee on the subscription will ensure this fee is charged on each individual payment.
294
+
295
+ Refer to the `applicationFee` parameter on the [Get payment endpoint](get-payment) documentation for more
296
+ information.
297
+ """
298
+
299
+ mandate_id: Annotated[Optional[str], pydantic.Field(alias="mandateId")] = None
300
+
301
+ canceled_at: Annotated[
302
+ OptionalNullable[str], pydantic.Field(alias="canceledAt")
303
+ ] = UNSET
304
+ r"""The subscription's date and time of cancellation, in ISO 8601 format. This parameter is omitted if the
305
+ subscription is not canceled (yet).
306
+ """
307
+
308
+ @model_serializer(mode="wrap")
309
+ def serialize_model(self, handler):
310
+ optional_fields = [
311
+ "nextPaymentDate",
312
+ "applicationFee",
313
+ "mandateId",
314
+ "canceledAt",
315
+ ]
316
+ nullable_fields = [
317
+ "times",
318
+ "timesRemaining",
319
+ "nextPaymentDate",
320
+ "method",
321
+ "metadata",
322
+ "webhookUrl",
323
+ "canceledAt",
324
+ ]
325
+ null_default_fields = []
326
+
327
+ serialized = handler(self)
328
+
329
+ m = {}
330
+
331
+ for n, f in type(self).model_fields.items():
332
+ k = f.alias or n
333
+ val = serialized.get(k)
334
+ serialized.pop(k, None)
335
+
336
+ optional_nullable = k in optional_fields and k in nullable_fields
337
+ is_set = (
338
+ self.__pydantic_fields_set__.intersection({n})
339
+ or k in null_default_fields
340
+ ) # pylint: disable=no-member
341
+
342
+ if val is not None and val != UNSET_SENTINEL:
343
+ m[k] = val
344
+ elif val != UNSET_SENTINEL and (
345
+ not k in optional_fields or (optional_nullable and is_set)
346
+ ):
347
+ m[k] = val
348
+
349
+ return m
@@ -0,0 +1,12 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from enum import Enum
5
+ from mollie import utils
6
+
7
+
8
+ class TerminalBrand(str, Enum, metaclass=utils.OpenEnumMeta):
9
+ r"""The brand of the terminal."""
10
+
11
+ PAX = "PAX"
12
+ TAP = "Tap"
@@ -0,0 +1,16 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from enum import Enum
5
+ from mollie import utils
6
+
7
+
8
+ class TerminalModel(str, Enum, metaclass=utils.OpenEnumMeta):
9
+ r"""The model of the terminal. For example for a PAX A920, this field's value will be `A920`."""
10
+
11
+ A35 = "A35"
12
+ A77 = "A77"
13
+ A920 = "A920"
14
+ A920_PRO = "A920Pro"
15
+ IM30 = "IM30"
16
+ TAP = "Tap"
@@ -0,0 +1,64 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from mollie.types import BaseModel
5
+ from mollie.utils import (
6
+ FieldMetadata,
7
+ HeaderMetadata,
8
+ PathParamMetadata,
9
+ RequestMetadata,
10
+ )
11
+ import pydantic
12
+ from typing import Optional
13
+ from typing_extensions import Annotated, NotRequired, TypedDict
14
+
15
+
16
+ class TestWebhookRequestBodyTypedDict(TypedDict):
17
+ __test__ = False # pyright: ignore[reportGeneralTypeIssues]
18
+
19
+ testmode: NotRequired[bool]
20
+ r"""You can enable test mode by setting `testmode` to `true`.
21
+
22
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
23
+ """
24
+
25
+
26
+ class TestWebhookRequestBody(BaseModel):
27
+ __test__ = False
28
+
29
+ testmode: Optional[bool] = None
30
+ r"""You can enable test mode by setting `testmode` to `true`.
31
+
32
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
33
+ """
34
+
35
+
36
+ class TestWebhookRequestTypedDict(TypedDict):
37
+ __test__ = False # pyright: ignore[reportGeneralTypeIssues]
38
+
39
+ id: str
40
+ r"""Provide the ID of the item you want to perform this operation on."""
41
+ idempotency_key: NotRequired[str]
42
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
43
+ request_body: NotRequired[TestWebhookRequestBodyTypedDict]
44
+
45
+
46
+ class TestWebhookRequest(BaseModel):
47
+ __test__ = False
48
+
49
+ id: Annotated[
50
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
51
+ ]
52
+ r"""Provide the ID of the item you want to perform this operation on."""
53
+
54
+ idempotency_key: Annotated[
55
+ Optional[str],
56
+ pydantic.Field(alias="idempotency-key"),
57
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
58
+ ] = None
59
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
60
+
61
+ request_body: Annotated[
62
+ Optional[TestWebhookRequestBody],
63
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
64
+ ] = None