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,834 @@
1
+ Metadata-Version: 2.4
2
+ Name: mollie-api-py
3
+ Version: 1.0.0
4
+ Summary: Python Client SDK Generated by Speakeasy.
5
+ License-File: LICENSE.md
6
+ Author: Speakeasy
7
+ Requires-Python: >=3.9
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.9
10
+ Classifier: Programming Language :: Python :: 3.10
11
+ Classifier: Programming Language :: Python :: 3.11
12
+ Classifier: Programming Language :: Python :: 3.12
13
+ Classifier: Programming Language :: Python :: 3.13
14
+ Classifier: Programming Language :: Python :: 3.14
15
+ Requires-Dist: eval-type-backport (>=0.2.0)
16
+ Requires-Dist: httpx (>=0.28.1)
17
+ Requires-Dist: pydantic (>=2.10.3)
18
+ Requires-Dist: python-dateutil (>=2.8.2)
19
+ Requires-Dist: typing-inspect (>=0.9.0)
20
+ Description-Content-Type: text/markdown
21
+
22
+ # mollie-api-py
23
+
24
+ Developer-friendly & type-safe Python SDK specifically catered to leverage *mollie-api-py* API.
25
+
26
+ <div align="left">
27
+ <a href="https://www.speakeasy.com/?utm_source=mollie-api-py&utm_campaign=python"><img src="https://custom-icon-badges.demolab.com/badge/-Built%20By%20Speakeasy-212015?style=for-the-badge&logoColor=FBE331&logo=speakeasy&labelColor=545454" /></a>
28
+ <a href="https://opensource.org/licenses/MIT">
29
+ <img src="https://img.shields.io/badge/License-MIT-blue.svg" style="width: 100px; height: 28px;" />
30
+ </a>
31
+ </div>
32
+
33
+ ## Migration
34
+ This documentation is for the new Mollie's SDK. You can find more details on how to migrate from the old version to the new one [here](https://github.com/mollie/mollie-api-py/blob/master//MIGRATION.md).
35
+
36
+ <!-- Start Summary [summary] -->
37
+ ## Summary
38
+
39
+
40
+ <!-- End Summary [summary] -->
41
+
42
+ <!-- Start Table of Contents [toc] -->
43
+ ## Table of Contents
44
+ <!-- $toc-max-depth=2 -->
45
+ * [mollie-api-py](https://github.com/mollie/mollie-api-py/blob/master/#mollie-api-py)
46
+ * [Migration](https://github.com/mollie/mollie-api-py/blob/master/#migration)
47
+ * [SDK Installation](https://github.com/mollie/mollie-api-py/blob/master/#sdk-installation)
48
+ * [IDE Support](https://github.com/mollie/mollie-api-py/blob/master/#ide-support)
49
+ * [SDK Example Usage](https://github.com/mollie/mollie-api-py/blob/master/#sdk-example-usage)
50
+ * [Authentication](https://github.com/mollie/mollie-api-py/blob/master/#authentication)
51
+ * [Idempotency Key](https://github.com/mollie/mollie-api-py/blob/master/#idempotency-key)
52
+ * [Add Custom User-Agent Header](https://github.com/mollie/mollie-api-py/blob/master/#add-custom-user-agent-header)
53
+ * [Add Profile ID and Testmode to Client](https://github.com/mollie/mollie-api-py/blob/master/#add-profile-id-and-testmode-to-client)
54
+ * [Available Resources and Operations](https://github.com/mollie/mollie-api-py/blob/master/#available-resources-and-operations)
55
+ * [Global Parameters](https://github.com/mollie/mollie-api-py/blob/master/#global-parameters)
56
+ * [Retries](https://github.com/mollie/mollie-api-py/blob/master/#retries)
57
+ * [Error Handling](https://github.com/mollie/mollie-api-py/blob/master/#error-handling)
58
+ * [Server Selection](https://github.com/mollie/mollie-api-py/blob/master/#server-selection)
59
+ * [Custom HTTP Client](https://github.com/mollie/mollie-api-py/blob/master/#custom-http-client)
60
+ * [Resource Management](https://github.com/mollie/mollie-api-py/blob/master/#resource-management)
61
+ * [Debugging](https://github.com/mollie/mollie-api-py/blob/master/#debugging)
62
+ * [Development](https://github.com/mollie/mollie-api-py/blob/master/#development)
63
+ * [Contributions](https://github.com/mollie/mollie-api-py/blob/master/#contributions)
64
+
65
+ <!-- End Table of Contents [toc] -->
66
+
67
+ <!-- Start SDK Installation [installation] -->
68
+ ## SDK Installation
69
+
70
+ > [!NOTE]
71
+ > **Python version upgrade policy**
72
+ >
73
+ > Once a Python version reaches its [official end of life date](https://devguide.python.org/versions/), a 3-month grace period is provided for users to upgrade. Following this grace period, the minimum python version supported in the SDK will be updated.
74
+
75
+ The SDK can be installed with *uv*, *pip*, or *poetry* package managers.
76
+
77
+ ### uv
78
+
79
+ *uv* is a fast Python package installer and resolver, designed as a drop-in replacement for pip and pip-tools. It's recommended for its speed and modern Python tooling capabilities.
80
+
81
+ ```bash
82
+ uv add mollie
83
+ ```
84
+
85
+ ### PIP
86
+
87
+ *PIP* is the default package installer for Python, enabling easy installation and management of packages from PyPI via the command line.
88
+
89
+ ```bash
90
+ pip install mollie
91
+ ```
92
+
93
+ ### Poetry
94
+
95
+ *Poetry* is a modern tool that simplifies dependency management and package publishing by using a single `pyproject.toml` file to handle project metadata and dependencies.
96
+
97
+ ```bash
98
+ poetry add mollie
99
+ ```
100
+
101
+ ### Shell and script usage with `uv`
102
+
103
+ You can use this SDK in a Python shell with [uv](https://docs.astral.sh/uv/) and the `uvx` command that comes with it like so:
104
+
105
+ ```shell
106
+ uvx --from mollie python
107
+ ```
108
+
109
+ It's also possible to write a standalone Python script without needing to set up a whole project like so:
110
+
111
+ ```python
112
+ #!/usr/bin/env -S uv run --script
113
+ # /// script
114
+ # requires-python = ">=3.9"
115
+ # dependencies = [
116
+ # "mollie",
117
+ # ]
118
+ # ///
119
+
120
+ from mollie import ClientSDK
121
+
122
+ sdk = ClientSDK(
123
+ # SDK arguments
124
+ )
125
+
126
+ # Rest of script here...
127
+ ```
128
+
129
+ Once that is saved to a file, you can run it with `uv run script.py` where
130
+ `script.py` can be replaced with the actual file name.
131
+ <!-- End SDK Installation [installation] -->
132
+
133
+ <!-- Start IDE Support [idesupport] -->
134
+ ## IDE Support
135
+
136
+ ### PyCharm
137
+
138
+ Generally, the SDK will work well with most IDEs out of the box. However, when using PyCharm, you can enjoy much better integration with Pydantic by installing an additional plugin.
139
+
140
+ - [PyCharm Pydantic Plugin](https://docs.pydantic.dev/latest/integrations/pycharm/)
141
+ <!-- End IDE Support [idesupport] -->
142
+
143
+ <!-- Start SDK Example Usage [usage] -->
144
+ ## SDK Example Usage
145
+
146
+ ### Example
147
+
148
+ ```python
149
+ # Synchronous Example
150
+ import mollie
151
+ from mollie import ClientSDK
152
+ import os
153
+
154
+
155
+ with ClientSDK(
156
+ testmode=False,
157
+ security=mollie.Security(
158
+ api_key=os.getenv("CLIENT_API_KEY", ""),
159
+ ),
160
+ ) as client_sdk:
161
+
162
+ res = client_sdk.balances.list(currency="EUR", from_="bal_gVMhHKqSSRYJyPsuoPNFH", limit=50, idempotency_key="123e4567-e89b-12d3-a456-426")
163
+
164
+ # Handle response
165
+ print(res)
166
+ ```
167
+
168
+ </br>
169
+
170
+ The same SDK client can also be used to make asynchronous requests by importing asyncio.
171
+
172
+ ```python
173
+ # Asynchronous Example
174
+ import asyncio
175
+ import mollie
176
+ from mollie import ClientSDK
177
+ import os
178
+
179
+ async def main():
180
+
181
+ async with ClientSDK(
182
+ testmode=False,
183
+ security=mollie.Security(
184
+ api_key=os.getenv("CLIENT_API_KEY", ""),
185
+ ),
186
+ ) as client_sdk:
187
+
188
+ res = await client_sdk.balances.list_async(currency="EUR", from_="bal_gVMhHKqSSRYJyPsuoPNFH", limit=50, idempotency_key="123e4567-e89b-12d3-a456-426")
189
+
190
+ # Handle response
191
+ print(res)
192
+
193
+ asyncio.run(main())
194
+ ```
195
+ <!-- End SDK Example Usage [usage] -->
196
+
197
+ <!-- Start Authentication [security] -->
198
+ ## Authentication
199
+
200
+ ### Per-Client Security Schemes
201
+
202
+ This SDK supports the following security schemes globally:
203
+
204
+ | Name | Type | Scheme | Environment Variable |
205
+ | --------- | ------ | ------------ | -------------------- |
206
+ | `api_key` | http | HTTP Bearer | `CLIENT_API_KEY` |
207
+ | `o_auth` | oauth2 | OAuth2 token | `CLIENT_O_AUTH` |
208
+
209
+ You can set the security parameters through the `security` optional parameter when initializing the SDK client instance. The selected scheme will be used by default to authenticate with the API for all operations that support it. For example:
210
+ ```python
211
+ import mollie
212
+ from mollie import ClientSDK
213
+ import os
214
+
215
+
216
+ with ClientSDK(
217
+ security=mollie.Security(
218
+ api_key=os.getenv("CLIENT_API_KEY", ""),
219
+ ),
220
+ testmode=False,
221
+ ) as client_sdk:
222
+
223
+ res = client_sdk.balances.list(currency="EUR", from_="bal_gVMhHKqSSRYJyPsuoPNFH", limit=50, idempotency_key="123e4567-e89b-12d3-a456-426")
224
+
225
+ # Handle response
226
+ print(res)
227
+
228
+ ```
229
+ <!-- End Authentication [security] -->
230
+
231
+ <!-- Start Idempotency Key -->
232
+ ## Idempotency Key
233
+
234
+ This SDK supports the usage of Idempotency Keys. See our [documentation](https://docs.mollie.com/reference/api-idempotency) on how to use it.
235
+
236
+ ```python
237
+ import os
238
+ from mollie import ClientSDK, Security
239
+
240
+ client = ClientSDK(
241
+ security = Security(
242
+ api_key = os.getenv("CLIENT_API_KEY", "test_..."),
243
+ )
244
+ )
245
+
246
+ payload = {
247
+ "description": "Description",
248
+ "amount": {
249
+ "currency": "EUR",
250
+ "value": "5.00",
251
+ },
252
+ "redirect_url": "https://example.org/redirect",
253
+ }
254
+
255
+ idempotency_key = "<some-idempotency-key>"
256
+ payment1 = client.payments.create(
257
+ payment_request=payload,
258
+ idempotency_key=idempotency_key
259
+ )
260
+
261
+ payment2 = client.payments.create(
262
+ payment_request=payload,
263
+ idempotency_key=idempotency_key
264
+ )
265
+ print(f"Payment created with ID: {payment1.id}")
266
+ print(f"Payment created with ID: {payment2.id}")
267
+ print("Payments are the same" if payment1.id == payment2.id else "Payments are different")
268
+ ```
269
+ <!-- End Idempotency Key -->
270
+
271
+ <!-- Start Add Custom User-Agent Header -->
272
+
273
+ ## Add Custom User-Agent Header
274
+ The SDK allows you to append a custom suffix to the `User-Agent` header for all requests. This can be used to identify
275
+ your application or integration when interacting with the API, making it easier to track usage or debug requests. The suffix is automatically added to the default User-Agent string generated by the SDK. You can add it when creating the
276
+ client:
277
+
278
+ ```py
279
+ client = ClientSDK(
280
+ security = Security(
281
+ api_key = os.getenv("CLIENT_API_KEY", "test_..."),
282
+ ),
283
+ custom_user_agent = "insert something here"
284
+ )
285
+ ```
286
+
287
+ <!-- End Add Custom User-Agent Header -->
288
+
289
+ <!-- Start Add Profile ID and Testmode to Client -->
290
+
291
+ ## Add Profile ID and Testmode to Client
292
+ The SDK allows you to define the `profileId` and `testmode` in the client. This way, you don't need to add this
293
+ information to the payload every time when using OAuth. This will not override the details provided in the individual
294
+ requests.
295
+
296
+ ```py
297
+ client = ClientSDK(
298
+ security = Security(
299
+ o_auth = os.getenv("CLIENT_OAUTH_KEY", "test_..."),
300
+ ),
301
+ testmode = False,
302
+ profileId = "pfl_..."
303
+ )
304
+ ```
305
+
306
+ <!-- End Add Profile ID and Testmode to Client -->
307
+
308
+ <!-- Start Available Resources and Operations [operations] -->
309
+ ## Available Resources and Operations
310
+
311
+ <details open>
312
+ <summary>Available methods</summary>
313
+
314
+ ### [balance_transfers](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/balancetransfers/README.md)
315
+
316
+ * [create](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/balancetransfers/README.md#create) - Create a Connect balance transfer
317
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/balancetransfers/README.md#list) - List all Connect balance transfers
318
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/balancetransfers/README.md#get) - Get a Connect balance transfer
319
+
320
+ ### [balances](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/balances/README.md)
321
+
322
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/balances/README.md#list) - List balances
323
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/balances/README.md#get) - Get balance
324
+ * [get_primary](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/balances/README.md#get_primary) - Get primary balance
325
+ * [get_report](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/balances/README.md#get_report) - Get balance report
326
+ * [list_transactions](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/balances/README.md#list_transactions) - List balance transactions
327
+
328
+ ### [capabilities](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/capabilities/README.md)
329
+
330
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/capabilities/README.md#list) - List capabilities
331
+
332
+ ### [captures](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/captures/README.md)
333
+
334
+ * [create](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/captures/README.md#create) - Create capture
335
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/captures/README.md#list) - List captures
336
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/captures/README.md#get) - Get capture
337
+
338
+ ### [chargebacks](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/chargebackssdk/README.md)
339
+
340
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/chargebackssdk/README.md#list) - List payment chargebacks
341
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/chargebackssdk/README.md#get) - Get payment chargeback
342
+ * [all](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/chargebackssdk/README.md#all) - List all chargebacks
343
+
344
+ ### [client_links](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/clientlinks/README.md)
345
+
346
+ * [create](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/clientlinks/README.md#create) - Create client link
347
+
348
+ ### [clients](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/clients/README.md)
349
+
350
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/clients/README.md#list) - List clients
351
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/clients/README.md#get) - Get client
352
+
353
+ ### [customers](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/customers/README.md)
354
+
355
+ * [create](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/customers/README.md#create) - Create customer
356
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/customers/README.md#list) - List customers
357
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/customers/README.md#get) - Get customer
358
+ * [update](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/customers/README.md#update) - Update customer
359
+ * [delete](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/customers/README.md#delete) - Delete customer
360
+ * [create_payment](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/customers/README.md#create_payment) - Create customer payment
361
+ * [list_payments](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/customers/README.md#list_payments) - List customer payments
362
+
363
+ ### [delayed_routing](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/delayedrouting/README.md)
364
+
365
+ * [create](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/delayedrouting/README.md#create) - Create a delayed route
366
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/delayedrouting/README.md#list) - List payment routes
367
+
368
+ ### [invoices](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/invoices/README.md)
369
+
370
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/invoices/README.md#list) - List invoices
371
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/invoices/README.md#get) - Get invoice
372
+
373
+ ### [mandates](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/mandates/README.md)
374
+
375
+ * [create](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/mandates/README.md#create) - Create mandate
376
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/mandates/README.md#list) - List mandates
377
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/mandates/README.md#get) - Get mandate
378
+ * [revoke](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/mandates/README.md#revoke) - Revoke mandate
379
+
380
+ ### [methods](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/methods/README.md)
381
+
382
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/methods/README.md#list) - List payment methods
383
+ * [all](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/methods/README.md#all) - List all payment methods
384
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/methods/README.md#get) - Get payment method
385
+
386
+ ### [onboarding](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/onboarding/README.md)
387
+
388
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/onboarding/README.md#get) - Get onboarding status
389
+ * [submit](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/onboarding/README.md#submit) - Submit onboarding data
390
+
391
+ ### [organizations](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/organizations/README.md)
392
+
393
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/organizations/README.md#get) - Get organization
394
+ * [get_current](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/organizations/README.md#get_current) - Get current organization
395
+ * [get_partner](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/organizations/README.md#get_partner) - Get partner status
396
+
397
+ ### [payment_links](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/paymentlinks/README.md)
398
+
399
+ * [create](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/paymentlinks/README.md#create) - Create payment link
400
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/paymentlinks/README.md#list) - List payment links
401
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/paymentlinks/README.md#get) - Get payment link
402
+ * [update](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/paymentlinks/README.md#update) - Update payment link
403
+ * [delete](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/paymentlinks/README.md#delete) - Delete payment link
404
+ * [list_payments](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/paymentlinks/README.md#list_payments) - Get payment link payments
405
+
406
+ ### [payments](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/paymentssdk/README.md)
407
+
408
+ * [create](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/paymentssdk/README.md#create) - Create payment
409
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/paymentssdk/README.md#list) - List payments
410
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/paymentssdk/README.md#get) - Get payment
411
+ * [update](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/paymentssdk/README.md#update) - Update payment
412
+ * [cancel](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/paymentssdk/README.md#cancel) - Cancel payment
413
+ * [release_authorization](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/paymentssdk/README.md#release_authorization) - Release payment authorization
414
+
415
+ ### [permissions](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/permissions/README.md)
416
+
417
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/permissions/README.md#list) - List permissions
418
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/permissions/README.md#get) - Get permission
419
+
420
+ ### [profiles](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/profiles/README.md)
421
+
422
+ * [create](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/profiles/README.md#create) - Create profile
423
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/profiles/README.md#list) - List profiles
424
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/profiles/README.md#get) - Get profile
425
+ * [update](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/profiles/README.md#update) - Update profile
426
+ * [delete](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/profiles/README.md#delete) - Delete profile
427
+ * [get_current](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/profiles/README.md#get_current) - Get current profile
428
+
429
+ ### [refunds](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/refundssdk/README.md)
430
+
431
+ * [create](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/refundssdk/README.md#create) - Create payment refund
432
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/refundssdk/README.md#list) - List payment refunds
433
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/refundssdk/README.md#get) - Get payment refund
434
+ * [cancel](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/refundssdk/README.md#cancel) - Cancel payment refund
435
+ * [all](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/refundssdk/README.md#all) - List all refunds
436
+
437
+ ### [sales_invoices](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/salesinvoices/README.md)
438
+
439
+ * [create](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/salesinvoices/README.md#create) - Create sales invoice
440
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/salesinvoices/README.md#list) - List sales invoices
441
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/salesinvoices/README.md#get) - Get sales invoice
442
+ * [update](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/salesinvoices/README.md#update) - Update sales invoice
443
+ * [delete](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/salesinvoices/README.md#delete) - Delete sales invoice
444
+
445
+ ### [settlements](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/settlements/README.md)
446
+
447
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/settlements/README.md#list) - List settlements
448
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/settlements/README.md#get) - Get settlement
449
+ * [get_open](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/settlements/README.md#get_open) - Get open settlement
450
+ * [get_next](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/settlements/README.md#get_next) - Get next settlement
451
+ * [list_payments](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/settlements/README.md#list_payments) - List settlement payments
452
+ * [list_captures](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/settlements/README.md#list_captures) - List settlement captures
453
+ * [list_refunds](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/settlements/README.md#list_refunds) - List settlement refunds
454
+ * [list_chargebacks](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/settlements/README.md#list_chargebacks) - List settlement chargebacks
455
+
456
+ ### [subscriptions](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/subscriptions/README.md)
457
+
458
+ * [create](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/subscriptions/README.md#create) - Create subscription
459
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/subscriptions/README.md#list) - List customer subscriptions
460
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/subscriptions/README.md#get) - Get subscription
461
+ * [update](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/subscriptions/README.md#update) - Update subscription
462
+ * [cancel](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/subscriptions/README.md#cancel) - Cancel subscription
463
+ * [all](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/subscriptions/README.md#all) - List all subscriptions
464
+ * [list_payments](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/subscriptions/README.md#list_payments) - List subscription payments
465
+
466
+ ### [terminals](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/terminals/README.md)
467
+
468
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/terminals/README.md#list) - List terminals
469
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/terminals/README.md#get) - Get terminal
470
+
471
+ ### [wallets](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/wallets/README.md)
472
+
473
+ * [request_apple_pay_session](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/wallets/README.md#request_apple_pay_session) - Request Apple Pay payment session
474
+
475
+ ### [webhook_events](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/webhookevents/README.md)
476
+
477
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/webhookevents/README.md#get) - Get a Webhook Event
478
+
479
+ ### [webhooks](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/webhooks/README.md)
480
+
481
+ * [create](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/webhooks/README.md#create) - Create a webhook
482
+ * [list](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/webhooks/README.md#list) - List all webhooks
483
+ * [update](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/webhooks/README.md#update) - Update a webhook
484
+ * [get](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/webhooks/README.md#get) - Get a webhook
485
+ * [delete](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/webhooks/README.md#delete) - Delete a webhook
486
+ * [test](https://github.com/mollie/mollie-api-py/blob/master/docs/sdks/webhooks/README.md#test) - Test a webhook
487
+
488
+ </details>
489
+ <!-- End Available Resources and Operations [operations] -->
490
+
491
+ <!-- Start Global Parameters [global-parameters] -->
492
+ ## Global Parameters
493
+
494
+ Certain parameters are configured globally. These parameters may be set on the SDK client instance itself during initialization. When configured as an option during SDK initialization, These global values will be used as defaults on the operations that use them. When such operations are called, there is a place in each to override the global value, if needed.
495
+
496
+ For example, you can set `profileId` to `` at SDK initialization and then you do not have to pass the same value on calls to operations like `list`. But if you want to do so you may, which will locally override the global setting. See the example code below for a demonstration.
497
+
498
+
499
+ ### Available Globals
500
+
501
+ The following global parameters are available.
502
+ Global parameters can also be set via environment variable.
503
+
504
+ | Name | Type | Description | Environment |
505
+ | ----------------- | ---- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------ |
506
+ | profile_id | str | The identifier referring to the [profile](https://github.com/mollie/mollie-api-py/blob/master/get-profile) you wish to<br/>retrieve the resources for.<br/><br/>Most API credentials are linked to a single profile. In these cases the `profileId` can be omitted. For<br/>organization-level credentials such as OAuth access tokens however, the `profileId` parameter is required. | CLIENT_PROFILE_ID |
507
+ | testmode | bool | Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query<br/>parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by<br/>setting the `testmode` query parameter to `true`.<br/><br/>Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa. | CLIENT_TESTMODE |
508
+ | custom_user_agent | str | Custom user agent string to be appended to the default Mollie SDK user agent. | CLIENT_CUSTOM_USER_AGENT |
509
+
510
+ ### Example
511
+
512
+ ```python
513
+ import mollie
514
+ from mollie import ClientSDK
515
+ import os
516
+
517
+
518
+ with ClientSDK(
519
+ testmode=False,
520
+ profile_id="<id>",
521
+ custom_user_agent="<value>",
522
+ security=mollie.Security(
523
+ api_key=os.getenv("CLIENT_API_KEY", ""),
524
+ ),
525
+ ) as client_sdk:
526
+
527
+ res = client_sdk.balances.list(currency="EUR", from_="bal_gVMhHKqSSRYJyPsuoPNFH", limit=50, idempotency_key="123e4567-e89b-12d3-a456-426")
528
+
529
+ # Handle response
530
+ print(res)
531
+
532
+ ```
533
+ <!-- End Global Parameters [global-parameters] -->
534
+
535
+ <!-- Start Retries [retries] -->
536
+ ## Retries
537
+
538
+ Some of the endpoints in this SDK support retries. If you use the SDK without any configuration, it will fall back to the default retry strategy provided by the API. However, the default retry strategy can be overridden on a per-operation basis, or across the entire SDK.
539
+
540
+ To change the default retry strategy for a single API call, simply provide a `RetryConfig` object to the call:
541
+ ```python
542
+ import mollie
543
+ from mollie import ClientSDK
544
+ from mollie.utils import BackoffStrategy, RetryConfig
545
+ import os
546
+
547
+
548
+ with ClientSDK(
549
+ testmode=False,
550
+ security=mollie.Security(
551
+ api_key=os.getenv("CLIENT_API_KEY", ""),
552
+ ),
553
+ ) as client_sdk:
554
+
555
+ res = client_sdk.balances.list(currency="EUR", from_="bal_gVMhHKqSSRYJyPsuoPNFH", limit=50, idempotency_key="123e4567-e89b-12d3-a456-426",
556
+ RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False))
557
+
558
+ # Handle response
559
+ print(res)
560
+
561
+ ```
562
+
563
+ If you'd like to override the default retry strategy for all operations that support retries, you can use the `retry_config` optional parameter when initializing the SDK:
564
+ ```python
565
+ import mollie
566
+ from mollie import ClientSDK
567
+ from mollie.utils import BackoffStrategy, RetryConfig
568
+ import os
569
+
570
+
571
+ with ClientSDK(
572
+ retry_config=RetryConfig("backoff", BackoffStrategy(1, 50, 1.1, 100), False),
573
+ testmode=False,
574
+ security=mollie.Security(
575
+ api_key=os.getenv("CLIENT_API_KEY", ""),
576
+ ),
577
+ ) as client_sdk:
578
+
579
+ res = client_sdk.balances.list(currency="EUR", from_="bal_gVMhHKqSSRYJyPsuoPNFH", limit=50, idempotency_key="123e4567-e89b-12d3-a456-426")
580
+
581
+ # Handle response
582
+ print(res)
583
+
584
+ ```
585
+ <!-- End Retries [retries] -->
586
+
587
+ <!-- Start Error Handling [errors] -->
588
+ ## Error Handling
589
+
590
+ [`ClientError`](https://github.com/mollie/mollie-api-py/blob/master/./src/mollie/models/clienterror.py) is the base class for all HTTP error responses. It has the following properties:
591
+
592
+ | Property | Type | Description |
593
+ | ------------------ | ---------------- | --------------------------------------------------------------------------------------- |
594
+ | `err.message` | `str` | Error message |
595
+ | `err.status_code` | `int` | HTTP response status code eg `404` |
596
+ | `err.headers` | `httpx.Headers` | HTTP response headers |
597
+ | `err.body` | `str` | HTTP body. Can be empty string if no body is returned. |
598
+ | `err.raw_response` | `httpx.Response` | Raw HTTP response |
599
+ | `err.data` | | Optional. Some errors may contain structured data. [See Error Classes](https://github.com/mollie/mollie-api-py/blob/master/#error-classes). |
600
+
601
+ ### Example
602
+ ```python
603
+ import mollie
604
+ from mollie import ClientSDK, models
605
+ import os
606
+
607
+
608
+ with ClientSDK(
609
+ testmode=False,
610
+ security=mollie.Security(
611
+ api_key=os.getenv("CLIENT_API_KEY", ""),
612
+ ),
613
+ ) as client_sdk:
614
+ res = None
615
+ try:
616
+
617
+ res = client_sdk.balances.list(currency="EUR", from_="bal_gVMhHKqSSRYJyPsuoPNFH", limit=50, idempotency_key="123e4567-e89b-12d3-a456-426")
618
+
619
+ # Handle response
620
+ print(res)
621
+
622
+
623
+ except models.ClientError as e:
624
+ # The base class for HTTP error responses
625
+ print(e.message)
626
+ print(e.status_code)
627
+ print(e.body)
628
+ print(e.headers)
629
+ print(e.raw_response)
630
+
631
+ # Depending on the method different errors may be thrown
632
+ if isinstance(e, models.ErrorResponse):
633
+ print(e.data.status) # int
634
+ print(e.data.title) # str
635
+ print(e.data.detail) # str
636
+ print(e.data.field) # Optional[str]
637
+ print(e.data.links) # mollie.ErrorsLinks
638
+ ```
639
+
640
+ ### Error Classes
641
+ **Primary errors:**
642
+ * [`ClientError`](https://github.com/mollie/mollie-api-py/blob/master/./src/mollie/models/clienterror.py): The base class for HTTP error responses.
643
+ * [`ErrorResponse`](https://github.com/mollie/mollie-api-py/blob/master/./src/mollie/models/errorresponse.py): An error response object. *
644
+
645
+ <details><summary>Less common errors (5)</summary>
646
+
647
+ <br />
648
+
649
+ **Network errors:**
650
+ * [`httpx.RequestError`](https://www.python-httpx.org/exceptions/#httpx.RequestError): Base class for request errors.
651
+ * [`httpx.ConnectError`](https://www.python-httpx.org/exceptions/#httpx.ConnectError): HTTP client was unable to make a request to a server.
652
+ * [`httpx.TimeoutException`](https://www.python-httpx.org/exceptions/#httpx.TimeoutException): HTTP request timed out.
653
+
654
+
655
+ **Inherit from [`ClientError`](https://github.com/mollie/mollie-api-py/blob/master/./src/mollie/models/clienterror.py)**:
656
+ * [`ResponseValidationError`](https://github.com/mollie/mollie-api-py/blob/master/./src/mollie/models/responsevalidationerror.py): Type mismatch between the response data and the expected Pydantic model. Provides access to the Pydantic validation error via the `cause` attribute.
657
+
658
+ </details>
659
+
660
+ \* Check [the method documentation](https://github.com/mollie/mollie-api-py/blob/master/#available-resources-and-operations) to see if the error is applicable.
661
+ <!-- End Error Handling [errors] -->
662
+
663
+ <!-- Start Server Selection [server] -->
664
+ ## Server Selection
665
+
666
+ ### Override Server URL Per-Client
667
+
668
+ The default server can be overridden globally by passing a URL to the `server_url: str` optional parameter when initializing the SDK client instance. For example:
669
+ ```python
670
+ import mollie
671
+ from mollie import ClientSDK
672
+ import os
673
+
674
+
675
+ with ClientSDK(
676
+ server_url="https://api.mollie.com/v2",
677
+ testmode=False,
678
+ security=mollie.Security(
679
+ api_key=os.getenv("CLIENT_API_KEY", ""),
680
+ ),
681
+ ) as client_sdk:
682
+
683
+ res = client_sdk.balances.list(currency="EUR", from_="bal_gVMhHKqSSRYJyPsuoPNFH", limit=50, idempotency_key="123e4567-e89b-12d3-a456-426")
684
+
685
+ # Handle response
686
+ print(res)
687
+
688
+ ```
689
+ <!-- End Server Selection [server] -->
690
+
691
+ <!-- Start Custom HTTP Client [http-client] -->
692
+ ## Custom HTTP Client
693
+
694
+ The Python SDK makes API calls using the [httpx](https://www.python-httpx.org/) HTTP library. In order to provide a convenient way to configure timeouts, cookies, proxies, custom headers, and other low-level configuration, you can initialize the SDK client with your own HTTP client instance.
695
+ Depending on whether you are using the sync or async version of the SDK, you can pass an instance of `HttpClient` or `AsyncHttpClient` respectively, which are Protocol's ensuring that the client has the necessary methods to make API calls.
696
+ This allows you to wrap the client with your own custom logic, such as adding custom headers, logging, or error handling, or you can just pass an instance of `httpx.Client` or `httpx.AsyncClient` directly.
697
+
698
+ For example, you could specify a header for every request that this sdk makes as follows:
699
+ ```python
700
+ from mollie import ClientSDK
701
+ import httpx
702
+
703
+ http_client = httpx.Client(headers={"x-custom-header": "someValue"})
704
+ s = ClientSDK(client=http_client)
705
+ ```
706
+
707
+ or you could wrap the client with your own custom logic:
708
+ ```python
709
+ from mollie import ClientSDK
710
+ from mollie.httpclient import AsyncHttpClient
711
+ import httpx
712
+
713
+ class CustomClient(AsyncHttpClient):
714
+ client: AsyncHttpClient
715
+
716
+ def __init__(self, client: AsyncHttpClient):
717
+ self.client = client
718
+
719
+ async def send(
720
+ self,
721
+ request: httpx.Request,
722
+ *,
723
+ stream: bool = False,
724
+ auth: Union[
725
+ httpx._types.AuthTypes, httpx._client.UseClientDefault, None
726
+ ] = httpx.USE_CLIENT_DEFAULT,
727
+ follow_redirects: Union[
728
+ bool, httpx._client.UseClientDefault
729
+ ] = httpx.USE_CLIENT_DEFAULT,
730
+ ) -> httpx.Response:
731
+ request.headers["Client-Level-Header"] = "added by client"
732
+
733
+ return await self.client.send(
734
+ request, stream=stream, auth=auth, follow_redirects=follow_redirects
735
+ )
736
+
737
+ def build_request(
738
+ self,
739
+ method: str,
740
+ url: httpx._types.URLTypes,
741
+ *,
742
+ content: Optional[httpx._types.RequestContent] = None,
743
+ data: Optional[httpx._types.RequestData] = None,
744
+ files: Optional[httpx._types.RequestFiles] = None,
745
+ json: Optional[Any] = None,
746
+ params: Optional[httpx._types.QueryParamTypes] = None,
747
+ headers: Optional[httpx._types.HeaderTypes] = None,
748
+ cookies: Optional[httpx._types.CookieTypes] = None,
749
+ timeout: Union[
750
+ httpx._types.TimeoutTypes, httpx._client.UseClientDefault
751
+ ] = httpx.USE_CLIENT_DEFAULT,
752
+ extensions: Optional[httpx._types.RequestExtensions] = None,
753
+ ) -> httpx.Request:
754
+ return self.client.build_request(
755
+ method,
756
+ url,
757
+ content=content,
758
+ data=data,
759
+ files=files,
760
+ json=json,
761
+ params=params,
762
+ headers=headers,
763
+ cookies=cookies,
764
+ timeout=timeout,
765
+ extensions=extensions,
766
+ )
767
+
768
+ s = ClientSDK(async_client=CustomClient(httpx.AsyncClient()))
769
+ ```
770
+ <!-- End Custom HTTP Client [http-client] -->
771
+
772
+ <!-- Start Resource Management [resource-management] -->
773
+ ## Resource Management
774
+
775
+ The `ClientSDK` class implements the context manager protocol and registers a finalizer function to close the underlying sync and async HTTPX clients it uses under the hood. This will close HTTP connections, release memory and free up other resources held by the SDK. In short-lived Python programs and notebooks that make a few SDK method calls, resource management may not be a concern. However, in longer-lived programs, it is beneficial to create a single SDK instance via a [context manager][context-manager] and reuse it across the application.
776
+
777
+ [context-manager]: https://docs.python.org/3/reference/datamodel.html#context-managers
778
+
779
+ ```python
780
+ import mollie
781
+ from mollie import ClientSDK
782
+ import os
783
+ def main():
784
+
785
+ with ClientSDK(
786
+ testmode=False,
787
+ security=mollie.Security(
788
+ api_key=os.getenv("CLIENT_API_KEY", ""),
789
+ ),
790
+ ) as client_sdk:
791
+ # Rest of application here...
792
+
793
+
794
+ # Or when using async:
795
+ async def amain():
796
+
797
+ async with ClientSDK(
798
+ testmode=False,
799
+ security=mollie.Security(
800
+ api_key=os.getenv("CLIENT_API_KEY", ""),
801
+ ),
802
+ ) as client_sdk:
803
+ # Rest of application here...
804
+ ```
805
+ <!-- End Resource Management [resource-management] -->
806
+
807
+ <!-- Start Debugging [debug] -->
808
+ ## Debugging
809
+
810
+ You can setup your SDK to emit debug logs for SDK requests and responses.
811
+
812
+ You can pass your own logger class directly into your SDK.
813
+ ```python
814
+ from mollie import ClientSDK
815
+ import logging
816
+
817
+ logging.basicConfig(level=logging.DEBUG)
818
+ s = ClientSDK(debug_logger=logging.getLogger("mollie"))
819
+ ```
820
+
821
+ You can also enable a default debug logger by setting an environment variable `CLIENT_DEBUG` to true.
822
+ <!-- End Debugging [debug] -->
823
+
824
+ <!-- Placeholder for Future Speakeasy SDK Sections -->
825
+
826
+ # Development
827
+
828
+ ## Contributions
829
+
830
+ While we value open-source contributions to this SDK, this library is generated programmatically. Any manual changes added to internal files will be overwritten on the next generation.
831
+ We look forward to hearing your feedback. Feel free to open a PR or an issue with a proof of concept and we'll do our best to include it in a future release.
832
+
833
+ ### SDK Created by [Speakeasy](https://www.speakeasy.com/?utm_source=mollie-api-py&utm_campaign=python)
834
+