Skip to main content

Search OfficeIMO

Enter a topic, API type, or PowerShell command.

Documentation Search all OfficeIMO/

API Reference

Class

KsefClient

Namespace OfficeIMO.Invoicing.KSeF
Assembly OfficeIMO.Invoicing.KSeF
Implements
IDisposable
Modifiers sealed

A bounded KSeF v2 client. It does not retry mutations or follow redirects. An injected transport is a trusted boundary and must preserve these rules.

Inheritance

  • Object
  • KsefClient

Constructors

public KsefClient(KsefEnvironment environment = Test, HttpMessageHandler handler = null, TimeProvider clock = null, Nullable<TimeSpan> requestTimeout = null) #

Creates a client for an explicit official environment. The optional handler and clock support integration hosts and credential-free tests.

Parameters

environment OfficeIMO.Invoicing.KSeF.KsefEnvironment = Test optionalposition: 0
handler System.Net.Http.HttpMessageHandler = null optionalposition: 1
clock System.TimeProvider = null optionalposition: 2
requestTimeout System.Nullable{System.TimeSpan} = null optionalposition: 3

Methods

public async Task<KsefAuthentication> BeginTokenAuthenticationAsync(KsefContext context, KsefSecret ksefToken, CancellationToken cancellationToken = default) #
Returns: Task<KsefAuthentication>

Starts token authentication using the server challenge timestamp and active token-encryption RSA certificate. Success is asynchronous.

Parameters

context OfficeIMO.Invoicing.KSeF.KsefContext requiredposition: 0
ksefToken OfficeIMO.Invoicing.KSeF.KsefSecret requiredposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public async Task<String> CheckEncryptionKeyAsync(CancellationToken cancellationToken = default) #
Returns: Task<String>

Checks the current public encryption certificates without credentials, returning the verified active RSA SPKI selector.

Parameters

cancellationToken System.Threading.CancellationToken = default optionalposition: 0
public async Task CloseOnlineSessionAsync(KsefCredentials credentials, KsefOnlineSession session, CancellationToken cancellationToken = default) #
Returns: Task

Closes a session once. An ambiguous close stops further mutation; status remains readable by reference.

Parameters

credentials OfficeIMO.Invoicing.KSeF.KsefCredentials requiredposition: 0
session OfficeIMO.Invoicing.KSeF.KsefOnlineSession requiredposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public virtual Void Dispose() #
Returns: Void

Disposes the owned HTTP transport; caller-owned credentials and sessions must be disposed separately.

public Task<KsefStatus> GetAuthenticationStatusAsync(KsefAuthentication authentication, CancellationToken cancellationToken = default) #
Returns: Task<KsefStatus>

Reads authentication state without redeeming tokens or replaying authentication.

Parameters

authentication OfficeIMO.Invoicing.KSeF.KsefAuthentication requiredposition: 0
cancellationToken System.Threading.CancellationToken = default optionalposition: 1
public async Task<KsefReceipt> GetInvoiceReceiptAsync(KsefCredentials credentials, KsefSubmission submission, CancellationToken cancellationToken = default) #
Returns: Task<KsefReceipt>

Reads UPO through the direct authenticated official route after accepted status, with separate pinned schema and exact context/session/document binding results.

Parameters

credentials OfficeIMO.Invoicing.KSeF.KsefCredentials requiredposition: 0
submission OfficeIMO.Invoicing.KSeF.KsefSubmission requiredposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public Task<KsefInvoiceStatus> GetInvoiceStatusAsync(KsefCredentials credentials, KsefSubmission submission, CancellationToken cancellationToken = default) #
Returns: Task<KsefInvoiceStatus>

Reads invoice status and rejects a response bound to a different reference or plaintext hash.

Parameters

credentials OfficeIMO.Invoicing.KSeF.KsefCredentials requiredposition: 0
submission OfficeIMO.Invoicing.KSeF.KsefSubmission requiredposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public Task<KsefInvoicePage> GetSessionInvoicesAsync(KsefCredentials credentials, String sessionReference, Int32 pageSize = 100, String continuationToken = null, CancellationToken cancellationToken = default) #
Returns: Task<KsefInvoicePage>

Lists one bounded page for explicit ambiguous-submission reconciliation. It never resends an invoice and never follows a remote download URL.

Parameters

credentials OfficeIMO.Invoicing.KSeF.KsefCredentials requiredposition: 0
sessionReference System.String requiredposition: 1
pageSize System.Int32 = 100 optionalposition: 2
continuationToken System.String = null optionalposition: 3
cancellationToken System.Threading.CancellationToken = default optionalposition: 4
public Task<KsefStatus> GetSessionStatusAsync(KsefCredentials credentials, String sessionReference, CancellationToken cancellationToken = default) #
Returns: Task<KsefStatus>

Reads a session status by reference, including after close or an ambiguous mutation.

Parameters

credentials OfficeIMO.Invoicing.KSeF.KsefCredentials requiredposition: 0
sessionReference System.String requiredposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
public async Task<KsefOnlineSession> OpenOnlineSessionAsync(KsefCredentials credentials, CancellationToken cancellationToken = default) #
Returns: Task<KsefOnlineSession>

Opens an online FA(3) session with a fresh AES-256 key/IV, wrapped using the active official RSA certificate.

Parameters

credentials OfficeIMO.Invoicing.KSeF.KsefCredentials requiredposition: 0
cancellationToken System.Threading.CancellationToken = default optionalposition: 1
public async Task<KsefCredentials> RedeemAsync(KsefAuthentication authentication, CancellationToken cancellationToken = default) #
Returns: Task<KsefCredentials>

Redeems a successful authentication once. Lost/malformed responses leave this handle consumed because server-side redemption may already have happened.

Parameters

authentication OfficeIMO.Invoicing.KSeF.KsefAuthentication requiredposition: 0
cancellationToken System.Threading.CancellationToken = default optionalposition: 1
public async Task RefreshAsync(KsefCredentials credentials, CancellationToken cancellationToken = default) #
Returns: Task

Refreshes access credentials using the current refresh token. No automatic retry occurs.

Parameters

credentials OfficeIMO.Invoicing.KSeF.KsefCredentials requiredposition: 0
cancellationToken System.Threading.CancellationToken = default optionalposition: 1
public KsefSubmission ResumeSubmission(KsefCredentials credentials, String sessionReference, String invoiceReference, String invoiceHash) #
Returns: KsefSubmission

Restores a status/receipt reference after a process restart using newly authenticated credentials. This neither reopens a session nor resubmits XML.

Parameters

credentials OfficeIMO.Invoicing.KSeF.KsefCredentials requiredposition: 0
sessionReference System.String requiredposition: 1
invoiceReference System.String requiredposition: 2
invoiceHash System.String requiredposition: 3
public async Task<KsefSubmission> SubmitAsync(KsefCredentials credentials, KsefOnlineSession session, Byte[] fa3Xml, Fa3SchemaValidator validator, CancellationToken cancellationToken = default) #
Returns: Task<KsefSubmission>

Validates a bounded defensive FA(3) snapshot before network mutation, then submits its exact encrypted bytes and digests. A returned reference is not acceptance.

Parameters

credentials OfficeIMO.Invoicing.KSeF.KsefCredentials requiredposition: 0
session OfficeIMO.Invoicing.KSeF.KsefOnlineSession requiredposition: 1
fa3Xml System.Byte[] requiredposition: 2
validator OfficeIMO.Invoicing.Validation.Fa3SchemaValidator requiredposition: 3
cancellationToken System.Threading.CancellationToken = default optionalposition: 4

Properties

public KsefEnvironment Environment { get; } #

Selected official environment.