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,174 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .entity_balance_transaction import (
5
+ EntityBalanceTransaction,
6
+ EntityBalanceTransactionTypedDict,
7
+ )
8
+ from .list_links import ListLinks, ListLinksTypedDict
9
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
10
+ from mollie.utils import (
11
+ FieldMetadata,
12
+ HeaderMetadata,
13
+ PathParamMetadata,
14
+ QueryParamMetadata,
15
+ )
16
+ import pydantic
17
+ from pydantic import model_serializer
18
+ from typing import List, Optional
19
+ from typing_extensions import Annotated, NotRequired, TypedDict
20
+
21
+
22
+ class ListBalanceTransactionsGlobalsTypedDict(TypedDict):
23
+ testmode: NotRequired[bool]
24
+ r"""Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query
25
+ parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by
26
+ setting the `testmode` query parameter to `true`.
27
+
28
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
29
+ """
30
+
31
+
32
+ class ListBalanceTransactionsGlobals(BaseModel):
33
+ testmode: Annotated[
34
+ Optional[bool],
35
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
36
+ ] = None
37
+ r"""Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query
38
+ parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by
39
+ setting the `testmode` query parameter to `true`.
40
+
41
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
42
+ """
43
+
44
+
45
+ class ListBalanceTransactionsRequestTypedDict(TypedDict):
46
+ balance_id: str
47
+ r"""Provide the ID of the related balance."""
48
+ from_: NotRequired[Nullable[str]]
49
+ r"""Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the
50
+ result set.
51
+ """
52
+ limit: NotRequired[Nullable[int]]
53
+ r"""The maximum number of items to return. Defaults to 50 items."""
54
+ testmode: NotRequired[bool]
55
+ r"""You can enable test mode by setting the `testmode` query parameter to `true`.
56
+
57
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
58
+ """
59
+ idempotency_key: NotRequired[str]
60
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
61
+
62
+
63
+ class ListBalanceTransactionsRequest(BaseModel):
64
+ balance_id: Annotated[
65
+ str,
66
+ pydantic.Field(alias="balanceId"),
67
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
68
+ ]
69
+ r"""Provide the ID of the related balance."""
70
+
71
+ from_: Annotated[
72
+ OptionalNullable[str],
73
+ pydantic.Field(alias="from"),
74
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
75
+ ] = UNSET
76
+ r"""Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the
77
+ result set.
78
+ """
79
+
80
+ limit: Annotated[
81
+ OptionalNullable[int],
82
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
83
+ ] = UNSET
84
+ r"""The maximum number of items to return. Defaults to 50 items."""
85
+
86
+ testmode: Annotated[
87
+ Optional[bool],
88
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
89
+ ] = None
90
+ r"""You can enable test mode by setting the `testmode` query parameter to `true`.
91
+
92
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
93
+ """
94
+
95
+ idempotency_key: Annotated[
96
+ Optional[str],
97
+ pydantic.Field(alias="idempotency-key"),
98
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
99
+ ] = None
100
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
101
+
102
+ @model_serializer(mode="wrap")
103
+ def serialize_model(self, handler):
104
+ optional_fields = ["from", "limit", "testmode", "idempotency-key"]
105
+ nullable_fields = ["from", "limit"]
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 ListBalanceTransactionsEmbeddedTypedDict(TypedDict):
134
+ balance_transactions: List[EntityBalanceTransactionTypedDict]
135
+ r"""An array of balance transaction objects."""
136
+
137
+
138
+ class ListBalanceTransactionsEmbedded(BaseModel):
139
+ balance_transactions: List[EntityBalanceTransaction]
140
+ r"""An array of balance transaction objects."""
141
+
142
+
143
+ class ListBalanceTransactionsResponseTypedDict(TypedDict):
144
+ r"""A list of balance transaction objects."""
145
+
146
+ count: int
147
+ r"""The number of items in this result set. If more items are available, a `_links.next` URL will be present in the result
148
+ as well.
149
+
150
+ The maximum number of items per result set is controlled by the `limit` property provided in the request. The default
151
+ limit is 50 items.
152
+ """
153
+ embedded: ListBalanceTransactionsEmbeddedTypedDict
154
+ links: ListLinksTypedDict
155
+ r"""Links to help navigate through the lists of items. Every URL object will contain an `href` and a `type` field."""
156
+
157
+
158
+ class ListBalanceTransactionsResponse(BaseModel):
159
+ r"""A list of balance transaction objects."""
160
+
161
+ count: int
162
+ r"""The number of items in this result set. If more items are available, a `_links.next` URL will be present in the result
163
+ as well.
164
+
165
+ The maximum number of items per result set is controlled by the `limit` property provided in the request. The default
166
+ limit is 50 items.
167
+ """
168
+
169
+ embedded: Annotated[
170
+ ListBalanceTransactionsEmbedded, pydantic.Field(alias="_embedded")
171
+ ]
172
+
173
+ links: Annotated[ListLinks, pydantic.Field(alias="_links")]
174
+ r"""Links to help navigate through the lists of items. Every URL object will contain an `href` and a `type` field."""
@@ -0,0 +1,171 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .list_entity_balance import ListEntityBalance, ListEntityBalanceTypedDict
5
+ from .list_links import ListLinks, ListLinksTypedDict
6
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
7
+ from mollie.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata
8
+ import pydantic
9
+ from pydantic import model_serializer
10
+ from typing import List, Optional
11
+ from typing_extensions import Annotated, NotRequired, TypedDict
12
+
13
+
14
+ class ListBalancesGlobalsTypedDict(TypedDict):
15
+ testmode: NotRequired[bool]
16
+ r"""Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query
17
+ parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by
18
+ setting the `testmode` query parameter to `true`.
19
+
20
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
21
+ """
22
+
23
+
24
+ class ListBalancesGlobals(BaseModel):
25
+ testmode: Annotated[
26
+ Optional[bool],
27
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
28
+ ] = None
29
+ r"""Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query
30
+ parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by
31
+ setting the `testmode` query parameter to `true`.
32
+
33
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
34
+ """
35
+
36
+
37
+ class ListBalancesRequestTypedDict(TypedDict):
38
+ currency: NotRequired[Nullable[str]]
39
+ r"""Optionally only return balances with the given currency. For example: `EUR`."""
40
+ from_: NotRequired[Nullable[str]]
41
+ r"""Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the
42
+ result set.
43
+ """
44
+ limit: NotRequired[Nullable[int]]
45
+ r"""The maximum number of items to return. Defaults to 50 items."""
46
+ testmode: NotRequired[bool]
47
+ r"""You can enable test mode by setting the `testmode` query parameter to `true`.
48
+
49
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
50
+ """
51
+ idempotency_key: NotRequired[str]
52
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
53
+
54
+
55
+ class ListBalancesRequest(BaseModel):
56
+ currency: Annotated[
57
+ OptionalNullable[str],
58
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
59
+ ] = UNSET
60
+ r"""Optionally only return balances with the given currency. For example: `EUR`."""
61
+
62
+ from_: Annotated[
63
+ OptionalNullable[str],
64
+ pydantic.Field(alias="from"),
65
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
66
+ ] = UNSET
67
+ r"""Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the
68
+ result set.
69
+ """
70
+
71
+ limit: Annotated[
72
+ OptionalNullable[int],
73
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
74
+ ] = UNSET
75
+ r"""The maximum number of items to return. Defaults to 50 items."""
76
+
77
+ testmode: Annotated[
78
+ Optional[bool],
79
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
80
+ ] = None
81
+ r"""You can enable test mode by setting the `testmode` query parameter to `true`.
82
+
83
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
84
+ """
85
+
86
+ idempotency_key: Annotated[
87
+ Optional[str],
88
+ pydantic.Field(alias="idempotency-key"),
89
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
90
+ ] = None
91
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
92
+
93
+ @model_serializer(mode="wrap")
94
+ def serialize_model(self, handler):
95
+ optional_fields = ["currency", "from", "limit", "testmode", "idempotency-key"]
96
+ nullable_fields = ["currency", "from", "limit"]
97
+ null_default_fields = []
98
+
99
+ serialized = handler(self)
100
+
101
+ m = {}
102
+
103
+ for n, f in type(self).model_fields.items():
104
+ k = f.alias or n
105
+ val = serialized.get(k)
106
+ serialized.pop(k, None)
107
+
108
+ optional_nullable = k in optional_fields and k in nullable_fields
109
+ is_set = (
110
+ self.__pydantic_fields_set__.intersection({n})
111
+ or k in null_default_fields
112
+ ) # pylint: disable=no-member
113
+
114
+ if val is not None and val != UNSET_SENTINEL:
115
+ m[k] = val
116
+ elif val != UNSET_SENTINEL and (
117
+ not k in optional_fields or (optional_nullable and is_set)
118
+ ):
119
+ m[k] = val
120
+
121
+ return m
122
+
123
+
124
+ class ListBalancesEmbeddedTypedDict(TypedDict):
125
+ balances: List[ListEntityBalanceTypedDict]
126
+ r"""An array of balance objects. For a complete reference of
127
+ the balance object, refer to the [Get balance endpoint](get-balance) documentation.
128
+ """
129
+
130
+
131
+ class ListBalancesEmbedded(BaseModel):
132
+ balances: List[ListEntityBalance]
133
+ r"""An array of balance objects. For a complete reference of
134
+ the balance object, refer to the [Get balance endpoint](get-balance) documentation.
135
+ """
136
+
137
+
138
+ class ListBalancesResponseTypedDict(TypedDict):
139
+ r"""A list of balance objects. For a complete reference of the balance
140
+ object, refer to the [Get balance endpoint](get-balance) documentation.
141
+ """
142
+
143
+ count: int
144
+ r"""The number of items in this result set. If more items are available, a `_links.next` URL will be present in the result
145
+ as well.
146
+
147
+ The maximum number of items per result set is controlled by the `limit` property provided in the request. The default
148
+ limit is 50 items.
149
+ """
150
+ embedded: ListBalancesEmbeddedTypedDict
151
+ links: ListLinksTypedDict
152
+ r"""Links to help navigate through the lists of items. Every URL object will contain an `href` and a `type` field."""
153
+
154
+
155
+ class ListBalancesResponse(BaseModel):
156
+ r"""A list of balance objects. For a complete reference of the balance
157
+ object, refer to the [Get balance endpoint](get-balance) documentation.
158
+ """
159
+
160
+ count: int
161
+ r"""The number of items in this result set. If more items are available, a `_links.next` URL will be present in the result
162
+ as well.
163
+
164
+ The maximum number of items per result set is controlled by the `limit` property provided in the request. The default
165
+ limit is 50 items.
166
+ """
167
+
168
+ embedded: Annotated[ListBalancesEmbedded, pydantic.Field(alias="_embedded")]
169
+
170
+ links: Annotated[ListLinks, pydantic.Field(alias="_links")]
171
+ r"""Links to help navigate through the lists of items. Every URL object will contain an `href` and a `type` field."""
@@ -0,0 +1,62 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .entity_capability import EntityCapability, EntityCapabilityTypedDict
5
+ from .url import URL, URLTypedDict
6
+ from mollie.types import BaseModel
7
+ from mollie.utils import FieldMetadata, HeaderMetadata
8
+ import pydantic
9
+ from typing import List, Optional
10
+ from typing_extensions import Annotated, NotRequired, TypedDict
11
+
12
+
13
+ class ListCapabilitiesRequestTypedDict(TypedDict):
14
+ idempotency_key: NotRequired[str]
15
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
16
+
17
+
18
+ class ListCapabilitiesRequest(BaseModel):
19
+ idempotency_key: Annotated[
20
+ Optional[str],
21
+ pydantic.Field(alias="idempotency-key"),
22
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
23
+ ] = None
24
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
25
+
26
+
27
+ class ListCapabilitiesEmbeddedTypedDict(TypedDict):
28
+ capabilities: List[EntityCapabilityTypedDict]
29
+
30
+
31
+ class ListCapabilitiesEmbedded(BaseModel):
32
+ capabilities: List[EntityCapability]
33
+
34
+
35
+ class ListCapabilitiesLinksTypedDict(TypedDict):
36
+ documentation: NotRequired[URLTypedDict]
37
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
38
+
39
+
40
+ class ListCapabilitiesLinks(BaseModel):
41
+ documentation: Optional[URL] = None
42
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
43
+
44
+
45
+ class ListCapabilitiesResponseTypedDict(TypedDict):
46
+ r"""A list of capabilities."""
47
+
48
+ count: int
49
+ r"""The number of items in this result set."""
50
+ embedded: ListCapabilitiesEmbeddedTypedDict
51
+ links: ListCapabilitiesLinksTypedDict
52
+
53
+
54
+ class ListCapabilitiesResponse(BaseModel):
55
+ r"""A list of capabilities."""
56
+
57
+ count: int
58
+ r"""The number of items in this result set."""
59
+
60
+ embedded: Annotated[ListCapabilitiesEmbedded, pydantic.Field(alias="_embedded")]
61
+
62
+ links: Annotated[ListCapabilitiesLinks, pydantic.Field(alias="_links")]
@@ -0,0 +1,264 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .amount_nullable import AmountNullable, AmountNullableTypedDict
5
+ from .metadata import Metadata, MetadataTypedDict
6
+ from .mode import Mode
7
+ from .url import URL, URLTypedDict
8
+ from .url_nullable import URLNullable, URLNullableTypedDict
9
+ from enum import Enum
10
+ from mollie import utils
11
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
12
+ from mollie.utils import validate_open_enum
13
+ import pydantic
14
+ from pydantic import model_serializer
15
+ from pydantic.functional_validators import PlainValidator
16
+ from typing import Optional
17
+ from typing_extensions import Annotated, NotRequired, TypedDict
18
+
19
+
20
+ class ListCaptureResponseSettlementAmountTypedDict(TypedDict):
21
+ r"""This optional field will contain the approximate amount that will be settled to your account, converted to the
22
+ currency your account is settled in.
23
+
24
+ Since the field contains an estimated amount during capture processing, it may change over time. To retrieve
25
+ accurate settlement amounts we recommend using the [List balance transactions endpoint](list-balance-transactions)
26
+ instead.
27
+ """
28
+
29
+ currency: str
30
+ r"""A three-character ISO 4217 currency code."""
31
+ value: str
32
+ r"""A string containing an exact monetary amount in the given currency."""
33
+
34
+
35
+ class ListCaptureResponseSettlementAmount(BaseModel):
36
+ r"""This optional field will contain the approximate amount that will be settled to your account, converted to the
37
+ currency your account is settled in.
38
+
39
+ Since the field contains an estimated amount during capture processing, it may change over time. To retrieve
40
+ accurate settlement amounts we recommend using the [List balance transactions endpoint](list-balance-transactions)
41
+ instead.
42
+ """
43
+
44
+ currency: str
45
+ r"""A three-character ISO 4217 currency code."""
46
+
47
+ value: str
48
+ r"""A string containing an exact monetary amount in the given currency."""
49
+
50
+
51
+ class ListCaptureResponseStatus(str, Enum, metaclass=utils.OpenEnumMeta):
52
+ r"""The capture's status."""
53
+
54
+ PENDING = "pending"
55
+ SUCCEEDED = "succeeded"
56
+ FAILED = "failed"
57
+
58
+
59
+ class ListCaptureResponseLinksTypedDict(TypedDict):
60
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
61
+
62
+ self_: URLTypedDict
63
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
64
+ payment: URLTypedDict
65
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
66
+ settlement: NotRequired[Nullable[URLNullableTypedDict]]
67
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
68
+ shipment: NotRequired[Nullable[URLNullableTypedDict]]
69
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
70
+
71
+
72
+ class ListCaptureResponseLinks(BaseModel):
73
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
74
+
75
+ self_: Annotated[URL, pydantic.Field(alias="self")]
76
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
77
+
78
+ payment: URL
79
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
80
+
81
+ settlement: OptionalNullable[URLNullable] = UNSET
82
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
83
+
84
+ shipment: OptionalNullable[URLNullable] = UNSET
85
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
86
+
87
+ @model_serializer(mode="wrap")
88
+ def serialize_model(self, handler):
89
+ optional_fields = ["settlement", "shipment"]
90
+ nullable_fields = ["settlement", "shipment"]
91
+ null_default_fields = []
92
+
93
+ serialized = handler(self)
94
+
95
+ m = {}
96
+
97
+ for n, f in type(self).model_fields.items():
98
+ k = f.alias or n
99
+ val = serialized.get(k)
100
+ serialized.pop(k, None)
101
+
102
+ optional_nullable = k in optional_fields and k in nullable_fields
103
+ is_set = (
104
+ self.__pydantic_fields_set__.intersection({n})
105
+ or k in null_default_fields
106
+ ) # pylint: disable=no-member
107
+
108
+ if val is not None and val != UNSET_SENTINEL:
109
+ m[k] = val
110
+ elif val != UNSET_SENTINEL and (
111
+ not k in optional_fields or (optional_nullable and is_set)
112
+ ):
113
+ m[k] = val
114
+
115
+ return m
116
+
117
+
118
+ class ListCaptureResponseTypedDict(TypedDict):
119
+ resource: str
120
+ r"""Indicates the response contains a capture object. Will always contain the string `capture` for this endpoint."""
121
+ id: str
122
+ r"""The identifier uniquely referring to this capture. Example: `cpt_mNepDkEtco6ah3QNPUGYH`."""
123
+ mode: Mode
124
+ r"""Whether this entity was created in live mode or in test mode."""
125
+ amount: Nullable[AmountNullableTypedDict]
126
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
127
+ status: ListCaptureResponseStatus
128
+ payment_id: str
129
+ r"""The unique identifier of the payment this capture was created for. For example: `tr_5B8cwPMGnU6qLbRvo7qEZo`.
130
+ The full payment object can be retrieved via the payment URL in the `_links` object.
131
+ """
132
+ created_at: str
133
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
134
+ links: ListCaptureResponseLinksTypedDict
135
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
136
+ description: NotRequired[str]
137
+ r"""The description of the capture."""
138
+ settlement_amount: NotRequired[
139
+ Nullable[ListCaptureResponseSettlementAmountTypedDict]
140
+ ]
141
+ r"""This optional field will contain the approximate amount that will be settled to your account, converted to the
142
+ currency your account is settled in.
143
+
144
+ Since the field contains an estimated amount during capture processing, it may change over time. To retrieve
145
+ accurate settlement amounts we recommend using the [List balance transactions endpoint](list-balance-transactions)
146
+ instead.
147
+ """
148
+ metadata: NotRequired[Nullable[MetadataTypedDict]]
149
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
150
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
151
+ """
152
+ shipment_id: NotRequired[Nullable[str]]
153
+ r"""The unique identifier of the shipment that triggered the creation of this capture, if applicable. For example:
154
+ `shp_gNapNy9qQTUFZYnCrCF7J`.
155
+ """
156
+ settlement_id: NotRequired[Nullable[str]]
157
+ r"""The identifier referring to the settlement this capture was settled with. For example, `stl_BkEjN2eBb`. This field
158
+ is omitted if the capture is not settled (yet).
159
+ """
160
+
161
+
162
+ class ListCaptureResponse(BaseModel):
163
+ resource: str
164
+ r"""Indicates the response contains a capture object. Will always contain the string `capture` for this endpoint."""
165
+
166
+ id: str
167
+ r"""The identifier uniquely referring to this capture. Example: `cpt_mNepDkEtco6ah3QNPUGYH`."""
168
+
169
+ mode: Annotated[Mode, PlainValidator(validate_open_enum(False))]
170
+ r"""Whether this entity was created in live mode or in test mode."""
171
+
172
+ amount: Nullable[AmountNullable]
173
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
174
+
175
+ status: Annotated[
176
+ ListCaptureResponseStatus, PlainValidator(validate_open_enum(False))
177
+ ]
178
+
179
+ payment_id: Annotated[str, pydantic.Field(alias="paymentId")]
180
+ r"""The unique identifier of the payment this capture was created for. For example: `tr_5B8cwPMGnU6qLbRvo7qEZo`.
181
+ The full payment object can be retrieved via the payment URL in the `_links` object.
182
+ """
183
+
184
+ created_at: Annotated[str, pydantic.Field(alias="createdAt")]
185
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
186
+
187
+ links: Annotated[ListCaptureResponseLinks, pydantic.Field(alias="_links")]
188
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
189
+
190
+ description: Optional[str] = None
191
+ r"""The description of the capture."""
192
+
193
+ settlement_amount: Annotated[
194
+ OptionalNullable[ListCaptureResponseSettlementAmount],
195
+ pydantic.Field(alias="settlementAmount"),
196
+ ] = UNSET
197
+ r"""This optional field will contain the approximate amount that will be settled to your account, converted to the
198
+ currency your account is settled in.
199
+
200
+ Since the field contains an estimated amount during capture processing, it may change over time. To retrieve
201
+ accurate settlement amounts we recommend using the [List balance transactions endpoint](list-balance-transactions)
202
+ instead.
203
+ """
204
+
205
+ metadata: OptionalNullable[Metadata] = UNSET
206
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
207
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
208
+ """
209
+
210
+ shipment_id: Annotated[
211
+ OptionalNullable[str], pydantic.Field(alias="shipmentId")
212
+ ] = UNSET
213
+ r"""The unique identifier of the shipment that triggered the creation of this capture, if applicable. For example:
214
+ `shp_gNapNy9qQTUFZYnCrCF7J`.
215
+ """
216
+
217
+ settlement_id: Annotated[
218
+ OptionalNullable[str], pydantic.Field(alias="settlementId")
219
+ ] = UNSET
220
+ r"""The identifier referring to the settlement this capture was settled with. For example, `stl_BkEjN2eBb`. This field
221
+ is omitted if the capture is not settled (yet).
222
+ """
223
+
224
+ @model_serializer(mode="wrap")
225
+ def serialize_model(self, handler):
226
+ optional_fields = [
227
+ "description",
228
+ "settlementAmount",
229
+ "metadata",
230
+ "shipmentId",
231
+ "settlementId",
232
+ ]
233
+ nullable_fields = [
234
+ "amount",
235
+ "settlementAmount",
236
+ "metadata",
237
+ "shipmentId",
238
+ "settlementId",
239
+ ]
240
+ null_default_fields = []
241
+
242
+ serialized = handler(self)
243
+
244
+ m = {}
245
+
246
+ for n, f in type(self).model_fields.items():
247
+ k = f.alias or n
248
+ val = serialized.get(k)
249
+ serialized.pop(k, None)
250
+
251
+ optional_nullable = k in optional_fields and k in nullable_fields
252
+ is_set = (
253
+ self.__pydantic_fields_set__.intersection({n})
254
+ or k in null_default_fields
255
+ ) # pylint: disable=no-member
256
+
257
+ if val is not None and val != UNSET_SENTINEL:
258
+ m[k] = val
259
+ elif val != UNSET_SENTINEL and (
260
+ not k in optional_fields or (optional_nullable and is_set)
261
+ ):
262
+ m[k] = val
263
+
264
+ return m