/** * This file was auto-generated by openapi-typescript. * Do not make direct changes to the file. */ export type paths = { "/auth/{referenceNumber}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie statusu uwierzytelniania * @description Sprawdza bieżący status operacji uwierzytelniania dla podanego tokena. * * Sposób uwierzytelnienia: `AuthenticationToken` otrzymany przy rozpoczęciu operacji uwierzytelniania. */ get: { parameters: { query?: never; header?: never; path: { /** @description Numer referencyjny tokena otrzymanego przy inicjalizacji operacji uwierzytelniania. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["AuthenticationOperationStatusResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|------------------------------------------------|-----------------------------------------------------------------------------| * | 21304 | Brak uwierzytelnienia. | Operacja uwierzytelniania o numerze referencyjnym {referenceNumber} nie została znaleziona. | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 60 | - | - | - */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/auth/challenge": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Inicjalizacja uwierzytelnienia * @description Generuje unikalny challenge wymagany w kolejnym kroku operacji uwierzytelnienia. */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "challenge": "20250514-CR-226FB7B000-3ACF9BE4C0-10", * "timestamp": "2025-07-11T12:23:56.0154302+00:00", * "timestampMs": 1752236636015, * "clientIp": "127.0.0.1" * } */ "application/json": components["schemas"]["AuthenticationChallengeResponse"]; }; }; 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 60 | - | - | - */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/auth/ksef-token": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Uwierzytelnienie z wykorzystaniem tokena KSeF * @description Rozpoczyna operację uwierzytelniania z wykorzystaniem wcześniej wygenerowanego tokena KSeF. * * Token KSeF wraz z timestampem ze wcześniej wygenerowanego challenge'a (w formacie ```token|timestamp```) powinien zostać zaszyfrowany dedykowanym do tego celu kluczem publicznym. * - Timestamp powinien zostać przekazany jako **liczba milisekund od 1 stycznia 1970 roku (Unix timestamp)**. * - Algorytm szyfrowania: **RSA-OAEP (z użyciem SHA-256 jako funkcji skrótu)**. */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "challenge": "20250625-CR-2FDC223000-C2BFC98A9C-4E", * "contextIdentifier": { * "type": "Nip", * "value": "5265877635" * }, * "encryptedToken": "..." * } */ "application/json": WithRequired; }; }; responses: { /** @description Accepted */ 202: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20250514-AU-2DFC46C000-3AC6D5877F-D4", * "authenticationToken": { * "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbi10eXBlIjoiT3BlcmF0aW9uVG9rZW4iLCJvcGVyYXRpb24tcmVmZXJlbmNlLW51bWJlciI6IjIwMjUwNTE0LUFVLTJERkM0NkMwMDAtM0FDNkQ1ODc3Ri1ENCIsImV4cCI6MTc0NzIzMTcxOSwiaWF0IjoxNzQ3MjI5MDE5LCJpc3MiOiJrc2VmLWFwaS10aSIsImF1ZCI6ImtzZWYtYXBpLXRpIn0.rtRcV2mR9SiuJwpQaQHsbAXvvVsdNKG4DJsdiJctIeU", * "validUntil": "2025-07-11T12:23:56.0154302+00:00" * } * } */ "application/json": components["schemas"]["AuthenticationInitResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|------------------------------------------------|-----------------------------------------------------------------------------| * | 21111 | Nieprawidłowe wyzwanie autoryzacyjne. | | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 60 | - | - | - */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/auth/sessions": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie listy aktywnych sesji * @description Zwraca listę aktywnych sesji uwierzytelnienia. * * **Sortowanie:** * * - startDate (Desc) */ get: { parameters: { query?: { /** @description Rozmiar strony wyników. */ pageSize?: number; }; header?: { /** @description Token służący do pobrania kolejnej strony wyników. */ "x-continuation-token"?: string; }; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "continuationToken": "W3siY29tcG9zaXRlVG9rZW4iOnsidG9rZW4iOm51bGwsInJhbmdlIjp7Im1pbiI6IjA1QzFFMCIsIm1heCI6IkZGIn19LCJyZXN1bWVWYWx1ZXMiOlsiMjAyNS0xMC0wM1QxMjoxODo0OS4zNDY2ODQ3WiJdLCJyaWQiOiIzeHd0QVBJWDVRRlVoZ0FBQUFBQUJBPT0iLCJza2lwQ291bnQiOjF9XQ==", * "items": [ * { * "referenceNumber": "20251010-AU-19F5E39000-39B5B182BA-B8", * "isCurrent": false, * "startDate": "2025-10-11T12:23:56.0154302+00:00", * "authenticationMethod": "QualifiedSeal", * "authenticationMethodInfo": { * "category": "XadesSignature", * "code": "xades.qualified-seal", * "displayName": "Pieczęć kwalifikowana" * }, * "status": { * "code": 200, * "description": "Uwierzytelnianie zakończone sukcesem" * }, * "isTokenRedeemed": true, * "refreshTokenValidUntil": "2025-11-28T09:22:13.388+00:00" * } * ] * } */ "application/json": components["schemas"]["AuthenticationListResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|-----------------------------------------------------|-------------------------------------------------------------| * | 21418 | Przekazany token kontynuacji ma nieprawidłowy format. | | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/auth/sessions/{referenceNumber}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post?: never; /** * Unieważnienie sesji uwierzytelnienia * @description Unieważnia sesję o podanym numerze referencyjnym. * * Unieważnienie sesji sprawia, że powiązany z nią refresh token przestaje działać i nie można już za jego pomocą uzyskać kolejnych access tokenów. * **Aktywne access tokeny działają do czasu minięcia ich termin ważności.** */ delete: { parameters: { query?: never; header?: never; path: { /** @description Numer referencyjny sesji uwierzytelnienia. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description No Content */ 204: { headers: { [name: string]: unknown; }; content?: never; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; options?: never; head?: never; patch?: never; trace?: never; }; "/auth/sessions/current": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post?: never; /** * Unieważnienie aktualnej sesji uwierzytelnienia * @description Unieważnia sesję powiązaną z tokenem użytym do wywołania tej operacji. * * Unieważnienie sesji sprawia, że powiązany z nią refresh token przestaje działać i nie można już za jego pomocą uzyskać kolejnych access tokenów. * **Aktywne access tokeny działają do czasu minięcia ich termin ważności.** * * Sposób uwierzytelnienia: `RefreshToken` lub `AccessToken`. */ delete: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description No Content */ 204: { headers: { [name: string]: unknown; }; content?: never; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; options?: never; head?: never; patch?: never; trace?: never; }; "/auth/token/redeem": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Pobranie tokenów dostępowych * @description Pobiera parę tokenów (access token i refresh token) wygenerowanych w ramach pozytywnie zakończonego procesu uwierzytelniania. * **Tokeny można pobrać tylko raz.** * * Sposób uwierzytelnienia: `AuthenticationToken` otrzymany przy rozpoczęciu operacji uwierzytelniania. */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "accessToken": { * "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbi10eXBlIjoiQ29udGV4dFRva2VuIiwiY29udGV4dC1pZGVudGlmaWVyLXR5cGUiOiJOaXAiLCJjb250ZXh0LWlkZW50aWZpZXItdmFsdWUiOiIzNzU2OTc3MDQ5IiwiYXV0aGVudGljYXRpb24tbWV0aG9kIjoiUXVhbGlmaWVkU2VhbCIsInN1YmplY3QtZGV0YWlscyI6IntcIlN1YmplY3RJZGVudGlmaWVyXCI6e1wiVHlwZVwiOlwiTmlwXCIsXCJWYWx1ZVwiOlwiMzc1Njk3NzA0OVwifX0iLCJleHAiOjE3NDcyMjAxNDksImlhdCI6MTc0NzIxOTI0OSwiaXNzIjoia3NlZi1hcGktdGkiLCJhdWQiOiJrc2VmLWFwaS10aSJ9.R_3_R2PbdCk8T4WP_0XGOO1iVNu2ugNxmkDvsD0soIE", * "validUntil": "2025-07-11T12:23:56.0154302+00:00" * }, * "refreshToken": { * "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbi10eXBlIjoiQ29udGV4dFRva2VuIiwiY29udGV4dC1pZGVudGlmaWVyLXR5cGUiOiJOaXAiLCJjb250ZXh0LWlkZW50aWZpZXItdmFsdWUiOiIzNzU2OTc3MDQ5IiwiYXV0aGVudGljYXRpb24tbWV0aG9kIjoiUXVhbGlmaWVkU2VhbCIsInN1YmplY3QtZGV0YWlscyI6IntcIlN1YmplY3RJZGVudGlmaWVyXCI6e1wiVHlwZVwiOlwiTmlwXCIsXCJWYWx1ZVwiOlwiMzc1Njk3NzA0OVwifX0iLCJleHAiOjE3NDcyMjAxNDksImlhdCI6MTc0NzIxOTI0OSwiaXNzIjoia3NlZi1hcGktdGkiLCJhdWQiOiJrc2VmLWFwaS10aSJ9.R_3_R2PbdCk8T4WP_0XGOO1iVNu2ugNxmkDvsD0soIE", * "validUntil": "2025-07-11T12:23:56.0154302+00:00" * } * } */ "application/json": components["schemas"]["AuthenticationTokensResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|------------------------------------------------|-----------------------------------------------------------------------------| * | 21301 | Brak autoryzacji. | Tokeny dla operacji uwierzytelniania {referenceNumber} zostały już pobrane. | * | 21301 | Brak autoryzacji. | Status uwierzytelniania ({operation.Status}) nie pozwala na pobranie tokenów. | * | 21301 | Brak autoryzacji. | Token KSeF został unieważniony. | * | 21304 | Brak uwierzytelnienia. | Operacja uwierzytelniania o numerze referencyjnym {referenceNumber} nie została znaleziona. | * | 21308 | Próba wykorzystania metod autoryzacyjnych osoby zmarłej. | | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 60 | - | - | - */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/auth/token/refresh": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Odświeżenie tokena dostępowego * @description Generuje nowy token dostępu na podstawie ważnego refresh tokena. * * Sposób uwierzytelnienia: `RefreshToken`. */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "accessToken": { * "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbi10eXBlIjoiQ29udGV4dFRva2VuIiwiY29udGV4dC1pZGVudGlmaWVyLXR5cGUiOiJOaXAiLCJjb250ZXh0LWlkZW50aWZpZXItdmFsdWUiOiIzNzU2OTc3MDQ5IiwiYXV0aGVudGljYXRpb24tbWV0aG9kIjoiUXVhbGlmaWVkU2VhbCIsInN1YmplY3QtZGV0YWlscyI6IntcIlN1YmplY3RJZGVudGlmaWVyXCI6e1wiVHlwZVwiOlwiTmlwXCIsXCJWYWx1ZVwiOlwiMzc1Njk3NzA0OVwifX0iLCJleHAiOjE3NDcyMjAxNDksImlhdCI6MTc0NzIxOTI0OSwiaXNzIjoia3NlZi1hcGktdGkiLCJhdWQiOiJrc2VmLWFwaS10aSJ9.R_3_R2PbdCk8T4WP_0XGOO1iVNu2ugNxmkDvsD0soIE", * "validUntil": "2025-07-11T12:23:56.0154302+00:00" * } * } */ "application/json": components["schemas"]["AuthenticationTokenRefreshResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|-----------------------------------------------------|-----------------------------------------------------------------------------| * | 21301 | Brak autoryzacji. | Status uwierzytelniania ({operation.Status}) nie pozwala na odświeżenie tokenu dostępowego. | * | 21301 | Brak autoryzacji. | Token KSeF został unieważniony. | * | 21304 | Brak uwierzytelnienia. | Operacja uwierzytelniania o numerze referencyjnym {referenceNumber} nie została znaleziona. | * | 21308 | Próba wykorzystania metod autoryzacyjnych osoby zmarłej. | | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 60 | - | - | - */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/auth/xades-signature": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Uwierzytelnienie z wykorzystaniem podpisu XAdES * @description Rozpoczyna operację uwierzytelniania za pomocą dokumentu XML podpisanego podpisem elektronicznym XAdES. * * > Więcej informacji: * > - [Przygotowanie dokumentu XML](https://github.com/CIRFMF/ksef-docs/blob/main/uwierzytelnianie.md#1-przygotowanie-dokumentu-xml-authtokenrequest) * > - [Podpis dokumentu XML](https://github.com/CIRFMF/ksef-docs/blob/main/uwierzytelnianie.md#2-podpisanie-dokumentu-xades) * > - [Schemat XSD](/docs/v2/schemas/authv2.xsd) */ post: { parameters: { query?: { /** @description Wymuszenie weryfikacji zaufania łańcucha certyfikatu wraz ze sprawdzeniem statusu certyfikatu (OCSP/CRL) na środowiskach które umożliwiają wykorzystanie samodzielnie wygenerowanych certyfikatów. */ verifyCertificateChain?: boolean; }; header?: never; path?: never; cookie?: never; }; requestBody: { content: { /** * @example * * 20250625-CR-20F5EE4000-DA48AE4124-46 * * 5265877635 * * certificateSubject * * * * */ "application/xml": string; }; }; responses: { /** @description Accepted */ 202: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20250514-AU-2DFC46C000-3AC6D5877F-D4", * "authenticationToken": { * "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbi10eXBlIjoiT3BlcmF0aW9uVG9rZW4iLCJvcGVyYXRpb24tcmVmZXJlbmNlLW51bWJlciI6IjIwMjUwNTE0LUFVLTJERkM0NkMwMDAtM0FDNkQ1ODc3Ri1ENCIsImV4cCI6MTc0NzIzMTcxOSwiaWF0IjoxNzQ3MjI5MDE5LCJpc3MiOiJrc2VmLWFwaS10aSIsImF1ZCI6ImtzZWYtYXBpLXRpIn0.rtRcV2mR9SiuJwpQaQHsbAXvvVsdNKG4DJsdiJctIeU", * "validUntil": "2025-07-11T12:23:56.0154302+00:00" * } * } */ "application/json": components["schemas"]["AuthenticationInitResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|---------------------------------------------------------------------|-------------------------------------------------------------| * | 21001 | Nieczytelna treść. | | * | 21111 | Nieprawidłowe wyzwanie autoryzacyjne. | | * | 21115 | Nieprawidłowy certyfikat. | | * | 21117 | Nieprawidłowy identyfikator podmiotu dla wskazanego typu kontekstu. | | * | 21217 | Nieprawidłowe kodowanie znaków. | | * | 21401 | Dokument nie jest zgodny ze schemą (xsd). | {treść błędu walidacji} | * | 21406 | Konflikt podpisu i typu uwierzytelnienia. | | * | 9101 | Nieprawidłowy dokument. | | * | 9102 | Brak podpisu. | | * | 9103 | Przekroczona liczba dozwolonych podpisów. | | * | 9105 | Nieprawidłowy podpis. | | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 60 | - | - | - */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/certificates/{certificateSerialNumber}/revoke": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Unieważnienie certyfikatu * @description Unieważnia certyfikat o podanym numerze seryjnym. */ post: { parameters: { query?: never; header?: never; path: { /** @description Numer seryjny certyfikatu (w formacie szesnastkowym). */ certificateSerialNumber: string; }; cookie?: never; }; requestBody?: { content: { "application/json": components["schemas"]["RevokeCertificateRequest"]; }; }; responses: { /** @description No Content */ 204: { headers: { [name: string]: unknown; }; content?: never; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|------------------------------------------------------------------------------------------------|---------| * | 25008 | Certyfikat o podanym numerze seryjnym nie istnieje. | | * | 25009 | Nie można odwołać wskazanego certyfikatu, ponieważ jest już odwołany, zablokowany lub nieważny.| | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/certificates/enrollments": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Wysyłka wniosku certyfikacyjnego * @description Przyjmuje wniosek certyfikacyjny i rozpoczyna jego przetwarzanie. * * Dozwolone typy kluczy prywatnych: * - RSA (OID: 1.2.840.113549.1.1.1), długość klucza równa 2048 bitów, * - EC (klucze oparte na krzywych eliptycznych, OID: 1.2.840.10045.2.1), krzywa NIST P-256 (secp256r1) * * Zalecane jest stosowanie kluczy EC. * * Dozwolone algorytmy podpisu: * - RSA PKCS#1 v1.5, * - RSA PSS, * - ECDSA (format podpisu zgodny z RFC 3279) * * Dozwolone funkcje skrótu użyte do podpisu CSR: * - SHA1, * - SHA256, * - SHA384, * - SHA512 * * > Więcej informacji: * > - [Wysłanie wniosku certyfikacyjnego](https://github.com/CIRFMF/ksef-docs/blob/main/certyfikaty-KSeF.md#4-wys%C5%82anie-wniosku-certyfikacyjnego) */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "certificateName": "Certyfikat-Auth-004", * "certificateType": "Authentication", * "csr": "MIIDJjCCAd4CAQAwgbAxIjAgBgNVBAMMGUZpcm1hIEtvd2Fsc2tpIENlcnR5ZmlrYXQxIjAgBgNVBAoMGUZpcm1hIEtvd2Fsc2tpIFNwLiB6IG8uby4xEzARBgNVBGEMCjc3NjI4MTE2OTIxCzAJBgNVBAYTAlBMMRUwEwYDVQQFEwxBQkMxMjM0NTY3ODkxLTArBgNVBC0MJGQ5ZDIyNzI0LTQ2OTYtNDYwYy05ZTVlLWI5ZTNhYWZiMGFmMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANZC1hJiB4ZBsxGy/a4yvtOUP0HQxDt7EUZrfKO78+cmI7KCO9aW96yr6O0R928/Y9vmymbgh6KvMUTzZZj24uyxar849O1laor5t8Wv63RDx/I4+9Rt7w+QPPofmpenOokJH+Fm+FDQwo2l07o8SppGfaZpvMak+cDSrh+73wfM37fvPImr9p4ckzzxA9q6f4uoqGqcGSDlSwRjfLQKzWZaEklpZBpY4jeCh54uN3+YLsMQYKdcIbW0Jart1UbwMd/wbHfzFhVmPGOAMMpwVEBw6E4A0CTWIiAX3Alqbx4+IkuqC+gEs3ETTec7eOqhxe9V9cywi7WR+Mz6JO6DJcUCAwEAAaAAMD0GCSqGSIb3DQEBCjAwoA0wCwYJYIZIAWUDBAIBoRowGAYJKoZIhvcNAQEIMAsGCWCGSAFlAwQCAaIDAgEgA4IBAQCJhtF2/2E+JmkWitE/BGbm3NU4fIxr1Z+w0UnHsP+F8n9UDwAnuncG1GH5wZFervldEMooegzEDnYaqxnEUnbZ4wxeAHqpbTZjOOfqrk7o0r66+mXUs5NnyD4M3j3ig98GcvhEdbcNH+RsIwi7FaLNXnOE4SLYL9KvW0geriywWjS+5MmA0Gcn1e4vCD6FeEls8EHzkhrWE+rUsoM5zT2a0OPNXG3fScyOqOZe+OdjT4Y7ScRGy711u3v2X9RoTqQUDfCJ3cob/KRcrzvs1TQVazGZPfcIa6an6SigUvZ7XAMHlUTyOeM4AwKqiEqQ0qfe/HhlDylgZSwulb9u0utT", * "validFrom": "2025-08-28T09:22:13.388+00:00" * } */ "application/json": WithRequired; }; }; responses: { /** @description Accepted */ 202: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20251010-EH-1B6C9EB000-4B15D3AEB9-89", * "timestamp": "2025-10-11T12:23:56.0154302+00:00" * } */ "application/json": components["schemas"]["EnrollCertificateResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|------------------------------------------------------------------------------------------------|---------| * | 25002 | Brak możliwości złożenia wniosku certyfikacyjnego dla wykorzystanego sposobu uwierzytelnienia. | | * | 25003 | Dane w CSR nie zgadzają się z danymi w użytym wektorze uwierzytelniającym. | | * | 25004 | Niepoprawny format CSR lub niepoprawny podpis CSR. | | * | 25006 | Osiągnięto limit możliwych do złożenia wniosków certyfikacyjnych. | | * | 25007 | Osiągnięto limit dopuszczalnej liczby posiadanych certyfikatów. | | * | 25010 | Nieprawidłowy typ lub długość klucza. | | * | 25011 | Nieprawidłowy algorytm podpisu CSR. | | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/certificates/enrollments/{referenceNumber}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie statusu przetwarzania wniosku certyfikacyjnego * @description Zwraca informacje o statusie wniosku certyfikacyjnego. */ get: { parameters: { query?: never; header?: never; path: { /** @description Numer referencyjny wniosku certyfikacyjnego */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "requestDate": "2025-10-11T12:23:56.0154302+00:00", * "status": { * "code": 100, * "description": "Wniosek przyjęty do realizacji" * } * } */ "application/json": components["schemas"]["CertificateEnrollmentStatusResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|------------------------------------------------------------------------------------------------|---------| * | 25005 | Wniosek certyfikacyjny o podanym numerze referencyjnym nie istnieje. | | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/certificates/enrollments/data": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie danych do wniosku certyfikacyjnego * @description Zwraca dane wymagane do przygotowania wniosku certyfikacyjnego PKCS#10. * * Dane te są zwracane na podstawie certyfikatu użytego w procesie uwierzytelnienia i identyfikują podmiot, który składa wniosek o certyfikat. * * * > Więcej informacji: * > - [Pobranie danych do wniosku certyfikacyjnego](https://github.com/CIRFMF/ksef-docs/blob/main/certyfikaty-KSeF.md#2-pobranie-danych-do-wniosku-certyfikacyjnego) * > - [Przygotowanie wniosku](https://github.com/CIRFMF/ksef-docs/blob/main/certyfikaty-KSeF.md#3-przygotowanie-csr-certificate-signing-request) */ get: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "commonName": "Firma Kowalski Certyfikat", * "countryName": "PL", * "serialNumber": "ABC123456789", * "uniqueIdentifier": "d9d22724-4696-460c-9e5e-b9e3aafb0af3", * "organizationName": "Firma Kowalski Sp. z o.o.", * "organizationIdentifier": "7762811692" * } */ "application/json": components["schemas"]["CertificateEnrollmentDataResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|-------------------------------------------------------------------------------------------|---------| * | 25001 | Brak możliwości pobrania danych do CSR dla wykorzystanego sposobu uwierzytelnienia. | | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/certificates/limits": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie danych o limitach certyfikatów * @description Zwraca informacje o limitach certyfikatów oraz informacje czy użytkownik może zawnioskować o certyfikat KSeF. */ get: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["CertificateLimitsResponse"]; }; }; 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/certificates/query": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Pobranie listy metadanych certyfikatów * @description Zwraca listę certyfikatów spełniających podane kryteria wyszukiwania. * W przypadku braku podania kryteriów wyszukiwania zwrócona zostanie nieprzefiltrowana lista. * * **Sortowanie:** * * - requestDate (Desc) */ post: { parameters: { query?: { /** @description Numer strony wyników */ pageOffset?: number; /** @description Rozmiar strony wyników */ pageSize?: number; }; header?: never; path?: never; cookie?: never; }; /** @description Kryteria filtrowania */ requestBody?: { content: { /** * @example { * "type": "Offline", * "status": "Active" * } */ "application/json": components["schemas"]["QueryCertificatesRequest"]; }; }; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "certificates": [ * { * "certificateSerialNumber": "018209160C631F1E", * "name": "Certyfikat 1", * "type": "Authentication", * "commonName": "Jan Kowalski", * "status": "Active", * "subjectIdentifier": { * "type": "Nip", * "value": "1234445678" * }, * "validFrom": "2025-08-24T14:15:22+00:00", * "validTo": "2027-08-24T14:15:22+00:00", * "lastUseDate": "2025-08-25T14:15:22+00:00", * "requestDate": "2025-08-24T14:15:22+00:00" * } * ], * "hasMore": false * } */ "application/json": components["schemas"]["QueryCertificatesResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/certificates/retrieve": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Pobranie certyfikatu lub listy certyfikatów * @description Zwraca certyfikaty o podanych numerach seryjnych w formacie DER zakodowanym w Base64. */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "certificateSerialNumbers": [ * "0321C82DA41B4362", * "0321F21DA462A362" * ] * } */ "application/json": WithRequired; }; }; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "certificates": [ * { * "certificate": "AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/wABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjM0NTY3ODk6Ozw9Pj9AQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVpbXF1eX2BhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ent8fX5/gIGCg4SFhoeIiYqLjI2Oj5CRkpOUlZaXmJmam5ydnp+goaKjpKWmp6ipqqusra6vsLGys7S1tre4ubq7vL2+v8DBwsPExcbHyMnKy8zNzs/Q0dLT1NXW19jZ2tvc3d7f4OHi4+Tl5ufo6err7O3u7/Dx8vP09fb3+Pn6+/z9/v8AAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzNDU2Nzg5Ojs8PT4/QEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaW1xdXl9gYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXp7fH1+f4CBgoOEhYaHiImKi4yNjo+QkZKTlJWWl5iZmpucnZ6foKGio6SlpqeoqaqrrK2ur7CxsrO0tba3uLm6u7y9vr/AwcLDxMXGx8jJysvMzc7P0NHS09TV1tfY2drb3N3e3+Dh4uPk5ebn6Onq6+zt7u/w8fLz9PX29/j5+vv8/f7/AAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBkaGxwdHh8gISIjJCUmJygpKissLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWltcXV5fYGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6e3x9fn+AgYKDhIWGh4iJiouMjY6PkJGSk5SVlpeYmZqbnJ2en6ChoqOkpaanqKmqq6ytrq+wsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+/w==", * "certificateName": "Cert 00023", * "certificateSerialNumber": "0321C82DA41B4362", * "certificateType": "Authentication" * } * ] * } */ "application/json": components["schemas"]["RetrieveCertificatesResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/invoices/exports": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Eksport paczki faktur * @description Rozpoczyna asynchroniczny proces wyszukiwania faktur w systemie KSeF na podstawie przekazanych filtrów oraz przygotowania ich w formie zaszyfrowanej paczki. * Wymagane jest przekazanie informacji o szyfrowaniu w polu Encryption, które służą do zabezpieczenia przygotowanej paczki z fakturami. * Maksymalnie można uruchomić 10 równoczesnych eksportów w zalogowanym kontekście. * * System pobiera faktury rosnąco według daty określonej w filtrze (Invoicing, Issue, PermanentStorage) i dodaje faktury(nazwa pliku: {ksefNumber}.xml) do paczki aż do osiągnięcia jednego z poniższych limitów: * * Limit liczby faktur: 10 000 sztuk * * Limit rozmiaru danych(skompresowanych): 1GB * * Paczka eksportu zawiera dodatkowy plik z metadanymi faktur w formacie JSON (`_metadata.json`). Zawartość pliku to * obiekt z tablicą invoices, gdzie każdy element jest obiektem typu InvoiceMetadata * (taki jak zwracany przez endpoint `POST /invoices/query/metadata`). * * Plik z metadanymi(_metadata.json) nie jest wliczany do limitów algorytmu budowania paczki. * * `Do realizacji pobierania przyrostowego należy stosować filtrowanie po dacie PermanentStorage`. * * **Sortowanie:** * * - permanentStorageDate | invoicingDate | issueDate (Asc) - pole wybierane na podstawie filtrów * * * * **Wymagane uprawnienia**: `InvoiceRead`. */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** @description Dane wejściowe określające kryteria i format eksportu paczki faktur. */ requestBody?: { content: { /** * @example { * "encryption": { * "encryptedSymmetricKey": "bdUVjqLj+y2q6aBUuLxxXYAMqeDuIBRTyr+hB96DaWKaGzuVHw9p+Nk9vhzgF/Q5cavK2k6eCh6SdsrWI0s9mFFj4A4UJtsyD8Dn3esLfUZ5A1juuG3q3SBi/XOC/+9W+0T/KdwdE393mbiUNyx1K/0bw31vKJL0COeJIDP7usAMDl42/H1TNvkjk+8iZ80V0qW7D+RZdz+tdiY1xV0f2mfgwJ46V0CpZ+sB9UAssRj+eVffavJ0TOg2b5JaBxE8MCAvrF6rO5K4KBjUmoy7PP7g1qIbm8xI2GO0KnfPOO5OWj8rsotRwBgu7x19Ine3qYUvuvCZlXRGGZ5NHIzWPM4O74+gNalaMgFCsmv8mMhETSU4SfAGmJr9edxPjQSbgD5i2X4eDRDMwvyaAa7CP1b2oICju+0L7Fywd2ZtUcr6El++eTVoi8HYsTArntET++gULT7XXjmb8e3O0nxrYiYsE9GMJ7HBGv3NOoJ1NTm3a7U6+c0ZJiBVLvn6xXw10LQX243xH+ehsKo6djQJKYtqcNPaXtCwM1c9RrsOx/wRXyWCtTffqLiaR0LbYvfMJAcEWceG+RaeAx4p37OiQqdJypd6LAv9/0ECWK8Bip8yyoA+0EYiAJb9YuDz2YlQX9Mx9E9FzFIAsgEQ2w723HZYWgPywLb+dlsum4lTZKQ=", * "initializationVector": "c29tZUluaXRWZWN0b3I=" * }, * "onlyMetadata": false, * "filters": { * "subjectType": "Subject1", * "dateRange": { * "dateType": "PermanentStorage", * "from": "2025-08-28T09:22:13.388+00:00", * "to": "2025-09-28T09:22:13.388+00:00", * "restrictToPermanentStorageHwmDate": true * } * } * } */ "application/json": WithRequired; }; }; responses: { /** @description Created */ 201: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20251010-EH-1B6C9EB000-4B15D3AEB9-89" * } */ "application/json": components["schemas"]["ExportInvoicesResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|-----------------------------------------------------|---------------------------------------------------------------| * | 21181 | Nieprawidłowe żądanie eksportu faktur. | Nie można wyeksportować paczki faktur dla wybranego podmiotu ({subjecttype}) i zalogowanego identyfikatora kontekstu ({type}). | * | 21182 | Osiągnięto limit trwających eksportów. | Dla uwierzytelnionego podmiotu w bieżącym kontekście osiągnięto maksymalny limit {count} równoczesnych eksportów faktur. Spróbuj ponownie później. | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 4 | 8 | 20 | invoiceExport */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/invoices/exports/{referenceNumber}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie statusu eksportu paczki faktur * @description Paczka faktur jest dzielona na części o maksymalnym rozmiarze 50 MB. Każda część jest zaszyfrowana algorytmem AES-256-CBC z dopełnieniem PKCS#7, przy użyciu klucza symetrycznego przekazanego podczas inicjowania eksportu. * * W przypadku ucięcia wyniku eksportu z powodu przekroczenia limitów, zwracana jest flaga IsTruncated = true oraz odpowiednia data, którą należy wykorzystać do wykonania kolejnego eksportu, aż do momentu, gdy flaga IsTruncated = false. * * **Sortowanie:** * * - permanentStorageDate | invoicingDate | issueDate (Asc) - pole wybierane na podstawie filtrów * * * * **Wymagane uprawnienia**: `InvoiceRead`. */ get: { parameters: { query?: never; header?: never; path: { /** @description Numer referencyjny eksportu faktur. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "status": { * "code": 200, * "description": "Eksport faktur zakończony sukcesem" * }, * "completedDate": "2025-09-16T16:09:40.901091+00:00", * "package": { * "invoiceCount": 10000, * "size": 22425060, * "parts": [ * { * "ordinalNumber": 1, * "partName": "20250925-EH-2D2C11B000-E9C9ED8340-EE-001.zip.aes", * "method": "GET", * "url": "https://ksef-api-storage/storage/00/20250626-eh-2d2c11b000-e9c9ed8340-ee/invoice-part/20250925-EH-2D2C11B000-E9C9ED8340-EE-001.zip.aes?skoid=1ad7cfe8-2cb2-406b-b96c-6eefb55794db&sktid=647754c7-3974-4442-a425-c61341b61c69&skt=2025-06-26T09%3A40%3A54Z&ske=2025-06-26T10%3A10%3A54Z&sks=b&skv=2025-01-05&sv=2025-01-05&se=2025-06-26T10%3A10%3A54Z&sr=b&sp=w&sig=8mKZEU8Reuz%2Fn7wHi4T%2FY8BzLeD5l8bR2xJsBxIgDEY%3D", * "partSize": 22425060, * "partHash": "BKH9Uy1CjBFXiQdDUM2CJYk5LxWTm4fE1lljnl83Ajw=", * "encryptedPartSize": 22425072, * "encryptedPartHash": "HlvwRLc59EJH7O5GoeHEZxTQO5TJ/WP1QH0aFi4x2Ss=", * "expirationDate": "2025-09-16T17:09:40.901091+00:00" * } * ], * "isTruncated": true, * "lastPermanentStorageDate": "2025-09-11T11:40:40.266578+00:00", * "permanentStorageHwmDate": "2025-09-11T12:00:40.266578+00:00" * } * } */ "application/json": components["schemas"]["InvoiceExportStatusResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|-----------------------------------------------------|---------------------------------------------------------------| * | 21175 | Wynik zapytania o podanym identyfikatorze nie istnieje. | | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 60 | 600 | invoiceExportStatus */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/invoices/ksef/{ksefNumber}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie faktury po numerze KSeF * @description Zwraca fakturę o podanym numerze KSeF. * * **Wymagane uprawnienia**: `InvoiceRead`. */ get: { parameters: { query?: never; header?: never; path: { /** @description Numer KSeF faktury. */ ksefNumber: components["schemas"]["KsefNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { /** @description Skrót SHA-256 faktury, zakodowany w formacie Base64 */ "x-ms-meta-hash"?: components["schemas"]["Sha256HashBase64"]; [name: string]: unknown; }; content: { "application/xml": string; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------|-----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------| * | 21164 | Faktura o podanym identyfikatorze nie istnieje. | Faktura o numerze KSeF {ksefNumber} nie została znaleziona. | * | 21165 | Faktura o podanym numerze KSeF nie jest jeszcze dostępna. | Faktura o numerze KSeF {ksefNumber} została przetworzona, ale nie jest jeszcze dostępna do pobrania. Spróbuj ponownie później. | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 8 | 16 | 64 | invoiceDownload */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/invoices/query/metadata": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Pobranie listy metadanych faktur * @description Zwraca metadane faktur spełniających filtry. * * Limit techniczny: ≤ 10 000 rekordów na zestaw filtrów, po jego osiągnięciu isTruncated = true i należy ponownie ustawić dateRange, używając ostatniej daty z wyników (tj. ustawić from/to - w zależności od kierunku sortowania, od daty ostatniego zwróconego rekordu) oraz wyzerować pageOffset. * * `Do scenariusza przyrostowego należy używać daty PermanentStorage oraz kolejność sortowania Asc`. * * Scenariusz pobierania przyrostowego (skrót): * * Gdy hasMore = false, należy zakończyć, * * Gdy hasMore = true i isTruncated = false, należy zwiększyć pageOffset, * * Gdy hasMore = true i isTruncated = true, należy zawęzić dateRange (ustawić from od daty ostatniego rekordu), wyzerować pageOffset i kontynuować * * **Sortowanie:** * * - permanentStorageDate | invoicingDate | issueDate (Asc | Desc) - pole wybierane na podstawie filtrów * * * * **Wymagane uprawnienia**: `InvoiceRead`. */ post: { parameters: { query?: { /** @description Indeks pierwszej strony wyników (0 = pierwsza strona). */ pageOffset?: number; /** @description Rozmiar strony wyników. */ pageSize?: number; /** * @description Kolejność sortowania wyników. * | Wartość | Opis | * | --- | --- | * | Asc | Sortowanie rosnąco. | * | Desc | Sortowanie malejąco. | */ sortOrder?: components["schemas"]["SortOrder"]; }; header?: never; path?: never; cookie?: never; }; /** @description Kryteria filtrowania. */ requestBody?: { content: { /** * @example { * "subjectType": "Subject1", * "dateRange": { * "dateType": "PermanentStorage", * "from": "2025-08-28T09:22:13.388+00:00", * "to": "2025-09-28T09:24:13.388+00:00" * }, * "amount": { * "type": "Brutto", * "from": 100.5, * "to": 250 * }, * "currencyCodes": [ * "PLN", * "EUR" * ], * "invoicingMode": "Online", * "formType": "FA", * "invoiceTypes": [ * "Vat" * ], * "hasAttachment": true * } */ "application/json": WithRequired; }; }; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "hasMore": false, * "isTruncated": false, * "permanentStorageHwmDate": "2025-08-28T09:23:55.388+00:00", * "invoices": [ * { * "ksefNumber": "5555555555-20250828-010080615740-E4", * "invoiceNumber": "FA/KUDYO1a7dddfe-610e-4843-84ba-6b887e35266e", * "issueDate": "2025-08-27", * "invoicingDate": "2025-08-28T09:22:13.3881234+00:00", * "acquisitionDate": "2025-08-28T09:22:56.3881234+00:00", * "permanentStorageDate": "2025-08-28T09:23:01.388123+00:00", * "seller": { * "nip": "5555555555", * "name": "Test Company 1" * }, * "buyer": { * "identifier": { * "type": "Nip", * "value": "7352765225" * }, * "name": "Test Company 4" * }, * "netAmount": 35260.63, * "grossAmount": 43370.57, * "vatAmount": 8109.94, * "currency": "PLN", * "invoicingMode": "Offline", * "invoiceType": "Vat", * "formCode": { * "systemCode": "FA (3)", * "schemaVersion": "1-0E", * "value": "FA" * }, * "isSelfInvoicing": false, * "hasAttachment": false, * "invoiceHash": "mkht+3m5trnfxlTYhq3QFn74LkEO69MFNlsMAkCDSPA=", * "thirdSubjects": [] * }, * { * "ksefNumber": "5555555555-20250828-010080615740-E4", * "invoiceNumber": "5265877635-20250925-010020A0A242-0A", * "issueDate": "2025-08-28", * "invoicingDate": "2025-08-28T10:23:13.3881234+00:00", * "acquisitionDate": "2025-08-28T10:23:56.3881234+00:00", * "permanentStorageDate": "2025-08-28T10:24:01.388123+00:00", * "seller": { * "nip": "5555555555", * "name": "Test Company 1" * }, * "buyer": { * "identifier": { * "type": "Nip", * "value": "3225081610" * }, * "name": "Test Company 2" * }, * "netAmount": 35260.63, * "grossAmount": 43370.57, * "vatAmount": 8109.94, * "currency": "PLN", * "invoicingMode": "Online", * "invoiceType": "Vat", * "formCode": { * "systemCode": "FA (3)", * "schemaVersion": "1-0E", * "value": "FA" * }, * "isSelfInvoicing": false, * "hasAttachment": true, * "invoiceHash": "o+nMBU8n8TAhy6EjbcdYdHSZVbUspqmCKqOPLhy3zIQ=", * "thirdSubjects": [ * { * "identifier": { * "type": "InternalId", * "value": "5555555555-12345" * }, * "name": "Wystawca faktury", * "role": 4 * } * ] * } * ] * } */ "application/json": components["schemas"]["QueryInvoicesMetadataResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------|-----------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------| * | 21183 | Zakres filtrowania wykracza poza dostępny zakres danych. | Parametr dateRange.from jest późniejszy niż PermanentStorageHwmDate przy włączonym restrictToPermanentStorageHwmDate. | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 8 | 16 | 20 | invoiceMetadata */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/limits/context": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie limitów dla bieżącego kontekstu * @description Zwraca wartości aktualnie obowiązujących limitów dla bieżącego kontekstu. */ get: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "onlineSession": { * "maxInvoiceSizeInMB": 1, * "maxInvoiceWithAttachmentSizeInMB": 3, * "maxInvoices": 10000 * }, * "batchSession": { * "maxInvoiceSizeInMB": 1, * "maxInvoiceWithAttachmentSizeInMB": 3, * "maxInvoices": 10000 * } * } */ "application/json": components["schemas"]["EffectiveContextLimits"]; }; }; 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/limits/subject": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie limitów dla bieżącego podmiotu * @description Zwraca wartości aktualnie obowiązujących limitów dla bieżącego podmiotu. */ get: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "enrollment": { * "maxEnrollments": 12 * }, * "certificate": { * "maxCertificates": 6 * } * } */ "application/json": components["schemas"]["EffectiveSubjectLimits"]; }; }; 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/peppol/query": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie listy dostawców usług Peppol * @description Zwraca listę dostawców usług Peppol zarejestrowanych w systemie. * * **Sortowanie:** * * - dateCreated (Desc) * - id (Asc) */ get: { parameters: { query?: { /** @description Numer strony wyników. */ pageOffset?: number; /** @description Rozmiar strony wyników. */ pageSize?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "peppolProviders": [ * { * "id": "P123456789", * "name": "Dostawca usług Peppol", * "dateCreated": "2025-07-11T12:23:56.0154302+00:00" * } * ], * "hasMore": false * } */ "application/json": components["schemas"]["QueryPeppolProvidersResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 60 | - | - | - */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/attachments/status": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Sprawdzenie statusu zgody na wystawianie faktur z załącznikiem * @description Sprawdzenie czy obecny kontekst posiada zgodę na wystawianie faktur z załącznikiem. * * **Wymagane uprawnienia**: `CredentialsManage`, `CredentialsRead`. */ get: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["CheckAttachmentPermissionStatusResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/authorizations/grants": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Nadanie uprawnień podmiotowych * @description Metoda pozwala na nadanie jednego z uprawnień podmiotowych do obsługi podmiotu kontekstu podmiotowi wskazanemu w żądaniu. * * > Więcej informacji: * > - [Nadawanie uprawnień](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#nadanie-uprawnie%C5%84-podmiotowych) * * **Wymagane uprawnienia**: `CredentialsManage`. */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "subjectIdentifier": { * "type": "Nip", * "value": "7762811692" * }, * "permission": "SelfInvoicing", * "description": "działanie w imieniu 3393244202 w kontekście 7762811692, Firma sp. z o.o.", * "subjectDetails": { * "fullName": "Firma sp. z o.o." * } * } */ "application/json": WithRequired; }; }; responses: { /** @description Accepted */ 202: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20250626-EG-333C814000-C529F710D8-D2" * } */ "application/json": components["schemas"]["PermissionsOperationResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/authorizations/grants/{permissionId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post?: never; /** * Odebranie uprawnień podmiotowych * @description Metoda pozwala na odebranie uprawnienia podmiotowego o wskazanym identyfikatorze. * Wymagane jest wcześniejsze odczytanie uprawnień w celu uzyskania * identyfikatora uprawnienia, które ma zostać odebrane. * * > Więcej informacji: * > - [Odbieranie uprawnień](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#odebranie-uprawnie%C5%84-podmiotowych) * * **Wymagane uprawnienia**: `CredentialsManage`. */ delete: { parameters: { query?: never; header?: never; path: { /** @description Id uprawnienia. */ permissionId: components["schemas"]["PermissionId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description Accepted */ 202: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20250626-EG-333C814000-C529F710D8-D2" * } */ "application/json": components["schemas"]["PermissionsOperationResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/common/grants/{permissionId}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; post?: never; /** * Odebranie uprawnień * @description Metoda pozwala na odebranie uprawnienia o wskazanym identyfikatorze. * Wymagane jest wcześniejsze odczytanie uprawnień w celu uzyskania * identyfikatora uprawnienia, które ma zostać odebrane. * * > Więcej informacji: * > - [Odbieranie uprawnień](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#odebranie-uprawnie%C5%84) * * **Wymagane uprawnienia**: `CredentialsManage`, `VatUeManage`, `SubunitManage`. */ delete: { parameters: { query?: never; header?: never; path: { /** @description Id uprawnienia. */ permissionId: components["schemas"]["PermissionId"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description Accepted */ 202: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20250626-EG-333C814000-C529F710D8-D2" * } */ "application/json": components["schemas"]["PermissionsOperationResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/entities/grants": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Nadanie podmiotom uprawnień do obsługi faktur * @description Metoda pozwala na nadanie podmiotowi wskazanemu w żądaniu uprawnień do obsługi faktur podmiotu kontekstu. * W żądaniu określane są nadawane uprawnienia ze zbioru: * - **InvoiceWrite** – wystawianie faktur * - **InvoiceRead** – przeglądanie faktur * * Metoda pozwala na wybór dowolnej kombinacji powyższych uprawnień. * Dla każdego uprawnienia może być ustawiona flaga **canDelegate**, mówiąca o możliwości jego dalszego przekazywania poprzez nadawanie w sposób pośredni. * * > Więcej informacji: * > - [Nadawanie uprawnień](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#nadanie-podmiotom-uprawnie%C5%84-do-obs%C5%82ugi-faktur) * * **Wymagane uprawnienia**: `CredentialsManage`. */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "subjectIdentifier": { * "type": "Nip", * "value": "7762811692" * }, * "permissions": [ * { * "type": "InvoiceRead", * "canDelegate": true * }, * { * "type": "InvoiceWrite", * "canDelegate": true * } * ], * "description": "Opis uprawnienia", * "subjectDetails": { * "fullName": "Firma sp. z o.o." * } * } */ "application/json": WithRequired; }; }; responses: { /** @description Accepted */ 202: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20250626-EG-333C814000-C529F710D8-D2" * } */ "application/json": components["schemas"]["PermissionsOperationResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/eu-entities/administration/grants": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Nadanie uprawnień administratora podmiotu unijnego * @description Metoda pozwala na nadanie wskazanemu w żądaniu podmiotowi lub osobie fizycznej uprawnień administratora w kontekście złożonym z identyfikatora NIP podmiotu kontekstu bieżącego oraz numeru VAT UE podmiotu unijnego wskazanego w żądaniu. * Wraz z utworzeniem administratora podmiotu unijnego tworzony jest kontekst złożony składający się z numeru NIP podmiotu kontekstu logowania oraz wskazanego numeru identyfikacyjnego VAT UE podmiotu unijnego. * W żądaniu podaje się również nazwę i adres podmiotu unijnego. * * Jedynym sposobem identyfikacji uprawnianego jest odcisk palca certyfikatu kwalifikowanego: * - certyfikat podpisu elektronicznego dla osób fizycznych * - certyfikat pieczęci elektronicznej dla podmiotów * * Uprawnienia administratora podmiotu unijnego obejmują: * - **VatEuManage** – zarządzanie uprawnieniami w ramach podmiotu unijnego * - **InvoiceWrite** – wystawianie faktur * - **InvoiceRead** – przeglądanie faktur * - **Introspection** – przeglądanie historii sesji * * Metoda automatycznie nadaje wszystkie powyższe uprawnienia, bez konieczności ich wskazywania w żądaniu. * * > Więcej informacji: * > - [Nadawanie uprawnień](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#nadanie-uprawnie%C5%84-administratora-podmiotu-unijnego) * * **Wymagane uprawnienia**: `CredentialsManage`. */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "subjectIdentifier": { * "type": "Fingerprint", * "value": "CEB3643BAC2C111ADDE971BDA5A80163441867D65389FC0BC0DFF8B4C1CD4E59" * }, * "contextIdentifier": { * "type": "NipVatUe", * "value": "7762811692-DE123456789012" * }, * "description": "Opis uprawnienia", * "euEntityName": "Firma G.m.b.H.", * "subjectDetails": { * "subjectDetailsType": "PersonByFingerprintWithIdentifier", * "personByFpWithId": { * "firstName": "Adam", * "lastName": "Abacki", * "identifier": { * "type": "Pesel", * "value": "15062788702" * } * } * }, * "euEntityDetails": { * "fullName": "Firma G.m.b.H.", * "address": "Warszawa ul. Świętokrzyska 4824 00-916 Warszawa" * } * } */ "application/json": WithRequired; }; }; responses: { /** @description Accepted */ 202: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20250626-EG-333C814000-C529F710D8-D2" * } */ "application/json": components["schemas"]["PermissionsOperationResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/eu-entities/grants": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Nadanie uprawnień reprezentanta podmiotu unijnego * @description Metoda pozwala na nadanie wskazanemu w żądaniu podmiotowi lub osobie fizycznej uprawnień do wystawiania i/lub przeglądania faktur w kontekście złożonym kontekstu bieżącego. * * Jedynym sposobem identyfikacji uprawnianego jest odcisk palca certyfikatu kwalifikowanego: * - certyfikat podpisu elektronicznego dla osób fizycznych * - certyfikat pieczęci elektronicznej dla podmiotów * * W żądaniu określane są nadawane uprawnienia ze zbioru: * - **InvoiceWrite** – wystawianie faktur * - **InvoiceRead** – przeglądanie faktur * * Metoda pozwala na wybór dowolnej kombinacji powyższych uprawnień. * * > Więcej informacji: * > - [Nadawanie uprawnień](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#nadanie-uprawnie%C5%84-reprezentanta-podmiotu-unijnego) * * **Wymagane uprawnienia**: `VatUeManage`. */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "subjectIdentifier": { * "type": "Fingerprint", * "value": "CEB3643BAC2C111ADDE971BDA5A80163441867D65389FC0BC0DFF8B4C1CD4E59" * }, * "permissions": [ * "InvoiceRead", * "InvoiceWrite" * ], * "description": "Opis uprawnienia", * "subjectDetails": { * "subjectDetailsType": "PersonByFingerprintWithIdentifier", * "personByFpWithId": { * "firstName": "Adam", * "lastName": "Abacki", * "identifier": { * "type": "Pesel", * "value": "15062788702" * } * } * } * } */ "application/json": WithRequired; }; }; responses: { /** @description Accepted */ 202: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20250626-EG-333C814000-C529F710D8-D2" * } */ "application/json": components["schemas"]["PermissionsOperationResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/indirect/grants": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Nadanie uprawnień w sposób pośredni * @description Metoda pozwala na nadanie w sposób pośredni osobie wskazanej w żądaniu uprawnień do obsługi faktur innego podmiotu – klienta. * Może to być jedna z możliwości: * - nadanie uprawnień generalnych – do obsługi wszystkich klientów * - nadanie uprawnień selektywnych – do obsługi wskazanego klienta * * Uprawnienie selektywne może być nadane wyłącznie wtedy, gdy klient nadał wcześniej podmiotowi bieżącego kontekstu dowolne uprawnienie z prawem do jego dalszego przekazywania (patrz [POST /v2/permissions/entities/grants](/docs/v2/index.html#tag/Nadawanie-uprawnien/paths/~1permissions~1entities~1grants/post)). * * W żądaniu określane są nadawane uprawnienia ze zbioru: * - **InvoiceWrite** – wystawianie faktur * - **InvoiceRead** – przeglądanie faktur * * Metoda pozwala na wybór dowolnej kombinacji powyższych uprawnień. * * > Więcej informacji: * > - [Nadawanie uprawnień](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#nadanie-uprawnie%C5%84-w-spos%C3%B3b-po%C5%9Bredni) * * **Wymagane uprawnienia**: `CredentialsManage`. */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "subjectIdentifier": { * "type": "Pesel", * "value": "22271569167" * }, * "targetIdentifier": { * "type": "Nip", * "value": "5687926712" * }, * "permissions": [ * "InvoiceWrite", * "InvoiceRead" * ], * "description": "praca dla klienta 5687926712; uprawniony PESEL: 22271569167, Adam Abacki; pośrednik 3936518395", * "subjectDetails": { * "subjectDetailsType": "PersonByIdentifier", * "personById": { * "firstName": "Adam", * "lastName": "Abacki" * } * } * } */ "application/json": WithRequired; }; }; responses: { /** @description Accepted */ 202: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20250626-EG-333C814000-C529F710D8-D2" * } */ "application/json": components["schemas"]["PermissionsOperationResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/operations/{referenceNumber}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie statusu operacji * @description Zwraca status operacji asynchronicznej związanej z nadaniem lub odebraniem uprawnień. */ get: { parameters: { query?: never; header?: never; path: { /** @description Numer referencyjny operacji nadania lub odbierania uprawnień. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "status": { * "code": 200, * "description": "Operacja zakończona sukcesem" * } * } */ "application/json": components["schemas"]["PermissionsOperationStatusResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/persons/grants": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Nadanie osobom fizycznym uprawnień do pracy w KSeF * @description Metoda pozwala na nadanie osobie wskazanej w żądaniu uprawnień do pracy w KSeF * w kontekście bieżącym. * * W żądaniu określane są nadawane uprawnienia ze zbioru: * - **InvoiceWrite** – wystawianie faktur, * - **InvoiceRead** – przeglądanie faktur, * - **CredentialsManage** – zarządzanie uprawnieniami, * - **CredentialsRead** – przeglądanie uprawnień, * - **Introspection** – przeglądanie historii sesji i generowanie UPO, * - **SubunitManage** – zarządzanie jednostkami podrzędnymi, * - **EnforcementOperations** – wykonywanie operacji egzekucyjnych. * * Metoda pozwala na wybór dowolnej kombinacji powyższych uprawnień. * Uprawnienie **EnforcementOperations** może być nadane wyłącznie wtedy, * gdy podmiot kontekstu ma rolę **EnforcementAuthority** (organ egzekucyjny) * lub **CourtBailiff** (komornik sądowy). * * > Więcej informacji: * > - [Nadawanie uprawnień](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#nadawanie-uprawnie%C5%84-osobom-fizycznym-do-pracy-w-ksef) * * **Wymagane uprawnienia**: `CredentialsManage`. */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "subjectIdentifier": { * "type": "Pesel", * "value": "15062788702" * }, * "permissions": [ * "InvoiceRead", * "InvoiceWrite", * "Introspection", * "CredentialsRead" * ], * "description": "Opis uprawnienia", * "subjectDetails": { * "subjectDetailsType": "PersonByIdentifier", * "personById": { * "firstName": "Adam", * "lastName": "Abacki" * } * } * } */ "application/json": WithRequired; }; }; responses: { /** @description Accepted */ 202: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20250626-EG-333C814000-C529F710D8-D2" * } */ "application/json": components["schemas"]["PermissionsOperationResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/query/authorizations/grants": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Pobranie listy uprawnień podmiotowych do obsługi faktur * @description Metoda pozwala na odczytanie uprawnień podmiotowych: * - otrzymanych przez podmiot bieżącego kontekstu * - nadanych przez podmiot bieżącego kontekstu * * Wybór listy nadanych lub otrzymanych uprawnień odbywa się przy użyciu parametru **queryType**. * * Uprawnienia zwracane przez operację obejmują: * - **SelfInvoicing** – wystawianie faktur w trybie samofakturowania * - **TaxRepresentative** – wykonywanie operacji przedstawiciela podatkowego * - **RRInvoicing** – wystawianie faktur VAT RR * - **PefInvoicing** – wystawianie faktur PEF * * Odpowiedź może być filtrowana na podstawie następujących parametrów: * - **authorizingIdentifier** – identyfikator podmiotu uprawniającego (stosowane przy queryType = Received) * - **authorizedIdentifier** – identyfikator podmiotu uprawnionego (stosowane przy queryType = Granted) * - **permissionTypes** – lista rodzajów wyszukiwanych uprawnień * * #### Stronicowanie wyników * Zapytanie zwraca **jedną stronę wyników** o numerze i rozmiarze podanym w ścieżce. * - Przy pierwszym wywołaniu należy ustawić parametr `pageOffset = 0`. * - Jeżeli dostępna jest kolejna strona wyników, w odpowiedzi pojawi się flaga **`hasMore`**. * - W takim przypadku można wywołać zapytanie ponownie z kolejnym numerem strony. * * > Więcej informacji: * > - [Pobieranie listy uprawnień](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#pobranie-listy-uprawnie%C5%84-podmiotowych-do-obs%C5%82ugi-faktur) * * **Sortowanie:** * * - startDate (Desc) * - id (Asc) * * * * **Wymagane uprawnienia**: `CredentialsManage`, `CredentialsRead`, `PefInvoiceWrite`. */ post: { parameters: { query?: { /** @description Numer strony wyników. */ pageOffset?: number; /** @description Rozmiar strony wyników. */ pageSize?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "authorizedIdentifier": { * "type": "Nip", * "value": "7762811692" * }, * "queryType": "Granted", * "permissionTypes": [ * "SelfInvoicing", * "TaxRepresentative", * "RRInvoicing" * ] * } */ "application/json": WithRequired; }; }; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "authorizationGrants": [ * { * "id": "0c9a72e8-f344-457f-9c16-7c640eb60242", * "authorIdentifier": { * "type": "Pesel", * "value": "15062788702" * }, * "authorizedEntityIdentifier": { * "type": "Nip", * "value": "7762811692" * }, * "authorizingEntityIdentifier": { * "type": "Nip", * "value": "1134256681" * }, * "authorizationScope": "SelfInvoicing", * "description": "Uprawnienie podmiotowe do samofakturowania", * "startDate": "2025-06-22T10:41:11+00:00" * } * ], * "hasMore": false * } */ "application/json": components["schemas"]["QueryEntityAuthorizationPermissionsResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/query/entities/grants": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Pobranie listy uprawnień do obsługi faktur w bieżącym kontekście * @description Metoda pozwala na odczytanie otrzymanych uprawnień do obsługi faktur w bieżącym kontekście logowania. * * W odpowiedzi przekazywane są następujące uprawnienia: * - nadane podmiotowi do obsługi faktur przez inny podmiot * * Uprawnienia zwracane przez operację obejmują: * - **InvoiceWrite** – wystawianie faktur * - **InvoiceRead** – przeglądanie faktur * * Odpowiedź może być filtrowana na podstawie następujących parametrów: * - **contextIdentifier** – identyfikator podmiotu, który nadał uprawnienie do obsługi faktur * * #### Stronicowanie wyników * Zapytanie zwraca **jedną stronę wyników** o numerze i rozmiarze podanym w ścieżce. * - Przy pierwszym wywołaniu należy ustawić parametr `pageOffset = 0`. * - Jeżeli dostępna jest kolejna strona wyników, w odpowiedzi pojawi się flaga **`hasMore`**. * - W takim przypadku można wywołać zapytanie ponownie z kolejnym numerem strony. * * > Więcej informacji: * > - [Pobieranie listy uprawnień](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#pobranie-listy-uprawnie%C5%84-do-obs%C5%82ugi-faktur-w-bie%C5%BC%C4%85cym-kontek%C5%9Bcie) * * **Sortowanie:** * * - startDate (Desc) * - id (Asc) * * * * **Wymagane uprawnienia**: `CredentialsManage`, `CredentialsRead`. */ post: { parameters: { query?: { /** @description Numer strony wyników. */ pageOffset?: number; /** @description Rozmiar strony wyników. */ pageSize?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "contextIdentifier": { * "type": "Nip", * "value": "3568707925" * } * } */ "application/json": components["schemas"]["EntityPermissionsQueryRequest"]; }; }; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "permissions": [ * { * "id": "0c9a72e8-f344-457f-9c16-7c640eb60242", * "contextIdentifier": { * "type": "Nip", * "value": "3568707925" * }, * "permissionScope": "InvoiceWrite", * "description": "Opis uprawnienia", * "startDate": "2025-06-22T10:41:11+00:00", * "canDelegate": false * } * ], * "hasMore": false * } */ "application/json": components["schemas"]["QueryEntityPermissionsResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/query/entities/roles": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie listy ról podmiotu * @description Metoda pozwala na **odczytanie listy ról podmiotu bieżącego kontekstu logowania**. * * #### Role podmiotów zwracane przez operację: * - **CourtBailiff** – komornik sądowy * - **EnforcementAuthority** – organ egzekucyjny * - **LocalGovernmentUnit** – nadrzędna JST * - **LocalGovernmentSubUnit** – podrzędne JST * - **VatGroupUnit** – grupa VAT * - **VatGroupSubUnit** – członek grupy VAT * * #### Stronicowanie wyników * Zapytanie zwraca **jedną stronę wyników** o numerze i rozmiarze podanym w ścieżce. * - Przy pierwszym wywołaniu należy ustawić parametr `pageOffset = 0`. * - Jeżeli dostępna jest kolejna strona wyników, w odpowiedzi pojawi się flaga **`hasMore`**. * - W takim przypadku można wywołać zapytanie ponownie z kolejnym numerem strony. * * > Więcej informacji: * > - [Pobieranie listy ról](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#pobranie-listy-r%C3%B3l-podmiotu) * * **Sortowanie:** * * - startDate (Desc) * - id (Asc) * * * * **Wymagane uprawnienia**: `CredentialsManage`, `CredentialsRead`. */ get: { parameters: { query?: { /** @description Numer strony wyników. */ pageOffset?: number; /** @description Rozmiar strony wyników. */ pageSize?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "roles": [ * { * "role": "EnforcementAuthority", * "description": "Organ egzekucyjny", * "startDate": "2025-06-22T10:41:11+00:00" * } * ], * "hasMore": false * } */ "application/json": components["schemas"]["QueryEntityRolesResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/query/eu-entities/grants": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Pobranie listy uprawnień administratorów lub reprezentantów podmiotów unijnych uprawnionych do samofakturowania * @description Metoda pozwala na odczytanie uprawnień administratorów lub reprezentantów podmiotów unijnych: * - Jeżeli kontekstem logowania jest NIP, możliwe jest odczytanie uprawnień administratorów podmiotów unijnych powiązanych z podmiotem bieżącego kontekstu, czyli takich, dla których pierwszy człon kontekstu złożonego jest równy NIP-owi kontekstu logowania. * - Jeżeli kontekst logowania jest złożony (NIP-VAT UE), możliwe jest pobranie wszystkich uprawnień administratorów i reprezentantów podmiotu w bieżącym kontekście złożonym. * * Uprawnienia zwracane przez operację obejmują: * - **VatUeManage** – zarządzanie uprawnieniami w ramach podmiotu unijnego * - **InvoiceWrite** – wystawianie faktur * - **InvoiceRead** – przeglądanie faktur * - **Introspection** – przeglądanie historii sesji * * Odpowiedź może być filtrowana na podstawie następujących parametrów: * - **vatUeIdentifier** – identyfikator podmiotu unijnego * - **authorizedFingerprintIdentifier** – odcisk palca certyfikatu uprawnionej osoby lub podmiotu * - **permissionTypes** – lista rodzajów wyszukiwanych uprawnień * * #### Stronicowanie wyników * Zapytanie zwraca **jedną stronę wyników** o numerze i rozmiarze podanym w ścieżce. * - Przy pierwszym wywołaniu należy ustawić parametr `pageOffset = 0`. * - Jeżeli dostępna jest kolejna strona wyników, w odpowiedzi pojawi się flaga **`hasMore`**. * - W takim przypadku można wywołać zapytanie ponownie z kolejnym numerem strony. * * > Więcej informacji: * > - [Pobieranie listy uprawnień](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#pobranie-listy-uprawnie%C5%84-administrator%C3%B3w-lub-reprezentant%C3%B3w-podmiot%C3%B3w-unijnych-uprawnionych-do-samofakturowania) * * **Sortowanie:** * * - startDate (Desc) * - id (Asc) * * * * **Wymagane uprawnienia**: `CredentialsManage`, `CredentialsRead`, `VatUeManage`. */ post: { parameters: { query?: { /** @description Numer strony wyników. */ pageOffset?: number; /** @description Rozmiar strony wyników. */ pageSize?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "vatUeIdentifier": "DE123456789012", * "permissionTypes": [ * "VatUeManage", * "Introspection" * ] * } */ "application/json": components["schemas"]["EuEntityPermissionsQueryRequest"]; }; }; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "permissions": [ * { * "id": "0c9a72e8-f344-457f-9c16-7c640eb60242", * "authorIdentifier": { * "type": "Pesel", * "value": "15062788702" * }, * "vatUeIdentifier": "DE123456789012", * "euEntityName": "Podmiot unijny", * "authorizedFingerprintIdentifier": "CEB3643BAC2C111ADDE971BDA5A80163441867D65389FC0BC0DFF8B4C1CD4E59", * "permissionScope": "VatUeManage", * "description": "Opis uprawnienia", * "startDate": "2025-06-22T10:41:11+00:00" * } * ], * "hasMore": false * } */ "application/json": components["schemas"]["QueryEuEntityPermissionsResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/query/personal/grants": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Pobranie listy własnych uprawnień * @description Metoda pozwala na odczytanie własnych uprawnień uwierzytelnionego klienta API w bieżącym kontekście logowania. * * W odpowiedzi przekazywane są następujące uprawnienia: * - nadane w sposób bezpośredni w bieżącym kontekście * - nadane przez podmiot nadrzędny * - nadane w sposób pośredni, jeżeli podmiot kontekstu logowania jest w uprawnieniu pośrednikiem lub podmiotem docelowym * - nadane podmiotowi do obsługi faktur przez inny podmiot, jeśli podmiot uwierzytelniony ma w bieżącym kontekście uprawnienia właścicielskie * * Uprawnienia zwracane przez operację obejmują: * - **CredentialsManage** – zarządzanie uprawnieniami * - **CredentialsRead** – przeglądanie uprawnień * - **InvoiceWrite** – wystawianie faktur * - **InvoiceRead** – przeglądanie faktur * - **Introspection** – przeglądanie historii sesji * - **SubunitManage** – zarządzanie podmiotami podrzędnymi * - **EnforcementOperations** – wykonywanie operacji egzekucyjnych * - **VatEuManage** – zarządzanie uprawnieniami w ramach podmiotu unijnego * * Odpowiedź może być filtrowana na podstawie następujących parametrów: * - **contextIdentifier** – identyfikator podmiotu, który nadał uprawnienie do obsługi faktur * - **targetIdentifier** – identyfikator podmiotu docelowego dla uprawnień nadanych pośrednio * - **permissionTypes** – lista rodzajów wyszukiwanych uprawnień * - **permissionState** – status uprawnienia * * #### Stronicowanie wyników * Zapytanie zwraca **jedną stronę wyników** o numerze i rozmiarze podanym w ścieżce. * - Przy pierwszym wywołaniu należy ustawić parametr `pageOffset = 0`. * - Jeżeli dostępna jest kolejna strona wyników, w odpowiedzi pojawi się flaga **`hasMore`**. * - W takim przypadku można wywołać zapytanie ponownie z kolejnym numerem strony. * * > Więcej informacji: * > - [Pobieranie listy uprawnień](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#pobranie-listy-w%C5%82asnych-uprawnie%C5%84) * * **Sortowanie:** * * - startDate (Desc) * - id (Asc) */ post: { parameters: { query?: { /** @description Numer strony wyników. */ pageOffset?: number; /** @description Rozmiar strony wyników. */ pageSize?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "contextIdentifier": { * "type": "Nip", * "value": "3568707925" * }, * "permissionTypes": [ * "InvoiceWrite" * ], * "permissionState": "Active" * } */ "application/json": components["schemas"]["PersonalPermissionsQueryRequest"]; }; }; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "permissions": [ * { * "id": "0c9a72e8-f344-457f-9c16-7c640eb60242", * "contextIdentifier": { * "type": "Nip", * "value": "3568707925" * }, * "authorizedIdentifier": { * "type": "Nip", * "value": "5247677742" * }, * "permissionScope": "InvoiceWrite", * "description": "Opis uprawnienia", * "permissionState": "Active", * "startDate": "2025-06-22T10:41:11+00:00", * "canDelegate": false * } * ], * "hasMore": false * } */ "application/json": components["schemas"]["QueryPersonalPermissionsResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/query/persons/grants": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Pobranie listy uprawnień do pracy w KSeF nadanych osobom fizycznym lub podmiotom * @description Metoda pozwala na odczytanie uprawnień nadanych osobie fizycznej lub podmiotowi. * Lista pobranych uprawnień może być dwóch rodzajów: * - Lista wszystkich uprawnień obowiązujących w bieżącym kontekście logowania (używana, gdy administrator chce przejrzeć uprawnienia wszystkich użytkowników w bieżącym kontekście) * - Lista wszystkich uprawnień nadanych w bieżącym kontekście przez uwierzytelnionego klienta API (używana, gdy administrator chce przejrzeć listę nadanych przez siebie uprawnień w bieżącym kontekście) * * Dla pierwszej listy (obowiązujących uprawnień) w odpowiedzi przekazywane są: * - osoby i podmioty mogące pracować w bieżącym kontekście z wyjątkiem osób uprawnionych w sposób pośredni * - osoby uprawnione w sposób pośredni przez podmiot bieżącego kontekstu * * Dla drugiej listy (nadanych uprawnień) w odpowiedzi przekazywane są: * - uprawnienia nadane w sposób bezpośredni do pracy w bieżącym kontekście lub w kontekście jednostek podrzędnych * - uprawnienia nadane w sposób pośredni do obsługi klientów podmiotu bieżącego kontekstu * * Uprawnienia zwracane przez operację obejmują: * - **CredentialsManage** – zarządzanie uprawnieniami * - **CredentialsRead** – przeglądanie uprawnień * - **InvoiceWrite** – wystawianie faktur * - **InvoiceRead** – przeglądanie faktur * - **Introspection** – przeglądanie historii sesji * - **SubunitManage** – zarządzanie podmiotami podrzędnymi * - **EnforcementOperations** – wykonywanie operacji egzekucyjnych * * Odpowiedź może być filtrowana na podstawie parametrów: * - **authorIdentifier** – identyfikator osoby, która nadała uprawnienie * - **authorizedIdentifier** – identyfikator osoby lub podmiotu uprawnionego * - **targetIdentifier** – identyfikator podmiotu docelowego dla uprawnień nadanych pośrednio * - **permissionTypes** – lista rodzajów wyszukiwanych uprawnień * - **permissionState** – status uprawnienia * - **queryType** – typ zapytania określający, która z dwóch list ma zostać zwrócona * * #### Stronicowanie wyników * Zapytanie zwraca **jedną stronę wyników** o numerze i rozmiarze podanym w ścieżce. * - Przy pierwszym wywołaniu należy ustawić parametr `pageOffset = 0`. * - Jeżeli dostępna jest kolejna strona wyników, w odpowiedzi pojawi się flaga **`hasMore`**. * - W takim przypadku można wywołać zapytanie ponownie z kolejnym numerem strony. * * > Więcej informacji: * > - [Pobieranie listy uprawnień](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#pobranie-listy-uprawnie%C5%84-do-pracy-w-ksef-nadanych-osobom-fizycznym-lub-podmiotom) * * **Sortowanie:** * * - startDate (Desc) * - id (Asc) * * * * **Wymagane uprawnienia**: `CredentialsManage`, `CredentialsRead`, `SubunitManage`. */ post: { parameters: { query?: { /** @description Numer strony wyników. */ pageOffset?: number; /** @description Rozmiar strony wyników. */ pageSize?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "authorIdentifier": { * "type": "Nip", * "value": "7762811692" * }, * "permissionTypes": [ * "CredentialsManage", * "CredentialsRead", * "InvoiceWrite" * ], * "permissionState": "Active", * "queryType": "PermissionsInCurrentContext" * } */ "application/json": WithRequired; }; }; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "permissions": [ * { * "id": "0c9a72e8-f344-457f-9c16-7c640eb60242", * "authorizedIdentifier": { * "type": "Nip", * "value": "7762811692" * }, * "targetIdentifier": { * "type": "Nip", * "value": "9786214922" * }, * "authorIdentifier": { * "type": "Pesel", * "value": "15062788702" * }, * "permissionScope": "InvoiceWrite", * "description": "praca dla klienta 9786214922; uprawniony NIP: 7762811692, Adam Abacki; pośrednik 3936518395", * "permissionState": "Active", * "startDate": "2025-06-22T10:41:11+00:00", * "canDelegate": false * } * ], * "hasMore": false * } */ "application/json": components["schemas"]["QueryPersonPermissionsResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/query/subordinate-entities/roles": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Pobranie listy podmiotów podrzędnych * @description Metoda pozwala na odczytanie listy podmiotów podrzędnych, * jeżeli podmiot bieżącego kontekstu ma rolę podmiotu nadrzędnego: * - **nadrzędna JST** – odczytywane są podrzędne JST, * - **grupa VAT** – odczytywane są podmioty będące członkami grupy VAT. * * Role podmiotów zwracane przez operację obejmują: * - **LocalGovernmentSubUnit** – podrzędne JST, * - **VatGroupSubUnit** – członek grupy VAT. * * Odpowiedź może być filtrowana według parametru: * - **subordinateEntityIdentifier** – identyfikator podmiotu podrzędnego. * * #### Stronicowanie wyników * Zapytanie zwraca **jedną stronę wyników** o numerze i rozmiarze podanym w ścieżce. * - Przy pierwszym wywołaniu należy ustawić parametr `pageOffset = 0`. * - Jeżeli dostępna jest kolejna strona wyników, w odpowiedzi pojawi się flaga **`hasMore`**. * - W takim przypadku można wywołać zapytanie ponownie z kolejnym numerem strony. * * > Więcej informacji: * > - [Pobieranie listy podmiotów podrzędnych](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#pobranie-listy-podmiot%C3%B3w-podrz%C4%99dnych) * * **Sortowanie:** * * - startDate (Desc) * - id (Asc) * * * * **Wymagane uprawnienia**: `CredentialsManage`, `CredentialsRead`, `SubunitManage`. */ post: { parameters: { query?: { /** @description Numer strony wyników. */ pageOffset?: number; /** @description Rozmiar strony wyników. */ pageSize?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "subordinateEntityIdentifier": { * "type": "Nip", * "value": "7762811692" * } * } */ "application/json": components["schemas"]["SubordinateEntityRolesQueryRequest"]; }; }; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "roles": [ * { * "subordinateEntityIdentifier": { * "type": "Nip", * "value": "7762811692" * }, * "role": "VatGroupSubUnit", * "description": "Członek grupy VAT 8373740478", * "startDate": "2025-06-22T10:41:11+00:00" * } * ], * "hasMore": false * } */ "application/json": components["schemas"]["QuerySubordinateEntityRolesResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/query/subunits/grants": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Pobranie listy uprawnień administratorów jednostek i podmiotów podrzędnych * @description Metoda pozwala na odczytanie uprawnień do zarządzania uprawnieniami nadanych administratorom: * - jednostek podrzędnych identyfikowanych identyfikatorem wewnętrznym * - podmiotów podrzędnych (podrzędnych JST lub członków grupy VAT) identyfikowanych przez NIP * * Lista zwraca wyłącznie uprawnienia do zarządzania uprawnieniami nadane z kontekstu bieżącego (z podmiotu nadrzędnego). * Nie są odczytywane uprawnienia nadane przez administratorów jednostek podrzędnych wewnątrz tych jednostek. * * Odpowiedź może być filtrowana na podstawie parametru: * - **subunitIdentifier** – identyfikator jednostki lub podmiotu podrzędnego * * #### Stronicowanie wyników * Zapytanie zwraca **jedną stronę wyników** o numerze i rozmiarze podanym w ścieżce. * - Przy pierwszym wywołaniu należy ustawić parametr `pageOffset = 0`. * - Jeżeli dostępna jest kolejna strona wyników, w odpowiedzi pojawi się flaga **`hasMore`**. * - W takim przypadku można wywołać zapytanie ponownie z kolejnym numerem strony. * * > Więcej informacji: * > - [Pobieranie listy uprawnień](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#pobranie-listy-uprawnie%C5%84-administrator%C3%B3w-jednostek-i-podmiot%C3%B3w-podrz%C4%99dnych) * * **Sortowanie:** * * - startDate (Desc) * - id (Asc) * * * * **Wymagane uprawnienia**: `CredentialsManage`, `CredentialsRead`, `SubunitManage`. */ post: { parameters: { query?: { /** @description Numer strony wyników. */ pageOffset?: number; /** @description Rozmiar strony wyników. */ pageSize?: number; }; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "subunitIdentifier": { * "type": "InternalId", * "value": "7762811692-12345" * } * } */ "application/json": components["schemas"]["SubunitPermissionsQueryRequest"]; }; }; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "permissions": [ * { * "id": "0c9a72e8-f344-457f-9c16-7c640eb60242", * "authorizedIdentifier": { * "type": "Fingerprint", * "value": "CEB3643BAC2C111ADDE971BDA5A80163441867D65389FC0BC0DFF8B4C1CD4E59" * }, * "subunitIdentifier": { * "type": "InternalId", * "value": "7762811692-12345" * }, * "authorIdentifier": { * "type": "Pesel", * "value": "15062788702" * }, * "permissionScope": "CredentialsManage", * "description": "Opis uprawnienia", * "startDate": "2025-06-22T10:41:11+00:00" * } * ], * "hasMore": false * } */ "application/json": components["schemas"]["QuerySubunitPermissionsResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/permissions/subunits/grants": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Nadanie uprawnień administratora podmiotu podrzędnego * @description Metoda pozwala na nadanie wskazanemu w żądaniu podmiotowi lub osobie fizycznej uprawnień administratora w kontekście: * - wskazanego NIP podmiotu podrzędnego – wyłącznie jeżeli podmiot bieżącego kontekstu logowania ma rolę podmiotu nadrzędnego: * - **LocalGovernmentUnit** * - **VatGroupUnit** * - wskazanego lub utworzonego identyfikatora wewnętrznego * * Wraz z utworzeniem administratora jednostki podrzędnej tworzony jest identyfikator wewnętrzny składający się z numeru NIP podmiotu kontekstu logowania oraz 5 cyfr unikalnie identyfikujących jednostkę wewnętrzną. * Ostatnia cyfra musi być poprawną sumą kontrolną, która jest obliczana według poniższego algorytmu. * * Algorytm używa naprzemiennych wag (1×, 3×, 1×, 3×, ...), sumuje wyniki i zwraca resztę z dzielenia przez 10. * * Przykład: * - Wejście: "6824515772-1234" (bez cyfry kontrolnej) * - Pozycja 0 (1. cyfra): 6 × 1 = 6 * - Pozycja 1 (2. cyfra): 8 × 3 = 24 * - Pozycja 2 (3. cyfra): 2 × 1 = 2 * - Pozycja 3 (4. cyfra): 4 × 3 = 12 * - Pozycja 4 (5. cyfra): 5 × 1 = 5 * - Pozycja 5 (6. cyfra): 1 × 3 = 3 * - Pozycja 6 (7. cyfra): 5 × 1 = 5 * - Pozycja 7 (8. cyfra): 7 × 3 = 21 * - Pozycja 8 (9. cyfra): 7 × 1 = 7 * - Pozycja 9 (10. cyfra): 2 × 3 = 6 * - Pozycja 10 (11. cyfra): 1 × 1 = 1 * - Pozycja 11 (12. cyfra): 2 × 3 = 6 * - Pozycja 12 (13. cyfra): 3 × 1 = 3 * - Pozycja 13 (14. cyfra): 4 × 3 = 12 * - Suma: 6 + 24 + 2 + 12 + 5 + 3 + 5 + 21 + 7 + 6 + 1 + 6 + 3 + 12 = 113 * - Cyfra kontrolna (15. cyfra): 113 % 10 = 3 * * W żądaniu podaje się również nazwę tej jednostki. * * Uprawnienia administratora jednostki podrzędnej obejmują: * - **CredentialsManage** – zarządzanie uprawnieniami * * Metoda automatycznie nadaje powyższe uprawnienie, bez konieczności podawania go w żądaniu. * * > Więcej informacji: * > - [Nadawanie uprawnień](https://github.com/CIRFMF/ksef-docs/blob/main/uprawnienia.md#nadanie-uprawnie%C5%84-administratora-podmiotu-podrz%C4%99dnego) * * **Wymagane uprawnienia**: `SubunitManage`. */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "subjectIdentifier": { * "type": "Pesel", * "value": "15062788702" * }, * "contextIdentifier": { * "type": "InternalId", * "value": "7762811692-12345" * }, * "description": "Opis uprawnienia", * "subunitName": "Jednostka 014", * "subjectDetails": { * "subjectDetailsType": "PersonByIdentifier", * "personById": { * "firstName": "Adam", * "lastName": "Abacki" * } * } * } */ "application/json": WithRequired; }; }; responses: { /** @description Accepted */ 202: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20250626-EG-333C814000-C529F710D8-D2" * } */ "application/json": components["schemas"]["PermissionsOperationResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/rate-limits": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie aktualnie obowiązujących limitów API * @description Zwraca wartości aktualnie obowiązujących limitów ilości żądań przesyłanych do API. */ get: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "onlineSession": { * "perSecond": 10, * "perMinute": 30, * "perHour": 120 * }, * "batchSession": { * "perSecond": 10, * "perMinute": 20, * "perHour": 60 * }, * "invoiceSend": { * "perSecond": 10, * "perMinute": 30, * "perHour": 180 * }, * "invoiceStatus": { * "perSecond": 30, * "perMinute": 120, * "perHour": 1200 * }, * "sessionList": { * "perSecond": 5, * "perMinute": 10, * "perHour": 60 * }, * "sessionInvoiceList": { * "perSecond": 10, * "perMinute": 20, * "perHour": 200 * }, * "sessionMisc": { * "perSecond": 10, * "perMinute": 120, * "perHour": 1200 * }, * "invoiceMetadata": { * "perSecond": 8, * "perMinute": 16, * "perHour": 20 * }, * "invoiceExport": { * "perSecond": 4, * "perMinute": 8, * "perHour": 20 * }, * "invoiceExportStatus": { * "perSecond": 10, * "perMinute": 60, * "perHour": 600 * }, * "invoiceDownload": { * "perSecond": 8, * "perMinute": 16, * "perHour": 64 * }, * "other": { * "perSecond": 10, * "perMinute": 30, * "perHour": 120 * } * } */ "application/json": components["schemas"]["EffectiveApiRateLimits"]; }; }; 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/security/public-key-certificates": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie certyfikatów * @description Zwraca informacje o kluczach publicznych używanych do szyfrowania danych przesyłanych do systemu KSeF. */ get: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example [ * { * "certificate": "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwocTwdNgt2+PXJ2fcB7k1kn5eFUTXBeep9pH...", * "validFrom": "2024-07-11T12:23:56.0154302+00:00", * "validTo": "2028-07-11T12:23:56.0154302+00:00", * "usage": [ * "KsefTokenEncryption", * "SymmetricKeyEncryption" * ] * } * ] */ "application/json": components["schemas"]["PublicKeyCertificate"][]; }; }; 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 60 | - | - | - */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/sessions": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie listy sesji * @description Zwraca listę sesji spełniających podane kryteria wyszukiwania. * * * * **Sortowanie:** * * - dateCreated (Desc) * * * **Wymagane uprawnienia**: * - `Introspection`/`EnforcementOperations` – pozwala pobrać wszystkie sesje w bieżącym kontekście uwierzytelnienia `(ContextIdentifier)`. * - `InvoiceWrite` – pozwala pobrać wyłącznie sesje utworzone przez podmiot uwierzytelniający, czyli podmiot inicjujący uwierzytelnienie. */ get: { parameters: { query: { /** @description Data zamknięcia sesji (od). */ dateClosedFrom?: string; /** @description Data zamknięcia sesji (do). */ dateClosedTo?: string; /** @description Data utworzenia sesji (od). */ dateCreatedFrom?: string; /** @description Data utworzenia sesji (do). */ dateCreatedTo?: string; /** @description Data ostatniej aktywności (wysyłka faktury lub zmiana statusu) w ramach sesji (od). */ dateModifiedFrom?: string; /** @description Data ostatniej aktywności (wysyłka faktury lub zmiana statusu) w ramach sesji (do). */ dateModifiedTo?: string; /** @description Rozmiar strony. */ pageSize?: number; /** @description Numer referencyjny sesji. */ referenceNumber?: components["schemas"]["ReferenceNumber"]; /** * @description Typ sesji. * | Wartość | Opis | * | --- | --- | * | Online | Wysyłka interaktywna (pojedyncze faktury). | * | Batch | Wysyłka wsadowa (paczka faktur). | */ sessionType: components["schemas"]["SessionType"]; /** * @description Statusy sesji. * | Wartość | Opis | * | --- | --- | * | InProgress | Sesja aktywna. | * | Succeeded | Sesja przetworzona poprawnie. W trakcie przetwarzania sesji nie wystąpiły żadne błędy, ale część faktur nadal mogła zostać odrzucona. | * | Failed | Sesja nie przetworzona z powodu błędów. Na etapie rozpoczynania lub kończenia sesji wystąpiły błędy, które nie pozwoliły na jej poprawne przetworzenie. | * | Cancelled | Sesja anulowania. Został przekroczony czas na wysyłkę w sesji wsadowej, lub nie przesłano żadnych faktur w sesji interaktywnej. | */ statuses?: components["schemas"]["CommonSessionStatus"][]; }; header?: { /** @description Token służący do pobrania kolejnej strony wyników. */ "x-continuation-token"?: string; }; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "continuationToken": "W3sidG9rZW4iOiIrUklEOn4zeHd0QU1SM3dYYjRCd0FBQUFBQUNBPT0jUlQ6MSNUUkM6MTAjSVNWOjIjSUVPOjY1NTY3I1FDRjo4I0ZQQzpBZ2dBQUFBQUFDQUFBQVlBQUFBQUlBQUFBQUFBQUFBZ0FBQVVBUEVIQUVGdGdJUUFFUUJBQUJBRUFCQVVoZ1NBQXdBQUFBQWdBQUFHQUhFa0NFQWxnQVFBQUFBQUlBQUFGZ0F5Q0FVZ0VBRC9nRE9BRFlFdWdIcUF5SXBEZ0IrQUJnQUFBQUFnQUFBQ0FPNlYiLCJyYW5nZSI6eyJtaW4iOiIiLCJtYXgiOiIwNUMxREYyQjVGMzU5OCJ9fV0=", * "sessions": [ * { * "referenceNumber": "20250925-SO-2F67776000-97273B191A-65", * "status": { * "code": 200, * "description": "Sesja interaktywna przetworzona pomyślnie" * }, * "dateCreated": "2025-09-25T13:48:26.8700925+00:00", * "dateUpdated": "2025-09-26T02:16:07+00:00", * "validUntil": "2025-09-26T01:48:26.8700925+00:00", * "totalInvoiceCount": 2, * "successfulInvoiceCount": 2, * "failedInvoiceCount": 0 * }, * { * "referenceNumber": "20250928-SO-494B541000-3AD87C01BA-5D", * "status": { * "code": 200, * "description": "Sesja interaktywna przetworzona pomyślnie" * }, * "dateCreated": "2025-09-28T21:20:54.5936927+00:00", * "dateUpdated": "2025-09-29T10:19:28+00:00", * "validUntil": "2025-09-29T09:20:54.5936927+00:00", * "totalInvoiceCount": 3, * "successfulInvoiceCount": 3, * "failedInvoiceCount": 0 * } * ] * } */ "application/json": components["schemas"]["SessionsQueryResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|-----------------------------------------------------|-------------------------------------------------------------| * | 21418 | Przekazany token kontynuacji ma nieprawidłowy format. | | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 5 | 10 | 60 | sessionList */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/sessions/{referenceNumber}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie statusu sesji * @description Sprawdza bieżący status sesji o podanym numerze referencyjnym. * * **Wymagane uprawnienia**: `InvoiceWrite`, `Introspection`, `PefInvoiceWrite`, `EnforcementOperations`. */ get: { parameters: { query?: never; header?: never; path: { /** @description Numer referencyjny sesji. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "status": { * "code": 200, * "description": "Sesja interaktywna przetworzona pomyślnie" * }, * "dateCreated": "2025-09-18T15:00:30+00:00", * "dateUpdated": "2025-09-18T15:01:20+00:00", * "upo": { * "pages": [ * { * "referenceNumber": "20250918-EU-2EBD6FA000-242EB9B66D-43", * "downloadUrl": "https://api-test.ksef.mf.gov.pl/storage/01/20250918-so-3789a40000-20373e1269-a3/session-upo/upo_00.xml?sv=2025-01-05&st=2025-09-18T14%3A55%3A50Z&se=2025-09-21T15%3A00%3A50Z&sr=b&sp=r&sig=ZlQO6Xtzu3VQQDwmEMfb0VryMxe9WcUgWtkdiB6X2Qo%3D", * "downloadUrlExpirationDate": "2025-09-21T15:00:50+00:00" * } * ] * }, * "invoiceCount": 10, * "successfulInvoiceCount": 8, * "failedInvoiceCount": 2 * } */ "application/json": components["schemas"]["SessionStatusResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|-----------------------------------------------------|-------------------------------------------------------------| * | 21173 | Brak sesji o wskazanym numerze referencyjnym. | Sesja o numerze referencyjnym {referenceNumber} nie została znaleziona. | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 120 | 1200 | sessionMisc */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/sessions/{referenceNumber}/invoices": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie faktur sesji * @description Zwraca listę faktur przesłanych w sesji wraz z ich statusami, oraz informacje na temat ilości poprawnie i niepoprawnie przetworzonych faktur. * * **Wymagane uprawnienia**: `InvoiceWrite`, `Introspection`, `PefInvoiceWrite`, `EnforcementOperations`. */ get: { parameters: { query?: { /** @description Rozmiar strony wyników. */ pageSize?: number; }; header?: { /** @description Token służący do pobrania kolejnej strony wyników. */ "x-continuation-token"?: string; }; path: { /** @description Numer referencyjny sesji. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "continuationToken": "W34idG9rZW4iOiIrUklEOn4xUE5BQU5hcXJVOUFBQUFBQUFBQUFBPT0jUlQ6MSNUUkM6MTAjSVNWOjIjSUVPOjY1NTY3I1FDRjo4I0ZQQzpBVUFBQUFBQUFBQUFRZ0FBQUFBQUFBQT0iLCJyYW5nZSI6eyJtaW4iOiIiLCJtYXgiOiJGRiJ9fV0=", * "invoices": [ * { * "ordinalNumber": 1, * "invoiceNumber": "FA/XPWIC-7900685789/06/2025", * "ksefNumber": "5265877635-20250626-010080DD2B5E-26", * "referenceNumber": "20250918-EE-2F15D39000-242207E5C4-1B", * "invoiceHash": "mkht+3m5trnfxlTYhq3QFn74LkEO69MFNlsMAkCDSPA=", * "acquisitionDate": "2025-09-18T12:24:16.0154302+00:00", * "invoicingDate": "2025-09-18T12:23:56.0154302+00:00", * "permanentStorageDate": "2025-09-18T12:24:01.015432+00:00", * "upoDownloadUrl": "https://api-test.ksef.mf.gov.pl/storage/01/20250918-SB-3789A40000-20373E1269-A3/invoice-upo/upo_5265877635-20250626-010080DD2B5E-26.xml?sv=2025-01-05&st=2025-09-18T14%3A49%3A20Z&se=2025-09-21T14%3A54%3A20Z&sr=b&sp=r&sig=%2BUWFPA10gS580VhngGKW%2FZiOOtiHPOiTyMlxhG6ZvWs%3D", * "upoDownloadUrlExpirationDate": "2025-09-21T14:54:20+00:00", * "status": { * "code": 200, * "description": "Sukces" * } * }, * { * "ordinalNumber": 2, * "referenceNumber": "20250918-EE-2F20AD2000-242386DF86-52", * "invoiceHash": "mkht+3m5trnfxlTYhq3QFn74LkEO69MFNlsMAkCDSPA=", * "invoicingDate": "2025-09-18T12:23:56.0154302+00:00", * "status": { * "code": 440, * "description": "Duplikat faktury", * "details": [ * "Duplikat faktury. Faktura o numerze KSeF: 5265877635-20250626-010080DD2B5E-26 została już prawidłowo przesłana do systemu w sesji: 20250626-SO-2F14610000-242991F8C9-B4" * ], * "extensions": { * "originalSessionReferenceNumber": "20250626-SO-2F14610000-242991F8C9-B4", * "originalKsefNumber": "5265877635-20250626-010080DD2B5E-26" * } * } * } * ] * } */ "application/json": components["schemas"]["SessionInvoicesResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|-----------------------------------------------------|-------------------------------------------------------------| * | 21173 | Brak sesji o wskazanym numerze referencyjnym. | Sesja o numerze referencyjnym {referenceNumber} nie została znaleziona. | * | 21418 | Przekazany token kontynuacji ma nieprawidłowy format. | | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 20 | 200 | sessionInvoiceList */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/sessions/{referenceNumber}/invoices/{invoiceReferenceNumber}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie statusu faktury z sesji * @description Zwraca fakturę przesłaną w sesji wraz ze statusem. * * **Wymagane uprawnienia**: `InvoiceWrite`, `Introspection`, `PefInvoiceWrite`, `EnforcementOperations`. */ get: { parameters: { query?: never; header?: never; path: { /** @description Numer referencyjny faktury. */ invoiceReferenceNumber: components["schemas"]["ReferenceNumber"]; /** @description Numer referencyjny sesji. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "ordinalNumber": 2, * "referenceNumber": "20250626-EE-2F20AD2000-242386DF86-52", * "invoicingDate": "2025-07-11T12:23:56.0154302+00:00", * "status": { * "code": 440, * "description": "Duplikat faktury", * "details": [ * "Duplikat faktury. Faktura o numerze KSeF: 5265877635-20250626-010080DD2B5E-26 została już prawidłowo przesłana do systemu w sesji: 20250626-SO-2F14610000-242991F8C9-B4" * ], * "extensions": { * "originalSessionReferenceNumber": "20250626-SO-2F14610000-242991F8C9-B4", * "originalKsefNumber": "5265877635-20250626-010080DD2B5E-26" * } * } * } */ "application/json": components["schemas"]["SessionInvoiceStatusResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 30 | 120 | 1200 | invoiceStatus */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/sessions/{referenceNumber}/invoices/{invoiceReferenceNumber}/upo": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie UPO faktury z sesji na podstawie numeru referencyjnego faktury * @description Zwraca UPO faktury przesłanego w sesji na podstawie jego numeru KSeF. * * **Wymagane uprawnienia**: `InvoiceWrite`, `Introspection`, `PefInvoiceWrite`, `EnforcementOperations`. */ get: { parameters: { query?: never; header?: never; path: { /** @description Numer referencyjny faktury. */ invoiceReferenceNumber: components["schemas"]["ReferenceNumber"]; /** @description Numer referencyjny sesji. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { /** @description Skrót SHA-256 dokumentu UPO, zakodowany w formacie Base64 */ "x-ms-meta-hash"?: components["schemas"]["Sha256HashBase64"]; [name: string]: unknown; }; content: { "application/xml": string; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 120 | 1200 | sessionMisc */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/sessions/{referenceNumber}/invoices/failed": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie niepoprawnie przetworzonych faktur sesji * @description Zwraca listę niepoprawnie przetworzonych faktur przesłanych w sesji wraz z ich statusami. * * **Wymagane uprawnienia**: `InvoiceWrite`, `Introspection`, `PefInvoiceWrite`, `EnforcementOperations`. */ get: { parameters: { query?: { /** @description Rozmiar strony wyników. */ pageSize?: number; }; header?: { /** @description Token służący do pobrania kolejnej strony wyników. */ "x-continuation-token"?: string; }; path: { /** @description Numer referencyjny sesji. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "continuationToken": "...", * "invoices": [ * { * "ordinalNumber": 2, * "referenceNumber": "20250626-EE-2F20AD2000-242386DF86-52", * "invoiceHash": "mkht+3m5trnfxlTYhq3QFn74LkEO69MFNlsMAkCDSPA=", * "invoiceFileName": "invoice1.xml", * "invoicingDate": "2025-07-11T12:23:56.0154302+00:00", * "status": { * "code": 440, * "description": "Duplikat faktury", * "details": [ * "Duplikat faktury. Faktura o numerze KSeF: 5265877635-20250626-010080DD2B5E-26 została już prawidłowo przesłana do systemu w sesji: 20250626-SO-2F14610000-242991F8C9-B4" * ], * "extensions": { * "originalSessionReferenceNumber": "20250626-SO-2F14610000-242991F8C9-B4", * "originalKsefNumber": "5265877635-20250626-010080DD2B5E-26" * } * } * } * ] * } */ "application/json": components["schemas"]["SessionInvoicesResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|-----------------------------------------------------|-------------------------------------------------------------| * | 21173 | Brak sesji o wskazanym numerze referencyjnym. | Sesja o numerze referencyjnym {referenceNumber} nie została znaleziona. | * | 21418 | Przekazany token kontynuacji ma nieprawidłowy format. | | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 20 | 200 | sessionInvoiceList */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/sessions/{referenceNumber}/invoices/ksef/{ksefNumber}/upo": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie UPO faktury z sesji na podstawie numeru KSeF * @description Zwraca UPO faktury przesłanego w sesji na podstawie jego numeru KSeF. * * **Wymagane uprawnienia**: `InvoiceWrite`, `Introspection`, `PefInvoiceWrite`, `EnforcementOperations`. */ get: { parameters: { query?: never; header?: never; path: { /** @description Numer KSeF faktury. */ ksefNumber: components["schemas"]["KsefNumber"]; /** @description Numer referencyjny sesji. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { /** @description Skrót SHA-256 dokumentu UPO, zakodowany w formacie Base64 */ "x-ms-meta-hash"?: components["schemas"]["Sha256HashBase64"]; [name: string]: unknown; }; content: { "application/xml": string; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|-----------------------------------------------------|----------------------------------------------------------------------------------------------------------------| * | 21178 | Nie znaleziono UPO dla podanych kryteriów. | UPO o numerze KSeF {ksefNumber} i numerze referencyjnym sesji {referenceNumber} nie zostało znalezione. | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 120 | 1200 | sessionMisc */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/sessions/{referenceNumber}/upo/{upoReferenceNumber}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie UPO dla sesji * @description Zwraca XML zawierający zbiorcze UPO dla sesji. * * **Wymagane uprawnienia**: `InvoiceWrite`, `Introspection`, `PefInvoiceWrite`, `EnforcementOperations`. */ get: { parameters: { query?: never; header?: never; path: { /** @description Numer referencyjny sesji. */ referenceNumber: components["schemas"]["ReferenceNumber"]; /** @description Numer referencyjny UPO. */ upoReferenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { /** @description Skrót SHA-256 dokumentu UPO, zakodowany w formacie Base64 */ "x-ms-meta-hash"?: components["schemas"]["Sha256HashBase64"]; [name: string]: unknown; }; content: { "application/xml": string; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|-----------------------------------------------------|----------------------------------------------------------------------------------------------------------------| * | 21173 | Brak sesji o wskazanym numerze referencyjnym. | Sesja o numerze referencyjnym {referenceNumber} nie została znaleziona. | * | 21178 | Nie znaleziono UPO dla podanych kryteriów. | UPO o numerze referencyjnym {referenceNumber} dla sesji {referenceNumber} nie zostało znalezione. | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 120 | 1200 | sessionMisc */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/sessions/batch": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Otwarcie sesji wsadowej * @description Otwiera sesję do wysyłki wsadowej faktur. Należy przekazać schemat wysyłanych faktur, informacje o paczce faktur oraz informacje o kluczu używanym do szyfrowania. * * > Więcej informacji: * > - [Przygotowanie paczki faktur](https://github.com/CIRFMF/ksef-docs/blob/main/sesja-wsadowa.md) * > - [Klucz publiczny Ministerstwa Finansów](/docs/v2/index.html#tag/Certyfikaty-klucza-publicznego) * * **Wymagane uprawnienia**: `InvoiceWrite`, `EnforcementOperations`. */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "formCode": { * "systemCode": "FA (2)", * "schemaVersion": "1-0E", * "value": "FA" * }, * "batchFile": { * "fileSize": 16037, * "fileHash": "WO86CC+1Lef11wEosItld/NPwxGN8tobOMLqk9PQjgs=", * "fileParts": [ * { * "ordinalNumber": 1, * "fileSize": 16048, * "fileHash": "23ZyDAN0H/+yhC/En2xbNfF0tajAWSfejDaXD7fc2AE=" * } * ] * }, * "encryption": { * "encryptedSymmetricKey": "bYqmPAglF01AxZim4oNa+1NerhZYfFgLMnvksBprUur1aesQ0Y5jsmOIfCrozfMkF2tjdO+uOsBg4FPlDgjChwN2/tz2Hqwtxq3RkTr1SjY4x8jxJFpPedcS7EI+XO8C+i9mLj7TFx9p/bg07yM9vHtMAk5b88Ay9Qc3+T5Ch1DM2ClR3sVu2DqdlKzmbINY+rhfGtXn58Qo0XRyESGgc6M0iTZVBRPuPXLnD8a1KpOneCpNzLwxgT6Ei3ivLOpPWT53PxkRTaQ8puj6CIiCKo4FHQzHuI/NmrAhYU7TkNm2kymP/OxBgWdg3XB74tqNFfT8RZN1bZXuPhBidDOqa+xsqY3E871FSDmQwZf58HmoNl31XNvpnryiRGfnAISt+m+ELqgksAresVu6E9poUL1yiff+IOHSZABoYpNiqwnbT8qyW1uk8lKLyFVFu+kOsbzBk1OWWHqSkNFDaznDa2MKjHonOXI0uyKaKWvoBFC4dWN1PVumfpSSFAeYgNpAyVrZdcVOuiliEWepTDjGzJoOafTvwr5za2S6B5bPECDpX7JXazV7Olkq7ezG0w8y3olx+0C+NHoCk8B5/cm4gtVHTgKjiLSGpKJVOJABLXFkOyIOjbQsVe4ryX0Qy+SfL7JIQvTWvM5xkCoOMbzLdMo9tNo5qE34sguFI+lIevY=", * "initializationVector": "jWpJLNBHJ5pQEGCBglmIAw==" * }, * "offlineMode": false * } */ "application/json": WithRequired; }; }; responses: { /** @description Created */ 201: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20250626-SB-213D593000-4DE10D80A5-E9", * "partUploadRequests": [ * { * "ordinalNumber": 1, * "method": "PUT", * "url": "https://ksef-api-storage/storage/00/20250626-sb-213d593000-4de10d80a5-e9/batch-parts/1?skoid=1ad7cfe8-2cb2-406b-b96c-6eefb55794db&sktid=647754c7-3974-4442-a425-c61341b61c69&skt=2025-06-26T09%3A40%3A54Z&ske=2025-06-26T10%3A10%3A54Z&sks=b&skv=2025-01-05&sv=2025-01-05&se=2025-06-26T10%3A10%3A54Z&sr=b&sp=w&sig=8mKZEU8Reuz%2Fn7wHi4T%2FY8BzLeD5l8bR2xJsBxIgDEY%3D", * "headers": { * "x-ms-blob-type": "BlockBlob" * } * } * ] * } */ "application/json": components["schemas"]["OpenBatchSessionResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|-----------------------------------------------------|---------------------------------------------------------------------------| * | 21157 | Nieprawidłowy rozmiar części pakietu. | {treść błędu walidacji} | * | 21161 | Przekroczono dozwoloną liczbę części pakietu. | {treść błędu walidacji} | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 20 | 60 | batchSession */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/sessions/batch/{referenceNumber}/close": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Zamknięcie sesji wsadowej * @description Zamyka sesję wsadową, rozpoczyna procesowanie paczki faktur i generowanie UPO dla prawidłowych faktur oraz zbiorczego UPO dla sesji. * * **Wymagane uprawnienia**: `InvoiceWrite`, `EnforcementOperations`. */ post: { parameters: { query?: never; header?: never; path: { /** @description Numer referencyjny sesji */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description No Content */ 204: { headers: { [name: string]: unknown; }; content?: never; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|----------------------------------------------------------------------|--------------------------------------------------------------------------------| * | 21157 | Nieprawidłowy rozmiar części pakietu. | Zadeklarowany rozmiar części '{ordinalNumber}' nie zgadza się z rzeczywistym. | * | 21173 | Brak sesji o wskazanym numerze referencyjnym. | Sesja o numerze referencyjnym {referenceNumber} nie została znaleziona. | * | 21180 | Status sesji nie pozwala na wykonanie operacji. | Status sesji {code} uniemożliwia jej zamknięcie. | * | 21205 | Pakiet nie może być pusty. | Nie przesłano zadeklarowanej '{ordinalNumber}' części pliku. | * | 21208 | Czas oczekiwania na requesty upload lub finish został przekroczony. | Sesja anulowana, przekroczony czas wysyłki. | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 20 | 60 | batchSession */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/sessions/online": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Otwarcie sesji interaktywnej * @description Otwiera sesję do wysyłki pojedynczych faktur. Należy przekazać schemat wysyłanych faktur oraz informacje o kluczu używanym do szyfrowania. * * > Więcej informacji: * > - [Otwarcie sesji interaktywnej](https://github.com/CIRFMF/ksef-docs/blob/main/sesja-interaktywna.md#1-otwarcie-sesji) * > - [Klucz publiczny Ministerstwa Finansów](/docs/v2/index.html#tag/Certyfikaty-klucza-publicznego) * * **Wymagane uprawnienia**: `InvoiceWrite`, `PefInvoiceWrite`, `EnforcementOperations`. */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "formCode": { * "systemCode": "FA (3)", * "schemaVersion": "1-0E", * "value": "FA" * }, * "encryption": { * "encryptedSymmetricKey": "bdUVjqLj+y2q6aBUuLxxXYAMqeDuIBRTyr+hB96DaWKaGzuVHw9p+Nk9vhzgF/Q5cavK2k6eCh6SdsrWI0s9mFFj4A4UJtsyD8Dn3esLfUZ5A1juuG3q3SBi/XOC/+9W+0T/KdwdE393mbiUNyx1K/0bw31vKJL0COeJIDP7usAMDl42/H1TNvkjk+8iZ80V0qW7D+RZdz+tdiY1xV0f2mfgwJ46V0CpZ+sB9UAssRj+eVffavJ0TOg2b5JaBxE8MCAvrF6rO5K4KBjUmoy7PP7g1qIbm8xI2GO0KnfPOO5OWj8rsotRwBgu7x19Ine3qYUvuvCZlXRGGZ5NHIzWPM4O74+gNalaMgFCsmv8mMhETSU4SfAGmJr9edxPjQSbgD5i2X4eDRDMwvyaAa7CP1b2oICju+0L7Fywd2ZtUcr6El++eTVoi8HYsTArntET++gULT7XXjmb8e3O0nxrYiYsE9GMJ7HBGv3NOoJ1NTm3a7U6+c0ZJiBVLvn6xXw10LQX243xH+ehsKo6djQJKYtqcNPaXtCwM1c9RrsOx/wRXyWCtTffqLiaR0LbYvfMJAcEWceG+RaeAx4p37OiQqdJypd6LAv9/0ECWK8Bip8yyoA+0EYiAJb9YuDz2YlQX9Mx9E9FzFIAsgEQ2w723HZYWgPywLb+dlsum4lTZKQ=", * "initializationVector": "OmtDQdl6vkOI1GLKZSjgEg==" * } * } */ "application/json": WithRequired; }; }; responses: { /** @description Created */ 201: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20250625-SO-2C3E6C8000-B675CF5D68-07", * "validUntil": "2025-07-11T12:23:56.0154302+00:00" * } */ "application/json": components["schemas"]["OpenOnlineSessionResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | onlineSession */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/sessions/online/{referenceNumber}/close": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Zamknięcie sesji interaktywnej * @description Zamyka sesję interaktywną i rozpoczyna generowanie zbiorczego UPO dla sesji. * * **Wymagane uprawnienia**: `InvoiceWrite`, `PefInvoiceWrite`, `EnforcementOperations`. */ post: { parameters: { query?: never; header?: never; path: { /** @description Numer referencyjny sesji */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description No Content */ 204: { headers: { [name: string]: unknown; }; content?: never; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|-----------------------------------------------------|----------------------------------------------------------------------------| * | 21173 | Brak sesji o wskazanym numerze referencyjnym. | Sesja o numerze referencyjnym {referenceNumber} nie została odnaleziona. | * | 21180 | Status sesji nie pozwala na wykonanie operacji. | Status sesji {code} uniemożliwia jej zamknięcie. | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | onlineSession */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/sessions/online/{referenceNumber}/invoices": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; get?: never; put?: never; /** * Wysłanie faktury * @description Przyjmuje zaszyfrowaną fakturę oraz jej metadane i rozpoczyna jej przetwarzanie. * * > Więcej informacji: * > - [Wysłanie faktury](https://github.com/CIRFMF/ksef-docs/blob/main/sesja-interaktywna.md#2-wys%C5%82anie-faktury) * * **Wymagane uprawnienia**: `InvoiceWrite`, `PefInvoiceWrite`, `EnforcementOperations`. */ post: { parameters: { query?: never; header?: never; path: { /** @description Numer referencyjny sesji */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; /** @description Dane faktury */ requestBody?: { content: { /** * @example { * "invoiceHash": "EbrK4cOSjW4hEpJaHU71YXSOZZmqP5++dK9nLgTzgV4=", * "invoiceSize": 6480, * "encryptedInvoiceHash": "miYb1z3Ljw5VucTZslv3Tlt+V/EK1V8Q8evD8HMQ0dc=", * "encryptedInvoiceSize": 6496, * "encryptedInvoiceContent": "...", * "offlineMode": false * } */ "application/json": WithRequired; }; }; responses: { /** @description Accepted */ 202: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20250625-EE-319D7EE000-B67F415CDC-2C" * } */ "application/json": components["schemas"]["SendInvoiceResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|-----------------------------------------------------|------------------------------------------------------------------------------------------------------------| * | 21155 | Przekroczono dozwoloną liczbę faktur w sesji. | Sesja o numerze referencyjnym {referenceNumber} osiągnęła dozwolony limit liczby faktur {invoiceLimit}. | * | 21166 | Korekta techniczna niedostępna. | Faktura posiada już przetworzoną prawidłowo korektę techniczną. | * | 21167 | Status faktury nie pozwala na korektę techniczną. | Nie można wysłać korekty technicznej do prawidłowo przetworzonej faktury. | * | 21173 | Brak sesji o wskazanym numerze referencyjnym. | Sesja o numerze referencyjnym {referenceNumber} nie została odnaleziona. | * | 21180 | Status sesji nie pozwala na wykonanie operacji. | Status sesji {code} uniemożliwia wysyłkę faktur. | * | 21402 | Nieprawidłowy rozmiar pliku. | Długość treści nie zgadza się z rozmiarem pliku. | * | 21403 | Nieprawidłowy skrót pliku. | Skrót treści nie zgadza się ze skrótem pliku. | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 180 | invoiceSend */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/tokens": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** * Pobranie listy wygenerowanych tokenów * @description **Sortowanie:** * * - dateCreated (Desc) */ get: { parameters: { query?: { /** @description Umożliwia filtrowanie tokenów po ich twórcy. Wartość parametru jest wyszukiwana w identyfikatorze (operacja nie rozróżnia wielkości liter). Należy podać co najmniej 3 znaki. */ authorIdentifier?: string; /** * @description Umożliwia filtrowanie tokenów po ich twórcy. Wartość parametru określa typ identyfikatora w którym będzie wyszukiwany ciąg znaków przekazany w parametrze `authorIdentifier`. * | Wartość | Opis | * | --- | --- | * | Nip | NIP. | * | Pesel | PESEL. | * | Fingerprint | Odcisk palca certyfikatu. | */ authorIdentifierType?: components["schemas"]["TokenAuthorIdentifierType"]; /** @description Umożliwia filtrowanie tokenów po opisie. Wartość parametru jest wyszukiwana w opisie tokena (operacja nie rozróżnia wielkości liter). Należy podać co najmniej 3 znaki. */ description?: string; /** @description Rozmiar strony wyników. */ pageSize?: number; /** * @description Status tokenów do zwrócenia. W przypadku braku parametru zwracane są wszystkie tokeny. Parametr można przekazać wielokrotnie. * | Wartość | Opis | * | --- | --- | * | Pending | Token został utworzony ale jest jeszcze w trakcie aktywacji i nadawania uprawnień. Nie może być jeszcze wykorzystywany do uwierzytelniania. | * | Active | Token jest aktywny i może być wykorzystywany do uwierzytelniania. | * | Revoking | Token jest w trakcie unieważniania. Nie może już być wykorzystywany do uwierzytelniania. | * | Revoked | Token został unieważniony i nie może być wykorzystywany do uwierzytelniania. | * | Failed | Nie udało się aktywować tokena. Należy wygenerować nowy token, obecny nie może być wykorzystywany do uwierzytelniania. | */ status?: components["schemas"]["AuthenticationTokenStatus"][]; }; header?: { /** @description Token służący do pobrania kolejnej strony wyników. */ "x-continuation-token"?: string; }; path?: never; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "continuationToken": "W3sidG9rZW4iOiIrUklEOn4zeHd0QUlqZUc5VkhCQUFBQUFBQUJBPT0jUlQ6MSNUUkM6MTAjSVNWOjIjSUVPOjY1NTY3I1FDRjo4I0ZQQzpBZ2dBQUFBQUFCQUFBQUFBQUFBQUVBQUFBQUFBQUFBUUFBQUVBRWVFMllFPSIsInJhbmdlIjp7Im1pbiI6IjA1QzFERjIxOUY5OTIwIiwibWF4IjoiRkYifX1d", * "tokens": [ * { * "referenceNumber": "20251001-EC-2DD3AFF000-A6B7F19A95-11", * "authorIdentifier": { * "type": "Nip", * "value": "5265877635" * }, * "contextIdentifier": { * "type": "Nip", * "value": "5265877635" * }, * "description": "Wystawianie i przeglądanie faktur.", * "requestedPermissions": [ * "InvoiceRead", * "InvoiceWrite" * ], * "dateCreated": "2025-10-01T13:20:52.9919681+00:00", * "status": "Active", * "statusDetails": [] * } * ] * } */ "application/json": components["schemas"]["QueryTokensResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|-----------------------------------------------------|-------------------------------------------------------------| * | 21418 | Przekazany token kontynuacji ma nieprawidłowy format. | | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; /** * Wygenerowanie nowego tokena * @description Zwraca token, który może być użyty do uwierzytelniania się w KSeF. * * Token może być generowany tylko w kontekście NIP lub identyfikatora wewnętrznego. Jest zwracany tylko raz. Zaczyna być aktywny w momencie gdy jego status zmieni się na `Active`. */ post: { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; requestBody?: { content: { /** * @example { * "permissions": [ * "InvoiceRead", * "InvoiceWrite" * ], * "description": "Wystawianie i przeglądanie faktur." * } */ "application/json": WithRequired; }; }; responses: { /** @description Accepted */ 202: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20251010-EC-1DCE3E3000-12ECB5B36E-45", * "token": "20251010-EC-1DCE3E3000-12ECB5B36E-45|internalId-5265877635-12345|919f704466624ce29cd5ac7b65ded5e7cccc112eee314f2aaa76e02cd16df7b9" * } */ "application/json": components["schemas"]["GenerateTokenResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |---------------------|------------------------------------------------------------|---------| * | 26001 | Nie można nadać tokenowi uprawnień których nie posiadasz. | Informacja o brakujących uprawnieniach. | * | 26002 | Nie można wygenerować tokena dla obecnego typu kontekstu. | Informacja o aktualnym i dozwolonych typach kontekstu. | * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; delete?: never; options?: never; head?: never; patch?: never; trace?: never; }; "/tokens/{referenceNumber}": { parameters: { query?: never; header?: never; path?: never; cookie?: never; }; /** Pobranie statusu tokena */ get: { parameters: { query?: never; header?: never; path: { /** @description Numer referencyjny tokena KSeF. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description OK */ 200: { headers: { [name: string]: unknown; }; content: { /** * @example { * "referenceNumber": "20251001-EC-220B0CE000-E228129563-96", * "authorIdentifier": { * "type": "Nip", * "value": "7762811692" * }, * "contextIdentifier": { * "type": "Nip", * "value": "5265877635" * }, * "description": "Wystawianie i przeglądanie faktur.", * "requestedPermissions": [ * "InvoiceWrite", * "InvoiceRead" * ], * "dateCreated": "2025-07-11T12:23:56.0154302+00:00", * "lastUseDate": "2025-07-11T12:23:56.0154302+00:00", * "status": "Pending", * "statusDetails": [] * } */ "application/json": components["schemas"]["TokenStatusResponse"]; }; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; put?: never; post?: never; /** * Unieważnienie tokena * @description Unieważniony token nie pozwoli już na uwierzytelnienie się za jego pomocą. Unieważnienie nie może zostać cofnięte. */ delete: { parameters: { query?: never; header?: never; path: { /** @description Numer referencyjny tokena KSeF. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; cookie?: never; }; requestBody?: never; responses: { /** @description No Content */ 204: { headers: { [name: string]: unknown; }; content?: never; }; /** * @description | ExceptionCode | ExceptionDescription | Details | * |-|-|-| * | 21405 | Błąd walidacji danych wejściowych. | {treść błędu z walidatora} | */ 400: { headers: { [name: string]: unknown; }; content: { "application/json": components["schemas"]["ExceptionResponse"]; }; }; /** @description Unauthorized */ 401: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["UnauthorizedProblemDetails"]; }; }; /** @description Forbidden */ 403: { headers: { [name: string]: unknown; }; content: { "application/problem+json": components["schemas"]["ForbiddenProblemDetails"]; }; }; /** * @description | | req / s | req / min | req / h | grupa * | --- | --- | --- | --- | --- | * | **Limity liczby żądań** | 10 | 30 | 120 | other */ 429: { headers: { "Retry-After"?: components["schemas"]["RetryAfter"]; [name: string]: unknown; }; content: { "application/json": components["schemas"]["TooManyRequestsResponse"]; }; }; }; }; options?: never; head?: never; patch?: never; trace?: never; }; }; export type webhooks = Record; export type components = { schemas: { AllowedIps: { /** @description Lista adresów IPv4 w notacji dziesiętnej kropkowanej, np. `192.168.0.10`. */ ip4Addresses?: string[] | null; /** @description Lista adresów IPv4 w notacji CIDR, np. `172.16.0.0/16`. */ ip4Masks?: string[] | null; /** @description Lista adresów IPv4 podana w formie zakresu początek–koniec, oddzielonego pojedynczym myślnikiem, np. `10.0.0.1–10.0.0.254`. */ ip4Ranges?: string[] | null; }; /** @enum {string} */ AmountType: "Brutto" | "Netto" | "Vat"; AuthenticationChallengeResponse: { challenge: components["schemas"]["Challenge"]; /** @description Adres IP klienta. */ clientIp: string; /** * Format: date-time * @description Czas wygenerowania challenge-a. */ timestamp: string; /** * Format: int64 * @description Czas wygenerowania challenge-a w milisekundach od 1 stycznia 1970 roku (Unix timestamp). */ timestampMs: number; }; AuthenticationContextIdentifier: { /** @description Typ identyfikatora */ type: components["schemas"]["AuthenticationContextIdentifierType"]; /** @description Wartość identyfikatora */ value: string; }; /** @enum {string} */ AuthenticationContextIdentifierType: "Nip" | "InternalId" | "NipVatUe" | "PeppolId"; AuthenticationInitResponse: { /** @description Token operacji uwierzytelnienia. */ authenticationToken: WithRequired; /** @description Numer referencyjny sesji uwierzytelnienia. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; AuthenticationListItem: { /** * @deprecated * @description Metoda uwierzytelnienia. * | Wartość | Opis | * | --- | --- | * | Token | Token KSeF. | * | TrustedProfile | Profil Zaufany. | * | InternalCertificate | Certyfikat KSeF. | * | QualifiedSignature | Podpis kwalifikowany. | * | QualifiedSeal | Pieczęć kwalifikowana. | * | PersonalSignature | Podpis osobisty. | * | PeppolSignature | Podpis dostawcy usług Peppol. | */ authenticationMethod: components["schemas"]["AuthenticationMethod"]; /** @description Użyta metoda uwierzytelnienia. */ authenticationMethodInfo: WithRequired; /** @description Czy sesja jest powiązana z aktualnie używanym tokenem. */ readonly isCurrent?: boolean; /** @description Czy został już wydany refresh token powiązany z danym uwierzytelnieniem. */ isTokenRedeemed?: boolean | null; /** * Format: date-time * @description Data ostatniego odświeżenia tokena. */ lastTokenRefreshDate?: string | null; /** @description Numer referencyjny sesji uwierzytelnienia. */ referenceNumber: components["schemas"]["ReferenceNumber"]; /** * Format: date-time * @description Termin ważności refresh tokena (o ile nie zostanie wcześniej unieważniony). */ refreshTokenValidUntil?: string | null; /** * Format: date-time * @description Data rozpoczęcia operacji uwierzytelnienia. */ startDate: string; /** * @description Informacje o aktualnym statusie. * | Code | Description | Details | * | --- | --- | --- | * | 100 | Uwierzytelnianie w toku | - | * | 200 | Uwierzytelnianie zakończone sukcesem | - | * | 415 | Uwierzytelnianie zakończone niepowodzeniem | Brak przypisanych uprawnień | * | 425 | Uwierzytelnienie unieważnione | Uwierzytelnienie i powiązane refresh tokeny zostały unieważnione przez użytkownika | * | 450 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędnego tokenu | Nieprawidłowe wyzwanie autoryzacyjne | * | 450 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędnego tokenu | Nieprawidłowy token | * | 450 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędnego tokenu | Nieprawidłowy czas tokena | * | 450 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędnego tokenu | Token unieważniony | * | 450 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędnego tokenu | Token nieaktywny | * | 460 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędu certyfikatu | Nieważny certyfikat | * | 460 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędu certyfikatu | Błąd weryfikacji łańcucha certyfikatów | * | 460 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędu certyfikatu | Niezaufany łańcuch certyfikatów | * | 460 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędu certyfikatu | Certyfikat odwołany | * | 460 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędu certyfikatu | Certyfikat zawieszony | * | 460 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędu certyfikatu | Niepoprawny certyfikat | * | 470 | Uwierzytelnianie zakończone niepowodzeniem | Próba wykorzystania metod autoryzacyjnych osoby zmarłej | * | 480 | Uwierzytelnienie zablokowane | Podejrzenie incydentu bezpieczeństwa. Skontaktuj się z Ministerstwem Finansów przez formularz zgłoszeniowy. | * | 500 | Nieznany błąd | - | * | 550 | Operacja została anulowana przez system | Przetwarzanie zostało przerwane z przyczyn wewnętrznych systemu. Spróbuj ponownie | */ status: components["schemas"]["StatusInfo"]; }; AuthenticationListResponse: { /** @description Token służący do pobrania kolejnej strony wyników. Jeśli jest pusty, to nie ma kolejnych stron. */ continuationToken?: string | null; /** @description Lista sesji uwierzytelniania. */ items: components["schemas"]["AuthenticationListItem"][]; }; /** * @description Metoda uwierzytelnienia. * | Wartość | Opis | * | --- | --- | * | Token | Token KSeF. | * | TrustedProfile | Profil Zaufany. | * | InternalCertificate | Certyfikat KSeF. | * | QualifiedSignature | Podpis kwalifikowany. | * | QualifiedSeal | Pieczęć kwalifikowana. | * | PersonalSignature | Podpis osobisty. | * | PeppolSignature | Podpis dostawcy usług Peppol. | * @enum {string} */ AuthenticationMethod: "Token" | "TrustedProfile" | "InternalCertificate" | "QualifiedSignature" | "QualifiedSeal" | "PersonalSignature" | "PeppolSignature"; /** * @description | Wartość | Opis | * | --- | --- | * | XadesSignature | Uwierzytelnienie podpisem Xades. | * | NationalNode | Uwierzytelnienie za pomocą Węzła Krajowego (login.gov.pl). | * | Token | Uwierzytelnienie tokenem. | * | Other | Uwierzytelnienie inną metodą. | * @enum {string} */ AuthenticationMethodCategory: "XadesSignature" | "NationalNode" | "Token" | "Other"; AuthenticationMethodInfo: { /** * @description Kategoria metody uwierzytelnienia. * | Wartość | Opis | * | --- | --- | * | XadesSignature | Uwierzytelnienie podpisem Xades. | * | NationalNode | Uwierzytelnienie za pomocą Węzła Krajowego (login.gov.pl). | * | Token | Uwierzytelnienie tokenem. | * | Other | Uwierzytelnienie inną metodą. | */ category: components["schemas"]["AuthenticationMethodCategory"]; /** @description Kod metody uwierzytelnienia. */ code: string; /** @description Nazwa metody uwierzytelnienia do wyświetlenia użytkownikowi. */ readonly displayName: string; }; AuthenticationOperationStatusResponse: { /** * @deprecated * @description Metoda uwierzytelnienia. * | Wartość | Opis | * | --- | --- | * | Token | Token KSeF. | * | TrustedProfile | Profil Zaufany. | * | InternalCertificate | Certyfikat KSeF. | * | QualifiedSignature | Podpis kwalifikowany. | * | QualifiedSeal | Pieczęć kwalifikowana. | * | PersonalSignature | Podpis osobisty. | * | PeppolSignature | Podpis dostawcy usług Peppol. | */ authenticationMethod: components["schemas"]["AuthenticationMethod"]; /** @description Użyta metoda uwierzytelnienia. */ authenticationMethodInfo: WithRequired; /** @description Czy został już wydany refresh token powiązany z danym uwierzytelnieniem. */ isTokenRedeemed?: boolean | null; /** * Format: date-time * @description Data ostatniego odświeżenia tokena. */ lastTokenRefreshDate?: string | null; /** * Format: date-time * @description Termin ważności refresh tokena (o ile nie zostanie wcześniej unieważniony). */ refreshTokenValidUntil?: string | null; /** * Format: date-time * @description Data rozpoczęcia operacji uwierzytelnienia. */ startDate: string; /** * @description Informacje o aktualnym statusie. * | Code | Description | Details | * | --- | --- | --- | * | 100 | Uwierzytelnianie w toku | - | * | 200 | Uwierzytelnianie zakończone sukcesem | - | * | 415 | Uwierzytelnianie zakończone niepowodzeniem | Brak przypisanych uprawnień | * | 425 | Uwierzytelnienie unieważnione | Uwierzytelnienie i powiązane refresh tokeny zostały unieważnione przez użytkownika | * | 450 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędnego tokenu | Nieprawidłowe wyzwanie autoryzacyjne | * | 450 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędnego tokenu | Nieprawidłowy token | * | 450 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędnego tokenu | Nieprawidłowy czas tokena | * | 450 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędnego tokenu | Token unieważniony | * | 450 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędnego tokenu | Token nieaktywny | * | 460 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędu certyfikatu | Nieważny certyfikat | * | 460 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędu certyfikatu | Błąd weryfikacji łańcucha certyfikatów | * | 460 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędu certyfikatu | Niezaufany łańcuch certyfikatów | * | 460 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędu certyfikatu | Certyfikat odwołany | * | 460 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędu certyfikatu | Certyfikat zawieszony | * | 460 | Uwierzytelnianie zakończone niepowodzeniem z powodu błędu certyfikatu | Niepoprawny certyfikat | * | 470 | Uwierzytelnianie zakończone niepowodzeniem | Próba wykorzystania metod autoryzacyjnych osoby zmarłej | * | 480 | Uwierzytelnienie zablokowane | Podejrzenie incydentu bezpieczeństwa. Skontaktuj się z Ministerstwem Finansów przez formularz zgłoszeniowy. | * | 500 | Nieznany błąd | - | * | 550 | Operacja została anulowana przez system | Przetwarzanie zostało przerwane z przyczyn wewnętrznych systemu. Spróbuj ponownie | */ status: components["schemas"]["StatusInfo"]; }; AuthenticationTokenRefreshResponse: { /** @description Token dostępu, którego należy używać w wywołaniach chronionych zasobów API. */ accessToken: WithRequired; }; AuthenticationTokensResponse: { /** @description Token dostępu. */ accessToken: WithRequired; /** * @description Token umożliwiający odświeżenie tokenu dostępu. * > Więcej informacji: * > - [Odświeżanie tokena](https://github.com/CIRFMF/ksef-docs/blob/main/uwierzytelnianie.md#5-od%C5%9Bwie%C5%BCenie-tokena-dost%C4%99powego-accesstoken) */ refreshToken: WithRequired; }; /** * @description | Wartość | Opis | * | --- | --- | * | Pending | Token został utworzony ale jest jeszcze w trakcie aktywacji i nadawania uprawnień. Nie może być jeszcze wykorzystywany do uwierzytelniania. | * | Active | Token jest aktywny i może być wykorzystywany do uwierzytelniania. | * | Revoking | Token jest w trakcie unieważniania. Nie może już być wykorzystywany do uwierzytelniania. | * | Revoked | Token został unieważniony i nie może być wykorzystywany do uwierzytelniania. | * | Failed | Nie udało się aktywować tokena. Należy wygenerować nowy token, obecny nie może być wykorzystywany do uwierzytelniania. | * @enum {string} */ AuthenticationTokenStatus: "Pending" | "Active" | "Revoking" | "Revoked" | "Failed"; AuthorizationPolicy: { /** @description Lista dozwolonych adresów IP. */ allowedIps?: components["schemas"]["AllowedIps"] | null; }; BatchFileInfo: { /** @description Skrót SHA256 pliku paczki, zakodowany w formacie Base64. */ fileHash: components["schemas"]["Sha256HashBase64"]; /** @description Informacje o częściach pliku paczki. Maksymalna liczba części to 50. Maksymalny dozwolony rozmiar części przed zaszyfrowaniem to 100MB. */ fileParts: components["schemas"]["BatchFilePartInfo"][]; /** * Format: int64 * @description Rozmiar pliku paczki w bajtach. Maksymalny rozmiar paczki to 5GB. */ fileSize: number; }; BatchFilePartInfo: { /** @description Skrót SHA256 zaszyfrowanej części pliku paczki, zakodowany w formacie Base64. */ fileHash: components["schemas"]["Sha256HashBase64"]; /** * Format: int64 * @description Rozmiar zaszyfrowanej części pliku paczki w bajtach. */ fileSize: number; /** * Format: int32 * @description Numer sekwencyjny części pliku paczki. */ ordinalNumber: number; }; BatchSessionEffectiveContextLimits: { /** * Format: int32 * @description Maksymalna ilość faktur które można przesłać w pojedynczej sesji. */ maxInvoices: number; /** * Format: int32 * @description Maksymalny rozmiar faktury w MB. */ maxInvoiceSizeInMB: number; /** * Format: int32 * @description Maksymalny rozmiar faktury z załącznikiem w MB. */ maxInvoiceWithAttachmentSizeInMB: number; }; /** * @description | Wartość | Opis | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | VatUe | Identyfikator VAT UE podmiotu unijnego | * | Other | Inny identyfikator | * | None | Brak identyfikatora nabywcy | * @enum {string} */ BuyerIdentifierType: "Nip" | "VatUe" | "Other" | "None"; CertificateEffectiveSubjectLimits: { /** Format: int32 */ maxCertificates?: number; }; CertificateEnrollmentDataResponse: { /** @description Nazwa powszechna. */ commonName: string; /** @description Kraj, kod ISO 3166. */ countryName: string; /** @description Imię. */ givenName?: string | null; /** @description Identyfikator organizacji. */ organizationIdentifier?: string | null; /** @description Nazwa organizacji. */ organizationName?: string | null; /** @description Numer seryjny podmiotu. */ serialNumber?: string | null; /** @description Nazwisko. */ surname?: string | null; /** @description Unikalny identyfikator. */ uniqueIdentifier?: string | null; }; CertificateEnrollmentStatusResponse: { /** * @description Numer seryjny wygenerowanego certyfikatu (w formacie szesnastkowym). * Zwracany w przypadku prawidłowego przeprocesowania wniosku certyfikacyjnego. */ certificateSerialNumber?: string | null; /** * Format: date-time * @description Data złożenia wniosku certyfikacyjnego. */ requestDate: string; /** * @description Informacje o aktualnym statusie. * | Code | Description | Details | * | --- | --- | --- | * | 100 | Wniosek przyjęty do realizacji | - | * | 200 | Wniosek obsłużony (certyfikat wygenerowany) | - | * | 400 | Wniosek odrzucony | Klucz publiczny został już certyfikowany przez inny podmiot. | * | 400 | Wniosek odrzucony | Osiągnięto dopuszczalny limit posiadanych certyfikatów. | * | 500 | Nieznany błąd | - | * | 550 | Operacja została anulowana przez system | Przetwarzanie zostało przerwane z przyczyn wewnętrznych systemu. Spróbuj ponownie | */ status: components["schemas"]["StatusInfo"]; }; CertificateLimit: { /** * Format: int32 * @description Maksymalna liczba zasobów dozwolona w ramach limitu. */ limit: number; /** * Format: int32 * @description Pozostała wartość limitu. */ remaining: number; }; /** @description Informacje o limitach wniosków oraz certyfikatów dla uwierzytelnionego podmiotu. */ CertificateLimitsResponse: { /** @description Flaga informująca czy uwierzytelniony podmiot może złożyć nowy wniosek o certyfikat. */ readonly canRequest: boolean; /** @description Informacje o limitach dotyczących liczby aktywnych certyfikatów wydanych dla danego podmiotu. */ certificate: WithRequired; /** @description Informacje o limitach związanych z liczbą możliwych do złożenia wniosków certyfikacyjnych. */ enrollment: WithRequired; }; CertificateListItem: { /** @description Numer seryjny certyfikatu (w formacie szesnastkowym). */ certificateSerialNumber: string; /** @description Nazwa powszechna (CN) podmiotu, dla którego wystawiono certyfikat. */ commonName: string; /** * Format: date-time * @description Data ostatniego użycia certyfikatu. */ lastUseDate?: string | null; /** @description Nazwa własna certyfikatu. */ name: string; /** * Format: date-time * @description Data złożenia wniosku certyfikacyjnego. */ requestDate: string; /** * @description Status certyfikatu. * | Wartość | Opis | * | --- | --- | * | Active | Certyfikat jest aktywny i może zostać użyty do uwierzytelnienia lub realizacji operacji w trybie offline (w zależności od typu certyfikatu). | * | Blocked | Certyfikat został zablokowany i nie może zostać użyty do uwierzytelnienia i realizacji operacji w trybie offline. Status przejściowy do czasu zakończenia procesu unieważniania. | * | Revoked | Certyfikat został unieważniony i nie może zostać użyty do uwierzytelnienia i realizacji operacji w trybie offline. | * | Expired | Certyfikat wygasł i nie może zostać użyty do uwierzytelnienia i realizacji operacji w trybie offline. | */ status: components["schemas"]["CertificateListItemStatus"]; /** @description Identyfikator podmiotu, dla którego wystawiono certyfikat. */ subjectIdentifier: WithRequired; /** * @description Typ certyfikatu. * | Wartość | Opis | * | --- | --- | * | Authentication | Certyfikat używany do uwierzytelnienia w systemie. | * | Offline | Certyfikat używany wyłącznie do potwierdzania autentyczności wystawcy i integralności faktury w trybie offline | */ type: components["schemas"]["KsefCertificateType"]; /** * Format: date-time * @description Data rozpoczęcia ważności certyfikatu. */ validFrom: string; /** * Format: date-time * @description Data wygaśnięcia certyfikatu. */ validTo: string; }; /** * @description | Wartość | Opis | * | --- | --- | * | Active | Certyfikat jest aktywny i może zostać użyty do uwierzytelnienia lub realizacji operacji w trybie offline (w zależności od typu certyfikatu). | * | Blocked | Certyfikat został zablokowany i nie może zostać użyty do uwierzytelnienia i realizacji operacji w trybie offline. Status przejściowy do czasu zakończenia procesu unieważniania. | * | Revoked | Certyfikat został unieważniony i nie może zostać użyty do uwierzytelnienia i realizacji operacji w trybie offline. | * | Expired | Certyfikat wygasł i nie może zostać użyty do uwierzytelnienia i realizacji operacji w trybie offline. | * @enum {string} */ CertificateListItemStatus: "Active" | "Blocked" | "Revoked" | "Expired"; /** * @description | Wartość | Opis | * | --- | --- | * | Unspecified | Nieokreślony. | * | Superseded | Certyfikat został zastąpiony przez inny. | * | KeyCompromise | Klucz prywatny powiązany z certyfikatem został skompromitowany. | * @enum {string} */ CertificateRevocationReason: "Unspecified" | "Superseded" | "KeyCompromise"; /** * @description Identyfikator podmiotu dla którego wystawiono certyfikat. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ CertificateSubjectIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["CertificateSubjectIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ CertificateSubjectIdentifierType: "Nip" | "Pesel" | "Fingerprint"; /** @description Unikalny challenge. */ Challenge: string; CheckAttachmentPermissionStatusResponse: { /** @description Informacja czy Podmiot ma obecnie możliwość dodawania Załączników do Faktur */ isAttachmentAllowed?: boolean; /** * Format: date-time * @description Data i czas zakończenia możliwość dodawania przez Podmiot Załączników do Faktur. * Brak podanej daty oznacza bezterminową możliwość dodawania Załączników do Faktur */ revokedDate?: string | null; }; /** * @description | Wartość | Opis | * | --- | --- | * | InProgress | Sesja aktywna. | * | Succeeded | Sesja przetworzona poprawnie. W trakcie przetwarzania sesji nie wystąpiły żadne błędy, ale część faktur nadal mogła zostać odrzucona. | * | Failed | Sesja nie przetworzona z powodu błędów. Na etapie rozpoczynania lub kończenia sesji wystąpiły błędy, które nie pozwoliły na jej poprawne przetworzenie. | * | Cancelled | Sesja anulowania. Został przekroczony czas na wysyłkę w sesji wsadowej, lub nie przesłano żadnych faktur w sesji interaktywnej. | * @enum {string} */ CommonSessionStatus: "InProgress" | "Succeeded" | "Failed" | "Cancelled"; /** @enum {string} */ CurrencyCode: "AED" | "AFN" | "ALL" | "AMD" | "ANG" | "AOA" | "ARS" | "AUD" | "AWG" | "AZN" | "BAM" | "BBD" | "BDT" | "BGN" | "BHD" | "BIF" | "BMD" | "BND" | "BOB" | "BOV" | "BRL" | "BSD" | "BTN" | "BWP" | "BYN" | "BZD" | "CAD" | "CDF" | "CHE" | "CHF" | "CHW" | "CLF" | "CLP" | "CNY" | "COP" | "COU" | "CRC" | "CUC" | "CUP" | "CVE" | "CZK" | "DJF" | "DKK" | "DOP" | "DZD" | "EGP" | "ERN" | "ETB" | "EUR" | "FJD" | "FKP" | "GBP" | "GEL" | "GGP" | "GHS" | "GIP" | "GMD" | "GNF" | "GTQ" | "GYD" | "HKD" | "HNL" | "HRK" | "HTG" | "HUF" | "IDR" | "ILS" | "IMP" | "INR" | "IQD" | "IRR" | "ISK" | "JEP" | "JMD" | "JOD" | "JPY" | "KES" | "KGS" | "KHR" | "KMF" | "KPW" | "KRW" | "KWD" | "KYD" | "KZT" | "LAK" | "LBP" | "LKR" | "LRD" | "LSL" | "LYD" | "MAD" | "MDL" | "MGA" | "MKD" | "MMK" | "MNT" | "MOP" | "MRU" | "MUR" | "MVR" | "MWK" | "MXN" | "MXV" | "MYR" | "MZN" | "NAD" | "NGN" | "NIO" | "NOK" | "NPR" | "NZD" | "OMR" | "PAB" | "PEN" | "PGK" | "PHP" | "PKR" | "PLN" | "PYG" | "QAR" | "RON" | "RSD" | "RUB" | "RWF" | "SAR" | "SBD" | "SCR" | "SDG" | "SEK" | "SGD" | "SHP" | "SLL" | "SOS" | "SRD" | "SSP" | "STN" | "SVC" | "SYP" | "SZL" | "THB" | "TJS" | "TMT" | "TND" | "TOP" | "TRY" | "TTD" | "TWD" | "TZS" | "UAH" | "UGX" | "USD" | "USN" | "UYI" | "UYU" | "UYW" | "UZS" | "VES" | "VND" | "VUV" | "WST" | "XAF" | "XAG" | "XAU" | "XBA" | "XBB" | "XBC" | "XBD" | "XCD" | "XCG" | "XDR" | "XOF" | "XPD" | "XPF" | "XPT" | "XSU" | "XUA" | "XXX" | "YER" | "ZAR" | "ZMW" | "ZWL"; EffectiveApiRateLimits: { /** @description Limity dla otwierania/zamykania sesji wsadowych. */ batchSession: WithRequired; /** @description Limity dla pobierania faktur po numerze KSeF. */ invoiceDownload: WithRequired; /** @description Limity dla eksportu paczki faktur. */ invoiceExport: WithRequired; /** @description Limity dla pobierana statusu eksportu paczki faktur. */ invoiceExportStatus: WithRequired; /** @description Limity dla pobierania metadanych faktur. */ invoiceMetadata: WithRequired; /** @description Limity dla wysyłki faktur. */ invoiceSend: WithRequired; /** @description Limity dla pobierania statusu faktury z sesji. */ invoiceStatus: WithRequired; /** @description Limity dla otwierania/zamykania sesji interaktywnych. */ onlineSession: WithRequired; /** @description Limity dla pozostałych operacji API. */ other: WithRequired; /** @description Limity dla pobierania listy faktur w sesji. */ sessionInvoiceList: WithRequired; /** @description Limity dla pobierania listy sesji. */ sessionList: WithRequired; /** @description Limity dla pozostałych operacji w ramach sesji. */ sessionMisc: WithRequired; }; EffectiveApiRateLimitValues: { /** * Format: int32 * @description Limit na godzinę. */ perHour: number; /** * Format: int32 * @description Limit na minutę. */ perMinute: number; /** * Format: int32 * @description Limit na sekundę. */ perSecond: number; }; EffectiveContextLimits: { /** @description Limity dla sesji wsadowych. */ batchSession: WithRequired; /** @description Limity dla sesji interaktywnych. */ onlineSession: WithRequired; }; EffectiveSubjectLimits: { certificate?: components["schemas"]["CertificateEffectiveSubjectLimits"] | null; enrollment?: components["schemas"]["EnrollmentEffectiveSubjectLimits"] | null; }; EncryptionInfo: { /** * Format: byte * @description Klucz symetryczny o długości 32 bajtów, zaszyfrowany algorytmem RSA (Padding: OAEP z SHA-256), zakodowany w formacie Base64. * * [Klucz publiczny Ministerstwa Finansów](/docs/v2/index.html#tag/Certyfikaty-klucza-publicznego) */ encryptedSymmetricKey: string; /** * Format: byte * @description Wektor inicjalizujący (IV) o długości 16 bajtów, używany do szyfrowania symetrycznego, zakodowany w formacie Base64. */ initializationVector: string; }; EnrollCertificateRequest: { /** @description Nazwa własna certyfikatu. */ certificateName: string; /** * @description Typ certyfikatu. * | Wartość | Opis | * | --- | --- | * | Authentication | Certyfikat używany do uwierzytelnienia w systemie. | * | Offline | Certyfikat używany wyłącznie do potwierdzania autentyczności wystawcy i integralności faktury w trybie offline | */ certificateType: components["schemas"]["KsefCertificateType"]; /** * Format: byte * @description Wniosek certyfikacyjny PKCS#10 (CSR) w formacie DER, zakodowany w formacie Base64. */ csr: string; /** * Format: date-time * @description Data rozpoczęcia ważności certyfikatu. * Jeśli nie zostanie podana, certyfikat będzie ważny od momentu jego wystawienia. */ validFrom?: string | null; }; EnrollCertificateResponse: { /** @description Numer referencyjny wniosku certyfikacyjnego. */ referenceNumber: components["schemas"]["ReferenceNumber"]; /** * Format: date-time * @description Data złożenia wniosku certyfikacyjnego. */ timestamp: string; }; EnrollmentEffectiveSubjectLimits: { /** Format: int32 */ maxEnrollments?: number; }; EntityAuthorizationGrant: { /** * @description Identyfikator osoby nadającej uprawnienie. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ authorIdentifier?: WithRequired | null; /** @description Rodzaj uprawnienia. */ authorizationScope: components["schemas"]["InvoicePermissionType"]; /** * @description Identyfikator podmiotu uprawnionego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | PeppolId | Identyfikator dostawcy usług Peppol | */ authorizedEntityIdentifier: WithRequired; /** * @description Identyfikator podmiotu uprawniającego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | */ authorizingEntityIdentifier: WithRequired; /** @description Opis uprawnienia. */ description: string; /** @description Identyfikator uprawnienia. */ id: components["schemas"]["PermissionId"]; /** * Format: date-time * @description Data rozpoczęcia obowiązywania uprawnienia. */ startDate: string; /** @description Dane podmiotu uprawnionego. */ subjectEntityDetails?: WithRequired | null; }; EntityAuthorizationPermissionsGrantRequest: { /** @description Opis uprawnienia */ description: string; /** @description Rodzaj uprawnienia. */ permission: components["schemas"]["EntityAuthorizationPermissionType"]; /** @description Dane podmiotu, któremu nadawane są uprawnienia. */ subjectDetails: WithRequired; /** * @description Identyfikator podmiotu uprawnianego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | PeppolId | Identyfikator dostawcy usług Peppol | */ subjectIdentifier: WithRequired; }; EntityAuthorizationPermissionsQueryRequest: { /** * @description Identyfikator podmiotu uprawnionego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | PeppolId | Identyfikator dostawcy usług Peppol | */ authorizedIdentifier?: WithRequired | null; /** * @description Identyfikator podmiotu uprawniającego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | */ authorizingIdentifier?: WithRequired | null; /** @description Lista rodzajów wyszukiwanych uprawnień. */ permissionTypes?: components["schemas"]["InvoicePermissionType"][] | null; /** * @description Typ zapytania. * | Type | Value | * | --- | --- | * | Granted | Uprawnienia nadane innym podmiotom | * | Received | Uprawnienia otrzymane od innych podmiotów | */ queryType: components["schemas"]["QueryType"]; }; /** * @description Identyfikator podmiotu uprawnianego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | PeppolId | Identyfikator dostawcy usług Peppol | */ EntityAuthorizationPermissionsSubjectIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["EntityAuthorizationPermissionsSubjectIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ EntityAuthorizationPermissionsSubjectIdentifierType: "Nip" | "PeppolId"; /** @enum {string} */ EntityAuthorizationPermissionType: "SelfInvoicing" | "RRInvoicing" | "TaxRepresentative" | "PefInvoicing"; /** * @description Identyfikator osoby nadającej uprawnienie. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ EntityAuthorizationsAuthorIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["EntityAuthorizationsAuthorIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ EntityAuthorizationsAuthorIdentifierType: "Nip" | "Pesel" | "Fingerprint"; /** * @description Identyfikator podmiotu uprawnionego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | PeppolId | Identyfikator dostawcy usług Peppol | */ EntityAuthorizationsAuthorizedEntityIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["EntityAuthorizationsAuthorizedEntityIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ EntityAuthorizationsAuthorizedEntityIdentifierType: "Nip" | "PeppolId"; /** * @description Identyfikator podmiotu uprawniającego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | */ EntityAuthorizationsAuthorizingEntityIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["EntityAuthorizationsAuthorizingEntityIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ EntityAuthorizationsAuthorizingEntityIdentifierType: "Nip"; EntityByFingerprintDetails: { /** @description Adres podmiotu. */ address: string; /** @description Pełna nazwa podmiotu. */ fullName: string; }; EntityDetails: { /** @description Pełna nazwa podmiotu. */ fullName: string; }; EntityPermission: { /** @description Flaga pozwalająca na pośrednie przekazywanie danego uprawnienia */ canDelegate?: boolean; /** @description Rodzaj uprawnienia. */ type: components["schemas"]["EntityPermissionType"]; }; EntityPermissionItem: { /** @description Flaga określająca, czy uprawnienie ma być możliwe do dalszego przekazywania. */ canDelegate: boolean; /** * @description Identyfikator kontekstu podmiotu, który nadał uprawnienia do obsługi faktur. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ contextIdentifier: WithRequired; /** @description Opis uprawnienia. */ description: string; /** @description Identyfikator uprawnienia. */ id: components["schemas"]["PermissionId"]; /** @description Rodzaj uprawnienia. */ permissionScope: components["schemas"]["EntityPermissionItemScope"]; /** * Format: date-time * @description Data rozpoczęcia obowiązywania uprawnienia. */ startDate: string; }; /** @enum {string} */ EntityPermissionItemScope: "InvoiceWrite" | "InvoiceRead"; /** * @description Identyfikator kontekstu podmiotu, który nadał uprawnienia do obsługi faktur. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ EntityPermissionsContextIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["EntityPermissionsContextIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ EntityPermissionsContextIdentifierType: "Nip" | "InternalId"; EntityPermissionsGrantRequest: { /** @description Opis uprawnienia */ description: string; /** @description Lista nadawanych uprawnień. Każda wartość może wystąpić tylko raz. */ permissions: components["schemas"]["EntityPermission"][]; /** @description Dane podmiotu, któremu nadawane są uprawnienia. */ subjectDetails: WithRequired; /** * @description Identyfikator podmiotu. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | */ subjectIdentifier: WithRequired; }; EntityPermissionsQueryRequest: { /** * @description Identyfikator kontekstu podmiotu, który nadał uprawnienia do obsługi faktur. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ contextIdentifier?: WithRequired | null; }; /** * @description Identyfikator podmiotu. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | */ EntityPermissionsSubjectIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["EntityPermissionsSubjectIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ EntityPermissionsSubjectIdentifierType: "Nip"; /** * @description Identyfikator podmiotu podrzędnego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | */ EntityPermissionsSubordinateEntityIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["EntityPermissionsSubordinateEntityIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ EntityPermissionsSubordinateEntityIdentifierType: "Nip"; /** @enum {string} */ EntityPermissionType: "InvoiceWrite" | "InvoiceRead"; EntityRole: { /** @description Opis roli. */ description: string; /** * @description Identyfikator podmiotu nadrzędnego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | */ parentEntityIdentifier?: WithRequired | null; /** @description Typ roli - powiązania z podmiotem nadrzędnym. */ role: components["schemas"]["EntityRoleType"]; /** * Format: date-time * @description Data rozpoczęcia obowiązywania roli. */ startDate: string; }; /** * @description Identyfikator podmiotu nadrzędnego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | */ EntityRolesParentEntityIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["EntityRolesParentEntityIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ EntityRolesParentEntityIdentifierType: "Nip"; /** @enum {string} */ EntityRoleType: "CourtBailiff" | "EnforcementAuthority" | "LocalGovernmentUnit" | "LocalGovernmentSubUnit" | "VatGroupUnit" | "VatGroupSubUnit"; /** * @description | Wartość | Opis | * | --- | --- | * | EntityByFingerprint | Podmiot identyfikowany odciskiem palca pieczęci kwalifikowanej. | * @enum {string} */ EntitySubjectByFingerprintDetailsType: "EntityByFingerprint"; /** * @description | Wartość | Opis | * | --- | --- | * | EntityByIdentifier | Podmiot identyfikowany numerem NIP. | * @enum {string} */ EntitySubjectByIdentifierDetailsType: "EntityByIdentifier"; /** * @description | Wartość | Opis | * | --- | --- | * | EntityByIdentifier | Podmiot identyfikowany numerem NIP. | * | EntityByFingerprint | Podmiot identyfikowany odciskiem palca pieczęci kwalifikowanej. | * @enum {string} */ EntitySubjectDetailsType: "EntityByIdentifier" | "EntityByFingerprint"; /** * @description Identyfikator kontekstu złożonego. * | Type | Value | * | --- | --- | * | NipVatUe | Dwuczłonowy identyfikator składający się z numeru NIP i numeru VAT-UE: `{nip}-{vat_ue}` | */ EuEntityAdministrationPermissionsContextIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["EuEntityAdministrationPermissionsContextIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ EuEntityAdministrationPermissionsContextIdentifierType: "NipVatUe"; EuEntityAdministrationPermissionsGrantRequest: { /** * @description Identyfikator kontekstu złożonego. * | Type | Value | * | --- | --- | * | NipVatUe | Dwuczłonowy identyfikator składający się z numeru NIP i numeru VAT-UE: `{nip}-{vat_ue}` | */ contextIdentifier: WithRequired; /** @description Opis uprawnienia */ description: string; /** @description Dane podmiotu unijnego, w kontekście którego nadawane są uprawnienia. */ euEntityDetails: WithRequired; /** * @description Nazwa i adres podmiotu unijnego w formacie: * `{euSubjectName}, {euSubjectAddress}` */ euEntityName: string; /** @description Dane podmiotu, któremu nadawane są uprawnienia. */ subjectDetails: WithRequired; /** * @description Identyfikator podmiotu uprawnionego. * | Type | Value | * | --- | --- | * | Fingerprint | Odcisk palca certyfikatu | */ subjectIdentifier: WithRequired; }; /** * @description Identyfikator podmiotu uprawnionego. * | Type | Value | * | --- | --- | * | Fingerprint | Odcisk palca certyfikatu | */ EuEntityAdministrationPermissionsSubjectIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["EuEntityAdministrationPermissionsSubjectIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ EuEntityAdministrationPermissionsSubjectIdentifierType: "Fingerprint"; EuEntityDetails: { /** @description Adres podmiotu. */ address: string; /** @description Pełna nazwa podmiotu. */ fullName: string; }; EuEntityPermission: { /** * @description Identyfikator uprawniającego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ authorIdentifier: WithRequired; /** @description Uprawniony odcisk palca certyfikatu. */ authorizedFingerprintIdentifier: string; /** @description Opis uprawnienia. */ description: string; /** @description Dane podmiotu unijnego, w kontekście którego nadane jest uprawnienie. */ euEntityDetails?: WithRequired | null; /** @description Nazwa podmiotu unijnego. */ euEntityName: string; /** @description Identyfikator uprawnienia. */ id: components["schemas"]["PermissionId"]; /** @description Uprawnienie. */ permissionScope: components["schemas"]["EuEntityPermissionsQueryPermissionType"]; /** * Format: date-time * @description Data rozpoczęcia obowiązywania uprawnienia. */ startDate: string; /** @description Dane podmiotu uprawnionego. */ subjectEntityDetails?: WithRequired | null; /** @description Dane osoby uprawnionej. */ subjectPersonDetails?: WithRequired | null; /** @description Identyfikator podmiotu unijnego. */ vatUeIdentifier: string; }; /** * @description Identyfikator uprawniającego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ EuEntityPermissionsAuthorIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["EuEntityPermissionsAuthorIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ EuEntityPermissionsAuthorIdentifierType: "Nip" | "Pesel" | "Fingerprint"; EuEntityPermissionsGrantRequest: { /** @description Opis uprawnienia */ description: string; /** @description Lista nadawanych uprawnień. Każda wartość może wystąpić tylko raz. */ permissions: components["schemas"]["EuEntityPermissionType"][]; /** @description Dane podmiotu, któremu nadawane są uprawnienia. */ subjectDetails: WithRequired; /** * @description Identyfikator podmiotu uprawnianego. * | Type | Value | * | --- | --- | * | Fingerprint | Odcisk palca certyfikatu | */ subjectIdentifier: WithRequired; }; /** @enum {string} */ EuEntityPermissionsQueryPermissionType: "VatUeManage" | "InvoiceWrite" | "InvoiceRead" | "Introspection"; EuEntityPermissionsQueryRequest: { /** @description Odcisk palca certyfikatu kwalifikowanego uprawnionego (contains). */ authorizedFingerprintIdentifier?: string | null; /** @description Lista rodzajów wyszukiwanych uprawnień. */ permissionTypes?: components["schemas"]["EuEntityPermissionsQueryPermissionType"][] | null; /** @description Wartość identyfikatora (numeru identyfikacyjnego VAT) podmiotu unijnego (exact match). */ vatUeIdentifier?: string | null; }; /** * @description Identyfikator podmiotu uprawnianego. * | Type | Value | * | --- | --- | * | Fingerprint | Odcisk palca certyfikatu | */ EuEntityPermissionsSubjectIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["EuEntityPermissionsSubjectIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ EuEntityPermissionsSubjectIdentifierType: "Fingerprint"; EuEntityPermissionSubjectDetails: { /** * @description Dane podmiotu. * *Wymagane, gdy subjectDetailsType = EntityByFingerprint.* */ entityByFp?: WithRequired | null; /** * @description Dane podmiotu. * *Wymagane, gdy subjectDetailsType = PersonByFingerprintWithoutIdentifier.* */ personByFpNoId?: WithRequired | null; /** * @description Dane podmiotu. * *Wymagane, gdy subjectDetailsType = PersonByFingerprintWithIdentifier.* */ personByFpWithId?: WithRequired | null; /** * @description Typ danych podmiotu. * | Wartość | Opis | * | --- | --- | * | PersonByFingerprintWithIdentifier | Osoba fizyczna posługująca się certyfikatem niezawierającym identyfikatora NIP ani PESEL, ale mająca NIP lub PESEL. | * | PersonByFingerprintWithoutIdentifier | Osoba fizyczna posługująca się certyfikatem niezawierającym identyfikatora NIP ani PESEL i niemająca NIP ani PESEL. | * | EntityByFingerprint | Podmiot identyfikowany odciskiem palca pieczęci kwalifikowanej. | */ subjectDetailsType: components["schemas"]["EuEntityPermissionSubjectDetailsType"]; }; /** * @description | Wartość | Opis | * | --- | --- | * | PersonByFingerprintWithIdentifier | Osoba fizyczna posługująca się certyfikatem niezawierającym identyfikatora NIP ani PESEL, ale mająca NIP lub PESEL. | * | PersonByFingerprintWithoutIdentifier | Osoba fizyczna posługująca się certyfikatem niezawierającym identyfikatora NIP ani PESEL i niemająca NIP ani PESEL. | * | EntityByFingerprint | Podmiot identyfikowany odciskiem palca pieczęci kwalifikowanej. | * @enum {string} */ EuEntityPermissionSubjectDetailsType: "PersonByFingerprintWithIdentifier" | "PersonByFingerprintWithoutIdentifier" | "EntityByFingerprint"; /** @enum {string} */ EuEntityPermissionType: "InvoiceWrite" | "InvoiceRead"; ExceptionDetails: { details?: string[] | null; /** Format: int32 */ exceptionCode?: number; exceptionDescription?: string | null; }; ExceptionInfo: { exceptionDetailList?: components["schemas"]["ExceptionDetails"][] | null; referenceNumber?: components["schemas"]["ReferenceNumber"] | null; serviceCode?: string | null; serviceCtx?: string | null; serviceName?: string | null; /** Format: date-time */ timestamp?: string; }; /** * @example { * "exception": { * "exceptionDetailList": [ * { * "exceptionCode": 12345, * "exceptionDescription": "Opis błędu.", * "details": [ * "Opcjonalne dodatkowe szczegóły błędu." * ] * } * ], * "referenceNumber": "a1b2c3d4-e5f6-4789-ab12-cd34ef567890", * "serviceCode": "00-c02cc3747020c605be02159bf3324f0e-eee7647dc67aa74a-00", * "serviceCtx": "srvABCDA", * "serviceName": "Undefined", * "timestamp": "2025-10-11T12:23:56.0154302" * } * } */ ExceptionResponse: { exception?: components["schemas"]["ExceptionInfo"] | null; }; ExportInvoicesResponse: { /** @description Numer referencyjny eksportu faktur. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; /** * @example { * "title": "Forbidden", * "status": 403, * "detail": "Brak wymaganych uprawnień do wykonania operacji w bieżącym kontekście.", * "reasonCode": "missing-permissions", * "security": { * "requiredAnyOfPermissions": [ * "InvoiceRead", * "InvoiceWrite" * ], * "presentPermissions": [ * "CredentialsManage" * ] * } * } */ ForbiddenProblemDetails: { /** @description Szczegółowy opis przyczyny odmowy dostępu. */ detail: string; /** @description URI identyfikujące konkretne wystąpienie błędu. */ instance?: string | null; /** * @description Kod przyczyny odmowy dostępu. * | Code | Opis | * |------|-------------| * | missing-permissions | Brak wymaganych uprawnień do wykonania operacji w bieżącym kontekście. | * | ip-not-allowed | Żądanie pochodzi z adresu IP innego niż wskazany podczas uwierzytelnienia. | * | insufficient-resource-access | Brak dostępu do wskazanego zasobu. | * | auth-method-not-allowed | Ta operacja nie jest dostępna dla użytej metody uwierzytelnienia. | * | security-service-blocked | Żądanie zostało zablokowane przez mechanizmy bezpieczeństwa. | * | context-type-not-allowed | Operacja nie jest dostępna dla uwierzytelnionego typu kontekstu. | */ reasonCode: string; /** * @description Dodatkowe dane zależne od `reasonCode`. * | Code | Security | * |------| ------------ | * | missing-permissions | requiredAnyOfPermissions: string[], presentPermissions: string[] | * | ip-not-allowed | clientIp: string | * | insufficient-resource-access || * | auth-method-not-allowed | authenticationMethodCategory: string | * | security-service-blocked | incidentId: string, clientIp: string | * | context-type-not-allowed | contextIdentifierType: string | */ security?: { [key: string]: unknown; } | null; /** * Format: int32 * @description 403 */ status: number; /** @description Forbidden */ title: string; /** @description Identyfikator śledzenia błędu. */ traceId?: string | null; }; FormCode: { /** @description Wersja schematu */ schemaVersion: string; /** @description Kod systemowy */ systemCode: string; /** @description Wartość */ value: string; }; GenerateTokenRequest: { /** @description Opis tokena. */ description: string; /** @description Uprawnienia przypisane tokenowi. */ permissions: components["schemas"]["TokenPermissionType"][]; }; GenerateTokenResponse: { /** @description Numer referencyjny tokena KSeF. */ referenceNumber: components["schemas"]["ReferenceNumber"]; /** @description Token KSeF. */ token: string; }; /** @description Dane dokumentu tożsamości osoby fizycznej. */ IdDocument: { /** @description Kraj wydania dokumentu tożsamości. Musi być zgodny z ISO 3166-1 alpha-2 (np. PL, DE, US) oraz zawierać dokładnie 2 wielkie litery. */ country: string; /** @description Seria i numer dokumentu tożsamości. */ number: string; /** @description Rodzaj dokumentu tożsamości. */ type: string; }; IndirectPermissionsGrantRequest: { /** @description Opis uprawnienia */ description: string; /** @description Lista nadawanych uprawnień. Każda wartość może wystąpić tylko raz. */ permissions: components["schemas"]["IndirectPermissionType"][]; /** @description Dane podmiotu, któremu nadawane są uprawnienia. */ subjectDetails: WithRequired; /** * @description Identyfikator osoby fizycznej. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ subjectIdentifier: WithRequired; /** * @description Identyfikator kontekstu klienta. Nie przekazanie identyfikatora oznacza, że uprawnienie nadane w sposób pośredni jest typu generalnego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | AllPartners | Identyfikator oznaczający, że uprawnienie nadane w sposób pośredni jest typu generalnego | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ targetIdentifier?: WithRequired | null; }; /** * @description Identyfikator osoby fizycznej. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ IndirectPermissionsSubjectIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["IndirectPermissionsSubjectIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ IndirectPermissionsSubjectIdentifierType: "Nip" | "Pesel" | "Fingerprint"; /** * @description Identyfikator kontekstu klienta. Nie przekazanie identyfikatora oznacza, że uprawnienie nadane w sposób pośredni jest typu generalnego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | AllPartners | Identyfikator oznaczający, że uprawnienie nadane w sposób pośredni jest typu generalnego | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ IndirectPermissionsTargetIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["IndirectPermissionsTargetIdentifierType"]; /** @description Wartość identyfikatora. W przypadku typu AllPartners należy pozostawić puste. W pozostałych przypadkach pole jest wymagane. */ value?: string | null; }; /** @enum {string} */ IndirectPermissionsTargetIdentifierType: "Nip" | "AllPartners" | "InternalId"; /** @enum {string} */ IndirectPermissionType: "InvoiceRead" | "InvoiceWrite"; InitTokenAuthenticationRequest: { /** @description Polityka autoryzacji żądań przy każdym użyciu tokena dostępu. */ authorizationPolicy?: components["schemas"]["AuthorizationPolicy"] | null; /** @description Wygenerowany wcześniej challenge. */ challenge: components["schemas"]["Challenge"]; /** @description Identyfikator kontekstu do którego następuje uwierzytelnienie. */ contextIdentifier: WithRequired; /** * Format: byte * @description Zaszyfrowany token wraz z timestampem z challenge'a, w postaci `token|timestamp`, zakodowany w formacie Base64. */ encryptedToken: string; }; /** @description Identyfikator wewnętrzny, składający się z numeru NIP i 5 cyfr. */ InternalId: string; InvoiceExportRequest: { /** @description Informacje wymagane do zaszyfrowania wyniku zapytania. */ encryption: WithRequired; /** @description Zestaw filtrów do wyszukiwania faktur. */ filters: WithRequired; /** * @description Określa, czy zwrócić tylko metadane faktur (plik _metadata.json bez faktur). * @default false */ onlyMetadata: boolean; }; InvoiceExportStatusResponse: { /** * Format: date-time * @description Data zakończenia przetwarzania żądania eksportu faktur. */ completedDate?: string | null; /** @description Dane paczki faktur przygotowanej do pobrania. */ package?: WithRequired | null; /** * Format: date-time * @description Data wygaśnięcia paczki faktur przygotowanej do pobrania. * Po upływie tej daty paczka nie będzie już dostępna do pobrania. */ packageExpirationDate?: string | null; /** * @description Status eksportu. * * | Code | Description | Details | * | --- | --- | --- | * | 100 | Eksport faktur w toku | - | * | 200 | Eksport faktur zakończony sukcesem | - | * | 210 | Eksport faktur wygasł i nie jest już dostępny do pobrania | - | * | 415 | Błąd odszyfrowania dostarczonego klucza | - | * | 420 | Zakres filtrowania wykracza poza dostępny zakres danych | Parametr dateRange.from jest późniejszy niż PermanentStorageHwmDate przy włączonym restrictToPermanentStorageHwmDate. | * | 500 | Nieznany błąd ({statusCode}) | - | * | 550 | Operacja została anulowana przez system | Przetwarzanie zostało przerwane z przyczyn wewnętrznych systemu. Spróbuj ponownie | */ status: components["schemas"]["StatusInfo"]; }; InvoiceMetadata: { /** * Format: date-time * @description Data nadania numeru KSeF. */ acquisitionDate: string; /** @description Podmiot upoważniony. */ authorizedSubject?: WithRequired | null; /** @description Dane identyfikujące nabywcę. */ buyer: WithRequired; /** @description Kod waluty. */ currency: string; /** * @description Struktura dokumentu faktury. * * Obsługiwane schematy: * | SystemCode | SchemaVersion | Value | ValidFrom | ValidTo | * | --- | --- | --- | --- | --- | * | [FA (2)](https://github.com/CIRFMF/ksef-docs/blob/main/faktury/schemy/FA/schemat_FA(2)_v1-0E.xsd) | 1-0E | FA | | | * | [FA (3)](https://github.com/CIRFMF/ksef-docs/blob/main/faktury/schemy/FA/schemat_FA(3)_v1-0E.xsd) | 1-0E | FA | | | * | [PEF (3)](https://github.com/CIRFMF/ksef-docs/blob/main/faktury/schemy/PEF/Schemat_PEF(3)_v2-1.xsd) | 2-1 | PEF | | | * | [PEF_KOR (3)](https://github.com/CIRFMF/ksef-docs/blob/main/faktury/schemy/PEF/Schemat_PEF_KOR(3)_v2-1.xsd) | 2-1 | PEF | | | * | [FA_RR (1)](https://github.com/CIRFMF/ksef-docs/blob/main/faktury/schemy/RR/schemat_RR(1)_v1-0E.xsd) | 1-0E | RR | | | * | [FA_RR (1)](https://github.com/CIRFMF/ksef-docs/blob/main/faktury/schemy/RR/schemat_RR(1)_v1-1E.xsd) | 1-1E | RR | | | * | [FA_RR (1)](https://github.com/CIRFMF/ksef-docs/blob/main/faktury/schemy/RR/schemat_FA_RR(1)_v1-1E.xsd) | 1-1E | FA_RR | 01.04.2026 | | */ formCode: WithRequired; /** * Format: double * @description Łączna kwota brutto. */ grossAmount: number; /** @description Określa, czy faktura posiada załącznik. */ hasAttachment: boolean; /** @description Skrót SHA256 korygowanej faktury, zakodowany w formacie Base64. */ hashOfCorrectedInvoice?: components["schemas"]["Sha256HashBase64"] | null; /** @description Skrót SHA256 faktury, zakodowany w formacie Base64. */ invoiceHash: components["schemas"]["Sha256HashBase64"]; /** @description Numer faktury nadany przez wystawcę. */ invoiceNumber: string; /** * @description Rodzaj faktury. * | Wartość | Opis | * | --- | --- | * | Vat | (FA) Podstawowa | * | Zal | (FA) Zaliczkowa | * | Kor | (FA) Korygująca | * | Roz | (FA) Rozliczeniowa | * | Upr | (FA) Uproszczona | * | KorZal | (FA) Korygująca fakturę zaliczkową | * | KorRoz | (FA) Korygująca fakturę rozliczeniową | * | VatPef | (PEF) Podstawowa | * | VatPefSp | (PEF) Specjalizowana | * | KorPef | (PEF) Korygująca | * | VatRr | (FA_RR) Podstawowa | * | KorVatRr | (FA_RR) Korygująca | */ invoiceType: components["schemas"]["InvoiceType"]; /** * Format: date-time * @description Data przyjęcia faktury w systemie KSeF (do dalszego przetwarzania). */ invoicingDate: string; /** @description Tryb fakturowania (online/offline). */ invoicingMode: components["schemas"]["InvoicingMode"]; /** @description Czy faktura została wystawiona w trybie samofakturowania. */ isSelfInvoicing: boolean; /** * Format: date * @description Data wystawienia faktury. */ issueDate: string; /** @description Numer KSeF faktury. */ ksefNumber: components["schemas"]["KsefNumber"]; /** * Format: double * @description Łączna kwota netto. */ netAmount: number; /** * Format: date-time * @description Data trwałego zapisu faktury w repozytorium systemu KSeF. */ permanentStorageDate: string; /** @description Dane identyfikujące sprzedawcę. */ seller: WithRequired; /** @description Lista podmiotów trzecich. */ thirdSubjects?: components["schemas"]["InvoiceMetadataThirdSubject"][] | null; /** * Format: double * @description Łączna kwota VAT wyrażona w PLN. */ vatAmount: number; }; InvoiceMetadataAuthorizedSubject: { /** @description Nazwa podmiotu upoważnionego. */ name?: string | null; /** @description Nip podmiotu upoważnionego */ nip: components["schemas"]["Nip"]; /** * Format: int32 * @description Rola podmiotu upoważnionego. * | Wartość | Opis | * | ---- | --- | * | 1 | Organ egzekucyjny - w przypadku, o którym mowa w art. 106c pkt 1 ustawy | * | 2 | Komornik sądowy - w przypadku, o którym mowa w art. 106c pkt 2 ustawy | * | 3 | Przedstawiciel podatkowy - w przypadku gdy na fakturze występują dane przedstawiciela podatkowego, o którym mowa w art. 18a - 18d ustawy | */ role: number; }; InvoiceMetadataBuyer: { /** * @description Identyfikator nabywcy. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | VatUe | Identyfikator VAT UE podmiotu unijnego | * | Other | Inny identyfikator| * | None | Brak identyfikatora nabywcy | */ identifier: WithRequired; /** @description Nazwa nabywcy. */ name?: string | null; }; InvoiceMetadataBuyerIdentifier: { /** * @description Typ identyfikatora nabywcy. * | Wartość | Opis | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | VatUe | Identyfikator VAT UE podmiotu unijnego | * | Other | Inny identyfikator | * | None | Brak identyfikatora nabywcy | */ type: components["schemas"]["BuyerIdentifierType"]; /** @description Wartość identyfikatora nabywcy. */ value?: string | null; }; InvoiceMetadataSeller: { /** @description Nazwa sprzedawcy. */ name?: string | null; /** @description Nip sprzedawcy. */ nip: components["schemas"]["Nip"]; }; InvoiceMetadataThirdSubject: { identifier: components["schemas"]["InvoiceMetadataThirdSubjectIdentifier"]; /** @description Nazwa podmiotu trzeciego. */ name?: string | null; /** * Format: int32 * @description Rola podmiotu trzeciego. * | Wartość | Opis | * | ---- | --- | * | 0 | Inna rola | * | 1 | Faktor - w przypadku gdy na fakturze występują dane faktora | * | 2 | Odbiorca - w przypadku gdy na fakturze występują dane jednostek wewnętrznych, oddziałów, wyodrębnionych w ramach nabywcy, które same nie stanowią nabywcy w rozumieniu ustawy | * | 3 | Podmiot pierwotny - w przypadku gdy na fakturze występują dane podmiotu będącego w stosunku do podatnika podmiotem przejętym lub przekształconym, który dokonywał dostawy lub świadczył usługę. Z wyłączeniem przypadków, o których mowa w art. 106j ust.2 pkt 3 ustawy, gdy dane te wykazywane są w części Podmiot1K | * | 4 | Dodatkowy nabywca - w przypadku gdy na fakturze występują dane kolejnych (innych niż wymieniony w części Podmiot2) nabywców | * | 5 | Wystawca faktury - w przypadku gdy na fakturze występują dane podmiotu wystawiającego fakturę w imieniu podatnika. Nie dotyczy przypadku, gdy wystawcą faktury jest nabywca | * | 6 | Dokonujący płatności - w przypadku gdy na fakturze występują dane podmiotu regulującego zobowiązanie w miejsce nabywcy | * | 7 | Jednostka samorządu terytorialnego - wystawca | * | 8 | Jednostka samorządu terytorialnego - odbiorca | * | 9 | Członek grupy VAT - wystawca | * | 10 | Członek grupy VAT - odbiorca | * | 11 | Pracownik | */ role: number; }; InvoiceMetadataThirdSubjectIdentifier: { /** * @description Typ identyfikatora podmiotu trzeciego. * | Wartość | Opis | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | InternalId | Identyfikator wewnętrzny, składający się z numeru NIP i 5 cyfr. | * | VatUe | Identyfikator VAT UE podmiotu unijnego | * | Other | Inny identyfikator | * | None | Brak identyfikatora podmiotu trzeciego | */ type: components["schemas"]["ThirdSubjectIdentifierType"]; /** @description Wartość identyfikatora podmiotu trzeciego. */ value?: string | null; }; InvoicePackage: { /** * Format: int64 * @description Łączna liczba faktur w paczce. */ invoiceCount: number; /** @description Określa, czy wynik eksportu został ucięty z powodu przekroczenia limitu liczby faktur lub wielkości paczki. */ isTruncated: boolean; /** * Format: date-time * @description Data przyjęcia ostatniej faktury ujętej w paczce. * Pole występuje wyłącznie wtedy, gdy paczka została ucięta i eksport był filtrowany po typie daty `Invoicing`. */ lastInvoicingDate?: string | null; /** * Format: date * @description Data wystawienia ostatniej faktury ujętej w paczce. * Pole występuje wyłącznie wtedy, gdy paczka została ucięta i eksport był filtrowany po typie daty `Issue`. */ lastIssueDate?: string | null; /** * Format: date-time * @description Data trwałego zapisu ostatniej faktury ujętej w paczce. * Pole występuje wyłącznie wtedy, gdy paczka została ucięta i eksport był filtrowany po typie daty `PermanentStorage`. */ lastPermanentStorageDate?: string | null; /** @description Lista dostępnych części paczki do pobrania. */ parts: components["schemas"]["InvoicePackagePart"][]; /** * Format: date-time * @description Dotyczy wyłącznie zapytań filtrowanych po typie daty PermanentStorage. * Jeśli zapytanie dotyczyło najnowszego okresu, wartość ta może być wartością nieznacznie skorygowaną względem górnej granicy podanej w warunkach zapytania. * Dla okresów starszych, będzie to zgodne z warunkami zapytania. * * System gwarantuje, że dane poniżej tej wartości są spójne i kompletne. * Ponowne zapytania obejmujące zakresem dane poniżej tego kroczącego znacznika czasu nie zwrócą w przyszłości innych wyników (np.dodatkowych faktur). * * Dla dateType = Issue lub Invoicing – null. */ permanentStorageHwmDate?: string | null; /** * Format: int64 * @description Rozmiar paczki w bajtach. */ size: number; }; InvoicePackagePart: { /** @description Skrót SHA256 zaszyfrowanej części paczki, zakodowany w formacie Base64. */ encryptedPartHash: components["schemas"]["Sha256HashBase64"]; /** * Format: int64 * @description Rozmiar zaszyfrowanej części paczki w bajtach. */ encryptedPartSize: number; /** * Format: date-time * @description Data i godzina wygaśnięcia linku umożliwiającego pobranie części paczki. * Po upływie tego momentu link przestaje być aktywny. */ expirationDate: string; /** @description Metoda HTTP, której należy użyć przy pobieraniu pliku. */ method: string; /** * Format: int32 * @description Numer sekwencyjny pliku części paczki. */ ordinalNumber: number; /** @description Skrót SHA256 pliku części paczki, zakodowany w formacie Base64. */ partHash: components["schemas"]["Sha256HashBase64"]; /** @description Nazwa pliku części paczki. */ partName: string; /** * Format: int64 * @description Rozmiar części paczki w bajtach. */ partSize: number; /** * Format: uri * @description Adres URL, pod który należy wysłać żądanie pobrania części paczki. * Link jest generowany dynamicznie w momencie odpytania o status operacji eksportu. * Nie podlega limitom API i nie wymaga przesyłania tokenu dostępowego przy pobraniu. * * Odpowiedź HTTP zawiera dodatkowe nagłówki: * - `x-ms-meta-hash` – zaszyfrowanej części paczki, zakodowany w formacie Base64. */ url: string; }; /** @enum {string} */ InvoicePermissionType: "SelfInvoicing" | "TaxRepresentative" | "RRInvoicing" | "PefInvoicing"; InvoiceQueryAmount: { /** Format: double */ from?: number | null; /** Format: double */ to?: number | null; type: components["schemas"]["AmountType"]; }; InvoiceQueryBuyerIdentifier: { /** * @description Typ identyfikatora nabywcy. * | Wartość | Opis | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | VatUe | Identyfikator VAT UE podmiotu unijnego | * | Other | Inny identyfikator | * | None | Brak identyfikatora nabywcy | */ type: components["schemas"]["BuyerIdentifierType"]; /** @description Wartość identyfikatora nabywcy (exact match). */ value?: string | null; }; InvoiceQueryDateRange: { /** * @description Typ daty, według której ma być zastosowany zakres. * | Wartość | Opis | * | --- | --- | * | Issue | Data wystawienia faktury. | * | Invoicing | Data przyjęcia faktury w systemie KSeF (do dalszego przetwarzania). | * | PermanentStorage | Data trwałego zapisu faktury w repozytorium systemu KSeF. | */ dateType: components["schemas"]["InvoiceQueryDateType"]; /** * Format: date-time * @description Data początkowa zakresu w formacie ISO-8601 np. 2026-01-03T13:45:00+00:00. */ from: string; /** * @description Określa, czy system ma ograniczyć filtrowanie (zakres dateRange.to) do wartości `PermanentStorageHwmDate`. * * * Dotyczy wyłącznie zapytań z `dateType = PermanentStorage`, * * Gdy `true`, system ogranicza filtrowanie tak, aby wartość `dateRange.to` nie przekraczała wartości `PermanentStorageHwmDate`, * * Gdy `null` lub `false`, filtrowanie może wykraczać poza `PermanentStorageHwmDate`. */ restrictToPermanentStorageHwmDate?: boolean | null; /** * Format: date-time * @description Data końcowa zakresu w formacie ISO-8601. Jeśli nie zostanie podana, przyjmowana jest bieżąca data i czas w UTC. */ to?: string | null; }; /** * @description | Wartość | Opis | * | --- | --- | * | Issue | Data wystawienia faktury. | * | Invoicing | Data przyjęcia faktury w systemie KSeF (do dalszego przetwarzania). | * | PermanentStorage | Data trwałego zapisu faktury w repozytorium systemu KSeF. | * @enum {string} */ InvoiceQueryDateType: "Issue" | "Invoicing" | "PermanentStorage"; InvoiceQueryFilters: { /** @description Filtr kwotowy – brutto, netto lub VAT (z wartością). */ amount?: WithRequired | null; /** * @description Identyfikator nabywcy. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | VatUe | Identyfikator VAT UE podmiotu unijnego. | * | Other | Inny identyfikator| * | None | Brak identyfikatora nabywcy | */ buyerIdentifier?: WithRequired | null; /** @description Kody walut. */ currencyCodes?: components["schemas"]["CurrencyCode"][] | null; /** * @description Typ i zakres dat, według którego filtrowane są faktury. * Maksymalny dozwolony okres wynosi 3 miesiące w strefie UTC lub w strefie Europe/Warsaw (WAW). * * Format daty: * * Daty muszą być przekazane w formacie ISO 8601, np. `yyyy-MM-ddTHH:mm:ss`. * * Dopuszczalne są następujące warianty: * - z sufiksem `Z` (czas UTC), * - z jawnym offsetem, np. `+01:00`, `+03:00`, * - bez offsetu (interpretowane jako czas lokalny strefy Europe/Warsaw). */ dateRange: WithRequired; /** * @description Typ dokumentu. * | Wartość | Opis | * | --- | --- | * | FA | Faktura VAT | * | PEF | Faktura PEF | * | RR ![Deprecated](https://img.shields.io/badge/Deprecated-orange) | Faktura RR | * | FA_RR | Faktura RR | */ formType?: components["schemas"]["InvoiceQueryFormType"] | null; /** @description Czy faktura ma załącznik. */ hasAttachment?: boolean | null; /** @description Numer faktury nadany przez wystawcę (exact match). */ invoiceNumber?: string | null; /** * @description Rodzaje faktur. * | Wartość | Opis | * | --- | --- | * | Vat | (FA) Podstawowa | * | Zal | (FA) Zaliczkowa | * | Kor | (FA) Korygująca | * | Roz | (FA) Rozliczeniowa | * | Upr | (FA) Uproszczona | * | KorZal | (FA) Korygująca fakturę zaliczkową | * | KorRoz | (FA) Korygująca fakturę rozliczeniową | * | VatPef | (PEF) Podstawowa | * | VatPefSp | (PEF) Specjalizowana | * | KorPef | (PEF) Korygująca | * | VatRr | (FA_RR) Podstawowa | * | KorVatRr | (FA_RR) Korygująca | */ invoiceTypes?: components["schemas"]["InvoiceType"][] | null; /** @description Tryb wystawienia faktury: online lub offline. */ invoicingMode?: components["schemas"]["InvoicingMode"] | null; /** @description Czy faktura została wystawiona w trybie samofakturowania. */ isSelfInvoicing?: boolean | null; /** @description Numer KSeF faktury (exact match). */ ksefNumber?: components["schemas"]["KsefNumber"] | null; /** @description Nip sprzedawcy (exact match). */ sellerNip?: components["schemas"]["Nip"] | null; /** * @description Typ podmiotu, którego dotyczą kryteria filtrowania metadanych faktur. * Określa kontekst, w jakim przeszukiwane są dane. * | Wartość | Opis | * | --- | --- | * | Subject1 | Podmiot 1 - sprzedawca | * | Subject2 | Podmiot 2 - nabywca | * | Subject3 | Podmiot 3 | * | SubjectAuthorized | Podmiot upoważniony | */ subjectType: components["schemas"]["InvoiceQuerySubjectType"]; }; /** * @description | Wartość | Opis | * | --- | --- | * | FA | Faktura VAT | * | PEF | Faktura PEF | * | RR ![Deprecated](https://img.shields.io/badge/Deprecated-orange) | Faktura RR | * | FA_RR | Faktura RR | * @enum {string} */ InvoiceQueryFormType: "FA" | "PEF" | "RR" | "FA_RR"; /** * @description | Wartość | Opis | * | --- | --- | * | Subject1 | Podmiot 1 - sprzedawca | * | Subject2 | Podmiot 2 - nabywca | * | Subject3 | Podmiot 3 | * | SubjectAuthorized | Podmiot upoważniony | * @enum {string} */ InvoiceQuerySubjectType: "Subject1" | "Subject2" | "Subject3" | "SubjectAuthorized"; InvoiceStatusInfo: { /** * Format: int32 * @description Kod statusu faktury */ code: number; /** @description Opis statusu */ description: string; /** @description Dodatkowe szczegóły statusu */ details?: string[] | null; /** * @description Zbiór dodatkowych informacji związanych ze statusem faktury, zapisanych jako pary klucz–wartość. * Umożliwia rozszerzenie modelu o dane specyficzne dla danego przypadku. */ extensions?: { [key: string]: string | null; } | null; }; /** * @description | Wartość | Opis | * | --- | --- | * | Vat | (FA) Podstawowa | * | Zal | (FA) Zaliczkowa | * | Kor | (FA) Korygująca | * | Roz | (FA) Rozliczeniowa | * | Upr | (FA) Uproszczona | * | KorZal | (FA) Korygująca fakturę zaliczkową | * | KorRoz | (FA) Korygująca fakturę rozliczeniową | * | VatPef | (PEF) Podstawowa | * | VatPefSp | (PEF) Specjalizowana | * | KorPef | (PEF) Korygująca | * | VatRr | (FA_RR) Podstawowa | * | KorVatRr | (FA_RR) Korygująca | * @enum {string} */ InvoiceType: "Vat" | "Zal" | "Kor" | "Roz" | "Upr" | "KorZal" | "KorRoz" | "VatPef" | "VatPefSp" | "KorPef" | "VatRr" | "KorVatRr"; /** @enum {string} */ InvoicingMode: "Online" | "Offline"; /** * @description | Wartość | Opis | * | --- | --- | * | Authentication | Certyfikat używany do uwierzytelnienia w systemie. | * | Offline | Certyfikat używany wyłącznie do potwierdzania autentyczności wystawcy i integralności faktury w trybie offline | * @enum {string} */ KsefCertificateType: "Authentication" | "Offline"; /** @description Numer KSeF o długości 36 znaków jest akceptowany, by zachować kompatybilność wsteczna z KSeF 1.0. W KSeF 2.0 numery są generowane wyłącznie w formacie 35-znakowym. */ KsefNumber: string; /** @description 10 cyfrowy numer NIP. */ Nip: string; /** @description Identyfikator złożony, czyli dwuczłonowy identyfikator składający się z nr NIP podmiotu polskiego oraz numeru VAT UE podmiotu unijnego. */ NipVatUe: string; OnlineSessionEffectiveContextLimits: { /** * Format: int32 * @description Maksymalna ilość faktur które można przesłać w pojedynczej sesji. */ maxInvoices: number; /** * Format: int32 * @description Maksymalny rozmiar faktury w MB. */ maxInvoiceSizeInMB: number; /** * Format: int32 * @description Maksymalny rozmiar faktury z załącznikiem w MB. */ maxInvoiceWithAttachmentSizeInMB: number; }; OpenBatchSessionRequest: { /** @description Informacje o przesyłanej paczce faktur. */ batchFile: WithRequired; /** @description Symetryczny klucz szyfrujący plik paczki, zaszyfrowany kluczem publicznym Ministerstwa Finansów. */ encryption: WithRequired; /** * @description Schemat faktur wysyłanych w ramach sesji. * * Obsługiwane schematy: * | SystemCode | SchemaVersion | Value | ValidFrom | ValidTo | * | --- | --- | --- | --- | --- | * | [FA (3)](https://github.com/CIRFMF/ksef-docs/blob/main/faktury/schemy/FA/schemat_FA(3)_v1-0E.xsd) | 1-0E | FA | | | * | [FA_RR (1)](https://github.com/CIRFMF/ksef-docs/blob/main/faktury/schemy/RR/schemat_FA_RR(1)_v1-1E.xsd) | 1-1E | FA_RR | 01.04.2026 | | */ formCode: WithRequired; /** * @description Określa, czy podatnik deklaruje tryb fakturowania "offline" dla dokumentów przesyłanych w sesji wsadowej. * @default false */ offlineMode: boolean; }; OpenBatchSessionResponse: { /** * @description Dane wymagane do poprawnego przesłania poszczególnych części pliku paczki faktur. * * Każdą część pliku paczki zadeklarowaną w fileParts należy przesłać zgodnie z odpowiadającym jej obiektem w partUploadRequests. * Łącznikiem pomiędzy deklaracją a instrukcją wysyłki jest pole ordinalNumber. * * Dla każdej części należy: * * zastosować metodę HTTP wskazaną w method, * * ustawić adres z url, * * dołączyć nagłówki z headers, * * dołączyć treść części pliku w korpusie żądania. * * `Uwaga: nie należy dodawać do nagłówków token dostępu (accessToken).` * * Każdą część przesyła się oddzielnym żądaniem HTTP.Zwracane kody odpowiedzi: * * 201 – poprawne przyjęcie pliku, * * 400 – błędne dane, * * 401 – nieprawidłowe uwierzytelnienie, * * 403 – brak uprawnień do zapisu (np.upłynął czas na zapis). */ partUploadRequests: components["schemas"]["PartUploadRequest"][]; /** @description Numer referencyjny sesji. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; OpenOnlineSessionRequest: { /** @description Symetryczny klucz szyfrujący pliki XML, zaszyfrowany kluczem publicznym Ministerstwa Finansów. */ encryption: WithRequired; /** * @description Schemat faktur wysyłanych w ramach sesji. * * Obsługiwane schematy: * | SystemCode | SchemaVersion | Value | ValidFrom | ValidTo | * | --- | --- | --- | --- | --- | * | [FA (3)](https://github.com/CIRFMF/ksef-docs/blob/main/faktury/schemy/FA/schemat_FA(3)_v1-0E.xsd) | 1-0E | FA | | | * | [PEF (3)](https://github.com/CIRFMF/ksef-docs/blob/main/faktury/schemy/PEF/Schemat_PEF(3)_v2-1.xsd) | 2-1 | PEF | | | * | [PEF_KOR (3)](https://github.com/CIRFMF/ksef-docs/blob/main/faktury/schemy/PEF/Schemat_PEF_KOR(3)_v2-1.xsd) | 2-1 | PEF | | | * | [FA_RR (1)](https://github.com/CIRFMF/ksef-docs/blob/main/faktury/schemy/RR/schemat_FA_RR(1)_v1-1E.xsd) | 1-1E | FA_RR | 01.04.2026 | | */ formCode: WithRequired; }; OpenOnlineSessionResponse: { /** @description Numer referencyjny sesji. */ referenceNumber: components["schemas"]["ReferenceNumber"]; /** * Format: date-time * @description Termin ważności sesji. Po jego upływie sesja zostanie automatycznie zamknięta. */ validUntil: string; }; PartUploadRequest: { /** @description Nagłówki, których należy użyć przy wysyłce części pliku paczki. */ headers: { [key: string]: string | null; }; /** @description Metoda HTTP, której należy użyć przy wysyłce części pliku paczki. */ method: string; /** * Format: int32 * @description Numer sekwencyjny części pliku paczki. */ ordinalNumber: number; /** * Format: uri * @description Adres pod który należy wysłać część pliku paczki. */ url: string; }; /** @description Identyfikator dostawcy usług Peppol. */ PeppolId: string; PeppolProvider: { /** * Format: date-time * @description Data rejestracji dostawcy usług Peppol w systemie. */ dateCreated: string; /** @description Identyfikator dostawcy usług Peppol. */ id: components["schemas"]["PeppolId"]; /** @description Nazwa dostawcy usług Peppol. */ name: string; }; /** @description Techniczny identyfikator nadanego uprawnienia – wymagany m.in. przy operacjach odbierania. */ PermissionId: string; PermissionsEuEntityDetails: { /** @description Adres podmiotu unijnego. */ address: string; /** @description Pełna nazwa podmiotu unijnego. */ fullName: string; }; PermissionsOperationResponse: { /** @description Numer referencyjny operacji nadania lub odbierania uprawnień. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; PermissionsOperationStatusResponse: { /** * @description Informacje o aktualnym statusie. * | Code | Description | Details | * | --- | --- | --- | * | 100 | Operacja przyjęta do realizacji | - | * | 200 | Operacja zakończona sukcesem | - | * | 400 | Operacja zakończona niepowodzeniem | - | * | 410 | Podane identyfikatory są niezgodne lub pozostają w niewłaściwej relacji | - | * | 420 | Użyte poświadczenia nie mają uprawnień do wykonania tej operacji | - | * | 430 | Kontekst identyfikatora nie odpowiada wymaganej roli lub uprawnieniom | - | * | 440 | Operacja niedozwolona dla wskazanych powiązań identyfikatorów | - | * | 450 | Operacja niedozwolona dla wskazanego identyfikatora lub jego typu | - | * | 500 | Nieznany błąd | - | * | 550 | Operacja została anulowana przez system | Przetwarzanie zostało przerwane z przyczyn wewnętrznych systemu. Spróbuj ponownie później. | */ status: components["schemas"]["StatusInfo"]; }; PermissionsSubjectEntityByFingerprintDetails: { /** @description Adres podmiotu. */ address?: string | null; /** @description Pełna nazwa podmiotu. */ fullName: string; /** * @description Typ danych podmiotu uprawnionego. * | Wartość | Opis | * | --- | --- | * | EntityByFingerprint | Podmiot identyfikowany odciskiem palca pieczęci kwalifikowanej. | */ subjectDetailsType: components["schemas"]["EntitySubjectByFingerprintDetailsType"]; }; PermissionsSubjectEntityByIdentifierDetails: { /** @description Pełna nazwa podmiotu. */ fullName: string; /** * @description Typ danych podmiotu uprawnionego. * | Wartość | Opis | * | --- | --- | * | EntityByIdentifier | Podmiot identyfikowany numerem NIP. | */ subjectDetailsType: components["schemas"]["EntitySubjectByIdentifierDetailsType"]; }; PermissionsSubjectEntityDetails: { /** @description Adres podmiotu. */ address?: string | null; /** @description Pełna nazwa podmiotu. */ fullName: string; /** * @description Typ danych podmiotu uprawnionego. * | Wartość | Opis | * | --- | --- | * | EntityByIdentifier | Podmiot identyfikowany numerem NIP. | * | EntityByFingerprint | Podmiot identyfikowany odciskiem palca pieczęci kwalifikowanej. | */ subjectDetailsType: components["schemas"]["EntitySubjectDetailsType"]; }; PermissionsSubjectPersonByFingerprintDetails: { /** * Format: date * @description Data urodzenia osoby fizycznej. */ birthDate?: string | null; /** @description Imię osoby fizycznej. */ firstName: string; /** @description Dane dokumentu tożsamości osoby fizycznej. */ idDocument?: WithRequired | null; /** @description Nazwisko osoby fizycznej. */ lastName: string; /** @description Identyfikator osoby fizycznej. */ personIdentifier?: WithRequired | null; /** * @description Typ danych uprawnionej osoby fizycznej. * | Wartość | Opis | * | --- | --- | * | PersonByFingerprintWithIdentifier | Osoba fizyczna posługująca się certyfikatem niezawierającym identyfikatora NIP ani PESEL, ale mająca NIP lub PESEL. | * | PersonByFingerprintWithoutIdentifier | Osoba fizyczna posługująca się certyfikatem niezawierającym identyfikatora NIP ani PESEL i niemająca NIP ani PESEL. | */ subjectDetailsType: components["schemas"]["PersonSubjectByFingerprintDetailsType"]; }; PermissionsSubjectPersonDetails: { /** * Format: date * @description Data urodzenia osoby fizycznej. */ birthDate?: string | null; /** @description Imię osoby fizycznej. */ firstName: string; /** @description Dane dokumentu tożsamości osoby fizycznej. */ idDocument?: WithRequired | null; /** @description Nazwisko osoby fizycznej. */ lastName: string; /** @description Identyfikator osoby fizycznej. */ personIdentifier?: WithRequired | null; /** * @description Typ danych uprawnionej osoby fizycznej. * | Wartość | Opis | * | --- | --- | * | PersonByIdentifier | Osoba fizyczna posługująca się Profilem Zaufanym lub certyfikatem zawierającym identyfikator NIP lub PESEL. | * | PersonByFingerprintWithIdentifier | Osoba fizyczna posługująca się certyfikatem niezawierającym identyfikatora NIP ani PESEL, ale mająca NIP lub PESEL. | * | PersonByFingerprintWithoutIdentifier | Osoba fizyczna posługująca się certyfikatem niezawierającym identyfikatora NIP ani PESEL i niemająca NIP ani PESEL. | */ subjectDetailsType: components["schemas"]["PersonSubjectDetailsType"]; }; /** @enum {string} */ PermissionState: "Active" | "Inactive"; PersonalPermission: { /** * @description Identyfikator podmiotu uprawnionego, jeżeli jest inny niż identyfikator uwierzytelnionego klienta API. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | */ authorizedIdentifier?: WithRequired | null; /** @description Flaga określająca, czy uprawnienie ma być możliwe do dalszego przekazywania. */ canDelegate: boolean; /** * @description Identyfikator kontekstu podmiotu, który nadał uprawnienia do obsługi faktur. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ contextIdentifier?: WithRequired | null; /** @description Opis uprawnienia. */ description: string; /** @description Identyfikator uprawnienia. */ id: components["schemas"]["PermissionId"]; /** @description Rodzaj uprawnienia. */ permissionScope: components["schemas"]["PersonalPermissionScope"]; /** @description Stan uprawnienia. */ permissionState: components["schemas"]["PermissionState"]; /** * Format: date-time * @description Data rozpoczęcia obowiązywania uprawnienia. */ startDate: string; /** @description Dane podmiotu uprawnionego. */ subjectEntityDetails?: WithRequired | null; /** @description Dane osoby uprawnionej. */ subjectPersonDetails?: WithRequired | null; /** * @description Identyfikator podmiotu docelowego dla uprawnień selektywnych nadanych pośrednio. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | AllPartners | Identyfikator oznaczający, że wyszukiwanie dotyczy uprawnień generalnych nadanych w sposób pośredni | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ targetIdentifier?: WithRequired | null; }; /** * @description Identyfikator podmiotu uprawnionego, jeżeli jest inny niż identyfikator uwierzytelnionego klienta API. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | */ PersonalPermissionsAuthorizedIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["PersonalPermissionsAuthorizedIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ PersonalPermissionsAuthorizedIdentifierType: "Nip" | "Pesel" | "Fingerprint"; /** * @description Identyfikator kontekstu podmiotu, który nadał uprawnienia do obsługi faktur. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ PersonalPermissionsContextIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["PersonalPermissionsContextIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ PersonalPermissionsContextIdentifierType: "Nip" | "InternalId"; /** @enum {string} */ PersonalPermissionScope: "CredentialsManage" | "CredentialsRead" | "InvoiceWrite" | "InvoiceRead" | "Introspection" | "SubunitManage" | "EnforcementOperations" | "VatUeManage"; PersonalPermissionsQueryRequest: { /** * @description Identyfikator kontekstu podmiotu, który nadał uprawnienia do obsługi faktur. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ contextIdentifier?: WithRequired | null; /** * @description Stan uprawnienia. * | Type | Value | * | --- | --- | * | Active | Uprawnienia aktywne | * | Inactive | Uprawnienia nieaktywne | */ permissionState?: components["schemas"]["PermissionState"] | null; /** @description Lista rodzajów wyszukiwanych uprawnień. */ permissionTypes?: components["schemas"]["PersonalPermissionType"][] | null; /** * @description Identyfikator podmiotu docelowego dla uprawnień selektywnych nadanych pośrednio. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | AllPartners | Identyfikator oznaczający, że wyszukiwanie dotyczy uprawnień generalnych nadanych w sposób pośredni | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ targetIdentifier?: WithRequired | null; }; /** * @description Identyfikator podmiotu docelowego dla uprawnień selektywnych nadanych pośrednio. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | AllPartners | Identyfikator oznaczający, że wyszukiwanie dotyczy uprawnień generalnych nadanych w sposób pośredni | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ PersonalPermissionsTargetIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["PersonalPermissionsTargetIdentifierType"]; /** @description Wartość identyfikatora. W przypadku typu AllPartners należy pozostawić puste. W pozostałych przypadkach pole jest wymagane. */ value?: string | null; }; /** @enum {string} */ PersonalPermissionsTargetIdentifierType: "Nip" | "AllPartners" | "InternalId"; /** @enum {string} */ PersonalPermissionType: "CredentialsManage" | "CredentialsRead" | "InvoiceWrite" | "InvoiceRead" | "Introspection" | "SubunitManage" | "EnforcementOperations" | "VatUeManage"; PersonByFingerprintWithIdentifierDetails: { /** @description Imię osoby fizycznej. */ firstName: string; /** @description Identyfikator osoby fizycznej. */ identifier: WithRequired; /** @description Nazwisko osoby fizycznej. */ lastName: string; }; PersonByFingerprintWithoutIdentifierDetails: { /** * Format: date * @description Data urodzenia osoby fizycznej. */ birthDate: string; /** @description Imię osoby fizycznej. */ firstName: string; /** @description Dane dokumentu tożsamości osoby fizycznej. */ idDocument: WithRequired; /** @description Nazwisko osoby fizycznej. */ lastName: string; }; PersonDetails: { /** @description Imię osoby fizycznej. */ firstName: string; /** @description Nazwisko osoby fizycznej. */ lastName: string; }; PersonIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["PersonIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** * @description Typ identyfikatora osoby fizycznej. * @enum {string} */ PersonIdentifierType: "Pesel" | "Nip"; PersonPermission: { /** * @description Identyfikator osoby lub podmiotu nadającego uprawnienie. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | * | System | Identyfikator systemowy KSeF | */ authorIdentifier: WithRequired; /** * @description Identyfikator osoby lub podmiotu uprawnionego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ authorizedIdentifier: WithRequired; /** @description Flaga określająca, czy uprawnienie ma być możliwe do dalszego przekazywania. */ canDelegate: boolean; /** * @description Identyfikator kontekstu uprawnienia (dla uprawnień nadanych administratorom jednostek podrzędnych). * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ contextIdentifier?: WithRequired | null; /** @description Opis uprawnienia. */ description: string; /** @description Identyfikator uprawnienia. */ id: components["schemas"]["PermissionId"]; /** @description Rodzaj uprawnienia. */ permissionScope: components["schemas"]["PersonPermissionScope"]; /** @description Stan uprawnienia. */ permissionState: components["schemas"]["PermissionState"]; /** * Format: date-time * @description Data rozpoczęcia obowiązywania uprawnienia. */ startDate: string; /** @description Dane podmiotu uprawnionego. */ subjectEntityDetails?: WithRequired | null; /** @description Dane osoby uprawnionej. */ subjectPersonDetails?: WithRequired | null; /** * @description Identyfikator podmiotu docelowego dla uprawnień nadanych pośrednio. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | AllPartners | Identyfikator oznaczający, że uprawnienie nadane w sposób pośredni jest typu generalnego | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ targetIdentifier?: WithRequired | null; }; /** * @description Identyfikator osoby lub podmiotu nadającego uprawnienie. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | * | System | Identyfikator systemowy KSeF | */ PersonPermissionsAuthorIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["PersonPermissionsAuthorIdentifierType"]; /** @description Wartość identyfikatora. W przypadku typu System należy pozostawić puste. W pozostałych przypadkach pole jest wymagane. */ value?: string | null; }; /** @enum {string} */ PersonPermissionsAuthorIdentifierType: "Nip" | "Pesel" | "Fingerprint" | "System"; /** * @description Identyfikator osoby lub podmiotu uprawnionego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ PersonPermissionsAuthorizedIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["PersonPermissionsAuthorizedIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ PersonPermissionsAuthorizedIdentifierType: "Nip" | "Pesel" | "Fingerprint"; /** * @description Identyfikator kontekstu uprawnienia (dla uprawnień nadanych administratorom jednostek podrzędnych). * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ PersonPermissionsContextIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["PersonPermissionsContextIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ PersonPermissionsContextIdentifierType: "Nip" | "InternalId"; /** @enum {string} */ PersonPermissionScope: "CredentialsManage" | "CredentialsRead" | "InvoiceWrite" | "InvoiceRead" | "Introspection" | "SubunitManage" | "EnforcementOperations"; PersonPermissionsGrantRequest: { /** @description Opis uprawnienia */ description: string; /** @description Lista nadawanych uprawnień. Każda wartość może wystąpić tylko raz. */ permissions: components["schemas"]["PersonPermissionType"][]; /** @description Dane podmiotu, któremu nadawane są uprawnienia. */ subjectDetails: WithRequired; /** * @description Identyfikator osoby fizycznej. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ subjectIdentifier: WithRequired; }; PersonPermissionsQueryRequest: { /** * @description Identyfikator osoby lub podmiotu nadającego uprawnienie. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | * | System | Identyfikator systemowy KSeF | */ authorIdentifier?: WithRequired | null; /** * @description Identyfikator osoby lub podmiotu uprawnionego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ authorizedIdentifier?: WithRequired | null; /** * @description Identyfikator kontekstu uprawnienia (dla uprawnień nadanych administratorom jednostek podrzędnych). * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ contextIdentifier?: WithRequired | null; /** * @description Stan uprawnienia. * | Type | Value | * | --- | --- | * | Active | Uprawnienia aktywne | * | Inactive | Uprawnienia nieaktywne, nadane w sposób pośredni | */ permissionState?: components["schemas"]["PermissionState"] | null; /** @description Lista rodzajów wyszukiwanych uprawnień. */ permissionTypes?: components["schemas"]["PersonPermissionType"][] | null; /** * @description Typ zapytania. * | Type | Value | * | --- | --- | * | PermissionsInCurrentContext | Lista uprawnień obowiązujących w bieżącym kontekście | * | PermissionsGrantedInCurrentContext | Lista uprawnień nadanych w bieżącym kontekście | */ queryType: components["schemas"]["PersonPermissionsQueryType"]; /** * @description Identyfikator podmiotu docelowego dla uprawnień nadanych pośrednio. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | AllPartners | Identyfikator oznaczający, że uprawnienie nadane w sposób pośredni jest typu generalnego | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ targetIdentifier?: WithRequired | null; }; /** @enum {string} */ PersonPermissionsQueryType: "PermissionsInCurrentContext" | "PermissionsGrantedInCurrentContext"; /** * @description Identyfikator osoby fizycznej. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ PersonPermissionsSubjectIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["PersonPermissionsSubjectIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ PersonPermissionsSubjectIdentifierType: "Nip" | "Pesel" | "Fingerprint"; /** * @description Identyfikator podmiotu docelowego dla uprawnień nadanych pośrednio. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | AllPartners | Identyfikator oznaczający, że uprawnienie nadane w sposób pośredni jest typu generalnego | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ PersonPermissionsTargetIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["PersonPermissionsTargetIdentifierType"]; /** @description Wartość identyfikatora. W przypadku typu AllPartners należy pozostawić puste. W pozostałych przypadkach pole jest wymagane. */ value?: string | null; }; /** @enum {string} */ PersonPermissionsTargetIdentifierType: "Nip" | "AllPartners" | "InternalId"; PersonPermissionSubjectDetails: { /** * @description Dane podmiotu. * *Wymagane, gdy subjectDetailsType = PersonByFingerprintWithoutIdentifier.* */ personByFpNoId?: WithRequired | null; /** * @description Dane podmiotu. * *Wymagane, gdy subjectDetailsType = PersonByFingerprintWithIdentifier.* */ personByFpWithId?: WithRequired | null; /** * @description Dane podmiotu. * *Wymagane, gdy subjectDetailsType = PersonByIdentifier.* */ personById?: WithRequired | null; /** * @description Typ danych podmiotu. * | Wartość | Opis | * | --- | --- | * | PersonByIdentifier | Osoba fizyczna posługująca się Profilem Zaufanym lub certyfikatem zawierającym identyfikator NIP lub PESEL. | * | PersonByFingerprintWithIdentifier | Osoba fizyczna posługująca się certyfikatem niezawierającym identyfikatora NIP ani PESEL, ale mająca NIP lub PESEL. | * | PersonByFingerprintWithoutIdentifier | Osoba fizyczna posługująca się certyfikatem niezawierającym identyfikatora NIP ani PESEL i niemająca NIP ani PESEL. | */ subjectDetailsType: components["schemas"]["PersonPermissionSubjectDetailsType"]; }; /** * @description | Wartość | Opis | * | --- | --- | * | PersonByIdentifier | Osoba fizyczna posługująca się Profilem Zaufanym lub certyfikatem zawierającym identyfikator NIP lub PESEL. | * | PersonByFingerprintWithIdentifier | Osoba fizyczna posługująca się certyfikatem niezawierającym identyfikatora NIP ani PESEL, ale mająca NIP lub PESEL. | * | PersonByFingerprintWithoutIdentifier | Osoba fizyczna posługująca się certyfikatem niezawierającym identyfikatora NIP ani PESEL i niemająca NIP ani PESEL. | * @enum {string} */ PersonPermissionSubjectDetailsType: "PersonByIdentifier" | "PersonByFingerprintWithIdentifier" | "PersonByFingerprintWithoutIdentifier"; /** @enum {string} */ PersonPermissionType: "CredentialsManage" | "CredentialsRead" | "InvoiceWrite" | "InvoiceRead" | "Introspection" | "SubunitManage" | "EnforcementOperations"; /** * @description | Wartość | Opis | * | --- | --- | * | PersonByFingerprintWithIdentifier | Osoba fizyczna posługująca się certyfikatem niezawierającym identyfikatora NIP ani PESEL, ale mająca NIP lub PESEL. | * | PersonByFingerprintWithoutIdentifier | Osoba fizyczna posługująca się certyfikatem niezawierającym identyfikatora NIP ani PESEL i niemająca NIP ani PESEL. | * @enum {string} */ PersonSubjectByFingerprintDetailsType: "PersonByFingerprintWithIdentifier" | "PersonByFingerprintWithoutIdentifier"; /** * @description | Wartość | Opis | * | --- | --- | * | PersonByIdentifier | Osoba fizyczna posługująca się Profilem Zaufanym lub certyfikatem zawierającym identyfikator NIP lub PESEL. | * | PersonByFingerprintWithIdentifier | Osoba fizyczna posługująca się certyfikatem niezawierającym identyfikatora NIP ani PESEL, ale mająca NIP lub PESEL. | * | PersonByFingerprintWithoutIdentifier | Osoba fizyczna posługująca się certyfikatem niezawierającym identyfikatora NIP ani PESEL i niemająca NIP ani PESEL. | * @enum {string} */ PersonSubjectDetailsType: "PersonByIdentifier" | "PersonByFingerprintWithIdentifier" | "PersonByFingerprintWithoutIdentifier"; /** @description 11 cyfrowy numer PESEL. */ Pesel: string; PublicKeyCertificate: { /** * Format: byte * @description Certyfikat klucza publicznego w formacie DER, zakodowany w formacie Base64. */ certificate: string; /** * @description Operacje do których może być używany certyfikat. * | Wartość | Opis | * | --- | --- | * | KsefTokenEncryption | Szyfrowanie tokenów KSeF przesyłanych w trakcie procesu uwierzytelniania. | * | SymmetricKeyEncryption | Szyfrowanie klucza symetrycznego wykorzystywanego do szyfrowania przesyłanych faktur. | */ usage: components["schemas"]["PublicKeyCertificateUsage"][]; /** * Format: date-time * @description Data początku obowiązywania certyfikatu. */ validFrom: string; /** * Format: date-time * @description Data końca obowiązywania certyfikatu. */ validTo: string; }; /** * @description | Wartość | Opis | * | --- | --- | * | KsefTokenEncryption | Szyfrowanie tokenów KSeF przesyłanych w trakcie procesu uwierzytelniania. | * | SymmetricKeyEncryption | Szyfrowanie klucza symetrycznego wykorzystywanego do szyfrowania przesyłanych faktur. | * @enum {string} */ PublicKeyCertificateUsage: "KsefTokenEncryption" | "SymmetricKeyEncryption"; QueryCertificatesRequest: { /** @description Numer seryjny certyfikatu. Wyszukiwanie odbywa się na zasadzie dokładnego dopasowania (exact match). */ certificateSerialNumber?: string | null; /** * Format: date-time * @description Filtruje certyfikaty, które wygasają po podanej dacie. */ expiresAfter?: string | null; /** @description Nazwa własna certyfikatu. Wyszukiwanie jest częściowe, czyli zwracane są certyfikaty, których nazwa zawiera podany ciąg znaków (contains). */ name?: string | null; /** * @description Status certyfikatu. * | Wartość | Opis | * | --- | --- | * | Active | Certyfikat jest aktywny i może zostać użyty do uwierzytelnienia lub realizacji operacji w trybie offline (w zależności od typu certyfikatu). | * | Blocked | Certyfikat został zablokowany i nie może zostać użyty do uwierzytelnienia i realizacji operacji w trybie offline. Status przejściowy do czasu zakończenia procesu unieważniania. | * | Revoked | Certyfikat został unieważniony i nie może zostać użyty do uwierzytelnienia i realizacji operacji w trybie offline. | * | Expired | Certyfikat wygasł i nie może zostać użyty do uwierzytelnienia i realizacji operacji w trybie offline. | */ status?: components["schemas"]["CertificateListItemStatus"] | null; /** * @description Typ certyfikatu KSeF. * | Wartość | Opis | * | --- | --- | * | Authentication | Certyfikat używany do uwierzytelnienia w systemie. | * | Offline | Certyfikat używany wyłącznie do potwierdzania autentyczności wystawcy i integralności faktury w trybie offline | */ type?: components["schemas"]["KsefCertificateType"] | null; }; QueryCertificatesResponse: { /** @description Lista certyfikatów spełniających kryteria wyszukiwania. */ certificates: components["schemas"]["CertificateListItem"][]; /** @description Flaga informująca o dostępności kolejnej strony wyników. */ hasMore: boolean; }; QueryEntityAuthorizationPermissionsResponse: { /** @description Lista odczytanych uprawnień. */ authorizationGrants: components["schemas"]["EntityAuthorizationGrant"][]; /** @description Flaga informująca o dostępności kolejnej strony wyników. */ hasMore: boolean; }; QueryEntityPermissionsResponse: { /** @description Flaga informująca o dostępności kolejnej strony wyników. */ hasMore: boolean; /** @description Lista odczytanych uprawnień. */ permissions: components["schemas"]["EntityPermissionItem"][]; }; QueryEntityRolesResponse: { /** @description Flaga informująca o dostępności kolejnej strony wyników. */ hasMore: boolean; /** @description Lista odczytanych ról podmiotu. */ roles: components["schemas"]["EntityRole"][]; }; QueryEuEntityPermissionsResponse: { /** @description Flaga informująca o dostępności kolejnej strony wyników. */ hasMore: boolean; /** @description Lista odczytanych uprawnień. */ permissions: components["schemas"]["EuEntityPermission"][]; }; QueryInvoicesMetadataResponse: { /** @description Określa, czy istnieją kolejne wyniki zapytania. */ hasMore: boolean; /** @description Lista faktur spełniających kryteria. */ invoices: components["schemas"]["InvoiceMetadata"][]; /** @description Określa, czy osiągnięto maksymalny dopuszczalny zakres wyników zapytania (10 000). */ isTruncated: boolean; /** * Format: date-time * @description Dotyczy wyłącznie zapytań filtrowanych po typie daty PermanentStorage. * Jeśli zapytanie dotyczyło najnowszego okresu, wartość ta może być wartością nieznacznie skorygowaną względem górnej granicy podanej w warunkach zapytania. * Dla okresów starszych, będzie to zgodne z warunkami zapytania. * * Wartość jest stała dla wszystkich stron tego samego zapytania * i nie zależy od paginacji ani sortowania. * * System gwarantuje, że dane poniżej tej wartości są spójne i kompletne. * Ponowne zapytania obejmujące zakresem dane poniżej tego kroczącego znacznika czasu nie zwrócą w przyszłości innych wyników (np.dodatkowych faktur). * * Dla dateType = Issue lub Invoicing – null. */ permanentStorageHwmDate?: string | null; }; QueryPeppolProvidersResponse: { /** @description Flaga informująca o dostępności kolejnej strony wyników. */ hasMore: boolean; /** @description Lista dostawców usług Peppol. */ peppolProviders: components["schemas"]["PeppolProvider"][]; }; QueryPersonalPermissionsResponse: { /** @description Flaga informująca o dostępności kolejnej strony wyników. */ hasMore: boolean; /** @description Lista odczytanych uprawnień. */ permissions: components["schemas"]["PersonalPermission"][]; }; QueryPersonPermissionsResponse: { /** @description Flaga informująca o dostępności kolejnej strony wyników. */ hasMore: boolean; /** @description Lista odczytanych uprawnień. */ permissions: components["schemas"]["PersonPermission"][]; }; QuerySubordinateEntityRolesResponse: { /** @description Flaga informująca o dostępności kolejnej strony wyników. */ hasMore: boolean; /** @description Lista odczytanych podmiotów podrzędnych i ich ról. */ roles: components["schemas"]["SubordinateEntityRole"][]; }; QuerySubunitPermissionsResponse: { /** @description Flaga informująca o dostępności kolejnej strony wyników. */ hasMore: boolean; /** @description Lista odczytanych uprawnień. */ permissions: components["schemas"]["SubunitPermission"][]; }; QueryTokensResponse: { /** @description Token służący do pobrania kolejnej strony wyników. Jeśli jest pusty, to nie ma kolejnych stron. */ continuationToken?: string | null; /** @description Lista tokenów uwierzytelniających. */ tokens: components["schemas"]["QueryTokensResponseItem"][]; }; QueryTokensResponseItem: { /** @description Identyfikator osoby która wygenerowała token. */ authorIdentifier: WithRequired; /** @description Identyfikator kontekstu, w którym został wygenerowany token i do którego daje dostęp. */ contextIdentifier: WithRequired; /** * Format: date-time * @description Data i czas utworzenia tokena. */ dateCreated: string; /** @description Opis tokena. */ description: string; /** * Format: date-time * @description Data ostatniego użycia tokena. */ lastUseDate?: string | null; /** @description Numer referencyjny tokena KSeF. */ referenceNumber: components["schemas"]["ReferenceNumber"]; /** @description Uprawnienia przypisane tokenowi. */ requestedPermissions: components["schemas"]["TokenPermissionType"][]; /** * @description Status tokena. * | Wartość | Opis | * | --- | --- | * | Pending | Token został utworzony ale jest jeszcze w trakcie aktywacji i nadawania uprawnień. Nie może być jeszcze wykorzystywany do uwierzytelniania. | * | Active | Token jest aktywny i może być wykorzystywany do uwierzytelniania. | * | Revoking | Token jest w trakcie unieważniania. Nie może już być wykorzystywany do uwierzytelniania. | * | Revoked | Token został unieważniony i nie może być wykorzystywany do uwierzytelniania. | * | Failed | Nie udało się aktywować tokena. Należy wygenerować nowy token, obecny nie może być wykorzystywany do uwierzytelniania. | */ status: components["schemas"]["AuthenticationTokenStatus"]; /** @description Dodatkowe informacje na temat statusu, zwracane w przypadku błędów. */ statusDetails?: string[] | null; }; /** @enum {string} */ QueryType: "Granted" | "Received"; /** @description Numer referencyjny. */ ReferenceNumber: string; RetrieveCertificatesListItem: { /** * Format: byte * @description Certyfikat w formacie DER, zakodowany w formacie Base64. */ certificate: string; /** @description Nazwa własna certyfikatu. */ certificateName: string; /** @description Numer seryjny certyfikatu. */ certificateSerialNumber: string; /** * @description Typ certyfikatu. * | Wartość | Opis | * | --- | --- | * | Authentication | Certyfikat używany do uwierzytelnienia w systemie. | * | Offline | Certyfikat używany wyłącznie do potwierdzania autentyczności wystawcy i integralności faktury w trybie offline | */ certificateType: components["schemas"]["KsefCertificateType"]; }; RetrieveCertificatesRequest: { /** @description Numery seryjne certyfikatów do pobrania. */ certificateSerialNumbers: string[]; }; RetrieveCertificatesResponse: { /** @description Pobrane certyfikaty. */ certificates: components["schemas"]["RetrieveCertificatesListItem"][]; }; /** * Format: int32 * @description Liczba sekund po których można ponowić żądanie. * @example 30 */ RetryAfter: number; RevokeCertificateRequest: { /** * @description Powód unieważnienia certyfikatu. * | Wartość | Opis | * | --- | --- | * | Unspecified | Nieokreślony. | * | Superseded | Certyfikat został zastąpiony przez inny. | * | KeyCompromise | Klucz prywatny powiązany z certyfikatem został skompromitowany. | */ revocationReason?: components["schemas"]["CertificateRevocationReason"] | null; }; SendInvoiceRequest: { /** * Format: byte * @description Faktura zaszyfrowana algorytmem AES-256-CBC z dopełnianiem PKCS#7 (kluczem przekazanym przy otwarciu sesji), zakodowana w formacie Base64. */ encryptedInvoiceContent: string; /** @description Skrót SHA256 zaszyfrowanej faktury, zakodowany w formacie Base64. */ encryptedInvoiceHash: components["schemas"]["Sha256HashBase64"]; /** * Format: int64 * @description Rozmiar zaszyfrowanej faktury w bajtach. */ encryptedInvoiceSize: number; /** @description Skrót SHA256 korygowanej faktury, zakodowany w formacie Base64. Wymagany przy wysyłaniu korekty technicznej faktury. */ hashOfCorrectedInvoice?: components["schemas"]["Sha256HashBase64"] | null; /** @description Skrót SHA256 oryginalnej faktury, zakodowany w formacie Base64. */ invoiceHash: components["schemas"]["Sha256HashBase64"]; /** * Format: int64 * @description Rozmiar oryginalnej faktury w bajtach. Maksymalny rozmiar zależy od limitów ustawionych dla uwierzytelnionego kontekstu. */ invoiceSize: number; /** * @description Określa, czy podatnik deklaruje tryb fakturowania "offline" dla przesyłanego dokumentu. * @default false */ offlineMode: boolean; }; SendInvoiceResponse: { /** @description Numer referencyjny faktury. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; SessionInvoicesResponse: { /** @description Token służący do pobrania kolejnej strony wyników. Jeśli jest pusty, to nie ma kolejnych stron. */ continuationToken?: string | null; /** @description Lista pobranych faktur. */ invoices: components["schemas"]["SessionInvoiceStatusResponse"][]; }; SessionInvoiceStatusResponse: { /** * Format: date-time * @description Data nadania numeru KSeF. */ acquisitionDate?: string | null; /** @description Nazwa pliku faktury (zwracana dla faktur wysyłanych wsadowo). */ invoiceFileName?: string | null; /** @description Skrót SHA256 faktury, zakodowany w formacie Base64. */ invoiceHash: components["schemas"]["Sha256HashBase64"]; /** @description Numer faktury. */ invoiceNumber?: string | null; /** * Format: date-time * @description Data przyjęcia faktury w systemie KSeF (do dalszego przetwarzania). */ invoicingDate: string; /** @description Tryb fakturowania (online/offline). */ invoicingMode?: components["schemas"]["InvoicingMode"] | null; /** @description Numer KSeF. */ ksefNumber?: components["schemas"]["KsefNumber"] | null; /** * Format: int32 * @description Numer sekwencyjny faktury w ramach sesji. */ ordinalNumber: number; /** * Format: date-time * @description Data trwałego zapisu faktury w repozytorium KSeF. Wartość uzupełniana asynchronicznie w momencie trwałego zapisu; zawsze późniejsza niż acquisitionDate. Podczas sprawdzania statusu może być jeszcze niedostępna. */ permanentStorageDate?: string | null; /** @description Numer referencyjny faktury. */ referenceNumber: components["schemas"]["ReferenceNumber"]; /** * @description Status faktury. * * | Code | Description | Details | Extensions | * | --- | --- | --- | ---| * | 100 | Faktura przyjęta do dalszego przetwarzania | - | - | * | 150 | Trwa przetwarzanie | - | - | * | 200 | Sukces | - | - | * | 405 | Przetwarzanie anulowane z powodu błędu sesji | - | - | * | 410 | Nieprawidłowy zakres uprawnień | - | - | * | 415 | Brak możliwości wysyłania faktury z załącznikiem | - | - | * | 430 | Błąd weryfikacji pliku faktury | - | - | * | 435 | Błąd odszyfrowania pliku | - | - | * | 440 | Duplikat faktury | - | 'originalSessionReferenceNumber', 'originalKsefNumber'| * | 450 | Błąd weryfikacji semantyki dokumentu faktury | - | - | * | 500 | Nieznany błąd ({statusCode}) | - | - | * | 550 | Operacja została anulowana przez system | Przetwarzanie zostało przerwane z przyczyn wewnętrznych systemu. Spróbuj ponownie |- | */ status: components["schemas"]["InvoiceStatusInfo"]; /** * Format: uri * @description Adres do pobrania UPO. Link generowany jest przy każdym odpytaniu o status. * Dostęp odbywa się metodą `HTTP GET` i nie należy wysyłać tokenu dostępowego. * Link nie podlega limitom API i wygasa po określonym czasie w `UpoDownloadUrlExpirationDate`. * * Odpowiedź HTTP zawiera dodatkowe nagłówki: * - `x-ms-meta-hash` – skrót SHA-256 dokumentu UPO, zakodowany w formacie Base64. */ upoDownloadUrl?: string | null; /** * Format: date-time * @description Data i godzina wygaśnięcia adresu. Po tej dacie link `UpoDownloadUrl` nie będzie już aktywny. */ upoDownloadUrlExpirationDate?: string | null; }; SessionsQueryResponse: { /** @description Token służący do pobrania kolejnej strony wyników. Jeśli jest pusty, to nie ma kolejnych stron. */ continuationToken?: string | null; /** @description Lista sesji. */ sessions: components["schemas"]["SessionsQueryResponseItem"][]; }; SessionsQueryResponseItem: { /** * Format: date-time * @description Data utworzenia sesji. */ dateCreated: string; /** * Format: date-time * @description Data ostatniej aktywności w ramach sesji. */ dateUpdated: string; /** * Format: int32 * @description Liczba błędnie przetworzonych faktur. */ failedInvoiceCount: number; /** @description Numer referencyjny sesji. */ referenceNumber: components["schemas"]["ReferenceNumber"]; /** @description Status sesji. */ status: components["schemas"]["StatusInfo"]; /** * Format: int32 * @description Liczba poprawnie przetworzonych faktur. */ successfulInvoiceCount: number; /** * Format: int32 * @description Łączna liczba faktur (uwzględnia również te w trakcie przetwarzania). */ totalInvoiceCount: number; /** * Format: date-time * @description Termin ważności sesji. Po jego upływie sesja interaktywna zostanie automatycznie zamknięta. */ validUntil?: string | null; }; SessionStatusResponse: { /** * Format: date-time * @description Data utworzenia sesji. */ dateCreated: string; /** * Format: date-time * @description Data ostatniej aktywności w ramach sesji. */ dateUpdated: string; /** * Format: int32 * @description Liczba faktur przeprocesowanych w ramach sesji z błędem. */ failedInvoiceCount?: number | null; /** * Format: int32 * @description Liczba przyjętych faktur w ramach sesji. */ invoiceCount?: number | null; /** * @description Informacje o aktualnym statusie. * * Sesja wsadowa: * | Code | Description | Details | * | --- | --- | --- | * | 100 | Sesja wsadowa rozpoczęta | - | * | 150 | Trwa przetwarzanie | - | * | 200 | Sesja wsadowa przetworzona pomyślnie | - | * | 405 | Błąd weryfikacji poprawności dostarczonych elementów paczki | - | * | 415 | Błąd odszyfrowania dostarczonego klucza | - | * | 420 | Przekroczony limit faktur w sesji | - | * | 430 | Błąd dekompresji pierwotnego archiwum | - | * | 435 | Błąd odszyfrowania zaszyfrowanych części archiwum | - | * | 440 | Sesja anulowana | Przekroczono czas wysyłki | * | 440 | Sesja anulowana | Nie przesłano faktur | * | 445 | Błąd weryfikacji, brak poprawnych faktur | - | * | 500 | Nieznany błąd ({statusCode}) | - | * * Sesja interaktywna: * | Code | Description | Details | * | --- | --- | --- | * | 100 | Sesja interaktywna otwarta | - | * | 170 | Sesja interaktywna zamknięta | - | * | 200 | Sesja interaktywna przetworzona pomyślnie | - | * | 415 | Błąd odszyfrowania dostarczonego klucza | - | * | 440 | Sesja anulowana | Nie przesłano faktur | * | 445 | Błąd weryfikacji, brak poprawnych faktur | - | * | * | description missing | - | */ status: components["schemas"]["StatusInfo"]; /** * Format: int32 * @description Liczba faktur przeprocesowanych w ramach sesji z sukcesem . */ successfulInvoiceCount?: number | null; /** @description Informacja o UPO sesyjnym, zwracana gdy sesja została zamknięta i UPO zostało wygenerowane. */ upo?: WithRequired | null; /** * Format: date-time * @description Termin ważności sesji. Po jego upływie sesja zostanie automatycznie zamknięta. */ readonly validUntil?: string | null; }; /** * @description | Wartość | Opis | * | --- | --- | * | Online | Wysyłka interaktywna (pojedyncze faktury). | * | Batch | Wysyłka wsadowa (paczka faktur). | * @enum {string} */ SessionType: "Online" | "Batch"; /** * Format: byte * @description SHA-256 w Base64. */ Sha256HashBase64: string; /** * @description | Wartość | Opis | * | --- | --- | * | Asc | Sortowanie rosnąco. | * | Desc | Sortowanie malejąco. | * @enum {string} */ SortOrder: "Asc" | "Desc"; StatusInfo: { /** * Format: int32 * @description Kod statusu */ code: number; /** @description Opis statusu */ description: string; /** @description Dodatkowe szczegóły statusu */ details?: string[] | null; }; SubordinateEntityRole: { /** @description Opis powiązania. */ description: string; /** @description Typ roli - powiązania z podmiotem nadrzędnym. */ role: components["schemas"]["SubordinateEntityRoleType"]; /** * Format: date-time * @description Data rozpoczęcia obowiązywania powiązania. */ startDate: string; /** * @description Identyfikator podmiotu podrzędnego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | */ subordinateEntityIdentifier: WithRequired; }; SubordinateEntityRolesQueryRequest: { /** * @description Identyfikator podmiotu podrzędnego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | */ subordinateEntityIdentifier?: WithRequired | null; }; /** @enum {string} */ SubordinateEntityRoleType: "LocalGovernmentSubUnit" | "VatGroupSubUnit"; /** * @description Identyfikator podmiotu podrzędnego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | */ SubordinateRoleSubordinateEntityIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["SubordinateRoleSubordinateEntityIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ SubordinateRoleSubordinateEntityIdentifierType: "Nip"; SubunitPermission: { /** * @description Identyfikator uprawniającego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ authorIdentifier: WithRequired; /** * @description Identyfikator uprawnionego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ authorizedIdentifier: WithRequired; /** @description Opis uprawnienia. */ description: string; /** @description Identyfikator uprawnienia. */ id: components["schemas"]["PermissionId"]; /** @description Rodzaj uprawnienia. */ permissionScope: components["schemas"]["SubunitPermissionScope"]; /** * Format: date-time * @description Data rozpoczęcia obowiązywania uprawnienia. */ startDate: string; /** @description Dane osoby uprawnionej. */ subjectPersonDetails?: WithRequired | null; /** * @description Identyfikator jednostki lub podmiotu podrzędnego. * | Type | Value | * | --- | --- | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | * | Nip | 10 cyfrowy numer NIP | */ subunitIdentifier: WithRequired; /** @description Nazwa jednostki podrzędnej. */ subunitName?: string | null; }; /** * @description Identyfikator uprawniającego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ SubunitPermissionsAuthorIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["SubunitPermissionsAuthorIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ SubunitPermissionsAuthorIdentifierType: "Nip" | "Pesel" | "Fingerprint"; /** * @description Identyfikator uprawnionego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ SubunitPermissionsAuthorizedIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["SubunitPermissionsSubjectIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** * @description Identyfikator podmiotu podrzędnego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ SubunitPermissionsContextIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["SubunitPermissionsContextIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ SubunitPermissionsContextIdentifierType: "InternalId" | "Nip"; /** @enum {string} */ SubunitPermissionScope: "CredentialsManage"; SubunitPermissionsGrantRequest: { /** * @description Identyfikator podmiotu podrzędnego. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | */ contextIdentifier: WithRequired; /** @description Opis uprawnienia */ description: string; /** @description Dane podmiotu, któremu nadawane są uprawnienia. */ subjectDetails: WithRequired; /** * @description Identyfikator podmiotu lub osoby fizycznej. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ subjectIdentifier: WithRequired; /** @description Nazwa jednostki podrzędnej. W przypadku jednostki podrzędnej z identyfikatorem wewnętrznym pole jest wymagane. */ subunitName?: string | null; }; SubunitPermissionsQueryRequest: { /** * @description Identyfikator jednostki lub podmiotu podrzędnego. * | Type | Value | * | --- | --- | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | * | Nip | 10 cyfrowy numer NIP | */ subunitIdentifier?: WithRequired | null; }; /** * @description Identyfikator podmiotu lub osoby fizycznej. * | Type | Value | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | Pesel | 11 cyfrowy numer PESEL | * | Fingerprint | Odcisk palca certyfikatu | */ SubunitPermissionsSubjectIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["SubunitPermissionsSubjectIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ SubunitPermissionsSubjectIdentifierType: "Nip" | "Pesel" | "Fingerprint"; /** * @description Identyfikator jednostki lub podmiotu podrzędnego. * | Type | Value | * | --- | --- | * | InternalId | Dwuczłonowy identyfikator składający się z numeru NIP i 5 cyfr: `{nip}-{5_cyfr}` | * | Nip | 10 cyfrowy numer NIP | */ SubunitPermissionsSubunitIdentifier: { /** @description Typ identyfikatora. */ type: components["schemas"]["SubunitPermissionsSubunitIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** @enum {string} */ SubunitPermissionsSubunitIdentifierType: "InternalId" | "Nip"; /** * @description | Wartość | Opis | * | --- | --- | * | Nip | 10 cyfrowy numer NIP | * | InternalId | Identyfikator wewnętrzny, składający się z numeru NIP i 5 cyfr. | * | VatUe | Identyfikator VAT UE podmiotu unijnego | * | Other | Inny identyfikator | * | None | Brak identyfikatora podmiotu trzeciego | * @enum {string} */ ThirdSubjectIdentifierType: "Nip" | "InternalId" | "VatUe" | "Other" | "None"; /** * @description | Wartość | Opis | * | --- | --- | * | Nip | NIP. | * | Pesel | PESEL. | * | Fingerprint | Odcisk palca certyfikatu. | * @enum {string} */ TokenAuthorIdentifierType: "Nip" | "Pesel" | "Fingerprint"; TokenAuthorIdentifierTypeIdentifier: { /** * @description Typ identyfikatora. * | Wartość | Opis | * | --- | --- | * | Nip | NIP. | * | Pesel | PESEL. | * | Fingerprint | Odcisk palca certyfikatu. | */ type: components["schemas"]["TokenAuthorIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; /** * @description | Wartość | Opis | * | --- | --- | * | Nip | NIP. | * | InternalId | Identyfikator wewnętrzny. | * | NipVatUe | Dwuczłonowy identyfikator składający się z numeru NIP i numeru VAT-UE: `{nip}-{vat_ue}`. | * | PeppolId | Identyfikator dostawcy usług Peppol. | * @enum {string} */ TokenContextIdentifierType: "Nip" | "InternalId" | "NipVatUe" | "PeppolId"; TokenContextIdentifierTypeIdentifier: { /** * @description Typ identyfikatora. * | Wartość | Opis | * | --- | --- | * | Nip | NIP. | * | InternalId | Identyfikator wewnętrzny. | * | NipVatUe | Dwuczłonowy identyfikator składający się z numeru NIP i numeru VAT-UE: `{nip}-{vat_ue}`. | * | PeppolId | Identyfikator dostawcy usług Peppol. | */ type: components["schemas"]["TokenContextIdentifierType"]; /** @description Wartość identyfikatora. */ value: string; }; TokenInfo: { /** @description Token w formacie JWT. */ token: string; /** * Format: date-time * @description Data ważności tokena. */ validUntil: string; }; /** @enum {string} */ TokenPermissionType: "InvoiceRead" | "InvoiceWrite" | "CredentialsRead" | "CredentialsManage" | "SubunitManage" | "EnforcementOperations" | "Introspection"; TokenStatusResponse: { /** @description Identyfikator osoby która wygenerowała token. */ authorIdentifier: WithRequired; /** @description Identyfikator kontekstu, w którym został wygenerowany token i do którego daje dostęp. */ contextIdentifier: WithRequired; /** * Format: date-time * @description Data i czas utworzenia tokena. */ dateCreated: string; /** @description Opis tokena. */ description: string; /** * Format: date-time * @description Data ostatniego użycia tokena. */ lastUseDate?: string | null; /** @description Numer referencyjny tokena KSeF. */ referenceNumber: components["schemas"]["ReferenceNumber"]; /** @description Uprawnienia przypisane tokenowi. */ requestedPermissions: components["schemas"]["TokenPermissionType"][]; /** * @description Status tokena. * | Wartość | Opis | * | --- | --- | * | Pending | Token został utworzony ale jest jeszcze w trakcie aktywacji i nadawania uprawnień. Nie może być jeszcze wykorzystywany do uwierzytelniania. | * | Active | Token jest aktywny i może być wykorzystywany do uwierzytelniania. | * | Revoking | Token jest w trakcie unieważniania. Nie może już być wykorzystywany do uwierzytelniania. | * | Revoked | Token został unieważniony i nie może być wykorzystywany do uwierzytelniania. | * | Failed | Nie udało się aktywować tokena. Należy wygenerować nowy token, obecny nie może być wykorzystywany do uwierzytelniania. | */ status: components["schemas"]["AuthenticationTokenStatus"]; /** @description Dodatkowe informacje na temat statusu, zwracane w przypadku błędów. */ statusDetails?: string[] | null; }; /** * @example { * "status": { * "code": 429, * "description": "Too Many Requests", * "details": [ * "Przekroczono limit 20 żądań na minutę. Spróbuj ponownie po 30 sekundach." * ] * } * } */ TooManyRequestsResponse: { /** @description Informacje o błędzie związanym z przekroczeniem limitu żądań. */ status: { /** @description Kod statusu HTTP odpowiadający błędowi. Zawsze ma wartość 429. */ code: number; /** @description Opis błędu zgodny z nazwą statusu HTTP. */ description: string; /** @description Lista szczegółowych informacji opisujących przyczynę przekroczenia limitu żądań oraz wskazówki dotyczące ponowienia żądania. */ details: string[]; }; }; /** * @example { * "title": "Unauthorized", * "status": 401, * "detail": "Wymagane jest uwierzytelnienie." * } */ UnauthorizedProblemDetails: { /** @description Szczegółowy opis przyczyny odmowy dostępu. */ detail: string; /** @description URI identyfikujące konkretne wystąpienie błędu. */ instance?: string | null; /** * Format: int32 * @description 401 */ status: number; /** @description Unauthorized */ title: string; /** @description Identyfikator śledzenia błędu. */ traceId?: string | null; }; UpoPageResponse: { /** * Format: uri * @description Adres do pobrania strony UPO. Link generowany jest przy każdym odpytaniu o status. * Dostęp odbywa się metodą `HTTP GET` i nie należy wysyłać tokenu dostępowego. * Link nie podlega limitom API i wygasa po określonym czasie w `DownloadUrlExpirationDate`. * * Odpowiedź HTTP zawiera dodatkowe nagłówki: * - `x-ms-meta-hash` – skrót SHA-256 dokumentu UPO, zakodowany w formacie Base64. */ downloadUrl: string; /** * Format: date-time * @description Data i godzina wygaśnięcia adresu. Po tej dacie link `DownloadUrl` nie będzie już aktywny. */ downloadUrlExpirationDate: string; /** @description Numer referencyjny strony UPO. */ referenceNumber: components["schemas"]["ReferenceNumber"]; }; UpoResponse: { /** @description Lista stron UPO. */ pages: components["schemas"]["UpoPageResponse"][]; }; }; responses: never; parameters: never; requestBodies: never; headers: never; pathItems: never; }; export type $defs = Record; type WithRequired = T & { [P in K]-?: T[P]; }; export type operations = Record; export {}; //# sourceMappingURL=ksef-api.d.ts.map