Quickstart
Ten przykład pokazuje podstawowy przepływ w środowisku TEST: klient, uwierzytelnienie, wysyłka faktury FA(3) i eksport metadanych.
Instalacja
Dział zatytułowany „Instalacja”pip install ksef2ksef2 wymaga Pythona 3.12 lub nowszego.
Wyślij fakturę
Dział zatytułowany „Wyślij fakturę”from datetime import datetime, timedelta, timezonefrom pathlib import Path
from ksef2 import Client, Environment, FormSchemafrom ksef2.domain.models import InvoicesFilter
NIP = "5261040828"
client = Client(Environment.TEST)auth = client.authentication.with_test_certificate(nip=NIP)
with auth.online_session(form_code=FormSchema.FA3) as session: status = session.send_invoice_and_wait( invoice_xml=Path("invoice.xml").read_bytes(), timeout=60.0, ) print(status.ksef_number)
filters = InvoicesFilter( role="seller", date_type="issue_date", date_from=datetime.now(tz=timezone.utc) - timedelta(days=1), date_to=datetime.now(tz=timezone.utc), amount_type="brutto",)
export = auth.invoices.schedule_export(filters=filters)package = auth.invoices.wait_for_export_package( reference_number=export.reference_number, timeout=120.0,)
for path in auth.invoices.fetch_package( package=package, export=export, target_directory="downloads",): print(path)Wersja async
Dział zatytułowany „Wersja async”import asynciofrom pathlib import Path
from ksef2 import AsyncClient, Environment, FormSchema
async def main() -> None: async with AsyncClient(Environment.TEST) as client: auth = await client.authentication.with_test_certificate(nip="5261040828")
async with auth.online_session(form_code=FormSchema.FA3) as session: status = await session.send_invoice_and_wait( invoice_xml=Path("invoice.xml").read_bytes(), timeout=60.0, ) print(status.ksef_number)
asyncio.run(main())