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:
SuperFakturaAPI
Invoice 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)
Creates a new invoice.
- 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:
object
This 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:
object
This 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