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,247 @@
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 .url import URL, URLTypedDict
6
+ from .url_nullable import URLNullable, URLNullableTypedDict
7
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
8
+ import pydantic
9
+ from pydantic import model_serializer
10
+ from typing_extensions import Annotated, NotRequired, TypedDict
11
+
12
+
13
+ class EntityChargebackSettlementAmountTypedDict(TypedDict):
14
+ r"""This optional field will contain the approximate amount that will be deducted from your account balance, converted
15
+ to the currency your account is settled in.
16
+
17
+ The amount is a **negative** amount.
18
+
19
+ Since the field contains an estimated amount during chargeback processing, it may change over time. To retrieve
20
+ accurate settlement amounts we recommend using the [List balance transactions endpoint](list-balance-transactions)
21
+ instead.
22
+ """
23
+
24
+ currency: str
25
+ r"""A three-character ISO 4217 currency code."""
26
+ value: str
27
+ r"""A string containing an exact monetary amount in the given currency."""
28
+
29
+
30
+ class EntityChargebackSettlementAmount(BaseModel):
31
+ r"""This optional field will contain the approximate amount that will be deducted from your account balance, converted
32
+ to the currency your account is settled in.
33
+
34
+ The amount is a **negative** amount.
35
+
36
+ Since the field contains an estimated amount during chargeback processing, it may change over time. To retrieve
37
+ accurate settlement amounts we recommend using the [List balance transactions endpoint](list-balance-transactions)
38
+ instead.
39
+ """
40
+
41
+ currency: str
42
+ r"""A three-character ISO 4217 currency code."""
43
+
44
+ value: str
45
+ r"""A string containing an exact monetary amount in the given currency."""
46
+
47
+
48
+ class EntityChargebackReasonTypedDict(TypedDict):
49
+ r"""Reason for the chargeback as given by the bank. Only available for chargebacks of SEPA Direct Debit payments."""
50
+
51
+ code: str
52
+ r"""Technical code provided by the bank."""
53
+ description: str
54
+ r"""A more detailed human-friendly description."""
55
+
56
+
57
+ class EntityChargebackReason(BaseModel):
58
+ r"""Reason for the chargeback as given by the bank. Only available for chargebacks of SEPA Direct Debit payments."""
59
+
60
+ code: str
61
+ r"""Technical code provided by the bank."""
62
+
63
+ description: str
64
+ r"""A more detailed human-friendly description."""
65
+
66
+
67
+ class EntityChargebackLinksTypedDict(TypedDict):
68
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
69
+
70
+ self_: URLTypedDict
71
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
72
+ payment: URLTypedDict
73
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
74
+ documentation: URLTypedDict
75
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
76
+ settlement: NotRequired[Nullable[URLNullableTypedDict]]
77
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
78
+
79
+
80
+ class EntityChargebackLinks(BaseModel):
81
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
82
+
83
+ self_: Annotated[URL, pydantic.Field(alias="self")]
84
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
85
+
86
+ payment: URL
87
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
88
+
89
+ documentation: URL
90
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
91
+
92
+ settlement: OptionalNullable[URLNullable] = UNSET
93
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
94
+
95
+ @model_serializer(mode="wrap")
96
+ def serialize_model(self, handler):
97
+ optional_fields = ["settlement"]
98
+ nullable_fields = ["settlement"]
99
+ null_default_fields = []
100
+
101
+ serialized = handler(self)
102
+
103
+ m = {}
104
+
105
+ for n, f in type(self).model_fields.items():
106
+ k = f.alias or n
107
+ val = serialized.get(k)
108
+ serialized.pop(k, None)
109
+
110
+ optional_nullable = k in optional_fields and k in nullable_fields
111
+ is_set = (
112
+ self.__pydantic_fields_set__.intersection({n})
113
+ or k in null_default_fields
114
+ ) # pylint: disable=no-member
115
+
116
+ if val is not None and val != UNSET_SENTINEL:
117
+ m[k] = val
118
+ elif val != UNSET_SENTINEL and (
119
+ not k in optional_fields or (optional_nullable and is_set)
120
+ ):
121
+ m[k] = val
122
+
123
+ return m
124
+
125
+
126
+ class EntityChargebackTypedDict(TypedDict):
127
+ resource: str
128
+ r"""Indicates the response contains a chargeback object. Will always contain the string `chargeback` for this
129
+ endpoint.
130
+ """
131
+ id: str
132
+ r"""The identifier uniquely referring to this chargeback. Example: `chb_n9z0tp`."""
133
+ amount: AmountTypedDict
134
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
135
+ payment_id: str
136
+ r"""The unique identifier of the payment this chargeback was created for. For example: `tr_5B8cwPMGnU6qLbRvo7qEZo`.
137
+ The full payment object can be retrieved via the payment URL in the `_links` object.
138
+ """
139
+ created_at: str
140
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
141
+ links: EntityChargebackLinksTypedDict
142
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
143
+ settlement_amount: NotRequired[Nullable[EntityChargebackSettlementAmountTypedDict]]
144
+ r"""This optional field will contain the approximate amount that will be deducted from your account balance, converted
145
+ to the currency your account is settled in.
146
+
147
+ The amount is a **negative** amount.
148
+
149
+ Since the field contains an estimated amount during chargeback processing, it may change over time. To retrieve
150
+ accurate settlement amounts we recommend using the [List balance transactions endpoint](list-balance-transactions)
151
+ instead.
152
+ """
153
+ reason: NotRequired[Nullable[EntityChargebackReasonTypedDict]]
154
+ r"""Reason for the chargeback as given by the bank. Only available for chargebacks of SEPA Direct Debit payments."""
155
+ settlement_id: NotRequired[Nullable[str]]
156
+ r"""The identifier referring to the settlement this payment was settled with. For example, `stl_BkEjN2eBb`. This field
157
+ is omitted if the refund is not settled (yet).
158
+ """
159
+ reversed_at: NotRequired[Nullable[str]]
160
+ r"""The date and time the chargeback was reversed if applicable, in
161
+ [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
162
+ """
163
+
164
+
165
+ class EntityChargeback(BaseModel):
166
+ resource: str
167
+ r"""Indicates the response contains a chargeback object. Will always contain the string `chargeback` for this
168
+ endpoint.
169
+ """
170
+
171
+ id: str
172
+ r"""The identifier uniquely referring to this chargeback. Example: `chb_n9z0tp`."""
173
+
174
+ amount: Amount
175
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
176
+
177
+ payment_id: Annotated[str, pydantic.Field(alias="paymentId")]
178
+ r"""The unique identifier of the payment this chargeback was created for. For example: `tr_5B8cwPMGnU6qLbRvo7qEZo`.
179
+ The full payment object can be retrieved via the payment URL in the `_links` object.
180
+ """
181
+
182
+ created_at: Annotated[str, pydantic.Field(alias="createdAt")]
183
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
184
+
185
+ links: Annotated[EntityChargebackLinks, pydantic.Field(alias="_links")]
186
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
187
+
188
+ settlement_amount: Annotated[
189
+ OptionalNullable[EntityChargebackSettlementAmount],
190
+ pydantic.Field(alias="settlementAmount"),
191
+ ] = UNSET
192
+ r"""This optional field will contain the approximate amount that will be deducted from your account balance, converted
193
+ to the currency your account is settled in.
194
+
195
+ The amount is a **negative** amount.
196
+
197
+ Since the field contains an estimated amount during chargeback processing, it may change over time. To retrieve
198
+ accurate settlement amounts we recommend using the [List balance transactions endpoint](list-balance-transactions)
199
+ instead.
200
+ """
201
+
202
+ reason: OptionalNullable[EntityChargebackReason] = UNSET
203
+ r"""Reason for the chargeback as given by the bank. Only available for chargebacks of SEPA Direct Debit payments."""
204
+
205
+ settlement_id: Annotated[
206
+ OptionalNullable[str], pydantic.Field(alias="settlementId")
207
+ ] = UNSET
208
+ r"""The identifier referring to the settlement this payment was settled with. For example, `stl_BkEjN2eBb`. This field
209
+ is omitted if the refund is not settled (yet).
210
+ """
211
+
212
+ reversed_at: Annotated[
213
+ OptionalNullable[str], pydantic.Field(alias="reversedAt")
214
+ ] = UNSET
215
+ r"""The date and time the chargeback was reversed if applicable, in
216
+ [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
217
+ """
218
+
219
+ @model_serializer(mode="wrap")
220
+ def serialize_model(self, handler):
221
+ optional_fields = ["settlementAmount", "reason", "settlementId", "reversedAt"]
222
+ nullable_fields = ["settlementAmount", "reason", "settlementId", "reversedAt"]
223
+ null_default_fields = []
224
+
225
+ serialized = handler(self)
226
+
227
+ m = {}
228
+
229
+ for n, f in type(self).model_fields.items():
230
+ k = f.alias or n
231
+ val = serialized.get(k)
232
+ serialized.pop(k, None)
233
+
234
+ optional_nullable = k in optional_fields and k in nullable_fields
235
+ is_set = (
236
+ self.__pydantic_fields_set__.intersection({n})
237
+ or k in null_default_fields
238
+ ) # pylint: disable=no-member
239
+
240
+ if val is not None and val != UNSET_SENTINEL:
241
+ m[k] = val
242
+ elif val != UNSET_SENTINEL and (
243
+ not k in optional_fields or (optional_nullable and is_set)
244
+ ):
245
+ m[k] = val
246
+
247
+ return m
@@ -0,0 +1,86 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .locale_response import LocaleResponse
5
+ from .metadata import Metadata, MetadataTypedDict
6
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
7
+ from mollie.utils import validate_open_enum
8
+ from pydantic import model_serializer
9
+ from pydantic.functional_validators import PlainValidator
10
+ from typing_extensions import Annotated, NotRequired, TypedDict
11
+
12
+
13
+ class EntityCustomerTypedDict(TypedDict):
14
+ name: NotRequired[Nullable[str]]
15
+ r"""The full name of the customer."""
16
+ email: NotRequired[Nullable[str]]
17
+ r"""The email address of the customer."""
18
+ locale: NotRequired[Nullable[LocaleResponse]]
19
+ r"""Allows you to preset the language to be used."""
20
+ metadata: NotRequired[Nullable[MetadataTypedDict]]
21
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
22
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
23
+ """
24
+ testmode: NotRequired[Nullable[bool]]
25
+ r"""Whether to create the entity in test mode or live mode.
26
+
27
+ Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
28
+ omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
29
+ `testmode` to `true`.
30
+ """
31
+
32
+
33
+ class EntityCustomer(BaseModel):
34
+ name: OptionalNullable[str] = UNSET
35
+ r"""The full name of the customer."""
36
+
37
+ email: OptionalNullable[str] = UNSET
38
+ r"""The email address of the customer."""
39
+
40
+ locale: Annotated[
41
+ OptionalNullable[LocaleResponse], PlainValidator(validate_open_enum(False))
42
+ ] = UNSET
43
+ r"""Allows you to preset the language to be used."""
44
+
45
+ metadata: OptionalNullable[Metadata] = UNSET
46
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
47
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
48
+ """
49
+
50
+ testmode: OptionalNullable[bool] = UNSET
51
+ r"""Whether to create the entity in test mode or live mode.
52
+
53
+ Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
54
+ omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
55
+ `testmode` to `true`.
56
+ """
57
+
58
+ @model_serializer(mode="wrap")
59
+ def serialize_model(self, handler):
60
+ optional_fields = ["name", "email", "locale", "metadata", "testmode"]
61
+ nullable_fields = ["name", "email", "locale", "metadata", "testmode"]
62
+ null_default_fields = []
63
+
64
+ serialized = handler(self)
65
+
66
+ m = {}
67
+
68
+ for n, f in type(self).model_fields.items():
69
+ k = f.alias or n
70
+ val = serialized.get(k)
71
+ serialized.pop(k, None)
72
+
73
+ optional_nullable = k in optional_fields and k in nullable_fields
74
+ is_set = (
75
+ self.__pydantic_fields_set__.intersection({n})
76
+ or k in null_default_fields
77
+ ) # pylint: disable=no-member
78
+
79
+ if val is not None and val != UNSET_SENTINEL:
80
+ m[k] = val
81
+ elif val != UNSET_SENTINEL and (
82
+ not k in optional_fields or (optional_nullable and is_set)
83
+ ):
84
+ m[k] = val
85
+
86
+ return m
@@ -0,0 +1,46 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .url import URL, URLTypedDict
5
+ from mollie.types import BaseModel
6
+ import pydantic
7
+ from typing import Optional
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
+
10
+
11
+ class EntityEventLinksTypedDict(TypedDict):
12
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
13
+
14
+ url: NotRequired[URLTypedDict]
15
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
16
+
17
+
18
+ class EntityEventLinks(BaseModel):
19
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
20
+
21
+ url: Optional[URL] = None
22
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
23
+
24
+
25
+ class EntityEventTypedDict(TypedDict):
26
+ resource: str
27
+ type: int
28
+ created_at: str
29
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
30
+ message: str
31
+ links: NotRequired[EntityEventLinksTypedDict]
32
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
33
+
34
+
35
+ class EntityEvent(BaseModel):
36
+ resource: str
37
+
38
+ type: int
39
+
40
+ created_at: Annotated[str, pydantic.Field(alias="createdAt")]
41
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
42
+
43
+ message: str
44
+
45
+ links: Annotated[Optional[EntityEventLinks], pydantic.Field(alias="_links")] = None
46
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
@@ -0,0 +1,247 @@
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 .url import URL, URLTypedDict
6
+ from enum import Enum
7
+ from mollie import utils
8
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
9
+ from mollie.utils import validate_open_enum
10
+ import pydantic
11
+ from pydantic import model_serializer
12
+ from pydantic.functional_validators import PlainValidator
13
+ from typing import List, Optional
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class EntityInvoiceStatus(str, Enum, metaclass=utils.OpenEnumMeta):
18
+ r"""Status of the invoice."""
19
+
20
+ OPEN = "open"
21
+ PAID = "paid"
22
+ OVERDUE = "overdue"
23
+
24
+
25
+ class EntityInvoiceNetAmountTypedDict(TypedDict):
26
+ r"""Total amount of the invoice, excluding VAT."""
27
+
28
+ currency: str
29
+ r"""A three-character ISO 4217 currency code."""
30
+ value: str
31
+ r"""A string containing an exact monetary amount in the given currency."""
32
+
33
+
34
+ class EntityInvoiceNetAmount(BaseModel):
35
+ r"""Total amount of the invoice, excluding VAT."""
36
+
37
+ currency: str
38
+ r"""A three-character ISO 4217 currency code."""
39
+
40
+ value: str
41
+ r"""A string containing an exact monetary amount in the given currency."""
42
+
43
+
44
+ class EntityInvoiceVatAmountTypedDict(TypedDict):
45
+ r"""VAT amount of the invoice. Only applicable to merchants registered in the Netherlands. For EU merchants, VAT will
46
+ be shifted to the recipient (as per article 44 and 196 in the EU VAT Directive 2006/112). For merchants outside
47
+ the EU, no VAT will be charged.
48
+ """
49
+
50
+ currency: str
51
+ r"""A three-character ISO 4217 currency code."""
52
+ value: str
53
+ r"""A string containing an exact monetary amount in the given currency."""
54
+
55
+
56
+ class EntityInvoiceVatAmount(BaseModel):
57
+ r"""VAT amount of the invoice. Only applicable to merchants registered in the Netherlands. For EU merchants, VAT will
58
+ be shifted to the recipient (as per article 44 and 196 in the EU VAT Directive 2006/112). For merchants outside
59
+ the EU, no VAT will be charged.
60
+ """
61
+
62
+ currency: str
63
+ r"""A three-character ISO 4217 currency code."""
64
+
65
+ value: str
66
+ r"""A string containing an exact monetary amount in the given currency."""
67
+
68
+
69
+ class EntityInvoiceGrossAmountTypedDict(TypedDict):
70
+ r"""Total amount of the invoice, including VAT."""
71
+
72
+ currency: str
73
+ r"""A three-character ISO 4217 currency code."""
74
+ value: str
75
+ r"""A string containing an exact monetary amount in the given currency."""
76
+
77
+
78
+ class EntityInvoiceGrossAmount(BaseModel):
79
+ r"""Total amount of the invoice, including VAT."""
80
+
81
+ currency: str
82
+ r"""A three-character ISO 4217 currency code."""
83
+
84
+ value: str
85
+ r"""A string containing an exact monetary amount in the given currency."""
86
+
87
+
88
+ class EntityInvoiceLineTypedDict(TypedDict):
89
+ period: str
90
+ r"""The administrative period in `YYYY-MM` on which the line should be booked."""
91
+ description: str
92
+ r"""Description of the product."""
93
+ count: int
94
+ r"""Number of products invoiced. For example, the number of payments."""
95
+ vat_percentage: int
96
+ r"""VAT percentage rate that applies to this product."""
97
+ amount: AmountTypedDict
98
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
99
+
100
+
101
+ class EntityInvoiceLine(BaseModel):
102
+ period: str
103
+ r"""The administrative period in `YYYY-MM` on which the line should be booked."""
104
+
105
+ description: str
106
+ r"""Description of the product."""
107
+
108
+ count: int
109
+ r"""Number of products invoiced. For example, the number of payments."""
110
+
111
+ vat_percentage: Annotated[int, pydantic.Field(alias="vatPercentage")]
112
+ r"""VAT percentage rate that applies to this product."""
113
+
114
+ amount: Amount
115
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
116
+
117
+
118
+ class EntityInvoiceLinksTypedDict(TypedDict):
119
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
120
+
121
+ self_: NotRequired[URLTypedDict]
122
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
123
+ pdf: NotRequired[URLTypedDict]
124
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
125
+ documentation: NotRequired[URLTypedDict]
126
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
127
+
128
+
129
+ class EntityInvoiceLinks(BaseModel):
130
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
131
+
132
+ self_: Annotated[Optional[URL], pydantic.Field(alias="self")] = None
133
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
134
+
135
+ pdf: Optional[URL] = None
136
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
137
+
138
+ documentation: Optional[URL] = None
139
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
140
+
141
+
142
+ class EntityInvoiceTypedDict(TypedDict):
143
+ resource: str
144
+ r"""Indicates that the response contains an invoice object.
145
+ Will always contain the string `invoice` for this endpoint.
146
+ """
147
+ id: str
148
+ reference: str
149
+ r"""The reference number of the invoice. An example value would be: `2024.10000`."""
150
+ vat_number: Nullable[str]
151
+ r"""The VAT number to which the invoice was issued to, if applicable."""
152
+ status: EntityInvoiceStatus
153
+ net_amount: EntityInvoiceNetAmountTypedDict
154
+ r"""Total amount of the invoice, excluding VAT."""
155
+ vat_amount: EntityInvoiceVatAmountTypedDict
156
+ r"""VAT amount of the invoice. Only applicable to merchants registered in the Netherlands. For EU merchants, VAT will
157
+ be shifted to the recipient (as per article 44 and 196 in the EU VAT Directive 2006/112). For merchants outside
158
+ the EU, no VAT will be charged.
159
+ """
160
+ gross_amount: EntityInvoiceGrossAmountTypedDict
161
+ r"""Total amount of the invoice, including VAT."""
162
+ lines: List[EntityInvoiceLineTypedDict]
163
+ r"""The collection of products which make up the invoice."""
164
+ issued_at: str
165
+ r"""The invoice date in `YYYY-MM-DD` format."""
166
+ links: EntityInvoiceLinksTypedDict
167
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
168
+ paid_at: NotRequired[Nullable[str]]
169
+ r"""The date on which the invoice was paid, if applicable, in `YYYY-MM-DD` format."""
170
+ due_at: NotRequired[Nullable[str]]
171
+ r"""The date on which the invoice is due, if applicable, in `YYYY-MM-DD` format."""
172
+
173
+
174
+ class EntityInvoice(BaseModel):
175
+ resource: str
176
+ r"""Indicates that the response contains an invoice object.
177
+ Will always contain the string `invoice` for this endpoint.
178
+ """
179
+
180
+ id: str
181
+
182
+ reference: str
183
+ r"""The reference number of the invoice. An example value would be: `2024.10000`."""
184
+
185
+ vat_number: Annotated[Nullable[str], pydantic.Field(alias="vatNumber")]
186
+ r"""The VAT number to which the invoice was issued to, if applicable."""
187
+
188
+ status: Annotated[EntityInvoiceStatus, PlainValidator(validate_open_enum(False))]
189
+
190
+ net_amount: Annotated[EntityInvoiceNetAmount, pydantic.Field(alias="netAmount")]
191
+ r"""Total amount of the invoice, excluding VAT."""
192
+
193
+ vat_amount: Annotated[EntityInvoiceVatAmount, pydantic.Field(alias="vatAmount")]
194
+ r"""VAT amount of the invoice. Only applicable to merchants registered in the Netherlands. For EU merchants, VAT will
195
+ be shifted to the recipient (as per article 44 and 196 in the EU VAT Directive 2006/112). For merchants outside
196
+ the EU, no VAT will be charged.
197
+ """
198
+
199
+ gross_amount: Annotated[
200
+ EntityInvoiceGrossAmount, pydantic.Field(alias="grossAmount")
201
+ ]
202
+ r"""Total amount of the invoice, including VAT."""
203
+
204
+ lines: List[EntityInvoiceLine]
205
+ r"""The collection of products which make up the invoice."""
206
+
207
+ issued_at: Annotated[str, pydantic.Field(alias="issuedAt")]
208
+ r"""The invoice date in `YYYY-MM-DD` format."""
209
+
210
+ links: Annotated[EntityInvoiceLinks, pydantic.Field(alias="_links")]
211
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
212
+
213
+ paid_at: Annotated[OptionalNullable[str], pydantic.Field(alias="paidAt")] = UNSET
214
+ r"""The date on which the invoice was paid, if applicable, in `YYYY-MM-DD` format."""
215
+
216
+ due_at: Annotated[OptionalNullable[str], pydantic.Field(alias="dueAt")] = UNSET
217
+ r"""The date on which the invoice is due, if applicable, in `YYYY-MM-DD` format."""
218
+
219
+ @model_serializer(mode="wrap")
220
+ def serialize_model(self, handler):
221
+ optional_fields = ["paidAt", "dueAt"]
222
+ nullable_fields = ["vatNumber", "paidAt", "dueAt"]
223
+ null_default_fields = []
224
+
225
+ serialized = handler(self)
226
+
227
+ m = {}
228
+
229
+ for n, f in type(self).model_fields.items():
230
+ k = f.alias or n
231
+ val = serialized.get(k)
232
+ serialized.pop(k, None)
233
+
234
+ optional_nullable = k in optional_fields and k in nullable_fields
235
+ is_set = (
236
+ self.__pydantic_fields_set__.intersection({n})
237
+ or k in null_default_fields
238
+ ) # pylint: disable=no-member
239
+
240
+ if val is not None and val != UNSET_SENTINEL:
241
+ m[k] = val
242
+ elif val != UNSET_SENTINEL and (
243
+ not k in optional_fields or (optional_nullable and is_set)
244
+ ):
245
+ m[k] = val
246
+
247
+ return m