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,457 @@
|
|
|
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 ListEntitySettlementStatus(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 ListEntitySettlementAmountTypedDict(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 ListEntitySettlementAmount(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 ListEntitySettlementRateTypedDict(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 ListEntitySettlementRate(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 ListEntitySettlementCostTypedDict(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: ListEntitySettlementRateTypedDict
|
|
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 ListEntitySettlementCost(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: ListEntitySettlementRate
|
|
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 ListEntitySettlementRevenueTypedDict(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 ListEntitySettlementRevenue(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 ListEntitySettlementPeriodsTypedDict(TypedDict):
|
|
205
|
+
costs: NotRequired[List[ListEntitySettlementCostTypedDict]]
|
|
206
|
+
r"""An array of cost objects, describing the fees withheld for each payment method during this period."""
|
|
207
|
+
revenue: NotRequired[List[ListEntitySettlementRevenueTypedDict]]
|
|
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 ListEntitySettlementPeriods(BaseModel):
|
|
215
|
+
costs: Optional[List[ListEntitySettlementCost]] = None
|
|
216
|
+
r"""An array of cost objects, describing the fees withheld for each payment method during this period."""
|
|
217
|
+
|
|
218
|
+
revenue: Optional[List[ListEntitySettlementRevenue]] = 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 ListEntitySettlementLinksTypedDict(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
|
+
|
|
275
|
+
|
|
276
|
+
class ListEntitySettlementLinks(BaseModel):
|
|
277
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
278
|
+
|
|
279
|
+
self_: Annotated[URL, pydantic.Field(alias="self")]
|
|
280
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
281
|
+
|
|
282
|
+
payments: Optional[URL] = None
|
|
283
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
284
|
+
|
|
285
|
+
captures: Optional[URL] = None
|
|
286
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
287
|
+
|
|
288
|
+
refunds: Optional[URL] = None
|
|
289
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
290
|
+
|
|
291
|
+
chargebacks: Optional[URL] = None
|
|
292
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
293
|
+
|
|
294
|
+
invoice: OptionalNullable[URLNullable] = UNSET
|
|
295
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
296
|
+
|
|
297
|
+
@model_serializer(mode="wrap")
|
|
298
|
+
def serialize_model(self, handler):
|
|
299
|
+
optional_fields = ["payments", "captures", "refunds", "chargebacks", "invoice"]
|
|
300
|
+
nullable_fields = ["invoice"]
|
|
301
|
+
null_default_fields = []
|
|
302
|
+
|
|
303
|
+
serialized = handler(self)
|
|
304
|
+
|
|
305
|
+
m = {}
|
|
306
|
+
|
|
307
|
+
for n, f in type(self).model_fields.items():
|
|
308
|
+
k = f.alias or n
|
|
309
|
+
val = serialized.get(k)
|
|
310
|
+
serialized.pop(k, None)
|
|
311
|
+
|
|
312
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
313
|
+
is_set = (
|
|
314
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
315
|
+
or k in null_default_fields
|
|
316
|
+
) # pylint: disable=no-member
|
|
317
|
+
|
|
318
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
319
|
+
m[k] = val
|
|
320
|
+
elif val != UNSET_SENTINEL and (
|
|
321
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
322
|
+
):
|
|
323
|
+
m[k] = val
|
|
324
|
+
|
|
325
|
+
return m
|
|
326
|
+
|
|
327
|
+
|
|
328
|
+
class ListEntitySettlementTypedDict(TypedDict):
|
|
329
|
+
resource: str
|
|
330
|
+
r"""Indicates the response contains a settlement object. Will always contain the string `settlement` for this
|
|
331
|
+
endpoint.
|
|
332
|
+
"""
|
|
333
|
+
id: str
|
|
334
|
+
r"""The identifier uniquely referring to this settlement."""
|
|
335
|
+
status: ListEntitySettlementStatus
|
|
336
|
+
amount: ListEntitySettlementAmountTypedDict
|
|
337
|
+
r"""The total amount of the settlement."""
|
|
338
|
+
balance_id: str
|
|
339
|
+
r"""The balance token that the settlement was settled to."""
|
|
340
|
+
links: ListEntitySettlementLinksTypedDict
|
|
341
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
342
|
+
created_at: NotRequired[str]
|
|
343
|
+
r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
|
|
344
|
+
reference: NotRequired[Nullable[str]]
|
|
345
|
+
r"""The settlement's bank reference, as found in your Mollie account and on your bank statement."""
|
|
346
|
+
settled_at: NotRequired[Nullable[str]]
|
|
347
|
+
r"""The date on which the settlement was settled, in ISO 8601 format.
|
|
348
|
+
|
|
349
|
+
For an [open settlement](get-open-settlement) or for the [next settlement](get-next-settlement), no settlement
|
|
350
|
+
date is available.
|
|
351
|
+
"""
|
|
352
|
+
invoice_id: NotRequired[Nullable[str]]
|
|
353
|
+
r"""The ID of the oldest invoice created for all the periods, if the invoice has been created yet."""
|
|
354
|
+
periods: NotRequired[Dict[str, Dict[str, ListEntitySettlementPeriodsTypedDict]]]
|
|
355
|
+
r"""For bookkeeping purposes, the settlement includes an overview of transactions included in the settlement. These
|
|
356
|
+
transactions are grouped into 'period' objects — one for each calendar month.
|
|
357
|
+
|
|
358
|
+
For example, if a settlement includes funds from 15 April until 4 May, it will include two period objects. One for
|
|
359
|
+
all transactions processed between 15 April and 30 April, and one for all transactions between 1 May and 4 May.
|
|
360
|
+
|
|
361
|
+
Period objects are grouped by year, and then by month. So in the above example, the full `periods` collection will
|
|
362
|
+
look as follows: `{\"2024\": {\"04\": {...}, \"05\": {...}}}`. The year and month in this documentation are referred as `<year>` and `<month>`.
|
|
363
|
+
|
|
364
|
+
The example response should give a good idea of what this looks like in practise.
|
|
365
|
+
"""
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
class ListEntitySettlement(BaseModel):
|
|
369
|
+
resource: str
|
|
370
|
+
r"""Indicates the response contains a settlement object. Will always contain the string `settlement` for this
|
|
371
|
+
endpoint.
|
|
372
|
+
"""
|
|
373
|
+
|
|
374
|
+
id: str
|
|
375
|
+
r"""The identifier uniquely referring to this settlement."""
|
|
376
|
+
|
|
377
|
+
status: Annotated[
|
|
378
|
+
ListEntitySettlementStatus, PlainValidator(validate_open_enum(False))
|
|
379
|
+
]
|
|
380
|
+
|
|
381
|
+
amount: ListEntitySettlementAmount
|
|
382
|
+
r"""The total amount of the settlement."""
|
|
383
|
+
|
|
384
|
+
balance_id: Annotated[str, pydantic.Field(alias="balanceId")]
|
|
385
|
+
r"""The balance token that the settlement was settled to."""
|
|
386
|
+
|
|
387
|
+
links: Annotated[ListEntitySettlementLinks, pydantic.Field(alias="_links")]
|
|
388
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
389
|
+
|
|
390
|
+
created_at: Annotated[Optional[str], pydantic.Field(alias="createdAt")] = None
|
|
391
|
+
r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
|
|
392
|
+
|
|
393
|
+
reference: OptionalNullable[str] = UNSET
|
|
394
|
+
r"""The settlement's bank reference, as found in your Mollie account and on your bank statement."""
|
|
395
|
+
|
|
396
|
+
settled_at: Annotated[OptionalNullable[str], pydantic.Field(alias="settledAt")] = (
|
|
397
|
+
UNSET
|
|
398
|
+
)
|
|
399
|
+
r"""The date on which the settlement was settled, in ISO 8601 format.
|
|
400
|
+
|
|
401
|
+
For an [open settlement](get-open-settlement) or for the [next settlement](get-next-settlement), no settlement
|
|
402
|
+
date is available.
|
|
403
|
+
"""
|
|
404
|
+
|
|
405
|
+
invoice_id: Annotated[OptionalNullable[str], pydantic.Field(alias="invoiceId")] = (
|
|
406
|
+
UNSET
|
|
407
|
+
)
|
|
408
|
+
r"""The ID of the oldest invoice created for all the periods, if the invoice has been created yet."""
|
|
409
|
+
|
|
410
|
+
periods: Optional[Dict[str, Dict[str, ListEntitySettlementPeriods]]] = None
|
|
411
|
+
r"""For bookkeeping purposes, the settlement includes an overview of transactions included in the settlement. These
|
|
412
|
+
transactions are grouped into 'period' objects — one for each calendar month.
|
|
413
|
+
|
|
414
|
+
For example, if a settlement includes funds from 15 April until 4 May, it will include two period objects. One for
|
|
415
|
+
all transactions processed between 15 April and 30 April, and one for all transactions between 1 May and 4 May.
|
|
416
|
+
|
|
417
|
+
Period objects are grouped by year, and then by month. So in the above example, the full `periods` collection will
|
|
418
|
+
look as follows: `{\"2024\": {\"04\": {...}, \"05\": {...}}}`. The year and month in this documentation are referred as `<year>` and `<month>`.
|
|
419
|
+
|
|
420
|
+
The example response should give a good idea of what this looks like in practise.
|
|
421
|
+
"""
|
|
422
|
+
|
|
423
|
+
@model_serializer(mode="wrap")
|
|
424
|
+
def serialize_model(self, handler):
|
|
425
|
+
optional_fields = [
|
|
426
|
+
"createdAt",
|
|
427
|
+
"reference",
|
|
428
|
+
"settledAt",
|
|
429
|
+
"invoiceId",
|
|
430
|
+
"periods",
|
|
431
|
+
]
|
|
432
|
+
nullable_fields = ["reference", "settledAt", "invoiceId"]
|
|
433
|
+
null_default_fields = []
|
|
434
|
+
|
|
435
|
+
serialized = handler(self)
|
|
436
|
+
|
|
437
|
+
m = {}
|
|
438
|
+
|
|
439
|
+
for n, f in type(self).model_fields.items():
|
|
440
|
+
k = f.alias or n
|
|
441
|
+
val = serialized.get(k)
|
|
442
|
+
serialized.pop(k, None)
|
|
443
|
+
|
|
444
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
445
|
+
is_set = (
|
|
446
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
447
|
+
or k in null_default_fields
|
|
448
|
+
) # pylint: disable=no-member
|
|
449
|
+
|
|
450
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
451
|
+
m[k] = val
|
|
452
|
+
elif val != UNSET_SENTINEL and (
|
|
453
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
454
|
+
):
|
|
455
|
+
m[k] = val
|
|
456
|
+
|
|
457
|
+
return m
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .mode import Mode
|
|
5
|
+
from .terminal_brand import TerminalBrand
|
|
6
|
+
from .terminal_model import TerminalModel
|
|
7
|
+
from .url import URL, URLTypedDict
|
|
8
|
+
from enum import Enum
|
|
9
|
+
from mollie import utils
|
|
10
|
+
from mollie.types import BaseModel, Nullable, 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, TypedDict
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class ListEntityTerminalStatus(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
19
|
+
r"""The status of the terminal."""
|
|
20
|
+
|
|
21
|
+
PENDING = "pending"
|
|
22
|
+
ACTIVE = "active"
|
|
23
|
+
INACTIVE = "inactive"
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class ListEntityTerminalLinksTypedDict(TypedDict):
|
|
27
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
28
|
+
|
|
29
|
+
self_: URLTypedDict
|
|
30
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class ListEntityTerminalLinks(BaseModel):
|
|
34
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
35
|
+
|
|
36
|
+
self_: Annotated[URL, pydantic.Field(alias="self")]
|
|
37
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class ListEntityTerminalTypedDict(TypedDict):
|
|
41
|
+
resource: str
|
|
42
|
+
r"""Indicates the response contains a terminal object. Will always contain the string `terminal` for this endpoint."""
|
|
43
|
+
id: str
|
|
44
|
+
r"""The identifier uniquely referring to this terminal. Example: `term_7MgL4wea46qkRcoTZjWEH`."""
|
|
45
|
+
mode: Mode
|
|
46
|
+
r"""Whether this entity was created in live mode or in test mode."""
|
|
47
|
+
description: str
|
|
48
|
+
r"""A short description of the terminal. The description can be used as an identifier for the terminal. Currently, the
|
|
49
|
+
description is set when the terminal is initially configured. It will be visible in the Mollie Dashboard, and it
|
|
50
|
+
may be visible on the device itself depending on the device.
|
|
51
|
+
"""
|
|
52
|
+
status: ListEntityTerminalStatus
|
|
53
|
+
brand: Nullable[TerminalBrand]
|
|
54
|
+
r"""The brand of the terminal."""
|
|
55
|
+
model: Nullable[TerminalModel]
|
|
56
|
+
r"""The model of the terminal. For example for a PAX A920, this field's value will be `A920`."""
|
|
57
|
+
serial_number: Nullable[str]
|
|
58
|
+
r"""The serial number of the terminal. The serial number is provided at terminal creation time."""
|
|
59
|
+
currency: str
|
|
60
|
+
r"""The currency configured on the terminal, in ISO 4217 format. Currently most of our terminals are bound to a
|
|
61
|
+
specific currency, chosen during setup.
|
|
62
|
+
"""
|
|
63
|
+
profile_id: str
|
|
64
|
+
r"""The identifier referring to the [profile](get-profile) this entity belongs to.
|
|
65
|
+
|
|
66
|
+
Most API credentials are linked to a single profile. In these cases the `profileId` can be omitted in the creation
|
|
67
|
+
request. For organization-level credentials such as OAuth access tokens however, the `profileId` parameter is
|
|
68
|
+
required.
|
|
69
|
+
"""
|
|
70
|
+
created_at: str
|
|
71
|
+
r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
|
|
72
|
+
updated_at: str
|
|
73
|
+
r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
|
|
74
|
+
links: ListEntityTerminalLinksTypedDict
|
|
75
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
class ListEntityTerminal(BaseModel):
|
|
79
|
+
resource: str
|
|
80
|
+
r"""Indicates the response contains a terminal object. Will always contain the string `terminal` for this endpoint."""
|
|
81
|
+
|
|
82
|
+
id: str
|
|
83
|
+
r"""The identifier uniquely referring to this terminal. Example: `term_7MgL4wea46qkRcoTZjWEH`."""
|
|
84
|
+
|
|
85
|
+
mode: Annotated[Mode, PlainValidator(validate_open_enum(False))]
|
|
86
|
+
r"""Whether this entity was created in live mode or in test mode."""
|
|
87
|
+
|
|
88
|
+
description: str
|
|
89
|
+
r"""A short description of the terminal. The description can be used as an identifier for the terminal. Currently, the
|
|
90
|
+
description is set when the terminal is initially configured. It will be visible in the Mollie Dashboard, and it
|
|
91
|
+
may be visible on the device itself depending on the device.
|
|
92
|
+
"""
|
|
93
|
+
|
|
94
|
+
status: Annotated[
|
|
95
|
+
ListEntityTerminalStatus, PlainValidator(validate_open_enum(False))
|
|
96
|
+
]
|
|
97
|
+
|
|
98
|
+
brand: Annotated[Nullable[TerminalBrand], PlainValidator(validate_open_enum(False))]
|
|
99
|
+
r"""The brand of the terminal."""
|
|
100
|
+
|
|
101
|
+
model: Annotated[Nullable[TerminalModel], PlainValidator(validate_open_enum(False))]
|
|
102
|
+
r"""The model of the terminal. For example for a PAX A920, this field's value will be `A920`."""
|
|
103
|
+
|
|
104
|
+
serial_number: Annotated[Nullable[str], pydantic.Field(alias="serialNumber")]
|
|
105
|
+
r"""The serial number of the terminal. The serial number is provided at terminal creation time."""
|
|
106
|
+
|
|
107
|
+
currency: str
|
|
108
|
+
r"""The currency configured on the terminal, in ISO 4217 format. Currently most of our terminals are bound to a
|
|
109
|
+
specific currency, chosen during setup.
|
|
110
|
+
"""
|
|
111
|
+
|
|
112
|
+
profile_id: Annotated[str, pydantic.Field(alias="profileId")]
|
|
113
|
+
r"""The identifier referring to the [profile](get-profile) this entity belongs to.
|
|
114
|
+
|
|
115
|
+
Most API credentials are linked to a single profile. In these cases the `profileId` can be omitted in the creation
|
|
116
|
+
request. For organization-level credentials such as OAuth access tokens however, the `profileId` parameter is
|
|
117
|
+
required.
|
|
118
|
+
"""
|
|
119
|
+
|
|
120
|
+
created_at: Annotated[str, pydantic.Field(alias="createdAt")]
|
|
121
|
+
r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
|
|
122
|
+
|
|
123
|
+
updated_at: Annotated[str, pydantic.Field(alias="updatedAt")]
|
|
124
|
+
r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
|
|
125
|
+
|
|
126
|
+
links: Annotated[ListEntityTerminalLinks, pydantic.Field(alias="_links")]
|
|
127
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
128
|
+
|
|
129
|
+
@model_serializer(mode="wrap")
|
|
130
|
+
def serialize_model(self, handler):
|
|
131
|
+
optional_fields = []
|
|
132
|
+
nullable_fields = ["brand", "model", "serialNumber"]
|
|
133
|
+
null_default_fields = []
|
|
134
|
+
|
|
135
|
+
serialized = handler(self)
|
|
136
|
+
|
|
137
|
+
m = {}
|
|
138
|
+
|
|
139
|
+
for n, f in type(self).model_fields.items():
|
|
140
|
+
k = f.alias or n
|
|
141
|
+
val = serialized.get(k)
|
|
142
|
+
serialized.pop(k, None)
|
|
143
|
+
|
|
144
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
145
|
+
is_set = (
|
|
146
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
147
|
+
or k in null_default_fields
|
|
148
|
+
) # pylint: disable=no-member
|
|
149
|
+
|
|
150
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
151
|
+
m[k] = val
|
|
152
|
+
elif val != UNSET_SENTINEL and (
|
|
153
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
154
|
+
):
|
|
155
|
+
m[k] = val
|
|
156
|
+
|
|
157
|
+
return m
|