superfaktura.invoice module
Invoice Module.
This module provides classes and functions for working with invoices in the SuperFaktura API. It allows for retrieving, creating, updating, and deleting invoices.
- Classes:
InvoiceModel: Dataclass representing an invoice.
InvoiceItem: Dataclass representing an invoice item.
Invoice: Class for interacting with invoices.
- Exceptions:
NoDefaultBankAccountException: Exception for when no default bank account is found.
- Functions:
(none)
- Usage:
import superfaktura.invoice
# Create an instance of Invoice invoice = superfaktura.invoice.Invoice()
# Create an invoice invoice.add(
- invoice=superfaktura.invoice.InvoiceModel(
type=superfaktura.invoice.InvoiceType.PROFORMA, name=”Invoice 3”, due=superfaktura.invoice.Date(“2025-02-01”), invoice_currency=superfaktura.invoice.Currencies.CZK, header_comment=”We invoice you for services”, bank_accounts=[bank.default().as_dict()],
), items=[
- superfaktura.invoice.InvoiceItem(name=”Services”, unit_price=100, quantity=1,
unit=”ks”, tax=21),
- superfaktura.invoice.InvoiceItem(name=”SIM card”, unit_price=50, quantity=1,
tax=21, unit=”ks”),
- superfaktura.invoice.InvoiceItem(
name=”SIM card 2”, unit_price=75, quantity=1, tax=21, unit=”ks”
),
], contact=superfaktura.client_contacts.ClientContactModel(
name=”Richard Kubíček”, email=”kubicekr@eledio.com”, phone=”+420 123 456 789”, address=”Jaroslava Foglara 861/1”, ico=”123”, update=True, country_id=57,
),
)
- class superfaktura.invoice.Invoice
Bases:
SuperFakturaAPIInvoice Class.
This class provides methods for interacting with invoices in the SuperFaktura API. It allows for retrieving, creating, updating, and deleting invoices.
- - add
Creates a new invoice.
- - get
Retrieves an invoice by ID.
- - list
Retrieves a list of invoices.
- - update
Updates an existing invoice.
- Usage:
invoice = Invoice() invoice.add(
- invoice=InvoiceModel(
type=InvoiceType.PROFORMA, name=”Invoice 3”, due=Date(“2025-02-01”), invoice_currency=Currencies.CZK, header_comment=”We invoice you for services”, bank_accounts=[bank.default().as_dict()],
), items=[
InvoiceItem(name=”Services”, unit_price=100, quantity=1, unit=”ks”, tax=21), InvoiceItem(name=”SIM card”, unit_price=50, quantity=1, tax=21, unit=”ks”), InvoiceItem(
name=”SIM card 2”, unit_price=75, quantity=1, tax=21, unit=”ks”
),
], contact=ClientContactModel(
name=”Richard Kubíček”, email=”kubicekr@eledio.com”, phone=”+420 123 456 789”, address=”Jaroslava Foglara 861/1”, ico=”123”, update=True, country_id=57,
),
)
- add(invoice_model: InvoiceModel, items: List[InvoiceItem], contact: ClientContactModel, invoice_settings: InvoiceSettings | None) InvoiceRespModel
Adds a new invoice.
- Parameters:
invoice_model (InvoiceModel) – The invoice model.
items (List[InvoiceItem]) – List of invoice items.
contact (ClientContactModel) – The client contact model.
invoice_settings (Optional[InvoiceSettings]) – The invoice settings.
- Returns:
The response model for the invoice. :param invoice_settings: :param contact: :param items: :param invoice_model:
- Return type:
- get_pdf(invoice: InvoiceRespModel, language: str = 'cze') bytes
Retrieves the PDF of the invoice.
- Parameters:
invoice (InvoiceRespModel) – The response model for the invoice.
language (str) – The language for the PDF.
- Returns:
A bytes containing the PDF data.
- Return type:
bytes
- class superfaktura.invoice.InvoiceItem(name: str, unit_price: float, description: str | None = None, discount: float | None = 0, discount_description: str | None = None, load_data_from_stock: int = 0, quantity: float | None = 1, sku: str | None = None, stock_item_id: int | None = None, tax: float | None = None, unit: str | None = None, use_document_currency: int | None = 0)
Bases:
objectThis dataclass represents an invoice item in the SuperFaktura API.
- as_dict() dict
Returns a dictionary representation of the InvoiceItem.
- description: str | None = None
- discount: float | None = 0
- discount_description: str | None = None
- load_data_from_stock: int = 0
- name: str
- quantity: float | None = 1
- sku: str | None = None
- stock_item_id: int | None = None
- tax: float | None = None
- unit: str | None = None
- unit_price: float
- use_document_currency: int | None = 0
- class superfaktura.invoice.InvoiceModel(add_rounding_item: int | None = 0, already_paid: int | None = None, bank_accounts: List[dict] | None = None, comment: str | None = None, constant: str | None = None, created: Date | None = None, delivery: Date | None = None, delivery_type: str | None = None, deposit: float | None = None, discount: float | None = 0, discount_total: float | None = None, due: Date | None = None, estimate_id: int | None = None, header_comment: str | None = None, internal_comment: str | None = None, invoice_currency: str | None = None, invoice_no_formatted: str | None = None, issued_by: str | None = None, issued_by_email: str | None = None, issued_by_phone: str | None = None, issued_by_web: str | None = None, logo_id: int | None = None, mark_sent: int | None = None, mark_sent_message: str | None = None, mark_sent_subject: str | None = None, name: str | None = None, order_no: str | None = None, parent_id: int | None = None, paydate: Date | None = None, payment_type: str | None = None, proforma_id: str | None = None, rounding: str | None = None, sequence_id: int | None = None, specific: str | None = None, tax_document: int | None = None, type: str | None = None, variable: str | None = None, vat_transfer: int | None = None)
Bases:
objectThis dataclass represents an invoice in the SuperFaktura API.
- add_rounding_item: int | None = 0
- already_paid: int | None = None
- as_dict() dict
Returns a dictionary representation of the InvoiceModel.
- bank_accounts: List[dict] | None = None
- comment: str | None = None
- constant: str | None = None
- delivery_type: str | None = None
- deposit: float | None = None
- discount: float | None = 0
- discount_total: float | None = None
- estimate_id: int | None = None
- header_comment: str | None = None
- internal_comment: str | None = None
- invoice_currency: str | None = None
- invoice_no_formatted: str | None = None
- issued_by: str | None = None
- issued_by_email: str | None = None
- issued_by_phone: str | None = None
- issued_by_web: str | None = None
- logo_id: int | None = None
- mark_sent: int | None = None
- mark_sent_message: str | None = None
- mark_sent_subject: str | None = None
- name: str | None = None
- order_no: str | None = None
- parent_id: int | None = None
- payment_type: str | None = None
- proforma_id: str | None = None
- rounding: str | None = None
- sequence_id: int | None = None
- specific: str | None = None
- tax_document: int | None = None
- to_dict() dict
Converts the Record object to a dictionary for JSON serialization.
- type: str | None = None
- variable: str | None = None
- vat_transfer: int | None = None
- class superfaktura.invoice.InvoiceRespModel(error: int, error_message: str, invoice_id: int | None = None, invoice_token: str | None = None)
Bases:
objectThis dataclass represents the response model for an invoice in the SuperFaktura API.
- - error
The error code.
- Type:
int
- - error_message
The error message.
- Type:
str
- - invoice_id
The ID of the invoice.
- Type:
Optional[int]
- - invoice_token
The token of
- Type:
Optional[str]
- error: int
- error_message: str
- invoice_id: int | None = None
- invoice_token: str | None = None
- class superfaktura.invoice.InvoiceSettings(language: str | None = None, bysquare: bool | None = None, callback_payment: str | None = None, online_payment: bool | None = None, payment_info: bool | None = None, paypal: bool | None = None, show_prices: bool | None = None, signature: bool | None = None, summary_bg_color: str | None = None)
Bases:
objectThis dataclass represents the settings for an invoice in the SuperFaktura API.
- as_dict() dict
Returns a dictionary representation of the ClientContactModel.
- bysquare: bool | None = None
- callback_payment: str | None = None
- language: str | None = None
- online_payment: bool | None = None
- payment_info: bool | None = None
- paypal: bool | None = None
- show_prices: bool | None = None
- signature: bool | None = None
- summary_bg_color: str | None = None