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.
- mollie/__init__.py +18 -0
- mollie/_hooks/__init__.py +5 -0
- mollie/_hooks/mollie_hooks.py +165 -0
- mollie/_hooks/registration.py +18 -0
- mollie/_hooks/sdkhooks.py +76 -0
- mollie/_hooks/types.py +113 -0
- mollie/_version.py +15 -0
- mollie/balance_transfers.py +651 -0
- mollie/balances.py +1105 -0
- mollie/basesdk.py +360 -0
- mollie/capabilities.py +209 -0
- mollie/captures.py +677 -0
- mollie/chargebacks_sdk.py +675 -0
- mollie/client_links.py +325 -0
- mollie/clients.py +409 -0
- mollie/customers.py +1563 -0
- mollie/delayed_routing.py +421 -0
- mollie/httpclient.py +125 -0
- mollie/invoices.py +429 -0
- mollie/mandates.py +895 -0
- mollie/methods.py +789 -0
- mollie/models/__init__.py +4002 -0
- mollie/models/address.py +29 -0
- mollie/models/amount.py +25 -0
- mollie/models/amount_nullable.py +24 -0
- mollie/models/apierror.py +40 -0
- mollie/models/balance_card_audience.py +10 -0
- mollie/models/balance_card_issuer.py +12 -0
- mollie/models/balance_card_region.py +12 -0
- mollie/models/balance_fee_type.py +43 -0
- mollie/models/balance_prepayment_part_type.py +13 -0
- mollie/models/balance_report_grouping.py +10 -0
- mollie/models/balance_transaction_type.py +47 -0
- mollie/models/balance_transfer_category.py +17 -0
- mollie/models/balance_transfer_category_response.py +18 -0
- mollie/models/balance_transfer_destination_type.py +14 -0
- mollie/models/balance_transfer_party_type.py +10 -0
- mollie/models/balance_transfer_party_type_response.py +11 -0
- mollie/models/balance_transfer_status.py +13 -0
- mollie/models/balance_transfer_status_reason_response.py +19 -0
- mollie/models/billingaddress.py +154 -0
- mollie/models/cancel_paymentop.py +93 -0
- mollie/models/cancel_refundop.py +86 -0
- mollie/models/cancel_subscriptionop.py +100 -0
- mollie/models/capability_requirement_status.py +15 -0
- mollie/models/capability_status.py +12 -0
- mollie/models/capability_status_reason.py +10 -0
- mollie/models/capture_mode.py +15 -0
- mollie/models/capture_mode_response.py +16 -0
- mollie/models/capture_response.py +265 -0
- mollie/models/client_link_request.py +210 -0
- mollie/models/client_link_response.py +56 -0
- mollie/models/clienterror.py +30 -0
- mollie/models/components_sub_totals.py +127 -0
- mollie/models/create_captureop.py +43 -0
- mollie/models/create_client_linkop.py +29 -0
- mollie/models/create_connect_balance_transferop.py +32 -0
- mollie/models/create_customer_paymentop.py +43 -0
- mollie/models/create_customerop.py +29 -0
- mollie/models/create_mandateop.py +43 -0
- mollie/models/create_payment_linkop.py +325 -0
- mollie/models/create_paymentop.py +73 -0
- mollie/models/create_profileop.py +29 -0
- mollie/models/create_refundop.py +43 -0
- mollie/models/create_sales_invoiceop.py +29 -0
- mollie/models/create_subscriptionop.py +43 -0
- mollie/models/create_webhook.py +123 -0
- mollie/models/create_webhookop.py +69 -0
- mollie/models/currencies.py +20 -0
- mollie/models/customer_response.py +169 -0
- mollie/models/delete_customerop.py +91 -0
- mollie/models/delete_payment_linkop.py +91 -0
- mollie/models/delete_profileop.py +29 -0
- mollie/models/delete_sales_invoiceop.py +44 -0
- mollie/models/delete_values_sales_invoice.py +54 -0
- mollie/models/delete_webhookop.py +56 -0
- mollie/models/entity_balance.py +325 -0
- mollie/models/entity_balance_report.py +541 -0
- mollie/models/entity_balance_transaction.py +1068 -0
- mollie/models/entity_balance_transfer.py +62 -0
- mollie/models/entity_balance_transfer_party.py +28 -0
- mollie/models/entity_balance_transfer_party_response.py +32 -0
- mollie/models/entity_balance_transfer_response.py +159 -0
- mollie/models/entity_capability.py +75 -0
- mollie/models/entity_capability_requirement.py +87 -0
- mollie/models/entity_capture.py +63 -0
- mollie/models/entity_chargeback.py +247 -0
- mollie/models/entity_customer.py +86 -0
- mollie/models/entity_event.py +46 -0
- mollie/models/entity_invoice.py +247 -0
- mollie/models/entity_method_get.py +329 -0
- mollie/models/entity_onboarding_status.py +95 -0
- mollie/models/entity_organization.py +178 -0
- mollie/models/entity_payment_route.py +111 -0
- mollie/models/entity_payment_route_response.py +140 -0
- mollie/models/entity_permission.py +61 -0
- mollie/models/entity_refund_response.py +361 -0
- mollie/models/entity_route.py +96 -0
- mollie/models/entity_settlement.py +467 -0
- mollie/models/entity_terminal.py +160 -0
- mollie/models/entity_webhook.py +122 -0
- mollie/models/entity_webhook_event.py +149 -0
- mollie/models/error_response.py +70 -0
- mollie/models/get_balance_reportop.py +126 -0
- mollie/models/get_balanceop.py +71 -0
- mollie/models/get_captureop.py +129 -0
- mollie/models/get_chargebackop.py +129 -0
- mollie/models/get_clientop.py +216 -0
- mollie/models/get_connect_balance_transferop.py +71 -0
- mollie/models/get_current_organizationop.py +22 -0
- mollie/models/get_current_profileop.py +22 -0
- mollie/models/get_customerop.py +286 -0
- mollie/models/get_invoiceop.py +29 -0
- mollie/models/get_mandateop.py +86 -0
- mollie/models/get_methodop.py +199 -0
- mollie/models/get_next_settlementop.py +22 -0
- mollie/models/get_onboarding_statusop.py +22 -0
- mollie/models/get_open_settlementop.py +22 -0
- mollie/models/get_organizationop.py +71 -0
- mollie/models/get_partner_statusop.py +231 -0
- mollie/models/get_payment_link_paymentsop.py +188 -0
- mollie/models/get_payment_linkop.py +77 -0
- mollie/models/get_paymentop.py +128 -0
- mollie/models/get_permissionop.py +73 -0
- mollie/models/get_primary_balanceop.py +22 -0
- mollie/models/get_profileop.py +71 -0
- mollie/models/get_refundop.py +129 -0
- mollie/models/get_sales_invoiceop.py +75 -0
- mollie/models/get_settlementop.py +29 -0
- mollie/models/get_subscriptionop.py +86 -0
- mollie/models/get_terminalop.py +77 -0
- mollie/models/get_webhook_eventop.py +71 -0
- mollie/models/get_webhookop.py +71 -0
- mollie/models/internal/__init__.py +54 -0
- mollie/models/internal/globals.py +59 -0
- mollie/models/line_categories.py +13 -0
- mollie/models/line_categories_response.py +14 -0
- mollie/models/list_all_chargebacksop.py +236 -0
- mollie/models/list_all_methodsop.py +249 -0
- mollie/models/list_all_refundsop.py +230 -0
- mollie/models/list_all_subscriptionsop.py +202 -0
- mollie/models/list_balance_transactionsop.py +174 -0
- mollie/models/list_balancesop.py +171 -0
- mollie/models/list_capabilitiesop.py +62 -0
- mollie/models/list_capture_response.py +264 -0
- mollie/models/list_capturesop.py +185 -0
- mollie/models/list_chargebacksop.py +185 -0
- mollie/models/list_clientsop.py +269 -0
- mollie/models/list_connect_balance_transfersop.py +177 -0
- mollie/models/list_customer_paymentsop.py +231 -0
- mollie/models/list_customer_response.py +164 -0
- mollie/models/list_customersop.py +172 -0
- mollie/models/list_entity_balance.py +322 -0
- mollie/models/list_entity_chargeback.py +244 -0
- mollie/models/list_entity_invoice.py +244 -0
- mollie/models/list_entity_method.py +315 -0
- mollie/models/list_entity_method_all.py +391 -0
- mollie/models/list_entity_permission.py +56 -0
- mollie/models/list_entity_refund.py +352 -0
- mollie/models/list_entity_settlement.py +457 -0
- mollie/models/list_entity_terminal.py +157 -0
- mollie/models/list_entity_webhook.py +117 -0
- mollie/models/list_invoicesop.py +175 -0
- mollie/models/list_links.py +68 -0
- mollie/models/list_mandate_response.py +261 -0
- mollie/models/list_mandatesop.py +186 -0
- mollie/models/list_methodsop.py +332 -0
- mollie/models/list_payment_linksop.py +159 -0
- mollie/models/list_payment_response.py +1953 -0
- mollie/models/list_paymentsop.py +217 -0
- mollie/models/list_permissionsop.py +85 -0
- mollie/models/list_profile_response.py +194 -0
- mollie/models/list_profilesop.py +118 -0
- mollie/models/list_refundsop.py +189 -0
- mollie/models/list_route_get_response.py +97 -0
- mollie/models/list_sales_invoice_response.py +505 -0
- mollie/models/list_sales_invoicesop.py +172 -0
- mollie/models/list_settlement_capturesop.py +187 -0
- mollie/models/list_settlement_chargebacksop.py +187 -0
- mollie/models/list_settlement_paymentsop.py +233 -0
- mollie/models/list_settlement_refundsop.py +191 -0
- mollie/models/list_settlementsop.py +178 -0
- mollie/models/list_subscription_paymentsop.py +242 -0
- mollie/models/list_subscription_response.py +344 -0
- mollie/models/list_subscriptionsop.py +189 -0
- mollie/models/list_terminalsop.py +172 -0
- mollie/models/list_webhooksop.py +189 -0
- mollie/models/locale.py +32 -0
- mollie/models/locale_response.py +33 -0
- mollie/models/mandate_details_card_label_response.py +22 -0
- mollie/models/mandate_method.py +15 -0
- mollie/models/mandate_method_response.py +16 -0
- mollie/models/mandate_request.py +160 -0
- mollie/models/mandate_response.py +264 -0
- mollie/models/metadata.py +19 -0
- mollie/models/method.py +50 -0
- mollie/models/method_include_wallets_parameter.py +8 -0
- mollie/models/method_resource_parameter.py +9 -0
- mollie/models/method_response.py +59 -0
- mollie/models/method_status.py +15 -0
- mollie/models/mode.py +12 -0
- mollie/models/no_response_error.py +17 -0
- mollie/models/onboarding_vat_regulation.py +16 -0
- mollie/models/organization_vat_regulation.py +17 -0
- mollie/models/payment_address.py +130 -0
- mollie/models/payment_create_routeop.py +43 -0
- mollie/models/payment_details_card_audition_response.py +12 -0
- mollie/models/payment_details_card_funding_response.py +14 -0
- mollie/models/payment_details_card_label_response.py +23 -0
- mollie/models/payment_details_card_security_response.py +12 -0
- mollie/models/payment_details_failure_reason_response.py +25 -0
- mollie/models/payment_details_fee_region_response.py +20 -0
- mollie/models/payment_details_receipt_card_read_method_response.py +17 -0
- mollie/models/payment_details_receipt_card_verification_method_response.py +21 -0
- mollie/models/payment_details_seller_protection_response.py +20 -0
- mollie/models/payment_details_wallet_response.py +11 -0
- mollie/models/payment_line_item.py +96 -0
- mollie/models/payment_line_item_response.py +104 -0
- mollie/models/payment_line_type.py +20 -0
- mollie/models/payment_line_type_response.py +21 -0
- mollie/models/payment_link_method.py +36 -0
- mollie/models/payment_link_method_response.py +37 -0
- mollie/models/payment_link_response.py +348 -0
- mollie/models/payment_link_sequence_type.py +9 -0
- mollie/models/payment_link_sequence_type_response.py +10 -0
- mollie/models/payment_list_routesop.py +140 -0
- mollie/models/payment_method.py +53 -0
- mollie/models/payment_request.py +919 -0
- mollie/models/payment_response.py +1953 -0
- mollie/models/profile_request.py +67 -0
- mollie/models/profile_response.py +197 -0
- mollie/models/profile_review_status_response.py +12 -0
- mollie/models/recurring_line_item.py +77 -0
- mollie/models/refund_external_reference_type.py +10 -0
- mollie/models/refund_external_reference_type_response.py +11 -0
- mollie/models/refund_request.py +200 -0
- mollie/models/release_authorizationop.py +108 -0
- mollie/models/request_apple_pay_payment_sessionop.py +76 -0
- mollie/models/responsevalidationerror.py +27 -0
- mollie/models/revoke_mandateop.py +100 -0
- mollie/models/route_create_response.py +97 -0
- mollie/models/route_destination_type.py +10 -0
- mollie/models/route_destination_type_response.py +11 -0
- mollie/models/sales_invoice_discount.py +21 -0
- mollie/models/sales_invoice_discount_response.py +25 -0
- mollie/models/sales_invoice_discount_type.py +11 -0
- mollie/models/sales_invoice_discount_type_response.py +12 -0
- mollie/models/sales_invoice_email_details.py +20 -0
- mollie/models/sales_invoice_line_item.py +67 -0
- mollie/models/sales_invoice_line_item_response.py +70 -0
- mollie/models/sales_invoice_payment_details.py +59 -0
- mollie/models/sales_invoice_payment_details_response.py +66 -0
- mollie/models/sales_invoice_payment_details_source.py +12 -0
- mollie/models/sales_invoice_payment_details_source_response.py +13 -0
- mollie/models/sales_invoice_payment_term.py +16 -0
- mollie/models/sales_invoice_payment_term_response.py +17 -0
- mollie/models/sales_invoice_recipient.py +176 -0
- mollie/models/sales_invoice_recipient_locale.py +18 -0
- mollie/models/sales_invoice_recipient_locale_response.py +19 -0
- mollie/models/sales_invoice_recipient_response.py +182 -0
- mollie/models/sales_invoice_recipient_type.py +13 -0
- mollie/models/sales_invoice_recipient_type_response.py +14 -0
- mollie/models/sales_invoice_request.py +256 -0
- mollie/models/sales_invoice_response.py +509 -0
- mollie/models/sales_invoice_status.py +25 -0
- mollie/models/sales_invoice_status_response.py +26 -0
- mollie/models/sales_invoice_vat_mode.py +13 -0
- mollie/models/sales_invoice_vat_mode_response.py +14 -0
- mollie/models/sales_invoice_vat_scheme.py +11 -0
- mollie/models/sales_invoice_vat_scheme_response.py +12 -0
- mollie/models/security.py +35 -0
- mollie/models/sequence_type.py +10 -0
- mollie/models/sequence_type_response.py +11 -0
- mollie/models/sorting.py +9 -0
- mollie/models/status_reason.py +168 -0
- mollie/models/sub_group.py +52 -0
- mollie/models/sub_totals.py +120 -0
- mollie/models/submit_onboarding_dataop.py +214 -0
- mollie/models/subscription_method.py +12 -0
- mollie/models/subscription_method_response.py +13 -0
- mollie/models/subscription_request.py +213 -0
- mollie/models/subscription_response.py +349 -0
- mollie/models/terminal_brand.py +12 -0
- mollie/models/terminal_model.py +16 -0
- mollie/models/test_webhookop.py +64 -0
- mollie/models/update_customerop.py +43 -0
- mollie/models/update_payment_linkop.py +172 -0
- mollie/models/update_paymentop.py +332 -0
- mollie/models/update_profileop.py +147 -0
- mollie/models/update_sales_invoiceop.py +44 -0
- mollie/models/update_subscriptionop.py +188 -0
- mollie/models/update_values_sales_invoice.py +176 -0
- mollie/models/update_webhookop.py +83 -0
- mollie/models/url.py +24 -0
- mollie/models/url_nullable.py +25 -0
- mollie/models/webhook_event_types.py +18 -0
- mollie/models/webhook_status.py +14 -0
- mollie/onboarding.py +403 -0
- mollie/organizations.py +579 -0
- mollie/payment_links.py +1323 -0
- mollie/payments_sdk.py +1385 -0
- mollie/permissions.py +397 -0
- mollie/profiles.py +1209 -0
- mollie/py.typed +1 -0
- mollie/refunds_sdk.py +1111 -0
- mollie/sales_invoices.py +1121 -0
- mollie/sdk.py +265 -0
- mollie/sdkconfiguration.py +50 -0
- mollie/settlements.py +1735 -0
- mollie/subscriptions.py +1617 -0
- mollie/terminals.py +427 -0
- mollie/types/__init__.py +21 -0
- mollie/types/basemodel.py +39 -0
- mollie/utils/__init__.py +200 -0
- mollie/utils/annotations.py +79 -0
- mollie/utils/datetimes.py +23 -0
- mollie/utils/enums.py +74 -0
- mollie/utils/eventstreaming.py +248 -0
- mollie/utils/forms.py +223 -0
- mollie/utils/headers.py +136 -0
- mollie/utils/logger.py +27 -0
- mollie/utils/metadata.py +118 -0
- mollie/utils/queryparams.py +205 -0
- mollie/utils/requestbodies.py +66 -0
- mollie/utils/retries.py +217 -0
- mollie/utils/security.py +195 -0
- mollie/utils/serializers.py +249 -0
- mollie/utils/unmarshal_json_response.py +24 -0
- mollie/utils/url.py +155 -0
- mollie/utils/values.py +137 -0
- mollie/wallets.py +263 -0
- mollie/webhook_events.py +211 -0
- mollie/webhooks.py +1305 -0
- mollie_api_py-1.0.0.dist-info/METADATA +834 -0
- mollie_api_py-1.0.0.dist-info/RECORD +337 -0
- mollie_api_py-1.0.0.dist-info/WHEEL +4 -0
- mollie_api_py-1.0.0.dist-info/licenses/LICENSE.md +24 -0
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .amount import Amount, AmountTypedDict
|
|
5
|
+
from .amount_nullable import AmountNullable, AmountNullableTypedDict
|
|
6
|
+
from .payment_address import PaymentAddress, PaymentAddressTypedDict
|
|
7
|
+
from .payment_line_item import PaymentLineItem, PaymentLineItemTypedDict
|
|
8
|
+
from .payment_link_method import PaymentLinkMethod
|
|
9
|
+
from .payment_link_sequence_type import PaymentLinkSequenceType
|
|
10
|
+
from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
11
|
+
from mollie.utils import FieldMetadata, HeaderMetadata, RequestMetadata
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import model_serializer
|
|
14
|
+
from typing import List, Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class CreatePaymentLinkApplicationFeeTypedDict(TypedDict):
|
|
19
|
+
r"""With Mollie Connect you can charge fees on payment links that your app is processing on behalf of other Mollie
|
|
20
|
+
merchants.
|
|
21
|
+
|
|
22
|
+
If you use OAuth to create payment links on a connected merchant's account, you can charge a fee using this
|
|
23
|
+
`applicationFee` parameter. If a payment on the payment link succeeds, the fee will be deducted from the merchant's balance and sent
|
|
24
|
+
to your own account balance.
|
|
25
|
+
"""
|
|
26
|
+
|
|
27
|
+
amount: AmountTypedDict
|
|
28
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
29
|
+
description: str
|
|
30
|
+
r"""The description of the application fee. This will appear on settlement reports towards both you and the
|
|
31
|
+
connected merchant.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class CreatePaymentLinkApplicationFee(BaseModel):
|
|
36
|
+
r"""With Mollie Connect you can charge fees on payment links that your app is processing on behalf of other Mollie
|
|
37
|
+
merchants.
|
|
38
|
+
|
|
39
|
+
If you use OAuth to create payment links on a connected merchant's account, you can charge a fee using this
|
|
40
|
+
`applicationFee` parameter. If a payment on the payment link succeeds, the fee will be deducted from the merchant's balance and sent
|
|
41
|
+
to your own account balance.
|
|
42
|
+
"""
|
|
43
|
+
|
|
44
|
+
amount: Amount
|
|
45
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
46
|
+
|
|
47
|
+
description: str
|
|
48
|
+
r"""The description of the application fee. This will appear on settlement reports towards both you and the
|
|
49
|
+
connected merchant.
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class CreatePaymentLinkRequestBodyTypedDict(TypedDict):
|
|
54
|
+
description: str
|
|
55
|
+
r"""A short description of the payment link. The description is visible in the Dashboard and will be shown on the
|
|
56
|
+
customer's bank or card statement when possible.
|
|
57
|
+
"""
|
|
58
|
+
amount: NotRequired[Nullable[AmountNullableTypedDict]]
|
|
59
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
60
|
+
minimum_amount: NotRequired[Nullable[AmountNullableTypedDict]]
|
|
61
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
62
|
+
redirect_url: NotRequired[Nullable[str]]
|
|
63
|
+
r"""The URL your customer will be redirected to after completing the payment process. If no redirect URL is provided,
|
|
64
|
+
the customer will be shown a generic message after completing the payment.
|
|
65
|
+
"""
|
|
66
|
+
webhook_url: NotRequired[Nullable[str]]
|
|
67
|
+
r"""The webhook URL where we will send payment status updates to.
|
|
68
|
+
|
|
69
|
+
The webhookUrl is optional, but without a webhook you will miss out on important status changes to any payments
|
|
70
|
+
resulting from the payment link.
|
|
71
|
+
|
|
72
|
+
The webhookUrl must be reachable from Mollie's point of view, so you cannot use `localhost`. If you want to use
|
|
73
|
+
webhook during development on `localhost`, you must use a tool like ngrok to have the webhooks delivered to your
|
|
74
|
+
local machine.
|
|
75
|
+
"""
|
|
76
|
+
lines: NotRequired[Nullable[List[PaymentLineItemTypedDict]]]
|
|
77
|
+
r"""Optionally provide the order lines for the payment. Each line contains details such as a description of the item
|
|
78
|
+
ordered and its price.
|
|
79
|
+
|
|
80
|
+
All lines must have the same currency as the payment.
|
|
81
|
+
|
|
82
|
+
Required for payment methods `billie`, `in3`, `klarna`, `riverty` and `voucher`.
|
|
83
|
+
"""
|
|
84
|
+
billing_address: NotRequired[PaymentAddressTypedDict]
|
|
85
|
+
shipping_address: NotRequired[PaymentAddressTypedDict]
|
|
86
|
+
profile_id: NotRequired[Nullable[str]]
|
|
87
|
+
r"""The identifier referring to the [profile](get-profile) this entity belongs to.
|
|
88
|
+
|
|
89
|
+
Most API credentials are linked to a single profile. In these cases the `profileId` can be omitted in the creation
|
|
90
|
+
request. For organization-level credentials such as OAuth access tokens however, the `profileId` parameter is
|
|
91
|
+
required.
|
|
92
|
+
"""
|
|
93
|
+
reusable: NotRequired[Nullable[bool]]
|
|
94
|
+
r"""Indicates whether the payment link is reusable. If this field is set to `true`, customers can make multiple
|
|
95
|
+
payments using the same link.
|
|
96
|
+
|
|
97
|
+
If no value is specified, the field defaults to `false`, allowing only a single payment per link.
|
|
98
|
+
"""
|
|
99
|
+
expires_at: NotRequired[Nullable[str]]
|
|
100
|
+
r"""The date and time the payment link is set to expire, in ISO 8601 format. If no expiry date was provided up front,
|
|
101
|
+
the payment link will not expire automatically.
|
|
102
|
+
"""
|
|
103
|
+
allowed_methods: NotRequired[Nullable[List[PaymentLinkMethod]]]
|
|
104
|
+
r"""An array of payment methods that are allowed to be used for this payment link. When this parameter is
|
|
105
|
+
not provided or is an empty array, all enabled payment methods will be available.
|
|
106
|
+
"""
|
|
107
|
+
application_fee: NotRequired[CreatePaymentLinkApplicationFeeTypedDict]
|
|
108
|
+
r"""With Mollie Connect you can charge fees on payment links that your app is processing on behalf of other Mollie
|
|
109
|
+
merchants.
|
|
110
|
+
|
|
111
|
+
If you use OAuth to create payment links on a connected merchant's account, you can charge a fee using this
|
|
112
|
+
`applicationFee` parameter. If a payment on the payment link succeeds, the fee will be deducted from the merchant's balance and sent
|
|
113
|
+
to your own account balance.
|
|
114
|
+
"""
|
|
115
|
+
sequence_type: NotRequired[PaymentLinkSequenceType]
|
|
116
|
+
customer_id: NotRequired[Nullable[str]]
|
|
117
|
+
r"""**Only relevant when `sequenceType` is set to `first`**
|
|
118
|
+
|
|
119
|
+
The ID of the [customer](get-customer) the payment link is being created for. If a value is not provided,
|
|
120
|
+
the customer will be required to input relevant information which will be used to establish a mandate after
|
|
121
|
+
the payment is made.
|
|
122
|
+
"""
|
|
123
|
+
testmode: NotRequired[Nullable[bool]]
|
|
124
|
+
r"""Whether to create the entity in test mode or live mode.
|
|
125
|
+
|
|
126
|
+
Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
|
|
127
|
+
omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
|
|
128
|
+
`testmode` to `true`.
|
|
129
|
+
"""
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
class CreatePaymentLinkRequestBody(BaseModel):
|
|
133
|
+
description: str
|
|
134
|
+
r"""A short description of the payment link. The description is visible in the Dashboard and will be shown on the
|
|
135
|
+
customer's bank or card statement when possible.
|
|
136
|
+
"""
|
|
137
|
+
|
|
138
|
+
amount: OptionalNullable[AmountNullable] = UNSET
|
|
139
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
140
|
+
|
|
141
|
+
minimum_amount: Annotated[
|
|
142
|
+
OptionalNullable[AmountNullable], pydantic.Field(alias="minimumAmount")
|
|
143
|
+
] = UNSET
|
|
144
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
145
|
+
|
|
146
|
+
redirect_url: Annotated[
|
|
147
|
+
OptionalNullable[str], pydantic.Field(alias="redirectUrl")
|
|
148
|
+
] = UNSET
|
|
149
|
+
r"""The URL your customer will be redirected to after completing the payment process. If no redirect URL is provided,
|
|
150
|
+
the customer will be shown a generic message after completing the payment.
|
|
151
|
+
"""
|
|
152
|
+
|
|
153
|
+
webhook_url: Annotated[
|
|
154
|
+
OptionalNullable[str], pydantic.Field(alias="webhookUrl")
|
|
155
|
+
] = UNSET
|
|
156
|
+
r"""The webhook URL where we will send payment status updates to.
|
|
157
|
+
|
|
158
|
+
The webhookUrl is optional, but without a webhook you will miss out on important status changes to any payments
|
|
159
|
+
resulting from the payment link.
|
|
160
|
+
|
|
161
|
+
The webhookUrl must be reachable from Mollie's point of view, so you cannot use `localhost`. If you want to use
|
|
162
|
+
webhook during development on `localhost`, you must use a tool like ngrok to have the webhooks delivered to your
|
|
163
|
+
local machine.
|
|
164
|
+
"""
|
|
165
|
+
|
|
166
|
+
lines: OptionalNullable[List[PaymentLineItem]] = UNSET
|
|
167
|
+
r"""Optionally provide the order lines for the payment. Each line contains details such as a description of the item
|
|
168
|
+
ordered and its price.
|
|
169
|
+
|
|
170
|
+
All lines must have the same currency as the payment.
|
|
171
|
+
|
|
172
|
+
Required for payment methods `billie`, `in3`, `klarna`, `riverty` and `voucher`.
|
|
173
|
+
"""
|
|
174
|
+
|
|
175
|
+
billing_address: Annotated[
|
|
176
|
+
Optional[PaymentAddress], pydantic.Field(alias="billingAddress")
|
|
177
|
+
] = None
|
|
178
|
+
|
|
179
|
+
shipping_address: Annotated[
|
|
180
|
+
Optional[PaymentAddress], pydantic.Field(alias="shippingAddress")
|
|
181
|
+
] = None
|
|
182
|
+
|
|
183
|
+
profile_id: Annotated[OptionalNullable[str], pydantic.Field(alias="profileId")] = (
|
|
184
|
+
UNSET
|
|
185
|
+
)
|
|
186
|
+
r"""The identifier referring to the [profile](get-profile) this entity belongs to.
|
|
187
|
+
|
|
188
|
+
Most API credentials are linked to a single profile. In these cases the `profileId` can be omitted in the creation
|
|
189
|
+
request. For organization-level credentials such as OAuth access tokens however, the `profileId` parameter is
|
|
190
|
+
required.
|
|
191
|
+
"""
|
|
192
|
+
|
|
193
|
+
reusable: OptionalNullable[bool] = UNSET
|
|
194
|
+
r"""Indicates whether the payment link is reusable. If this field is set to `true`, customers can make multiple
|
|
195
|
+
payments using the same link.
|
|
196
|
+
|
|
197
|
+
If no value is specified, the field defaults to `false`, allowing only a single payment per link.
|
|
198
|
+
"""
|
|
199
|
+
|
|
200
|
+
expires_at: Annotated[OptionalNullable[str], pydantic.Field(alias="expiresAt")] = (
|
|
201
|
+
UNSET
|
|
202
|
+
)
|
|
203
|
+
r"""The date and time the payment link is set to expire, in ISO 8601 format. If no expiry date was provided up front,
|
|
204
|
+
the payment link will not expire automatically.
|
|
205
|
+
"""
|
|
206
|
+
|
|
207
|
+
allowed_methods: Annotated[
|
|
208
|
+
OptionalNullable[List[PaymentLinkMethod]],
|
|
209
|
+
pydantic.Field(alias="allowedMethods"),
|
|
210
|
+
] = UNSET
|
|
211
|
+
r"""An array of payment methods that are allowed to be used for this payment link. When this parameter is
|
|
212
|
+
not provided or is an empty array, all enabled payment methods will be available.
|
|
213
|
+
"""
|
|
214
|
+
|
|
215
|
+
application_fee: Annotated[
|
|
216
|
+
Optional[CreatePaymentLinkApplicationFee],
|
|
217
|
+
pydantic.Field(alias="applicationFee"),
|
|
218
|
+
] = None
|
|
219
|
+
r"""With Mollie Connect you can charge fees on payment links that your app is processing on behalf of other Mollie
|
|
220
|
+
merchants.
|
|
221
|
+
|
|
222
|
+
If you use OAuth to create payment links on a connected merchant's account, you can charge a fee using this
|
|
223
|
+
`applicationFee` parameter. If a payment on the payment link succeeds, the fee will be deducted from the merchant's balance and sent
|
|
224
|
+
to your own account balance.
|
|
225
|
+
"""
|
|
226
|
+
|
|
227
|
+
sequence_type: Annotated[
|
|
228
|
+
Optional[PaymentLinkSequenceType], pydantic.Field(alias="sequenceType")
|
|
229
|
+
] = None
|
|
230
|
+
|
|
231
|
+
customer_id: Annotated[
|
|
232
|
+
OptionalNullable[str], pydantic.Field(alias="customerId")
|
|
233
|
+
] = UNSET
|
|
234
|
+
r"""**Only relevant when `sequenceType` is set to `first`**
|
|
235
|
+
|
|
236
|
+
The ID of the [customer](get-customer) the payment link is being created for. If a value is not provided,
|
|
237
|
+
the customer will be required to input relevant information which will be used to establish a mandate after
|
|
238
|
+
the payment is made.
|
|
239
|
+
"""
|
|
240
|
+
|
|
241
|
+
testmode: OptionalNullable[bool] = UNSET
|
|
242
|
+
r"""Whether to create the entity in test mode or live mode.
|
|
243
|
+
|
|
244
|
+
Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
|
|
245
|
+
omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
|
|
246
|
+
`testmode` to `true`.
|
|
247
|
+
"""
|
|
248
|
+
|
|
249
|
+
@model_serializer(mode="wrap")
|
|
250
|
+
def serialize_model(self, handler):
|
|
251
|
+
optional_fields = [
|
|
252
|
+
"amount",
|
|
253
|
+
"minimumAmount",
|
|
254
|
+
"redirectUrl",
|
|
255
|
+
"webhookUrl",
|
|
256
|
+
"lines",
|
|
257
|
+
"billingAddress",
|
|
258
|
+
"shippingAddress",
|
|
259
|
+
"profileId",
|
|
260
|
+
"reusable",
|
|
261
|
+
"expiresAt",
|
|
262
|
+
"allowedMethods",
|
|
263
|
+
"applicationFee",
|
|
264
|
+
"sequenceType",
|
|
265
|
+
"customerId",
|
|
266
|
+
"testmode",
|
|
267
|
+
]
|
|
268
|
+
nullable_fields = [
|
|
269
|
+
"amount",
|
|
270
|
+
"minimumAmount",
|
|
271
|
+
"redirectUrl",
|
|
272
|
+
"webhookUrl",
|
|
273
|
+
"lines",
|
|
274
|
+
"profileId",
|
|
275
|
+
"reusable",
|
|
276
|
+
"expiresAt",
|
|
277
|
+
"allowedMethods",
|
|
278
|
+
"customerId",
|
|
279
|
+
"testmode",
|
|
280
|
+
]
|
|
281
|
+
null_default_fields = []
|
|
282
|
+
|
|
283
|
+
serialized = handler(self)
|
|
284
|
+
|
|
285
|
+
m = {}
|
|
286
|
+
|
|
287
|
+
for n, f in type(self).model_fields.items():
|
|
288
|
+
k = f.alias or n
|
|
289
|
+
val = serialized.get(k)
|
|
290
|
+
serialized.pop(k, None)
|
|
291
|
+
|
|
292
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
293
|
+
is_set = (
|
|
294
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
295
|
+
or k in null_default_fields
|
|
296
|
+
) # pylint: disable=no-member
|
|
297
|
+
|
|
298
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
299
|
+
m[k] = val
|
|
300
|
+
elif val != UNSET_SENTINEL and (
|
|
301
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
302
|
+
):
|
|
303
|
+
m[k] = val
|
|
304
|
+
|
|
305
|
+
return m
|
|
306
|
+
|
|
307
|
+
|
|
308
|
+
class CreatePaymentLinkRequestTypedDict(TypedDict):
|
|
309
|
+
idempotency_key: NotRequired[str]
|
|
310
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
311
|
+
request_body: NotRequired[CreatePaymentLinkRequestBodyTypedDict]
|
|
312
|
+
|
|
313
|
+
|
|
314
|
+
class CreatePaymentLinkRequest(BaseModel):
|
|
315
|
+
idempotency_key: Annotated[
|
|
316
|
+
Optional[str],
|
|
317
|
+
pydantic.Field(alias="idempotency-key"),
|
|
318
|
+
FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
|
|
319
|
+
] = None
|
|
320
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
321
|
+
|
|
322
|
+
request_body: Annotated[
|
|
323
|
+
Optional[CreatePaymentLinkRequestBody],
|
|
324
|
+
FieldMetadata(request=RequestMetadata(media_type="application/json")),
|
|
325
|
+
] = None
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .payment_request import PaymentRequest, PaymentRequestTypedDict
|
|
5
|
+
from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
6
|
+
from mollie.utils import (
|
|
7
|
+
FieldMetadata,
|
|
8
|
+
HeaderMetadata,
|
|
9
|
+
QueryParamMetadata,
|
|
10
|
+
RequestMetadata,
|
|
11
|
+
)
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import model_serializer
|
|
14
|
+
from typing import Optional
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class CreatePaymentRequestTypedDict(TypedDict):
|
|
19
|
+
include: NotRequired[Nullable[str]]
|
|
20
|
+
r"""This endpoint allows you to include additional information via the `include` query string parameter."""
|
|
21
|
+
idempotency_key: NotRequired[str]
|
|
22
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
23
|
+
payment_request: NotRequired[PaymentRequestTypedDict]
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class CreatePaymentRequest(BaseModel):
|
|
27
|
+
include: Annotated[
|
|
28
|
+
OptionalNullable[str],
|
|
29
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
30
|
+
] = UNSET
|
|
31
|
+
r"""This endpoint allows you to include additional information via the `include` query string parameter."""
|
|
32
|
+
|
|
33
|
+
idempotency_key: Annotated[
|
|
34
|
+
Optional[str],
|
|
35
|
+
pydantic.Field(alias="idempotency-key"),
|
|
36
|
+
FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
|
|
37
|
+
] = None
|
|
38
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
39
|
+
|
|
40
|
+
payment_request: Annotated[
|
|
41
|
+
Optional[PaymentRequest],
|
|
42
|
+
FieldMetadata(request=RequestMetadata(media_type="application/json")),
|
|
43
|
+
] = None
|
|
44
|
+
|
|
45
|
+
@model_serializer(mode="wrap")
|
|
46
|
+
def serialize_model(self, handler):
|
|
47
|
+
optional_fields = ["include", "idempotency-key", "payment-request"]
|
|
48
|
+
nullable_fields = ["include"]
|
|
49
|
+
null_default_fields = []
|
|
50
|
+
|
|
51
|
+
serialized = handler(self)
|
|
52
|
+
|
|
53
|
+
m = {}
|
|
54
|
+
|
|
55
|
+
for n, f in type(self).model_fields.items():
|
|
56
|
+
k = f.alias or n
|
|
57
|
+
val = serialized.get(k)
|
|
58
|
+
serialized.pop(k, None)
|
|
59
|
+
|
|
60
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
61
|
+
is_set = (
|
|
62
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
63
|
+
or k in null_default_fields
|
|
64
|
+
) # pylint: disable=no-member
|
|
65
|
+
|
|
66
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
67
|
+
m[k] = val
|
|
68
|
+
elif val != UNSET_SENTINEL and (
|
|
69
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
70
|
+
):
|
|
71
|
+
m[k] = val
|
|
72
|
+
|
|
73
|
+
return m
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .profile_request import ProfileRequest, ProfileRequestTypedDict
|
|
5
|
+
from mollie.types import BaseModel
|
|
6
|
+
from mollie.utils import FieldMetadata, HeaderMetadata, RequestMetadata
|
|
7
|
+
import pydantic
|
|
8
|
+
from typing import Optional
|
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class CreateProfileRequestTypedDict(TypedDict):
|
|
13
|
+
profile_request: ProfileRequestTypedDict
|
|
14
|
+
idempotency_key: NotRequired[str]
|
|
15
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class CreateProfileRequest(BaseModel):
|
|
19
|
+
profile_request: Annotated[
|
|
20
|
+
ProfileRequest,
|
|
21
|
+
FieldMetadata(request=RequestMetadata(media_type="application/json")),
|
|
22
|
+
]
|
|
23
|
+
|
|
24
|
+
idempotency_key: Annotated[
|
|
25
|
+
Optional[str],
|
|
26
|
+
pydantic.Field(alias="idempotency-key"),
|
|
27
|
+
FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
|
|
28
|
+
] = None
|
|
29
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .refund_request import RefundRequest, RefundRequestTypedDict
|
|
5
|
+
from mollie.types import BaseModel
|
|
6
|
+
from mollie.utils import (
|
|
7
|
+
FieldMetadata,
|
|
8
|
+
HeaderMetadata,
|
|
9
|
+
PathParamMetadata,
|
|
10
|
+
RequestMetadata,
|
|
11
|
+
)
|
|
12
|
+
import pydantic
|
|
13
|
+
from typing import Optional
|
|
14
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class CreateRefundRequestTypedDict(TypedDict):
|
|
18
|
+
payment_id: str
|
|
19
|
+
r"""Provide the ID of the related payment."""
|
|
20
|
+
idempotency_key: NotRequired[str]
|
|
21
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
22
|
+
refund_request: NotRequired[RefundRequestTypedDict]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class CreateRefundRequest(BaseModel):
|
|
26
|
+
payment_id: Annotated[
|
|
27
|
+
str,
|
|
28
|
+
pydantic.Field(alias="paymentId"),
|
|
29
|
+
FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
|
|
30
|
+
]
|
|
31
|
+
r"""Provide the ID of the related payment."""
|
|
32
|
+
|
|
33
|
+
idempotency_key: Annotated[
|
|
34
|
+
Optional[str],
|
|
35
|
+
pydantic.Field(alias="idempotency-key"),
|
|
36
|
+
FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
|
|
37
|
+
] = None
|
|
38
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
39
|
+
|
|
40
|
+
refund_request: Annotated[
|
|
41
|
+
Optional[RefundRequest],
|
|
42
|
+
FieldMetadata(request=RequestMetadata(media_type="application/json")),
|
|
43
|
+
] = None
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .sales_invoice_request import SalesInvoiceRequest, SalesInvoiceRequestTypedDict
|
|
5
|
+
from mollie.types import BaseModel
|
|
6
|
+
from mollie.utils import FieldMetadata, HeaderMetadata, RequestMetadata
|
|
7
|
+
import pydantic
|
|
8
|
+
from typing import Optional
|
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class CreateSalesInvoiceRequestTypedDict(TypedDict):
|
|
13
|
+
idempotency_key: NotRequired[str]
|
|
14
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
15
|
+
sales_invoice_request: NotRequired[SalesInvoiceRequestTypedDict]
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class CreateSalesInvoiceRequest(BaseModel):
|
|
19
|
+
idempotency_key: Annotated[
|
|
20
|
+
Optional[str],
|
|
21
|
+
pydantic.Field(alias="idempotency-key"),
|
|
22
|
+
FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
|
|
23
|
+
] = None
|
|
24
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
25
|
+
|
|
26
|
+
sales_invoice_request: Annotated[
|
|
27
|
+
Optional[SalesInvoiceRequest],
|
|
28
|
+
FieldMetadata(request=RequestMetadata(media_type="application/json")),
|
|
29
|
+
] = None
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .subscription_request import SubscriptionRequest, SubscriptionRequestTypedDict
|
|
5
|
+
from mollie.types import BaseModel
|
|
6
|
+
from mollie.utils import (
|
|
7
|
+
FieldMetadata,
|
|
8
|
+
HeaderMetadata,
|
|
9
|
+
PathParamMetadata,
|
|
10
|
+
RequestMetadata,
|
|
11
|
+
)
|
|
12
|
+
import pydantic
|
|
13
|
+
from typing import Optional
|
|
14
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class CreateSubscriptionRequestTypedDict(TypedDict):
|
|
18
|
+
customer_id: str
|
|
19
|
+
r"""Provide the ID of the related customer."""
|
|
20
|
+
idempotency_key: NotRequired[str]
|
|
21
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
22
|
+
subscription_request: NotRequired[SubscriptionRequestTypedDict]
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class CreateSubscriptionRequest(BaseModel):
|
|
26
|
+
customer_id: Annotated[
|
|
27
|
+
str,
|
|
28
|
+
pydantic.Field(alias="customerId"),
|
|
29
|
+
FieldMetadata(path=PathParamMetadata(style="simple", explode=False)),
|
|
30
|
+
]
|
|
31
|
+
r"""Provide the ID of the related customer."""
|
|
32
|
+
|
|
33
|
+
idempotency_key: Annotated[
|
|
34
|
+
Optional[str],
|
|
35
|
+
pydantic.Field(alias="idempotency-key"),
|
|
36
|
+
FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
|
|
37
|
+
] = None
|
|
38
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
39
|
+
|
|
40
|
+
subscription_request: Annotated[
|
|
41
|
+
Optional[SubscriptionRequest],
|
|
42
|
+
FieldMetadata(request=RequestMetadata(media_type="application/json")),
|
|
43
|
+
] = None
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .mode import Mode
|
|
5
|
+
from .url import URL, URLTypedDict
|
|
6
|
+
from .webhook_event_types import WebhookEventTypes
|
|
7
|
+
from .webhook_status import WebhookStatus
|
|
8
|
+
from mollie.types import BaseModel, Nullable, UNSET_SENTINEL
|
|
9
|
+
from mollie.utils import validate_open_enum
|
|
10
|
+
import pydantic
|
|
11
|
+
from pydantic import model_serializer
|
|
12
|
+
from pydantic.functional_validators import PlainValidator
|
|
13
|
+
from typing import List
|
|
14
|
+
from typing_extensions import Annotated, TypedDict
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class CreateWebhookLinksTypedDict(TypedDict):
|
|
18
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
19
|
+
|
|
20
|
+
self_: URLTypedDict
|
|
21
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
22
|
+
documentation: URLTypedDict
|
|
23
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class CreateWebhookLinks(BaseModel):
|
|
27
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
28
|
+
|
|
29
|
+
self_: Annotated[URL, pydantic.Field(alias="self")]
|
|
30
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
31
|
+
|
|
32
|
+
documentation: URL
|
|
33
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
class CreateWebhookTypedDict(TypedDict):
|
|
37
|
+
resource: str
|
|
38
|
+
r"""Indicates the response contains a webhook subscription object. Will always contain the string `webhook` for this endpoint."""
|
|
39
|
+
id: str
|
|
40
|
+
r"""The identifier uniquely referring to this subscription."""
|
|
41
|
+
url: str
|
|
42
|
+
r"""The subscription's events destination."""
|
|
43
|
+
profile_id: Nullable[str]
|
|
44
|
+
r"""The identifier uniquely referring to the profile that created the subscription."""
|
|
45
|
+
created_at: str
|
|
46
|
+
r"""The subscription's date time of creation."""
|
|
47
|
+
name: str
|
|
48
|
+
r"""The subscription's name."""
|
|
49
|
+
event_types: List[WebhookEventTypes]
|
|
50
|
+
r"""The events types that are subscribed."""
|
|
51
|
+
status: WebhookStatus
|
|
52
|
+
r"""The subscription's current status."""
|
|
53
|
+
mode: Mode
|
|
54
|
+
r"""Whether this entity was created in live mode or in test mode."""
|
|
55
|
+
webhook_secret: str
|
|
56
|
+
r"""The subscription's secret."""
|
|
57
|
+
links: CreateWebhookLinksTypedDict
|
|
58
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class CreateWebhook(BaseModel):
|
|
62
|
+
resource: str
|
|
63
|
+
r"""Indicates the response contains a webhook subscription object. Will always contain the string `webhook` for this endpoint."""
|
|
64
|
+
|
|
65
|
+
id: str
|
|
66
|
+
r"""The identifier uniquely referring to this subscription."""
|
|
67
|
+
|
|
68
|
+
url: str
|
|
69
|
+
r"""The subscription's events destination."""
|
|
70
|
+
|
|
71
|
+
profile_id: Annotated[Nullable[str], pydantic.Field(alias="profileId")]
|
|
72
|
+
r"""The identifier uniquely referring to the profile that created the subscription."""
|
|
73
|
+
|
|
74
|
+
created_at: Annotated[str, pydantic.Field(alias="createdAt")]
|
|
75
|
+
r"""The subscription's date time of creation."""
|
|
76
|
+
|
|
77
|
+
name: str
|
|
78
|
+
r"""The subscription's name."""
|
|
79
|
+
|
|
80
|
+
event_types: Annotated[List[WebhookEventTypes], pydantic.Field(alias="eventTypes")]
|
|
81
|
+
r"""The events types that are subscribed."""
|
|
82
|
+
|
|
83
|
+
status: Annotated[WebhookStatus, PlainValidator(validate_open_enum(False))]
|
|
84
|
+
r"""The subscription's current status."""
|
|
85
|
+
|
|
86
|
+
mode: Annotated[Mode, PlainValidator(validate_open_enum(False))]
|
|
87
|
+
r"""Whether this entity was created in live mode or in test mode."""
|
|
88
|
+
|
|
89
|
+
webhook_secret: Annotated[str, pydantic.Field(alias="webhookSecret")]
|
|
90
|
+
r"""The subscription's secret."""
|
|
91
|
+
|
|
92
|
+
links: Annotated[CreateWebhookLinks, pydantic.Field(alias="_links")]
|
|
93
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
94
|
+
|
|
95
|
+
@model_serializer(mode="wrap")
|
|
96
|
+
def serialize_model(self, handler):
|
|
97
|
+
optional_fields = []
|
|
98
|
+
nullable_fields = ["profileId"]
|
|
99
|
+
null_default_fields = []
|
|
100
|
+
|
|
101
|
+
serialized = handler(self)
|
|
102
|
+
|
|
103
|
+
m = {}
|
|
104
|
+
|
|
105
|
+
for n, f in type(self).model_fields.items():
|
|
106
|
+
k = f.alias or n
|
|
107
|
+
val = serialized.get(k)
|
|
108
|
+
serialized.pop(k, None)
|
|
109
|
+
|
|
110
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
111
|
+
is_set = (
|
|
112
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
113
|
+
or k in null_default_fields
|
|
114
|
+
) # pylint: disable=no-member
|
|
115
|
+
|
|
116
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
117
|
+
m[k] = val
|
|
118
|
+
elif val != UNSET_SENTINEL and (
|
|
119
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
120
|
+
):
|
|
121
|
+
m[k] = val
|
|
122
|
+
|
|
123
|
+
return m
|