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,43 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .entity_customer import EntityCustomer, EntityCustomerTypedDict
5
+ from mollie.types import BaseModel
6
+ from mollie.utils import (
7
+ FieldMetadata,
8
+ HeaderMetadata,
9
+ PathParamMetadata,
10
+ RequestMetadata,
11
+ )
12
+ import pydantic
13
+ from typing import Optional
14
+ from typing_extensions import Annotated, NotRequired, TypedDict
15
+
16
+
17
+ class UpdateCustomerRequestTypedDict(TypedDict):
18
+ customer_id: str
19
+ r"""Provide the ID of the related customer."""
20
+ idempotency_key: NotRequired[str]
21
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
22
+ entity_customer: NotRequired[EntityCustomerTypedDict]
23
+
24
+
25
+ class UpdateCustomerRequest(BaseModel):
26
+ customer_id: Annotated[
27
+ str,
28
+ pydantic.Field(alias="customerId"),
29
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
30
+ ]
31
+ r"""Provide the ID of the related customer."""
32
+
33
+ idempotency_key: Annotated[
34
+ Optional[str],
35
+ pydantic.Field(alias="idempotency-key"),
36
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
37
+ ] = None
38
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
39
+
40
+ entity_customer: Annotated[
41
+ Optional[EntityCustomer],
42
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
43
+ ] = None
@@ -0,0 +1,172 @@
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 .payment_address import PaymentAddress, PaymentAddressTypedDict
6
+ from .payment_line_item import PaymentLineItem, PaymentLineItemTypedDict
7
+ from .payment_link_method import PaymentLinkMethod
8
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
9
+ from mollie.utils import (
10
+ FieldMetadata,
11
+ HeaderMetadata,
12
+ PathParamMetadata,
13
+ RequestMetadata,
14
+ )
15
+ import pydantic
16
+ from pydantic import model_serializer
17
+ from typing import List, Optional
18
+ from typing_extensions import Annotated, NotRequired, TypedDict
19
+
20
+
21
+ class UpdatePaymentLinkRequestBodyTypedDict(TypedDict):
22
+ description: NotRequired[str]
23
+ r"""A short description of the payment link. The description is visible in the Dashboard and will be shown
24
+ on the customer's bank or card statement when possible.
25
+
26
+ Updating the description does not affect any previously existing payments created for this payment link.
27
+ """
28
+ minimum_amount: NotRequired[AmountTypedDict]
29
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
30
+ archived: NotRequired[bool]
31
+ r"""Whether the payment link is archived. Customers will not be able to complete payments on archived
32
+ payment links.
33
+ """
34
+ allowed_methods: NotRequired[Nullable[List[PaymentLinkMethod]]]
35
+ r"""An array of payment methods that are allowed to be used for this payment link. When this parameter is
36
+ not provided or is an empty array, all enabled payment methods will be available.
37
+ """
38
+ lines: NotRequired[Nullable[List[PaymentLineItemTypedDict]]]
39
+ r"""Optionally provide the order lines for the payment. Each line contains details such as a description of the item
40
+ ordered and its price.
41
+
42
+ All lines must have the same currency as the payment.
43
+
44
+ Required for payment methods `billie`, `in3`, `klarna`, `riverty` and `voucher`.
45
+ """
46
+ billing_address: NotRequired[PaymentAddressTypedDict]
47
+ shipping_address: NotRequired[PaymentAddressTypedDict]
48
+ testmode: NotRequired[Nullable[bool]]
49
+ r"""Most API credentials are specifically created for either live mode or test mode. For organization-level credentials
50
+ such as OAuth access tokens, you can enable test mode by setting `testmode` to `true`.
51
+
52
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
53
+ """
54
+
55
+
56
+ class UpdatePaymentLinkRequestBody(BaseModel):
57
+ description: Optional[str] = None
58
+ r"""A short description of the payment link. The description is visible in the Dashboard and will be shown
59
+ on the customer's bank or card statement when possible.
60
+
61
+ Updating the description does not affect any previously existing payments created for this payment link.
62
+ """
63
+
64
+ minimum_amount: Annotated[
65
+ Optional[Amount], pydantic.Field(alias="minimumAmount")
66
+ ] = None
67
+ r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
68
+
69
+ archived: Optional[bool] = None
70
+ r"""Whether the payment link is archived. Customers will not be able to complete payments on archived
71
+ payment links.
72
+ """
73
+
74
+ allowed_methods: Annotated[
75
+ OptionalNullable[List[PaymentLinkMethod]],
76
+ pydantic.Field(alias="allowedMethods"),
77
+ ] = UNSET
78
+ r"""An array of payment methods that are allowed to be used for this payment link. When this parameter is
79
+ not provided or is an empty array, all enabled payment methods will be available.
80
+ """
81
+
82
+ lines: OptionalNullable[List[PaymentLineItem]] = UNSET
83
+ r"""Optionally provide the order lines for the payment. Each line contains details such as a description of the item
84
+ ordered and its price.
85
+
86
+ All lines must have the same currency as the payment.
87
+
88
+ Required for payment methods `billie`, `in3`, `klarna`, `riverty` and `voucher`.
89
+ """
90
+
91
+ billing_address: Annotated[
92
+ Optional[PaymentAddress], pydantic.Field(alias="billingAddress")
93
+ ] = None
94
+
95
+ shipping_address: Annotated[
96
+ Optional[PaymentAddress], pydantic.Field(alias="shippingAddress")
97
+ ] = None
98
+
99
+ testmode: OptionalNullable[bool] = UNSET
100
+ r"""Most API credentials are specifically created for either live mode or test mode. For organization-level credentials
101
+ such as OAuth access tokens, you can enable test mode by setting `testmode` to `true`.
102
+
103
+ Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
104
+ """
105
+
106
+ @model_serializer(mode="wrap")
107
+ def serialize_model(self, handler):
108
+ optional_fields = [
109
+ "description",
110
+ "minimumAmount",
111
+ "archived",
112
+ "allowedMethods",
113
+ "lines",
114
+ "billingAddress",
115
+ "shippingAddress",
116
+ "testmode",
117
+ ]
118
+ nullable_fields = ["allowedMethods", "lines", "testmode"]
119
+ null_default_fields = []
120
+
121
+ serialized = handler(self)
122
+
123
+ m = {}
124
+
125
+ for n, f in type(self).model_fields.items():
126
+ k = f.alias or n
127
+ val = serialized.get(k)
128
+ serialized.pop(k, None)
129
+
130
+ optional_nullable = k in optional_fields and k in nullable_fields
131
+ is_set = (
132
+ self.__pydantic_fields_set__.intersection({n})
133
+ or k in null_default_fields
134
+ ) # pylint: disable=no-member
135
+
136
+ if val is not None and val != UNSET_SENTINEL:
137
+ m[k] = val
138
+ elif val != UNSET_SENTINEL and (
139
+ not k in optional_fields or (optional_nullable and is_set)
140
+ ):
141
+ m[k] = val
142
+
143
+ return m
144
+
145
+
146
+ class UpdatePaymentLinkRequestTypedDict(TypedDict):
147
+ payment_link_id: str
148
+ r"""Provide the ID of the related payment link."""
149
+ idempotency_key: NotRequired[str]
150
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
151
+ request_body: NotRequired[UpdatePaymentLinkRequestBodyTypedDict]
152
+
153
+
154
+ class UpdatePaymentLinkRequest(BaseModel):
155
+ payment_link_id: Annotated[
156
+ str,
157
+ pydantic.Field(alias="paymentLinkId"),
158
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
159
+ ]
160
+ r"""Provide the ID of the related payment link."""
161
+
162
+ idempotency_key: Annotated[
163
+ Optional[str],
164
+ pydantic.Field(alias="idempotency-key"),
165
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
166
+ ] = None
167
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
168
+
169
+ request_body: Annotated[
170
+ Optional[UpdatePaymentLinkRequestBody],
171
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
172
+ ] = None
@@ -0,0 +1,332 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from __future__ import annotations
4
+ from .billingaddress import BillingAddress, BillingAddressTypedDict
5
+ from .locale import Locale
6
+ from .metadata import Metadata, MetadataTypedDict
7
+ from .method import Method
8
+ from .payment_address import PaymentAddress, PaymentAddressTypedDict
9
+ from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
10
+ from mollie.utils import (
11
+ FieldMetadata,
12
+ HeaderMetadata,
13
+ PathParamMetadata,
14
+ RequestMetadata,
15
+ )
16
+ import pydantic
17
+ from pydantic import model_serializer
18
+ from typing import Optional
19
+ from typing_extensions import Annotated, NotRequired, TypedDict
20
+
21
+
22
+ class UpdatePaymentRequestBodyTypedDict(TypedDict):
23
+ description: NotRequired[str]
24
+ r"""The description of the payment. This will be shown to your customer on their card or bank statement when possible.
25
+ We truncate the description automatically according to the limits of the used payment method. The description is
26
+ also visible in any exports you generate.
27
+
28
+ We recommend you use a unique identifier so that you can always link the payment to the order in your back office.
29
+ This is particularly useful for bookkeeping.
30
+
31
+ The maximum length of the description field differs per payment method, with the absolute maximum being 255
32
+ characters. The API will not reject strings longer than the maximum length but it will truncate them to fit.
33
+ """
34
+ redirect_url: NotRequired[Nullable[str]]
35
+ r"""The URL your customer will be redirected to after the payment process.
36
+
37
+ It could make sense for the redirectUrl to contain a unique identifier – like your order ID – so you can show the
38
+ right page referencing the order when your customer returns.
39
+
40
+ The parameter is normally required, but can be omitted for recurring payments (`sequenceType: recurring`) and for
41
+ Apple Pay payments with an `applePayPaymentToken`.
42
+ """
43
+ cancel_url: NotRequired[Nullable[str]]
44
+ r"""The URL your customer will be redirected to when the customer explicitly cancels the payment. If this URL is not
45
+ provided, the customer will be redirected to the `redirectUrl` instead — see above.
46
+
47
+ Mollie will always give you status updates via webhooks, including for the canceled status. This parameter is
48
+ therefore entirely optional, but can be useful when implementing a dedicated customer-facing flow to handle
49
+ payment cancellations.
50
+ """
51
+ webhook_url: NotRequired[Nullable[str]]
52
+ r"""The webhook URL where we will send payment status updates to.
53
+
54
+ The webhookUrl is optional, but without a webhook you will miss out on important status changes to your payment.
55
+
56
+ The webhookUrl must be reachable from Mollie's point of view, so you cannot use `localhost`. If you want to use
57
+ webhook during development on `localhost`, you must use a tool like ngrok to have the webhooks delivered to your
58
+ local machine.
59
+ """
60
+ metadata: NotRequired[Nullable[MetadataTypedDict]]
61
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
62
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
63
+ """
64
+ method: NotRequired[Nullable[Method]]
65
+ r"""Normally, a payment method screen is shown. However, when using this parameter, you can choose a specific payment
66
+ method and your customer will skip the selection screen and is sent directly to the chosen payment method. The
67
+ parameter enables you to fully integrate the payment method selection into your website.
68
+
69
+ You can also specify the methods in an array. By doing so we will still show the payment method selection screen
70
+ but will only show the methods specified in the array. For example, you can use this functionality to only show
71
+ payment methods from a specific country to your customer `['bancontact', 'belfius']`.
72
+ """
73
+ locale: NotRequired[Nullable[Locale]]
74
+ r"""Allows you to preset the language to be used."""
75
+ due_date: NotRequired[str]
76
+ r"""The date by which the payment should be completed in `YYYY-MM-DD` format"""
77
+ restrict_payment_methods_to_country: NotRequired[Nullable[str]]
78
+ r"""For digital goods in most jurisdictions, you must apply the VAT rate from your customer's country. Choose the VAT
79
+ rates you have used for the order to ensure your customer's country matches the VAT country.
80
+
81
+ Use this parameter to restrict the payment methods available to your customer to those from a single country.
82
+
83
+ If available, the credit card method will still be offered, but only cards from the allowed country are accepted.
84
+
85
+ The field expects a country code in ISO 3166-1 alpha-2 format, for example `NL`.
86
+ """
87
+ testmode: NotRequired[Nullable[bool]]
88
+ r"""Whether to create the entity in test mode or live mode.
89
+
90
+ Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
91
+ omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
92
+ `testmode` to `true`.
93
+ """
94
+ issuer: NotRequired[Nullable[str]]
95
+ r"""**Only relevant for iDEAL, KBC/CBC, gift card, and voucher payments.**
96
+
97
+ **⚠️ With the introduction of iDEAL 2 in 2025, this field will be ignored for iDEAL payments. For more information
98
+ on the migration, refer to our [help center](https://help.mollie.com/hc/articles/19100313768338-iDEAL-2-0).**
99
+
100
+ Some payment methods are a network of connected banks or card issuers. In these cases, after selecting the payment
101
+ method, the customer may still need to select the appropriate issuer before the payment can proceed.
102
+
103
+ We provide hosted issuer selection screens, but these screens can be skipped by providing the `issuer` via the API
104
+ up front.
105
+
106
+ The full list of issuers for a specific method can be retrieved via the Methods API by using the optional
107
+ `issuers` include.
108
+
109
+ A valid issuer for iDEAL is for example `ideal_INGBNL2A` (for ING Bank).
110
+ """
111
+ billing_address: NotRequired[BillingAddressTypedDict]
112
+ r"""The customer's billing address details. We advise to provide these details to improve fraud protection and
113
+ conversion.
114
+
115
+ Should include `email` or a valid postal address consisting of `streetAndNumber`, `postalCode`, `city` and
116
+ `country`.
117
+
118
+ Required for payment method `in3`, `klarna`, `billie` and `riverty`.
119
+ """
120
+ shipping_address: NotRequired[PaymentAddressTypedDict]
121
+ billing_email: NotRequired[str]
122
+
123
+
124
+ class UpdatePaymentRequestBody(BaseModel):
125
+ description: Optional[str] = None
126
+ r"""The description of the payment. This will be shown to your customer on their card or bank statement when possible.
127
+ We truncate the description automatically according to the limits of the used payment method. The description is
128
+ also visible in any exports you generate.
129
+
130
+ We recommend you use a unique identifier so that you can always link the payment to the order in your back office.
131
+ This is particularly useful for bookkeeping.
132
+
133
+ The maximum length of the description field differs per payment method, with the absolute maximum being 255
134
+ characters. The API will not reject strings longer than the maximum length but it will truncate them to fit.
135
+ """
136
+
137
+ redirect_url: Annotated[
138
+ OptionalNullable[str], pydantic.Field(alias="redirectUrl")
139
+ ] = UNSET
140
+ r"""The URL your customer will be redirected to after the payment process.
141
+
142
+ It could make sense for the redirectUrl to contain a unique identifier – like your order ID – so you can show the
143
+ right page referencing the order when your customer returns.
144
+
145
+ The parameter is normally required, but can be omitted for recurring payments (`sequenceType: recurring`) and for
146
+ Apple Pay payments with an `applePayPaymentToken`.
147
+ """
148
+
149
+ cancel_url: Annotated[OptionalNullable[str], pydantic.Field(alias="cancelUrl")] = (
150
+ UNSET
151
+ )
152
+ r"""The URL your customer will be redirected to when the customer explicitly cancels the payment. If this URL is not
153
+ provided, the customer will be redirected to the `redirectUrl` instead — see above.
154
+
155
+ Mollie will always give you status updates via webhooks, including for the canceled status. This parameter is
156
+ therefore entirely optional, but can be useful when implementing a dedicated customer-facing flow to handle
157
+ payment cancellations.
158
+ """
159
+
160
+ webhook_url: Annotated[
161
+ OptionalNullable[str], pydantic.Field(alias="webhookUrl")
162
+ ] = UNSET
163
+ r"""The webhook URL where we will send payment status updates to.
164
+
165
+ The webhookUrl is optional, but without a webhook you will miss out on important status changes to your payment.
166
+
167
+ The webhookUrl must be reachable from Mollie's point of view, so you cannot use `localhost`. If you want to use
168
+ webhook during development on `localhost`, you must use a tool like ngrok to have the webhooks delivered to your
169
+ local machine.
170
+ """
171
+
172
+ metadata: OptionalNullable[Metadata] = UNSET
173
+ r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
174
+ you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
175
+ """
176
+
177
+ method: OptionalNullable[Method] = UNSET
178
+ r"""Normally, a payment method screen is shown. However, when using this parameter, you can choose a specific payment
179
+ method and your customer will skip the selection screen and is sent directly to the chosen payment method. The
180
+ parameter enables you to fully integrate the payment method selection into your website.
181
+
182
+ You can also specify the methods in an array. By doing so we will still show the payment method selection screen
183
+ but will only show the methods specified in the array. For example, you can use this functionality to only show
184
+ payment methods from a specific country to your customer `['bancontact', 'belfius']`.
185
+ """
186
+
187
+ locale: OptionalNullable[Locale] = UNSET
188
+ r"""Allows you to preset the language to be used."""
189
+
190
+ due_date: Annotated[Optional[str], pydantic.Field(alias="dueDate")] = None
191
+ r"""The date by which the payment should be completed in `YYYY-MM-DD` format"""
192
+
193
+ restrict_payment_methods_to_country: Annotated[
194
+ OptionalNullable[str], pydantic.Field(alias="restrictPaymentMethodsToCountry")
195
+ ] = UNSET
196
+ r"""For digital goods in most jurisdictions, you must apply the VAT rate from your customer's country. Choose the VAT
197
+ rates you have used for the order to ensure your customer's country matches the VAT country.
198
+
199
+ Use this parameter to restrict the payment methods available to your customer to those from a single country.
200
+
201
+ If available, the credit card method will still be offered, but only cards from the allowed country are accepted.
202
+
203
+ The field expects a country code in ISO 3166-1 alpha-2 format, for example `NL`.
204
+ """
205
+
206
+ testmode: OptionalNullable[bool] = UNSET
207
+ r"""Whether to create the entity in test mode or live mode.
208
+
209
+ Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
210
+ omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
211
+ `testmode` to `true`.
212
+ """
213
+
214
+ issuer: OptionalNullable[str] = UNSET
215
+ r"""**Only relevant for iDEAL, KBC/CBC, gift card, and voucher payments.**
216
+
217
+ **⚠️ With the introduction of iDEAL 2 in 2025, this field will be ignored for iDEAL payments. For more information
218
+ on the migration, refer to our [help center](https://help.mollie.com/hc/articles/19100313768338-iDEAL-2-0).**
219
+
220
+ Some payment methods are a network of connected banks or card issuers. In these cases, after selecting the payment
221
+ method, the customer may still need to select the appropriate issuer before the payment can proceed.
222
+
223
+ We provide hosted issuer selection screens, but these screens can be skipped by providing the `issuer` via the API
224
+ up front.
225
+
226
+ The full list of issuers for a specific method can be retrieved via the Methods API by using the optional
227
+ `issuers` include.
228
+
229
+ A valid issuer for iDEAL is for example `ideal_INGBNL2A` (for ING Bank).
230
+ """
231
+
232
+ billing_address: Annotated[
233
+ Optional[BillingAddress], pydantic.Field(alias="billingAddress")
234
+ ] = None
235
+ r"""The customer's billing address details. We advise to provide these details to improve fraud protection and
236
+ conversion.
237
+
238
+ Should include `email` or a valid postal address consisting of `streetAndNumber`, `postalCode`, `city` and
239
+ `country`.
240
+
241
+ Required for payment method `in3`, `klarna`, `billie` and `riverty`.
242
+ """
243
+
244
+ shipping_address: Annotated[
245
+ Optional[PaymentAddress], pydantic.Field(alias="shippingAddress")
246
+ ] = None
247
+
248
+ billing_email: Annotated[Optional[str], pydantic.Field(alias="billingEmail")] = None
249
+
250
+ @model_serializer(mode="wrap")
251
+ def serialize_model(self, handler):
252
+ optional_fields = [
253
+ "description",
254
+ "redirectUrl",
255
+ "cancelUrl",
256
+ "webhookUrl",
257
+ "metadata",
258
+ "method",
259
+ "locale",
260
+ "dueDate",
261
+ "restrictPaymentMethodsToCountry",
262
+ "testmode",
263
+ "issuer",
264
+ "billingAddress",
265
+ "shippingAddress",
266
+ "billingEmail",
267
+ ]
268
+ nullable_fields = [
269
+ "redirectUrl",
270
+ "cancelUrl",
271
+ "webhookUrl",
272
+ "metadata",
273
+ "method",
274
+ "locale",
275
+ "restrictPaymentMethodsToCountry",
276
+ "testmode",
277
+ "issuer",
278
+ ]
279
+ null_default_fields = []
280
+
281
+ serialized = handler(self)
282
+
283
+ m = {}
284
+
285
+ for n, f in type(self).model_fields.items():
286
+ k = f.alias or n
287
+ val = serialized.get(k)
288
+ serialized.pop(k, None)
289
+
290
+ optional_nullable = k in optional_fields and k in nullable_fields
291
+ is_set = (
292
+ self.__pydantic_fields_set__.intersection({n})
293
+ or k in null_default_fields
294
+ ) # pylint: disable=no-member
295
+
296
+ if val is not None and val != UNSET_SENTINEL:
297
+ m[k] = val
298
+ elif val != UNSET_SENTINEL and (
299
+ not k in optional_fields or (optional_nullable and is_set)
300
+ ):
301
+ m[k] = val
302
+
303
+ return m
304
+
305
+
306
+ class UpdatePaymentRequestTypedDict(TypedDict):
307
+ payment_id: str
308
+ r"""Provide the ID of the related payment."""
309
+ idempotency_key: NotRequired[str]
310
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
311
+ request_body: NotRequired[UpdatePaymentRequestBodyTypedDict]
312
+
313
+
314
+ class UpdatePaymentRequest(BaseModel):
315
+ payment_id: Annotated[
316
+ str,
317
+ pydantic.Field(alias="paymentId"),
318
+ FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
319
+ ]
320
+ r"""Provide the ID of the related payment."""
321
+
322
+ idempotency_key: Annotated[
323
+ Optional[str],
324
+ pydantic.Field(alias="idempotency-key"),
325
+ FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
326
+ ] = None
327
+ r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
328
+
329
+ request_body: Annotated[
330
+ Optional[UpdatePaymentRequestBody],
331
+ FieldMetadata(request=RequestMetadata(media_type="application/json")),
332
+ ] = None