Skip to content

Translation. Original: pobieranie-faktur/pobieranie-faktur.md

Завантаження рахунків-фактур

Отримання рахунків-фактур за номером KSeF

21.08.2025

Повертає рахунок-фактуру з вказаним номером KSeF.

GET /invoices/ksef/{ksefNumber}

Приклад мовою C#: KSeF.Client.Tests.Core\E2E\Invoice\InvoiceE2ETests.cs

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

Приклад мовою Java:

OnlineSessionIntegrationTest.java

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

Отримання списку метаданих рахунків-фактур

Повертає список метаданих рахунків-фактур, що відповідають заданим критеріям пошуку.

Файл _metadata.json у пакеті експорту
У пакеті експорту знаходиться файл _metadata.json, що містить масив об'єктів InvoiceMetadata (модель, що повертається POST /invoices/query/metadata - "Отримання метаданих рахунків-фактур").

POST /invoices/query/metadata

Приклад мовою 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);

Приклад мовою 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);

Ініціалізує асинхронний запит на завантаження рахунків-фактур

Розпочинає асинхронний процес пошуку рахунків-фактур у системі KSeF на основі переданих фільтрів. Необхідно передати інформацію про шифрування в полі encryption, яка використовується для шифрування згенерованих пакетів з рахунками-фактурами.

POST /invoices/exports

Приклад мовою 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);

Доступні значення DateType та SubjectType описані тут.

Рахунки-фактури в пакеті сортуються у зростаючому порядку за типом дати, вказаним в DateRange під час ініціалізації експорту.

Приклад мовою 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);

Перевіряє статус асинхронного запиту на завантаження рахунків-фактур

Отримує статус раніше ініціалізованого асинхронного запиту на основі ідентифікатора операції. Дозволяє відстежувати прогрес обробки запиту та завантажувати готові пакети з результатами, якщо вони вже доступні.

GET /invoices/exports/{referenceNumber}

Приклад мовою C#: KSeF.Client.Tests.Core\E2E\Invoice\InvoiceE2ETests.cs

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

Приклад мовою Java:

QueryInvoiceIntegrationTest.java

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

Пов'язані документи