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,147 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
5
+ from mollie.utils import (
6
+ FieldMetadata,
7
+ HeaderMetadata,
8
+ PathParamMetadata,
9
+ RequestMetadata,
10
+ )
11
+ import pydantic
12
+ from pydantic import model_serializer
13
+ from typing import List, Optional
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class UpdateProfileRequestBodyTypedDict(TypedDict):
18
+ name: NotRequired[Nullable[str]]
19
+ r"""The profile's name, this will usually reflect the trade name or brand name of the profile's website or
20
+ application.
21
+ """
22
+ website: NotRequired[Nullable[str]]
23
+ r"""The URL to the profile's website or application. Only `https` or `http` URLs are allowed. No `@` signs
24
+ are allowed.
25
+ """
26
+ email: NotRequired[Nullable[str]]
27
+ r"""The email address associated with the profile's trade name or brand."""
28
+ phone: NotRequired[Nullable[str]]
29
+ r"""The phone number associated with the profile's trade name or brand."""
30
+ description: NotRequired[Nullable[str]]
31
+ r"""The products or services offered by the profile's website or application."""
32
+ countries_of_activity: NotRequired[Nullable[List[str]]]
33
+ r"""A list of countries where you expect that the majority of the profile's customers reside,
34
+ in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
35
+ """
36
+ business_category: NotRequired[Nullable[str]]
37
+ r"""The industry associated with the profile's trade name or brand. Please refer to the
38
+ [business category list](common-data-types) for all possible options.
39
+ """
40
+
41
+
42
+ class UpdateProfileRequestBody(BaseModel):
43
+ name: OptionalNullable[str] = UNSET
44
+ r"""The profile's name, this will usually reflect the trade name or brand name of the profile's website or
45
+ application.
46
+ """
47
+
48
+ website: OptionalNullable[str] = UNSET
49
+ r"""The URL to the profile's website or application. Only `https` or `http` URLs are allowed. No `@` signs
50
+ are allowed.
51
+ """
52
+
53
+ email: OptionalNullable[str] = UNSET
54
+ r"""The email address associated with the profile's trade name or brand."""
55
+
56
+ phone: OptionalNullable[str] = UNSET
57
+ r"""The phone number associated with the profile's trade name or brand."""
58
+
59
+ description: OptionalNullable[str] = UNSET
60
+ r"""The products or services offered by the profile's website or application."""
61
+
62
+ countries_of_activity: Annotated[
63
+ OptionalNullable[List[str]], pydantic.Field(alias="countriesOfActivity")
64
+ ] = UNSET
65
+ r"""A list of countries where you expect that the majority of the profile's customers reside,
66
+ in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
67
+ """
68
+
69
+ business_category: Annotated[
70
+ OptionalNullable[str], pydantic.Field(alias="businessCategory")
71
+ ] = UNSET
72
+ r"""The industry associated with the profile's trade name or brand. Please refer to the
73
+ [business category list](common-data-types) for all possible options.
74
+ """
75
+
76
+ @model_serializer(mode="wrap")
77
+ def serialize_model(self, handler):
78
+ optional_fields = [
79
+ "name",
80
+ "website",
81
+ "email",
82
+ "phone",
83
+ "description",
84
+ "countriesOfActivity",
85
+ "businessCategory",
86
+ ]
87
+ nullable_fields = [
88
+ "name",
89
+ "website",
90
+ "email",
91
+ "phone",
92
+ "description",
93
+ "countriesOfActivity",
94
+ "businessCategory",
95
+ ]
96
+ null_default_fields = []
97
+
98
+ serialized = handler(self)
99
+
100
+ m = {}
101
+
102
+ for n, f in type(self).model_fields.items():
103
+ k = f.alias or n
104
+ val = serialized.get(k)
105
+ serialized.pop(k, None)
106
+
107
+ optional_nullable = k in optional_fields and k in nullable_fields
108
+ is_set = (
109
+ self.__pydantic_fields_set__.intersection({n})
110
+ or k in null_default_fields
111
+ ) # pylint: disable=no-member
112
+
113
+ if val is not None and val != UNSET_SENTINEL:
114
+ m[k] = val
115
+ elif val != UNSET_SENTINEL and (
116
+ not k in optional_fields or (optional_nullable and is_set)
117
+ ):
118
+ m[k] = val
119
+
120
+ return m
121
+
122
+
123
+ class UpdateProfileRequestTypedDict(TypedDict):
124
+ id: str
125
+ r"""Provide the ID of the item you want to perform this operation on."""
126
+ request_body: UpdateProfileRequestBodyTypedDict
127
+ idempotency_key: NotRequired[str]
128
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
129
+
130
+
131
+ class UpdateProfileRequest(BaseModel):
132
+ id: Annotated[
133
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
134
+ ]
135
+ r"""Provide the ID of the item you want to perform this operation on."""
136
+
137
+ request_body: Annotated[
138
+ UpdateProfileRequestBody,
139
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
140
+ ]
141
+
142
+ idempotency_key: Annotated[
143
+ Optional[str],
144
+ pydantic.Field(alias="idempotency-key"),
145
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
146
+ ] = None
147
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
@@ -0,0 +1,44 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .update_values_sales_invoice import (
5
+ UpdateValuesSalesInvoice,
6
+ UpdateValuesSalesInvoiceTypedDict,
7
+ )
8
+ from mollie.types import BaseModel
9
+ from mollie.utils import (
10
+ FieldMetadata,
11
+ HeaderMetadata,
12
+ PathParamMetadata,
13
+ RequestMetadata,
14
+ )
15
+ import pydantic
16
+ from typing import Optional
17
+ from typing_extensions import Annotated, NotRequired, TypedDict
18
+
19
+
20
+ class UpdateSalesInvoiceRequestTypedDict(TypedDict):
21
+ id: str
22
+ r"""Provide the ID of the item you want to perform this operation on."""
23
+ idempotency_key: NotRequired[str]
24
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
25
+ update_values_sales_invoice: NotRequired[UpdateValuesSalesInvoiceTypedDict]
26
+
27
+
28
+ class UpdateSalesInvoiceRequest(BaseModel):
29
+ id: Annotated[
30
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
31
+ ]
32
+ r"""Provide the ID of the item you want to perform this operation on."""
33
+
34
+ idempotency_key: Annotated[
35
+ Optional[str],
36
+ pydantic.Field(alias="idempotency-key"),
37
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
38
+ ] = None
39
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
40
+
41
+ update_values_sales_invoice: Annotated[
42
+ Optional[UpdateValuesSalesInvoice],
43
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
44
+ ] = None
@@ -0,0 +1,188 @@
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 mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
7
+ from mollie.utils import (
8
+ FieldMetadata,
9
+ HeaderMetadata,
10
+ PathParamMetadata,
11
+ RequestMetadata,
12
+ )
13
+ import pydantic
14
+ from pydantic import model_serializer
15
+ from typing import Optional
16
+ from typing_extensions import Annotated, NotRequired, TypedDict
17
+
18
+
19
+ class UpdateSubscriptionRequestBodyTypedDict(TypedDict):
20
+ amount: NotRequired[AmountTypedDict]
21
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
22
+ description: NotRequired[str]
23
+ r"""The subscription's description will be used as the description of the resulting individual payments and so showing
24
+ up on the bank statement of the consumer.
25
+
26
+ **Please note:** the description needs to be unique for the Customer in case it has multiple active subscriptions.
27
+ """
28
+ interval: NotRequired[str]
29
+ r"""Interval to wait between payments, for example `1 month` or `14 days`.
30
+
31
+ The maximum interval is one year (`12 months`, `52 weeks`, or `365 days`).
32
+
33
+ Possible values: `... days`, `... weeks`, `... months`.
34
+ """
35
+ start_date: NotRequired[str]
36
+ r"""The start date of the subscription in `YYYY-MM-DD` format."""
37
+ times: NotRequired[int]
38
+ r"""Total number of payments for the subscription. Once this number of payments is reached, the subscription is
39
+ considered completed.
40
+
41
+ Test mode subscriptions will get canceled automatically after 10 payments.
42
+ """
43
+ metadata: NotRequired[Nullable[MetadataTypedDict]]
44
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
45
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
46
+ """
47
+ webhook_url: NotRequired[str]
48
+ r"""We will call this URL for any payment status changes of payments resulting from this subscription.
49
+
50
+ This webhook will receive **all** events for the subscription's payments. This may include payment
51
+ failures as well. Be sure to verify the payment's subscription ID and its status.
52
+ """
53
+ mandate_id: NotRequired[str]
54
+ testmode: NotRequired[Nullable[bool]]
55
+ r"""Most API credentials are specifically created for either live mode or test mode. For organization-level credentials
56
+ such as OAuth access tokens, you can enable test mode by setting `testmode` to `true`.
57
+
58
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
59
+ """
60
+
61
+
62
+ class UpdateSubscriptionRequestBody(BaseModel):
63
+ amount: Optional[Amount] = None
64
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
65
+
66
+ description: Optional[str] = None
67
+ r"""The subscription's description will be used as the description of the resulting individual payments and so showing
68
+ up on the bank statement of the consumer.
69
+
70
+ **Please note:** the description needs to be unique for the Customer in case it has multiple active subscriptions.
71
+ """
72
+
73
+ interval: Optional[str] = None
74
+ r"""Interval to wait between payments, for example `1 month` or `14 days`.
75
+
76
+ The maximum interval is one year (`12 months`, `52 weeks`, or `365 days`).
77
+
78
+ Possible values: `... days`, `... weeks`, `... months`.
79
+ """
80
+
81
+ start_date: Annotated[Optional[str], pydantic.Field(alias="startDate")] = None
82
+ r"""The start date of the subscription in `YYYY-MM-DD` format."""
83
+
84
+ times: Optional[int] = None
85
+ r"""Total number of payments for the subscription. Once this number of payments is reached, the subscription is
86
+ considered completed.
87
+
88
+ Test mode subscriptions will get canceled automatically after 10 payments.
89
+ """
90
+
91
+ metadata: OptionalNullable[Metadata] = UNSET
92
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
93
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
94
+ """
95
+
96
+ webhook_url: Annotated[Optional[str], pydantic.Field(alias="webhookUrl")] = None
97
+ r"""We will call this URL for any payment status changes of payments resulting from this subscription.
98
+
99
+ This webhook will receive **all** events for the subscription's payments. This may include payment
100
+ failures as well. Be sure to verify the payment's subscription ID and its status.
101
+ """
102
+
103
+ mandate_id: Annotated[Optional[str], pydantic.Field(alias="mandateId")] = None
104
+
105
+ testmode: OptionalNullable[bool] = UNSET
106
+ r"""Most API credentials are specifically created for either live mode or test mode. For organization-level credentials
107
+ such as OAuth access tokens, you can enable test mode by setting `testmode` to `true`.
108
+
109
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
110
+ """
111
+
112
+ @model_serializer(mode="wrap")
113
+ def serialize_model(self, handler):
114
+ optional_fields = [
115
+ "amount",
116
+ "description",
117
+ "interval",
118
+ "startDate",
119
+ "times",
120
+ "metadata",
121
+ "webhookUrl",
122
+ "mandateId",
123
+ "testmode",
124
+ ]
125
+ nullable_fields = ["metadata", "testmode"]
126
+ null_default_fields = []
127
+
128
+ serialized = handler(self)
129
+
130
+ m = {}
131
+
132
+ for n, f in type(self).model_fields.items():
133
+ k = f.alias or n
134
+ val = serialized.get(k)
135
+ serialized.pop(k, None)
136
+
137
+ optional_nullable = k in optional_fields and k in nullable_fields
138
+ is_set = (
139
+ self.__pydantic_fields_set__.intersection({n})
140
+ or k in null_default_fields
141
+ ) # pylint: disable=no-member
142
+
143
+ if val is not None and val != UNSET_SENTINEL:
144
+ m[k] = val
145
+ elif val != UNSET_SENTINEL and (
146
+ not k in optional_fields or (optional_nullable and is_set)
147
+ ):
148
+ m[k] = val
149
+
150
+ return m
151
+
152
+
153
+ class UpdateSubscriptionRequestTypedDict(TypedDict):
154
+ customer_id: str
155
+ r"""Provide the ID of the related customer."""
156
+ subscription_id: str
157
+ r"""Provide the ID of the related subscription."""
158
+ idempotency_key: NotRequired[str]
159
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
160
+ request_body: NotRequired[UpdateSubscriptionRequestBodyTypedDict]
161
+
162
+
163
+ class UpdateSubscriptionRequest(BaseModel):
164
+ customer_id: Annotated[
165
+ str,
166
+ pydantic.Field(alias="customerId"),
167
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
168
+ ]
169
+ r"""Provide the ID of the related customer."""
170
+
171
+ subscription_id: Annotated[
172
+ str,
173
+ pydantic.Field(alias="subscriptionId"),
174
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
175
+ ]
176
+ r"""Provide the ID of the related subscription."""
177
+
178
+ idempotency_key: Annotated[
179
+ Optional[str],
180
+ pydantic.Field(alias="idempotency-key"),
181
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
182
+ ] = None
183
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
184
+
185
+ request_body: Annotated[
186
+ Optional[UpdateSubscriptionRequestBody],
187
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
188
+ ] = None
@@ -0,0 +1,176 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .sales_invoice_discount import SalesInvoiceDiscount, SalesInvoiceDiscountTypedDict
5
+ from .sales_invoice_email_details import (
6
+ SalesInvoiceEmailDetails,
7
+ SalesInvoiceEmailDetailsTypedDict,
8
+ )
9
+ from .sales_invoice_line_item import SalesInvoiceLineItem, SalesInvoiceLineItemTypedDict
10
+ from .sales_invoice_payment_details import (
11
+ SalesInvoicePaymentDetails,
12
+ SalesInvoicePaymentDetailsTypedDict,
13
+ )
14
+ from .sales_invoice_payment_term import SalesInvoicePaymentTerm
15
+ from .sales_invoice_recipient import (
16
+ SalesInvoiceRecipient,
17
+ SalesInvoiceRecipientTypedDict,
18
+ )
19
+ from .sales_invoice_status import SalesInvoiceStatus
20
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
21
+ import pydantic
22
+ from pydantic import model_serializer
23
+ from typing import List, Optional
24
+ from typing_extensions import Annotated, NotRequired, TypedDict
25
+
26
+
27
+ class UpdateValuesSalesInvoiceTypedDict(TypedDict):
28
+ testmode: NotRequired[Nullable[bool]]
29
+ r"""Most API credentials are specifically created for either live mode or test mode. For organization-level credentials
30
+ such as OAuth access tokens, 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
+ status: NotRequired[SalesInvoiceStatus]
35
+ r"""The status for the invoice to end up in.
36
+
37
+ A `draft` invoice is not paid or not sent and can be updated after creation. Setting it to `issued` sends it to
38
+ the recipient so they may then pay through our payment system. To skip our payment process, set this to `paid` to
39
+ mark it as paid. It can then subsequently be sent as well, same as with `issued`.
40
+
41
+ A status value that cannot be set but can be returned is `canceled`, for invoices which were
42
+ issued, but then canceled. Currently this can only be done for invoices created in the dashboard.
43
+
44
+ Dependent parameters:
45
+ - `paymentDetails` is required if invoice should be set directly to `paid`
46
+ - `customerId` and `mandateId` are required if a recurring payment should be used to set the invoice to `paid`
47
+ - `emailDetails` optional for `issued` and `paid` to send the invoice by email
48
+ """
49
+ memo: NotRequired[Nullable[str]]
50
+ r"""A free-form memo you can set on the invoice, and will be shown on the invoice PDF."""
51
+ payment_term: NotRequired[Nullable[SalesInvoicePaymentTerm]]
52
+ r"""The payment term to be set on the invoice."""
53
+ payment_details: NotRequired[SalesInvoicePaymentDetailsTypedDict]
54
+ email_details: NotRequired[Nullable[SalesInvoiceEmailDetailsTypedDict]]
55
+ recipient_identifier: NotRequired[str]
56
+ r"""An identifier tied to the recipient data. This should be a unique value based on data your system contains,
57
+ so that both you and us know who we're referring to. It is a value you provide to us so that recipient management
58
+ is not required to send a first invoice to a recipient.
59
+ """
60
+ recipient: NotRequired[Nullable[SalesInvoiceRecipientTypedDict]]
61
+ lines: NotRequired[Nullable[List[SalesInvoiceLineItemTypedDict]]]
62
+ r"""Provide the line items for the invoice. Each line contains details such as a description of the item
63
+ ordered and its price.
64
+
65
+ All lines must have the same currency as the invoice.
66
+ """
67
+ discount: NotRequired[Nullable[SalesInvoiceDiscountTypedDict]]
68
+
69
+
70
+ class UpdateValuesSalesInvoice(BaseModel):
71
+ testmode: OptionalNullable[bool] = UNSET
72
+ r"""Most API credentials are specifically created for either live mode or test mode. For organization-level credentials
73
+ such as OAuth access tokens, you can enable test mode by setting `testmode` to `true`.
74
+
75
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
76
+ """
77
+
78
+ status: Optional[SalesInvoiceStatus] = None
79
+ r"""The status for the invoice to end up in.
80
+
81
+ A `draft` invoice is not paid or not sent and can be updated after creation. Setting it to `issued` sends it to
82
+ the recipient so they may then pay through our payment system. To skip our payment process, set this to `paid` to
83
+ mark it as paid. It can then subsequently be sent as well, same as with `issued`.
84
+
85
+ A status value that cannot be set but can be returned is `canceled`, for invoices which were
86
+ issued, but then canceled. Currently this can only be done for invoices created in the dashboard.
87
+
88
+ Dependent parameters:
89
+ - `paymentDetails` is required if invoice should be set directly to `paid`
90
+ - `customerId` and `mandateId` are required if a recurring payment should be used to set the invoice to `paid`
91
+ - `emailDetails` optional for `issued` and `paid` to send the invoice by email
92
+ """
93
+
94
+ memo: OptionalNullable[str] = UNSET
95
+ r"""A free-form memo you can set on the invoice, and will be shown on the invoice PDF."""
96
+
97
+ payment_term: Annotated[
98
+ OptionalNullable[SalesInvoicePaymentTerm], pydantic.Field(alias="paymentTerm")
99
+ ] = UNSET
100
+ r"""The payment term to be set on the invoice."""
101
+
102
+ payment_details: Annotated[
103
+ Optional[SalesInvoicePaymentDetails], pydantic.Field(alias="paymentDetails")
104
+ ] = None
105
+
106
+ email_details: Annotated[
107
+ OptionalNullable[SalesInvoiceEmailDetails], pydantic.Field(alias="emailDetails")
108
+ ] = UNSET
109
+
110
+ recipient_identifier: Annotated[
111
+ Optional[str], pydantic.Field(alias="recipientIdentifier")
112
+ ] = None
113
+ r"""An identifier tied to the recipient data. This should be a unique value based on data your system contains,
114
+ so that both you and us know who we're referring to. It is a value you provide to us so that recipient management
115
+ is not required to send a first invoice to a recipient.
116
+ """
117
+
118
+ recipient: OptionalNullable[SalesInvoiceRecipient] = UNSET
119
+
120
+ lines: OptionalNullable[List[SalesInvoiceLineItem]] = UNSET
121
+ r"""Provide the line items for the invoice. Each line contains details such as a description of the item
122
+ ordered and its price.
123
+
124
+ All lines must have the same currency as the invoice.
125
+ """
126
+
127
+ discount: OptionalNullable[SalesInvoiceDiscount] = UNSET
128
+
129
+ @model_serializer(mode="wrap")
130
+ def serialize_model(self, handler):
131
+ optional_fields = [
132
+ "testmode",
133
+ "status",
134
+ "memo",
135
+ "paymentTerm",
136
+ "paymentDetails",
137
+ "emailDetails",
138
+ "recipientIdentifier",
139
+ "recipient",
140
+ "lines",
141
+ "discount",
142
+ ]
143
+ nullable_fields = [
144
+ "testmode",
145
+ "memo",
146
+ "paymentTerm",
147
+ "emailDetails",
148
+ "recipient",
149
+ "lines",
150
+ "discount",
151
+ ]
152
+ null_default_fields = []
153
+
154
+ serialized = handler(self)
155
+
156
+ m = {}
157
+
158
+ for n, f in type(self).model_fields.items():
159
+ k = f.alias or n
160
+ val = serialized.get(k)
161
+ serialized.pop(k, None)
162
+
163
+ optional_nullable = k in optional_fields and k in nullable_fields
164
+ is_set = (
165
+ self.__pydantic_fields_set__.intersection({n})
166
+ or k in null_default_fields
167
+ ) # pylint: disable=no-member
168
+
169
+ if val is not None and val != UNSET_SENTINEL:
170
+ m[k] = val
171
+ elif val != UNSET_SENTINEL and (
172
+ not k in optional_fields or (optional_nullable and is_set)
173
+ ):
174
+ m[k] = val
175
+
176
+ return m
@@ -0,0 +1,83 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .webhook_event_types import WebhookEventTypes
5
+ from mollie.types import BaseModel
6
+ from mollie.utils import (
7
+ FieldMetadata,
8
+ HeaderMetadata,
9
+ PathParamMetadata,
10
+ RequestMetadata,
11
+ )
12
+ import pydantic
13
+ from typing import List, Optional, Union
14
+ from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
15
+
16
+
17
+ UpdateWebhookEventTypesTypedDict = TypeAliasType(
18
+ "UpdateWebhookEventTypesTypedDict",
19
+ Union[List[WebhookEventTypes], WebhookEventTypes],
20
+ )
21
+
22
+
23
+ UpdateWebhookEventTypes = TypeAliasType(
24
+ "UpdateWebhookEventTypes", Union[List[WebhookEventTypes], WebhookEventTypes]
25
+ )
26
+
27
+
28
+ class UpdateWebhookRequestBodyTypedDict(TypedDict):
29
+ name: NotRequired[str]
30
+ r"""A name that identifies the webhook."""
31
+ url: NotRequired[str]
32
+ r"""The URL Mollie will send the events to. This URL must be publicly accessible."""
33
+ event_types: NotRequired[UpdateWebhookEventTypesTypedDict]
34
+ testmode: NotRequired[bool]
35
+ r"""You can enable test mode by setting `testmode` to `true`.
36
+
37
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
38
+ """
39
+
40
+
41
+ class UpdateWebhookRequestBody(BaseModel):
42
+ name: Optional[str] = None
43
+ r"""A name that identifies the webhook."""
44
+
45
+ url: Optional[str] = None
46
+ r"""The URL Mollie will send the events to. This URL must be publicly accessible."""
47
+
48
+ event_types: Annotated[
49
+ Optional[UpdateWebhookEventTypes], pydantic.Field(alias="eventTypes")
50
+ ] = None
51
+
52
+ testmode: Optional[bool] = None
53
+ r"""You can enable test mode by setting `testmode` to `true`.
54
+
55
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
56
+ """
57
+
58
+
59
+ class UpdateWebhookRequestTypedDict(TypedDict):
60
+ id: str
61
+ r"""Provide the ID of the item you want to perform this operation on."""
62
+ idempotency_key: NotRequired[str]
63
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
64
+ request_body: NotRequired[UpdateWebhookRequestBodyTypedDict]
65
+
66
+
67
+ class UpdateWebhookRequest(BaseModel):
68
+ id: Annotated[
69
+ str, FieldMetadata(path=PathParamMetadata(style="simple", explode=False))
70
+ ]
71
+ r"""Provide the ID of the item you want to perform this operation on."""
72
+
73
+ idempotency_key: Annotated[
74
+ Optional[str],
75
+ pydantic.Field(alias="idempotency-key"),
76
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
77
+ ] = None
78
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
79
+
80
+ request_body: Annotated[
81
+ Optional[UpdateWebhookRequestBody],
82
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
83
+ ] = None
mollie/models/url.py ADDED
@@ -0,0 +1,24 @@
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 typing_extensions import TypedDict
6
+
7
+
8
+ class URLTypedDict(TypedDict):
9
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
10
+
11
+ href: str
12
+ r"""The actual URL string."""
13
+ type: str
14
+ r"""The content type of the page or endpoint the URL points to."""
15
+
16
+
17
+ class URL(BaseModel):
18
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
19
+
20
+ href: str
21
+ r"""The actual URL string."""
22
+
23
+ type: str
24
+ r"""The content type of the page or endpoint the URL points to."""