Skip to content

Pobieranie faktur

Pobranie faktur po numerze KSeF

21.08.2025

Zwraca fakturę o podanym numerze KSeF.

GET /invoices/ksef/{ksefNumber}

Przykład w języku C#: KSeF.Client.Tests.Core\E2E\Invoice\InvoiceE2ETests.cs

csharp
string invoice = await ksefClient.GetInvoiceAsync(ksefReferenceNumber, accessToken, cancellationToken);

Przykład w języku Java:

OnlineSessionIntegrationTest.java

java
byte[] invoice = ksefClient.getInvoice(ksefNumber, accessToken);

Pobranie listy metadanych faktur

Zwraca listę metadanych faktur spełniające podane kryteria wyszukiwania.

Plik _metadata.json w paczce eksportu
W paczce eksportu znajduje się plik _metadata.json zawierający tablicę obiektów InvoiceMetadata (model zwracany przez POST /invoices/query/metadata - "Pobieranie metadanych faktur").

POST /invoices/query/metadata

Przykład w języku C#: KSeF.Client.Tests.Core\E2E\Invoice\InvoiceE2ETests.cs

csharp
InvoiceQueryFilters invoiceQueryFilters = new InvoiceQueryFilters
{
    SubjectType = InvoiceSubjectType.Subject1,
    DateRange = new DateRange
    {
        From = DateTime.UtcNow.AddDays(-30),
        To = DateTime.UtcNow,
        DateType = DateType.Issue
    }
};

PagedInvoiceResponse pagedInvoicesResponse = await ksefClient.QueryInvoiceMetadataAsync(
    invoiceQueryFilters, 
    accessToken, 
    pageOffset: 0, 
    pageSize: 10, 
    cancellationToken);

Przykład w języku Java:

QueryInvoiceIntegrationTest.java

java
InvoiceQueryFilters request = new InvoiceQueryFiltersBuilder()
        .withSubjectType(InvoiceQuerySubjectType.SUBJECT1)
        .withDateRange(
                new InvoiceQueryDateRange(InvoiceQueryDateType.INVOICING, OffsetDateTime.now().minusYears(1),
                        OffsetDateTime.now()))
        .build();

QueryInvoiceMetadataResponse response = ksefClient.queryInvoiceMetadata(pageOffset, pageSize, SortOrder.ASC, request, accessToken);

Inicjalizuje asynchroniczne zapytanie o pobranie faktur

Rozpoczyna asynchroniczny proces wyszukiwania faktur w systemie KSeF na podstawie przekazanych filtrów. Wymagane jest przekazanie informacji o szyfrowaniu w polu encryption, które służą wykorzystywane do zaszyfrowania wygenerowanych paczek z fakturami.

POST /invoices/exports

Przykład w języku C#: KSeF.Client.Tests.Core\E2E\Invoice\InvoiceE2ETests.cs

csharp
EncryptionData encryptionData = CryptographyService.GetEncryptionData();

InvoiceQueryFilters query = new InvoiceQueryFilters
{
    DateRange = new DateRange
    {
        From = DateTime.Now.AddDays(-1),
        To = DateTime.Now.AddDays(1),
        DateType = DateType.Invoicing
    },
    SubjectType = InvoiceSubjectType.Subject1
};

InvoiceExportRequest invoiceExportRequest = new InvoiceExportRequest
{
    Encryption = encryptionData.EncryptionInfo,
    Filters = query
};

OperationResponse invoicesForSellerResponse = await KsefClient.ExportInvoicesAsync(
    invoiceExportRequest,
    _accessToken,
    CancellationToken);

Dostępne wartości DateType oraz SubjectType są opisane tutaj.

Faktury w paczce są sortowane rosnąco według typu daty wskazanego w DateRange podczas inicjalizacji eksportu.

Przykład w języku Java:

QueryInvoiceIntegrationTest.java

java
InvoiceExportFilters filters = new InvoicesAsyncQueryFiltersBuilder()
        .withSubjectType(InvoiceQuerySubjectType.SUBJECT1)
        .withDateRange(
                new InvoiceQueryDateRange(InvoiceQueryDateType.INVOICING, OffsetDateTime.now().minusDays(10), OffsetDateTime.now().plusDays(10)))
        .build();

InvoiceExportRequest request = new InvoiceExportRequest(
        new EncryptionInfo(encryptionData.encryptionInfo().getEncryptedSymmetricKey(),
                encryptionData.encryptionInfo().getInitializationVector()), filters);

InitAsyncInvoicesQueryResponse response = ksefClient.initAsyncQueryInvoice(request, accessToken);

Sprawdza status asynchronicznego zapytania o pobranie faktur

Pobiera status wcześniej zainicjalizowanego zapytania asynchronicznego na podstawie identyfikatora operacji. Umożliwia śledzenie postępu przetwarzania zapytania oraz pobranie gotowych paczek z wynikami, jeśli są już dostępne.

GET /invoices/exports/{referenceNumber}

Przykład w języku C#: KSeF.Client.Tests.Core\E2E\Invoice\InvoiceE2ETests.cs

csharp
InvoiceExportStatusResponse exportStatus = await KsefClient.GetInvoiceExportStatusAsync(
    exportInvoicesResponse.ReferenceNumber,
    accessToken);

Przykład w języku Java:

QueryInvoiceIntegrationTest.java

java
InvoiceExportStatus response = ksefClient.checkStatusAsyncQueryInvoice(referenceNumber, accessToken);

Powiązane dokumenty