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,256 @@
|
|
|
1
|
+
"""Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
from .sales_invoice_discount import SalesInvoiceDiscount, SalesInvoiceDiscountTypedDict
|
|
5
|
+
from .sales_invoice_email_details import (
|
|
6
|
+
SalesInvoiceEmailDetails,
|
|
7
|
+
SalesInvoiceEmailDetailsTypedDict,
|
|
8
|
+
)
|
|
9
|
+
from .sales_invoice_line_item import SalesInvoiceLineItem, SalesInvoiceLineItemTypedDict
|
|
10
|
+
from .sales_invoice_payment_details import (
|
|
11
|
+
SalesInvoicePaymentDetails,
|
|
12
|
+
SalesInvoicePaymentDetailsTypedDict,
|
|
13
|
+
)
|
|
14
|
+
from .sales_invoice_payment_term import SalesInvoicePaymentTerm
|
|
15
|
+
from .sales_invoice_recipient import (
|
|
16
|
+
SalesInvoiceRecipient,
|
|
17
|
+
SalesInvoiceRecipientTypedDict,
|
|
18
|
+
)
|
|
19
|
+
from .sales_invoice_status import SalesInvoiceStatus
|
|
20
|
+
from .sales_invoice_vat_mode import SalesInvoiceVatMode
|
|
21
|
+
from .sales_invoice_vat_scheme import SalesInvoiceVatScheme
|
|
22
|
+
from mollie.types import BaseModel, Nullable, OptionalNullable, UNSET, UNSET_SENTINEL
|
|
23
|
+
import pydantic
|
|
24
|
+
from pydantic import model_serializer
|
|
25
|
+
from typing import List, Optional
|
|
26
|
+
from typing_extensions import Annotated, NotRequired, TypedDict
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
class SalesInvoiceRequestMetadataTypedDict(TypedDict):
|
|
30
|
+
r"""Provide any data you like as a JSON object. We will save the data alongside the entity. Whenever
|
|
31
|
+
you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class SalesInvoiceRequestMetadata(BaseModel):
|
|
36
|
+
r"""Provide any data you like as a JSON object. We will save the data alongside the entity. Whenever
|
|
37
|
+
you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class SalesInvoiceRequestTypedDict(TypedDict):
|
|
42
|
+
status: SalesInvoiceStatus
|
|
43
|
+
r"""The status for the invoice to end up in.
|
|
44
|
+
|
|
45
|
+
A `draft` invoice is not paid or not sent and can be updated after creation. Setting it to `issued` sends it to
|
|
46
|
+
the recipient so they may then pay through our payment system. To skip our payment process, set this to `paid` to
|
|
47
|
+
mark it as paid. It can then subsequently be sent as well, same as with `issued`.
|
|
48
|
+
|
|
49
|
+
A status value that cannot be set but can be returned is `canceled`, for invoices which were
|
|
50
|
+
issued, but then canceled. Currently this can only be done for invoices created in the dashboard.
|
|
51
|
+
|
|
52
|
+
Dependent parameters:
|
|
53
|
+
- `paymentDetails` is required if invoice should be set directly to `paid`
|
|
54
|
+
- `customerId` and `mandateId` are required if a recurring payment should be used to set the invoice to `paid`
|
|
55
|
+
- `emailDetails` optional for `issued` and `paid` to send the invoice by email
|
|
56
|
+
"""
|
|
57
|
+
recipient_identifier: str
|
|
58
|
+
r"""An identifier tied to the recipient data. This should be a unique value based on data your system contains,
|
|
59
|
+
so that both you and us know who we're referring to. It is a value you provide to us so that recipient management
|
|
60
|
+
is not required to send a first invoice to a recipient.
|
|
61
|
+
"""
|
|
62
|
+
recipient: Nullable[SalesInvoiceRecipientTypedDict]
|
|
63
|
+
lines: Nullable[List[SalesInvoiceLineItemTypedDict]]
|
|
64
|
+
r"""Provide the line items for the invoice. Each line contains details such as a description of the item
|
|
65
|
+
ordered and its price.
|
|
66
|
+
|
|
67
|
+
All lines must have the same currency as the invoice.
|
|
68
|
+
"""
|
|
69
|
+
testmode: NotRequired[Nullable[bool]]
|
|
70
|
+
r"""Whether to create the entity in test mode or live mode.
|
|
71
|
+
|
|
72
|
+
Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
|
|
73
|
+
omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
|
|
74
|
+
`testmode` to `true`.
|
|
75
|
+
"""
|
|
76
|
+
profile_id: NotRequired[Nullable[str]]
|
|
77
|
+
r"""The identifier referring to the [profile](get-profile) this entity belongs to.
|
|
78
|
+
|
|
79
|
+
Most API credentials are linked to a single profile. In these cases the `profileId` can be omitted in the creation
|
|
80
|
+
request. For organization-level credentials such as OAuth access tokens however, the `profileId` parameter is
|
|
81
|
+
required.
|
|
82
|
+
"""
|
|
83
|
+
vat_scheme: NotRequired[SalesInvoiceVatScheme]
|
|
84
|
+
r"""The VAT scheme to create the invoice for. You must be enrolled with One Stop Shop enabled to use it."""
|
|
85
|
+
vat_mode: NotRequired[SalesInvoiceVatMode]
|
|
86
|
+
r"""The VAT mode to use for VAT calculation. `exclusive` mode means we will apply the relevant VAT on top of the
|
|
87
|
+
price. `inclusive` means the prices you are providing to us already contain the VAT you want to apply.
|
|
88
|
+
"""
|
|
89
|
+
memo: NotRequired[Nullable[str]]
|
|
90
|
+
r"""A free-form memo you can set on the invoice, and will be shown on the invoice PDF."""
|
|
91
|
+
metadata: NotRequired[Nullable[SalesInvoiceRequestMetadataTypedDict]]
|
|
92
|
+
r"""Provide any data you like as a JSON object. We will save the data alongside the entity. Whenever
|
|
93
|
+
you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
|
|
94
|
+
"""
|
|
95
|
+
payment_term: NotRequired[Nullable[SalesInvoicePaymentTerm]]
|
|
96
|
+
r"""The payment term to be set on the invoice."""
|
|
97
|
+
payment_details: NotRequired[SalesInvoicePaymentDetailsTypedDict]
|
|
98
|
+
email_details: NotRequired[Nullable[SalesInvoiceEmailDetailsTypedDict]]
|
|
99
|
+
customer_id: NotRequired[str]
|
|
100
|
+
r"""The identifier referring to the [customer](get-customer) you want to attempt an automated payment for. If
|
|
101
|
+
provided, `mandateId` becomes required as well. Only allowed for invoices with status `paid`.
|
|
102
|
+
"""
|
|
103
|
+
mandate_id: NotRequired[str]
|
|
104
|
+
r"""The identifier referring to the [mandate](get-mandate) you want to use for the automated payment. If provided,
|
|
105
|
+
`customerId` becomes required as well. Only allowed for invoices with status `paid`.
|
|
106
|
+
"""
|
|
107
|
+
discount: NotRequired[Nullable[SalesInvoiceDiscountTypedDict]]
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
class SalesInvoiceRequest(BaseModel):
|
|
111
|
+
status: SalesInvoiceStatus
|
|
112
|
+
r"""The status for the invoice to end up in.
|
|
113
|
+
|
|
114
|
+
A `draft` invoice is not paid or not sent and can be updated after creation. Setting it to `issued` sends it to
|
|
115
|
+
the recipient so they may then pay through our payment system. To skip our payment process, set this to `paid` to
|
|
116
|
+
mark it as paid. It can then subsequently be sent as well, same as with `issued`.
|
|
117
|
+
|
|
118
|
+
A status value that cannot be set but can be returned is `canceled`, for invoices which were
|
|
119
|
+
issued, but then canceled. Currently this can only be done for invoices created in the dashboard.
|
|
120
|
+
|
|
121
|
+
Dependent parameters:
|
|
122
|
+
- `paymentDetails` is required if invoice should be set directly to `paid`
|
|
123
|
+
- `customerId` and `mandateId` are required if a recurring payment should be used to set the invoice to `paid`
|
|
124
|
+
- `emailDetails` optional for `issued` and `paid` to send the invoice by email
|
|
125
|
+
"""
|
|
126
|
+
|
|
127
|
+
recipient_identifier: Annotated[str, pydantic.Field(alias="recipientIdentifier")]
|
|
128
|
+
r"""An identifier tied to the recipient data. This should be a unique value based on data your system contains,
|
|
129
|
+
so that both you and us know who we're referring to. It is a value you provide to us so that recipient management
|
|
130
|
+
is not required to send a first invoice to a recipient.
|
|
131
|
+
"""
|
|
132
|
+
|
|
133
|
+
recipient: Nullable[SalesInvoiceRecipient]
|
|
134
|
+
|
|
135
|
+
lines: Nullable[List[SalesInvoiceLineItem]]
|
|
136
|
+
r"""Provide the line items for the invoice. Each line contains details such as a description of the item
|
|
137
|
+
ordered and its price.
|
|
138
|
+
|
|
139
|
+
All lines must have the same currency as the invoice.
|
|
140
|
+
"""
|
|
141
|
+
|
|
142
|
+
testmode: OptionalNullable[bool] = UNSET
|
|
143
|
+
r"""Whether to create the entity in test mode or live mode.
|
|
144
|
+
|
|
145
|
+
Most API credentials are specifically created for either live mode or test mode, in which case this parameter can be
|
|
146
|
+
omitted. For organization-level credentials such as OAuth access tokens, you can enable test mode by setting
|
|
147
|
+
`testmode` to `true`.
|
|
148
|
+
"""
|
|
149
|
+
|
|
150
|
+
profile_id: Annotated[OptionalNullable[str], pydantic.Field(alias="profileId")] = (
|
|
151
|
+
UNSET
|
|
152
|
+
)
|
|
153
|
+
r"""The identifier referring to the [profile](get-profile) this entity belongs to.
|
|
154
|
+
|
|
155
|
+
Most API credentials are linked to a single profile. In these cases the `profileId` can be omitted in the creation
|
|
156
|
+
request. For organization-level credentials such as OAuth access tokens however, the `profileId` parameter is
|
|
157
|
+
required.
|
|
158
|
+
"""
|
|
159
|
+
|
|
160
|
+
vat_scheme: Annotated[
|
|
161
|
+
Optional[SalesInvoiceVatScheme], pydantic.Field(alias="vatScheme")
|
|
162
|
+
] = None
|
|
163
|
+
r"""The VAT scheme to create the invoice for. You must be enrolled with One Stop Shop enabled to use it."""
|
|
164
|
+
|
|
165
|
+
vat_mode: Annotated[
|
|
166
|
+
Optional[SalesInvoiceVatMode], pydantic.Field(alias="vatMode")
|
|
167
|
+
] = None
|
|
168
|
+
r"""The VAT mode to use for VAT calculation. `exclusive` mode means we will apply the relevant VAT on top of the
|
|
169
|
+
price. `inclusive` means the prices you are providing to us already contain the VAT you want to apply.
|
|
170
|
+
"""
|
|
171
|
+
|
|
172
|
+
memo: OptionalNullable[str] = UNSET
|
|
173
|
+
r"""A free-form memo you can set on the invoice, and will be shown on the invoice PDF."""
|
|
174
|
+
|
|
175
|
+
metadata: OptionalNullable[SalesInvoiceRequestMetadata] = UNSET
|
|
176
|
+
r"""Provide any data you like as a JSON object. We will save the data alongside the entity. Whenever
|
|
177
|
+
you fetch the entity with our API, we will also include the metadata. You can use up to approximately 1kB.
|
|
178
|
+
"""
|
|
179
|
+
|
|
180
|
+
payment_term: Annotated[
|
|
181
|
+
OptionalNullable[SalesInvoicePaymentTerm], pydantic.Field(alias="paymentTerm")
|
|
182
|
+
] = UNSET
|
|
183
|
+
r"""The payment term to be set on the invoice."""
|
|
184
|
+
|
|
185
|
+
payment_details: Annotated[
|
|
186
|
+
Optional[SalesInvoicePaymentDetails], pydantic.Field(alias="paymentDetails")
|
|
187
|
+
] = None
|
|
188
|
+
|
|
189
|
+
email_details: Annotated[
|
|
190
|
+
OptionalNullable[SalesInvoiceEmailDetails], pydantic.Field(alias="emailDetails")
|
|
191
|
+
] = UNSET
|
|
192
|
+
|
|
193
|
+
customer_id: Annotated[Optional[str], pydantic.Field(alias="customerId")] = None
|
|
194
|
+
r"""The identifier referring to the [customer](get-customer) you want to attempt an automated payment for. If
|
|
195
|
+
provided, `mandateId` becomes required as well. Only allowed for invoices with status `paid`.
|
|
196
|
+
"""
|
|
197
|
+
|
|
198
|
+
mandate_id: Annotated[Optional[str], pydantic.Field(alias="mandateId")] = None
|
|
199
|
+
r"""The identifier referring to the [mandate](get-mandate) you want to use for the automated payment. If provided,
|
|
200
|
+
`customerId` becomes required as well. Only allowed for invoices with status `paid`.
|
|
201
|
+
"""
|
|
202
|
+
|
|
203
|
+
discount: OptionalNullable[SalesInvoiceDiscount] = UNSET
|
|
204
|
+
|
|
205
|
+
@model_serializer(mode="wrap")
|
|
206
|
+
def serialize_model(self, handler):
|
|
207
|
+
optional_fields = [
|
|
208
|
+
"testmode",
|
|
209
|
+
"profileId",
|
|
210
|
+
"vatScheme",
|
|
211
|
+
"vatMode",
|
|
212
|
+
"memo",
|
|
213
|
+
"metadata",
|
|
214
|
+
"paymentTerm",
|
|
215
|
+
"paymentDetails",
|
|
216
|
+
"emailDetails",
|
|
217
|
+
"customerId",
|
|
218
|
+
"mandateId",
|
|
219
|
+
"discount",
|
|
220
|
+
]
|
|
221
|
+
nullable_fields = [
|
|
222
|
+
"testmode",
|
|
223
|
+
"profileId",
|
|
224
|
+
"memo",
|
|
225
|
+
"metadata",
|
|
226
|
+
"paymentTerm",
|
|
227
|
+
"emailDetails",
|
|
228
|
+
"recipient",
|
|
229
|
+
"lines",
|
|
230
|
+
"discount",
|
|
231
|
+
]
|
|
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
|