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,541 @@
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 .sub_group import SubGroup, SubGroupTypedDict
6
+ from .url import URL, URLTypedDict
7
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
8
+ from mollie.utils import validate_open_enum
9
+ import pydantic
10
+ from pydantic import model_serializer
11
+ from pydantic.functional_validators import PlainValidator
12
+ from typing import Optional
13
+ from typing_extensions import Annotated, NotRequired, TypedDict
14
+
15
+
16
+ class PendingBalanceTypedDict(TypedDict):
17
+ r"""The pending balance. Only available if grouping is `status-balances`."""
18
+
19
+ open: NotRequired[SubGroupTypedDict]
20
+ close: NotRequired[SubGroupTypedDict]
21
+ pending: NotRequired[SubGroupTypedDict]
22
+ moved_to_available: NotRequired[SubGroupTypedDict]
23
+
24
+
25
+ class PendingBalance(BaseModel):
26
+ r"""The pending balance. Only available if grouping is `status-balances`."""
27
+
28
+ open: Optional[SubGroup] = None
29
+
30
+ close: Optional[SubGroup] = None
31
+
32
+ pending: Optional[SubGroup] = None
33
+
34
+ moved_to_available: Annotated[
35
+ Optional[SubGroup], pydantic.Field(alias="movedToAvailable")
36
+ ] = None
37
+
38
+
39
+ class AvailableBalanceTypedDict(TypedDict):
40
+ r"""The available balance. Only available if grouping is `status-balances`."""
41
+
42
+ open: NotRequired[SubGroupTypedDict]
43
+ moved_from_pending: NotRequired[SubGroupTypedDict]
44
+ immediately_available: NotRequired[SubGroupTypedDict]
45
+ close: NotRequired[SubGroupTypedDict]
46
+
47
+
48
+ class AvailableBalance(BaseModel):
49
+ r"""The available balance. Only available if grouping is `status-balances`."""
50
+
51
+ open: Optional[SubGroup] = None
52
+
53
+ moved_from_pending: Annotated[
54
+ Optional[SubGroup], pydantic.Field(alias="movedFromPending")
55
+ ] = None
56
+
57
+ immediately_available: Annotated[
58
+ Optional[SubGroup], pydantic.Field(alias="immediatelyAvailable")
59
+ ] = None
60
+
61
+ close: Optional[SubGroup] = None
62
+
63
+
64
+ class OpenTypedDict(TypedDict):
65
+ r"""Only available on `transaction-categories` grouping."""
66
+
67
+ pending: NotRequired[SubGroupTypedDict]
68
+ available: NotRequired[SubGroupTypedDict]
69
+
70
+
71
+ class Open(BaseModel):
72
+ r"""Only available on `transaction-categories` grouping."""
73
+
74
+ pending: Optional[SubGroup] = None
75
+
76
+ available: Optional[SubGroup] = None
77
+
78
+
79
+ class CloseTypedDict(TypedDict):
80
+ r"""Only available on `transaction-categories` grouping."""
81
+
82
+ pending: NotRequired[SubGroupTypedDict]
83
+ available: NotRequired[SubGroupTypedDict]
84
+
85
+
86
+ class Close(BaseModel):
87
+ r"""Only available on `transaction-categories` grouping."""
88
+
89
+ pending: Optional[SubGroup] = None
90
+
91
+ available: Optional[SubGroup] = None
92
+
93
+
94
+ class PaymentsTypedDict(TypedDict):
95
+ r"""Only available on `transaction-categories` grouping."""
96
+
97
+ pending: NotRequired[SubGroupTypedDict]
98
+ moved_to_available: NotRequired[SubGroupTypedDict]
99
+ immediately_available: NotRequired[SubGroupTypedDict]
100
+
101
+
102
+ class Payments(BaseModel):
103
+ r"""Only available on `transaction-categories` grouping."""
104
+
105
+ pending: Optional[SubGroup] = None
106
+
107
+ moved_to_available: Annotated[
108
+ Optional[SubGroup], pydantic.Field(alias="movedToAvailable")
109
+ ] = None
110
+
111
+ immediately_available: Annotated[
112
+ Optional[SubGroup], pydantic.Field(alias="immediatelyAvailable")
113
+ ] = None
114
+
115
+
116
+ class RefundsTypedDict(TypedDict):
117
+ r"""Only available on `transaction-categories` grouping."""
118
+
119
+ pending: NotRequired[SubGroupTypedDict]
120
+ moved_to_available: NotRequired[SubGroupTypedDict]
121
+ immediately_available: NotRequired[SubGroupTypedDict]
122
+
123
+
124
+ class Refunds(BaseModel):
125
+ r"""Only available on `transaction-categories` grouping."""
126
+
127
+ pending: Optional[SubGroup] = None
128
+
129
+ moved_to_available: Annotated[
130
+ Optional[SubGroup], pydantic.Field(alias="movedToAvailable")
131
+ ] = None
132
+
133
+ immediately_available: Annotated[
134
+ Optional[SubGroup], pydantic.Field(alias="immediatelyAvailable")
135
+ ] = None
136
+
137
+
138
+ class ChargebacksTypedDict(TypedDict):
139
+ r"""Only available on `transaction-categories` grouping."""
140
+
141
+ pending: NotRequired[SubGroupTypedDict]
142
+ moved_to_available: NotRequired[SubGroupTypedDict]
143
+ immediately_available: NotRequired[SubGroupTypedDict]
144
+
145
+
146
+ class Chargebacks(BaseModel):
147
+ r"""Only available on `transaction-categories` grouping."""
148
+
149
+ pending: Optional[SubGroup] = None
150
+
151
+ moved_to_available: Annotated[
152
+ Optional[SubGroup], pydantic.Field(alias="movedToAvailable")
153
+ ] = None
154
+
155
+ immediately_available: Annotated[
156
+ Optional[SubGroup], pydantic.Field(alias="immediatelyAvailable")
157
+ ] = None
158
+
159
+
160
+ class CapitalTypedDict(TypedDict):
161
+ r"""Only available on `transaction-categories` grouping."""
162
+
163
+ pending: NotRequired[SubGroupTypedDict]
164
+ moved_to_available: NotRequired[SubGroupTypedDict]
165
+ immediately_available: NotRequired[SubGroupTypedDict]
166
+
167
+
168
+ class Capital(BaseModel):
169
+ r"""Only available on `transaction-categories` grouping."""
170
+
171
+ pending: Optional[SubGroup] = None
172
+
173
+ moved_to_available: Annotated[
174
+ Optional[SubGroup], pydantic.Field(alias="movedToAvailable")
175
+ ] = None
176
+
177
+ immediately_available: Annotated[
178
+ Optional[SubGroup], pydantic.Field(alias="immediatelyAvailable")
179
+ ] = None
180
+
181
+
182
+ class TransfersTypedDict(TypedDict):
183
+ r"""Only available on `transaction-categories` grouping."""
184
+
185
+ pending: NotRequired[SubGroupTypedDict]
186
+ moved_to_available: NotRequired[SubGroupTypedDict]
187
+ immediately_available: NotRequired[SubGroupTypedDict]
188
+
189
+
190
+ class Transfers(BaseModel):
191
+ r"""Only available on `transaction-categories` grouping."""
192
+
193
+ pending: Optional[SubGroup] = None
194
+
195
+ moved_to_available: Annotated[
196
+ Optional[SubGroup], pydantic.Field(alias="movedToAvailable")
197
+ ] = None
198
+
199
+ immediately_available: Annotated[
200
+ Optional[SubGroup], pydantic.Field(alias="immediatelyAvailable")
201
+ ] = None
202
+
203
+
204
+ class FeePrepaymentsTypedDict(TypedDict):
205
+ r"""Only available on `transaction-categories` grouping."""
206
+
207
+ pending: NotRequired[SubGroupTypedDict]
208
+ moved_to_available: NotRequired[SubGroupTypedDict]
209
+ immediately_available: NotRequired[SubGroupTypedDict]
210
+
211
+
212
+ class FeePrepayments(BaseModel):
213
+ r"""Only available on `transaction-categories` grouping."""
214
+
215
+ pending: Optional[SubGroup] = None
216
+
217
+ moved_to_available: Annotated[
218
+ Optional[SubGroup], pydantic.Field(alias="movedToAvailable")
219
+ ] = None
220
+
221
+ immediately_available: Annotated[
222
+ Optional[SubGroup], pydantic.Field(alias="immediatelyAvailable")
223
+ ] = None
224
+
225
+
226
+ class CorrectionsTypedDict(TypedDict):
227
+ r"""Only available on `transaction-categories` grouping."""
228
+
229
+ pending: NotRequired[SubGroupTypedDict]
230
+ moved_to_available: NotRequired[SubGroupTypedDict]
231
+ immediately_available: NotRequired[SubGroupTypedDict]
232
+
233
+
234
+ class Corrections(BaseModel):
235
+ r"""Only available on `transaction-categories` grouping."""
236
+
237
+ pending: Optional[SubGroup] = None
238
+
239
+ moved_to_available: Annotated[
240
+ Optional[SubGroup], pydantic.Field(alias="movedToAvailable")
241
+ ] = None
242
+
243
+ immediately_available: Annotated[
244
+ Optional[SubGroup], pydantic.Field(alias="immediatelyAvailable")
245
+ ] = None
246
+
247
+
248
+ class TopupsTypedDict(TypedDict):
249
+ r"""Only available on `transaction-categories` grouping."""
250
+
251
+ pending: NotRequired[SubGroupTypedDict]
252
+ moved_to_available: NotRequired[SubGroupTypedDict]
253
+ immediately_available: NotRequired[SubGroupTypedDict]
254
+
255
+
256
+ class Topups(BaseModel):
257
+ r"""Only available on `transaction-categories` grouping."""
258
+
259
+ pending: Optional[SubGroup] = None
260
+
261
+ moved_to_available: Annotated[
262
+ Optional[SubGroup], pydantic.Field(alias="movedToAvailable")
263
+ ] = None
264
+
265
+ immediately_available: Annotated[
266
+ Optional[SubGroup], pydantic.Field(alias="immediatelyAvailable")
267
+ ] = None
268
+
269
+
270
+ class TotalsTypedDict(TypedDict):
271
+ r"""Totals are grouped according to the chosen grouping rule. The example response should give a good idea of what a
272
+ typical grouping looks like.
273
+
274
+ If grouping `status-balances` is chosen, the main grouping is as follows:
275
+
276
+ * `pendingBalance` containing an `open`, `pending`, `movedToAvailable`, and `close` sub-group
277
+ * `availableBalance` containing an `open`, `movedFromPending`, `immediatelyAvailable`, and `close` sub-group
278
+
279
+ If grouping `transaction-categories` is chosen, the main grouping is as follows:
280
+
281
+ * `open` and `close` groups, each containing a `pending` and `available` sub-group
282
+ * Transaction type groups such as `payments`, `refunds`, `chargebacks`, `capital`, `transfers`, `fee-prepayments`, `corrections`, `topups`
283
+ each containing a `pending`, `movedToAvailable`, and
284
+ `immediatelyAvailable` sub-group
285
+
286
+ Each sub-group typically has:
287
+
288
+ * An `amount` object containing the group's total amount
289
+ * A `count` integer if relevant (for example, counting the number of refunds)
290
+ * A `subtotals` array containing more sub-group objects if applicable
291
+ """
292
+
293
+ pending_balance: NotRequired[Nullable[PendingBalanceTypedDict]]
294
+ r"""The pending balance. Only available if grouping is `status-balances`."""
295
+ available_balance: NotRequired[Nullable[AvailableBalanceTypedDict]]
296
+ r"""The available balance. Only available if grouping is `status-balances`."""
297
+ open: NotRequired[OpenTypedDict]
298
+ r"""Only available on `transaction-categories` grouping."""
299
+ close: NotRequired[CloseTypedDict]
300
+ r"""Only available on `transaction-categories` grouping."""
301
+ payments: NotRequired[PaymentsTypedDict]
302
+ r"""Only available on `transaction-categories` grouping."""
303
+ refunds: NotRequired[RefundsTypedDict]
304
+ r"""Only available on `transaction-categories` grouping."""
305
+ chargebacks: NotRequired[ChargebacksTypedDict]
306
+ r"""Only available on `transaction-categories` grouping."""
307
+ capital: NotRequired[CapitalTypedDict]
308
+ r"""Only available on `transaction-categories` grouping."""
309
+ transfers: NotRequired[TransfersTypedDict]
310
+ r"""Only available on `transaction-categories` grouping."""
311
+ fee_prepayments: NotRequired[FeePrepaymentsTypedDict]
312
+ r"""Only available on `transaction-categories` grouping."""
313
+ corrections: NotRequired[CorrectionsTypedDict]
314
+ r"""Only available on `transaction-categories` grouping."""
315
+ topups: NotRequired[TopupsTypedDict]
316
+ r"""Only available on `transaction-categories` grouping."""
317
+
318
+
319
+ class Totals(BaseModel):
320
+ r"""Totals are grouped according to the chosen grouping rule. The example response should give a good idea of what a
321
+ typical grouping looks like.
322
+
323
+ If grouping `status-balances` is chosen, the main grouping is as follows:
324
+
325
+ * `pendingBalance` containing an `open`, `pending`, `movedToAvailable`, and `close` sub-group
326
+ * `availableBalance` containing an `open`, `movedFromPending`, `immediatelyAvailable`, and `close` sub-group
327
+
328
+ If grouping `transaction-categories` is chosen, the main grouping is as follows:
329
+
330
+ * `open` and `close` groups, each containing a `pending` and `available` sub-group
331
+ * Transaction type groups such as `payments`, `refunds`, `chargebacks`, `capital`, `transfers`, `fee-prepayments`, `corrections`, `topups`
332
+ each containing a `pending`, `movedToAvailable`, and
333
+ `immediatelyAvailable` sub-group
334
+
335
+ Each sub-group typically has:
336
+
337
+ * An `amount` object containing the group's total amount
338
+ * A `count` integer if relevant (for example, counting the number of refunds)
339
+ * A `subtotals` array containing more sub-group objects if applicable
340
+ """
341
+
342
+ pending_balance: Annotated[
343
+ OptionalNullable[PendingBalance], pydantic.Field(alias="pendingBalance")
344
+ ] = UNSET
345
+ r"""The pending balance. Only available if grouping is `status-balances`."""
346
+
347
+ available_balance: Annotated[
348
+ OptionalNullable[AvailableBalance], pydantic.Field(alias="availableBalance")
349
+ ] = UNSET
350
+ r"""The available balance. Only available if grouping is `status-balances`."""
351
+
352
+ open: Optional[Open] = None
353
+ r"""Only available on `transaction-categories` grouping."""
354
+
355
+ close: Optional[Close] = None
356
+ r"""Only available on `transaction-categories` grouping."""
357
+
358
+ payments: Optional[Payments] = None
359
+ r"""Only available on `transaction-categories` grouping."""
360
+
361
+ refunds: Optional[Refunds] = None
362
+ r"""Only available on `transaction-categories` grouping."""
363
+
364
+ chargebacks: Optional[Chargebacks] = None
365
+ r"""Only available on `transaction-categories` grouping."""
366
+
367
+ capital: Optional[Capital] = None
368
+ r"""Only available on `transaction-categories` grouping."""
369
+
370
+ transfers: Optional[Transfers] = None
371
+ r"""Only available on `transaction-categories` grouping."""
372
+
373
+ fee_prepayments: Annotated[
374
+ Optional[FeePrepayments], pydantic.Field(alias="fee-prepayments")
375
+ ] = None
376
+ r"""Only available on `transaction-categories` grouping."""
377
+
378
+ corrections: Optional[Corrections] = None
379
+ r"""Only available on `transaction-categories` grouping."""
380
+
381
+ topups: Optional[Topups] = None
382
+ r"""Only available on `transaction-categories` grouping."""
383
+
384
+ @model_serializer(mode="wrap")
385
+ def serialize_model(self, handler):
386
+ optional_fields = [
387
+ "pendingBalance",
388
+ "availableBalance",
389
+ "open",
390
+ "close",
391
+ "payments",
392
+ "refunds",
393
+ "chargebacks",
394
+ "capital",
395
+ "transfers",
396
+ "fee-prepayments",
397
+ "corrections",
398
+ "topups",
399
+ ]
400
+ nullable_fields = ["pendingBalance", "availableBalance"]
401
+ null_default_fields = []
402
+
403
+ serialized = handler(self)
404
+
405
+ m = {}
406
+
407
+ for n, f in type(self).model_fields.items():
408
+ k = f.alias or n
409
+ val = serialized.get(k)
410
+ serialized.pop(k, None)
411
+
412
+ optional_nullable = k in optional_fields and k in nullable_fields
413
+ is_set = (
414
+ self.__pydantic_fields_set__.intersection({n})
415
+ or k in null_default_fields
416
+ ) # pylint: disable=no-member
417
+
418
+ if val is not None and val != UNSET_SENTINEL:
419
+ m[k] = val
420
+ elif val != UNSET_SENTINEL and (
421
+ not k in optional_fields or (optional_nullable and is_set)
422
+ ):
423
+ m[k] = val
424
+
425
+ return m
426
+
427
+
428
+ class EntityBalanceReportLinksTypedDict(TypedDict):
429
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
430
+
431
+ self_: NotRequired[URLTypedDict]
432
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
433
+ documentation: NotRequired[URLTypedDict]
434
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
435
+
436
+
437
+ class EntityBalanceReportLinks(BaseModel):
438
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
439
+
440
+ self_: Annotated[Optional[URL], pydantic.Field(alias="self")] = None
441
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
442
+
443
+ documentation: Optional[URL] = None
444
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
445
+
446
+
447
+ class EntityBalanceReportTypedDict(TypedDict):
448
+ resource: str
449
+ r"""Indicates the response contains a balance report object. Will always contain the string `balance-report` for this
450
+ endpoint.
451
+ """
452
+ balance_id: str
453
+ time_zone: str
454
+ r"""The time zone used for the from and until parameters. Currently only time zone `Europe/Amsterdam` is supported."""
455
+ from_: str
456
+ r"""The start date of the report, in `YYYY-MM-DD` format. The from date is 'inclusive', and in Central European Time.
457
+ This means a report with for example `from=2024-01-01` will include movements of 2024-01-01 00:00:00 CET and
458
+ onwards.
459
+ """
460
+ until: str
461
+ r"""The end date of the report, in `YYYY-MM-DD` format. The until date is 'exclusive', and in Central European Time.
462
+ This means a report with for example `until=2024-02-01` will include movements up until 2024-01-31 23:59:59 CET.
463
+ """
464
+ grouping: BalanceReportGrouping
465
+ totals: TotalsTypedDict
466
+ r"""Totals are grouped according to the chosen grouping rule. The example response should give a good idea of what a
467
+ typical grouping looks like.
468
+
469
+ If grouping `status-balances` is chosen, the main grouping is as follows:
470
+
471
+ * `pendingBalance` containing an `open`, `pending`, `movedToAvailable`, and `close` sub-group
472
+ * `availableBalance` containing an `open`, `movedFromPending`, `immediatelyAvailable`, and `close` sub-group
473
+
474
+ If grouping `transaction-categories` is chosen, the main grouping is as follows:
475
+
476
+ * `open` and `close` groups, each containing a `pending` and `available` sub-group
477
+ * Transaction type groups such as `payments`, `refunds`, `chargebacks`, `capital`, `transfers`, `fee-prepayments`, `corrections`, `topups`
478
+ each containing a `pending`, `movedToAvailable`, and
479
+ `immediatelyAvailable` sub-group
480
+
481
+ Each sub-group typically has:
482
+
483
+ * An `amount` object containing the group's total amount
484
+ * A `count` integer if relevant (for example, counting the number of refunds)
485
+ * A `subtotals` array containing more sub-group objects if applicable
486
+ """
487
+ links: EntityBalanceReportLinksTypedDict
488
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
489
+
490
+
491
+ class EntityBalanceReport(BaseModel):
492
+ resource: str
493
+ r"""Indicates the response contains a balance report object. Will always contain the string `balance-report` for this
494
+ endpoint.
495
+ """
496
+
497
+ balance_id: Annotated[str, pydantic.Field(alias="balanceId")]
498
+
499
+ time_zone: Annotated[str, pydantic.Field(alias="timeZone")]
500
+ r"""The time zone used for the from and until parameters. Currently only time zone `Europe/Amsterdam` is supported."""
501
+
502
+ from_: Annotated[str, pydantic.Field(alias="from")]
503
+ r"""The start date of the report, in `YYYY-MM-DD` format. The from date is 'inclusive', and in Central European Time.
504
+ This means a report with for example `from=2024-01-01` will include movements of 2024-01-01 00:00:00 CET and
505
+ onwards.
506
+ """
507
+
508
+ until: str
509
+ r"""The end date of the report, in `YYYY-MM-DD` format. The until date is 'exclusive', and in Central European Time.
510
+ This means a report with for example `until=2024-02-01` will include movements up until 2024-01-31 23:59:59 CET.
511
+ """
512
+
513
+ grouping: Annotated[
514
+ BalanceReportGrouping, PlainValidator(validate_open_enum(False))
515
+ ]
516
+
517
+ totals: Totals
518
+ r"""Totals are grouped according to the chosen grouping rule. The example response should give a good idea of what a
519
+ typical grouping looks like.
520
+
521
+ If grouping `status-balances` is chosen, the main grouping is as follows:
522
+
523
+ * `pendingBalance` containing an `open`, `pending`, `movedToAvailable`, and `close` sub-group
524
+ * `availableBalance` containing an `open`, `movedFromPending`, `immediatelyAvailable`, and `close` sub-group
525
+
526
+ If grouping `transaction-categories` is chosen, the main grouping is as follows:
527
+
528
+ * `open` and `close` groups, each containing a `pending` and `available` sub-group
529
+ * Transaction type groups such as `payments`, `refunds`, `chargebacks`, `capital`, `transfers`, `fee-prepayments`, `corrections`, `topups`
530
+ each containing a `pending`, `movedToAvailable`, and
531
+ `immediatelyAvailable` sub-group
532
+
533
+ Each sub-group typically has:
534
+
535
+ * An `amount` object containing the group's total amount
536
+ * A `count` integer if relevant (for example, counting the number of refunds)
537
+ * A `subtotals` array containing more sub-group objects if applicable
538
+ """
539
+
540
+ links: Annotated[EntityBalanceReportLinks, pydantic.Field(alias="_links")]
541
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""