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,1323 @@
1
+ """Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
2
+
3
+ from .basesdk import BaseSDK
4
+ from mollie import models, utils
5
+ from mollie._hooks import HookContext
6
+ from mollie.types import OptionalNullable, UNSET
7
+ from mollie.utils import get_security_from_env
8
+ from mollie.utils.unmarshal_json_response import unmarshal_json_response
9
+ from typing import Any, Mapping, Optional, Union
10
+
11
+
12
+ class PaymentLinks(BaseSDK):
13
+ def create(
14
+ self,
15
+ *,
16
+ idempotency_key: Optional[str] = None,
17
+ request_body: Optional[
18
+ Union[
19
+ models.CreatePaymentLinkRequestBody,
20
+ models.CreatePaymentLinkRequestBodyTypedDict,
21
+ ]
22
+ ] = None,
23
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
24
+ server_url: Optional[str] = None,
25
+ timeout_ms: Optional[int] = None,
26
+ http_headers: Optional[Mapping[str, str]] = None,
27
+ ) -> models.PaymentLinkResponse:
28
+ r"""Create payment link
29
+
30
+ With the Payment links API you can generate payment links that by default, unlike regular payments, do not expire.
31
+ The payment link can be shared with your customers and will redirect them to them the payment page where they can
32
+ complete the payment. A [payment](get-payment) will only be created once the customer initiates the payment.
33
+
34
+ :param idempotency_key: A unique key to ensure idempotent requests. This key should be a UUID v4 string.
35
+ :param request_body:
36
+ :param retries: Override the default retry configuration for this method
37
+ :param server_url: Override the default server URL for this method
38
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
39
+ :param http_headers: Additional headers to set or replace on requests.
40
+ """
41
+ base_url = None
42
+ url_variables = None
43
+ if timeout_ms is None:
44
+ timeout_ms = self.sdk_configuration.timeout_ms
45
+
46
+ if server_url is not None:
47
+ base_url = server_url
48
+ else:
49
+ base_url = self._get_url(base_url, url_variables)
50
+
51
+ request = models.CreatePaymentLinkRequest(
52
+ idempotency_key=idempotency_key,
53
+ request_body=utils.get_pydantic_model(
54
+ request_body, Optional[models.CreatePaymentLinkRequestBody]
55
+ ),
56
+ )
57
+
58
+ req = self._build_request(
59
+ method="POST",
60
+ path="/payment-links",
61
+ base_url=base_url,
62
+ url_variables=url_variables,
63
+ request=request,
64
+ request_body_required=False,
65
+ request_has_path_params=False,
66
+ request_has_query_params=True,
67
+ user_agent_header="user-agent",
68
+ accept_header_value="application/hal+json",
69
+ http_headers=http_headers,
70
+ security=self.sdk_configuration.security,
71
+ get_serialized_body=lambda: utils.serialize_request_body(
72
+ request.request_body,
73
+ False,
74
+ True,
75
+ "json",
76
+ Optional[models.CreatePaymentLinkRequestBody],
77
+ ),
78
+ timeout_ms=timeout_ms,
79
+ )
80
+
81
+ if retries == UNSET:
82
+ if self.sdk_configuration.retry_config is not UNSET:
83
+ retries = self.sdk_configuration.retry_config
84
+ else:
85
+ retries = utils.RetryConfig(
86
+ "backoff", utils.BackoffStrategy(500, 5000, 2, 7500), True
87
+ )
88
+
89
+ retry_config = None
90
+ if isinstance(retries, utils.RetryConfig):
91
+ retry_config = (retries, ["5xx"])
92
+
93
+ http_res = self.do_request(
94
+ hook_ctx=HookContext(
95
+ config=self.sdk_configuration,
96
+ base_url=base_url or "",
97
+ operation_id="create-payment-link",
98
+ oauth2_scopes=None,
99
+ security_source=get_security_from_env(
100
+ self.sdk_configuration.security, models.Security
101
+ ),
102
+ ),
103
+ request=req,
104
+ error_status_codes=["404", "422", "4XX", "5XX"],
105
+ retry_config=retry_config,
106
+ )
107
+
108
+ response_data: Any = None
109
+ if utils.match_response(http_res, "201", "application/hal+json"):
110
+ return unmarshal_json_response(models.PaymentLinkResponse, http_res)
111
+ if utils.match_response(http_res, ["404", "422"], "application/hal+json"):
112
+ response_data = unmarshal_json_response(models.ErrorResponseData, http_res)
113
+ raise models.ErrorResponse(response_data, http_res)
114
+ if utils.match_response(http_res, "4XX", "*"):
115
+ http_res_text = utils.stream_to_text(http_res)
116
+ raise models.APIError("API error occurred", http_res, http_res_text)
117
+ if utils.match_response(http_res, "5XX", "*"):
118
+ http_res_text = utils.stream_to_text(http_res)
119
+ raise models.APIError("API error occurred", http_res, http_res_text)
120
+
121
+ raise models.APIError("Unexpected response received", http_res)
122
+
123
+ async def create_async(
124
+ self,
125
+ *,
126
+ idempotency_key: Optional[str] = None,
127
+ request_body: Optional[
128
+ Union[
129
+ models.CreatePaymentLinkRequestBody,
130
+ models.CreatePaymentLinkRequestBodyTypedDict,
131
+ ]
132
+ ] = None,
133
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
134
+ server_url: Optional[str] = None,
135
+ timeout_ms: Optional[int] = None,
136
+ http_headers: Optional[Mapping[str, str]] = None,
137
+ ) -> models.PaymentLinkResponse:
138
+ r"""Create payment link
139
+
140
+ With the Payment links API you can generate payment links that by default, unlike regular payments, do not expire.
141
+ The payment link can be shared with your customers and will redirect them to them the payment page where they can
142
+ complete the payment. A [payment](get-payment) will only be created once the customer initiates the payment.
143
+
144
+ :param idempotency_key: A unique key to ensure idempotent requests. This key should be a UUID v4 string.
145
+ :param request_body:
146
+ :param retries: Override the default retry configuration for this method
147
+ :param server_url: Override the default server URL for this method
148
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
149
+ :param http_headers: Additional headers to set or replace on requests.
150
+ """
151
+ base_url = None
152
+ url_variables = None
153
+ if timeout_ms is None:
154
+ timeout_ms = self.sdk_configuration.timeout_ms
155
+
156
+ if server_url is not None:
157
+ base_url = server_url
158
+ else:
159
+ base_url = self._get_url(base_url, url_variables)
160
+
161
+ request = models.CreatePaymentLinkRequest(
162
+ idempotency_key=idempotency_key,
163
+ request_body=utils.get_pydantic_model(
164
+ request_body, Optional[models.CreatePaymentLinkRequestBody]
165
+ ),
166
+ )
167
+
168
+ req = self._build_request_async(
169
+ method="POST",
170
+ path="/payment-links",
171
+ base_url=base_url,
172
+ url_variables=url_variables,
173
+ request=request,
174
+ request_body_required=False,
175
+ request_has_path_params=False,
176
+ request_has_query_params=True,
177
+ user_agent_header="user-agent",
178
+ accept_header_value="application/hal+json",
179
+ http_headers=http_headers,
180
+ security=self.sdk_configuration.security,
181
+ get_serialized_body=lambda: utils.serialize_request_body(
182
+ request.request_body,
183
+ False,
184
+ True,
185
+ "json",
186
+ Optional[models.CreatePaymentLinkRequestBody],
187
+ ),
188
+ timeout_ms=timeout_ms,
189
+ )
190
+
191
+ if retries == UNSET:
192
+ if self.sdk_configuration.retry_config is not UNSET:
193
+ retries = self.sdk_configuration.retry_config
194
+ else:
195
+ retries = utils.RetryConfig(
196
+ "backoff", utils.BackoffStrategy(500, 5000, 2, 7500), True
197
+ )
198
+
199
+ retry_config = None
200
+ if isinstance(retries, utils.RetryConfig):
201
+ retry_config = (retries, ["5xx"])
202
+
203
+ http_res = await self.do_request_async(
204
+ hook_ctx=HookContext(
205
+ config=self.sdk_configuration,
206
+ base_url=base_url or "",
207
+ operation_id="create-payment-link",
208
+ oauth2_scopes=None,
209
+ security_source=get_security_from_env(
210
+ self.sdk_configuration.security, models.Security
211
+ ),
212
+ ),
213
+ request=req,
214
+ error_status_codes=["404", "422", "4XX", "5XX"],
215
+ retry_config=retry_config,
216
+ )
217
+
218
+ response_data: Any = None
219
+ if utils.match_response(http_res, "201", "application/hal+json"):
220
+ return unmarshal_json_response(models.PaymentLinkResponse, http_res)
221
+ if utils.match_response(http_res, ["404", "422"], "application/hal+json"):
222
+ response_data = unmarshal_json_response(models.ErrorResponseData, http_res)
223
+ raise models.ErrorResponse(response_data, http_res)
224
+ if utils.match_response(http_res, "4XX", "*"):
225
+ http_res_text = await utils.stream_to_text_async(http_res)
226
+ raise models.APIError("API error occurred", http_res, http_res_text)
227
+ if utils.match_response(http_res, "5XX", "*"):
228
+ http_res_text = await utils.stream_to_text_async(http_res)
229
+ raise models.APIError("API error occurred", http_res, http_res_text)
230
+
231
+ raise models.APIError("Unexpected response received", http_res)
232
+
233
+ def list(
234
+ self,
235
+ *,
236
+ from_: Optional[str] = None,
237
+ limit: OptionalNullable[int] = UNSET,
238
+ testmode: Optional[bool] = None,
239
+ idempotency_key: Optional[str] = None,
240
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
241
+ server_url: Optional[str] = None,
242
+ timeout_ms: Optional[int] = None,
243
+ http_headers: Optional[Mapping[str, str]] = None,
244
+ ) -> models.ListPaymentLinksResponse:
245
+ r"""List payment links
246
+
247
+ Retrieve a list of all payment links.
248
+
249
+ The results are paginated.
250
+
251
+ :param from_: Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the result set.
252
+ :param limit: The maximum number of items to return. Defaults to 50 items.
253
+ :param testmode: Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting the `testmode` query parameter to `true`. Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
254
+ :param idempotency_key: A unique key to ensure idempotent requests. This key should be a UUID v4 string.
255
+ :param retries: Override the default retry configuration for this method
256
+ :param server_url: Override the default server URL for this method
257
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
258
+ :param http_headers: Additional headers to set or replace on requests.
259
+ """
260
+ base_url = None
261
+ url_variables = None
262
+ if timeout_ms is None:
263
+ timeout_ms = self.sdk_configuration.timeout_ms
264
+
265
+ if server_url is not None:
266
+ base_url = server_url
267
+ else:
268
+ base_url = self._get_url(base_url, url_variables)
269
+
270
+ request = models.ListPaymentLinksRequest(
271
+ from_=from_,
272
+ limit=limit,
273
+ testmode=testmode,
274
+ idempotency_key=idempotency_key,
275
+ )
276
+
277
+ req = self._build_request(
278
+ method="GET",
279
+ path="/payment-links",
280
+ base_url=base_url,
281
+ url_variables=url_variables,
282
+ request=request,
283
+ request_body_required=False,
284
+ request_has_path_params=False,
285
+ request_has_query_params=True,
286
+ user_agent_header="user-agent",
287
+ accept_header_value="application/hal+json",
288
+ http_headers=http_headers,
289
+ _globals=models.ListPaymentLinksGlobals(
290
+ testmode=self.sdk_configuration.globals.testmode,
291
+ ),
292
+ security=self.sdk_configuration.security,
293
+ timeout_ms=timeout_ms,
294
+ )
295
+
296
+ if retries == UNSET:
297
+ if self.sdk_configuration.retry_config is not UNSET:
298
+ retries = self.sdk_configuration.retry_config
299
+ else:
300
+ retries = utils.RetryConfig(
301
+ "backoff", utils.BackoffStrategy(500, 5000, 2, 7500), True
302
+ )
303
+
304
+ retry_config = None
305
+ if isinstance(retries, utils.RetryConfig):
306
+ retry_config = (retries, ["5xx"])
307
+
308
+ http_res = self.do_request(
309
+ hook_ctx=HookContext(
310
+ config=self.sdk_configuration,
311
+ base_url=base_url or "",
312
+ operation_id="list-payment-links",
313
+ oauth2_scopes=None,
314
+ security_source=get_security_from_env(
315
+ self.sdk_configuration.security, models.Security
316
+ ),
317
+ ),
318
+ request=req,
319
+ error_status_codes=["400", "4XX", "5XX"],
320
+ retry_config=retry_config,
321
+ )
322
+
323
+ response_data: Any = None
324
+ if utils.match_response(http_res, "200", "application/hal+json"):
325
+ return unmarshal_json_response(models.ListPaymentLinksResponse, http_res)
326
+ if utils.match_response(http_res, "400", "application/hal+json"):
327
+ response_data = unmarshal_json_response(models.ErrorResponseData, http_res)
328
+ raise models.ErrorResponse(response_data, http_res)
329
+ if utils.match_response(http_res, "4XX", "*"):
330
+ http_res_text = utils.stream_to_text(http_res)
331
+ raise models.APIError("API error occurred", http_res, http_res_text)
332
+ if utils.match_response(http_res, "5XX", "*"):
333
+ http_res_text = utils.stream_to_text(http_res)
334
+ raise models.APIError("API error occurred", http_res, http_res_text)
335
+
336
+ raise models.APIError("Unexpected response received", http_res)
337
+
338
+ async def list_async(
339
+ self,
340
+ *,
341
+ from_: Optional[str] = None,
342
+ limit: OptionalNullable[int] = UNSET,
343
+ testmode: Optional[bool] = None,
344
+ idempotency_key: Optional[str] = None,
345
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
346
+ server_url: Optional[str] = None,
347
+ timeout_ms: Optional[int] = None,
348
+ http_headers: Optional[Mapping[str, str]] = None,
349
+ ) -> models.ListPaymentLinksResponse:
350
+ r"""List payment links
351
+
352
+ Retrieve a list of all payment links.
353
+
354
+ The results are paginated.
355
+
356
+ :param from_: Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the result set.
357
+ :param limit: The maximum number of items to return. Defaults to 50 items.
358
+ :param testmode: Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting the `testmode` query parameter to `true`. Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
359
+ :param idempotency_key: A unique key to ensure idempotent requests. This key should be a UUID v4 string.
360
+ :param retries: Override the default retry configuration for this method
361
+ :param server_url: Override the default server URL for this method
362
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
363
+ :param http_headers: Additional headers to set or replace on requests.
364
+ """
365
+ base_url = None
366
+ url_variables = None
367
+ if timeout_ms is None:
368
+ timeout_ms = self.sdk_configuration.timeout_ms
369
+
370
+ if server_url is not None:
371
+ base_url = server_url
372
+ else:
373
+ base_url = self._get_url(base_url, url_variables)
374
+
375
+ request = models.ListPaymentLinksRequest(
376
+ from_=from_,
377
+ limit=limit,
378
+ testmode=testmode,
379
+ idempotency_key=idempotency_key,
380
+ )
381
+
382
+ req = self._build_request_async(
383
+ method="GET",
384
+ path="/payment-links",
385
+ base_url=base_url,
386
+ url_variables=url_variables,
387
+ request=request,
388
+ request_body_required=False,
389
+ request_has_path_params=False,
390
+ request_has_query_params=True,
391
+ user_agent_header="user-agent",
392
+ accept_header_value="application/hal+json",
393
+ http_headers=http_headers,
394
+ _globals=models.ListPaymentLinksGlobals(
395
+ testmode=self.sdk_configuration.globals.testmode,
396
+ ),
397
+ security=self.sdk_configuration.security,
398
+ timeout_ms=timeout_ms,
399
+ )
400
+
401
+ if retries == UNSET:
402
+ if self.sdk_configuration.retry_config is not UNSET:
403
+ retries = self.sdk_configuration.retry_config
404
+ else:
405
+ retries = utils.RetryConfig(
406
+ "backoff", utils.BackoffStrategy(500, 5000, 2, 7500), True
407
+ )
408
+
409
+ retry_config = None
410
+ if isinstance(retries, utils.RetryConfig):
411
+ retry_config = (retries, ["5xx"])
412
+
413
+ http_res = await self.do_request_async(
414
+ hook_ctx=HookContext(
415
+ config=self.sdk_configuration,
416
+ base_url=base_url or "",
417
+ operation_id="list-payment-links",
418
+ oauth2_scopes=None,
419
+ security_source=get_security_from_env(
420
+ self.sdk_configuration.security, models.Security
421
+ ),
422
+ ),
423
+ request=req,
424
+ error_status_codes=["400", "4XX", "5XX"],
425
+ retry_config=retry_config,
426
+ )
427
+
428
+ response_data: Any = None
429
+ if utils.match_response(http_res, "200", "application/hal+json"):
430
+ return unmarshal_json_response(models.ListPaymentLinksResponse, http_res)
431
+ if utils.match_response(http_res, "400", "application/hal+json"):
432
+ response_data = unmarshal_json_response(models.ErrorResponseData, http_res)
433
+ raise models.ErrorResponse(response_data, http_res)
434
+ if utils.match_response(http_res, "4XX", "*"):
435
+ http_res_text = await utils.stream_to_text_async(http_res)
436
+ raise models.APIError("API error occurred", http_res, http_res_text)
437
+ if utils.match_response(http_res, "5XX", "*"):
438
+ http_res_text = await utils.stream_to_text_async(http_res)
439
+ raise models.APIError("API error occurred", http_res, http_res_text)
440
+
441
+ raise models.APIError("Unexpected response received", http_res)
442
+
443
+ def get(
444
+ self,
445
+ *,
446
+ payment_link_id: str,
447
+ testmode: Optional[bool] = None,
448
+ idempotency_key: Optional[str] = None,
449
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
450
+ server_url: Optional[str] = None,
451
+ timeout_ms: Optional[int] = None,
452
+ http_headers: Optional[Mapping[str, str]] = None,
453
+ ) -> models.PaymentLinkResponse:
454
+ r"""Get payment link
455
+
456
+ Retrieve a single payment link by its ID.
457
+
458
+ :param payment_link_id: Provide the ID of the related payment link.
459
+ :param testmode: Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting the `testmode` query parameter to `true`. Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
460
+ :param idempotency_key: A unique key to ensure idempotent requests. This key should be a UUID v4 string.
461
+ :param retries: Override the default retry configuration for this method
462
+ :param server_url: Override the default server URL for this method
463
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
464
+ :param http_headers: Additional headers to set or replace on requests.
465
+ """
466
+ base_url = None
467
+ url_variables = None
468
+ if timeout_ms is None:
469
+ timeout_ms = self.sdk_configuration.timeout_ms
470
+
471
+ if server_url is not None:
472
+ base_url = server_url
473
+ else:
474
+ base_url = self._get_url(base_url, url_variables)
475
+
476
+ request = models.GetPaymentLinkRequest(
477
+ payment_link_id=payment_link_id,
478
+ testmode=testmode,
479
+ idempotency_key=idempotency_key,
480
+ )
481
+
482
+ req = self._build_request(
483
+ method="GET",
484
+ path="/payment-links/{paymentLinkId}",
485
+ base_url=base_url,
486
+ url_variables=url_variables,
487
+ request=request,
488
+ request_body_required=False,
489
+ request_has_path_params=True,
490
+ request_has_query_params=True,
491
+ user_agent_header="user-agent",
492
+ accept_header_value="application/hal+json",
493
+ http_headers=http_headers,
494
+ _globals=models.GetPaymentLinkGlobals(
495
+ testmode=self.sdk_configuration.globals.testmode,
496
+ ),
497
+ security=self.sdk_configuration.security,
498
+ timeout_ms=timeout_ms,
499
+ )
500
+
501
+ if retries == UNSET:
502
+ if self.sdk_configuration.retry_config is not UNSET:
503
+ retries = self.sdk_configuration.retry_config
504
+ else:
505
+ retries = utils.RetryConfig(
506
+ "backoff", utils.BackoffStrategy(500, 5000, 2, 7500), True
507
+ )
508
+
509
+ retry_config = None
510
+ if isinstance(retries, utils.RetryConfig):
511
+ retry_config = (retries, ["5xx"])
512
+
513
+ http_res = self.do_request(
514
+ hook_ctx=HookContext(
515
+ config=self.sdk_configuration,
516
+ base_url=base_url or "",
517
+ operation_id="get-payment-link",
518
+ oauth2_scopes=None,
519
+ security_source=get_security_from_env(
520
+ self.sdk_configuration.security, models.Security
521
+ ),
522
+ ),
523
+ request=req,
524
+ error_status_codes=["404", "4XX", "5XX"],
525
+ retry_config=retry_config,
526
+ )
527
+
528
+ response_data: Any = None
529
+ if utils.match_response(http_res, "200", "application/hal+json"):
530
+ return unmarshal_json_response(models.PaymentLinkResponse, http_res)
531
+ if utils.match_response(http_res, "404", "application/hal+json"):
532
+ response_data = unmarshal_json_response(models.ErrorResponseData, http_res)
533
+ raise models.ErrorResponse(response_data, http_res)
534
+ if utils.match_response(http_res, "4XX", "*"):
535
+ http_res_text = utils.stream_to_text(http_res)
536
+ raise models.APIError("API error occurred", http_res, http_res_text)
537
+ if utils.match_response(http_res, "5XX", "*"):
538
+ http_res_text = utils.stream_to_text(http_res)
539
+ raise models.APIError("API error occurred", http_res, http_res_text)
540
+
541
+ raise models.APIError("Unexpected response received", http_res)
542
+
543
+ async def get_async(
544
+ self,
545
+ *,
546
+ payment_link_id: str,
547
+ testmode: Optional[bool] = None,
548
+ idempotency_key: Optional[str] = None,
549
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
550
+ server_url: Optional[str] = None,
551
+ timeout_ms: Optional[int] = None,
552
+ http_headers: Optional[Mapping[str, str]] = None,
553
+ ) -> models.PaymentLinkResponse:
554
+ r"""Get payment link
555
+
556
+ Retrieve a single payment link by its ID.
557
+
558
+ :param payment_link_id: Provide the ID of the related payment link.
559
+ :param testmode: Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting the `testmode` query parameter to `true`. Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
560
+ :param idempotency_key: A unique key to ensure idempotent requests. This key should be a UUID v4 string.
561
+ :param retries: Override the default retry configuration for this method
562
+ :param server_url: Override the default server URL for this method
563
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
564
+ :param http_headers: Additional headers to set or replace on requests.
565
+ """
566
+ base_url = None
567
+ url_variables = None
568
+ if timeout_ms is None:
569
+ timeout_ms = self.sdk_configuration.timeout_ms
570
+
571
+ if server_url is not None:
572
+ base_url = server_url
573
+ else:
574
+ base_url = self._get_url(base_url, url_variables)
575
+
576
+ request = models.GetPaymentLinkRequest(
577
+ payment_link_id=payment_link_id,
578
+ testmode=testmode,
579
+ idempotency_key=idempotency_key,
580
+ )
581
+
582
+ req = self._build_request_async(
583
+ method="GET",
584
+ path="/payment-links/{paymentLinkId}",
585
+ base_url=base_url,
586
+ url_variables=url_variables,
587
+ request=request,
588
+ request_body_required=False,
589
+ request_has_path_params=True,
590
+ request_has_query_params=True,
591
+ user_agent_header="user-agent",
592
+ accept_header_value="application/hal+json",
593
+ http_headers=http_headers,
594
+ _globals=models.GetPaymentLinkGlobals(
595
+ testmode=self.sdk_configuration.globals.testmode,
596
+ ),
597
+ security=self.sdk_configuration.security,
598
+ timeout_ms=timeout_ms,
599
+ )
600
+
601
+ if retries == UNSET:
602
+ if self.sdk_configuration.retry_config is not UNSET:
603
+ retries = self.sdk_configuration.retry_config
604
+ else:
605
+ retries = utils.RetryConfig(
606
+ "backoff", utils.BackoffStrategy(500, 5000, 2, 7500), True
607
+ )
608
+
609
+ retry_config = None
610
+ if isinstance(retries, utils.RetryConfig):
611
+ retry_config = (retries, ["5xx"])
612
+
613
+ http_res = await self.do_request_async(
614
+ hook_ctx=HookContext(
615
+ config=self.sdk_configuration,
616
+ base_url=base_url or "",
617
+ operation_id="get-payment-link",
618
+ oauth2_scopes=None,
619
+ security_source=get_security_from_env(
620
+ self.sdk_configuration.security, models.Security
621
+ ),
622
+ ),
623
+ request=req,
624
+ error_status_codes=["404", "4XX", "5XX"],
625
+ retry_config=retry_config,
626
+ )
627
+
628
+ response_data: Any = None
629
+ if utils.match_response(http_res, "200", "application/hal+json"):
630
+ return unmarshal_json_response(models.PaymentLinkResponse, http_res)
631
+ if utils.match_response(http_res, "404", "application/hal+json"):
632
+ response_data = unmarshal_json_response(models.ErrorResponseData, http_res)
633
+ raise models.ErrorResponse(response_data, http_res)
634
+ if utils.match_response(http_res, "4XX", "*"):
635
+ http_res_text = await utils.stream_to_text_async(http_res)
636
+ raise models.APIError("API error occurred", http_res, http_res_text)
637
+ if utils.match_response(http_res, "5XX", "*"):
638
+ http_res_text = await utils.stream_to_text_async(http_res)
639
+ raise models.APIError("API error occurred", http_res, http_res_text)
640
+
641
+ raise models.APIError("Unexpected response received", http_res)
642
+
643
+ def update(
644
+ self,
645
+ *,
646
+ payment_link_id: str,
647
+ idempotency_key: Optional[str] = None,
648
+ request_body: Optional[
649
+ Union[
650
+ models.UpdatePaymentLinkRequestBody,
651
+ models.UpdatePaymentLinkRequestBodyTypedDict,
652
+ ]
653
+ ] = None,
654
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
655
+ server_url: Optional[str] = None,
656
+ timeout_ms: Optional[int] = None,
657
+ http_headers: Optional[Mapping[str, str]] = None,
658
+ ) -> models.PaymentLinkResponse:
659
+ r"""Update payment link
660
+
661
+ Certain details of an existing payment link can be updated.
662
+
663
+ :param payment_link_id: Provide the ID of the related payment link.
664
+ :param idempotency_key: A unique key to ensure idempotent requests. This key should be a UUID v4 string.
665
+ :param request_body:
666
+ :param retries: Override the default retry configuration for this method
667
+ :param server_url: Override the default server URL for this method
668
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
669
+ :param http_headers: Additional headers to set or replace on requests.
670
+ """
671
+ base_url = None
672
+ url_variables = None
673
+ if timeout_ms is None:
674
+ timeout_ms = self.sdk_configuration.timeout_ms
675
+
676
+ if server_url is not None:
677
+ base_url = server_url
678
+ else:
679
+ base_url = self._get_url(base_url, url_variables)
680
+
681
+ request = models.UpdatePaymentLinkRequest(
682
+ payment_link_id=payment_link_id,
683
+ idempotency_key=idempotency_key,
684
+ request_body=utils.get_pydantic_model(
685
+ request_body, Optional[models.UpdatePaymentLinkRequestBody]
686
+ ),
687
+ )
688
+
689
+ req = self._build_request(
690
+ method="PATCH",
691
+ path="/payment-links/{paymentLinkId}",
692
+ base_url=base_url,
693
+ url_variables=url_variables,
694
+ request=request,
695
+ request_body_required=False,
696
+ request_has_path_params=True,
697
+ request_has_query_params=True,
698
+ user_agent_header="user-agent",
699
+ accept_header_value="application/hal+json",
700
+ http_headers=http_headers,
701
+ security=self.sdk_configuration.security,
702
+ get_serialized_body=lambda: utils.serialize_request_body(
703
+ request.request_body,
704
+ False,
705
+ True,
706
+ "json",
707
+ Optional[models.UpdatePaymentLinkRequestBody],
708
+ ),
709
+ timeout_ms=timeout_ms,
710
+ )
711
+
712
+ if retries == UNSET:
713
+ if self.sdk_configuration.retry_config is not UNSET:
714
+ retries = self.sdk_configuration.retry_config
715
+ else:
716
+ retries = utils.RetryConfig(
717
+ "backoff", utils.BackoffStrategy(500, 5000, 2, 7500), True
718
+ )
719
+
720
+ retry_config = None
721
+ if isinstance(retries, utils.RetryConfig):
722
+ retry_config = (retries, ["5xx"])
723
+
724
+ http_res = self.do_request(
725
+ hook_ctx=HookContext(
726
+ config=self.sdk_configuration,
727
+ base_url=base_url or "",
728
+ operation_id="update-payment-link",
729
+ oauth2_scopes=None,
730
+ security_source=get_security_from_env(
731
+ self.sdk_configuration.security, models.Security
732
+ ),
733
+ ),
734
+ request=req,
735
+ error_status_codes=["404", "422", "4XX", "5XX"],
736
+ retry_config=retry_config,
737
+ )
738
+
739
+ response_data: Any = None
740
+ if utils.match_response(http_res, "200", "application/hal+json"):
741
+ return unmarshal_json_response(models.PaymentLinkResponse, http_res)
742
+ if utils.match_response(http_res, ["404", "422"], "application/hal+json"):
743
+ response_data = unmarshal_json_response(models.ErrorResponseData, http_res)
744
+ raise models.ErrorResponse(response_data, http_res)
745
+ if utils.match_response(http_res, "4XX", "*"):
746
+ http_res_text = utils.stream_to_text(http_res)
747
+ raise models.APIError("API error occurred", http_res, http_res_text)
748
+ if utils.match_response(http_res, "5XX", "*"):
749
+ http_res_text = utils.stream_to_text(http_res)
750
+ raise models.APIError("API error occurred", http_res, http_res_text)
751
+
752
+ raise models.APIError("Unexpected response received", http_res)
753
+
754
+ async def update_async(
755
+ self,
756
+ *,
757
+ payment_link_id: str,
758
+ idempotency_key: Optional[str] = None,
759
+ request_body: Optional[
760
+ Union[
761
+ models.UpdatePaymentLinkRequestBody,
762
+ models.UpdatePaymentLinkRequestBodyTypedDict,
763
+ ]
764
+ ] = None,
765
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
766
+ server_url: Optional[str] = None,
767
+ timeout_ms: Optional[int] = None,
768
+ http_headers: Optional[Mapping[str, str]] = None,
769
+ ) -> models.PaymentLinkResponse:
770
+ r"""Update payment link
771
+
772
+ Certain details of an existing payment link can be updated.
773
+
774
+ :param payment_link_id: Provide the ID of the related payment link.
775
+ :param idempotency_key: A unique key to ensure idempotent requests. This key should be a UUID v4 string.
776
+ :param request_body:
777
+ :param retries: Override the default retry configuration for this method
778
+ :param server_url: Override the default server URL for this method
779
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
780
+ :param http_headers: Additional headers to set or replace on requests.
781
+ """
782
+ base_url = None
783
+ url_variables = None
784
+ if timeout_ms is None:
785
+ timeout_ms = self.sdk_configuration.timeout_ms
786
+
787
+ if server_url is not None:
788
+ base_url = server_url
789
+ else:
790
+ base_url = self._get_url(base_url, url_variables)
791
+
792
+ request = models.UpdatePaymentLinkRequest(
793
+ payment_link_id=payment_link_id,
794
+ idempotency_key=idempotency_key,
795
+ request_body=utils.get_pydantic_model(
796
+ request_body, Optional[models.UpdatePaymentLinkRequestBody]
797
+ ),
798
+ )
799
+
800
+ req = self._build_request_async(
801
+ method="PATCH",
802
+ path="/payment-links/{paymentLinkId}",
803
+ base_url=base_url,
804
+ url_variables=url_variables,
805
+ request=request,
806
+ request_body_required=False,
807
+ request_has_path_params=True,
808
+ request_has_query_params=True,
809
+ user_agent_header="user-agent",
810
+ accept_header_value="application/hal+json",
811
+ http_headers=http_headers,
812
+ security=self.sdk_configuration.security,
813
+ get_serialized_body=lambda: utils.serialize_request_body(
814
+ request.request_body,
815
+ False,
816
+ True,
817
+ "json",
818
+ Optional[models.UpdatePaymentLinkRequestBody],
819
+ ),
820
+ timeout_ms=timeout_ms,
821
+ )
822
+
823
+ if retries == UNSET:
824
+ if self.sdk_configuration.retry_config is not UNSET:
825
+ retries = self.sdk_configuration.retry_config
826
+ else:
827
+ retries = utils.RetryConfig(
828
+ "backoff", utils.BackoffStrategy(500, 5000, 2, 7500), True
829
+ )
830
+
831
+ retry_config = None
832
+ if isinstance(retries, utils.RetryConfig):
833
+ retry_config = (retries, ["5xx"])
834
+
835
+ http_res = await self.do_request_async(
836
+ hook_ctx=HookContext(
837
+ config=self.sdk_configuration,
838
+ base_url=base_url or "",
839
+ operation_id="update-payment-link",
840
+ oauth2_scopes=None,
841
+ security_source=get_security_from_env(
842
+ self.sdk_configuration.security, models.Security
843
+ ),
844
+ ),
845
+ request=req,
846
+ error_status_codes=["404", "422", "4XX", "5XX"],
847
+ retry_config=retry_config,
848
+ )
849
+
850
+ response_data: Any = None
851
+ if utils.match_response(http_res, "200", "application/hal+json"):
852
+ return unmarshal_json_response(models.PaymentLinkResponse, http_res)
853
+ if utils.match_response(http_res, ["404", "422"], "application/hal+json"):
854
+ response_data = unmarshal_json_response(models.ErrorResponseData, http_res)
855
+ raise models.ErrorResponse(response_data, http_res)
856
+ if utils.match_response(http_res, "4XX", "*"):
857
+ http_res_text = await utils.stream_to_text_async(http_res)
858
+ raise models.APIError("API error occurred", http_res, http_res_text)
859
+ if utils.match_response(http_res, "5XX", "*"):
860
+ http_res_text = await utils.stream_to_text_async(http_res)
861
+ raise models.APIError("API error occurred", http_res, http_res_text)
862
+
863
+ raise models.APIError("Unexpected response received", http_res)
864
+
865
+ def delete(
866
+ self,
867
+ *,
868
+ payment_link_id: str,
869
+ idempotency_key: Optional[str] = None,
870
+ request_body: Optional[
871
+ Union[
872
+ models.DeletePaymentLinkRequestBody,
873
+ models.DeletePaymentLinkRequestBodyTypedDict,
874
+ ]
875
+ ] = None,
876
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
877
+ server_url: Optional[str] = None,
878
+ timeout_ms: Optional[int] = None,
879
+ http_headers: Optional[Mapping[str, str]] = None,
880
+ ):
881
+ r"""Delete payment link
882
+
883
+ Payment links which have not been opened and no payments have been made yet can be deleted entirely.
884
+ This can be useful for removing payment links that have been incorrectly configured or that are no longer relevant.
885
+
886
+ Once deleted, the payment link will no longer show up in the API or Mollie dashboard.
887
+
888
+ To simply disable a payment link without fully deleting it, you can use the `archived` parameter on the
889
+ [Update payment link](update-payment-link) endpoint instead.
890
+
891
+ :param payment_link_id: Provide the ID of the related payment link.
892
+ :param idempotency_key: A unique key to ensure idempotent requests. This key should be a UUID v4 string.
893
+ :param request_body:
894
+ :param retries: Override the default retry configuration for this method
895
+ :param server_url: Override the default server URL for this method
896
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
897
+ :param http_headers: Additional headers to set or replace on requests.
898
+ """
899
+ base_url = None
900
+ url_variables = None
901
+ if timeout_ms is None:
902
+ timeout_ms = self.sdk_configuration.timeout_ms
903
+
904
+ if server_url is not None:
905
+ base_url = server_url
906
+ else:
907
+ base_url = self._get_url(base_url, url_variables)
908
+
909
+ request = models.DeletePaymentLinkRequest(
910
+ payment_link_id=payment_link_id,
911
+ idempotency_key=idempotency_key,
912
+ request_body=utils.get_pydantic_model(
913
+ request_body, Optional[models.DeletePaymentLinkRequestBody]
914
+ ),
915
+ )
916
+
917
+ req = self._build_request(
918
+ method="DELETE",
919
+ path="/payment-links/{paymentLinkId}",
920
+ base_url=base_url,
921
+ url_variables=url_variables,
922
+ request=request,
923
+ request_body_required=False,
924
+ request_has_path_params=True,
925
+ request_has_query_params=True,
926
+ user_agent_header="user-agent",
927
+ accept_header_value="application/hal+json",
928
+ http_headers=http_headers,
929
+ security=self.sdk_configuration.security,
930
+ get_serialized_body=lambda: utils.serialize_request_body(
931
+ request.request_body,
932
+ False,
933
+ True,
934
+ "json",
935
+ Optional[models.DeletePaymentLinkRequestBody],
936
+ ),
937
+ timeout_ms=timeout_ms,
938
+ )
939
+
940
+ if retries == UNSET:
941
+ if self.sdk_configuration.retry_config is not UNSET:
942
+ retries = self.sdk_configuration.retry_config
943
+ else:
944
+ retries = utils.RetryConfig(
945
+ "backoff", utils.BackoffStrategy(500, 5000, 2, 7500), True
946
+ )
947
+
948
+ retry_config = None
949
+ if isinstance(retries, utils.RetryConfig):
950
+ retry_config = (retries, ["5xx"])
951
+
952
+ http_res = self.do_request(
953
+ hook_ctx=HookContext(
954
+ config=self.sdk_configuration,
955
+ base_url=base_url or "",
956
+ operation_id="delete-payment-link",
957
+ oauth2_scopes=None,
958
+ security_source=get_security_from_env(
959
+ self.sdk_configuration.security, models.Security
960
+ ),
961
+ ),
962
+ request=req,
963
+ error_status_codes=["404", "422", "4XX", "5XX"],
964
+ retry_config=retry_config,
965
+ )
966
+
967
+ response_data: Any = None
968
+ if utils.match_response(http_res, "204", "*"):
969
+ return
970
+ if utils.match_response(http_res, ["404", "422"], "application/hal+json"):
971
+ response_data = unmarshal_json_response(models.ErrorResponseData, http_res)
972
+ raise models.ErrorResponse(response_data, http_res)
973
+ if utils.match_response(http_res, "4XX", "*"):
974
+ http_res_text = utils.stream_to_text(http_res)
975
+ raise models.APIError("API error occurred", http_res, http_res_text)
976
+ if utils.match_response(http_res, "5XX", "*"):
977
+ http_res_text = utils.stream_to_text(http_res)
978
+ raise models.APIError("API error occurred", http_res, http_res_text)
979
+
980
+ raise models.APIError("Unexpected response received", http_res)
981
+
982
+ async def delete_async(
983
+ self,
984
+ *,
985
+ payment_link_id: str,
986
+ idempotency_key: Optional[str] = None,
987
+ request_body: Optional[
988
+ Union[
989
+ models.DeletePaymentLinkRequestBody,
990
+ models.DeletePaymentLinkRequestBodyTypedDict,
991
+ ]
992
+ ] = None,
993
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
994
+ server_url: Optional[str] = None,
995
+ timeout_ms: Optional[int] = None,
996
+ http_headers: Optional[Mapping[str, str]] = None,
997
+ ):
998
+ r"""Delete payment link
999
+
1000
+ Payment links which have not been opened and no payments have been made yet can be deleted entirely.
1001
+ This can be useful for removing payment links that have been incorrectly configured or that are no longer relevant.
1002
+
1003
+ Once deleted, the payment link will no longer show up in the API or Mollie dashboard.
1004
+
1005
+ To simply disable a payment link without fully deleting it, you can use the `archived` parameter on the
1006
+ [Update payment link](update-payment-link) endpoint instead.
1007
+
1008
+ :param payment_link_id: Provide the ID of the related payment link.
1009
+ :param idempotency_key: A unique key to ensure idempotent requests. This key should be a UUID v4 string.
1010
+ :param request_body:
1011
+ :param retries: Override the default retry configuration for this method
1012
+ :param server_url: Override the default server URL for this method
1013
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1014
+ :param http_headers: Additional headers to set or replace on requests.
1015
+ """
1016
+ base_url = None
1017
+ url_variables = None
1018
+ if timeout_ms is None:
1019
+ timeout_ms = self.sdk_configuration.timeout_ms
1020
+
1021
+ if server_url is not None:
1022
+ base_url = server_url
1023
+ else:
1024
+ base_url = self._get_url(base_url, url_variables)
1025
+
1026
+ request = models.DeletePaymentLinkRequest(
1027
+ payment_link_id=payment_link_id,
1028
+ idempotency_key=idempotency_key,
1029
+ request_body=utils.get_pydantic_model(
1030
+ request_body, Optional[models.DeletePaymentLinkRequestBody]
1031
+ ),
1032
+ )
1033
+
1034
+ req = self._build_request_async(
1035
+ method="DELETE",
1036
+ path="/payment-links/{paymentLinkId}",
1037
+ base_url=base_url,
1038
+ url_variables=url_variables,
1039
+ request=request,
1040
+ request_body_required=False,
1041
+ request_has_path_params=True,
1042
+ request_has_query_params=True,
1043
+ user_agent_header="user-agent",
1044
+ accept_header_value="application/hal+json",
1045
+ http_headers=http_headers,
1046
+ security=self.sdk_configuration.security,
1047
+ get_serialized_body=lambda: utils.serialize_request_body(
1048
+ request.request_body,
1049
+ False,
1050
+ True,
1051
+ "json",
1052
+ Optional[models.DeletePaymentLinkRequestBody],
1053
+ ),
1054
+ timeout_ms=timeout_ms,
1055
+ )
1056
+
1057
+ if retries == UNSET:
1058
+ if self.sdk_configuration.retry_config is not UNSET:
1059
+ retries = self.sdk_configuration.retry_config
1060
+ else:
1061
+ retries = utils.RetryConfig(
1062
+ "backoff", utils.BackoffStrategy(500, 5000, 2, 7500), True
1063
+ )
1064
+
1065
+ retry_config = None
1066
+ if isinstance(retries, utils.RetryConfig):
1067
+ retry_config = (retries, ["5xx"])
1068
+
1069
+ http_res = await self.do_request_async(
1070
+ hook_ctx=HookContext(
1071
+ config=self.sdk_configuration,
1072
+ base_url=base_url or "",
1073
+ operation_id="delete-payment-link",
1074
+ oauth2_scopes=None,
1075
+ security_source=get_security_from_env(
1076
+ self.sdk_configuration.security, models.Security
1077
+ ),
1078
+ ),
1079
+ request=req,
1080
+ error_status_codes=["404", "422", "4XX", "5XX"],
1081
+ retry_config=retry_config,
1082
+ )
1083
+
1084
+ response_data: Any = None
1085
+ if utils.match_response(http_res, "204", "*"):
1086
+ return
1087
+ if utils.match_response(http_res, ["404", "422"], "application/hal+json"):
1088
+ response_data = unmarshal_json_response(models.ErrorResponseData, http_res)
1089
+ raise models.ErrorResponse(response_data, http_res)
1090
+ if utils.match_response(http_res, "4XX", "*"):
1091
+ http_res_text = await utils.stream_to_text_async(http_res)
1092
+ raise models.APIError("API error occurred", http_res, http_res_text)
1093
+ if utils.match_response(http_res, "5XX", "*"):
1094
+ http_res_text = await utils.stream_to_text_async(http_res)
1095
+ raise models.APIError("API error occurred", http_res, http_res_text)
1096
+
1097
+ raise models.APIError("Unexpected response received", http_res)
1098
+
1099
+ def list_payments(
1100
+ self,
1101
+ *,
1102
+ payment_link_id: str,
1103
+ from_: Optional[str] = None,
1104
+ limit: OptionalNullable[int] = UNSET,
1105
+ sort: Optional[models.Sorting] = None,
1106
+ testmode: Optional[bool] = None,
1107
+ idempotency_key: Optional[str] = None,
1108
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1109
+ server_url: Optional[str] = None,
1110
+ timeout_ms: Optional[int] = None,
1111
+ http_headers: Optional[Mapping[str, str]] = None,
1112
+ ) -> models.GetPaymentLinkPaymentsResponse:
1113
+ r"""Get payment link payments
1114
+
1115
+ Retrieve the list of payments for a specific payment link.
1116
+
1117
+ The results are paginated.
1118
+
1119
+ :param payment_link_id: Provide the ID of the related payment link.
1120
+ :param from_: Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the result set.
1121
+ :param limit: The maximum number of items to return. Defaults to 50 items.
1122
+ :param sort: Used for setting the direction of the result set. Defaults to descending order, meaning the results are ordered from newest to oldest.
1123
+ :param testmode: Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting the `testmode` query parameter to `true`. Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
1124
+ :param idempotency_key: A unique key to ensure idempotent requests. This key should be a UUID v4 string.
1125
+ :param retries: Override the default retry configuration for this method
1126
+ :param server_url: Override the default server URL for this method
1127
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1128
+ :param http_headers: Additional headers to set or replace on requests.
1129
+ """
1130
+ base_url = None
1131
+ url_variables = None
1132
+ if timeout_ms is None:
1133
+ timeout_ms = self.sdk_configuration.timeout_ms
1134
+
1135
+ if server_url is not None:
1136
+ base_url = server_url
1137
+ else:
1138
+ base_url = self._get_url(base_url, url_variables)
1139
+
1140
+ request = models.GetPaymentLinkPaymentsRequest(
1141
+ payment_link_id=payment_link_id,
1142
+ from_=from_,
1143
+ limit=limit,
1144
+ sort=sort,
1145
+ testmode=testmode,
1146
+ idempotency_key=idempotency_key,
1147
+ )
1148
+
1149
+ req = self._build_request(
1150
+ method="GET",
1151
+ path="/payment-links/{paymentLinkId}/payments",
1152
+ base_url=base_url,
1153
+ url_variables=url_variables,
1154
+ request=request,
1155
+ request_body_required=False,
1156
+ request_has_path_params=True,
1157
+ request_has_query_params=True,
1158
+ user_agent_header="user-agent",
1159
+ accept_header_value="application/hal+json",
1160
+ http_headers=http_headers,
1161
+ _globals=models.GetPaymentLinkPaymentsGlobals(
1162
+ testmode=self.sdk_configuration.globals.testmode,
1163
+ ),
1164
+ security=self.sdk_configuration.security,
1165
+ timeout_ms=timeout_ms,
1166
+ )
1167
+
1168
+ if retries == UNSET:
1169
+ if self.sdk_configuration.retry_config is not UNSET:
1170
+ retries = self.sdk_configuration.retry_config
1171
+ else:
1172
+ retries = utils.RetryConfig(
1173
+ "backoff", utils.BackoffStrategy(500, 5000, 2, 7500), True
1174
+ )
1175
+
1176
+ retry_config = None
1177
+ if isinstance(retries, utils.RetryConfig):
1178
+ retry_config = (retries, ["5xx"])
1179
+
1180
+ http_res = self.do_request(
1181
+ hook_ctx=HookContext(
1182
+ config=self.sdk_configuration,
1183
+ base_url=base_url or "",
1184
+ operation_id="get-payment-link-payments",
1185
+ oauth2_scopes=None,
1186
+ security_source=get_security_from_env(
1187
+ self.sdk_configuration.security, models.Security
1188
+ ),
1189
+ ),
1190
+ request=req,
1191
+ error_status_codes=["400", "4XX", "5XX"],
1192
+ retry_config=retry_config,
1193
+ )
1194
+
1195
+ response_data: Any = None
1196
+ if utils.match_response(http_res, "200", "application/hal+json"):
1197
+ return unmarshal_json_response(
1198
+ models.GetPaymentLinkPaymentsResponse, http_res
1199
+ )
1200
+ if utils.match_response(http_res, "400", "application/hal+json"):
1201
+ response_data = unmarshal_json_response(models.ErrorResponseData, http_res)
1202
+ raise models.ErrorResponse(response_data, http_res)
1203
+ if utils.match_response(http_res, "4XX", "*"):
1204
+ http_res_text = utils.stream_to_text(http_res)
1205
+ raise models.APIError("API error occurred", http_res, http_res_text)
1206
+ if utils.match_response(http_res, "5XX", "*"):
1207
+ http_res_text = utils.stream_to_text(http_res)
1208
+ raise models.APIError("API error occurred", http_res, http_res_text)
1209
+
1210
+ raise models.APIError("Unexpected response received", http_res)
1211
+
1212
+ async def list_payments_async(
1213
+ self,
1214
+ *,
1215
+ payment_link_id: str,
1216
+ from_: Optional[str] = None,
1217
+ limit: OptionalNullable[int] = UNSET,
1218
+ sort: Optional[models.Sorting] = None,
1219
+ testmode: Optional[bool] = None,
1220
+ idempotency_key: Optional[str] = None,
1221
+ retries: OptionalNullable[utils.RetryConfig] = UNSET,
1222
+ server_url: Optional[str] = None,
1223
+ timeout_ms: Optional[int] = None,
1224
+ http_headers: Optional[Mapping[str, str]] = None,
1225
+ ) -> models.GetPaymentLinkPaymentsResponse:
1226
+ r"""Get payment link payments
1227
+
1228
+ Retrieve the list of payments for a specific payment link.
1229
+
1230
+ The results are paginated.
1231
+
1232
+ :param payment_link_id: Provide the ID of the related payment link.
1233
+ :param from_: Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the result set.
1234
+ :param limit: The maximum number of items to return. Defaults to 50 items.
1235
+ :param sort: Used for setting the direction of the result set. Defaults to descending order, meaning the results are ordered from newest to oldest.
1236
+ :param testmode: Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting the `testmode` query parameter to `true`. Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
1237
+ :param idempotency_key: A unique key to ensure idempotent requests. This key should be a UUID v4 string.
1238
+ :param retries: Override the default retry configuration for this method
1239
+ :param server_url: Override the default server URL for this method
1240
+ :param timeout_ms: Override the default request timeout configuration for this method in milliseconds
1241
+ :param http_headers: Additional headers to set or replace on requests.
1242
+ """
1243
+ base_url = None
1244
+ url_variables = None
1245
+ if timeout_ms is None:
1246
+ timeout_ms = self.sdk_configuration.timeout_ms
1247
+
1248
+ if server_url is not None:
1249
+ base_url = server_url
1250
+ else:
1251
+ base_url = self._get_url(base_url, url_variables)
1252
+
1253
+ request = models.GetPaymentLinkPaymentsRequest(
1254
+ payment_link_id=payment_link_id,
1255
+ from_=from_,
1256
+ limit=limit,
1257
+ sort=sort,
1258
+ testmode=testmode,
1259
+ idempotency_key=idempotency_key,
1260
+ )
1261
+
1262
+ req = self._build_request_async(
1263
+ method="GET",
1264
+ path="/payment-links/{paymentLinkId}/payments",
1265
+ base_url=base_url,
1266
+ url_variables=url_variables,
1267
+ request=request,
1268
+ request_body_required=False,
1269
+ request_has_path_params=True,
1270
+ request_has_query_params=True,
1271
+ user_agent_header="user-agent",
1272
+ accept_header_value="application/hal+json",
1273
+ http_headers=http_headers,
1274
+ _globals=models.GetPaymentLinkPaymentsGlobals(
1275
+ testmode=self.sdk_configuration.globals.testmode,
1276
+ ),
1277
+ security=self.sdk_configuration.security,
1278
+ timeout_ms=timeout_ms,
1279
+ )
1280
+
1281
+ if retries == UNSET:
1282
+ if self.sdk_configuration.retry_config is not UNSET:
1283
+ retries = self.sdk_configuration.retry_config
1284
+ else:
1285
+ retries = utils.RetryConfig(
1286
+ "backoff", utils.BackoffStrategy(500, 5000, 2, 7500), True
1287
+ )
1288
+
1289
+ retry_config = None
1290
+ if isinstance(retries, utils.RetryConfig):
1291
+ retry_config = (retries, ["5xx"])
1292
+
1293
+ http_res = await self.do_request_async(
1294
+ hook_ctx=HookContext(
1295
+ config=self.sdk_configuration,
1296
+ base_url=base_url or "",
1297
+ operation_id="get-payment-link-payments",
1298
+ oauth2_scopes=None,
1299
+ security_source=get_security_from_env(
1300
+ self.sdk_configuration.security, models.Security
1301
+ ),
1302
+ ),
1303
+ request=req,
1304
+ error_status_codes=["400", "4XX", "5XX"],
1305
+ retry_config=retry_config,
1306
+ )
1307
+
1308
+ response_data: Any = None
1309
+ if utils.match_response(http_res, "200", "application/hal+json"):
1310
+ return unmarshal_json_response(
1311
+ models.GetPaymentLinkPaymentsResponse, http_res
1312
+ )
1313
+ if utils.match_response(http_res, "400", "application/hal+json"):
1314
+ response_data = unmarshal_json_response(models.ErrorResponseData, http_res)
1315
+ raise models.ErrorResponse(response_data, http_res)
1316
+ if utils.match_response(http_res, "4XX", "*"):
1317
+ http_res_text = await utils.stream_to_text_async(http_res)
1318
+ raise models.APIError("API error occurred", http_res, http_res_text)
1319
+ if utils.match_response(http_res, "5XX", "*"):
1320
+ http_res_text = await utils.stream_to_text_async(http_res)
1321
+ raise models.APIError("API error occurred", http_res, http_res_text)
1322
+
1323
+ raise models.APIError("Unexpected response received", http_res)