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,264 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .mandate_details_card_label_response import MandateDetailsCardLabelResponse
5
+ from .mandate_method_response import MandateMethodResponse
6
+ from .mode import Mode
7
+ from .url import URL, URLTypedDict
8
+ from enum import Enum
9
+ from mollie import utils
10
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
11
+ from mollie.utils import validate_open_enum
12
+ import pydantic
13
+ from pydantic import model_serializer
14
+ from pydantic.functional_validators import PlainValidator
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class MandateResponseDetailsTypedDict(TypedDict):
19
+ consumer_name: NotRequired[Nullable[str]]
20
+ r"""The customer's name. Available for SEPA Direct Debit and PayPal mandates."""
21
+ consumer_account: NotRequired[Nullable[str]]
22
+ r"""The customer's IBAN or email address. Available for SEPA Direct Debit and PayPal mandates."""
23
+ consumer_bic: NotRequired[Nullable[str]]
24
+ r"""The BIC of the customer's bank. Available for SEPA Direct Debit mandates."""
25
+ card_holder: NotRequired[Nullable[str]]
26
+ r"""The card holder's name. Available for card mandates."""
27
+ card_number: NotRequired[Nullable[str]]
28
+ r"""The last four digits of the card number. Available for card mandates."""
29
+ card_expiry_date: NotRequired[Nullable[str]]
30
+ r"""The card's expiry date in `YYYY-MM-DD` format. Available for card mandates."""
31
+ card_label: NotRequired[Nullable[MandateDetailsCardLabelResponse]]
32
+ r"""The card's label. Available for card mandates, if the card label could be detected."""
33
+ card_fingerprint: NotRequired[Nullable[str]]
34
+ r"""Unique alphanumeric representation of this specific card. Available for card mandates. Can be used to identify
35
+ returning customers.
36
+ """
37
+
38
+
39
+ class MandateResponseDetails(BaseModel):
40
+ consumer_name: Annotated[
41
+ OptionalNullable[str], pydantic.Field(alias="consumerName")
42
+ ] = UNSET
43
+ r"""The customer's name. Available for SEPA Direct Debit and PayPal mandates."""
44
+
45
+ consumer_account: Annotated[
46
+ OptionalNullable[str], pydantic.Field(alias="consumerAccount")
47
+ ] = UNSET
48
+ r"""The customer's IBAN or email address. Available for SEPA Direct Debit and PayPal mandates."""
49
+
50
+ consumer_bic: Annotated[
51
+ OptionalNullable[str], pydantic.Field(alias="consumerBic")
52
+ ] = UNSET
53
+ r"""The BIC of the customer's bank. Available for SEPA Direct Debit mandates."""
54
+
55
+ card_holder: Annotated[
56
+ OptionalNullable[str], pydantic.Field(alias="cardHolder")
57
+ ] = UNSET
58
+ r"""The card holder's name. Available for card mandates."""
59
+
60
+ card_number: Annotated[
61
+ OptionalNullable[str], pydantic.Field(alias="cardNumber")
62
+ ] = UNSET
63
+ r"""The last four digits of the card number. Available for card mandates."""
64
+
65
+ card_expiry_date: Annotated[
66
+ OptionalNullable[str], pydantic.Field(alias="cardExpiryDate")
67
+ ] = UNSET
68
+ r"""The card's expiry date in `YYYY-MM-DD` format. Available for card mandates."""
69
+
70
+ card_label: Annotated[
71
+ Annotated[
72
+ OptionalNullable[MandateDetailsCardLabelResponse],
73
+ PlainValidator(validate_open_enum(False)),
74
+ ],
75
+ pydantic.Field(alias="cardLabel"),
76
+ ] = UNSET
77
+ r"""The card's label. Available for card mandates, if the card label could be detected."""
78
+
79
+ card_fingerprint: Annotated[
80
+ OptionalNullable[str], pydantic.Field(alias="cardFingerprint")
81
+ ] = UNSET
82
+ r"""Unique alphanumeric representation of this specific card. Available for card mandates. Can be used to identify
83
+ returning customers.
84
+ """
85
+
86
+ @model_serializer(mode="wrap")
87
+ def serialize_model(self, handler):
88
+ optional_fields = [
89
+ "consumerName",
90
+ "consumerAccount",
91
+ "consumerBic",
92
+ "cardHolder",
93
+ "cardNumber",
94
+ "cardExpiryDate",
95
+ "cardLabel",
96
+ "cardFingerprint",
97
+ ]
98
+ nullable_fields = [
99
+ "consumerName",
100
+ "consumerAccount",
101
+ "consumerBic",
102
+ "cardHolder",
103
+ "cardNumber",
104
+ "cardExpiryDate",
105
+ "cardLabel",
106
+ "cardFingerprint",
107
+ ]
108
+ null_default_fields = []
109
+
110
+ serialized = handler(self)
111
+
112
+ m = {}
113
+
114
+ for n, f in type(self).model_fields.items():
115
+ k = f.alias or n
116
+ val = serialized.get(k)
117
+ serialized.pop(k, None)
118
+
119
+ optional_nullable = k in optional_fields and k in nullable_fields
120
+ is_set = (
121
+ self.__pydantic_fields_set__.intersection({n})
122
+ or k in null_default_fields
123
+ ) # pylint: disable=no-member
124
+
125
+ if val is not None and val != UNSET_SENTINEL:
126
+ m[k] = val
127
+ elif val != UNSET_SENTINEL and (
128
+ not k in optional_fields or (optional_nullable and is_set)
129
+ ):
130
+ m[k] = val
131
+
132
+ return m
133
+
134
+
135
+ class MandateResponseStatus(str, Enum, metaclass=utils.OpenEnumMeta):
136
+ r"""The status of the mandate. A status can be `pending` for mandates when the first payment is not yet finalized, or
137
+ when we did not received the IBAN yet from the first payment.
138
+ """
139
+
140
+ VALID = "valid"
141
+ PENDING = "pending"
142
+ INVALID = "invalid"
143
+
144
+
145
+ class MandateResponseLinksTypedDict(TypedDict):
146
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
147
+
148
+ self_: URLTypedDict
149
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
150
+ customer: URLTypedDict
151
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
152
+ documentation: URLTypedDict
153
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
154
+
155
+
156
+ class MandateResponseLinks(BaseModel):
157
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
158
+
159
+ self_: Annotated[URL, pydantic.Field(alias="self")]
160
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
161
+
162
+ customer: URL
163
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
164
+
165
+ documentation: URL
166
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
167
+
168
+
169
+ class MandateResponseTypedDict(TypedDict):
170
+ resource: str
171
+ r"""Indicates the response contains a mandate object. Will always contain the string `mandate` for this endpoint."""
172
+ id: str
173
+ r"""The identifier uniquely referring to this mandate. Example: `mdt_pWUnw6pkBN`."""
174
+ mode: Mode
175
+ r"""Whether this entity was created in live mode or in test mode."""
176
+ method: MandateMethodResponse
177
+ r"""Payment method of the mandate.
178
+
179
+ SEPA Direct Debit and PayPal mandates can be created directly.
180
+ """
181
+ details: MandateResponseDetailsTypedDict
182
+ signature_date: Nullable[str]
183
+ r"""The date when the mandate was signed in `YYYY-MM-DD` format."""
184
+ mandate_reference: Nullable[str]
185
+ r"""A custom mandate reference. For SEPA Direct Debit, it is vital to provide a unique reference. Some banks will
186
+ decline Direct Debit payments if the mandate reference is not unique.
187
+ """
188
+ status: MandateResponseStatus
189
+ customer_id: str
190
+ r"""The identifier referring to the [customer](get-customer) this mandate was linked to."""
191
+ created_at: str
192
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
193
+ links: MandateResponseLinksTypedDict
194
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
195
+
196
+
197
+ class MandateResponse(BaseModel):
198
+ resource: str
199
+ r"""Indicates the response contains a mandate object. Will always contain the string `mandate` for this endpoint."""
200
+
201
+ id: str
202
+ r"""The identifier uniquely referring to this mandate. Example: `mdt_pWUnw6pkBN`."""
203
+
204
+ mode: Annotated[Mode, PlainValidator(validate_open_enum(False))]
205
+ r"""Whether this entity was created in live mode or in test mode."""
206
+
207
+ method: Annotated[MandateMethodResponse, PlainValidator(validate_open_enum(False))]
208
+ r"""Payment method of the mandate.
209
+
210
+ SEPA Direct Debit and PayPal mandates can be created directly.
211
+ """
212
+
213
+ details: MandateResponseDetails
214
+
215
+ signature_date: Annotated[Nullable[str], pydantic.Field(alias="signatureDate")]
216
+ r"""The date when the mandate was signed in `YYYY-MM-DD` format."""
217
+
218
+ mandate_reference: Annotated[
219
+ Nullable[str], pydantic.Field(alias="mandateReference")
220
+ ]
221
+ r"""A custom mandate reference. For SEPA Direct Debit, it is vital to provide a unique reference. Some banks will
222
+ decline Direct Debit payments if the mandate reference is not unique.
223
+ """
224
+
225
+ status: Annotated[MandateResponseStatus, PlainValidator(validate_open_enum(False))]
226
+
227
+ customer_id: Annotated[str, pydantic.Field(alias="customerId")]
228
+ r"""The identifier referring to the [customer](get-customer) this mandate was linked to."""
229
+
230
+ created_at: Annotated[str, pydantic.Field(alias="createdAt")]
231
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
232
+
233
+ links: Annotated[MandateResponseLinks, pydantic.Field(alias="_links")]
234
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
235
+
236
+ @model_serializer(mode="wrap")
237
+ def serialize_model(self, handler):
238
+ optional_fields = []
239
+ nullable_fields = ["signatureDate", "mandateReference"]
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
@@ -0,0 +1,19 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from typing import Any, Dict, List, Union
5
+ from typing_extensions import TypeAliasType
6
+
7
+
8
+ MetadataTypedDict = TypeAliasType(
9
+ "MetadataTypedDict", Union[str, Dict[str, Any], List[str]]
10
+ )
11
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
12
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
13
+ """
14
+
15
+
16
+ Metadata = TypeAliasType("Metadata", Union[str, Dict[str, Any], List[str]])
17
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
18
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
19
+ """
@@ -0,0 +1,50 @@
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 Method(str, Enum):
8
+ r"""Normally, a payment method screen is shown. However, when using this parameter, you can choose a specific payment
9
+ method and your customer will skip the selection screen and is sent directly to the chosen payment method. The
10
+ parameter enables you to fully integrate the payment method selection into your website.
11
+
12
+ You can also specify the methods in an array. By doing so we will still show the payment method selection screen
13
+ but will only show the methods specified in the array. For example, you can use this functionality to only show
14
+ payment methods from a specific country to your customer `['bancontact', 'belfius']`.
15
+ """
16
+
17
+ ALMA = "alma"
18
+ APPLEPAY = "applepay"
19
+ BACS = "bacs"
20
+ BANCOMATPAY = "bancomatpay"
21
+ BANCONTACT = "bancontact"
22
+ BANKTRANSFER = "banktransfer"
23
+ BELFIUS = "belfius"
24
+ BILLIE = "billie"
25
+ BIZUM = "bizum"
26
+ BLIK = "blik"
27
+ CREDITCARD = "creditcard"
28
+ DIRECTDEBIT = "directdebit"
29
+ EPS = "eps"
30
+ GIFTCARD = "giftcard"
31
+ IDEAL = "ideal"
32
+ IN3 = "in3"
33
+ KBC = "kbc"
34
+ KLARNA = "klarna"
35
+ MBWAY = "mbway"
36
+ MOBILEPAY = "mobilepay"
37
+ MULTIBANCO = "multibanco"
38
+ MYBANK = "mybank"
39
+ PAYBYBANK = "paybybank"
40
+ PAYPAL = "paypal"
41
+ PAYSAFECARD = "paysafecard"
42
+ POINTOFSALE = "pointofsale"
43
+ PRZELEWY24 = "przelewy24"
44
+ RIVERTY = "riverty"
45
+ SATISPAY = "satispay"
46
+ SWISH = "swish"
47
+ TRUSTLY = "trustly"
48
+ TWINT = "twint"
49
+ VIPPS = "vipps"
50
+ VOUCHER = "voucher"
@@ -0,0 +1,8 @@
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 MethodIncludeWalletsParameter(str, Enum):
8
+ APPLEPAY = "applepay"
@@ -0,0 +1,9 @@
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 MethodResourceParameter(str, Enum):
8
+ PAYMENTS = "payments"
9
+ ORDERS = "orders"
@@ -0,0 +1,59 @@
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 MethodResponse(str, Enum, metaclass=utils.OpenEnumMeta):
9
+ r"""Normally, a payment method screen is shown. However, when using this parameter, you can choose a specific payment
10
+ method and your customer will skip the selection screen and is sent directly to the chosen payment method. The
11
+ parameter enables you to fully integrate the payment method selection into your website.
12
+
13
+ You can also specify the methods in an array. By doing so we will still show the payment method selection screen
14
+ but will only show the methods specified in the array. For example, you can use this functionality to only show
15
+ payment methods from a specific country to your customer `['bancontact', 'belfius']`.
16
+ """
17
+
18
+ ALMA = "alma"
19
+ APPLEPAY = "applepay"
20
+ BACS = "bacs"
21
+ BANCOMATPAY = "bancomatpay"
22
+ BANCONTACT = "bancontact"
23
+ BANKTRANSFER = "banktransfer"
24
+ BELFIUS = "belfius"
25
+ BILLIE = "billie"
26
+ BIZUM = "bizum"
27
+ BLIK = "blik"
28
+ CREDITCARD = "creditcard"
29
+ DIRECTDEBIT = "directdebit"
30
+ EPS = "eps"
31
+ GIFTCARD = "giftcard"
32
+ IDEAL = "ideal"
33
+ IN3 = "in3"
34
+ KBC = "kbc"
35
+ KLARNA = "klarna"
36
+ MBWAY = "mbway"
37
+ MOBILEPAY = "mobilepay"
38
+ MULTIBANCO = "multibanco"
39
+ MYBANK = "mybank"
40
+ PAYBYBANK = "paybybank"
41
+ PAYPAL = "paypal"
42
+ PAYSAFECARD = "paysafecard"
43
+ POINTOFSALE = "pointofsale"
44
+ PRZELEWY24 = "przelewy24"
45
+ RIVERTY = "riverty"
46
+ SATISPAY = "satispay"
47
+ SWISH = "swish"
48
+ TRUSTLY = "trustly"
49
+ TWINT = "twint"
50
+ VIPPS = "vipps"
51
+ VOUCHER = "voucher"
52
+ # Deprecated, use 'klarna' instead
53
+ KLARNAPAYLATER = "klarnapaylater"
54
+ # Deprecated, use 'klarna' instead
55
+ KLARNAPAYNOW = "klarnapaynow"
56
+ # Deprecated, use 'klarna' instead
57
+ KLARNASLICEIT = "klarnasliceit"
58
+ # No longer available
59
+ PAYCONIQ = "payconiq"
@@ -0,0 +1,15 @@
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 MethodStatus(str, Enum, metaclass=utils.OpenEnumMeta):
9
+ r"""The payment method's activation status for this profile."""
10
+
11
+ ACTIVATED = "activated"
12
+ PENDING_BOARDING = "pending-boarding"
13
+ PENDING_REVIEW = "pending-review"
14
+ PENDING_EXTERNAL = "pending-external"
15
+ REJECTED = "rejected"
mollie/models/mode.py ADDED
@@ -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 Mode(str, Enum, metaclass=utils.OpenEnumMeta):
9
+ r"""Whether this entity was created in live mode or in test mode."""
10
+
11
+ LIVE = "live"
12
+ TEST = "test"
@@ -0,0 +1,17 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from dataclasses import dataclass
4
+
5
+
6
+ @dataclass(unsafe_hash=True)
7
+ class NoResponseError(Exception):
8
+ """Error raised when no HTTP response is received from the server."""
9
+
10
+ message: str
11
+
12
+ def __init__(self, message: str = "No response received"):
13
+ object.__setattr__(self, "message", message)
14
+ super().__init__(message)
15
+
16
+ def __str__(self):
17
+ return self.message
@@ -0,0 +1,16 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from enum import Enum
5
+
6
+
7
+ class OnboardingVatRegulation(str, Enum):
8
+ r"""Mollie applies Dutch VAT for merchants based in The Netherlands, British VAT for merchants based in
9
+ The United Kingdom, and shifted VAT for merchants in the European Union.
10
+
11
+ The field can be omitted for merchants residing in other countries.
12
+ """
13
+
14
+ DUTCH = "dutch"
15
+ BRITISH = "british"
16
+ SHIFTED = "shifted"
@@ -0,0 +1,17 @@
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 OrganizationVatRegulation(str, Enum, metaclass=utils.OpenEnumMeta):
9
+ r"""Mollie applies Dutch VAT for merchants based in The Netherlands, British VAT for merchants based in The United
10
+ Kingdom, and shifted VAT for merchants in the European Union.
11
+
12
+ The field is not present for merchants residing in other countries.
13
+ """
14
+
15
+ DUTCH = "dutch"
16
+ BRITISH = "british"
17
+ SHIFTED = "shifted"
@@ -0,0 +1,130 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from mollie.types import BaseModel
5
+ import pydantic
6
+ from typing import Optional
7
+ from typing_extensions import Annotated, NotRequired, TypedDict
8
+
9
+
10
+ class PaymentAddressTypedDict(TypedDict):
11
+ title: NotRequired[str]
12
+ r"""The title of the person, for example *Mr.* or *Mrs.*."""
13
+ given_name: NotRequired[str]
14
+ r"""The given name (first name) of the person should be at least two characters and cannot contain only
15
+ numbers.
16
+
17
+ Required for payment methods `billie`, `in3`, `klarna` and `riverty`.
18
+ """
19
+ family_name: NotRequired[str]
20
+ r"""The given family name (surname) of the person should be at least two characters and cannot contain only
21
+ numbers.
22
+
23
+ Required for payment methods `billie`, `in3`, `klarna` and `riverty`.
24
+ """
25
+ organization_name: NotRequired[str]
26
+ r"""The name of the organization, in case the addressee is an organization."""
27
+ street_and_number: NotRequired[str]
28
+ r"""A street and street number.
29
+
30
+ Required for payment methods `billie`, `in3`, `klarna` and `riverty`.
31
+ """
32
+ street_additional: NotRequired[str]
33
+ r"""Any additional addressing details, for example an apartment number."""
34
+ postal_code: NotRequired[str]
35
+ r"""A postal code. This field may be required if the provided country has a postal code system.
36
+
37
+ Required for payment methods `billie`, `in3`, `klarna` and `riverty`.
38
+ """
39
+ email: NotRequired[str]
40
+ r"""A valid e-mail address.
41
+
42
+ If you provide the email address for a `banktransfer` payment, we will automatically send the instructions
43
+ email upon payment creation. The language of the email will follow the locale parameter of the payment.
44
+
45
+ Required for payment methods `billie`, `in3`, `klarna` and `riverty`.
46
+ """
47
+ phone: NotRequired[str]
48
+ r"""If provided, it must be in the [E.164](https://en.wikipedia.org/wiki/E.164) format. For example: +31208202070."""
49
+ city: NotRequired[str]
50
+ r"""A city name.
51
+
52
+ Required for payment methods `billie`, `in3`, `klarna` and `riverty`.
53
+ """
54
+ region: NotRequired[str]
55
+ r"""The top-level administrative subdivision of the country. For example: Noord-Holland."""
56
+ country: NotRequired[str]
57
+ r"""A country code in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
58
+
59
+ Required for payment methods `billie`, `in3`, `klarna` and `riverty`.
60
+ """
61
+
62
+
63
+ class PaymentAddress(BaseModel):
64
+ title: Optional[str] = None
65
+ r"""The title of the person, for example *Mr.* or *Mrs.*."""
66
+
67
+ given_name: Annotated[Optional[str], pydantic.Field(alias="givenName")] = None
68
+ r"""The given name (first name) of the person should be at least two characters and cannot contain only
69
+ numbers.
70
+
71
+ Required for payment methods `billie`, `in3`, `klarna` and `riverty`.
72
+ """
73
+
74
+ family_name: Annotated[Optional[str], pydantic.Field(alias="familyName")] = None
75
+ r"""The given family name (surname) of the person should be at least two characters and cannot contain only
76
+ numbers.
77
+
78
+ Required for payment methods `billie`, `in3`, `klarna` and `riverty`.
79
+ """
80
+
81
+ organization_name: Annotated[
82
+ Optional[str], pydantic.Field(alias="organizationName")
83
+ ] = None
84
+ r"""The name of the organization, in case the addressee is an organization."""
85
+
86
+ street_and_number: Annotated[
87
+ Optional[str], pydantic.Field(alias="streetAndNumber")
88
+ ] = None
89
+ r"""A street and street number.
90
+
91
+ Required for payment methods `billie`, `in3`, `klarna` and `riverty`.
92
+ """
93
+
94
+ street_additional: Annotated[
95
+ Optional[str], pydantic.Field(alias="streetAdditional")
96
+ ] = None
97
+ r"""Any additional addressing details, for example an apartment number."""
98
+
99
+ postal_code: Annotated[Optional[str], pydantic.Field(alias="postalCode")] = None
100
+ r"""A postal code. This field may be required if the provided country has a postal code system.
101
+
102
+ Required for payment methods `billie`, `in3`, `klarna` and `riverty`.
103
+ """
104
+
105
+ email: Optional[str] = None
106
+ r"""A valid e-mail address.
107
+
108
+ If you provide the email address for a `banktransfer` payment, we will automatically send the instructions
109
+ email upon payment creation. The language of the email will follow the locale parameter of the payment.
110
+
111
+ Required for payment methods `billie`, `in3`, `klarna` and `riverty`.
112
+ """
113
+
114
+ phone: Optional[str] = None
115
+ r"""If provided, it must be in the [E.164](https://en.wikipedia.org/wiki/E.164) format. For example: +31208202070."""
116
+
117
+ city: Optional[str] = None
118
+ r"""A city name.
119
+
120
+ Required for payment methods `billie`, `in3`, `klarna` and `riverty`.
121
+ """
122
+
123
+ region: Optional[str] = None
124
+ r"""The top-level administrative subdivision of the country. For example: Noord-Holland."""
125
+
126
+ country: Optional[str] = None
127
+ r"""A country code in [ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2) format.
128
+
129
+ Required for payment methods `billie`, `in3`, `klarna` and `riverty`.
130
+ """
@@ -0,0 +1,43 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .entity_route import EntityRoute, EntityRouteTypedDict
5
+ from mollie.types import BaseModel
6
+ from mollie.utils import (
7
+ FieldMetadata,
8
+ HeaderMetadata,
9
+ PathParamMetadata,
10
+ RequestMetadata,
11
+ )
12
+ import pydantic
13
+ from typing import Optional
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class PaymentCreateRouteRequestTypedDict(TypedDict):
18
+ payment_id: str
19
+ r"""Provide the ID of the related payment."""
20
+ idempotency_key: NotRequired[str]
21
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
22
+ entity_route: NotRequired[EntityRouteTypedDict]
23
+
24
+
25
+ class PaymentCreateRouteRequest(BaseModel):
26
+ payment_id: Annotated[
27
+ str,
28
+ pydantic.Field(alias="paymentId"),
29
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
30
+ ]
31
+ r"""Provide the ID of the related payment."""
32
+
33
+ idempotency_key: Annotated[
34
+ Optional[str],
35
+ pydantic.Field(alias="idempotency-key"),
36
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
37
+ ] = None
38
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
39
+
40
+ entity_route: Annotated[
41
+ Optional[EntityRoute],
42
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
43
+ ] = None