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,108 @@
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 Optional
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class ReleaseAuthorizationRequestBodyTypedDict(TypedDict):
18
+ profile_id: NotRequired[str]
19
+ r"""The identifier referring to the [profile](get-profile) this entity belongs to.
20
+
21
+ Most API credentials are linked to a single profile. In these cases the `profileId` can be omitted in the creation
22
+ request. For organization-level credentials such as OAuth access tokens however, the `profileId` parameter is
23
+ required.
24
+ """
25
+ testmode: NotRequired[Nullable[bool]]
26
+ r"""Whether to create the entity in test mode or live mode.
27
+
28
+ Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
29
+ omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
30
+ `testmode` to `true`.
31
+ """
32
+
33
+
34
+ class ReleaseAuthorizationRequestBody(BaseModel):
35
+ profile_id: Annotated[Optional[str], pydantic.Field(alias="profileId")] = None
36
+ r"""The identifier referring to the [profile](get-profile) this entity belongs to.
37
+
38
+ Most API credentials are linked to a single profile. In these cases the `profileId` can be omitted in the creation
39
+ request. For organization-level credentials such as OAuth access tokens however, the `profileId` parameter is
40
+ required.
41
+ """
42
+
43
+ testmode: OptionalNullable[bool] = UNSET
44
+ r"""Whether to create the entity in test mode or live mode.
45
+
46
+ Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
47
+ omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
48
+ `testmode` to `true`.
49
+ """
50
+
51
+ @model_serializer(mode="wrap")
52
+ def serialize_model(self, handler):
53
+ optional_fields = ["profileId", "testmode"]
54
+ nullable_fields = ["testmode"]
55
+ null_default_fields = []
56
+
57
+ serialized = handler(self)
58
+
59
+ m = {}
60
+
61
+ for n, f in type(self).model_fields.items():
62
+ k = f.alias or n
63
+ val = serialized.get(k)
64
+ serialized.pop(k, None)
65
+
66
+ optional_nullable = k in optional_fields and k in nullable_fields
67
+ is_set = (
68
+ self.__pydantic_fields_set__.intersection({n})
69
+ or k in null_default_fields
70
+ ) # pylint: disable=no-member
71
+
72
+ if val is not None and val != UNSET_SENTINEL:
73
+ m[k] = val
74
+ elif val != UNSET_SENTINEL and (
75
+ not k in optional_fields or (optional_nullable and is_set)
76
+ ):
77
+ m[k] = val
78
+
79
+ return m
80
+
81
+
82
+ class ReleaseAuthorizationRequestTypedDict(TypedDict):
83
+ payment_id: str
84
+ r"""Provide the ID of the related payment."""
85
+ idempotency_key: NotRequired[str]
86
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
87
+ request_body: NotRequired[ReleaseAuthorizationRequestBodyTypedDict]
88
+
89
+
90
+ class ReleaseAuthorizationRequest(BaseModel):
91
+ payment_id: Annotated[
92
+ str,
93
+ pydantic.Field(alias="paymentId"),
94
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
95
+ ]
96
+ r"""Provide the ID of the related payment."""
97
+
98
+ idempotency_key: Annotated[
99
+ Optional[str],
100
+ pydantic.Field(alias="idempotency-key"),
101
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
102
+ ] = None
103
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
104
+
105
+ request_body: Annotated[
106
+ Optional[ReleaseAuthorizationRequestBody],
107
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
108
+ ] = None
@@ -0,0 +1,76 @@
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 FieldMetadata, HeaderMetadata, RequestMetadata
6
+ import pydantic
7
+ from typing import Optional
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
+
10
+
11
+ class RequestApplePayPaymentSessionRequestBodyTypedDict(TypedDict):
12
+ validation_url: str
13
+ r"""The validationUrl you got from the
14
+ [ApplePayValidateMerchant event](https://developer.apple.com/documentation/apple_pay_on_the_web/applepayvalidatemerchantevent).
15
+
16
+ A list of all
17
+ [valid host names](https://developer.apple.com/documentation/apple_pay_on_the_web/setting_up_your_server)
18
+ for merchant validation is available. You should white list these in your application and reject any
19
+ `validationUrl`s that have a host name not in the list.
20
+ """
21
+ domain: str
22
+ r"""The domain of your web shop, that is visible in the browser's location bar. For example
23
+ `pay.myshop.com`.
24
+ """
25
+ profile_id: NotRequired[str]
26
+ r"""The identifier referring to the [profile](get-profile) this entity belongs to.
27
+
28
+ Most API credentials are linked to a single profile. In these cases the `profileId` can be omitted in the creation
29
+ request. For organization-level credentials such as OAuth access tokens however, the `profileId` parameter is
30
+ required.
31
+ """
32
+
33
+
34
+ class RequestApplePayPaymentSessionRequestBody(BaseModel):
35
+ validation_url: Annotated[str, pydantic.Field(alias="validationUrl")]
36
+ r"""The validationUrl you got from the
37
+ [ApplePayValidateMerchant event](https://developer.apple.com/documentation/apple_pay_on_the_web/applepayvalidatemerchantevent).
38
+
39
+ A list of all
40
+ [valid host names](https://developer.apple.com/documentation/apple_pay_on_the_web/setting_up_your_server)
41
+ for merchant validation is available. You should white list these in your application and reject any
42
+ `validationUrl`s that have a host name not in the list.
43
+ """
44
+
45
+ domain: str
46
+ r"""The domain of your web shop, that is visible in the browser's location bar. For example
47
+ `pay.myshop.com`.
48
+ """
49
+
50
+ profile_id: Annotated[Optional[str], pydantic.Field(alias="profileId")] = None
51
+ r"""The identifier referring to the [profile](get-profile) this entity belongs to.
52
+
53
+ Most API credentials are linked to a single profile. In these cases the `profileId` can be omitted in the creation
54
+ request. For organization-level credentials such as OAuth access tokens however, the `profileId` parameter is
55
+ required.
56
+ """
57
+
58
+
59
+ class RequestApplePayPaymentSessionRequestTypedDict(TypedDict):
60
+ idempotency_key: NotRequired[str]
61
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
62
+ request_body: NotRequired[RequestApplePayPaymentSessionRequestBodyTypedDict]
63
+
64
+
65
+ class RequestApplePayPaymentSessionRequest(BaseModel):
66
+ idempotency_key: Annotated[
67
+ Optional[str],
68
+ pydantic.Field(alias="idempotency-key"),
69
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
70
+ ] = None
71
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
72
+
73
+ request_body: Annotated[
74
+ Optional[RequestApplePayPaymentSessionRequestBody],
75
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
76
+ ] = None
@@ -0,0 +1,27 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ import httpx
4
+ from typing import Optional
5
+ from dataclasses import dataclass
6
+
7
+ from mollie.models import ClientError
8
+
9
+
10
+ @dataclass(unsafe_hash=True)
11
+ class ResponseValidationError(ClientError):
12
+ """Error raised when there is a type mismatch between the response data and the expected Pydantic model."""
13
+
14
+ def __init__(
15
+ self,
16
+ message: str,
17
+ raw_response: httpx.Response,
18
+ cause: Exception,
19
+ body: Optional[str] = None,
20
+ ):
21
+ message = f"{message}: {cause}"
22
+ super().__init__(message, raw_response, body)
23
+
24
+ @property
25
+ def cause(self):
26
+ """Normally the Pydantic ValidationError"""
27
+ return self.__cause__
@@ -0,0 +1,100 @@
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 Optional
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class RevokeMandateRequestBodyTypedDict(TypedDict):
18
+ testmode: NotRequired[Nullable[bool]]
19
+ r"""Most API credentials are specifically created for either live mode or test mode. For organization-level credentials
20
+ such as OAuth access tokens, 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 RevokeMandateRequestBody(BaseModel):
27
+ testmode: OptionalNullable[bool] = UNSET
28
+ r"""Most API credentials are specifically created for either live mode or test mode. For organization-level credentials
29
+ such as OAuth access tokens, you can enable test mode by setting `testmode` to `true`.
30
+
31
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
32
+ """
33
+
34
+ @model_serializer(mode="wrap")
35
+ def serialize_model(self, handler):
36
+ optional_fields = ["testmode"]
37
+ nullable_fields = ["testmode"]
38
+ null_default_fields = []
39
+
40
+ serialized = handler(self)
41
+
42
+ m = {}
43
+
44
+ for n, f in type(self).model_fields.items():
45
+ k = f.alias or n
46
+ val = serialized.get(k)
47
+ serialized.pop(k, None)
48
+
49
+ optional_nullable = k in optional_fields and k in nullable_fields
50
+ is_set = (
51
+ self.__pydantic_fields_set__.intersection({n})
52
+ or k in null_default_fields
53
+ ) # pylint: disable=no-member
54
+
55
+ if val is not None and val != UNSET_SENTINEL:
56
+ m[k] = val
57
+ elif val != UNSET_SENTINEL and (
58
+ not k in optional_fields or (optional_nullable and is_set)
59
+ ):
60
+ m[k] = val
61
+
62
+ return m
63
+
64
+
65
+ class RevokeMandateRequestTypedDict(TypedDict):
66
+ customer_id: str
67
+ r"""Provide the ID of the related customer."""
68
+ mandate_id: str
69
+ r"""Provide the ID of the related mandate."""
70
+ idempotency_key: NotRequired[str]
71
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
72
+ request_body: NotRequired[RevokeMandateRequestBodyTypedDict]
73
+
74
+
75
+ class RevokeMandateRequest(BaseModel):
76
+ customer_id: Annotated[
77
+ str,
78
+ pydantic.Field(alias="customerId"),
79
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
80
+ ]
81
+ r"""Provide the ID of the related customer."""
82
+
83
+ mandate_id: Annotated[
84
+ str,
85
+ pydantic.Field(alias="mandateId"),
86
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
87
+ ]
88
+ r"""Provide the ID of the related mandate."""
89
+
90
+ idempotency_key: Annotated[
91
+ Optional[str],
92
+ pydantic.Field(alias="idempotency-key"),
93
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
94
+ ] = None
95
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
96
+
97
+ request_body: Annotated[
98
+ Optional[RevokeMandateRequestBody],
99
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
100
+ ] = None
@@ -0,0 +1,97 @@
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 .route_destination_type_response import RouteDestinationTypeResponse
6
+ from .url import URL, URLTypedDict
7
+ from mollie.types import BaseModel
8
+ from mollie.utils import validate_open_enum
9
+ import pydantic
10
+ from pydantic.functional_validators import PlainValidator
11
+ from typing_extensions import Annotated, TypedDict
12
+
13
+
14
+ class RouteCreateResponseDestinationTypedDict(TypedDict):
15
+ r"""The destination of the route."""
16
+
17
+ type: RouteDestinationTypeResponse
18
+ r"""The type of destination. Currently only the destination type `organization` is supported."""
19
+ organization_id: str
20
+
21
+
22
+ class RouteCreateResponseDestination(BaseModel):
23
+ r"""The destination of the route."""
24
+
25
+ type: Annotated[
26
+ RouteDestinationTypeResponse, PlainValidator(validate_open_enum(False))
27
+ ]
28
+ r"""The type of destination. Currently only the destination type `organization` is supported."""
29
+
30
+ organization_id: Annotated[str, pydantic.Field(alias="organizationId")]
31
+
32
+
33
+ class RouteCreateResponseLinksTypedDict(TypedDict):
34
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
35
+
36
+ self_: URLTypedDict
37
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
38
+ documentation: URLTypedDict
39
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
40
+
41
+
42
+ class RouteCreateResponseLinks(BaseModel):
43
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
44
+
45
+ self_: Annotated[URL, pydantic.Field(alias="self")]
46
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
47
+
48
+ documentation: URL
49
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
50
+
51
+
52
+ class RouteCreateResponseTypedDict(TypedDict):
53
+ resource: str
54
+ r"""Indicates the response contains a route object. Will always contain the string `route` for this endpoint."""
55
+ id: str
56
+ r"""The identifier uniquely referring to this route. Mollie assigns this identifier at route creation time. Mollie
57
+ will always refer to the route by this ID. Example: `crt_dyARQ3JzCgtPDhU2Pbq3J`.
58
+ """
59
+ payment_id: str
60
+ r"""The unique identifier of the payment. For example: `tr_5B8cwPMGnU6qLbRvo7qEZo`.
61
+ The full payment object can be retrieved via the payment URL in the `_links` object.
62
+ """
63
+ amount: AmountTypedDict
64
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
65
+ description: str
66
+ r"""The description of the route. This description is shown in the reports."""
67
+ destination: RouteCreateResponseDestinationTypedDict
68
+ r"""The destination of the route."""
69
+ links: RouteCreateResponseLinksTypedDict
70
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
71
+
72
+
73
+ class RouteCreateResponse(BaseModel):
74
+ resource: str
75
+ r"""Indicates the response contains a route object. Will always contain the string `route` for this endpoint."""
76
+
77
+ id: str
78
+ r"""The identifier uniquely referring to this route. Mollie assigns this identifier at route creation time. Mollie
79
+ will always refer to the route by this ID. Example: `crt_dyARQ3JzCgtPDhU2Pbq3J`.
80
+ """
81
+
82
+ payment_id: Annotated[str, pydantic.Field(alias="paymentId")]
83
+ r"""The unique identifier of the payment. For example: `tr_5B8cwPMGnU6qLbRvo7qEZo`.
84
+ The full payment object can be retrieved via the payment URL in the `_links` object.
85
+ """
86
+
87
+ amount: Amount
88
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
89
+
90
+ description: str
91
+ r"""The description of the route. This description is shown in the reports."""
92
+
93
+ destination: RouteCreateResponseDestination
94
+ r"""The destination of the route."""
95
+
96
+ links: Annotated[RouteCreateResponseLinks, pydantic.Field(alias="_links")]
97
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
@@ -0,0 +1,10 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from enum import Enum
5
+
6
+
7
+ class RouteDestinationType(str, Enum):
8
+ r"""The type of destination. Currently only the destination type `organization` is supported."""
9
+
10
+ ORGANIZATION = "organization"
@@ -0,0 +1,11 @@
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 RouteDestinationTypeResponse(str, Enum, metaclass=utils.OpenEnumMeta):
9
+ r"""The type of destination. Currently only the destination type `organization` is supported."""
10
+
11
+ ORGANIZATION = "organization"
@@ -0,0 +1,21 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .sales_invoice_discount_type import SalesInvoiceDiscountType
5
+ from mollie.types import BaseModel
6
+ from typing_extensions import TypedDict
7
+
8
+
9
+ class SalesInvoiceDiscountTypedDict(TypedDict):
10
+ type: SalesInvoiceDiscountType
11
+ r"""The type of discount."""
12
+ value: str
13
+ r"""A string containing an exact monetary amount in the given currency, or the percentage."""
14
+
15
+
16
+ class SalesInvoiceDiscount(BaseModel):
17
+ type: SalesInvoiceDiscountType
18
+ r"""The type of discount."""
19
+
20
+ value: str
21
+ r"""A string containing an exact monetary amount in the given currency, or the percentage."""
@@ -0,0 +1,25 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .sales_invoice_discount_type_response import SalesInvoiceDiscountTypeResponse
5
+ from mollie.types import BaseModel
6
+ from mollie.utils import validate_open_enum
7
+ from pydantic.functional_validators import PlainValidator
8
+ from typing_extensions import Annotated, TypedDict
9
+
10
+
11
+ class SalesInvoiceDiscountResponseTypedDict(TypedDict):
12
+ type: SalesInvoiceDiscountTypeResponse
13
+ r"""The type of discount."""
14
+ value: str
15
+ r"""A string containing an exact monetary amount in the given currency, or the percentage."""
16
+
17
+
18
+ class SalesInvoiceDiscountResponse(BaseModel):
19
+ type: Annotated[
20
+ SalesInvoiceDiscountTypeResponse, PlainValidator(validate_open_enum(False))
21
+ ]
22
+ r"""The type of discount."""
23
+
24
+ value: str
25
+ r"""A string containing an exact monetary amount in the given currency, or the percentage."""
@@ -0,0 +1,11 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from enum import Enum
5
+
6
+
7
+ class SalesInvoiceDiscountType(str, Enum):
8
+ r"""The type of discount."""
9
+
10
+ AMOUNT = "amount"
11
+ PERCENTAGE = "percentage"
@@ -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 SalesInvoiceDiscountTypeResponse(str, Enum, metaclass=utils.OpenEnumMeta):
9
+ r"""The type of discount."""
10
+
11
+ AMOUNT = "amount"
12
+ PERCENTAGE = "percentage"
@@ -0,0 +1,20 @@
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 SalesInvoiceEmailDetailsTypedDict(TypedDict):
9
+ subject: str
10
+ r"""The subject of the email to be sent."""
11
+ body: str
12
+ r"""The body of the email to be sent. To add newline characters, you can use `\n`."""
13
+
14
+
15
+ class SalesInvoiceEmailDetails(BaseModel):
16
+ subject: str
17
+ r"""The subject of the email to be sent."""
18
+
19
+ body: str
20
+ r"""The body of the email to be sent. To add newline characters, you can use `\n`."""
@@ -0,0 +1,67 @@
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 .sales_invoice_discount import SalesInvoiceDiscount, SalesInvoiceDiscountTypedDict
6
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
7
+ import pydantic
8
+ from pydantic import model_serializer
9
+ from typing_extensions import Annotated, NotRequired, TypedDict
10
+
11
+
12
+ class SalesInvoiceLineItemTypedDict(TypedDict):
13
+ description: str
14
+ r"""A description of the line item. For example *LEGO 4440 Forest Police Station*."""
15
+ quantity: int
16
+ r"""The number of items."""
17
+ vat_rate: str
18
+ r"""The vat rate to be applied to this line item."""
19
+ unit_price: AmountTypedDict
20
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
21
+ discount: NotRequired[Nullable[SalesInvoiceDiscountTypedDict]]
22
+
23
+
24
+ class SalesInvoiceLineItem(BaseModel):
25
+ description: str
26
+ r"""A description of the line item. For example *LEGO 4440 Forest Police Station*."""
27
+
28
+ quantity: int
29
+ r"""The number of items."""
30
+
31
+ vat_rate: Annotated[str, pydantic.Field(alias="vatRate")]
32
+ r"""The vat rate to be applied to this line item."""
33
+
34
+ unit_price: Annotated[Amount, pydantic.Field(alias="unitPrice")]
35
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
36
+
37
+ discount: OptionalNullable[SalesInvoiceDiscount] = UNSET
38
+
39
+ @model_serializer(mode="wrap")
40
+ def serialize_model(self, handler):
41
+ optional_fields = ["discount"]
42
+ nullable_fields = ["discount"]
43
+ null_default_fields = []
44
+
45
+ serialized = handler(self)
46
+
47
+ m = {}
48
+
49
+ for n, f in type(self).model_fields.items():
50
+ k = f.alias or n
51
+ val = serialized.get(k)
52
+ serialized.pop(k, None)
53
+
54
+ optional_nullable = k in optional_fields and k in nullable_fields
55
+ is_set = (
56
+ self.__pydantic_fields_set__.intersection({n})
57
+ or k in null_default_fields
58
+ ) # pylint: disable=no-member
59
+
60
+ if val is not None and val != UNSET_SENTINEL:
61
+ m[k] = val
62
+ elif val != UNSET_SENTINEL and (
63
+ not k in optional_fields or (optional_nullable and is_set)
64
+ ):
65
+ m[k] = val
66
+
67
+ return m
@@ -0,0 +1,70 @@
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 .sales_invoice_discount_response import (
6
+ SalesInvoiceDiscountResponse,
7
+ SalesInvoiceDiscountResponseTypedDict,
8
+ )
9
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
10
+ import pydantic
11
+ from pydantic import model_serializer
12
+ from typing_extensions import Annotated, NotRequired, TypedDict
13
+
14
+
15
+ class SalesInvoiceLineItemResponseTypedDict(TypedDict):
16
+ description: str
17
+ r"""A description of the line item. For example *LEGO 4440 Forest Police Station*."""
18
+ quantity: int
19
+ r"""The number of items."""
20
+ vat_rate: str
21
+ r"""The vat rate to be applied to this line item."""
22
+ unit_price: AmountTypedDict
23
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
24
+ discount: NotRequired[Nullable[SalesInvoiceDiscountResponseTypedDict]]
25
+
26
+
27
+ class SalesInvoiceLineItemResponse(BaseModel):
28
+ description: str
29
+ r"""A description of the line item. For example *LEGO 4440 Forest Police Station*."""
30
+
31
+ quantity: int
32
+ r"""The number of items."""
33
+
34
+ vat_rate: Annotated[str, pydantic.Field(alias="vatRate")]
35
+ r"""The vat rate to be applied to this line item."""
36
+
37
+ unit_price: Annotated[Amount, pydantic.Field(alias="unitPrice")]
38
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
39
+
40
+ discount: OptionalNullable[SalesInvoiceDiscountResponse] = UNSET
41
+
42
+ @model_serializer(mode="wrap")
43
+ def serialize_model(self, handler):
44
+ optional_fields = ["discount"]
45
+ nullable_fields = ["discount"]
46
+ null_default_fields = []
47
+
48
+ serialized = handler(self)
49
+
50
+ m = {}
51
+
52
+ for n, f in type(self).model_fields.items():
53
+ k = f.alias or n
54
+ val = serialized.get(k)
55
+ serialized.pop(k, None)
56
+
57
+ optional_nullable = k in optional_fields and k in nullable_fields
58
+ is_set = (
59
+ self.__pydantic_fields_set__.intersection({n})
60
+ or k in null_default_fields
61
+ ) # pylint: disable=no-member
62
+
63
+ if val is not None and val != UNSET_SENTINEL:
64
+ m[k] = val
65
+ elif val != UNSET_SENTINEL and (
66
+ not k in optional_fields or (optional_nullable and is_set)
67
+ ):
68
+ m[k] = val
69
+
70
+ return m