API Reference
KsefClient
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
- handler System.Net.Http.HttpMessageHandler = null
- clock System.TimeProvider = null
- requestTimeout System.Nullable{System.TimeSpan} = null
Methods
public async Task<KsefAuthentication> BeginTokenAuthenticationAsync(KsefContext context, KsefSecret ksefToken, CancellationToken cancellationToken = default) #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
- ksefToken OfficeIMO.Invoicing.KSeF.KsefSecret
- cancellationToken System.Threading.CancellationToken = default
public async Task<String> CheckEncryptionKeyAsync(CancellationToken cancellationToken = default) #Task<String>Checks the current public encryption certificates without credentials, returning the verified active RSA SPKI selector.
Parameters
- cancellationToken System.Threading.CancellationToken = default
public async Task CloseOnlineSessionAsync(KsefCredentials credentials, KsefOnlineSession session, CancellationToken cancellationToken = default) #TaskCloses a session once. An ambiguous close stops further mutation; status remains readable by reference.
Parameters
- credentials OfficeIMO.Invoicing.KSeF.KsefCredentials
- session OfficeIMO.Invoicing.KSeF.KsefOnlineSession
- cancellationToken System.Threading.CancellationToken = default
public virtual Void Dispose() #VoidDisposes the owned HTTP transport; caller-owned credentials and sessions must be disposed separately.
public Task<KsefStatus> GetAuthenticationStatusAsync(KsefAuthentication authentication, CancellationToken cancellationToken = default) #Task<KsefStatus>Reads authentication state without redeeming tokens or replaying authentication.
Parameters
- authentication OfficeIMO.Invoicing.KSeF.KsefAuthentication
- cancellationToken System.Threading.CancellationToken = default
public async Task<KsefReceipt> GetInvoiceReceiptAsync(KsefCredentials credentials, KsefSubmission submission, CancellationToken cancellationToken = default) #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
- submission OfficeIMO.Invoicing.KSeF.KsefSubmission
- cancellationToken System.Threading.CancellationToken = default
public Task<KsefInvoiceStatus> GetInvoiceStatusAsync(KsefCredentials credentials, KsefSubmission submission, CancellationToken cancellationToken = default) #Task<KsefInvoiceStatus>Reads invoice status and rejects a response bound to a different reference or plaintext hash.
Parameters
- credentials OfficeIMO.Invoicing.KSeF.KsefCredentials
- submission OfficeIMO.Invoicing.KSeF.KsefSubmission
- cancellationToken System.Threading.CancellationToken = default
public Task<KsefInvoicePage> GetSessionInvoicesAsync(KsefCredentials credentials, String sessionReference, Int32 pageSize = 100, String continuationToken = null, CancellationToken cancellationToken = default) #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
- sessionReference System.String
- pageSize System.Int32 = 100
- continuationToken System.String = null
- cancellationToken System.Threading.CancellationToken = default
public Task<KsefStatus> GetSessionStatusAsync(KsefCredentials credentials, String sessionReference, CancellationToken cancellationToken = default) #Task<KsefStatus>Reads a session status by reference, including after close or an ambiguous mutation.
Parameters
- credentials OfficeIMO.Invoicing.KSeF.KsefCredentials
- sessionReference System.String
- cancellationToken System.Threading.CancellationToken = default
public async Task<KsefOnlineSession> OpenOnlineSessionAsync(KsefCredentials credentials, CancellationToken cancellationToken = default) #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
- cancellationToken System.Threading.CancellationToken = default
public async Task<KsefCredentials> RedeemAsync(KsefAuthentication authentication, CancellationToken cancellationToken = default) #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
- cancellationToken System.Threading.CancellationToken = default
public async Task RefreshAsync(KsefCredentials credentials, CancellationToken cancellationToken = default) #TaskRefreshes access credentials using the current refresh token. No automatic retry occurs.
Parameters
- credentials OfficeIMO.Invoicing.KSeF.KsefCredentials
- cancellationToken System.Threading.CancellationToken = default
public KsefSubmission ResumeSubmission(KsefCredentials credentials, String sessionReference, String invoiceReference, String invoiceHash) #KsefSubmissionRestores 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
- sessionReference System.String
- invoiceReference System.String
- invoiceHash System.String
public async Task<KsefSubmission> SubmitAsync(KsefCredentials credentials, KsefOnlineSession session, Byte[] fa3Xml, Fa3SchemaValidator validator, CancellationToken cancellationToken = default) #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
- session OfficeIMO.Invoicing.KSeF.KsefOnlineSession
- fa3Xml System.Byte[]
- validator OfficeIMO.Invoicing.Validation.Fa3SchemaValidator
- cancellationToken System.Threading.CancellationToken = default
Inherited Methods
public override Boolean Equals(Object obj) #BooleanParameters
- obj Object
Properties
public KsefEnvironment Environment { get; } #Selected official environment.