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,56 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .url import URL, URLTypedDict
5
+ from mollie.types import BaseModel
6
+ import pydantic
7
+ from typing import Optional
8
+ from typing_extensions import Annotated, NotRequired, TypedDict
9
+
10
+
11
+ class ListEntityPermissionLinksTypedDict(TypedDict):
12
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
13
+
14
+ self_: NotRequired[URLTypedDict]
15
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
16
+
17
+
18
+ class ListEntityPermissionLinks(BaseModel):
19
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
20
+
21
+ self_: Annotated[Optional[URL], pydantic.Field(alias="self")] = None
22
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
23
+
24
+
25
+ class ListEntityPermissionTypedDict(TypedDict):
26
+ resource: str
27
+ r"""Indicates the response contains a permission object. Will always contain the string `permission` for this
28
+ endpoint.
29
+ """
30
+ id: str
31
+ r"""The identifier uniquely referring to this permission. Example: `payments.read`."""
32
+ description: str
33
+ r"""A short description of what kind of access the permission enables."""
34
+ granted: bool
35
+ r"""Whether this permission is granted to the app by the organization."""
36
+ links: ListEntityPermissionLinksTypedDict
37
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
38
+
39
+
40
+ class ListEntityPermission(BaseModel):
41
+ resource: str
42
+ r"""Indicates the response contains a permission object. Will always contain the string `permission` for this
43
+ endpoint.
44
+ """
45
+
46
+ id: str
47
+ r"""The identifier uniquely referring to this permission. Example: `payments.read`."""
48
+
49
+ description: str
50
+ r"""A short description of what kind of access the permission enables."""
51
+
52
+ granted: bool
53
+ r"""Whether this permission is granted to the app by the organization."""
54
+
55
+ links: Annotated[ListEntityPermissionLinks, pydantic.Field(alias="_links")]
56
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
@@ -0,0 +1,352 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .amount import Amount, AmountTypedDict
5
+ from .metadata import Metadata, MetadataTypedDict
6
+ from .mode import Mode
7
+ from .refund_external_reference_type_response import RefundExternalReferenceTypeResponse
8
+ from .url import URL, URLTypedDict
9
+ from .url_nullable import URLNullable, URLNullableTypedDict
10
+ from enum import Enum
11
+ from mollie import utils
12
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
13
+ from mollie.utils import validate_open_enum
14
+ import pydantic
15
+ from pydantic import model_serializer
16
+ from pydantic.functional_validators import PlainValidator
17
+ from typing import List, Optional
18
+ from typing_extensions import Annotated, NotRequired, TypedDict
19
+
20
+
21
+ class ListEntityRefundSettlementAmountTypedDict(TypedDict):
22
+ r"""This optional field will contain the approximate amount that will be deducted from your account balance, converted
23
+ to the currency your account is settled in.
24
+
25
+ The amount is a **negative** amount.
26
+
27
+ If the refund is not directly processed by Mollie, for example for PayPal refunds, the settlement amount will be
28
+ zero.
29
+
30
+ Since the field contains an estimated amount during refund processing, it may change over time. For example, while
31
+ the refund is queued the settlement amount is likely not yet available.
32
+
33
+ To retrieve accurate settlement amounts we recommend using the
34
+ [List balance transactions endpoint](list-balance-transactions) instead.
35
+ """
36
+
37
+ currency: str
38
+ r"""A three-character ISO 4217 currency code."""
39
+ value: str
40
+ r"""A string containing an exact monetary amount in the given currency."""
41
+
42
+
43
+ class ListEntityRefundSettlementAmount(BaseModel):
44
+ r"""This optional field will contain the approximate amount that will be deducted from your account balance, converted
45
+ to the currency your account is settled in.
46
+
47
+ The amount is a **negative** amount.
48
+
49
+ If the refund is not directly processed by Mollie, for example for PayPal refunds, the settlement amount will be
50
+ zero.
51
+
52
+ Since the field contains an estimated amount during refund processing, it may change over time. For example, while
53
+ the refund is queued the settlement amount is likely not yet available.
54
+
55
+ To retrieve accurate settlement amounts we recommend using the
56
+ [List balance transactions endpoint](list-balance-transactions) instead.
57
+ """
58
+
59
+ currency: str
60
+ r"""A three-character ISO 4217 currency code."""
61
+
62
+ value: str
63
+ r"""A string containing an exact monetary amount in the given currency."""
64
+
65
+
66
+ class ListEntityRefundStatus(str, Enum, metaclass=utils.OpenEnumMeta):
67
+ QUEUED = "queued"
68
+ PENDING = "pending"
69
+ PROCESSING = "processing"
70
+ REFUNDED = "refunded"
71
+ FAILED = "failed"
72
+ CANCELED = "canceled"
73
+
74
+
75
+ class ListEntityRefundExternalReferenceTypedDict(TypedDict):
76
+ type: NotRequired[RefundExternalReferenceTypeResponse]
77
+ r"""Specifies the reference type"""
78
+ id: NotRequired[str]
79
+ r"""Unique reference from the payment provider"""
80
+
81
+
82
+ class ListEntityRefundExternalReference(BaseModel):
83
+ type: Annotated[
84
+ Optional[RefundExternalReferenceTypeResponse],
85
+ PlainValidator(validate_open_enum(False)),
86
+ ] = None
87
+ r"""Specifies the reference type"""
88
+
89
+ id: Optional[str] = None
90
+ r"""Unique reference from the payment provider"""
91
+
92
+
93
+ class ListEntityRefundSourceTypedDict(TypedDict):
94
+ r"""Where the funds will be pulled back from."""
95
+
96
+ organization_id: NotRequired[str]
97
+
98
+
99
+ class ListEntityRefundSource(BaseModel):
100
+ r"""Where the funds will be pulled back from."""
101
+
102
+ organization_id: Annotated[
103
+ Optional[str], pydantic.Field(alias="organizationId")
104
+ ] = None
105
+
106
+
107
+ class ListEntityRefundRoutingReversalTypedDict(TypedDict):
108
+ amount: NotRequired[AmountTypedDict]
109
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
110
+ source: NotRequired[ListEntityRefundSourceTypedDict]
111
+ r"""Where the funds will be pulled back from."""
112
+
113
+
114
+ class ListEntityRefundRoutingReversal(BaseModel):
115
+ amount: Optional[Amount] = None
116
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
117
+
118
+ source: Optional[ListEntityRefundSource] = None
119
+ r"""Where the funds will be pulled back from."""
120
+
121
+
122
+ class ListEntityRefundLinksTypedDict(TypedDict):
123
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
124
+
125
+ self_: URLTypedDict
126
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
127
+ payment: URLTypedDict
128
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
129
+ settlement: NotRequired[Nullable[URLNullableTypedDict]]
130
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
131
+
132
+
133
+ class ListEntityRefundLinks(BaseModel):
134
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
135
+
136
+ self_: Annotated[URL, pydantic.Field(alias="self")]
137
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
138
+
139
+ payment: URL
140
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
141
+
142
+ settlement: OptionalNullable[URLNullable] = UNSET
143
+ r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
144
+
145
+ @model_serializer(mode="wrap")
146
+ def serialize_model(self, handler):
147
+ optional_fields = ["settlement"]
148
+ nullable_fields = ["settlement"]
149
+ null_default_fields = []
150
+
151
+ serialized = handler(self)
152
+
153
+ m = {}
154
+
155
+ for n, f in type(self).model_fields.items():
156
+ k = f.alias or n
157
+ val = serialized.get(k)
158
+ serialized.pop(k, None)
159
+
160
+ optional_nullable = k in optional_fields and k in nullable_fields
161
+ is_set = (
162
+ self.__pydantic_fields_set__.intersection({n})
163
+ or k in null_default_fields
164
+ ) # pylint: disable=no-member
165
+
166
+ if val is not None and val != UNSET_SENTINEL:
167
+ m[k] = val
168
+ elif val != UNSET_SENTINEL and (
169
+ not k in optional_fields or (optional_nullable and is_set)
170
+ ):
171
+ m[k] = val
172
+
173
+ return m
174
+
175
+
176
+ class ListEntityRefundTypedDict(TypedDict):
177
+ resource: str
178
+ r"""Indicates the response contains a refund object. Will always contain the string `refund` for this endpoint."""
179
+ id: str
180
+ r"""The identifier uniquely referring to this refund. Mollie assigns this identifier at refund creation time. Mollie
181
+ will always refer to the refund by this ID. Example: `re_4qqhO89gsT`.
182
+ """
183
+ mode: Mode
184
+ r"""Whether this entity was created in live mode or in test mode."""
185
+ description: str
186
+ r"""The description of the refund that may be shown to your customer, depending on the payment method used."""
187
+ amount: AmountTypedDict
188
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
189
+ metadata: Nullable[MetadataTypedDict]
190
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
191
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
192
+ """
193
+ status: ListEntityRefundStatus
194
+ created_at: str
195
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
196
+ links: ListEntityRefundLinksTypedDict
197
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
198
+ settlement_amount: NotRequired[Nullable[ListEntityRefundSettlementAmountTypedDict]]
199
+ r"""This optional field will contain the approximate amount that will be deducted from your account balance, converted
200
+ to the currency your account is settled in.
201
+
202
+ The amount is a **negative** amount.
203
+
204
+ If the refund is not directly processed by Mollie, for example for PayPal refunds, the settlement amount will be
205
+ zero.
206
+
207
+ Since the field contains an estimated amount during refund processing, it may change over time. For example, while
208
+ the refund is queued the settlement amount is likely not yet available.
209
+
210
+ To retrieve accurate settlement amounts we recommend using the
211
+ [List balance transactions endpoint](list-balance-transactions) instead.
212
+ """
213
+ payment_id: NotRequired[str]
214
+ r"""The unique identifier of the payment this refund was created for.
215
+ The full payment object can be retrieved via the payment URL in the `_links` object.
216
+ """
217
+ settlement_id: NotRequired[Nullable[str]]
218
+ r"""The identifier referring to the settlement this refund was settled with. This field is omitted if the refund is not settled (yet)."""
219
+ external_reference: NotRequired[ListEntityRefundExternalReferenceTypedDict]
220
+ routing_reversals: NotRequired[
221
+ Nullable[List[ListEntityRefundRoutingReversalTypedDict]]
222
+ ]
223
+ r"""*This feature is only available to marketplace operators.*
224
+
225
+ When creating refunds for *routed* payments, by default the full amount is deducted from your balance.
226
+
227
+ If you want to pull back funds from the connected merchant(s), you can use this parameter to specify what amount
228
+ needs to be reversed from which merchant(s).
229
+
230
+ If you simply want to fully reverse the routed funds, you can also use the `reverseRouting` parameter instead.
231
+ """
232
+
233
+
234
+ class ListEntityRefund(BaseModel):
235
+ resource: str
236
+ r"""Indicates the response contains a refund object. Will always contain the string `refund` for this endpoint."""
237
+
238
+ id: str
239
+ r"""The identifier uniquely referring to this refund. Mollie assigns this identifier at refund creation time. Mollie
240
+ will always refer to the refund by this ID. Example: `re_4qqhO89gsT`.
241
+ """
242
+
243
+ mode: Annotated[Mode, PlainValidator(validate_open_enum(False))]
244
+ r"""Whether this entity was created in live mode or in test mode."""
245
+
246
+ description: str
247
+ r"""The description of the refund that may be shown to your customer, depending on the payment method used."""
248
+
249
+ amount: Amount
250
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
251
+
252
+ metadata: Nullable[Metadata]
253
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
254
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
255
+ """
256
+
257
+ status: Annotated[ListEntityRefundStatus, PlainValidator(validate_open_enum(False))]
258
+
259
+ created_at: Annotated[str, pydantic.Field(alias="createdAt")]
260
+ r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
261
+
262
+ links: Annotated[ListEntityRefundLinks, pydantic.Field(alias="_links")]
263
+ r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
264
+
265
+ settlement_amount: Annotated[
266
+ OptionalNullable[ListEntityRefundSettlementAmount],
267
+ pydantic.Field(alias="settlementAmount"),
268
+ ] = UNSET
269
+ r"""This optional field will contain the approximate amount that will be deducted from your account balance, converted
270
+ to the currency your account is settled in.
271
+
272
+ The amount is a **negative** amount.
273
+
274
+ If the refund is not directly processed by Mollie, for example for PayPal refunds, the settlement amount will be
275
+ zero.
276
+
277
+ Since the field contains an estimated amount during refund processing, it may change over time. For example, while
278
+ the refund is queued the settlement amount is likely not yet available.
279
+
280
+ To retrieve accurate settlement amounts we recommend using the
281
+ [List balance transactions endpoint](list-balance-transactions) instead.
282
+ """
283
+
284
+ payment_id: Annotated[Optional[str], pydantic.Field(alias="paymentId")] = None
285
+ r"""The unique identifier of the payment this refund was created for.
286
+ The full payment object can be retrieved via the payment URL in the `_links` object.
287
+ """
288
+
289
+ settlement_id: Annotated[
290
+ OptionalNullable[str], pydantic.Field(alias="settlementId")
291
+ ] = UNSET
292
+ r"""The identifier referring to the settlement this refund was settled with. This field is omitted if the refund is not settled (yet)."""
293
+
294
+ external_reference: Annotated[
295
+ Optional[ListEntityRefundExternalReference],
296
+ pydantic.Field(alias="externalReference"),
297
+ ] = None
298
+
299
+ routing_reversals: Annotated[
300
+ OptionalNullable[List[ListEntityRefundRoutingReversal]],
301
+ pydantic.Field(alias="routingReversals"),
302
+ ] = UNSET
303
+ r"""*This feature is only available to marketplace operators.*
304
+
305
+ When creating refunds for *routed* payments, by default the full amount is deducted from your balance.
306
+
307
+ If you want to pull back funds from the connected merchant(s), you can use this parameter to specify what amount
308
+ needs to be reversed from which merchant(s).
309
+
310
+ If you simply want to fully reverse the routed funds, you can also use the `reverseRouting` parameter instead.
311
+ """
312
+
313
+ @model_serializer(mode="wrap")
314
+ def serialize_model(self, handler):
315
+ optional_fields = [
316
+ "settlementAmount",
317
+ "paymentId",
318
+ "settlementId",
319
+ "externalReference",
320
+ "routingReversals",
321
+ ]
322
+ nullable_fields = [
323
+ "settlementAmount",
324
+ "metadata",
325
+ "settlementId",
326
+ "routingReversals",
327
+ ]
328
+ null_default_fields = []
329
+
330
+ serialized = handler(self)
331
+
332
+ m = {}
333
+
334
+ for n, f in type(self).model_fields.items():
335
+ k = f.alias or n
336
+ val = serialized.get(k)
337
+ serialized.pop(k, None)
338
+
339
+ optional_nullable = k in optional_fields and k in nullable_fields
340
+ is_set = (
341
+ self.__pydantic_fields_set__.intersection({n})
342
+ or k in null_default_fields
343
+ ) # pylint: disable=no-member
344
+
345
+ if val is not None and val != UNSET_SENTINEL:
346
+ m[k] = val
347
+ elif val != UNSET_SENTINEL and (
348
+ not k in optional_fields or (optional_nullable and is_set)
349
+ ):
350
+ m[k] = val
351
+
352
+ return m