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,96 @@
|
|
|
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 .route_destination_type_response import RouteDestinationTypeResponse
|
|
6
|
+
from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
7
|
+
from mollie.utils import validate_open_enum
|
|
8
|
+
import pydantic
|
|
9
|
+
from pydantic import model_serializer
|
|
10
|
+
from pydantic.functional_validators import PlainValidator
|
|
11
|
+
from typing import Optional
|
|
12
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class EntityRouteDestinationTypedDict(TypedDict):
|
|
16
|
+
r"""The destination of the route."""
|
|
17
|
+
|
|
18
|
+
type: RouteDestinationTypeResponse
|
|
19
|
+
r"""The type of destination. Currently only the destination type `organization` is supported."""
|
|
20
|
+
organization_id: str
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class EntityRouteDestination(BaseModel):
|
|
24
|
+
r"""The destination of the route."""
|
|
25
|
+
|
|
26
|
+
type: Annotated[
|
|
27
|
+
RouteDestinationTypeResponse, PlainValidator(validate_open_enum(False))
|
|
28
|
+
]
|
|
29
|
+
r"""The type of destination. Currently only the destination type `organization` is supported."""
|
|
30
|
+
|
|
31
|
+
organization_id: Annotated[str, pydantic.Field(alias="organizationId")]
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class EntityRouteTypedDict(TypedDict):
|
|
35
|
+
amount: NotRequired[AmountTypedDict]
|
|
36
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
37
|
+
description: NotRequired[str]
|
|
38
|
+
r"""The description of the route. This description is shown in the reports."""
|
|
39
|
+
destination: NotRequired[EntityRouteDestinationTypedDict]
|
|
40
|
+
r"""The destination of the route."""
|
|
41
|
+
testmode: NotRequired[Nullable[bool]]
|
|
42
|
+
r"""Whether to create the entity in test mode or live mode.
|
|
43
|
+
|
|
44
|
+
Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
|
|
45
|
+
omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
|
|
46
|
+
`testmode` to `true`.
|
|
47
|
+
"""
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
class EntityRoute(BaseModel):
|
|
51
|
+
amount: Optional[Amount] = None
|
|
52
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
53
|
+
|
|
54
|
+
description: Optional[str] = None
|
|
55
|
+
r"""The description of the route. This description is shown in the reports."""
|
|
56
|
+
|
|
57
|
+
destination: Optional[EntityRouteDestination] = None
|
|
58
|
+
r"""The destination of the route."""
|
|
59
|
+
|
|
60
|
+
testmode: OptionalNullable[bool] = UNSET
|
|
61
|
+
r"""Whether to create the entity in test mode or live mode.
|
|
62
|
+
|
|
63
|
+
Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
|
|
64
|
+
omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
|
|
65
|
+
`testmode` to `true`.
|
|
66
|
+
"""
|
|
67
|
+
|
|
68
|
+
@model_serializer(mode="wrap")
|
|
69
|
+
def serialize_model(self, handler):
|
|
70
|
+
optional_fields = ["amount", "description", "destination", "testmode"]
|
|
71
|
+
nullable_fields = ["testmode"]
|
|
72
|
+
null_default_fields = []
|
|
73
|
+
|
|
74
|
+
serialized = handler(self)
|
|
75
|
+
|
|
76
|
+
m = {}
|
|
77
|
+
|
|
78
|
+
for n, f in type(self).model_fields.items():
|
|
79
|
+
k = f.alias or n
|
|
80
|
+
val = serialized.get(k)
|
|
81
|
+
serialized.pop(k, None)
|
|
82
|
+
|
|
83
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
84
|
+
is_set = (
|
|
85
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
86
|
+
or k in null_default_fields
|
|
87
|
+
) # pylint: disable=no-member
|
|
88
|
+
|
|
89
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
90
|
+
m[k] = val
|
|
91
|
+
elif val != UNSET_SENTINEL and (
|
|
92
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
93
|
+
):
|
|
94
|
+
m[k] = val
|
|
95
|
+
|
|
96
|
+
return m
|
|
@@ -0,0 +1,467 @@
|
|
|
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_method import PaymentMethod
|
|
7
|
+
from .url import URL, URLTypedDict
|
|
8
|
+
from .url_nullable import URLNullable, URLNullableTypedDict
|
|
9
|
+
from enum import Enum
|
|
10
|
+
from mollie import utils
|
|
11
|
+
from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
12
|
+
from mollie.utils import validate_open_enum
|
|
13
|
+
import pydantic
|
|
14
|
+
from pydantic import model_serializer
|
|
15
|
+
from pydantic.functional_validators import PlainValidator
|
|
16
|
+
from typing import Dict, List, Optional
|
|
17
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class EntitySettlementStatus(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
21
|
+
r"""The status of the settlement."""
|
|
22
|
+
|
|
23
|
+
OPEN = "open"
|
|
24
|
+
PENDING = "pending"
|
|
25
|
+
PAIDOUT = "paidout"
|
|
26
|
+
FAILED = "failed"
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class EntitySettlementAmountTypedDict(TypedDict):
|
|
30
|
+
r"""The total amount of the settlement."""
|
|
31
|
+
|
|
32
|
+
currency: str
|
|
33
|
+
r"""A three-character ISO 4217 currency code."""
|
|
34
|
+
value: str
|
|
35
|
+
r"""A string containing an exact monetary amount in the given currency."""
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class EntitySettlementAmount(BaseModel):
|
|
39
|
+
r"""The total amount of the settlement."""
|
|
40
|
+
|
|
41
|
+
currency: str
|
|
42
|
+
r"""A three-character ISO 4217 currency code."""
|
|
43
|
+
|
|
44
|
+
value: str
|
|
45
|
+
r"""A string containing an exact monetary amount in the given currency."""
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
class EntitySettlementRateTypedDict(TypedDict):
|
|
49
|
+
r"""The service rates, further divided into `fixed` and `percentage` costs."""
|
|
50
|
+
|
|
51
|
+
fixed: NotRequired[AmountTypedDict]
|
|
52
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
53
|
+
percentage: NotRequired[str]
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class EntitySettlementRate(BaseModel):
|
|
57
|
+
r"""The service rates, further divided into `fixed` and `percentage` costs."""
|
|
58
|
+
|
|
59
|
+
fixed: Optional[Amount] = None
|
|
60
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
61
|
+
|
|
62
|
+
percentage: Optional[str] = None
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
class EntitySettlementCostTypedDict(TypedDict):
|
|
66
|
+
description: str
|
|
67
|
+
r"""A description of the cost subtotal"""
|
|
68
|
+
method: Nullable[PaymentMethod]
|
|
69
|
+
r"""The payment method, if applicable"""
|
|
70
|
+
count: int
|
|
71
|
+
r"""The number of fees"""
|
|
72
|
+
rate: EntitySettlementRateTypedDict
|
|
73
|
+
r"""The service rates, further divided into `fixed` and `percentage` costs."""
|
|
74
|
+
amount_net: AmountTypedDict
|
|
75
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
76
|
+
amount_vat: Nullable[AmountNullableTypedDict]
|
|
77
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
78
|
+
amount_gross: AmountTypedDict
|
|
79
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
80
|
+
|
|
81
|
+
|
|
82
|
+
class EntitySettlementCost(BaseModel):
|
|
83
|
+
description: str
|
|
84
|
+
r"""A description of the cost subtotal"""
|
|
85
|
+
|
|
86
|
+
method: Annotated[
|
|
87
|
+
Nullable[PaymentMethod], PlainValidator(validate_open_enum(False))
|
|
88
|
+
]
|
|
89
|
+
r"""The payment method, if applicable"""
|
|
90
|
+
|
|
91
|
+
count: int
|
|
92
|
+
r"""The number of fees"""
|
|
93
|
+
|
|
94
|
+
rate: EntitySettlementRate
|
|
95
|
+
r"""The service rates, further divided into `fixed` and `percentage` costs."""
|
|
96
|
+
|
|
97
|
+
amount_net: Annotated[Amount, pydantic.Field(alias="amountNet")]
|
|
98
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
99
|
+
|
|
100
|
+
amount_vat: Annotated[Nullable[AmountNullable], pydantic.Field(alias="amountVat")]
|
|
101
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
102
|
+
|
|
103
|
+
amount_gross: Annotated[Amount, pydantic.Field(alias="amountGross")]
|
|
104
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
105
|
+
|
|
106
|
+
@model_serializer(mode="wrap")
|
|
107
|
+
def serialize_model(self, handler):
|
|
108
|
+
optional_fields = []
|
|
109
|
+
nullable_fields = ["method", "amountVat"]
|
|
110
|
+
null_default_fields = []
|
|
111
|
+
|
|
112
|
+
serialized = handler(self)
|
|
113
|
+
|
|
114
|
+
m = {}
|
|
115
|
+
|
|
116
|
+
for n, f in type(self).model_fields.items():
|
|
117
|
+
k = f.alias or n
|
|
118
|
+
val = serialized.get(k)
|
|
119
|
+
serialized.pop(k, None)
|
|
120
|
+
|
|
121
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
122
|
+
is_set = (
|
|
123
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
124
|
+
or k in null_default_fields
|
|
125
|
+
) # pylint: disable=no-member
|
|
126
|
+
|
|
127
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
128
|
+
m[k] = val
|
|
129
|
+
elif val != UNSET_SENTINEL and (
|
|
130
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
131
|
+
):
|
|
132
|
+
m[k] = val
|
|
133
|
+
|
|
134
|
+
return m
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
class EntitySettlementRevenueTypedDict(TypedDict):
|
|
138
|
+
description: str
|
|
139
|
+
r"""A description of the revenue subtotal"""
|
|
140
|
+
method: Nullable[PaymentMethod]
|
|
141
|
+
r"""The payment method, if applicable"""
|
|
142
|
+
count: int
|
|
143
|
+
r"""The number of payments"""
|
|
144
|
+
amount_net: AmountTypedDict
|
|
145
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
146
|
+
amount_vat: Nullable[AmountNullableTypedDict]
|
|
147
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
148
|
+
amount_gross: AmountTypedDict
|
|
149
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
150
|
+
|
|
151
|
+
|
|
152
|
+
class EntitySettlementRevenue(BaseModel):
|
|
153
|
+
description: str
|
|
154
|
+
r"""A description of the revenue subtotal"""
|
|
155
|
+
|
|
156
|
+
method: Annotated[
|
|
157
|
+
Nullable[PaymentMethod], PlainValidator(validate_open_enum(False))
|
|
158
|
+
]
|
|
159
|
+
r"""The payment method, if applicable"""
|
|
160
|
+
|
|
161
|
+
count: int
|
|
162
|
+
r"""The number of payments"""
|
|
163
|
+
|
|
164
|
+
amount_net: Annotated[Amount, pydantic.Field(alias="amountNet")]
|
|
165
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
166
|
+
|
|
167
|
+
amount_vat: Annotated[Nullable[AmountNullable], pydantic.Field(alias="amountVat")]
|
|
168
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
169
|
+
|
|
170
|
+
amount_gross: Annotated[Amount, pydantic.Field(alias="amountGross")]
|
|
171
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
172
|
+
|
|
173
|
+
@model_serializer(mode="wrap")
|
|
174
|
+
def serialize_model(self, handler):
|
|
175
|
+
optional_fields = []
|
|
176
|
+
nullable_fields = ["method", "amountVat"]
|
|
177
|
+
null_default_fields = []
|
|
178
|
+
|
|
179
|
+
serialized = handler(self)
|
|
180
|
+
|
|
181
|
+
m = {}
|
|
182
|
+
|
|
183
|
+
for n, f in type(self).model_fields.items():
|
|
184
|
+
k = f.alias or n
|
|
185
|
+
val = serialized.get(k)
|
|
186
|
+
serialized.pop(k, None)
|
|
187
|
+
|
|
188
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
189
|
+
is_set = (
|
|
190
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
191
|
+
or k in null_default_fields
|
|
192
|
+
) # pylint: disable=no-member
|
|
193
|
+
|
|
194
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
195
|
+
m[k] = val
|
|
196
|
+
elif val != UNSET_SENTINEL and (
|
|
197
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
198
|
+
):
|
|
199
|
+
m[k] = val
|
|
200
|
+
|
|
201
|
+
return m
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
class EntitySettlementPeriodsTypedDict(TypedDict):
|
|
205
|
+
costs: NotRequired[List[EntitySettlementCostTypedDict]]
|
|
206
|
+
r"""An array of cost objects, describing the fees withheld for each payment method during this period."""
|
|
207
|
+
revenue: NotRequired[List[EntitySettlementRevenueTypedDict]]
|
|
208
|
+
r"""An array of revenue objects containing the total revenue for each payment method during this period."""
|
|
209
|
+
invoice_id: NotRequired[str]
|
|
210
|
+
invoice_reference: NotRequired[Nullable[str]]
|
|
211
|
+
r"""The invoice reference, if the invoice has been created already."""
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
class EntitySettlementPeriods(BaseModel):
|
|
215
|
+
costs: Optional[List[EntitySettlementCost]] = None
|
|
216
|
+
r"""An array of cost objects, describing the fees withheld for each payment method during this period."""
|
|
217
|
+
|
|
218
|
+
revenue: Optional[List[EntitySettlementRevenue]] = None
|
|
219
|
+
r"""An array of revenue objects containing the total revenue for each payment method during this period."""
|
|
220
|
+
|
|
221
|
+
invoice_id: Annotated[Optional[str], pydantic.Field(alias="invoiceId")] = None
|
|
222
|
+
|
|
223
|
+
invoice_reference: Annotated[
|
|
224
|
+
OptionalNullable[str], pydantic.Field(alias="invoiceReference")
|
|
225
|
+
] = UNSET
|
|
226
|
+
r"""The invoice reference, if the invoice has been created already."""
|
|
227
|
+
|
|
228
|
+
@model_serializer(mode="wrap")
|
|
229
|
+
def serialize_model(self, handler):
|
|
230
|
+
optional_fields = ["costs", "revenue", "invoiceId", "invoiceReference"]
|
|
231
|
+
nullable_fields = ["invoiceReference"]
|
|
232
|
+
null_default_fields = []
|
|
233
|
+
|
|
234
|
+
serialized = handler(self)
|
|
235
|
+
|
|
236
|
+
m = {}
|
|
237
|
+
|
|
238
|
+
for n, f in type(self).model_fields.items():
|
|
239
|
+
k = f.alias or n
|
|
240
|
+
val = serialized.get(k)
|
|
241
|
+
serialized.pop(k, None)
|
|
242
|
+
|
|
243
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
244
|
+
is_set = (
|
|
245
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
246
|
+
or k in null_default_fields
|
|
247
|
+
) # pylint: disable=no-member
|
|
248
|
+
|
|
249
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
250
|
+
m[k] = val
|
|
251
|
+
elif val != UNSET_SENTINEL and (
|
|
252
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
253
|
+
):
|
|
254
|
+
m[k] = val
|
|
255
|
+
|
|
256
|
+
return m
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
class EntitySettlementLinksTypedDict(TypedDict):
|
|
260
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
261
|
+
|
|
262
|
+
self_: URLTypedDict
|
|
263
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
264
|
+
payments: NotRequired[URLTypedDict]
|
|
265
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
266
|
+
captures: NotRequired[URLTypedDict]
|
|
267
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
268
|
+
refunds: NotRequired[URLTypedDict]
|
|
269
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
270
|
+
chargebacks: NotRequired[URLTypedDict]
|
|
271
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
272
|
+
invoice: NotRequired[Nullable[URLNullableTypedDict]]
|
|
273
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
274
|
+
documentation: NotRequired[URLTypedDict]
|
|
275
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
class EntitySettlementLinks(BaseModel):
|
|
279
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
280
|
+
|
|
281
|
+
self_: Annotated[URL, pydantic.Field(alias="self")]
|
|
282
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
283
|
+
|
|
284
|
+
payments: Optional[URL] = None
|
|
285
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
286
|
+
|
|
287
|
+
captures: Optional[URL] = None
|
|
288
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
289
|
+
|
|
290
|
+
refunds: Optional[URL] = None
|
|
291
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
292
|
+
|
|
293
|
+
chargebacks: Optional[URL] = None
|
|
294
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
295
|
+
|
|
296
|
+
invoice: OptionalNullable[URLNullable] = UNSET
|
|
297
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
298
|
+
|
|
299
|
+
documentation: Optional[URL] = None
|
|
300
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
301
|
+
|
|
302
|
+
@model_serializer(mode="wrap")
|
|
303
|
+
def serialize_model(self, handler):
|
|
304
|
+
optional_fields = [
|
|
305
|
+
"payments",
|
|
306
|
+
"captures",
|
|
307
|
+
"refunds",
|
|
308
|
+
"chargebacks",
|
|
309
|
+
"invoice",
|
|
310
|
+
"documentation",
|
|
311
|
+
]
|
|
312
|
+
nullable_fields = ["invoice"]
|
|
313
|
+
null_default_fields = []
|
|
314
|
+
|
|
315
|
+
serialized = handler(self)
|
|
316
|
+
|
|
317
|
+
m = {}
|
|
318
|
+
|
|
319
|
+
for n, f in type(self).model_fields.items():
|
|
320
|
+
k = f.alias or n
|
|
321
|
+
val = serialized.get(k)
|
|
322
|
+
serialized.pop(k, None)
|
|
323
|
+
|
|
324
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
325
|
+
is_set = (
|
|
326
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
327
|
+
or k in null_default_fields
|
|
328
|
+
) # pylint: disable=no-member
|
|
329
|
+
|
|
330
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
331
|
+
m[k] = val
|
|
332
|
+
elif val != UNSET_SENTINEL and (
|
|
333
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
334
|
+
):
|
|
335
|
+
m[k] = val
|
|
336
|
+
|
|
337
|
+
return m
|
|
338
|
+
|
|
339
|
+
|
|
340
|
+
class EntitySettlementTypedDict(TypedDict):
|
|
341
|
+
resource: str
|
|
342
|
+
r"""Indicates the response contains a settlement object. Will always contain the string `settlement` for this
|
|
343
|
+
endpoint.
|
|
344
|
+
"""
|
|
345
|
+
id: str
|
|
346
|
+
r"""The identifier uniquely referring to this settlement."""
|
|
347
|
+
status: EntitySettlementStatus
|
|
348
|
+
amount: EntitySettlementAmountTypedDict
|
|
349
|
+
r"""The total amount of the settlement."""
|
|
350
|
+
balance_id: str
|
|
351
|
+
r"""The balance token that the settlement was settled to."""
|
|
352
|
+
links: EntitySettlementLinksTypedDict
|
|
353
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
354
|
+
created_at: NotRequired[str]
|
|
355
|
+
r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
|
|
356
|
+
reference: NotRequired[Nullable[str]]
|
|
357
|
+
r"""The settlement's bank reference, as found in your Mollie account and on your bank statement."""
|
|
358
|
+
settled_at: NotRequired[Nullable[str]]
|
|
359
|
+
r"""The date on which the settlement was settled, in ISO 8601 format.
|
|
360
|
+
|
|
361
|
+
For an [open settlement](get-open-settlement) or for the [next settlement](get-next-settlement), no settlement
|
|
362
|
+
date is available.
|
|
363
|
+
"""
|
|
364
|
+
invoice_id: NotRequired[Nullable[str]]
|
|
365
|
+
r"""The ID of the oldest invoice created for all the periods, if the invoice has been created yet."""
|
|
366
|
+
periods: NotRequired[Dict[str, Dict[str, EntitySettlementPeriodsTypedDict]]]
|
|
367
|
+
r"""For bookkeeping purposes, the settlement includes an overview of transactions included in the settlement. These
|
|
368
|
+
transactions are grouped into 'period' objects — one for each calendar month.
|
|
369
|
+
|
|
370
|
+
For example, if a settlement includes funds from 15 April until 4 May, it will include two period objects. One for
|
|
371
|
+
all transactions processed between 15 April and 30 April, and one for all transactions between 1 May and 4 May.
|
|
372
|
+
|
|
373
|
+
Period objects are grouped by year, and then by month. So in the above example, the full `periods` collection will
|
|
374
|
+
look as follows: `{\"2024\": {\"04\": {...}, \"05\": {...}}}`. The year and month in this documentation are referred as `<year>` and `<month>`.
|
|
375
|
+
|
|
376
|
+
The example response should give a good idea of what this looks like in practise.
|
|
377
|
+
"""
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
class EntitySettlement(BaseModel):
|
|
381
|
+
resource: str
|
|
382
|
+
r"""Indicates the response contains a settlement object. Will always contain the string `settlement` for this
|
|
383
|
+
endpoint.
|
|
384
|
+
"""
|
|
385
|
+
|
|
386
|
+
id: str
|
|
387
|
+
r"""The identifier uniquely referring to this settlement."""
|
|
388
|
+
|
|
389
|
+
status: Annotated[EntitySettlementStatus, PlainValidator(validate_open_enum(False))]
|
|
390
|
+
|
|
391
|
+
amount: EntitySettlementAmount
|
|
392
|
+
r"""The total amount of the settlement."""
|
|
393
|
+
|
|
394
|
+
balance_id: Annotated[str, pydantic.Field(alias="balanceId")]
|
|
395
|
+
r"""The balance token that the settlement was settled to."""
|
|
396
|
+
|
|
397
|
+
links: Annotated[EntitySettlementLinks, pydantic.Field(alias="_links")]
|
|
398
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
399
|
+
|
|
400
|
+
created_at: Annotated[Optional[str], pydantic.Field(alias="createdAt")] = None
|
|
401
|
+
r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
|
|
402
|
+
|
|
403
|
+
reference: OptionalNullable[str] = UNSET
|
|
404
|
+
r"""The settlement's bank reference, as found in your Mollie account and on your bank statement."""
|
|
405
|
+
|
|
406
|
+
settled_at: Annotated[OptionalNullable[str], pydantic.Field(alias="settledAt")] = (
|
|
407
|
+
UNSET
|
|
408
|
+
)
|
|
409
|
+
r"""The date on which the settlement was settled, in ISO 8601 format.
|
|
410
|
+
|
|
411
|
+
For an [open settlement](get-open-settlement) or for the [next settlement](get-next-settlement), no settlement
|
|
412
|
+
date is available.
|
|
413
|
+
"""
|
|
414
|
+
|
|
415
|
+
invoice_id: Annotated[OptionalNullable[str], pydantic.Field(alias="invoiceId")] = (
|
|
416
|
+
UNSET
|
|
417
|
+
)
|
|
418
|
+
r"""The ID of the oldest invoice created for all the periods, if the invoice has been created yet."""
|
|
419
|
+
|
|
420
|
+
periods: Optional[Dict[str, Dict[str, EntitySettlementPeriods]]] = None
|
|
421
|
+
r"""For bookkeeping purposes, the settlement includes an overview of transactions included in the settlement. These
|
|
422
|
+
transactions are grouped into 'period' objects — one for each calendar month.
|
|
423
|
+
|
|
424
|
+
For example, if a settlement includes funds from 15 April until 4 May, it will include two period objects. One for
|
|
425
|
+
all transactions processed between 15 April and 30 April, and one for all transactions between 1 May and 4 May.
|
|
426
|
+
|
|
427
|
+
Period objects are grouped by year, and then by month. So in the above example, the full `periods` collection will
|
|
428
|
+
look as follows: `{\"2024\": {\"04\": {...}, \"05\": {...}}}`. The year and month in this documentation are referred as `<year>` and `<month>`.
|
|
429
|
+
|
|
430
|
+
The example response should give a good idea of what this looks like in practise.
|
|
431
|
+
"""
|
|
432
|
+
|
|
433
|
+
@model_serializer(mode="wrap")
|
|
434
|
+
def serialize_model(self, handler):
|
|
435
|
+
optional_fields = [
|
|
436
|
+
"createdAt",
|
|
437
|
+
"reference",
|
|
438
|
+
"settledAt",
|
|
439
|
+
"invoiceId",
|
|
440
|
+
"periods",
|
|
441
|
+
]
|
|
442
|
+
nullable_fields = ["reference", "settledAt", "invoiceId"]
|
|
443
|
+
null_default_fields = []
|
|
444
|
+
|
|
445
|
+
serialized = handler(self)
|
|
446
|
+
|
|
447
|
+
m = {}
|
|
448
|
+
|
|
449
|
+
for n, f in type(self).model_fields.items():
|
|
450
|
+
k = f.alias or n
|
|
451
|
+
val = serialized.get(k)
|
|
452
|
+
serialized.pop(k, None)
|
|
453
|
+
|
|
454
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
455
|
+
is_set = (
|
|
456
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
457
|
+
or k in null_default_fields
|
|
458
|
+
) # pylint: disable=no-member
|
|
459
|
+
|
|
460
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
461
|
+
m[k] = val
|
|
462
|
+
elif val != UNSET_SENTINEL and (
|
|
463
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
464
|
+
):
|
|
465
|
+
m[k] = val
|
|
466
|
+
|
|
467
|
+
return m
|