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
string invoice = await ksefClient.GetInvoiceAsync(ksefReferenceNumber, accessToken, cancellationToken);Пример на языке Java:
OnlineSessionIntegrationTest.java
byte[] invoice = ksefClient.getInvoice(ksefNumber, accessToken);Получение списка метаданных счетов-фактур
Возвращает список метаданных счетов-фактур, соответствующих указанным критериям поиска.
Файл _metadata.json в пакете экспорта
В пакете экспорта находится файл _metadata.json, содержащий массив объектов InvoiceMetadata (модель, возвращаемая POST /invoices/query/metadata - "Получение метаданных счетов-фактур").
Пример на языке C#: KSeF.Client.Tests.Core\E2E\Invoice\InvoiceE2ETests.cs
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
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
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
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
InvoiceExportStatusResponse exportStatus = await KsefClient.GetInvoiceExportStatusAsync(
exportInvoicesResponse.ReferenceNumber,
accessToken);Пример на языке Java:
QueryInvoiceIntegrationTest.java
InvoiceExportStatus response = ksefClient.checkStatusAsyncQueryInvoice(referenceNumber, accessToken);