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,160 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .mode import Mode
5
+ from .terminal_brand import TerminalBrand
6
+ from .terminal_model import TerminalModel
7
+ from .url import URL, URLTypedDict
8
+ from enum import Enum
9
+ from mollie import utils
10
+ from mollie.types import BaseModel, Nullable, 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, TypedDict
16
+
17
+
18
+ class EntityTerminalStatus(str, Enum, metaclass=utils.OpenEnumMeta):
19
+ r"""The status of the terminal."""
20
+
21
+ PENDING = "pending"
22
+ ACTIVE = "active"
23
+ INACTIVE = "inactive"
24
+
25
+
26
+ class EntityTerminalLinksTypedDict(TypedDict):
27
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
28
+
29
+ self_: URLTypedDict
30
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
31
+ documentation: URLTypedDict
32
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
33
+
34
+
35
+ class EntityTerminalLinks(BaseModel):
36
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
37
+
38
+ self_: Annotated[URL, pydantic.Field(alias="self")]
39
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
40
+
41
+ documentation: URL
42
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
43
+
44
+
45
+ class EntityTerminalTypedDict(TypedDict):
46
+ resource: str
47
+ r"""Indicates the response contains a terminal object. Will always contain the string `terminal` for this endpoint."""
48
+ id: str
49
+ r"""The identifier uniquely referring to this terminal. Example: `term_7MgL4wea46qkRcoTZjWEH`."""
50
+ mode: Mode
51
+ r"""Whether this entity was created in live mode or in test mode."""
52
+ description: str
53
+ r"""A short description of the terminal. The description can be used as an identifier for the terminal. Currently, the
54
+ description is set when the terminal is initially configured. It will be visible in the Mollie Dashboard, and it
55
+ may be visible on the device itself depending on the device.
56
+ """
57
+ status: EntityTerminalStatus
58
+ brand: Nullable[TerminalBrand]
59
+ r"""The brand of the terminal."""
60
+ model: Nullable[TerminalModel]
61
+ r"""The model of the terminal. For example for a PAX A920, this field's value will be `A920`."""
62
+ serial_number: Nullable[str]
63
+ r"""The serial number of the terminal. The serial number is provided at terminal creation time."""
64
+ currency: str
65
+ r"""The currency configured on the terminal, in ISO 4217 format. Currently most of our terminals are bound to a
66
+ specific currency, chosen during setup.
67
+ """
68
+ profile_id: str
69
+ r"""The identifier referring to the [profile](get-profile) this entity belongs to.
70
+
71
+ Most API credentials are linked to a single profile. In these cases the `profileId` can be omitted in the creation
72
+ request. For organization-level credentials such as OAuth access tokens however, the `profileId` parameter is
73
+ required.
74
+ """
75
+ created_at: str
76
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
77
+ updated_at: str
78
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
79
+ links: EntityTerminalLinksTypedDict
80
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
81
+
82
+
83
+ class EntityTerminal(BaseModel):
84
+ resource: str
85
+ r"""Indicates the response contains a terminal object. Will always contain the string `terminal` for this endpoint."""
86
+
87
+ id: str
88
+ r"""The identifier uniquely referring to this terminal. Example: `term_7MgL4wea46qkRcoTZjWEH`."""
89
+
90
+ mode: Annotated[Mode, PlainValidator(validate_open_enum(False))]
91
+ r"""Whether this entity was created in live mode or in test mode."""
92
+
93
+ description: str
94
+ r"""A short description of the terminal. The description can be used as an identifier for the terminal. Currently, the
95
+ description is set when the terminal is initially configured. It will be visible in the Mollie Dashboard, and it
96
+ may be visible on the device itself depending on the device.
97
+ """
98
+
99
+ status: Annotated[EntityTerminalStatus, PlainValidator(validate_open_enum(False))]
100
+
101
+ brand: Annotated[Nullable[TerminalBrand], PlainValidator(validate_open_enum(False))]
102
+ r"""The brand of the terminal."""
103
+
104
+ model: Annotated[Nullable[TerminalModel], PlainValidator(validate_open_enum(False))]
105
+ r"""The model of the terminal. For example for a PAX A920, this field's value will be `A920`."""
106
+
107
+ serial_number: Annotated[Nullable[str], pydantic.Field(alias="serialNumber")]
108
+ r"""The serial number of the terminal. The serial number is provided at terminal creation time."""
109
+
110
+ currency: str
111
+ r"""The currency configured on the terminal, in ISO 4217 format. Currently most of our terminals are bound to a
112
+ specific currency, chosen during setup.
113
+ """
114
+
115
+ profile_id: Annotated[str, pydantic.Field(alias="profileId")]
116
+ r"""The identifier referring to the [profile](get-profile) this entity belongs to.
117
+
118
+ Most API credentials are linked to a single profile. In these cases the `profileId` can be omitted in the creation
119
+ request. For organization-level credentials such as OAuth access tokens however, the `profileId` parameter is
120
+ required.
121
+ """
122
+
123
+ created_at: Annotated[str, pydantic.Field(alias="createdAt")]
124
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
125
+
126
+ updated_at: Annotated[str, pydantic.Field(alias="updatedAt")]
127
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
128
+
129
+ links: Annotated[EntityTerminalLinks, pydantic.Field(alias="_links")]
130
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
131
+
132
+ @model_serializer(mode="wrap")
133
+ def serialize_model(self, handler):
134
+ optional_fields = []
135
+ nullable_fields = ["brand", "model", "serialNumber"]
136
+ null_default_fields = []
137
+
138
+ serialized = handler(self)
139
+
140
+ m = {}
141
+
142
+ for n, f in type(self).model_fields.items():
143
+ k = f.alias or n
144
+ val = serialized.get(k)
145
+ serialized.pop(k, None)
146
+
147
+ optional_nullable = k in optional_fields and k in nullable_fields
148
+ is_set = (
149
+ self.__pydantic_fields_set__.intersection({n})
150
+ or k in null_default_fields
151
+ ) # pylint: disable=no-member
152
+
153
+ if val is not None and val != UNSET_SENTINEL:
154
+ m[k] = val
155
+ elif val != UNSET_SENTINEL and (
156
+ not k in optional_fields or (optional_nullable and is_set)
157
+ ):
158
+ m[k] = val
159
+
160
+ return m
@@ -0,0 +1,122 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .mode import Mode
5
+ from .url import URL, URLTypedDict
6
+ from .webhook_event_types import WebhookEventTypes
7
+ from .webhook_status import WebhookStatus
8
+ from mollie.types import BaseModel, Nullable, 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
14
+ from typing_extensions import Annotated, TypedDict
15
+
16
+
17
+ class EntityWebhookLinksTypedDict(TypedDict):
18
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
19
+
20
+ self_: URLTypedDict
21
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
22
+ documentation: URLTypedDict
23
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
24
+
25
+
26
+ class EntityWebhookLinks(BaseModel):
27
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
28
+
29
+ self_: Annotated[URL, pydantic.Field(alias="self")]
30
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
31
+
32
+ documentation: URL
33
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
34
+
35
+
36
+ class EntityWebhookTypedDict(TypedDict):
37
+ resource: str
38
+ r"""Indicates the response contains a webhook subscription object.
39
+ Will always contain the string `webhook` for this endpoint.
40
+ """
41
+ id: str
42
+ r"""The identifier uniquely referring to this subscription."""
43
+ url: str
44
+ r"""The subscription's events destination."""
45
+ profile_id: Nullable[str]
46
+ r"""The identifier uniquely referring to the profile that created the subscription."""
47
+ created_at: str
48
+ r"""The subscription's date time of creation."""
49
+ name: str
50
+ r"""The subscription's name."""
51
+ event_types: List[WebhookEventTypes]
52
+ r"""The events types that are subscribed."""
53
+ status: WebhookStatus
54
+ r"""The subscription's current status."""
55
+ mode: Mode
56
+ r"""Whether this entity was created in live mode or in test mode."""
57
+ links: EntityWebhookLinksTypedDict
58
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
59
+
60
+
61
+ class EntityWebhook(BaseModel):
62
+ resource: str
63
+ r"""Indicates the response contains a webhook subscription object.
64
+ Will always contain the string `webhook` for this endpoint.
65
+ """
66
+
67
+ id: str
68
+ r"""The identifier uniquely referring to this subscription."""
69
+
70
+ url: str
71
+ r"""The subscription's events destination."""
72
+
73
+ profile_id: Annotated[Nullable[str], pydantic.Field(alias="profileId")]
74
+ r"""The identifier uniquely referring to the profile that created the subscription."""
75
+
76
+ created_at: Annotated[str, pydantic.Field(alias="createdAt")]
77
+ r"""The subscription's date time of creation."""
78
+
79
+ name: str
80
+ r"""The subscription's name."""
81
+
82
+ event_types: Annotated[List[WebhookEventTypes], pydantic.Field(alias="eventTypes")]
83
+ r"""The events types that are subscribed."""
84
+
85
+ status: Annotated[WebhookStatus, PlainValidator(validate_open_enum(False))]
86
+ r"""The subscription's current status."""
87
+
88
+ mode: Annotated[Mode, PlainValidator(validate_open_enum(False))]
89
+ r"""Whether this entity was created in live mode or in test mode."""
90
+
91
+ links: Annotated[EntityWebhookLinks, pydantic.Field(alias="_links")]
92
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
93
+
94
+ @model_serializer(mode="wrap")
95
+ def serialize_model(self, handler):
96
+ optional_fields = []
97
+ nullable_fields = ["profileId"]
98
+ null_default_fields = []
99
+
100
+ serialized = handler(self)
101
+
102
+ m = {}
103
+
104
+ for n, f in type(self).model_fields.items():
105
+ k = f.alias or n
106
+ val = serialized.get(k)
107
+ serialized.pop(k, None)
108
+
109
+ optional_nullable = k in optional_fields and k in nullable_fields
110
+ is_set = (
111
+ self.__pydantic_fields_set__.intersection({n})
112
+ or k in null_default_fields
113
+ ) # pylint: disable=no-member
114
+
115
+ if val is not None and val != UNSET_SENTINEL:
116
+ m[k] = val
117
+ elif val != UNSET_SENTINEL and (
118
+ not k in optional_fields or (optional_nullable and is_set)
119
+ ):
120
+ m[k] = val
121
+
122
+ return m
@@ -0,0 +1,149 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .payment_link_response import PaymentLinkResponse, PaymentLinkResponseTypedDict
5
+ from .profile_response import ProfileResponse, ProfileResponseTypedDict
6
+ from .url import URL, URLTypedDict
7
+ from enum import Enum
8
+ from mollie import utils
9
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
10
+ from mollie.utils import validate_open_enum
11
+ import pydantic
12
+ from pydantic import model_serializer
13
+ from pydantic.functional_validators import PlainValidator
14
+ from typing import Optional, Union
15
+ from typing_extensions import Annotated, NotRequired, TypeAliasType, TypedDict
16
+
17
+
18
+ class EntityWebhookEventWebhookEventTypes(str, Enum, metaclass=utils.OpenEnumMeta):
19
+ r"""The list of events to enable for this webhook. You may specify `'*'` to add all events, except those
20
+ that require explicit selection.
21
+ """
22
+
23
+ PAYMENT_LINK_PAID = "payment-link.paid"
24
+ BALANCE_TRANSACTION_CREATED = "balance-transaction.created"
25
+ SALES_INVOICE_CREATED = "sales-invoice.created"
26
+ SALES_INVOICE_ISSUED = "sales-invoice.issued"
27
+ SALES_INVOICE_CANCELED = "sales-invoice.canceled"
28
+ SALES_INVOICE_PAID = "sales-invoice.paid"
29
+ WILDCARD_ = "*"
30
+
31
+
32
+ EntityTypedDict = TypeAliasType(
33
+ "EntityTypedDict", Union[ProfileResponseTypedDict, PaymentLinkResponseTypedDict]
34
+ )
35
+
36
+
37
+ Entity = TypeAliasType("Entity", Union[ProfileResponse, PaymentLinkResponse])
38
+
39
+
40
+ class EmbeddedTypedDict(TypedDict):
41
+ r"""Full payload of the event."""
42
+
43
+ entity: NotRequired[EntityTypedDict]
44
+
45
+
46
+ class Embedded(BaseModel):
47
+ r"""Full payload of the event."""
48
+
49
+ entity: Optional[Entity] = None
50
+
51
+
52
+ class EntityWebhookEventLinksTypedDict(TypedDict):
53
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
54
+
55
+ self_: URLTypedDict
56
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
57
+ documentation: URLTypedDict
58
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
59
+ entity: NotRequired[URLTypedDict]
60
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
61
+
62
+
63
+ class EntityWebhookEventLinks(BaseModel):
64
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
65
+
66
+ self_: Annotated[URL, pydantic.Field(alias="self")]
67
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
68
+
69
+ documentation: URL
70
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
71
+
72
+ entity: Optional[URL] = None
73
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
74
+
75
+
76
+ class EntityWebhookEventTypedDict(TypedDict):
77
+ resource: str
78
+ r"""Indicates the response contains a webhook event object. Will always contain the string `event` for this endpoint."""
79
+ id: str
80
+ r"""The identifier uniquely referring to this event."""
81
+ webhook_event_types: EntityWebhookEventWebhookEventTypes
82
+ entity_id: str
83
+ r"""The entity token that triggered the event"""
84
+ created_at: str
85
+ r"""The event's date time of creation."""
86
+ links: EntityWebhookEventLinksTypedDict
87
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
88
+ embedded: NotRequired[Nullable[EmbeddedTypedDict]]
89
+ r"""Full payload of the event."""
90
+
91
+
92
+ class EntityWebhookEvent(BaseModel):
93
+ resource: str
94
+ r"""Indicates the response contains a webhook event object. Will always contain the string `event` for this endpoint."""
95
+
96
+ id: str
97
+ r"""The identifier uniquely referring to this event."""
98
+
99
+ webhook_event_types: Annotated[
100
+ Annotated[
101
+ EntityWebhookEventWebhookEventTypes,
102
+ PlainValidator(validate_open_enum(False)),
103
+ ],
104
+ pydantic.Field(alias="type"),
105
+ ]
106
+
107
+ entity_id: Annotated[str, pydantic.Field(alias="entityId")]
108
+ r"""The entity token that triggered the event"""
109
+
110
+ created_at: Annotated[str, pydantic.Field(alias="createdAt")]
111
+ r"""The event's date time of creation."""
112
+
113
+ links: Annotated[EntityWebhookEventLinks, pydantic.Field(alias="_links")]
114
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
115
+
116
+ embedded: Annotated[
117
+ OptionalNullable[Embedded], pydantic.Field(alias="_embedded")
118
+ ] = UNSET
119
+ r"""Full payload of the event."""
120
+
121
+ @model_serializer(mode="wrap")
122
+ def serialize_model(self, handler):
123
+ optional_fields = ["_embedded"]
124
+ nullable_fields = ["_embedded"]
125
+ null_default_fields = []
126
+
127
+ serialized = handler(self)
128
+
129
+ m = {}
130
+
131
+ for n, f in type(self).model_fields.items():
132
+ k = f.alias or n
133
+ val = serialized.get(k)
134
+ serialized.pop(k, None)
135
+
136
+ optional_nullable = k in optional_fields and k in nullable_fields
137
+ is_set = (
138
+ self.__pydantic_fields_set__.intersection({n})
139
+ or k in null_default_fields
140
+ ) # pylint: disable=no-member
141
+
142
+ if val is not None and val != UNSET_SENTINEL:
143
+ m[k] = val
144
+ elif val != UNSET_SENTINEL and (
145
+ not k in optional_fields or (optional_nullable and is_set)
146
+ ):
147
+ m[k] = val
148
+
149
+ return m
@@ -0,0 +1,70 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from dataclasses import dataclass, field
5
+ import httpx
6
+ from mollie.models import ClientError
7
+ from mollie.types import BaseModel
8
+ import pydantic
9
+ from typing import Optional
10
+ from typing_extensions import Annotated, TypedDict
11
+
12
+
13
+ class DocumentationTypedDict(TypedDict):
14
+ r"""The URL to the generic Mollie API error handling guide."""
15
+
16
+ href: str
17
+ type: str
18
+
19
+
20
+ class Documentation(BaseModel):
21
+ r"""The URL to the generic Mollie API error handling guide."""
22
+
23
+ href: str
24
+
25
+ type: str
26
+
27
+
28
+ class ErrorsLinksTypedDict(TypedDict):
29
+ documentation: DocumentationTypedDict
30
+ r"""The URL to the generic Mollie API error handling guide."""
31
+
32
+
33
+ class ErrorsLinks(BaseModel):
34
+ documentation: Documentation
35
+ r"""The URL to the generic Mollie API error handling guide."""
36
+
37
+
38
+ class ErrorResponseData(BaseModel):
39
+ status: int
40
+ r"""The status code of the error message. This is always the same code as the status code of the HTTP message itself."""
41
+
42
+ title: str
43
+ r"""The HTTP reason phrase of the error. For example, for a `404` error, the `title` will be `Not Found`."""
44
+
45
+ detail: str
46
+ r"""A detailed human-readable description of the error that occurred."""
47
+
48
+ links: Annotated[ErrorsLinks, pydantic.Field(alias="_links")]
49
+
50
+ field: Optional[str] = None
51
+ r"""If the error was caused by a value provided by you in a specific field, the `field` property will contain the name
52
+ of the field that caused the issue.
53
+ """
54
+
55
+
56
+ @dataclass(unsafe_hash=True)
57
+ class ErrorResponse(ClientError):
58
+ r"""An error response object."""
59
+
60
+ data: ErrorResponseData = field(hash=False)
61
+
62
+ def __init__(
63
+ self,
64
+ data: ErrorResponseData,
65
+ raw_response: httpx.Response,
66
+ body: Optional[str] = None,
67
+ ):
68
+ message = body or raw_response.text
69
+ super().__init__(message, raw_response, body)
70
+ object.__setattr__(self, "data", data)
@@ -0,0 +1,126 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .balance_report_grouping import BalanceReportGrouping
5
+ from mollie.types import BaseModel
6
+ from mollie.utils import (
7
+ FieldMetadata,
8
+ HeaderMetadata,
9
+ PathParamMetadata,
10
+ QueryParamMetadata,
11
+ validate_open_enum,
12
+ )
13
+ import pydantic
14
+ from pydantic.functional_validators import PlainValidator
15
+ from typing import Optional
16
+ from typing_extensions import Annotated, NotRequired, TypedDict
17
+
18
+
19
+ class GetBalanceReportGlobalsTypedDict(TypedDict):
20
+ testmode: NotRequired[bool]
21
+ r"""Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query
22
+ parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by
23
+ setting the `testmode` query parameter to `true`.
24
+
25
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
26
+ """
27
+
28
+
29
+ class GetBalanceReportGlobals(BaseModel):
30
+ testmode: Annotated[
31
+ Optional[bool],
32
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
33
+ ] = None
34
+ r"""Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query
35
+ parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by
36
+ setting the `testmode` query parameter to `true`.
37
+
38
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
39
+ """
40
+
41
+
42
+ class GetBalanceReportRequestTypedDict(TypedDict):
43
+ balance_id: str
44
+ r"""Provide the ID of the related balance."""
45
+ from_: str
46
+ r"""The start date of the report, in `YYYY-MM-DD` format. The from date is
47
+ 'inclusive', and in Central European Time. This means a report with for example `from=2024-01-01` will
48
+ include transactions from 2024-01-01 0:00:00 CET and onwards.
49
+ """
50
+ until: str
51
+ r"""The end date of the report, in `YYYY-MM-DD` format. The until date is 'exclusive', and in Central European Time.
52
+ This means a report with for example `until=2024-02-01` will include transactions up until
53
+ 2024-01-31 23:59:59 CET.
54
+ """
55
+ grouping: NotRequired[BalanceReportGrouping]
56
+ r"""You can retrieve reports in two different formats. With the `status-balances` format, transactions are grouped
57
+ by status (e.g. `pending`, `available`), then by transaction type, and then by other sub-groupings where
58
+ available (e.g. payment method).
59
+
60
+ With the `transaction-categories` format, transactions are grouped by
61
+ transaction type, then by status, and then again by other sub-groupings where available.
62
+ """
63
+ testmode: NotRequired[bool]
64
+ r"""You can enable test mode by setting the `testmode` query parameter to `true`.
65
+
66
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
67
+ """
68
+ idempotency_key: NotRequired[str]
69
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
70
+
71
+
72
+ class GetBalanceReportRequest(BaseModel):
73
+ balance_id: Annotated[
74
+ str,
75
+ pydantic.Field(alias="balanceId"),
76
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
77
+ ]
78
+ r"""Provide the ID of the related balance."""
79
+
80
+ from_: Annotated[
81
+ str,
82
+ pydantic.Field(alias="from"),
83
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
84
+ ]
85
+ r"""The start date of the report, in `YYYY-MM-DD` format. The from date is
86
+ 'inclusive', and in Central European Time. This means a report with for example `from=2024-01-01` will
87
+ include transactions from 2024-01-01 0:00:00 CET and onwards.
88
+ """
89
+
90
+ until: Annotated[
91
+ str, FieldMetadata(query=QueryParamMetadata(style="form", explode=True))
92
+ ]
93
+ r"""The end date of the report, in `YYYY-MM-DD` format. The until date is 'exclusive', and in Central European Time.
94
+ This means a report with for example `until=2024-02-01` will include transactions up until
95
+ 2024-01-31 23:59:59 CET.
96
+ """
97
+
98
+ grouping: Annotated[
99
+ Annotated[
100
+ Optional[BalanceReportGrouping], PlainValidator(validate_open_enum(False))
101
+ ],
102
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
103
+ ] = None
104
+ r"""You can retrieve reports in two different formats. With the `status-balances` format, transactions are grouped
105
+ by status (e.g. `pending`, `available`), then by transaction type, and then by other sub-groupings where
106
+ available (e.g. payment method).
107
+
108
+ With the `transaction-categories` format, transactions are grouped by
109
+ transaction type, then by status, and then again by other sub-groupings where available.
110
+ """
111
+
112
+ testmode: Annotated[
113
+ Optional[bool],
114
+ FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
115
+ ] = None
116
+ r"""You can enable test mode by setting the `testmode` query parameter to `true`.
117
+
118
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
119
+ """
120
+
121
+ idempotency_key: Annotated[
122
+ Optional[str],
123
+ pydantic.Field(alias="idempotency-key"),
124
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
125
+ ] = None
126
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""