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,172 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .list_entity_terminal import ListEntityTerminal, ListEntityTerminalTypedDict
|
|
5
|
+
from .list_links import ListLinks, ListLinksTypedDict
|
|
6
|
+
from .sorting import Sorting
|
|
7
|
+
from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
8
|
+
from mollie.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata
|
|
9
|
+
import pydantic
|
|
10
|
+
from pydantic import model_serializer
|
|
11
|
+
from typing import List, Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class ListTerminalsGlobalsTypedDict(TypedDict):
|
|
16
|
+
testmode: NotRequired[bool]
|
|
17
|
+
r"""Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query
|
|
18
|
+
parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by
|
|
19
|
+
setting the `testmode` query parameter to `true`.
|
|
20
|
+
|
|
21
|
+
Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class ListTerminalsGlobals(BaseModel):
|
|
26
|
+
testmode: Annotated[
|
|
27
|
+
Optional[bool],
|
|
28
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
29
|
+
] = None
|
|
30
|
+
r"""Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query
|
|
31
|
+
parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by
|
|
32
|
+
setting the `testmode` query parameter to `true`.
|
|
33
|
+
|
|
34
|
+
Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
|
|
35
|
+
"""
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class ListTerminalsRequestTypedDict(TypedDict):
|
|
39
|
+
from_: NotRequired[str]
|
|
40
|
+
r"""Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the
|
|
41
|
+
result set.
|
|
42
|
+
"""
|
|
43
|
+
limit: NotRequired[Nullable[int]]
|
|
44
|
+
r"""The maximum number of items to return. Defaults to 50 items."""
|
|
45
|
+
sort: NotRequired[Sorting]
|
|
46
|
+
r"""Used for setting the direction of the result set. Defaults to descending order, meaning the results are ordered from
|
|
47
|
+
newest to oldest.
|
|
48
|
+
"""
|
|
49
|
+
testmode: NotRequired[bool]
|
|
50
|
+
r"""Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query
|
|
51
|
+
parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by
|
|
52
|
+
setting the `testmode` query parameter to `true`.
|
|
53
|
+
|
|
54
|
+
Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
|
|
55
|
+
"""
|
|
56
|
+
idempotency_key: NotRequired[str]
|
|
57
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
class ListTerminalsRequest(BaseModel):
|
|
61
|
+
from_: Annotated[
|
|
62
|
+
Optional[str],
|
|
63
|
+
pydantic.Field(alias="from"),
|
|
64
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
65
|
+
] = None
|
|
66
|
+
r"""Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the
|
|
67
|
+
result set.
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
limit: Annotated[
|
|
71
|
+
OptionalNullable[int],
|
|
72
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
73
|
+
] = UNSET
|
|
74
|
+
r"""The maximum number of items to return. Defaults to 50 items."""
|
|
75
|
+
|
|
76
|
+
sort: Annotated[
|
|
77
|
+
Optional[Sorting],
|
|
78
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
79
|
+
] = None
|
|
80
|
+
r"""Used for setting the direction of the result set. Defaults to descending order, meaning the results are ordered from
|
|
81
|
+
newest to oldest.
|
|
82
|
+
"""
|
|
83
|
+
|
|
84
|
+
testmode: Annotated[
|
|
85
|
+
Optional[bool],
|
|
86
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
87
|
+
] = None
|
|
88
|
+
r"""Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query
|
|
89
|
+
parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by
|
|
90
|
+
setting the `testmode` query parameter to `true`.
|
|
91
|
+
|
|
92
|
+
Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
idempotency_key: Annotated[
|
|
96
|
+
Optional[str],
|
|
97
|
+
pydantic.Field(alias="idempotency-key"),
|
|
98
|
+
FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
|
|
99
|
+
] = None
|
|
100
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
101
|
+
|
|
102
|
+
@model_serializer(mode="wrap")
|
|
103
|
+
def serialize_model(self, handler):
|
|
104
|
+
optional_fields = ["from", "limit", "sort", "testmode", "idempotency-key"]
|
|
105
|
+
nullable_fields = ["limit"]
|
|
106
|
+
null_default_fields = []
|
|
107
|
+
|
|
108
|
+
serialized = handler(self)
|
|
109
|
+
|
|
110
|
+
m = {}
|
|
111
|
+
|
|
112
|
+
for n, f in type(self).model_fields.items():
|
|
113
|
+
k = f.alias or n
|
|
114
|
+
val = serialized.get(k)
|
|
115
|
+
serialized.pop(k, None)
|
|
116
|
+
|
|
117
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
118
|
+
is_set = (
|
|
119
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
120
|
+
or k in null_default_fields
|
|
121
|
+
) # pylint: disable=no-member
|
|
122
|
+
|
|
123
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
124
|
+
m[k] = val
|
|
125
|
+
elif val != UNSET_SENTINEL and (
|
|
126
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
127
|
+
):
|
|
128
|
+
m[k] = val
|
|
129
|
+
|
|
130
|
+
return m
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
class ListTerminalsEmbeddedTypedDict(TypedDict):
|
|
134
|
+
terminals: NotRequired[List[ListEntityTerminalTypedDict]]
|
|
135
|
+
r"""An array of terminal objects."""
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
class ListTerminalsEmbedded(BaseModel):
|
|
139
|
+
terminals: Optional[List[ListEntityTerminal]] = None
|
|
140
|
+
r"""An array of terminal objects."""
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
class ListTerminalsResponseTypedDict(TypedDict):
|
|
144
|
+
r"""A list of terminal objects."""
|
|
145
|
+
|
|
146
|
+
count: int
|
|
147
|
+
r"""The number of items in this result set. If more items are available, a `_links.next` URL will be present in the result
|
|
148
|
+
as well.
|
|
149
|
+
|
|
150
|
+
The maximum number of items per result set is controlled by the `limit` property provided in the request. The default
|
|
151
|
+
limit is 50 items.
|
|
152
|
+
"""
|
|
153
|
+
embedded: ListTerminalsEmbeddedTypedDict
|
|
154
|
+
links: ListLinksTypedDict
|
|
155
|
+
r"""Links to help navigate through the lists of items. Every URL object will contain an `href` and a `type` field."""
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
class ListTerminalsResponse(BaseModel):
|
|
159
|
+
r"""A list of terminal objects."""
|
|
160
|
+
|
|
161
|
+
count: int
|
|
162
|
+
r"""The number of items in this result set. If more items are available, a `_links.next` URL will be present in the result
|
|
163
|
+
as well.
|
|
164
|
+
|
|
165
|
+
The maximum number of items per result set is controlled by the `limit` property provided in the request. The default
|
|
166
|
+
limit is 50 items.
|
|
167
|
+
"""
|
|
168
|
+
|
|
169
|
+
embedded: Annotated[ListTerminalsEmbedded, pydantic.Field(alias="_embedded")]
|
|
170
|
+
|
|
171
|
+
links: Annotated[ListLinks, pydantic.Field(alias="_links")]
|
|
172
|
+
r"""Links to help navigate through the lists of items. Every URL object will contain an `href` and a `type` field."""
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .list_entity_webhook import ListEntityWebhook, ListEntityWebhookTypedDict
|
|
5
|
+
from .list_links import ListLinks, ListLinksTypedDict
|
|
6
|
+
from .sorting import Sorting
|
|
7
|
+
from .webhook_event_types import WebhookEventTypes
|
|
8
|
+
from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
9
|
+
from mollie.utils import FieldMetadata, HeaderMetadata, QueryParamMetadata
|
|
10
|
+
import pydantic
|
|
11
|
+
from pydantic import model_serializer
|
|
12
|
+
from typing import List, Optional
|
|
13
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
class ListWebhooksGlobalsTypedDict(TypedDict):
|
|
17
|
+
testmode: NotRequired[bool]
|
|
18
|
+
r"""Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query
|
|
19
|
+
parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by
|
|
20
|
+
setting the `testmode` query parameter to `true`.
|
|
21
|
+
|
|
22
|
+
Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class ListWebhooksGlobals(BaseModel):
|
|
27
|
+
testmode: Annotated[
|
|
28
|
+
Optional[bool],
|
|
29
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
30
|
+
] = None
|
|
31
|
+
r"""Most API credentials are specifically created for either live mode or test mode. In those cases the `testmode` query
|
|
32
|
+
parameter can be omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by
|
|
33
|
+
setting the `testmode` query parameter to `true`.
|
|
34
|
+
|
|
35
|
+
Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class ListWebhooksRequestTypedDict(TypedDict):
|
|
40
|
+
from_: NotRequired[Nullable[str]]
|
|
41
|
+
r"""Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the
|
|
42
|
+
result set.
|
|
43
|
+
"""
|
|
44
|
+
limit: NotRequired[Nullable[int]]
|
|
45
|
+
r"""The maximum number of items to return. Defaults to 50 items."""
|
|
46
|
+
sort: NotRequired[Sorting]
|
|
47
|
+
r"""Used for setting the direction of the result set. Defaults to descending order, meaning the results are ordered from
|
|
48
|
+
newest to oldest.
|
|
49
|
+
"""
|
|
50
|
+
event_types: NotRequired[WebhookEventTypes]
|
|
51
|
+
r"""Used to filter out only the webhooks that are subscribed to certain types of events."""
|
|
52
|
+
testmode: NotRequired[bool]
|
|
53
|
+
r"""You can enable test mode by setting the `testmode` query parameter to `true`.
|
|
54
|
+
|
|
55
|
+
Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
|
|
56
|
+
"""
|
|
57
|
+
idempotency_key: NotRequired[str]
|
|
58
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
class ListWebhooksRequest(BaseModel):
|
|
62
|
+
from_: Annotated[
|
|
63
|
+
OptionalNullable[str],
|
|
64
|
+
pydantic.Field(alias="from"),
|
|
65
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
66
|
+
] = UNSET
|
|
67
|
+
r"""Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the
|
|
68
|
+
result set.
|
|
69
|
+
"""
|
|
70
|
+
|
|
71
|
+
limit: Annotated[
|
|
72
|
+
OptionalNullable[int],
|
|
73
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
74
|
+
] = UNSET
|
|
75
|
+
r"""The maximum number of items to return. Defaults to 50 items."""
|
|
76
|
+
|
|
77
|
+
sort: Annotated[
|
|
78
|
+
Optional[Sorting],
|
|
79
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
80
|
+
] = None
|
|
81
|
+
r"""Used for setting the direction of the result set. Defaults to descending order, meaning the results are ordered from
|
|
82
|
+
newest to oldest.
|
|
83
|
+
"""
|
|
84
|
+
|
|
85
|
+
event_types: Annotated[
|
|
86
|
+
Optional[WebhookEventTypes],
|
|
87
|
+
pydantic.Field(alias="eventTypes"),
|
|
88
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
89
|
+
] = None
|
|
90
|
+
r"""Used to filter out only the webhooks that are subscribed to certain types of events."""
|
|
91
|
+
|
|
92
|
+
testmode: Annotated[
|
|
93
|
+
Optional[bool],
|
|
94
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
95
|
+
] = None
|
|
96
|
+
r"""You can enable test mode by setting the `testmode` query parameter to `true`.
|
|
97
|
+
|
|
98
|
+
Test entities cannot be retrieved when the endpoint is set to live mode, and vice versa.
|
|
99
|
+
"""
|
|
100
|
+
|
|
101
|
+
idempotency_key: Annotated[
|
|
102
|
+
Optional[str],
|
|
103
|
+
pydantic.Field(alias="idempotency-key"),
|
|
104
|
+
FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
|
|
105
|
+
] = None
|
|
106
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
107
|
+
|
|
108
|
+
@model_serializer(mode="wrap")
|
|
109
|
+
def serialize_model(self, handler):
|
|
110
|
+
optional_fields = [
|
|
111
|
+
"from",
|
|
112
|
+
"limit",
|
|
113
|
+
"sort",
|
|
114
|
+
"eventTypes",
|
|
115
|
+
"testmode",
|
|
116
|
+
"idempotency-key",
|
|
117
|
+
]
|
|
118
|
+
nullable_fields = ["from", "limit"]
|
|
119
|
+
null_default_fields = []
|
|
120
|
+
|
|
121
|
+
serialized = handler(self)
|
|
122
|
+
|
|
123
|
+
m = {}
|
|
124
|
+
|
|
125
|
+
for n, f in type(self).model_fields.items():
|
|
126
|
+
k = f.alias or n
|
|
127
|
+
val = serialized.get(k)
|
|
128
|
+
serialized.pop(k, None)
|
|
129
|
+
|
|
130
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
131
|
+
is_set = (
|
|
132
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
133
|
+
or k in null_default_fields
|
|
134
|
+
) # pylint: disable=no-member
|
|
135
|
+
|
|
136
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
137
|
+
m[k] = val
|
|
138
|
+
elif val != UNSET_SENTINEL and (
|
|
139
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
140
|
+
):
|
|
141
|
+
m[k] = val
|
|
142
|
+
|
|
143
|
+
return m
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
class ListWebhooksEmbeddedTypedDict(TypedDict):
|
|
147
|
+
webhooks: List[ListEntityWebhookTypedDict]
|
|
148
|
+
r"""A list of webhooks."""
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
class ListWebhooksEmbedded(BaseModel):
|
|
152
|
+
webhooks: List[ListEntityWebhook]
|
|
153
|
+
r"""A list of webhooks."""
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
class ListWebhooksResponseTypedDict(TypedDict):
|
|
157
|
+
r"""A list of webhooks. For a complete reference of the webhook
|
|
158
|
+
object, refer to the [Get hook endpoint](get-webhook) documentation.
|
|
159
|
+
"""
|
|
160
|
+
|
|
161
|
+
count: int
|
|
162
|
+
r"""The number of items in this result set. If more items are available, a `_links.next` URL will be present in the result
|
|
163
|
+
as well.
|
|
164
|
+
|
|
165
|
+
The maximum number of items per result set is controlled by the `limit` property provided in the request. The default
|
|
166
|
+
limit is 50 items.
|
|
167
|
+
"""
|
|
168
|
+
embedded: ListWebhooksEmbeddedTypedDict
|
|
169
|
+
links: ListLinksTypedDict
|
|
170
|
+
r"""Links to help navigate through the lists of items. Every URL object will contain an `href` and a `type` field."""
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
class ListWebhooksResponse(BaseModel):
|
|
174
|
+
r"""A list of webhooks. For a complete reference of the webhook
|
|
175
|
+
object, refer to the [Get hook endpoint](get-webhook) documentation.
|
|
176
|
+
"""
|
|
177
|
+
|
|
178
|
+
count: int
|
|
179
|
+
r"""The number of items in this result set. If more items are available, a `_links.next` URL will be present in the result
|
|
180
|
+
as well.
|
|
181
|
+
|
|
182
|
+
The maximum number of items per result set is controlled by the `limit` property provided in the request. The default
|
|
183
|
+
limit is 50 items.
|
|
184
|
+
"""
|
|
185
|
+
|
|
186
|
+
embedded: Annotated[ListWebhooksEmbedded, pydantic.Field(alias="_embedded")]
|
|
187
|
+
|
|
188
|
+
links: Annotated[ListLinks, pydantic.Field(alias="_links")]
|
|
189
|
+
r"""Links to help navigate through the lists of items. Every URL object will contain an `href` and a `type` field."""
|
mollie/models/locale.py
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from enum import Enum
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class Locale(str, Enum):
|
|
8
|
+
r"""Allows you to preset the language to be used."""
|
|
9
|
+
|
|
10
|
+
EN_US = "en_US"
|
|
11
|
+
EN_GB = "en_GB"
|
|
12
|
+
NL_NL = "nl_NL"
|
|
13
|
+
NL_BE = "nl_BE"
|
|
14
|
+
DE_DE = "de_DE"
|
|
15
|
+
DE_AT = "de_AT"
|
|
16
|
+
DE_CH = "de_CH"
|
|
17
|
+
FR_FR = "fr_FR"
|
|
18
|
+
FR_BE = "fr_BE"
|
|
19
|
+
ES_ES = "es_ES"
|
|
20
|
+
CA_ES = "ca_ES"
|
|
21
|
+
PT_PT = "pt_PT"
|
|
22
|
+
IT_IT = "it_IT"
|
|
23
|
+
NB_NO = "nb_NO"
|
|
24
|
+
SV_SE = "sv_SE"
|
|
25
|
+
FI_FI = "fi_FI"
|
|
26
|
+
DA_DK = "da_DK"
|
|
27
|
+
IS_IS = "is_IS"
|
|
28
|
+
HU_HU = "hu_HU"
|
|
29
|
+
PL_PL = "pl_PL"
|
|
30
|
+
LV_LV = "lv_LV"
|
|
31
|
+
LT_LT = "lt_LT"
|
|
32
|
+
NULL = "null"
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from enum import Enum
|
|
5
|
+
from mollie import utils
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class LocaleResponse(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
9
|
+
r"""Allows you to preset the language to be used."""
|
|
10
|
+
|
|
11
|
+
EN_US = "en_US"
|
|
12
|
+
EN_GB = "en_GB"
|
|
13
|
+
NL_NL = "nl_NL"
|
|
14
|
+
NL_BE = "nl_BE"
|
|
15
|
+
DE_DE = "de_DE"
|
|
16
|
+
DE_AT = "de_AT"
|
|
17
|
+
DE_CH = "de_CH"
|
|
18
|
+
FR_FR = "fr_FR"
|
|
19
|
+
FR_BE = "fr_BE"
|
|
20
|
+
ES_ES = "es_ES"
|
|
21
|
+
CA_ES = "ca_ES"
|
|
22
|
+
PT_PT = "pt_PT"
|
|
23
|
+
IT_IT = "it_IT"
|
|
24
|
+
NB_NO = "nb_NO"
|
|
25
|
+
SV_SE = "sv_SE"
|
|
26
|
+
FI_FI = "fi_FI"
|
|
27
|
+
DA_DK = "da_DK"
|
|
28
|
+
IS_IS = "is_IS"
|
|
29
|
+
HU_HU = "hu_HU"
|
|
30
|
+
PL_PL = "pl_PL"
|
|
31
|
+
LV_LV = "lv_LV"
|
|
32
|
+
LT_LT = "lt_LT"
|
|
33
|
+
NULL = "null"
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from enum import Enum
|
|
5
|
+
from mollie import utils
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class MandateDetailsCardLabelResponse(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
9
|
+
r"""The card's label. Available for card mandates, if the card label could be detected."""
|
|
10
|
+
|
|
11
|
+
AMERICAN_EXPRESS = "American Express"
|
|
12
|
+
CARTA_SI = "Carta Si"
|
|
13
|
+
CARTE_BLEUE = "Carte Bleue"
|
|
14
|
+
DANKORT = "Dankort"
|
|
15
|
+
DINERS_CLUB = "Diners Club"
|
|
16
|
+
DISCOVER = "Discover"
|
|
17
|
+
JCB = "JCB"
|
|
18
|
+
LASER = "Laser"
|
|
19
|
+
MAESTRO = "Maestro"
|
|
20
|
+
MASTERCARD = "Mastercard"
|
|
21
|
+
UNIONPAY = "Unionpay"
|
|
22
|
+
VISA = "Visa"
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from enum import Enum
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class MandateMethod(str, Enum):
|
|
8
|
+
r"""Payment method of the mandate.
|
|
9
|
+
|
|
10
|
+
SEPA Direct Debit and PayPal mandates can be created directly.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
CREDITCARD = "creditcard"
|
|
14
|
+
DIRECTDEBIT = "directdebit"
|
|
15
|
+
PAYPAL = "paypal"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from enum import Enum
|
|
5
|
+
from mollie import utils
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class MandateMethodResponse(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
9
|
+
r"""Payment method of the mandate.
|
|
10
|
+
|
|
11
|
+
SEPA Direct Debit and PayPal mandates can be created directly.
|
|
12
|
+
"""
|
|
13
|
+
|
|
14
|
+
CREDITCARD = "creditcard"
|
|
15
|
+
DIRECTDEBIT = "directdebit"
|
|
16
|
+
PAYPAL = "paypal"
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .mandate_method import MandateMethod
|
|
5
|
+
from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
6
|
+
import pydantic
|
|
7
|
+
from pydantic import model_serializer
|
|
8
|
+
from typing import Optional
|
|
9
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class MandateRequestTypedDict(TypedDict):
|
|
13
|
+
method: MandateMethod
|
|
14
|
+
r"""Payment method of the mandate.
|
|
15
|
+
|
|
16
|
+
SEPA Direct Debit and PayPal mandates can be created directly.
|
|
17
|
+
"""
|
|
18
|
+
consumer_name: str
|
|
19
|
+
r"""The customer's name."""
|
|
20
|
+
id: NotRequired[str]
|
|
21
|
+
r"""The identifier uniquely referring to this mandate. Example: `mdt_pWUnw6pkBN`."""
|
|
22
|
+
consumer_account: NotRequired[Nullable[str]]
|
|
23
|
+
r"""The customer's IBAN. Required for SEPA Direct Debit mandates."""
|
|
24
|
+
consumer_bic: NotRequired[Nullable[str]]
|
|
25
|
+
r"""The BIC of the customer's bank."""
|
|
26
|
+
consumer_email: NotRequired[Nullable[str]]
|
|
27
|
+
r"""The customer's email address. Required for PayPal mandates."""
|
|
28
|
+
signature_date: NotRequired[Nullable[str]]
|
|
29
|
+
r"""The date when the mandate was signed in `YYYY-MM-DD` format."""
|
|
30
|
+
mandate_reference: NotRequired[Nullable[str]]
|
|
31
|
+
r"""A custom mandate reference. For SEPA Direct Debit, it is vital to provide a unique reference. Some banks will
|
|
32
|
+
decline Direct Debit payments if the mandate reference is not unique.
|
|
33
|
+
"""
|
|
34
|
+
paypal_billing_agreement_id: NotRequired[Nullable[str]]
|
|
35
|
+
r"""The billing agreement ID given by PayPal. For example: `B-12A34567B8901234CD`. Required for PayPal mandates.
|
|
36
|
+
Must provide either this field or `payPalVaultId`, but not both.
|
|
37
|
+
"""
|
|
38
|
+
pay_pal_vault_id: NotRequired[Nullable[str]]
|
|
39
|
+
r"""The Vault ID given by PayPal. For example: `8kk8451t`. Required for PayPal mandates.
|
|
40
|
+
Must provide either this field or `paypalBillingAgreementId`, but not both.
|
|
41
|
+
"""
|
|
42
|
+
testmode: NotRequired[Nullable[bool]]
|
|
43
|
+
r"""Whether to create the entity in test mode or live mode.
|
|
44
|
+
|
|
45
|
+
Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
|
|
46
|
+
omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
|
|
47
|
+
`testmode` to `true`.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
class MandateRequest(BaseModel):
|
|
52
|
+
method: MandateMethod
|
|
53
|
+
r"""Payment method of the mandate.
|
|
54
|
+
|
|
55
|
+
SEPA Direct Debit and PayPal mandates can be created directly.
|
|
56
|
+
"""
|
|
57
|
+
|
|
58
|
+
consumer_name: Annotated[str, pydantic.Field(alias="consumerName")]
|
|
59
|
+
r"""The customer's name."""
|
|
60
|
+
|
|
61
|
+
id: Optional[str] = None
|
|
62
|
+
r"""The identifier uniquely referring to this mandate. Example: `mdt_pWUnw6pkBN`."""
|
|
63
|
+
|
|
64
|
+
consumer_account: Annotated[
|
|
65
|
+
OptionalNullable[str], pydantic.Field(alias="consumerAccount")
|
|
66
|
+
] = UNSET
|
|
67
|
+
r"""The customer's IBAN. Required for SEPA Direct Debit mandates."""
|
|
68
|
+
|
|
69
|
+
consumer_bic: Annotated[
|
|
70
|
+
OptionalNullable[str], pydantic.Field(alias="consumerBic")
|
|
71
|
+
] = UNSET
|
|
72
|
+
r"""The BIC of the customer's bank."""
|
|
73
|
+
|
|
74
|
+
consumer_email: Annotated[
|
|
75
|
+
OptionalNullable[str], pydantic.Field(alias="consumerEmail")
|
|
76
|
+
] = UNSET
|
|
77
|
+
r"""The customer's email address. Required for PayPal mandates."""
|
|
78
|
+
|
|
79
|
+
signature_date: Annotated[
|
|
80
|
+
OptionalNullable[str], pydantic.Field(alias="signatureDate")
|
|
81
|
+
] = UNSET
|
|
82
|
+
r"""The date when the mandate was signed in `YYYY-MM-DD` format."""
|
|
83
|
+
|
|
84
|
+
mandate_reference: Annotated[
|
|
85
|
+
OptionalNullable[str], pydantic.Field(alias="mandateReference")
|
|
86
|
+
] = UNSET
|
|
87
|
+
r"""A custom mandate reference. For SEPA Direct Debit, it is vital to provide a unique reference. Some banks will
|
|
88
|
+
decline Direct Debit payments if the mandate reference is not unique.
|
|
89
|
+
"""
|
|
90
|
+
|
|
91
|
+
paypal_billing_agreement_id: Annotated[
|
|
92
|
+
OptionalNullable[str], pydantic.Field(alias="paypalBillingAgreementId")
|
|
93
|
+
] = UNSET
|
|
94
|
+
r"""The billing agreement ID given by PayPal. For example: `B-12A34567B8901234CD`. Required for PayPal mandates.
|
|
95
|
+
Must provide either this field or `payPalVaultId`, but not both.
|
|
96
|
+
"""
|
|
97
|
+
|
|
98
|
+
pay_pal_vault_id: Annotated[
|
|
99
|
+
OptionalNullable[str], pydantic.Field(alias="payPalVaultId")
|
|
100
|
+
] = UNSET
|
|
101
|
+
r"""The Vault ID given by PayPal. For example: `8kk8451t`. Required for PayPal mandates.
|
|
102
|
+
Must provide either this field or `paypalBillingAgreementId`, but not both.
|
|
103
|
+
"""
|
|
104
|
+
|
|
105
|
+
testmode: OptionalNullable[bool] = UNSET
|
|
106
|
+
r"""Whether to create the entity in test mode or live mode.
|
|
107
|
+
|
|
108
|
+
Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
|
|
109
|
+
omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
|
|
110
|
+
`testmode` to `true`.
|
|
111
|
+
"""
|
|
112
|
+
|
|
113
|
+
@model_serializer(mode="wrap")
|
|
114
|
+
def serialize_model(self, handler):
|
|
115
|
+
optional_fields = [
|
|
116
|
+
"id",
|
|
117
|
+
"consumerAccount",
|
|
118
|
+
"consumerBic",
|
|
119
|
+
"consumerEmail",
|
|
120
|
+
"signatureDate",
|
|
121
|
+
"mandateReference",
|
|
122
|
+
"paypalBillingAgreementId",
|
|
123
|
+
"payPalVaultId",
|
|
124
|
+
"testmode",
|
|
125
|
+
]
|
|
126
|
+
nullable_fields = [
|
|
127
|
+
"consumerAccount",
|
|
128
|
+
"consumerBic",
|
|
129
|
+
"consumerEmail",
|
|
130
|
+
"signatureDate",
|
|
131
|
+
"mandateReference",
|
|
132
|
+
"paypalBillingAgreementId",
|
|
133
|
+
"payPalVaultId",
|
|
134
|
+
"testmode",
|
|
135
|
+
]
|
|
136
|
+
null_default_fields = []
|
|
137
|
+
|
|
138
|
+
serialized = handler(self)
|
|
139
|
+
|
|
140
|
+
m = {}
|
|
141
|
+
|
|
142
|
+
for n, f in type(self).model_fields.items():
|
|
143
|
+
k = f.alias or n
|
|
144
|
+
val = serialized.get(k)
|
|
145
|
+
serialized.pop(k, None)
|
|
146
|
+
|
|
147
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
148
|
+
is_set = (
|
|
149
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
150
|
+
or k in null_default_fields
|
|
151
|
+
) # pylint: disable=no-member
|
|
152
|
+
|
|
153
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
154
|
+
m[k] = val
|
|
155
|
+
elif val != UNSET_SENTINEL and (
|
|
156
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
157
|
+
):
|
|
158
|
+
m[k] = val
|
|
159
|
+
|
|
160
|
+
return m
|