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,117 @@
|
|
|
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 ListEntityWebhookLinksTypedDict(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
|
+
|
|
23
|
+
|
|
24
|
+
class ListEntityWebhookLinks(BaseModel):
|
|
25
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
26
|
+
|
|
27
|
+
self_: Annotated[URL, pydantic.Field(alias="self")]
|
|
28
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class ListEntityWebhookTypedDict(TypedDict):
|
|
32
|
+
resource: str
|
|
33
|
+
r"""Indicates the response contains a webhook subscription object.
|
|
34
|
+
Will always contain the string `webhook` for this endpoint.
|
|
35
|
+
"""
|
|
36
|
+
id: str
|
|
37
|
+
r"""The identifier uniquely referring to this subscription."""
|
|
38
|
+
url: str
|
|
39
|
+
r"""The subscription's events destination."""
|
|
40
|
+
profile_id: Nullable[str]
|
|
41
|
+
r"""The identifier uniquely referring to the profile that created the subscription."""
|
|
42
|
+
created_at: str
|
|
43
|
+
r"""The subscription's date time of creation."""
|
|
44
|
+
name: str
|
|
45
|
+
r"""The subscription's name."""
|
|
46
|
+
event_types: List[WebhookEventTypes]
|
|
47
|
+
r"""The events types that are subscribed."""
|
|
48
|
+
status: WebhookStatus
|
|
49
|
+
r"""The subscription's current status."""
|
|
50
|
+
mode: Mode
|
|
51
|
+
r"""Whether this entity was created in live mode or in test mode."""
|
|
52
|
+
links: ListEntityWebhookLinksTypedDict
|
|
53
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class ListEntityWebhook(BaseModel):
|
|
57
|
+
resource: str
|
|
58
|
+
r"""Indicates the response contains a webhook subscription object.
|
|
59
|
+
Will always contain the string `webhook` for this endpoint.
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
id: str
|
|
63
|
+
r"""The identifier uniquely referring to this subscription."""
|
|
64
|
+
|
|
65
|
+
url: str
|
|
66
|
+
r"""The subscription's events destination."""
|
|
67
|
+
|
|
68
|
+
profile_id: Annotated[Nullable[str], pydantic.Field(alias="profileId")]
|
|
69
|
+
r"""The identifier uniquely referring to the profile that created the subscription."""
|
|
70
|
+
|
|
71
|
+
created_at: Annotated[str, pydantic.Field(alias="createdAt")]
|
|
72
|
+
r"""The subscription's date time of creation."""
|
|
73
|
+
|
|
74
|
+
name: str
|
|
75
|
+
r"""The subscription's name."""
|
|
76
|
+
|
|
77
|
+
event_types: Annotated[List[WebhookEventTypes], pydantic.Field(alias="eventTypes")]
|
|
78
|
+
r"""The events types that are subscribed."""
|
|
79
|
+
|
|
80
|
+
status: Annotated[WebhookStatus, PlainValidator(validate_open_enum(False))]
|
|
81
|
+
r"""The subscription's current status."""
|
|
82
|
+
|
|
83
|
+
mode: Annotated[Mode, PlainValidator(validate_open_enum(False))]
|
|
84
|
+
r"""Whether this entity was created in live mode or in test mode."""
|
|
85
|
+
|
|
86
|
+
links: Annotated[ListEntityWebhookLinks, pydantic.Field(alias="_links")]
|
|
87
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
88
|
+
|
|
89
|
+
@model_serializer(mode="wrap")
|
|
90
|
+
def serialize_model(self, handler):
|
|
91
|
+
optional_fields = []
|
|
92
|
+
nullable_fields = ["profileId"]
|
|
93
|
+
null_default_fields = []
|
|
94
|
+
|
|
95
|
+
serialized = handler(self)
|
|
96
|
+
|
|
97
|
+
m = {}
|
|
98
|
+
|
|
99
|
+
for n, f in type(self).model_fields.items():
|
|
100
|
+
k = f.alias or n
|
|
101
|
+
val = serialized.get(k)
|
|
102
|
+
serialized.pop(k, None)
|
|
103
|
+
|
|
104
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
105
|
+
is_set = (
|
|
106
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
107
|
+
or k in null_default_fields
|
|
108
|
+
) # pylint: disable=no-member
|
|
109
|
+
|
|
110
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
111
|
+
m[k] = val
|
|
112
|
+
elif val != UNSET_SENTINEL and (
|
|
113
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
114
|
+
):
|
|
115
|
+
m[k] = val
|
|
116
|
+
|
|
117
|
+
return m
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .list_entity_invoice import ListEntityInvoice, ListEntityInvoiceTypedDict
|
|
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 ListInvoicesRequestTypedDict(TypedDict):
|
|
16
|
+
reference: NotRequired[Nullable[str]]
|
|
17
|
+
r"""Filter for an invoice with a specific invoice reference, for example
|
|
18
|
+
`2024.10000`.
|
|
19
|
+
"""
|
|
20
|
+
year: NotRequired[Nullable[str]]
|
|
21
|
+
r"""Filter for invoices of a specific year, for example `2024`."""
|
|
22
|
+
month: NotRequired[Nullable[str]]
|
|
23
|
+
r"""Filter for invoices of a specific month, for example `01`."""
|
|
24
|
+
from_: NotRequired[Nullable[str]]
|
|
25
|
+
r"""Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the
|
|
26
|
+
result set.
|
|
27
|
+
"""
|
|
28
|
+
limit: NotRequired[Nullable[int]]
|
|
29
|
+
r"""The maximum number of items to return. Defaults to 50 items."""
|
|
30
|
+
sort: NotRequired[Sorting]
|
|
31
|
+
r"""Used for setting the direction of the result set. Defaults to descending order, meaning the results are ordered from
|
|
32
|
+
newest to oldest.
|
|
33
|
+
"""
|
|
34
|
+
idempotency_key: NotRequired[str]
|
|
35
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class ListInvoicesRequest(BaseModel):
|
|
39
|
+
reference: Annotated[
|
|
40
|
+
OptionalNullable[str],
|
|
41
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
42
|
+
] = UNSET
|
|
43
|
+
r"""Filter for an invoice with a specific invoice reference, for example
|
|
44
|
+
`2024.10000`.
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
year: Annotated[
|
|
48
|
+
OptionalNullable[str],
|
|
49
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
50
|
+
] = UNSET
|
|
51
|
+
r"""Filter for invoices of a specific year, for example `2024`."""
|
|
52
|
+
|
|
53
|
+
month: Annotated[
|
|
54
|
+
OptionalNullable[str],
|
|
55
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
56
|
+
] = UNSET
|
|
57
|
+
r"""Filter for invoices of a specific month, for example `01`."""
|
|
58
|
+
|
|
59
|
+
from_: Annotated[
|
|
60
|
+
OptionalNullable[str],
|
|
61
|
+
pydantic.Field(alias="from"),
|
|
62
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
63
|
+
] = UNSET
|
|
64
|
+
r"""Provide an ID to start the result set from the item with the given ID and onwards. This allows you to paginate the
|
|
65
|
+
result set.
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
limit: Annotated[
|
|
69
|
+
OptionalNullable[int],
|
|
70
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
71
|
+
] = UNSET
|
|
72
|
+
r"""The maximum number of items to return. Defaults to 50 items."""
|
|
73
|
+
|
|
74
|
+
sort: Annotated[
|
|
75
|
+
Optional[Sorting],
|
|
76
|
+
FieldMetadata(query=QueryParamMetadata(style="form", explode=True)),
|
|
77
|
+
] = None
|
|
78
|
+
r"""Used for setting the direction of the result set. Defaults to descending order, meaning the results are ordered from
|
|
79
|
+
newest to oldest.
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
idempotency_key: Annotated[
|
|
83
|
+
Optional[str],
|
|
84
|
+
pydantic.Field(alias="idempotency-key"),
|
|
85
|
+
FieldMetadata(header=HeaderMetadata(style="simple", explode=False)),
|
|
86
|
+
] = None
|
|
87
|
+
r"""A unique key to ensure idempotent requests. This key should be a UUID v4 string."""
|
|
88
|
+
|
|
89
|
+
@model_serializer(mode="wrap")
|
|
90
|
+
def serialize_model(self, handler):
|
|
91
|
+
optional_fields = [
|
|
92
|
+
"reference",
|
|
93
|
+
"year",
|
|
94
|
+
"month",
|
|
95
|
+
"from",
|
|
96
|
+
"limit",
|
|
97
|
+
"sort",
|
|
98
|
+
"idempotency-key",
|
|
99
|
+
]
|
|
100
|
+
nullable_fields = ["reference", "year", "month", "from", "limit"]
|
|
101
|
+
null_default_fields = []
|
|
102
|
+
|
|
103
|
+
serialized = handler(self)
|
|
104
|
+
|
|
105
|
+
m = {}
|
|
106
|
+
|
|
107
|
+
for n, f in type(self).model_fields.items():
|
|
108
|
+
k = f.alias or n
|
|
109
|
+
val = serialized.get(k)
|
|
110
|
+
serialized.pop(k, None)
|
|
111
|
+
|
|
112
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
113
|
+
is_set = (
|
|
114
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
115
|
+
or k in null_default_fields
|
|
116
|
+
) # pylint: disable=no-member
|
|
117
|
+
|
|
118
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
119
|
+
m[k] = val
|
|
120
|
+
elif val != UNSET_SENTINEL and (
|
|
121
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
122
|
+
):
|
|
123
|
+
m[k] = val
|
|
124
|
+
|
|
125
|
+
return m
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
class ListInvoicesEmbeddedTypedDict(TypedDict):
|
|
129
|
+
invoices: List[ListEntityInvoiceTypedDict]
|
|
130
|
+
r"""An array of invoice objects. For a complete reference of
|
|
131
|
+
the invoice object, refer to the [Get invoice endpoint](get-invoice) documentation.
|
|
132
|
+
"""
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
class ListInvoicesEmbedded(BaseModel):
|
|
136
|
+
invoices: List[ListEntityInvoice]
|
|
137
|
+
r"""An array of invoice objects. For a complete reference of
|
|
138
|
+
the invoice object, refer to the [Get invoice endpoint](get-invoice) documentation.
|
|
139
|
+
"""
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
class ListInvoicesResponseTypedDict(TypedDict):
|
|
143
|
+
r"""A list of invoice objects. For a complete reference of the invoice
|
|
144
|
+
object, refer to the [Get invoice endpoint](get-invoice) documentation.
|
|
145
|
+
"""
|
|
146
|
+
|
|
147
|
+
count: int
|
|
148
|
+
r"""The number of items in this result set. If more items are available, a `_links.next` URL will be present in the result
|
|
149
|
+
as well.
|
|
150
|
+
|
|
151
|
+
The maximum number of items per result set is controlled by the `limit` property provided in the request. The default
|
|
152
|
+
limit is 50 items.
|
|
153
|
+
"""
|
|
154
|
+
embedded: ListInvoicesEmbeddedTypedDict
|
|
155
|
+
links: ListLinksTypedDict
|
|
156
|
+
r"""Links to help navigate through the lists of items. Every URL object will contain an `href` and a `type` field."""
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
class ListInvoicesResponse(BaseModel):
|
|
160
|
+
r"""A list of invoice objects. For a complete reference of the invoice
|
|
161
|
+
object, refer to the [Get invoice endpoint](get-invoice) documentation.
|
|
162
|
+
"""
|
|
163
|
+
|
|
164
|
+
count: int
|
|
165
|
+
r"""The number of items in this result set. If more items are available, a `_links.next` URL will be present in the result
|
|
166
|
+
as well.
|
|
167
|
+
|
|
168
|
+
The maximum number of items per result set is controlled by the `limit` property provided in the request. The default
|
|
169
|
+
limit is 50 items.
|
|
170
|
+
"""
|
|
171
|
+
|
|
172
|
+
embedded: Annotated[ListInvoicesEmbedded, pydantic.Field(alias="_embedded")]
|
|
173
|
+
|
|
174
|
+
links: Annotated[ListLinks, pydantic.Field(alias="_links")]
|
|
175
|
+
r"""Links to help navigate through the lists of items. Every URL object will contain an `href` and a `type` field."""
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .url import URL, URLTypedDict
|
|
5
|
+
from .url_nullable import URLNullable, URLNullableTypedDict
|
|
6
|
+
from mollie.types import BaseModel, Nullable, UNSET_SENTINEL
|
|
7
|
+
import pydantic
|
|
8
|
+
from pydantic import model_serializer
|
|
9
|
+
from typing_extensions import Annotated, TypedDict
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class ListLinksTypedDict(TypedDict):
|
|
13
|
+
r"""Links to help navigate through the lists of items. Every URL object will contain an `href` and a `type` field."""
|
|
14
|
+
|
|
15
|
+
self_: URLTypedDict
|
|
16
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
17
|
+
previous: Nullable[URLNullableTypedDict]
|
|
18
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
19
|
+
next: Nullable[URLNullableTypedDict]
|
|
20
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
21
|
+
documentation: URLTypedDict
|
|
22
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class ListLinks(BaseModel):
|
|
26
|
+
r"""Links to help navigate through the lists of items. Every URL object will contain an `href` and a `type` field."""
|
|
27
|
+
|
|
28
|
+
self_: Annotated[URL, pydantic.Field(alias="self")]
|
|
29
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
30
|
+
|
|
31
|
+
previous: Nullable[URLNullable]
|
|
32
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
33
|
+
|
|
34
|
+
next: Nullable[URLNullable]
|
|
35
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
36
|
+
|
|
37
|
+
documentation: URL
|
|
38
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
39
|
+
|
|
40
|
+
@model_serializer(mode="wrap")
|
|
41
|
+
def serialize_model(self, handler):
|
|
42
|
+
optional_fields = []
|
|
43
|
+
nullable_fields = ["previous", "next"]
|
|
44
|
+
null_default_fields = []
|
|
45
|
+
|
|
46
|
+
serialized = handler(self)
|
|
47
|
+
|
|
48
|
+
m = {}
|
|
49
|
+
|
|
50
|
+
for n, f in type(self).model_fields.items():
|
|
51
|
+
k = f.alias or n
|
|
52
|
+
val = serialized.get(k)
|
|
53
|
+
serialized.pop(k, None)
|
|
54
|
+
|
|
55
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
56
|
+
is_set = (
|
|
57
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
58
|
+
or k in null_default_fields
|
|
59
|
+
) # pylint: disable=no-member
|
|
60
|
+
|
|
61
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
62
|
+
m[k] = val
|
|
63
|
+
elif val != UNSET_SENTINEL and (
|
|
64
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
65
|
+
):
|
|
66
|
+
m[k] = val
|
|
67
|
+
|
|
68
|
+
return m
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .mandate_details_card_label_response import MandateDetailsCardLabelResponse
|
|
5
|
+
from .mandate_method_response import MandateMethodResponse
|
|
6
|
+
from .mode import Mode
|
|
7
|
+
from .url import URL, URLTypedDict
|
|
8
|
+
from enum import Enum
|
|
9
|
+
from mollie import utils
|
|
10
|
+
from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
11
|
+
from mollie.utils import validate_open_enum
|
|
12
|
+
import pydantic
|
|
13
|
+
from pydantic import model_serializer
|
|
14
|
+
from pydantic.functional_validators import PlainValidator
|
|
15
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class ListMandateResponseDetailsTypedDict(TypedDict):
|
|
19
|
+
consumer_name: NotRequired[Nullable[str]]
|
|
20
|
+
r"""The customer's name. Available for SEPA Direct Debit and PayPal mandates."""
|
|
21
|
+
consumer_account: NotRequired[Nullable[str]]
|
|
22
|
+
r"""The customer's IBAN or email address. Available for SEPA Direct Debit and PayPal mandates."""
|
|
23
|
+
consumer_bic: NotRequired[Nullable[str]]
|
|
24
|
+
r"""The BIC of the customer's bank. Available for SEPA Direct Debit mandates."""
|
|
25
|
+
card_holder: NotRequired[Nullable[str]]
|
|
26
|
+
r"""The card holder's name. Available for card mandates."""
|
|
27
|
+
card_number: NotRequired[Nullable[str]]
|
|
28
|
+
r"""The last four digits of the card number. Available for card mandates."""
|
|
29
|
+
card_expiry_date: NotRequired[Nullable[str]]
|
|
30
|
+
r"""The card's expiry date in `YYYY-MM-DD` format. Available for card mandates."""
|
|
31
|
+
card_label: NotRequired[Nullable[MandateDetailsCardLabelResponse]]
|
|
32
|
+
r"""The card's label. Available for card mandates, if the card label could be detected."""
|
|
33
|
+
card_fingerprint: NotRequired[Nullable[str]]
|
|
34
|
+
r"""Unique alphanumeric representation of this specific card. Available for card mandates. Can be used to identify
|
|
35
|
+
returning customers.
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
class ListMandateResponseDetails(BaseModel):
|
|
40
|
+
consumer_name: Annotated[
|
|
41
|
+
OptionalNullable[str], pydantic.Field(alias="consumerName")
|
|
42
|
+
] = UNSET
|
|
43
|
+
r"""The customer's name. Available for SEPA Direct Debit and PayPal mandates."""
|
|
44
|
+
|
|
45
|
+
consumer_account: Annotated[
|
|
46
|
+
OptionalNullable[str], pydantic.Field(alias="consumerAccount")
|
|
47
|
+
] = UNSET
|
|
48
|
+
r"""The customer's IBAN or email address. Available for SEPA Direct Debit and PayPal mandates."""
|
|
49
|
+
|
|
50
|
+
consumer_bic: Annotated[
|
|
51
|
+
OptionalNullable[str], pydantic.Field(alias="consumerBic")
|
|
52
|
+
] = UNSET
|
|
53
|
+
r"""The BIC of the customer's bank. Available for SEPA Direct Debit mandates."""
|
|
54
|
+
|
|
55
|
+
card_holder: Annotated[
|
|
56
|
+
OptionalNullable[str], pydantic.Field(alias="cardHolder")
|
|
57
|
+
] = UNSET
|
|
58
|
+
r"""The card holder's name. Available for card mandates."""
|
|
59
|
+
|
|
60
|
+
card_number: Annotated[
|
|
61
|
+
OptionalNullable[str], pydantic.Field(alias="cardNumber")
|
|
62
|
+
] = UNSET
|
|
63
|
+
r"""The last four digits of the card number. Available for card mandates."""
|
|
64
|
+
|
|
65
|
+
card_expiry_date: Annotated[
|
|
66
|
+
OptionalNullable[str], pydantic.Field(alias="cardExpiryDate")
|
|
67
|
+
] = UNSET
|
|
68
|
+
r"""The card's expiry date in `YYYY-MM-DD` format. Available for card mandates."""
|
|
69
|
+
|
|
70
|
+
card_label: Annotated[
|
|
71
|
+
Annotated[
|
|
72
|
+
OptionalNullable[MandateDetailsCardLabelResponse],
|
|
73
|
+
PlainValidator(validate_open_enum(False)),
|
|
74
|
+
],
|
|
75
|
+
pydantic.Field(alias="cardLabel"),
|
|
76
|
+
] = UNSET
|
|
77
|
+
r"""The card's label. Available for card mandates, if the card label could be detected."""
|
|
78
|
+
|
|
79
|
+
card_fingerprint: Annotated[
|
|
80
|
+
OptionalNullable[str], pydantic.Field(alias="cardFingerprint")
|
|
81
|
+
] = UNSET
|
|
82
|
+
r"""Unique alphanumeric representation of this specific card. Available for card mandates. Can be used to identify
|
|
83
|
+
returning customers.
|
|
84
|
+
"""
|
|
85
|
+
|
|
86
|
+
@model_serializer(mode="wrap")
|
|
87
|
+
def serialize_model(self, handler):
|
|
88
|
+
optional_fields = [
|
|
89
|
+
"consumerName",
|
|
90
|
+
"consumerAccount",
|
|
91
|
+
"consumerBic",
|
|
92
|
+
"cardHolder",
|
|
93
|
+
"cardNumber",
|
|
94
|
+
"cardExpiryDate",
|
|
95
|
+
"cardLabel",
|
|
96
|
+
"cardFingerprint",
|
|
97
|
+
]
|
|
98
|
+
nullable_fields = [
|
|
99
|
+
"consumerName",
|
|
100
|
+
"consumerAccount",
|
|
101
|
+
"consumerBic",
|
|
102
|
+
"cardHolder",
|
|
103
|
+
"cardNumber",
|
|
104
|
+
"cardExpiryDate",
|
|
105
|
+
"cardLabel",
|
|
106
|
+
"cardFingerprint",
|
|
107
|
+
]
|
|
108
|
+
null_default_fields = []
|
|
109
|
+
|
|
110
|
+
serialized = handler(self)
|
|
111
|
+
|
|
112
|
+
m = {}
|
|
113
|
+
|
|
114
|
+
for n, f in type(self).model_fields.items():
|
|
115
|
+
k = f.alias or n
|
|
116
|
+
val = serialized.get(k)
|
|
117
|
+
serialized.pop(k, None)
|
|
118
|
+
|
|
119
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
120
|
+
is_set = (
|
|
121
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
122
|
+
or k in null_default_fields
|
|
123
|
+
) # pylint: disable=no-member
|
|
124
|
+
|
|
125
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
126
|
+
m[k] = val
|
|
127
|
+
elif val != UNSET_SENTINEL and (
|
|
128
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
129
|
+
):
|
|
130
|
+
m[k] = val
|
|
131
|
+
|
|
132
|
+
return m
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
class ListMandateResponseStatus(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
136
|
+
r"""The status of the mandate. A status can be `pending` for mandates when the first payment is not yet finalized, or
|
|
137
|
+
when we did not received the IBAN yet from the first payment.
|
|
138
|
+
"""
|
|
139
|
+
|
|
140
|
+
VALID = "valid"
|
|
141
|
+
PENDING = "pending"
|
|
142
|
+
INVALID = "invalid"
|
|
143
|
+
|
|
144
|
+
|
|
145
|
+
class ListMandateResponseLinksTypedDict(TypedDict):
|
|
146
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
147
|
+
|
|
148
|
+
self_: URLTypedDict
|
|
149
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
150
|
+
customer: URLTypedDict
|
|
151
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
class ListMandateResponseLinks(BaseModel):
|
|
155
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
156
|
+
|
|
157
|
+
self_: Annotated[URL, pydantic.Field(alias="self")]
|
|
158
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
159
|
+
|
|
160
|
+
customer: URL
|
|
161
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
class ListMandateResponseTypedDict(TypedDict):
|
|
165
|
+
resource: str
|
|
166
|
+
r"""Indicates the response contains a mandate object. Will always contain the string `mandate` for this endpoint."""
|
|
167
|
+
id: str
|
|
168
|
+
r"""The identifier uniquely referring to this mandate. Example: `mdt_pWUnw6pkBN`."""
|
|
169
|
+
mode: Mode
|
|
170
|
+
r"""Whether this entity was created in live mode or in test mode."""
|
|
171
|
+
method: MandateMethodResponse
|
|
172
|
+
r"""Payment method of the mandate.
|
|
173
|
+
|
|
174
|
+
SEPA Direct Debit and PayPal mandates can be created directly.
|
|
175
|
+
"""
|
|
176
|
+
details: ListMandateResponseDetailsTypedDict
|
|
177
|
+
signature_date: Nullable[str]
|
|
178
|
+
r"""The date when the mandate was signed in `YYYY-MM-DD` format."""
|
|
179
|
+
mandate_reference: Nullable[str]
|
|
180
|
+
r"""A custom mandate reference. For SEPA Direct Debit, it is vital to provide a unique reference. Some banks will
|
|
181
|
+
decline Direct Debit payments if the mandate reference is not unique.
|
|
182
|
+
"""
|
|
183
|
+
status: ListMandateResponseStatus
|
|
184
|
+
customer_id: str
|
|
185
|
+
r"""The identifier referring to the [customer](get-customer) this mandate was linked to."""
|
|
186
|
+
created_at: str
|
|
187
|
+
r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
|
|
188
|
+
links: ListMandateResponseLinksTypedDict
|
|
189
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
190
|
+
|
|
191
|
+
|
|
192
|
+
class ListMandateResponse(BaseModel):
|
|
193
|
+
resource: str
|
|
194
|
+
r"""Indicates the response contains a mandate object. Will always contain the string `mandate` for this endpoint."""
|
|
195
|
+
|
|
196
|
+
id: str
|
|
197
|
+
r"""The identifier uniquely referring to this mandate. Example: `mdt_pWUnw6pkBN`."""
|
|
198
|
+
|
|
199
|
+
mode: Annotated[Mode, PlainValidator(validate_open_enum(False))]
|
|
200
|
+
r"""Whether this entity was created in live mode or in test mode."""
|
|
201
|
+
|
|
202
|
+
method: Annotated[MandateMethodResponse, PlainValidator(validate_open_enum(False))]
|
|
203
|
+
r"""Payment method of the mandate.
|
|
204
|
+
|
|
205
|
+
SEPA Direct Debit and PayPal mandates can be created directly.
|
|
206
|
+
"""
|
|
207
|
+
|
|
208
|
+
details: ListMandateResponseDetails
|
|
209
|
+
|
|
210
|
+
signature_date: Annotated[Nullable[str], pydantic.Field(alias="signatureDate")]
|
|
211
|
+
r"""The date when the mandate was signed in `YYYY-MM-DD` format."""
|
|
212
|
+
|
|
213
|
+
mandate_reference: Annotated[
|
|
214
|
+
Nullable[str], pydantic.Field(alias="mandateReference")
|
|
215
|
+
]
|
|
216
|
+
r"""A custom mandate reference. For SEPA Direct Debit, it is vital to provide a unique reference. Some banks will
|
|
217
|
+
decline Direct Debit payments if the mandate reference is not unique.
|
|
218
|
+
"""
|
|
219
|
+
|
|
220
|
+
status: Annotated[
|
|
221
|
+
ListMandateResponseStatus, PlainValidator(validate_open_enum(False))
|
|
222
|
+
]
|
|
223
|
+
|
|
224
|
+
customer_id: Annotated[str, pydantic.Field(alias="customerId")]
|
|
225
|
+
r"""The identifier referring to the [customer](get-customer) this mandate was linked to."""
|
|
226
|
+
|
|
227
|
+
created_at: Annotated[str, pydantic.Field(alias="createdAt")]
|
|
228
|
+
r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
|
|
229
|
+
|
|
230
|
+
links: Annotated[ListMandateResponseLinks, pydantic.Field(alias="_links")]
|
|
231
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
232
|
+
|
|
233
|
+
@model_serializer(mode="wrap")
|
|
234
|
+
def serialize_model(self, handler):
|
|
235
|
+
optional_fields = []
|
|
236
|
+
nullable_fields = ["signatureDate", "mandateReference"]
|
|
237
|
+
null_default_fields = []
|
|
238
|
+
|
|
239
|
+
serialized = handler(self)
|
|
240
|
+
|
|
241
|
+
m = {}
|
|
242
|
+
|
|
243
|
+
for n, f in type(self).model_fields.items():
|
|
244
|
+
k = f.alias or n
|
|
245
|
+
val = serialized.get(k)
|
|
246
|
+
serialized.pop(k, None)
|
|
247
|
+
|
|
248
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
249
|
+
is_set = (
|
|
250
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
251
|
+
or k in null_default_fields
|
|
252
|
+
) # pylint: disable=no-member
|
|
253
|
+
|
|
254
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
255
|
+
m[k] = val
|
|
256
|
+
elif val != UNSET_SENTINEL and (
|
|
257
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
258
|
+
):
|
|
259
|
+
m[k] = val
|
|
260
|
+
|
|
261
|
+
return m
|