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,325 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .balance_transfer_destination_type import BalanceTransferDestinationType
5
+ from .mode import Mode
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
15
+ from typing_extensions import Annotated, NotRequired, TypedDict
16
+
17
+
18
+ class EntityBalanceCurrency(str, Enum, metaclass=utils.OpenEnumMeta):
19
+ r"""The balance's ISO 4217 currency code."""
20
+
21
+ EUR = "EUR"
22
+ GBP = "GBP"
23
+ CHF = "CHF"
24
+ DKK = "DKK"
25
+ NOK = "NOK"
26
+ PLN = "PLN"
27
+ SEK = "SEK"
28
+ USD = "USD"
29
+ CZK = "CZK"
30
+ HUF = "HUF"
31
+ AUD = "AUD"
32
+ CAD = "CAD"
33
+
34
+
35
+ class EntityBalanceStatus(str, Enum, metaclass=utils.OpenEnumMeta):
36
+ r"""The status of the balance."""
37
+
38
+ ACTIVE = "active"
39
+ INACTIVE = "inactive"
40
+
41
+
42
+ class EntityBalanceTransferFrequency(str, Enum, metaclass=utils.OpenEnumMeta):
43
+ r"""The frequency with which the available amount on the balance will be settled to the configured transfer
44
+ destination.
45
+
46
+ Settlements created during weekends or on bank holidays will take place on the next business day.
47
+ """
48
+
49
+ EVERY_DAY = "every-day"
50
+ DAILY = "daily"
51
+ EVERY_MONDAY = "every-monday"
52
+ EVERY_TUESDAY = "every-tuesday"
53
+ EVERY_WEDNESDAY = "every-wednesday"
54
+ EVERY_THURSDAY = "every-thursday"
55
+ EVERY_FRIDAY = "every-friday"
56
+ MONTHLY = "monthly"
57
+ REVENUE_DAY = "revenue-day"
58
+ NEVER = "never"
59
+
60
+
61
+ class EntityBalanceTransferThresholdTypedDict(TypedDict):
62
+ r"""The minimum amount configured for scheduled automatic settlements. As soon as the amount on the balance exceeds
63
+ this threshold, the complete balance will be paid out to the transfer destination according to the configured
64
+ frequency.
65
+ """
66
+
67
+ currency: str
68
+ r"""A three-character ISO 4217 currency code."""
69
+ value: str
70
+ r"""A string containing an exact monetary amount in the given currency."""
71
+
72
+
73
+ class EntityBalanceTransferThreshold(BaseModel):
74
+ r"""The minimum amount configured for scheduled automatic settlements. As soon as the amount on the balance exceeds
75
+ this threshold, the complete balance will be paid out to the transfer destination according to the configured
76
+ frequency.
77
+ """
78
+
79
+ currency: str
80
+ r"""A three-character ISO 4217 currency code."""
81
+
82
+ value: str
83
+ r"""A string containing an exact monetary amount in the given currency."""
84
+
85
+
86
+ class EntityBalanceTransferDestinationTypedDict(TypedDict):
87
+ r"""The destination where the available amount will be automatically transferred to according to the configured
88
+ transfer frequency.
89
+ """
90
+
91
+ type: NotRequired[BalanceTransferDestinationType]
92
+ r"""The default destination of automatic scheduled transfers. Currently only `bank-account` is supported.
93
+
94
+ * `bank-account` — Transfer the balance amount to an external bank account
95
+ """
96
+ bank_account: NotRequired[str]
97
+ r"""The configured bank account number of the beneficiary the balance amount is to be transferred to."""
98
+ beneficiary_name: NotRequired[str]
99
+ r"""The full name of the beneficiary the balance amount is to be transferred to."""
100
+
101
+
102
+ class EntityBalanceTransferDestination(BaseModel):
103
+ r"""The destination where the available amount will be automatically transferred to according to the configured
104
+ transfer frequency.
105
+ """
106
+
107
+ type: Annotated[
108
+ Optional[BalanceTransferDestinationType],
109
+ PlainValidator(validate_open_enum(False)),
110
+ ] = None
111
+ r"""The default destination of automatic scheduled transfers. Currently only `bank-account` is supported.
112
+
113
+ * `bank-account` — Transfer the balance amount to an external bank account
114
+ """
115
+
116
+ bank_account: Annotated[Optional[str], pydantic.Field(alias="bankAccount")] = None
117
+ r"""The configured bank account number of the beneficiary the balance amount is to be transferred to."""
118
+
119
+ beneficiary_name: Annotated[
120
+ Optional[str], pydantic.Field(alias="beneficiaryName")
121
+ ] = None
122
+ r"""The full name of the beneficiary the balance amount is to be transferred to."""
123
+
124
+
125
+ class EntityBalanceAvailableAmountTypedDict(TypedDict):
126
+ r"""The amount directly available on the balance, e.g. `{\"currency\":\"EUR\", \"value\":\"100.00\"}`."""
127
+
128
+ currency: str
129
+ r"""A three-character ISO 4217 currency code."""
130
+ value: str
131
+ r"""A string containing an exact monetary amount in the given currency."""
132
+
133
+
134
+ class EntityBalanceAvailableAmount(BaseModel):
135
+ r"""The amount directly available on the balance, e.g. `{\"currency\":\"EUR\", \"value\":\"100.00\"}`."""
136
+
137
+ currency: str
138
+ r"""A three-character ISO 4217 currency code."""
139
+
140
+ value: str
141
+ r"""A string containing an exact monetary amount in the given currency."""
142
+
143
+
144
+ class EntityBalancePendingAmountTypedDict(TypedDict):
145
+ r"""The total amount that is queued to be transferred to your balance. For example, a credit card payment can take a
146
+ few days to clear.
147
+ """
148
+
149
+ currency: str
150
+ r"""A three-character ISO 4217 currency code."""
151
+ value: str
152
+ r"""A string containing an exact monetary amount in the given currency."""
153
+
154
+
155
+ class EntityBalancePendingAmount(BaseModel):
156
+ r"""The total amount that is queued to be transferred to your balance. For example, a credit card payment can take a
157
+ few days to clear.
158
+ """
159
+
160
+ currency: str
161
+ r"""A three-character ISO 4217 currency code."""
162
+
163
+ value: str
164
+ r"""A string containing an exact monetary amount in the given currency."""
165
+
166
+
167
+ class EntityBalanceLinksTypedDict(TypedDict):
168
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
169
+
170
+ self_: NotRequired[URLTypedDict]
171
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
172
+ documentation: NotRequired[URLTypedDict]
173
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
174
+
175
+
176
+ class EntityBalanceLinks(BaseModel):
177
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
178
+
179
+ self_: Annotated[Optional[URL], pydantic.Field(alias="self")] = None
180
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
181
+
182
+ documentation: Optional[URL] = None
183
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
184
+
185
+
186
+ class EntityBalanceTypedDict(TypedDict):
187
+ resource: str
188
+ r"""Indicates the response contains a balance object. Will always contain the string `balance` for this endpoint."""
189
+ id: str
190
+ r"""The identifier uniquely referring to this balance."""
191
+ mode: Mode
192
+ r"""Whether this entity was created in live mode or in test mode."""
193
+ created_at: str
194
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
195
+ currency: EntityBalanceCurrency
196
+ r"""The balance's ISO 4217 currency code."""
197
+ description: str
198
+ r"""The description or name of the balance. Can be used to denote the purpose of the balance."""
199
+ status: EntityBalanceStatus
200
+ available_amount: EntityBalanceAvailableAmountTypedDict
201
+ r"""The amount directly available on the balance, e.g. `{\"currency\":\"EUR\", \"value\":\"100.00\"}`."""
202
+ pending_amount: EntityBalancePendingAmountTypedDict
203
+ r"""The total amount that is queued to be transferred to your balance. For example, a credit card payment can take a
204
+ few days to clear.
205
+ """
206
+ links: EntityBalanceLinksTypedDict
207
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
208
+ transfer_frequency: NotRequired[EntityBalanceTransferFrequency]
209
+ transfer_threshold: NotRequired[EntityBalanceTransferThresholdTypedDict]
210
+ r"""The minimum amount configured for scheduled automatic settlements. As soon as the amount on the balance exceeds
211
+ this threshold, the complete balance will be paid out to the transfer destination according to the configured
212
+ frequency.
213
+ """
214
+ transfer_reference: NotRequired[Nullable[str]]
215
+ r"""The transfer reference set to be included in all the transfers for this balance."""
216
+ transfer_destination: NotRequired[
217
+ Nullable[EntityBalanceTransferDestinationTypedDict]
218
+ ]
219
+ r"""The destination where the available amount will be automatically transferred to according to the configured
220
+ transfer frequency.
221
+ """
222
+
223
+
224
+ class EntityBalance(BaseModel):
225
+ resource: str
226
+ r"""Indicates the response contains a balance object. Will always contain the string `balance` for this endpoint."""
227
+
228
+ id: str
229
+ r"""The identifier uniquely referring to this balance."""
230
+
231
+ mode: Annotated[Mode, PlainValidator(validate_open_enum(False))]
232
+ r"""Whether this entity was created in live mode or in test mode."""
233
+
234
+ created_at: Annotated[str, pydantic.Field(alias="createdAt")]
235
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
236
+
237
+ currency: Annotated[
238
+ EntityBalanceCurrency, PlainValidator(validate_open_enum(False))
239
+ ]
240
+ r"""The balance's ISO 4217 currency code."""
241
+
242
+ description: str
243
+ r"""The description or name of the balance. Can be used to denote the purpose of the balance."""
244
+
245
+ status: Annotated[EntityBalanceStatus, PlainValidator(validate_open_enum(False))]
246
+
247
+ available_amount: Annotated[
248
+ EntityBalanceAvailableAmount, pydantic.Field(alias="availableAmount")
249
+ ]
250
+ r"""The amount directly available on the balance, e.g. `{\"currency\":\"EUR\", \"value\":\"100.00\"}`."""
251
+
252
+ pending_amount: Annotated[
253
+ EntityBalancePendingAmount, pydantic.Field(alias="pendingAmount")
254
+ ]
255
+ r"""The total amount that is queued to be transferred to your balance. For example, a credit card payment can take a
256
+ few days to clear.
257
+ """
258
+
259
+ links: Annotated[EntityBalanceLinks, pydantic.Field(alias="_links")]
260
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
261
+
262
+ transfer_frequency: Annotated[
263
+ Annotated[
264
+ Optional[EntityBalanceTransferFrequency],
265
+ PlainValidator(validate_open_enum(False)),
266
+ ],
267
+ pydantic.Field(alias="transferFrequency"),
268
+ ] = None
269
+
270
+ transfer_threshold: Annotated[
271
+ Optional[EntityBalanceTransferThreshold],
272
+ pydantic.Field(alias="transferThreshold"),
273
+ ] = None
274
+ r"""The minimum amount configured for scheduled automatic settlements. As soon as the amount on the balance exceeds
275
+ this threshold, the complete balance will be paid out to the transfer destination according to the configured
276
+ frequency.
277
+ """
278
+
279
+ transfer_reference: Annotated[
280
+ OptionalNullable[str], pydantic.Field(alias="transferReference")
281
+ ] = UNSET
282
+ r"""The transfer reference set to be included in all the transfers for this balance."""
283
+
284
+ transfer_destination: Annotated[
285
+ OptionalNullable[EntityBalanceTransferDestination],
286
+ pydantic.Field(alias="transferDestination"),
287
+ ] = UNSET
288
+ r"""The destination where the available amount will be automatically transferred to according to the configured
289
+ transfer frequency.
290
+ """
291
+
292
+ @model_serializer(mode="wrap")
293
+ def serialize_model(self, handler):
294
+ optional_fields = [
295
+ "transferFrequency",
296
+ "transferThreshold",
297
+ "transferReference",
298
+ "transferDestination",
299
+ ]
300
+ nullable_fields = ["transferReference", "transferDestination"]
301
+ null_default_fields = []
302
+
303
+ serialized = handler(self)
304
+
305
+ m = {}
306
+
307
+ for n, f in type(self).model_fields.items():
308
+ k = f.alias or n
309
+ val = serialized.get(k)
310
+ serialized.pop(k, None)
311
+
312
+ optional_nullable = k in optional_fields and k in nullable_fields
313
+ is_set = (
314
+ self.__pydantic_fields_set__.intersection({n})
315
+ or k in null_default_fields
316
+ ) # pylint: disable=no-member
317
+
318
+ if val is not None and val != UNSET_SENTINEL:
319
+ m[k] = val
320
+ elif val != UNSET_SENTINEL and (
321
+ not k in optional_fields or (optional_nullable and is_set)
322
+ ):
323
+ m[k] = val
324
+
325
+ return m