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,247 @@
|
|
|
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 .url import URL, URLTypedDict
|
|
6
|
+
from .url_nullable import URLNullable, URLNullableTypedDict
|
|
7
|
+
from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
8
|
+
import pydantic
|
|
9
|
+
from pydantic import model_serializer
|
|
10
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class EntityChargebackSettlementAmountTypedDict(TypedDict):
|
|
14
|
+
r"""This optional field will contain the approximate amount that will be deducted from your account balance, converted
|
|
15
|
+
to the currency your account is settled in.
|
|
16
|
+
|
|
17
|
+
The amount is a **negative** amount.
|
|
18
|
+
|
|
19
|
+
Since the field contains an estimated amount during chargeback processing, it may change over time. To retrieve
|
|
20
|
+
accurate settlement amounts we recommend using the [List balance transactions endpoint](list-balance-transactions)
|
|
21
|
+
instead.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
currency: str
|
|
25
|
+
r"""A three-character ISO 4217 currency code."""
|
|
26
|
+
value: str
|
|
27
|
+
r"""A string containing an exact monetary amount in the given currency."""
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
class EntityChargebackSettlementAmount(BaseModel):
|
|
31
|
+
r"""This optional field will contain the approximate amount that will be deducted from your account balance, converted
|
|
32
|
+
to the currency your account is settled in.
|
|
33
|
+
|
|
34
|
+
The amount is a **negative** amount.
|
|
35
|
+
|
|
36
|
+
Since the field contains an estimated amount during chargeback processing, it may change over time. To retrieve
|
|
37
|
+
accurate settlement amounts we recommend using the [List balance transactions endpoint](list-balance-transactions)
|
|
38
|
+
instead.
|
|
39
|
+
"""
|
|
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 EntityChargebackReasonTypedDict(TypedDict):
|
|
49
|
+
r"""Reason for the chargeback as given by the bank. Only available for chargebacks of SEPA Direct Debit payments."""
|
|
50
|
+
|
|
51
|
+
code: str
|
|
52
|
+
r"""Technical code provided by the bank."""
|
|
53
|
+
description: str
|
|
54
|
+
r"""A more detailed human-friendly description."""
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
class EntityChargebackReason(BaseModel):
|
|
58
|
+
r"""Reason for the chargeback as given by the bank. Only available for chargebacks of SEPA Direct Debit payments."""
|
|
59
|
+
|
|
60
|
+
code: str
|
|
61
|
+
r"""Technical code provided by the bank."""
|
|
62
|
+
|
|
63
|
+
description: str
|
|
64
|
+
r"""A more detailed human-friendly description."""
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
class EntityChargebackLinksTypedDict(TypedDict):
|
|
68
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
69
|
+
|
|
70
|
+
self_: URLTypedDict
|
|
71
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
72
|
+
payment: URLTypedDict
|
|
73
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
74
|
+
documentation: URLTypedDict
|
|
75
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
76
|
+
settlement: NotRequired[Nullable[URLNullableTypedDict]]
|
|
77
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
class EntityChargebackLinks(BaseModel):
|
|
81
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
82
|
+
|
|
83
|
+
self_: Annotated[URL, pydantic.Field(alias="self")]
|
|
84
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
85
|
+
|
|
86
|
+
payment: URL
|
|
87
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
88
|
+
|
|
89
|
+
documentation: URL
|
|
90
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
91
|
+
|
|
92
|
+
settlement: OptionalNullable[URLNullable] = UNSET
|
|
93
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
94
|
+
|
|
95
|
+
@model_serializer(mode="wrap")
|
|
96
|
+
def serialize_model(self, handler):
|
|
97
|
+
optional_fields = ["settlement"]
|
|
98
|
+
nullable_fields = ["settlement"]
|
|
99
|
+
null_default_fields = []
|
|
100
|
+
|
|
101
|
+
serialized = handler(self)
|
|
102
|
+
|
|
103
|
+
m = {}
|
|
104
|
+
|
|
105
|
+
for n, f in type(self).model_fields.items():
|
|
106
|
+
k = f.alias or n
|
|
107
|
+
val = serialized.get(k)
|
|
108
|
+
serialized.pop(k, None)
|
|
109
|
+
|
|
110
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
111
|
+
is_set = (
|
|
112
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
113
|
+
or k in null_default_fields
|
|
114
|
+
) # pylint: disable=no-member
|
|
115
|
+
|
|
116
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
117
|
+
m[k] = val
|
|
118
|
+
elif val != UNSET_SENTINEL and (
|
|
119
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
120
|
+
):
|
|
121
|
+
m[k] = val
|
|
122
|
+
|
|
123
|
+
return m
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
class EntityChargebackTypedDict(TypedDict):
|
|
127
|
+
resource: str
|
|
128
|
+
r"""Indicates the response contains a chargeback object. Will always contain the string `chargeback` for this
|
|
129
|
+
endpoint.
|
|
130
|
+
"""
|
|
131
|
+
id: str
|
|
132
|
+
r"""The identifier uniquely referring to this chargeback. Example: `chb_n9z0tp`."""
|
|
133
|
+
amount: AmountTypedDict
|
|
134
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
135
|
+
payment_id: str
|
|
136
|
+
r"""The unique identifier of the payment this chargeback was created for. For example: `tr_5B8cwPMGnU6qLbRvo7qEZo`.
|
|
137
|
+
The full payment object can be retrieved via the payment URL in the `_links` object.
|
|
138
|
+
"""
|
|
139
|
+
created_at: str
|
|
140
|
+
r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
|
|
141
|
+
links: EntityChargebackLinksTypedDict
|
|
142
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
143
|
+
settlement_amount: NotRequired[Nullable[EntityChargebackSettlementAmountTypedDict]]
|
|
144
|
+
r"""This optional field will contain the approximate amount that will be deducted from your account balance, converted
|
|
145
|
+
to the currency your account is settled in.
|
|
146
|
+
|
|
147
|
+
The amount is a **negative** amount.
|
|
148
|
+
|
|
149
|
+
Since the field contains an estimated amount during chargeback processing, it may change over time. To retrieve
|
|
150
|
+
accurate settlement amounts we recommend using the [List balance transactions endpoint](list-balance-transactions)
|
|
151
|
+
instead.
|
|
152
|
+
"""
|
|
153
|
+
reason: NotRequired[Nullable[EntityChargebackReasonTypedDict]]
|
|
154
|
+
r"""Reason for the chargeback as given by the bank. Only available for chargebacks of SEPA Direct Debit payments."""
|
|
155
|
+
settlement_id: NotRequired[Nullable[str]]
|
|
156
|
+
r"""The identifier referring to the settlement this payment was settled with. For example, `stl_BkEjN2eBb`. This field
|
|
157
|
+
is omitted if the refund is not settled (yet).
|
|
158
|
+
"""
|
|
159
|
+
reversed_at: NotRequired[Nullable[str]]
|
|
160
|
+
r"""The date and time the chargeback was reversed if applicable, in
|
|
161
|
+
[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
|
|
162
|
+
"""
|
|
163
|
+
|
|
164
|
+
|
|
165
|
+
class EntityChargeback(BaseModel):
|
|
166
|
+
resource: str
|
|
167
|
+
r"""Indicates the response contains a chargeback object. Will always contain the string `chargeback` for this
|
|
168
|
+
endpoint.
|
|
169
|
+
"""
|
|
170
|
+
|
|
171
|
+
id: str
|
|
172
|
+
r"""The identifier uniquely referring to this chargeback. Example: `chb_n9z0tp`."""
|
|
173
|
+
|
|
174
|
+
amount: Amount
|
|
175
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
176
|
+
|
|
177
|
+
payment_id: Annotated[str, pydantic.Field(alias="paymentId")]
|
|
178
|
+
r"""The unique identifier of the payment this chargeback was created for. For example: `tr_5B8cwPMGnU6qLbRvo7qEZo`.
|
|
179
|
+
The full payment object can be retrieved via the payment URL in the `_links` object.
|
|
180
|
+
"""
|
|
181
|
+
|
|
182
|
+
created_at: Annotated[str, pydantic.Field(alias="createdAt")]
|
|
183
|
+
r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
|
|
184
|
+
|
|
185
|
+
links: Annotated[EntityChargebackLinks, pydantic.Field(alias="_links")]
|
|
186
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
187
|
+
|
|
188
|
+
settlement_amount: Annotated[
|
|
189
|
+
OptionalNullable[EntityChargebackSettlementAmount],
|
|
190
|
+
pydantic.Field(alias="settlementAmount"),
|
|
191
|
+
] = UNSET
|
|
192
|
+
r"""This optional field will contain the approximate amount that will be deducted from your account balance, converted
|
|
193
|
+
to the currency your account is settled in.
|
|
194
|
+
|
|
195
|
+
The amount is a **negative** amount.
|
|
196
|
+
|
|
197
|
+
Since the field contains an estimated amount during chargeback processing, it may change over time. To retrieve
|
|
198
|
+
accurate settlement amounts we recommend using the [List balance transactions endpoint](list-balance-transactions)
|
|
199
|
+
instead.
|
|
200
|
+
"""
|
|
201
|
+
|
|
202
|
+
reason: OptionalNullable[EntityChargebackReason] = UNSET
|
|
203
|
+
r"""Reason for the chargeback as given by the bank. Only available for chargebacks of SEPA Direct Debit payments."""
|
|
204
|
+
|
|
205
|
+
settlement_id: Annotated[
|
|
206
|
+
OptionalNullable[str], pydantic.Field(alias="settlementId")
|
|
207
|
+
] = UNSET
|
|
208
|
+
r"""The identifier referring to the settlement this payment was settled with. For example, `stl_BkEjN2eBb`. This field
|
|
209
|
+
is omitted if the refund is not settled (yet).
|
|
210
|
+
"""
|
|
211
|
+
|
|
212
|
+
reversed_at: Annotated[
|
|
213
|
+
OptionalNullable[str], pydantic.Field(alias="reversedAt")
|
|
214
|
+
] = UNSET
|
|
215
|
+
r"""The date and time the chargeback was reversed if applicable, in
|
|
216
|
+
[ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format.
|
|
217
|
+
"""
|
|
218
|
+
|
|
219
|
+
@model_serializer(mode="wrap")
|
|
220
|
+
def serialize_model(self, handler):
|
|
221
|
+
optional_fields = ["settlementAmount", "reason", "settlementId", "reversedAt"]
|
|
222
|
+
nullable_fields = ["settlementAmount", "reason", "settlementId", "reversedAt"]
|
|
223
|
+
null_default_fields = []
|
|
224
|
+
|
|
225
|
+
serialized = handler(self)
|
|
226
|
+
|
|
227
|
+
m = {}
|
|
228
|
+
|
|
229
|
+
for n, f in type(self).model_fields.items():
|
|
230
|
+
k = f.alias or n
|
|
231
|
+
val = serialized.get(k)
|
|
232
|
+
serialized.pop(k, None)
|
|
233
|
+
|
|
234
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
235
|
+
is_set = (
|
|
236
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
237
|
+
or k in null_default_fields
|
|
238
|
+
) # pylint: disable=no-member
|
|
239
|
+
|
|
240
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
241
|
+
m[k] = val
|
|
242
|
+
elif val != UNSET_SENTINEL and (
|
|
243
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
244
|
+
):
|
|
245
|
+
m[k] = val
|
|
246
|
+
|
|
247
|
+
return m
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .locale_response import LocaleResponse
|
|
5
|
+
from .metadata import Metadata, MetadataTypedDict
|
|
6
|
+
from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
7
|
+
from mollie.utils import validate_open_enum
|
|
8
|
+
from pydantic import model_serializer
|
|
9
|
+
from pydantic.functional_validators import PlainValidator
|
|
10
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class EntityCustomerTypedDict(TypedDict):
|
|
14
|
+
name: NotRequired[Nullable[str]]
|
|
15
|
+
r"""The full name of the customer."""
|
|
16
|
+
email: NotRequired[Nullable[str]]
|
|
17
|
+
r"""The email address of the customer."""
|
|
18
|
+
locale: NotRequired[Nullable[LocaleResponse]]
|
|
19
|
+
r"""Allows you to preset the language to be used."""
|
|
20
|
+
metadata: NotRequired[Nullable[MetadataTypedDict]]
|
|
21
|
+
r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
|
|
22
|
+
you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
|
|
23
|
+
"""
|
|
24
|
+
testmode: NotRequired[Nullable[bool]]
|
|
25
|
+
r"""Whether to create the entity in test mode or live mode.
|
|
26
|
+
|
|
27
|
+
Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
|
|
28
|
+
omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
|
|
29
|
+
`testmode` to `true`.
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
class EntityCustomer(BaseModel):
|
|
34
|
+
name: OptionalNullable[str] = UNSET
|
|
35
|
+
r"""The full name of the customer."""
|
|
36
|
+
|
|
37
|
+
email: OptionalNullable[str] = UNSET
|
|
38
|
+
r"""The email address of the customer."""
|
|
39
|
+
|
|
40
|
+
locale: Annotated[
|
|
41
|
+
OptionalNullable[LocaleResponse], PlainValidator(validate_open_enum(False))
|
|
42
|
+
] = UNSET
|
|
43
|
+
r"""Allows you to preset the language to be used."""
|
|
44
|
+
|
|
45
|
+
metadata: OptionalNullable[Metadata] = UNSET
|
|
46
|
+
r"""Provide any data you like, for example a string or a JSON object. We will save the data alongside the entity. Whenever
|
|
47
|
+
you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
testmode: OptionalNullable[bool] = UNSET
|
|
51
|
+
r"""Whether to create the entity in test mode or live mode.
|
|
52
|
+
|
|
53
|
+
Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
|
|
54
|
+
omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
|
|
55
|
+
`testmode` to `true`.
|
|
56
|
+
"""
|
|
57
|
+
|
|
58
|
+
@model_serializer(mode="wrap")
|
|
59
|
+
def serialize_model(self, handler):
|
|
60
|
+
optional_fields = ["name", "email", "locale", "metadata", "testmode"]
|
|
61
|
+
nullable_fields = ["name", "email", "locale", "metadata", "testmode"]
|
|
62
|
+
null_default_fields = []
|
|
63
|
+
|
|
64
|
+
serialized = handler(self)
|
|
65
|
+
|
|
66
|
+
m = {}
|
|
67
|
+
|
|
68
|
+
for n, f in type(self).model_fields.items():
|
|
69
|
+
k = f.alias or n
|
|
70
|
+
val = serialized.get(k)
|
|
71
|
+
serialized.pop(k, None)
|
|
72
|
+
|
|
73
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
74
|
+
is_set = (
|
|
75
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
76
|
+
or k in null_default_fields
|
|
77
|
+
) # pylint: disable=no-member
|
|
78
|
+
|
|
79
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
80
|
+
m[k] = val
|
|
81
|
+
elif val != UNSET_SENTINEL and (
|
|
82
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
83
|
+
):
|
|
84
|
+
m[k] = val
|
|
85
|
+
|
|
86
|
+
return m
|
|
@@ -0,0 +1,46 @@
|
|
|
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 mollie.types import BaseModel
|
|
6
|
+
import pydantic
|
|
7
|
+
from typing import Optional
|
|
8
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class EntityEventLinksTypedDict(TypedDict):
|
|
12
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
13
|
+
|
|
14
|
+
url: NotRequired[URLTypedDict]
|
|
15
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class EntityEventLinks(BaseModel):
|
|
19
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
20
|
+
|
|
21
|
+
url: Optional[URL] = None
|
|
22
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class EntityEventTypedDict(TypedDict):
|
|
26
|
+
resource: str
|
|
27
|
+
type: int
|
|
28
|
+
created_at: str
|
|
29
|
+
r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
|
|
30
|
+
message: str
|
|
31
|
+
links: NotRequired[EntityEventLinksTypedDict]
|
|
32
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class EntityEvent(BaseModel):
|
|
36
|
+
resource: str
|
|
37
|
+
|
|
38
|
+
type: int
|
|
39
|
+
|
|
40
|
+
created_at: Annotated[str, pydantic.Field(alias="createdAt")]
|
|
41
|
+
r"""The entity's date and time of creation, in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format."""
|
|
42
|
+
|
|
43
|
+
message: str
|
|
44
|
+
|
|
45
|
+
links: Annotated[Optional[EntityEventLinks], pydantic.Field(alias="_links")] = None
|
|
46
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
@@ -0,0 +1,247 @@
|
|
|
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 .url import URL, URLTypedDict
|
|
6
|
+
from enum import Enum
|
|
7
|
+
from mollie import utils
|
|
8
|
+
from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, 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, Optional
|
|
14
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class EntityInvoiceStatus(str, Enum, metaclass=utils.OpenEnumMeta):
|
|
18
|
+
r"""Status of the invoice."""
|
|
19
|
+
|
|
20
|
+
OPEN = "open"
|
|
21
|
+
PAID = "paid"
|
|
22
|
+
OVERDUE = "overdue"
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class EntityInvoiceNetAmountTypedDict(TypedDict):
|
|
26
|
+
r"""Total amount of the invoice, excluding VAT."""
|
|
27
|
+
|
|
28
|
+
currency: str
|
|
29
|
+
r"""A three-character ISO 4217 currency code."""
|
|
30
|
+
value: str
|
|
31
|
+
r"""A string containing an exact monetary amount in the given currency."""
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class EntityInvoiceNetAmount(BaseModel):
|
|
35
|
+
r"""Total amount of the invoice, excluding VAT."""
|
|
36
|
+
|
|
37
|
+
currency: str
|
|
38
|
+
r"""A three-character ISO 4217 currency code."""
|
|
39
|
+
|
|
40
|
+
value: str
|
|
41
|
+
r"""A string containing an exact monetary amount in the given currency."""
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class EntityInvoiceVatAmountTypedDict(TypedDict):
|
|
45
|
+
r"""VAT amount of the invoice. Only applicable to merchants registered in the Netherlands. For EU merchants, VAT will
|
|
46
|
+
be shifted to the recipient (as per article 44 and 196 in the EU VAT Directive 2006/112). For merchants outside
|
|
47
|
+
the EU, no VAT will be charged.
|
|
48
|
+
"""
|
|
49
|
+
|
|
50
|
+
currency: str
|
|
51
|
+
r"""A three-character ISO 4217 currency code."""
|
|
52
|
+
value: str
|
|
53
|
+
r"""A string containing an exact monetary amount in the given currency."""
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class EntityInvoiceVatAmount(BaseModel):
|
|
57
|
+
r"""VAT amount of the invoice. Only applicable to merchants registered in the Netherlands. For EU merchants, VAT will
|
|
58
|
+
be shifted to the recipient (as per article 44 and 196 in the EU VAT Directive 2006/112). For merchants outside
|
|
59
|
+
the EU, no VAT will be charged.
|
|
60
|
+
"""
|
|
61
|
+
|
|
62
|
+
currency: str
|
|
63
|
+
r"""A three-character ISO 4217 currency code."""
|
|
64
|
+
|
|
65
|
+
value: str
|
|
66
|
+
r"""A string containing an exact monetary amount in the given currency."""
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
class EntityInvoiceGrossAmountTypedDict(TypedDict):
|
|
70
|
+
r"""Total amount of the invoice, including VAT."""
|
|
71
|
+
|
|
72
|
+
currency: str
|
|
73
|
+
r"""A three-character ISO 4217 currency code."""
|
|
74
|
+
value: str
|
|
75
|
+
r"""A string containing an exact monetary amount in the given currency."""
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
class EntityInvoiceGrossAmount(BaseModel):
|
|
79
|
+
r"""Total amount of the invoice, including VAT."""
|
|
80
|
+
|
|
81
|
+
currency: str
|
|
82
|
+
r"""A three-character ISO 4217 currency code."""
|
|
83
|
+
|
|
84
|
+
value: str
|
|
85
|
+
r"""A string containing an exact monetary amount in the given currency."""
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
class EntityInvoiceLineTypedDict(TypedDict):
|
|
89
|
+
period: str
|
|
90
|
+
r"""The administrative period in `YYYY-MM` on which the line should be booked."""
|
|
91
|
+
description: str
|
|
92
|
+
r"""Description of the product."""
|
|
93
|
+
count: int
|
|
94
|
+
r"""Number of products invoiced. For example, the number of payments."""
|
|
95
|
+
vat_percentage: int
|
|
96
|
+
r"""VAT percentage rate that applies to this product."""
|
|
97
|
+
amount: AmountTypedDict
|
|
98
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class EntityInvoiceLine(BaseModel):
|
|
102
|
+
period: str
|
|
103
|
+
r"""The administrative period in `YYYY-MM` on which the line should be booked."""
|
|
104
|
+
|
|
105
|
+
description: str
|
|
106
|
+
r"""Description of the product."""
|
|
107
|
+
|
|
108
|
+
count: int
|
|
109
|
+
r"""Number of products invoiced. For example, the number of payments."""
|
|
110
|
+
|
|
111
|
+
vat_percentage: Annotated[int, pydantic.Field(alias="vatPercentage")]
|
|
112
|
+
r"""VAT percentage rate that applies to this product."""
|
|
113
|
+
|
|
114
|
+
amount: Amount
|
|
115
|
+
r"""In v2 endpoints, monetary amounts are represented as objects with a `currency` and `value` field."""
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
class EntityInvoiceLinksTypedDict(TypedDict):
|
|
119
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
120
|
+
|
|
121
|
+
self_: NotRequired[URLTypedDict]
|
|
122
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
123
|
+
pdf: NotRequired[URLTypedDict]
|
|
124
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
125
|
+
documentation: NotRequired[URLTypedDict]
|
|
126
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
class EntityInvoiceLinks(BaseModel):
|
|
130
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
131
|
+
|
|
132
|
+
self_: Annotated[Optional[URL], pydantic.Field(alias="self")] = None
|
|
133
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
134
|
+
|
|
135
|
+
pdf: Optional[URL] = None
|
|
136
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
137
|
+
|
|
138
|
+
documentation: Optional[URL] = None
|
|
139
|
+
r"""In v2 endpoints, URLs are commonly represented as objects with an `href` and `type` field."""
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
class EntityInvoiceTypedDict(TypedDict):
|
|
143
|
+
resource: str
|
|
144
|
+
r"""Indicates that the response contains an invoice object.
|
|
145
|
+
Will always contain the string `invoice` for this endpoint.
|
|
146
|
+
"""
|
|
147
|
+
id: str
|
|
148
|
+
reference: str
|
|
149
|
+
r"""The reference number of the invoice. An example value would be: `2024.10000`."""
|
|
150
|
+
vat_number: Nullable[str]
|
|
151
|
+
r"""The VAT number to which the invoice was issued to, if applicable."""
|
|
152
|
+
status: EntityInvoiceStatus
|
|
153
|
+
net_amount: EntityInvoiceNetAmountTypedDict
|
|
154
|
+
r"""Total amount of the invoice, excluding VAT."""
|
|
155
|
+
vat_amount: EntityInvoiceVatAmountTypedDict
|
|
156
|
+
r"""VAT amount of the invoice. Only applicable to merchants registered in the Netherlands. For EU merchants, VAT will
|
|
157
|
+
be shifted to the recipient (as per article 44 and 196 in the EU VAT Directive 2006/112). For merchants outside
|
|
158
|
+
the EU, no VAT will be charged.
|
|
159
|
+
"""
|
|
160
|
+
gross_amount: EntityInvoiceGrossAmountTypedDict
|
|
161
|
+
r"""Total amount of the invoice, including VAT."""
|
|
162
|
+
lines: List[EntityInvoiceLineTypedDict]
|
|
163
|
+
r"""The collection of products which make up the invoice."""
|
|
164
|
+
issued_at: str
|
|
165
|
+
r"""The invoice date in `YYYY-MM-DD` format."""
|
|
166
|
+
links: EntityInvoiceLinksTypedDict
|
|
167
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
168
|
+
paid_at: NotRequired[Nullable[str]]
|
|
169
|
+
r"""The date on which the invoice was paid, if applicable, in `YYYY-MM-DD` format."""
|
|
170
|
+
due_at: NotRequired[Nullable[str]]
|
|
171
|
+
r"""The date on which the invoice is due, if applicable, in `YYYY-MM-DD` format."""
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
class EntityInvoice(BaseModel):
|
|
175
|
+
resource: str
|
|
176
|
+
r"""Indicates that the response contains an invoice object.
|
|
177
|
+
Will always contain the string `invoice` for this endpoint.
|
|
178
|
+
"""
|
|
179
|
+
|
|
180
|
+
id: str
|
|
181
|
+
|
|
182
|
+
reference: str
|
|
183
|
+
r"""The reference number of the invoice. An example value would be: `2024.10000`."""
|
|
184
|
+
|
|
185
|
+
vat_number: Annotated[Nullable[str], pydantic.Field(alias="vatNumber")]
|
|
186
|
+
r"""The VAT number to which the invoice was issued to, if applicable."""
|
|
187
|
+
|
|
188
|
+
status: Annotated[EntityInvoiceStatus, PlainValidator(validate_open_enum(False))]
|
|
189
|
+
|
|
190
|
+
net_amount: Annotated[EntityInvoiceNetAmount, pydantic.Field(alias="netAmount")]
|
|
191
|
+
r"""Total amount of the invoice, excluding VAT."""
|
|
192
|
+
|
|
193
|
+
vat_amount: Annotated[EntityInvoiceVatAmount, pydantic.Field(alias="vatAmount")]
|
|
194
|
+
r"""VAT amount of the invoice. Only applicable to merchants registered in the Netherlands. For EU merchants, VAT will
|
|
195
|
+
be shifted to the recipient (as per article 44 and 196 in the EU VAT Directive 2006/112). For merchants outside
|
|
196
|
+
the EU, no VAT will be charged.
|
|
197
|
+
"""
|
|
198
|
+
|
|
199
|
+
gross_amount: Annotated[
|
|
200
|
+
EntityInvoiceGrossAmount, pydantic.Field(alias="grossAmount")
|
|
201
|
+
]
|
|
202
|
+
r"""Total amount of the invoice, including VAT."""
|
|
203
|
+
|
|
204
|
+
lines: List[EntityInvoiceLine]
|
|
205
|
+
r"""The collection of products which make up the invoice."""
|
|
206
|
+
|
|
207
|
+
issued_at: Annotated[str, pydantic.Field(alias="issuedAt")]
|
|
208
|
+
r"""The invoice date in `YYYY-MM-DD` format."""
|
|
209
|
+
|
|
210
|
+
links: Annotated[EntityInvoiceLinks, pydantic.Field(alias="_links")]
|
|
211
|
+
r"""An object with several relevant URLs. Every URL object will contain an `href` and a `type` field."""
|
|
212
|
+
|
|
213
|
+
paid_at: Annotated[OptionalNullable[str], pydantic.Field(alias="paidAt")] = UNSET
|
|
214
|
+
r"""The date on which the invoice was paid, if applicable, in `YYYY-MM-DD` format."""
|
|
215
|
+
|
|
216
|
+
due_at: Annotated[OptionalNullable[str], pydantic.Field(alias="dueAt")] = UNSET
|
|
217
|
+
r"""The date on which the invoice is due, if applicable, in `YYYY-MM-DD` format."""
|
|
218
|
+
|
|
219
|
+
@model_serializer(mode="wrap")
|
|
220
|
+
def serialize_model(self, handler):
|
|
221
|
+
optional_fields = ["paidAt", "dueAt"]
|
|
222
|
+
nullable_fields = ["vatNumber", "paidAt", "dueAt"]
|
|
223
|
+
null_default_fields = []
|
|
224
|
+
|
|
225
|
+
serialized = handler(self)
|
|
226
|
+
|
|
227
|
+
m = {}
|
|
228
|
+
|
|
229
|
+
for n, f in type(self).model_fields.items():
|
|
230
|
+
k = f.alias or n
|
|
231
|
+
val = serialized.get(k)
|
|
232
|
+
serialized.pop(k, None)
|
|
233
|
+
|
|
234
|
+
optional_nullable = k in optional_fields and k in nullable_fields
|
|
235
|
+
is_set = (
|
|
236
|
+
self.__pydantic_fields_set__.intersection({n})
|
|
237
|
+
or k in null_default_fields
|
|
238
|
+
) # pylint: disable=no-member
|
|
239
|
+
|
|
240
|
+
if val is not None and val != UNSET_SENTINEL:
|
|
241
|
+
m[k] = val
|
|
242
|
+
elif val != UNSET_SENTINEL and (
|
|
243
|
+
not k in optional_fields or (optional_nullable and is_set)
|
|
244
|
+
):
|
|
245
|
+
m[k] = val
|
|
246
|
+
|
|
247
|
+
return m
|