openapi: 3.0.3 info: title: 'Fakturo.app - test/master API' description: '' version: 1.0.0 servers: - url: 'https://master.fakturo.app' tags: - name: Authentication description: 'Authentication, registration, account access, and current user operations.' - name: 'Password Reset' description: 'Reset password flow for email and password accounts.' - name: 'Access Tokens' description: 'Manage personal access tokens for external applications and integrations.' - name: Autocomplete description: 'Company search and registration data lookups from external providers.' - name: Clients description: 'Create, update, list, and export customer records.' - name: Products description: 'Manage catalog products and their images.' - name: Companies description: 'Manage company profiles, branding assets, templates, and bank accounts.' - name: Dashboard description: "\nRetrieve company dashboard statistics and reporting summaries." - name: 'Company Team' description: "\nManage company members, roles, and team invitations." - name: 'Notification Settings' description: "\nConfigure company email and operational notification preferences." - name: 'E-Invoice Settings' description: "\nView and update company electronic invoicing settings." - name: Invoices description: 'Issue invoices, export previews, and manage invoice lifecycle state.' - name: 'Proforma Invoices' description: 'Manage proforma invoices, previews, and delivery state.' - name: 'Recurring Invoices' description: "\nCreate and manage recurring invoice schedules and their active status." - name: Expenses description: "\nTrack expenses and received invoices, payment status, and file attachments." - name: Receipts description: 'Manage standalone receipts and receipts generated from invoices.' - name: 'Document Sharing' description: "\nCreate and revoke secure document sharing links, and access shared documents publicly." - name: 'E-Invoice Transport' description: "\nSend UBL invoices through the configured digital postman and track delivery." - name: 'Payment Matching' description: "\nConfigure bank notification email processing and review imported transactions." components: securitySchemes: default: type: http scheme: bearer description: '' http: type: http scheme: bearer bearerFormat: Authorization schemas: AddSocialUserRequest: type: object properties: provider: type: string enum: - apple - google - facebook token: type: string minLength: 10 extra: type: string required: - provider - token title: AddSocialUserRequest AddSubscriptionUserRequest: type: object properties: revenueCatPurchaseData: type: string description: 'there should be `allExpirationDates`, additional control is on backend to avoid spoofing' required: - revenueCatPurchaseData title: AddSubscriptionUserRequest AuthUserResource: type: object properties: token: type: string user: type: object properties: id: type: string uuid: type: string email: type: string apple_token: type: string apple_extra: type: string google_token: type: string google_extra: type: string facebook_token: type: string facebook_extra: type: string invoice_count: type: string type: type: string required: - id - uuid - email - apple_token - apple_extra - google_token - google_extra - facebook_token - facebook_extra - invoice_count - type required: - token - user title: AuthUserResource ChangePaidStatusInvoiceRequest: type: object properties: paid: type: boolean required: - paid title: ChangePaidStatusInvoiceRequest ChangeSentStatusInvoiceRequest: type: object properties: sent: type: boolean required: - sent title: ChangeSentStatusInvoiceRequest ClientCollectionResource: type: array items: type: string title: ClientCollectionResource ClientResource: type: object properties: id: type: string uuid: type: string name: type: string state: type: string street: type: string street_extra: type: string zip: type: string city: type: string identification_number: type: string vat_identification_number: type: string vat_identification_number_sk: type: string registry_info: type: string contact_name: type: string contact_phone: type: string contact_email: type: string contact_web: type: string invoicesMetaData: type: string required: - id - uuid - name - state - street - street_extra - zip - city - identification_number - vat_identification_number - vat_identification_number_sk - registry_info - contact_name - contact_phone - contact_email - contact_web - invoicesMetaData title: ClientResource CompanyCollectionResource: type: array items: type: string title: CompanyCollectionResource CompanyResource: type: object properties: id: type: integer uuid: type: string default: type: integer user_id: type: integer name: type: string state: type: string street: type: string street_extra: type: - string - 'null' zip: type: string city: type: string identification_number: type: string vat_identification_number: type: string vat_identification_number_sk: type: - string - 'null' registry_info: type: - string - 'null' contact_name: type: - string - 'null' contact_phone: type: - string - 'null' contact_email: type: - string - 'null' contact_web: type: - string - 'null' payment_methods: type: string template: type: string created_at: type: - string - 'null' format: date-time updated_at: type: - string - 'null' format: date-time tax_type: type: string required: - id - uuid - default - user_id - name - state - street - street_extra - zip - city - identification_number - vat_identification_number - vat_identification_number_sk - registry_info - contact_name - contact_phone - contact_email - contact_web - payment_methods - template - created_at - updated_at - tax_type title: CompanyResource CompanySetTemplateRequest: type: object properties: template: type: string description: "INVOICE \nTODO add invoice prefix" enum: - '' primary_color: type: string currency: type: string minLength: 3 maxLength: 3 language: type: string minLength: 2 maxLength: 2 numbering: type: object properties: upcoming: type: integer format: type: string due_date_additional_days: type: integer required: - upcoming - format - due_date_additional_days formats: type: object properties: date: type: string decimal: type: string thousands: type: string required: - date visibility: type: object properties: send_date: type: boolean due_date: type: boolean description: 'TODO add require when apple approve old version ...' quantity: type: boolean payment: type: boolean qr_payment: type: boolean required: - due_date - quantity - payment - qr_payment qr: type: object properties: provider: type: string enum: - '' preInvoice: type: object properties: template: type: string description: "PREINVOICE \nTODO add missing required fields" enum: - '' primary_color: type: string currency: type: string minLength: 3 maxLength: 3 language: type: string minLength: 2 maxLength: 2 numbering: type: object properties: upcoming: type: - integer - 'null' format: type: string due_date_additional_days: type: integer formats: type: object properties: date: type: string decimal: type: string thousands: type: string description: "'preInvoice.formats.thousands' => 'string'," visibility: type: object properties: send_date: type: boolean due_date: type: boolean description: 'TODO add require when apple approve old version ...' quantity: type: boolean payment: type: boolean qr_payment: type: boolean qr: type: object properties: provider: type: string enum: - '' required: - template - primary_color - currency - language title: CompanySetTemplateRequest CreateClientRequest: type: object properties: name: type: string description: 'názov firmy / meno sukromnej osoby' state: type: string description: 'stat [ISO 3166-1 alpha-2]' maxLength: 2 street: type: string street_extra: type: string zip: type: string city: type: string identification_number: type: string description: ico vat_identification_number: type: string description: dic vat_identification_number_sk: type: string description: 'icdph (SK, HU only)' registry_info: type: string description: 'Obchodný register' contact_name: type: string contact_phone: type: string contact_email: type: string contact_web: type: string required: - name - state - street - zip - city title: CreateClientRequest CreateClientStatementRequest: type: object properties: fromDate: type: string format: date-time toDate: type: string format: date-time onlyUnpaidInvoices: type: boolean required: - fromDate - toDate - onlyUnpaidInvoices title: CreateClientStatementRequest CreateCompanyRequest: type: object properties: default: type: boolean name: type: string state: type: string maxLength: 2 street: type: string street_extra: type: string zip: type: string city: type: string tax_type: type: string identification_number: type: string description: ico vat_identification_number: type: string description: dic vat_identification_number_sk: type: string description: 'icdph (SK, HU only)' registry_info: type: string contact_name: type: string contact_phone: type: string contact_email: type: string contact_web: type: string payment_methods: type: string template: type: string logo_base64: type: string signature_base64: type: string required: - name - state - street - zip - city - identification_number - contact_name - contact_phone - contact_email title: CreateCompanyRequest CreateExternalTokenRequest: type: object properties: name: type: string maxLength: 255 expires_at: type: - string - 'null' format: date-time abilities: type: - array - 'null' items: type: string maxLength: 255 required: - name title: CreateExternalTokenRequest CreateInvoiceRequest: type: object properties: number: type: string billed_date: type: string format: date-time due_date: type: string format: date-time send_date: type: string format: date-time variable_symbol: type: string constant_symbol: type: string specific_symbol: type: string order_id: type: string billed_client_id: type: integer items: type: array items: type: string payment: type: string enum: - BANK - CASH cash_payment_rounding: type: string bank_transfer: type: string note: type: string totalPrice: type: number currency_3_code: type: string minLength: 3 maxLength: 3 language_2_code: type: string minLength: 2 maxLength: 2 required: - number - billed_date - due_date - send_date - billed_client_id - items - payment - totalPrice - currency_3_code - language_2_code title: CreateInvoiceRequest CreateProductRequest: type: object properties: type: type: string name: type: string description: type: string price: type: number taxRate: type: string discount: type: number unit: type: string sku: type: string weight: type: number imageBase64: type: string required: - type - name - price title: CreateProductRequest CreateReceiptRequest: type: object properties: billed_to_client_id: type: integer invoice_id: type: - integer - 'null' language_2_code: type: - string - 'null' minLength: 2 maxLength: 2 total: type: number minimum: 0 currency_3_code: type: string minLength: 3 maxLength: 3 purpose: type: - string - 'null' made_by: type: - string - 'null' approved_by: type: - string - 'null' journal_number: type: - string - 'null' date: type: string format: date-time billing_regulation: type: - array - 'null' items: type: object properties: account: type: string total: type: number minimum: 0 required: - billed_to_client_id - total - currency_3_code - date title: CreateReceiptRequest EditClientRequest: type: object properties: name: type: string state: type: string maxLength: 2 street: type: string street_extra: type: string zip: type: string city: type: string identification_number: type: string description: ico vat_identification_number: type: string description: dic vat_identification_number_sk: type: string description: icdph registry_info: type: string contact_name: type: string contact_phone: type: string contact_email: type: string contact_web: type: string required: - name - state - street - zip - city title: EditClientRequest EditInvoiceRequest: type: object properties: number: type: string billed_date: type: string format: date-time due_date: type: string format: date-time send_date: type: string format: date-time variable_symbol: type: string constant_symbol: type: string specific_symbol: type: string order_id: type: string billed_client_id: type: integer items: type: array items: type: string payment: type: string enum: - BANK - CASH cash_payment_rounding: type: string bank_transfer: type: string note: type: string totalPrice: type: number currency_3_code: type: string minLength: 3 maxLength: 3 language_2_code: type: string minLength: 2 maxLength: 2 required: - number - billed_date - due_date - send_date - billed_client_id - items - payment - totalPrice - currency_3_code - language_2_code title: EditInvoiceRequest EditReceiptRequest: type: object properties: billed_to_client_id: type: integer language_2_code: type: - string - 'null' minLength: 2 maxLength: 2 total: type: number minimum: 0 currency_3_code: type: string minLength: 3 maxLength: 3 purpose: type: - string - 'null' made_by: type: - string - 'null' approved_by: type: - string - 'null' journal_number: type: - string - 'null' date: type: string format: date-time billing_regulation: type: - array - 'null' items: type: object properties: account: type: string total: type: number minimum: 0 required: - billed_to_client_id - total - currency_3_code - date title: EditReceiptRequest ExternalTokenResource: type: object properties: id: type: string name: type: string abilities: type: string last_used_at: type: string expires_at: type: string created_at: type: string required: - id - name - abilities - last_used_at - expires_at - created_at title: ExternalTokenResource InvoiceCollectionResource: type: array items: type: string title: InvoiceCollectionResource InvoiceHistoryCollectionResource: type: array items: [] title: InvoiceHistoryCollectionResource InvoiceResource: type: object properties: id: type: integer uuid: type: string company_id: type: integer prefix: type: string number: type: string billed_date: type: string due_date: type: string send_date: type: string variable_symbol: type: - string - 'null' constant_symbol: type: - string - 'null' specific_symbol: type: - string - 'null' order_id: type: - string - 'null' billed_from_client: type: string billed_to_client: type: string items: type: string payment: type: string bank_transfer: type: - string - 'null' bank_number_format: type: string note: type: - string - 'null' totalPrice: type: number totalPrice_with_tax: type: - number - 'null' totalPrice_tax: type: number cash_payment_rounding: type: number tax_data: type: - string - 'null' currency_3_code: type: string language_2_code: type: string template: type: string template_primary_color: type: string template_date_format: type: string template_price_decimal_format: type: string template_price_thousands_format: type: string template_show_quantity: type: integer template_show_due_date: type: integer template_show_send_date: type: integer template_show_payment: type: integer template_show_qr_payment: type: integer qr_provider: type: string paid: type: integer sent: type: integer open: type: integer created_at: type: - string - 'null' format: date-time updated_at: type: - string - 'null' format: date-time billed_to_client_id: type: - integer - 'null' required: - id - uuid - company_id - prefix - number - billed_date - due_date - send_date - variable_symbol - constant_symbol - specific_symbol - order_id - billed_from_client - billed_to_client - items - payment - bank_transfer - bank_number_format - note - totalPrice - totalPrice_with_tax - totalPrice_tax - cash_payment_rounding - tax_data - currency_3_code - language_2_code - template - template_primary_color - template_date_format - template_price_decimal_format - template_price_thousands_format - template_show_quantity - template_show_due_date - template_show_send_date - template_show_payment - template_show_qr_payment - qr_provider - paid - sent - open - created_at - updated_at - billed_to_client_id title: InvoiceResource LoginUserRequest: type: object properties: email: type: string format: email password: type: string required: - email - password title: LoginUserRequest PreInvoiceCollectionResource: type: array items: type: string title: PreInvoiceCollectionResource PreInvoiceHistoryCollectionResource: type: array items: [] title: PreInvoiceHistoryCollectionResource PreInvoiceResource: type: object properties: id: type: integer uuid: type: string company_id: type: integer prefix: type: string number: type: string billed_date: type: string due_date: type: string send_date: type: string variable_symbol: type: - string - 'null' constant_symbol: type: - string - 'null' specific_symbol: type: - string - 'null' order_id: type: - string - 'null' billed_from_client: type: string billed_to_client: type: string items: type: string payment: type: string bank_transfer: type: - string - 'null' bank_number_format: type: string note: type: - string - 'null' totalPrice: type: number cash_payment_rounding: type: number currency_3_code: type: string language_2_code: type: string template: type: string template_primary_color: type: string template_date_format: type: string template_price_decimal_format: type: string template_price_thousands_format: type: string template_show_quantity: type: integer template_show_due_date: type: integer template_show_send_date: type: integer template_show_payment: type: integer template_show_qr_payment: type: integer qr_provider: type: string paid: type: integer sent: type: integer open: type: integer created_at: type: - string - 'null' format: date-time updated_at: type: - string - 'null' format: date-time required: - id - uuid - company_id - prefix - number - billed_date - due_date - send_date - variable_symbol - constant_symbol - specific_symbol - order_id - billed_from_client - billed_to_client - items - payment - bank_transfer - bank_number_format - note - totalPrice - cash_payment_rounding - currency_3_code - language_2_code - template - template_primary_color - template_date_format - template_price_decimal_format - template_price_thousands_format - template_show_quantity - template_show_due_date - template_show_send_date - template_show_payment - template_show_qr_payment - qr_provider - paid - sent - open - created_at - updated_at title: PreInvoiceResource ProductCollectionResource: type: array items: type: string title: ProductCollectionResource ProductResource: type: object properties: id: type: integer uuid: type: string user_id: type: integer type: type: string name: type: string description: type: - string - 'null' price: type: number taxRate: type: - number - 'null' discount: type: number unit: type: - string - 'null' sku: type: - string - 'null' weight: type: - number - 'null' has_image: type: integer created_at: type: - string - 'null' format: date-time updated_at: type: - string - 'null' format: date-time required: - id - uuid - user_id - type - name - description - price - taxRate - discount - unit - sku - weight - has_image - created_at - updated_at title: ProductResource ReceiptCollectionResource: type: object properties: data: type: array items: type: string required: - data title: ReceiptCollectionResource ReceiptResource: type: object properties: uuid: type: string company: $ref: '#/components/schemas/CompanyResource' billed_to_client: $ref: '#/components/schemas/ClientResource' language_2_code: type: - string - 'null' total: type: string currency_3_code: type: string currency_symbol: type: string purpose: type: - string - 'null' made_by: type: - string - 'null' approved_by: type: - string - 'null' journal_number: type: - string - 'null' billing_regulation: type: - string - 'null' date: type: string created_at: type: - string - 'null' format: date-time updated_at: type: - string - 'null' format: date-time required: - uuid - company - billed_to_client - language_2_code - total - currency_3_code - currency_symbol - purpose - made_by - approved_by - journal_number - billing_regulation - date - created_at - updated_at title: ReceiptResource RegisterUserRequest: type: object properties: email: type: string maxLength: 255 password: type: string password_confirmation: type: string required: - email - password - password_confirmation title: RegisterUserRequest RemoveSocialUserRequest: type: object properties: provider: type: string enum: - apple - google - facebook required: - provider title: RemoveSocialUserRequest SetCredentialsRequest: type: object properties: email: type: string format: email maxLength: 255 password: type: string password_confirmation: type: string required: - email - password - password_confirmation title: SetCredentialsRequest SocialLoginUserRequest: type: object properties: provider: type: string enum: - apple - google - facebook token: type: string minLength: 10 extra: type: string required: - provider - token title: SocialLoginUserRequest UpdateCompanyBankAccountRequest: type: object properties: bank_transfer: type: object properties: name: type: string code: type: string iban: type: string swift: type: string required: - name - code - iban - swift title: UpdateCompanyBankAccountRequest UpdateCompanyBasicInfoRequest: type: object properties: default: type: boolean name: type: string state: type: string maxLength: 2 street: type: string street_extra: type: string zip: type: string city: type: string tax_type: type: string identification_number: type: string description: ico vat_identification_number: type: string description: dic vat_identification_number_sk: type: string description: 'icdph (SK, HU only)' registry_info: type: string contact_name: type: string contact_phone: type: string contact_email: type: string contact_web: type: string required: - name - state - street - zip - city - identification_number - contact_name - contact_phone - contact_email title: UpdateCompanyBasicInfoRequest UpdateCompanyLogoRequest: type: object properties: logo_base64: type: string required: - logo_base64 title: UpdateCompanyLogoRequest UpdateCompanySignatureRequest: type: object properties: signature_base64: type: string required: - signature_base64 title: UpdateCompanySignatureRequest UpdateProductRequest: type: object properties: type: type: string name: type: string description: type: string price: type: number taxRate: type: string discount: type: number unit: type: string sku: type: string weight: type: number imageBase64: type: string imageTask: type: string enum: - delete - upload - none required: - type - name - price - imageTask title: UpdateProductRequest responses: ValidationException: description: 'Validation error' content: application/json: schema: type: object properties: message: type: string description: 'Errors overview.' errors: type: object description: 'A detailed description of each field that failed validation.' additionalProperties: type: array items: type: string required: - message - errors AuthenticationException: description: Unauthenticated content: application/json: schema: type: object properties: message: type: string description: 'Error overview.' required: - message AuthorizationException: description: 'Authorization error' content: application/json: schema: type: object properties: message: type: string description: 'Error overview.' required: - message security: - default: [] paths: /api/register: post: summary: '' operationId: postApiRegister description: '' parameters: [] responses: 200: description: '`AuthUserResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AuthUserResource' required: - data 422: $ref: '#/components/responses/ValidationException' tags: - Authentication requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: 'Must not be greater than 255 characters.' example: gbailey@example.net password: type: string description: '' example: architecto language: type: string description: '' example: hu enum: - sk - cz - en - de - hu - pl - ro - ua required: - email - password security: [] /api/login: post: summary: '' operationId: postApiLogin description: '' parameters: [] responses: 200: description: '`AuthUserResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AuthUserResource' required: - data 422: $ref: '#/components/responses/ValidationException' tags: - Authentication requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: 'Must be a valid email address.' example: gbailey@example.net password: type: string description: '' example: '|]|{+-' language: type: string description: '' example: pl enum: - sk - cz - en - de - hu - pl - ro - ua required: - email - password security: [] /api/login/social: post: summary: '' operationId: postApiLoginSocial description: '' parameters: [] responses: 200: description: '`AuthUserResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AuthUserResource' required: - data 422: $ref: '#/components/responses/ValidationException' tags: - Authentication requestBody: required: true content: application/json: schema: type: object properties: provider: type: string description: '' example: google enum: - apple - google - facebook token: type: string description: 'Must be at least 10 characters.' example: bngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzs extra: type: string description: '' example: null language: type: string description: '' example: sk enum: - sk - cz - en - de - hu - pl - ro - ua required: - provider - token security: [] /api/login/guest: post: summary: '' operationId: postApiLoginGuest description: '' parameters: [] responses: 200: description: '`AuthUserResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AuthUserResource' required: - data tags: - Authentication security: [] /api/logout: post: summary: '' operationId: postApiLogout description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: string enum: - logout 401: $ref: '#/components/responses/AuthenticationException' tags: - Authentication /api/user/subscription: get: summary: '' operationId: getApiUserSubscription description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - SUBSCRIPTION_ACTIVE - SUBSCRIPTION_INACTIVE required: - message 401: $ref: '#/components/responses/AuthenticationException' tags: - Authentication post: summary: '' operationId: postApiUserSubscription description: '' parameters: [] responses: 200: description: '' content: application/json: schema: anyOf: - type: object properties: message: type: string enum: - SUBSCRIPTION_CREATED required: - message - type: object properties: message: type: string enum: - SUBSCRIPTION_UPDATED required: - message 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' tags: - Authentication requestBody: required: true content: application/json: schema: type: object properties: revenueCatPurchaseData: type: string description: '' example: architecto required: - revenueCatPurchaseData /api/user/set-credentials: post: summary: '' operationId: postApiUserSetCredentials description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - CREDENTIALS_SET required: - message 422: $ref: '#/components/responses/ValidationException' 401: $ref: '#/components/responses/AuthenticationException' tags: - Authentication requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: 'Must be a valid email address. Must not be greater than 255 characters.' example: gbailey@example.net password: type: string description: '' example: architecto required: - email - password /api/user/password: post: summary: '' operationId: postApiUserPassword description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: message: type: string example: PASSWORD_UPDATED tags: - Authentication requestBody: required: true content: application/json: schema: type: object properties: current_password: type: string description: '' example: architecto password: type: string description: '' example: architecto required: - current_password - password /api/user/add-social: post: summary: '' operationId: postApiUserAddSocial description: '' parameters: [] responses: 200: description: '`AuthUserResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/AuthUserResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' tags: - Authentication requestBody: required: true content: application/json: schema: type: object properties: provider: type: string description: '' example: google enum: - apple - google - facebook token: type: string description: 'Must be at least 10 characters.' example: bngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzs extra: type: string description: '' example: null required: - provider - token /api/user/remove-social: post: summary: '' operationId: postApiUserRemoveSocial description: '' parameters: [] responses: 200: description: "not used wrong response with \"Content-Type\" => \"application/json\"\n\n\n\nnot used wrong response with \"Content-Type\" => \"application/json\"" content: application/json: schema: anyOf: - type: object properties: status: type: string enum: - 'Request was successfull.' message: type: string enum: - 'Social account removed' data: type: object properties: user: type: string required: - user required: - status - message - data - type: object properties: data: type: - object - 'null' properties: user: type: string required: - user message: type: - string - 'null' enum: - 'Social account removed' status: type: integer enum: - 200 required: - data - message - status - type: string - type: object properties: data: type: string enum: - '' message: type: string enum: - 'You cannot remove social account if you do not have email and password set' status: type: integer enum: - 400 required: - data - message - status 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' tags: - Authentication requestBody: required: true content: application/json: schema: type: object properties: provider: type: string description: '' example: apple enum: - apple - google - facebook required: - provider /api/user/delete: delete: summary: '' operationId: deleteApiUserDelete description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - USER_DELETED required: - message 401: $ref: '#/components/responses/AuthenticationException' tags: - Authentication /api/forgot-password: post: summary: '' operationId: postApiForgotPassword description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - 'Reset code sent successfully' reset_id: type: string required: - message - reset_id 422: $ref: '#/components/responses/ValidationException' tags: - 'Password Reset' requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: 'Must be a valid email address. The email of an existing record in the users table.' example: gbailey@example.net language: type: string description: '' example: pl enum: - sk - cz - en - de - hu - pl - ro - ua required: - email - language /api/forgot-password/reset: post: summary: '' operationId: postApiForgotPasswordReset description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - 'Password has been reset successfully' required: - message 400: description: '' content: application/json: schema: type: object properties: message: type: string enum: - 'Invalid reset code or expired' required: - message 422: $ref: '#/components/responses/ValidationException' tags: - 'Password Reset' requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: 'Must be a valid email address. The email of an existing record in the users table.' example: gbailey@example.net reset_id: type: string description: '' example: architecto code: type: string description: 'Must be 6 characters.' example: ngzmiy password: type: string description: 'Must be at least 8 characters.' example: pBNvYg required: - email - reset_id - code - password /api/user/tokens: get: summary: '' operationId: getApiUserTokens description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/ExternalTokenResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' tags: - 'Access Tokens' /api/user/token: post: summary: '' operationId: postApiUserToken description: '' parameters: [] responses: 201: description: '' content: application/json: schema: type: object properties: data: type: string required: - data 200: description: '' content: application/json: schema: type: object 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' tags: - 'Access Tokens' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Must not be greater than 255 characters.' example: b abilities: type: array description: 'Must not be greater than 255 characters.' example: - 'n' items: type: string expires_at: type: string description: 'Must be a valid date. Must be a date after now.' example: '2052-10-07' nullable: true required: - name '/api/user/token/{tokenId}': delete: summary: '' operationId: deleteApiUserTokenTokenId description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - TOKEN_DELETED required: - message 404: description: '' content: application/json: schema: type: object properties: message: type: string enum: - TOKEN_NOT_FOUND required: - message 401: $ref: '#/components/responses/AuthenticationException' tags: - 'Access Tokens' parameters: - in: path name: tokenId description: '' example: architecto required: true schema: type: string /api/autocomplete/search: get: summary: '' operationId: getApiAutocompleteSearch description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: results: type: array example: - country: SK name: 'Example s. r. o.' registrationNumber: '12345678' taxNumber: '2020123456' vatNumber: SK2020123456 vatPayer: true address: 'Hlavná 1' city: Bratislava zip: '81101' registration: 'Obchodný register, Sro 12345/B' items: type: object properties: country: type: string example: SK name: type: string example: 'Example s. r. o.' registrationNumber: type: string example: '12345678' taxNumber: type: string example: '2020123456' vatNumber: type: string example: SK2020123456 vatPayer: type: boolean example: true address: type: string example: 'Hlavná 1' city: type: string example: Bratislava zip: type: string example: '81101' registration: type: string example: 'Obchodný register, Sro 12345/B' tags: - Autocomplete requestBody: required: true content: application/json: schema: type: object properties: type: type: string description: '' example: vatNumber enum: - name - registrationNumber - taxNumber - vatNumber value: type: string description: 'Must not be greater than 100 characters.' example: b required: - type - value /api/autocomplete/company: get: summary: '' operationId: getApiAutocompleteCompany description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: data: type: object properties: cached: type: boolean country: type: string name: type: string registrationNumber: type: string taxNumber: type: string vatNumber: type: string vatPayer: type: - boolean - 'null' address: type: string city: type: string zip: type: string registration: type: string required: - cached - country - name - registrationNumber - taxNumber - vatNumber - vatPayer - address - city - zip - registration required: - data 404: description: '' content: application/json: schema: type: object properties: error: type: string enum: - 'No data found' required: - error 500: description: '' content: application/json: schema: type: object properties: error: type: string required: - error 400: description: '' content: application/json: schema: type: object properties: error: type: string enum: - 'Invalid input' required: - error 401: $ref: '#/components/responses/AuthenticationException' tags: - Autocomplete /api/autocomplete/companyList: get: summary: '' operationId: getApiAutocompleteCompanyList description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: data: type: array prefixItems: - type: object properties: cached: type: boolean country: type: string name: type: string registrationNumber: type: string taxNumber: type: string vatNumber: type: string vatPayer: type: - boolean - 'null' address: type: string city: type: string zip: type: string registration: type: string required: - cached - country - name - registrationNumber - taxNumber - vatNumber - vatPayer - address - city - zip - registration minItems: 1 maxItems: 1 additionalItems: false required: - data 404: description: '' content: application/json: schema: type: object properties: error: type: string enum: - 'No data found' required: - error 500: description: '' content: application/json: schema: type: object properties: error: type: string required: - error 400: description: '' content: application/json: schema: type: object properties: error: type: string enum: - 'Invalid input' required: - error 401: $ref: '#/components/responses/AuthenticationException' tags: - Autocomplete /api/user/clients: get: summary: '' operationId: getApiUserClients description: '' parameters: [] responses: 200: description: '`ClientCollectionResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ClientCollectionResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' tags: - Clients /api/user/client: post: summary: '' operationId: postApiUserClient description: '' parameters: [] responses: 200: description: '`ClientResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ClientResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' 403: $ref: '#/components/responses/AuthorizationException' tags: - Clients requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: architecto state: type: string description: 'Must not be greater than 2 characters.' example: ng street: type: string description: '' example: architecto street_extra: type: string description: '' example: null zip: type: string description: '' example: architecto city: type: string description: '' example: architecto identification_number: type: string description: '' example: null vat_identification_number: type: string description: '' example: null vat_identification_number_sk: type: string description: '' example: null registry_info: type: string description: '' example: null contact_name: type: string description: '' example: null contact_phone: type: string description: '' example: null contact_email: type: string description: '' example: null contact_web: type: string description: '' example: null required: - name - state - street - zip - city '/api/user/client/{clientUuid}': get: summary: '' operationId: getApiUserClientClientUuid description: '' parameters: [] responses: 200: description: '`ClientResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ClientResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' tags: - Clients post: summary: '' operationId: postApiUserClientClientUuid description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - CLIENT_UPDATED required: - message 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' 403: $ref: '#/components/responses/AuthorizationException' tags: - Clients requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: '' example: architecto state: type: string description: 'Must not be greater than 2 characters.' example: ng street: type: string description: '' example: architecto street_extra: type: string description: '' example: null zip: type: string description: '' example: architecto city: type: string description: '' example: architecto identification_number: type: string description: '' example: null vat_identification_number: type: string description: '' example: null vat_identification_number_sk: type: string description: '' example: null registry_info: type: string description: '' example: null contact_name: type: string description: '' example: null contact_phone: type: string description: '' example: null contact_email: type: string description: '' example: null contact_web: type: string description: '' example: null required: - name - state - street - zip - city delete: summary: '' operationId: deleteApiUserClientClientUuid description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - CLIENT_DELETED required: - message 401: $ref: '#/components/responses/AuthenticationException' tags: - Clients parameters: - in: path name: clientUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/client/{clientUuid}/invoices': get: summary: '' operationId: getApiUserClientClientUuidInvoices description: '' parameters: [] responses: 200: description: '`InvoiceCollectionResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/InvoiceCollectionResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' tags: - Clients parameters: - in: path name: clientUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/client/{clientUuid}/createStatement': post: summary: '' operationId: postApiUserClientClientUuidCreateStatement description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - CLIENT_STATEMENT_CREATED required: - message 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' tags: - Clients requestBody: required: true content: application/json: schema: type: object properties: fromDate: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' toDate: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' onlyUnpaidInvoices: type: boolean description: '' example: false required: - fromDate - toDate - onlyUnpaidInvoices parameters: - in: path name: clientUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/client/{clientUuid}/getStatement': get: summary: '' operationId: getApiUserClientClientUuidGetStatement description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' tags: - Clients requestBody: required: true content: application/json: schema: type: object properties: fromDate: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' toDate: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' onlyUnpaidInvoices: type: boolean description: '' example: true required: - fromDate - toDate - onlyUnpaidInvoices parameters: - in: path name: clientUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/client/{clientUuid}/createAndGetStatement': get: summary: '' operationId: getApiUserClientClientUuidCreateAndGetStatement description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' tags: - Clients requestBody: required: true content: application/json: schema: type: object properties: fromDate: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' toDate: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' onlyUnpaidInvoices: type: boolean description: '' example: true required: - fromDate - toDate - onlyUnpaidInvoices parameters: - in: path name: clientUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/clients': get: summary: '' operationId: getApiUserCompanyCompanyUuidClients description: '' parameters: [] responses: 200: description: '`ClientCollectionResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ClientCollectionResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' tags: - Clients parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string /api/user/products: get: summary: '' operationId: getApiUserProducts description: '' parameters: [] responses: 200: description: '`ProductCollectionResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProductCollectionResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' tags: - Products /api/user/product: post: summary: '' operationId: postApiUserProduct description: '' parameters: [] responses: 200: description: '`ProductResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProductResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' 403: $ref: '#/components/responses/AuthorizationException' tags: - Products requestBody: required: true content: application/json: schema: type: object properties: type: type: string description: '' example: architecto name: type: string description: '' example: architecto description: type: string description: '' example: 'Eius et animi quos velit et.' price: type: number description: '' example: 4326.41688 taxRate: type: string description: '' example: null discount: type: number description: '' example: 4326.41688 unit: type: string description: '' example: null sku: type: string description: '' example: null weight: type: number description: '' example: 4326.41688 imageBase64: type: string description: '' example: null required: - type - name - price '/api/user/product/{productUuid}': get: summary: '' operationId: getApiUserProductProductUuid description: '' parameters: [] responses: 200: description: '`ProductResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProductResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' tags: - Products post: summary: '' operationId: postApiUserProductProductUuid description: '' parameters: [] responses: 200: description: '`ProductResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ProductResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' 403: $ref: '#/components/responses/AuthorizationException' tags: - Products requestBody: required: true content: application/json: schema: type: object properties: type: type: string description: '' example: architecto name: type: string description: '' example: architecto description: type: string description: '' example: 'Eius et animi quos velit et.' price: type: number description: '' example: 4326.41688 taxRate: type: string description: '' example: null discount: type: number description: '' example: 4326.41688 unit: type: string description: '' example: null sku: type: string description: '' example: null weight: type: number description: '' example: 4326.41688 imageBase64: type: string description: '' example: null imageTask: type: string description: '' example: upload enum: - delete - upload - none required: - type - name - price - imageTask delete: summary: '' operationId: deleteApiUserProductProductUuid description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - USER_PRODUCT_DELETED required: - message 401: $ref: '#/components/responses/AuthenticationException' tags: - Products parameters: - in: path name: productUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/product/{productUuid}/image': get: summary: '' operationId: getApiUserProductProductUuidImage description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object 401: $ref: '#/components/responses/AuthenticationException' tags: - Products parameters: - in: path name: productUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string /api/user/companies: get: summary: '' operationId: getApiUserCompanies description: '' parameters: [] responses: 200: description: '`CompanyCollectionResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CompanyCollectionResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' tags: - Companies /api/user/company: post: summary: '' operationId: postApiUserCompany description: '' parameters: [] responses: 200: description: '`CompanyResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CompanyResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' 403: $ref: '#/components/responses/AuthorizationException' tags: - Companies requestBody: required: true content: application/json: schema: type: object properties: default: type: boolean description: '' example: false name: type: string description: '' example: architecto state: type: string description: 'Must not be greater than 2 characters.' example: ng street: type: string description: '' example: architecto street_extra: type: string description: '' example: null zip: type: string description: '' example: architecto city: type: string description: '' example: architecto tax_type: type: string description: '' example: null identification_number: type: string description: '' example: architecto vat_identification_number: type: string description: '' example: null vat_identification_number_sk: type: string description: '' example: null registry_info: type: string description: '' example: null contact_name: type: string description: '' example: architecto contact_phone: type: string description: '' example: architecto contact_email: type: string description: '' example: gbailey@example.net contact_web: type: string description: '' example: null payment_methods: type: string description: '' example: null template: type: string description: '' example: null logo_base64: type: string description: '' example: null signature_base64: type: string description: '' example: null required: - name - state - street - zip - city - identification_number - contact_name - contact_phone - contact_email '/api/user/company/{companyUuid}': get: summary: '' operationId: getApiUserCompanyCompanyUuid description: '' parameters: [] responses: 200: description: '`CompanyResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CompanyResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' tags: - Companies delete: summary: '' operationId: deleteApiUserCompanyCompanyUuid description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - COMPANY_DELETED required: - message 401: $ref: '#/components/responses/AuthenticationException' tags: - Companies parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/template': post: summary: '' operationId: postApiUserCompanyCompanyUuidTemplate description: '' parameters: [] responses: 200: description: '`CompanyResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CompanyResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' tags: - Companies requestBody: required: true content: application/json: schema: type: object properties: template: type: string description: '' example: Kros enum: - Sarif - Sango - Kros - Kronos primary_color: type: string description: '' example: architecto currency: type: string description: 'Must not be greater than 3 characters. Must be at least 3 characters.' example: ngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewtnnoqitpxnt language: type: string description: 'Must not be greater than 2 characters. Must be at least 2 characters.' example: ltcv numbering: type: object description: '' example: [] properties: prefix: type: string description: '' example: architecto nullable: true upcoming: type: integer description: '' example: 16 format: type: string description: '' example: architecto due_date_additional_days: type: integer description: '' example: 16 required: - upcoming - format - due_date_additional_days formats: type: object description: '' example: [] properties: date: type: string description: '' example: architecto decimal: type: string description: '' example: architecto thousands: type: string description: '' example: architecto required: - date visibility: type: object description: '' example: [] properties: send_date: type: boolean description: '' example: false due_date: type: boolean description: '' example: true quantity: type: boolean description: '' example: true payment: type: boolean description: '' example: false qr_payment: type: boolean description: '' example: true required: - due_date - quantity - payment - qr_payment qr: type: object description: '' example: [] properties: provider: type: string description: '' example: UNIVERSAL enum: - PAY_BY_SQUARE - UNIVERSAL preInvoice: type: object description: '' example: [] properties: template: type: string description: '' example: Kronos enum: - Sarif - Sango - Kros - Kronos primary_color: type: string description: '' example: architecto currency: type: string description: 'Must not be greater than 3 characters. Must be at least 3 characters.' example: ngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewtnnoqitpxnt language: type: string description: 'Must not be greater than 2 characters. Must be at least 2 characters.' example: ltcv numbering: type: object description: '' example: [] properties: prefix: type: string description: '' example: architecto nullable: true upcoming: type: integer description: '' example: 16 nullable: true format: type: string description: '' example: architecto due_date_additional_days: type: integer description: '' example: 16 formats: type: object description: '' example: [] properties: date: type: string description: '' example: architecto decimal: type: string description: '' example: architecto thousands: type: string description: '' example: null visibility: type: object description: '' example: [] properties: send_date: type: boolean description: '' example: true due_date: type: boolean description: '' example: false quantity: type: boolean description: '' example: false payment: type: boolean description: '' example: false qr_payment: type: boolean description: '' example: false qr: type: object description: '' example: [] properties: provider: type: string description: '' example: UNIVERSAL enum: - PAY_BY_SQUARE - UNIVERSAL required: - template - primary_color - currency - language parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/basic': post: summary: '' operationId: postApiUserCompanyCompanyUuidBasic description: '' parameters: [] responses: 200: description: '`CompanyResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CompanyResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' 403: $ref: '#/components/responses/AuthorizationException' tags: - Companies requestBody: required: true content: application/json: schema: type: object properties: default: type: boolean description: '' example: true name: type: string description: '' example: architecto state: type: string description: 'Must not be greater than 2 characters.' example: ng street: type: string description: '' example: architecto street_extra: type: string description: '' example: null zip: type: string description: '' example: architecto city: type: string description: '' example: architecto tax_type: type: string description: '' example: null identification_number: type: string description: '' example: architecto vat_identification_number: type: string description: '' example: null vat_identification_number_sk: type: string description: '' example: null registry_info: type: string description: '' example: null contact_name: type: string description: '' example: architecto contact_phone: type: string description: '' example: architecto contact_email: type: string description: '' example: gbailey@example.net contact_web: type: string description: '' example: null required: - name - state - street - zip - city - identification_number - contact_name - contact_phone - contact_email parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/bankAccount': post: summary: '' operationId: postApiUserCompanyCompanyUuidBankAccount description: '' parameters: [] responses: 200: description: '`CompanyResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/CompanyResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' 403: $ref: '#/components/responses/AuthorizationException' tags: - Companies requestBody: required: false content: application/json: schema: type: object properties: bank_transfer: type: object description: '' example: [] properties: name: type: string description: '' example: architecto code: type: string description: '' example: architecto iban: type: string description: '' example: architecto swift: type: string description: '' example: architecto required: - name - code - iban - swift parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/signature': get: summary: '' operationId: getApiUserCompanyCompanyUuidSignature description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object 401: $ref: '#/components/responses/AuthenticationException' tags: - Companies post: summary: '' operationId: postApiUserCompanyCompanyUuidSignature description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - COMPANY_SIGNATURE_UPDATED required: - message 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' 403: $ref: '#/components/responses/AuthorizationException' tags: - Companies requestBody: required: true content: application/json: schema: type: object properties: signature_base64: type: string description: '' example: architecto required: - signature_base64 parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/logo': get: summary: '' operationId: getApiUserCompanyCompanyUuidLogo description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object 401: $ref: '#/components/responses/AuthenticationException' tags: - Companies post: summary: '' operationId: postApiUserCompanyCompanyUuidLogo description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - COMPANY_LOGO_UPDATED required: - message 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' tags: - Companies requestBody: required: true content: application/json: schema: type: object properties: logo_base64: type: string description: '' example: architecto required: - logo_base64 parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/dashboard': get: summary: '' operationId: getApiUserCompanyCompanyUuidDashboard description: '' parameters: - in: query name: year description: 'Filter all dashboard data by invoice billing year. Defaults to the current year. Must be between 1900 and 2100.' example: 2025 required: false schema: type: integer description: 'Filter all dashboard data by invoice billing year. Defaults to the current year. Must be between 1900 and 2100.' example: 2025 responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: company: type: object properties: name: type: string example: 'Example s. r. o.' uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 currency: type: string example: EUR stats: type: object properties: paid_amount: type: number example: 1200.5 due_amount: type: number example: 360.25 overdue_amount: type: number example: 120.75 invoices_this_year: type: integer example: 24 preinvoices_this_year: type: integer example: 6 monthly_income: type: number example: 840.5 recent: type: object properties: invoices: type: array example: - billed_date: '2026-08-21' currency_3_code: EUR due_date: '2026-09-04' number: '20260001' paid: false sent: true total: 120.5 type: invoice uuid: 018f1f47-7c8a-7d18-ae5e-123456789abc items: type: object properties: billed_date: type: string example: '2026-08-21' currency_3_code: type: string example: EUR due_date: type: string example: '2026-09-04' number: type: string example: '20260001' paid: type: boolean example: false sent: type: boolean example: true total: type: number example: 120.5 type: type: string example: invoice uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc preinvoices: type: array example: - billed_date: '2026-08-21' currency_3_code: EUR due_date: '2026-09-04' number: '20260001' paid: false sent: true total: 120.5 type: preinvoice uuid: 018f1f47-7c8a-7d18-ae5e-123456789abc items: type: object properties: billed_date: type: string example: '2026-08-21' currency_3_code: type: string example: EUR due_date: type: string example: '2026-09-04' number: type: string example: '20260001' paid: type: boolean example: false sent: type: boolean example: true total: type: number example: 120.5 type: type: string example: preinvoice uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc charts: type: object properties: available_years: type: array example: - 2026 - 2025 items: type: integer revenue_by_month: type: array example: - month: 2026-01 total: 1200.5 items: type: object properties: month: type: string example: 2026-01 total: type: number example: 1200.5 revenue_year: type: integer example: 2026 documents_by_type: type: array example: - count: 24 type: invoice - count: 6 type: preinvoice items: type: object properties: count: type: integer example: 24 type: type: string example: invoice receivables_breakdown: type: array example: - amount: 1200.5 type: paid - amount: 360.25 type: due - amount: 120.75 type: overdue items: type: object properties: amount: type: number example: 1200.5 type: type: string example: paid tags: - Dashboard parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/team': get: summary: '' operationId: getApiUserCompanyCompanyUuidTeam description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: company: type: object properties: name: type: string example: 'Example s. r. o.' uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 current_role: type: string example: owner members: type: array example: - email: owner@example.com name: 'Company Owner' role: owner uuid: 018f1f47-7c8a-7d18-ae5e-123456789abc items: type: object properties: email: type: string example: owner@example.com name: type: string example: 'Company Owner' role: type: string example: owner uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc invitations: type: array example: - id: 1 email: accountant@example.com role: accountant expires_at: '2026-08-28T10:00:00+00:00' items: type: object properties: id: type: integer example: 1 email: type: string example: accountant@example.com role: type: string example: accountant expires_at: type: string example: '2026-08-28T10:00:00+00:00' tags: - 'Company Team' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/team/invitations': post: summary: '' operationId: postApiUserCompanyCompanyUuidTeamInvitations description: '' parameters: [] responses: 201: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: invitation: type: object properties: id: type: integer example: 1 email: type: string example: accountant@example.com role: type: string example: accountant expires_at: type: string example: '2026-08-28T10:00:00+00:00' accept_url: type: string example: 'https://fakturo.app/dashboard/team/invitations/example-token' tags: - 'Company Team' requestBody: required: true content: application/json: schema: type: object properties: email: type: string description: 'Must be a valid email address. Must not be greater than 255 characters.' example: gbailey@example.net role: type: string description: '' example: owner enum: - owner - admin - accountant - viewer required: - email - role parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/team/invitations/{invitationId}': delete: summary: '' operationId: deleteApiUserCompanyCompanyUuidTeamInvitationsInvitationId description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: company: type: object properties: name: type: string example: 'Example s. r. o.' uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 current_role: type: string example: owner members: type: array example: - email: owner@example.com name: 'Company Owner' role: owner uuid: 018f1f47-7c8a-7d18-ae5e-123456789abc items: type: object properties: email: type: string example: owner@example.com name: type: string example: 'Company Owner' role: type: string example: owner uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc invitations: type: array example: - id: 1 email: accountant@example.com role: accountant expires_at: '2026-08-28T10:00:00+00:00' items: type: object properties: id: type: integer example: 1 email: type: string example: accountant@example.com role: type: string example: accountant expires_at: type: string example: '2026-08-28T10:00:00+00:00' tags: - 'Company Team' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: invitationId description: '' example: architecto required: true schema: type: string '/api/user/company/{companyUuid}/team/members/{userUuid}': post: summary: '' operationId: postApiUserCompanyCompanyUuidTeamMembersUserUuid description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: company: type: object properties: name: type: string example: 'Example s. r. o.' uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 current_role: type: string example: owner members: type: array example: - email: owner@example.com name: 'Company Owner' role: owner uuid: 018f1f47-7c8a-7d18-ae5e-123456789abc items: type: object properties: email: type: string example: owner@example.com name: type: string example: 'Company Owner' role: type: string example: owner uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc invitations: type: array example: - id: 1 email: accountant@example.com role: accountant expires_at: '2026-08-28T10:00:00+00:00' items: type: object properties: id: type: integer example: 1 email: type: string example: accountant@example.com role: type: string example: accountant expires_at: type: string example: '2026-08-28T10:00:00+00:00' tags: - 'Company Team' requestBody: required: true content: application/json: schema: type: object properties: role: type: string description: '' example: accountant enum: - owner - admin - accountant - viewer required: - role delete: summary: '' operationId: deleteApiUserCompanyCompanyUuidTeamMembersUserUuid description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: company: type: object properties: name: type: string example: 'Example s. r. o.' uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 current_role: type: string example: owner members: type: array example: - email: owner@example.com name: 'Company Owner' role: owner uuid: 018f1f47-7c8a-7d18-ae5e-123456789abc items: type: object properties: email: type: string example: owner@example.com name: type: string example: 'Company Owner' role: type: string example: owner uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc invitations: type: array example: - id: 1 email: accountant@example.com role: accountant expires_at: '2026-08-28T10:00:00+00:00' items: type: object properties: id: type: integer example: 1 email: type: string example: accountant@example.com role: type: string example: accountant expires_at: type: string example: '2026-08-28T10:00:00+00:00' tags: - 'Company Team' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: userUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/team/invitations/{token}': get: summary: '' operationId: getApiUserTeamInvitationsToken description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: company: type: object properties: name: type: string example: 'Example s. r. o.' uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 email: type: string example: accountant@example.com expires_at: type: string example: '2026-08-28T10:00:00+00:00' role: type: string example: accountant tags: - 'Company Team' parameters: - in: path name: token description: '' example: architecto required: true schema: type: string '/api/user/team/invitations/{token}/accept': post: summary: '' operationId: postApiUserTeamInvitationsTokenAccept description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: company: type: object properties: name: type: string example: 'Example s. r. o.' uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 tags: - 'Company Team' parameters: - in: path name: token description: '' example: architecto required: true schema: type: string '/api/user/company/{companyUuid}/notification-settings': get: summary: '' operationId: getApiUserCompanyCompanyUuidNotificationSettings description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: id: type: integer example: 1 company_id: type: integer example: 42 team_activity_emails: type: boolean example: true recurring_invoice_emails: type: boolean example: true invoice_due_reminders: type: boolean example: false invoice_overdue_reminders: type: boolean example: false invoice_payment_confirmation: type: boolean example: false expense_due_reminders: type: boolean example: true invoice_due_days_before: type: integer example: 3 expense_due_days_before: type: integer example: 3 created_at: type: string example: '2026-08-21T09:30:00.000000Z' updated_at: type: string example: '2026-08-21T09:30:00.000000Z' tags: - 'Notification Settings' post: summary: '' operationId: postApiUserCompanyCompanyUuidNotificationSettings description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: id: type: integer example: 1 company_id: type: integer example: 42 team_activity_emails: type: boolean example: true recurring_invoice_emails: type: boolean example: true invoice_due_reminders: type: boolean example: false invoice_overdue_reminders: type: boolean example: false invoice_payment_confirmation: type: boolean example: false expense_due_reminders: type: boolean example: true invoice_due_days_before: type: integer example: 3 expense_due_days_before: type: integer example: 3 created_at: type: string example: '2026-08-21T09:30:00.000000Z' updated_at: type: string example: '2026-08-21T09:30:00.000000Z' tags: - 'Notification Settings' requestBody: required: true content: application/json: schema: type: object properties: team_activity_emails: type: boolean description: '' example: false recurring_invoice_emails: type: boolean description: '' example: false invoice_due_reminders: type: boolean description: '' example: true invoice_overdue_reminders: type: boolean description: '' example: false invoice_payment_confirmation: type: boolean description: '' example: true expense_due_reminders: type: boolean description: '' example: false invoice_due_days_before: type: integer description: 'Must be at least 0. Must not be greater than 30.' example: 1 expense_due_days_before: type: integer description: 'Must be at least 0. Must not be greater than 30.' example: 22 required: - team_activity_emails - recurring_invoice_emails - invoice_due_reminders - invoice_overdue_reminders - invoice_payment_confirmation - expense_due_reminders - invoice_due_days_before - expense_due_days_before parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/e-invoice/settings': get: summary: '' operationId: getApiUserCompanyCompanyUuidEInvoiceSettings description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: company_uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 enabled: type: boolean example: true provider: type: string example: epostak configured: type: boolean example: true configuration: type: object properties: environment: type: string example: sandbox client_id: type: string example: 487d008a-b3a5-49d0-be3e-ba45cc9c4ffe participant_id: type: string example: '0245:2020202020' settings: type: array example: [] providers: type: array example: - identifier: epostak name: ePošťák capabilities: - send - receive - delivery_status - connection_test configuration_schema: - name: environment label: Prostredie type: select required: true secret: false items: type: object properties: identifier: type: string example: epostak name: type: string example: ePošťák capabilities: type: array example: - send - receive - delivery_status - connection_test items: type: string configuration_schema: type: array example: - name: environment label: Prostredie type: select required: true secret: false items: type: object properties: name: type: string example: environment label: type: string example: Prostredie type: type: string example: select required: type: boolean example: true secret: type: boolean example: false tags: - 'E-Invoice Settings' post: summary: '' operationId: postApiUserCompanyCompanyUuidEInvoiceSettings description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: company_uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 enabled: type: boolean example: true provider: type: string example: epostak configured: type: boolean example: true configuration: type: object properties: environment: type: string example: sandbox client_id: type: string example: 487d008a-b3a5-49d0-be3e-ba45cc9c4ffe participant_id: type: string example: '0245:2020202020' settings: type: array example: [] providers: type: array example: - identifier: epostak name: ePošťák capabilities: - send - receive - delivery_status - connection_test configuration_schema: - name: environment label: Prostredie type: select required: true secret: false items: type: object properties: identifier: type: string example: epostak name: type: string example: ePošťák capabilities: type: array example: - send - receive - delivery_status - connection_test items: type: string configuration_schema: type: array example: - name: environment label: Prostredie type: select required: true secret: false items: type: object properties: name: type: string example: environment label: type: string example: Prostredie type: type: string example: select required: type: boolean example: true secret: type: boolean example: false tags: - 'E-Invoice Settings' requestBody: required: true content: application/json: schema: type: object properties: provider: type: string description: 'Must not be greater than 64 characters.' example: b nullable: true enabled: type: boolean description: '' example: true credentials: type: object description: '' example: null properties: { } settings: type: object description: '' example: null properties: { } required: - enabled parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/createFutureInvoicePreview': post: summary: '' operationId: postApiUserCompanyCompanyUuidInvoiceCreateFutureInvoicePreview description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - COMPANY_INVOICE_PREVIEW_CREATED required: - message 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' 403: $ref: '#/components/responses/AuthorizationException' tags: - Invoices requestBody: required: true content: application/json: schema: type: object properties: prefix: type: string description: '' example: architecto nullable: true number: type: string description: '' example: architecto billed_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' due_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' send_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' variable_symbol: type: string description: '' example: null constant_symbol: type: string description: '' example: null specific_symbol: type: string description: '' example: null order_id: type: string description: '' example: null billed_client_id: type: integer description: '' example: 16 nullable: true items: type: object description: '' example: [] properties: { } payment: type: string description: '' example: CASH enum: - BANK - CASH cash_payment_rounding: type: string description: '' example: null bank_transfer: type: string description: '' example: null note: type: string description: '' example: null totalPrice: type: number description: '' example: 4326.41688 currency_3_code: type: string description: 'Must be at least 3 characters. Must not be greater than 3 characters.' example: m language_2_code: type: string description: 'Must be at least 2 characters. Must not be greater than 2 characters.' example: iy required: - number - billed_date - due_date - send_date - items - payment - totalPrice - currency_3_code - language_2_code parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/getFutureInvoicePreview': get: summary: '' operationId: getApiUserCompanyCompanyUuidInvoiceGetFutureInvoicePreview description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object 401: $ref: '#/components/responses/AuthenticationException' tags: - Invoices parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoices/pdfBulk': get: summary: '' operationId: getApiUserCompanyCompanyUuidInvoicesPdfBulk description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object 401: $ref: '#/components/responses/AuthenticationException' tags: - Invoices parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoices/exportBulk': post: summary: '' operationId: postApiUserCompanyCompanyUuidInvoicesExportBulk description: '' parameters: [] responses: 200: description: 'Binary file response' content: application/zip: schema: type: string format: binary tags: - Invoices parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoices': get: summary: '' operationId: getApiUserCompanyCompanyUuidInvoices description: '' parameters: [] responses: 200: description: '`InvoiceCollectionResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/InvoiceCollectionResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' tags: - Invoices parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice': post: summary: '' operationId: postApiUserCompanyCompanyUuidInvoice description: '' parameters: [] responses: 200: description: '`InvoiceResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/InvoiceResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' 403: $ref: '#/components/responses/AuthorizationException' tags: - Invoices requestBody: required: true content: application/json: schema: type: object properties: prefix: type: string description: '' example: architecto nullable: true number: type: string description: '' example: architecto billed_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' due_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' send_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' variable_symbol: type: string description: '' example: null constant_symbol: type: string description: '' example: null specific_symbol: type: string description: '' example: null order_id: type: string description: '' example: null billed_client_id: type: integer description: '' example: 16 items: type: object description: '' example: [] properties: { } payment: type: string description: '' example: BANK enum: - BANK - CASH cash_payment_rounding: type: string description: '' example: null bank_transfer: type: string description: '' example: null note: type: string description: '' example: null totalPrice: type: number description: '' example: 4326.41688 currency_3_code: type: string description: 'Must be at least 3 characters. Must not be greater than 3 characters.' example: m language_2_code: type: string description: 'Must be at least 2 characters. Must not be greater than 2 characters.' example: iy required: - number - billed_date - due_date - send_date - billed_client_id - items - payment - totalPrice - currency_3_code - language_2_code parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/{invoiceUuid}': get: summary: '' operationId: getApiUserCompanyCompanyUuidInvoiceInvoiceUuid description: '' parameters: [] responses: 200: description: '`InvoiceResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/InvoiceResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' tags: - Invoices post: summary: '' operationId: postApiUserCompanyCompanyUuidInvoiceInvoiceUuid description: '' parameters: [] responses: 200: description: '`InvoiceResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/InvoiceResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' 403: $ref: '#/components/responses/AuthorizationException' tags: - Invoices requestBody: required: true content: application/json: schema: type: object properties: prefix: type: string description: '' example: architecto nullable: true number: type: string description: '' example: architecto billed_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' due_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' send_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' variable_symbol: type: string description: '' example: null constant_symbol: type: string description: '' example: null specific_symbol: type: string description: '' example: null order_id: type: string description: '' example: null billed_client_id: type: integer description: '' example: 16 items: type: object description: '' example: [] properties: { } payment: type: string description: '' example: CASH enum: - BANK - CASH cash_payment_rounding: type: string description: '' example: null bank_transfer: type: string description: '' example: null note: type: string description: '' example: null totalPrice: type: number description: '' example: 4326.41688 currency_3_code: type: string description: 'Must be at least 3 characters. Must not be greater than 3 characters.' example: m language_2_code: type: string description: 'Must be at least 2 characters. Must not be greater than 2 characters.' example: iy required: - number - billed_date - due_date - send_date - billed_client_id - items - payment - totalPrice - currency_3_code - language_2_code delete: summary: '' operationId: deleteApiUserCompanyCompanyUuidInvoiceInvoiceUuid description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - COMPANY_INVOICE_DELETED required: - message 401: $ref: '#/components/responses/AuthenticationException' tags: - Invoices parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: invoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/{invoiceUuid}/history': get: summary: '' operationId: getApiUserCompanyCompanyUuidInvoiceInvoiceUuidHistory description: '' parameters: [] responses: 200: description: '`InvoiceHistoryCollectionResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/InvoiceHistoryCollectionResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' tags: - Invoices parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: invoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/{invoiceUuid}/pdf': get: summary: '' operationId: getApiUserCompanyCompanyUuidInvoiceInvoiceUuidPdf description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object 401: $ref: '#/components/responses/AuthenticationException' tags: - Invoices parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: invoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/{invoiceUuid}/isdoc': get: summary: '' operationId: getApiUserCompanyCompanyUuidInvoiceInvoiceUuidIsdoc description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object 401: $ref: '#/components/responses/AuthenticationException' tags: - Invoices parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: invoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/{invoiceUuid}/ubl': get: summary: '' operationId: getApiUserCompanyCompanyUuidInvoiceInvoiceUuidUbl description: '' parameters: [] responses: 200: description: 'Binary file response' content: application/xml: schema: type: string format: binary tags: - Invoices parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: invoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/{invoiceUuid}/pdfIsdoc': get: summary: '' operationId: getApiUserCompanyCompanyUuidInvoiceInvoiceUuidPdfIsdoc description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object 401: $ref: '#/components/responses/AuthenticationException' tags: - Invoices parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: invoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/{invoiceUuid}/pdfGenerate': post: summary: '' operationId: postApiUserCompanyCompanyUuidInvoiceInvoiceUuidPdfGenerate description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object 401: $ref: '#/components/responses/AuthenticationException' tags: - Invoices parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: invoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/{invoiceUuid}/paid': post: summary: '' operationId: postApiUserCompanyCompanyUuidInvoiceInvoiceUuidPaid description: '' parameters: [] responses: 200: description: '`InvoiceResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/InvoiceResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' tags: - Invoices requestBody: required: true content: application/json: schema: type: object properties: paid: type: boolean description: '' example: true required: - paid parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: invoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/{invoiceUuid}/sent': post: summary: '' operationId: postApiUserCompanyCompanyUuidInvoiceInvoiceUuidSent description: '' parameters: [] responses: 200: description: '`InvoiceResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/InvoiceResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' tags: - Invoices requestBody: required: true content: application/json: schema: type: object properties: sent: type: boolean description: '' example: true required: - sent parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: invoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/preinvoices': get: summary: '' operationId: getApiUserCompanyCompanyUuidPreinvoices description: '' parameters: [] responses: 200: description: '`PreInvoiceCollectionResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PreInvoiceCollectionResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' tags: - 'Proforma Invoices' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/preinvoice': post: summary: '' operationId: postApiUserCompanyCompanyUuidPreinvoice description: '' parameters: [] responses: 200: description: '`PreInvoiceResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PreInvoiceResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' 403: $ref: '#/components/responses/AuthorizationException' tags: - 'Proforma Invoices' requestBody: required: true content: application/json: schema: type: object properties: prefix: type: string description: '' example: architecto nullable: true number: type: string description: '' example: architecto billed_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' due_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' send_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' variable_symbol: type: string description: '' example: null constant_symbol: type: string description: '' example: null specific_symbol: type: string description: '' example: null order_id: type: string description: '' example: null billed_client_id: type: integer description: '' example: 16 items: type: object description: '' example: [] properties: { } payment: type: string description: '' example: BANK enum: - BANK - CASH cash_payment_rounding: type: string description: '' example: null bank_transfer: type: string description: '' example: null note: type: string description: '' example: null totalPrice: type: number description: '' example: 4326.41688 currency_3_code: type: string description: 'Must be at least 3 characters. Must not be greater than 3 characters.' example: m language_2_code: type: string description: 'Must be at least 2 characters. Must not be greater than 2 characters.' example: iy required: - number - billed_date - due_date - send_date - billed_client_id - items - payment - totalPrice - currency_3_code - language_2_code parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/preinvoice/createFuturePreInvoicePreview': post: summary: '' operationId: postApiUserCompanyCompanyUuidPreinvoiceCreateFuturePreInvoicePreview description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: message: type: string example: COMPANY_PREINVOICE_PREVIEW_CREATED tags: - 'Proforma Invoices' requestBody: required: true content: application/json: schema: type: object properties: prefix: type: string description: '' example: architecto nullable: true number: type: string description: '' example: architecto billed_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' due_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' send_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' variable_symbol: type: string description: '' example: null constant_symbol: type: string description: '' example: null specific_symbol: type: string description: '' example: null order_id: type: string description: '' example: null billed_client_id: type: integer description: '' example: 16 nullable: true items: type: object description: '' example: [] properties: { } payment: type: string description: '' example: BANK enum: - BANK - CASH cash_payment_rounding: type: string description: '' example: null bank_transfer: type: string description: '' example: null note: type: string description: '' example: null totalPrice: type: number description: '' example: 4326.41688 currency_3_code: type: string description: 'Must be at least 3 characters. Must not be greater than 3 characters.' example: m language_2_code: type: string description: 'Must be at least 2 characters. Must not be greater than 2 characters.' example: iy required: - number - billed_date - due_date - send_date - items - payment - totalPrice - currency_3_code - language_2_code parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/preinvoice/getFuturePreInvoicePreview': get: summary: '' operationId: getApiUserCompanyCompanyUuidPreinvoiceGetFuturePreInvoicePreview description: '' parameters: [] responses: 200: description: 'Binary file response' content: application/pdf: schema: type: string format: binary tags: - 'Proforma Invoices' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/preinvoice/{preInvoiceUuid}': get: summary: '' operationId: getApiUserCompanyCompanyUuidPreinvoicePreInvoiceUuid description: '' parameters: [] responses: 200: description: '`PreInvoiceResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PreInvoiceResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' tags: - 'Proforma Invoices' post: summary: '' operationId: postApiUserCompanyCompanyUuidPreinvoicePreInvoiceUuid description: '' parameters: [] responses: 200: description: '`PreInvoiceResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PreInvoiceResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' 403: $ref: '#/components/responses/AuthorizationException' tags: - 'Proforma Invoices' requestBody: required: true content: application/json: schema: type: object properties: prefix: type: string description: '' example: architecto nullable: true number: type: string description: '' example: architecto billed_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' due_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' send_date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' variable_symbol: type: string description: '' example: null constant_symbol: type: string description: '' example: null specific_symbol: type: string description: '' example: null order_id: type: string description: '' example: null billed_client_id: type: integer description: '' example: 16 items: type: object description: '' example: [] properties: { } payment: type: string description: '' example: BANK enum: - BANK - CASH cash_payment_rounding: type: string description: '' example: null bank_transfer: type: string description: '' example: null note: type: string description: '' example: null totalPrice: type: number description: '' example: 4326.41688 currency_3_code: type: string description: 'Must be at least 3 characters. Must not be greater than 3 characters.' example: m language_2_code: type: string description: 'Must be at least 2 characters. Must not be greater than 2 characters.' example: iy required: - number - billed_date - due_date - send_date - billed_client_id - items - payment - totalPrice - currency_3_code - language_2_code delete: summary: '' operationId: deleteApiUserCompanyCompanyUuidPreinvoicePreInvoiceUuid description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - COMPANY_PREINVOICE_DELETED required: - message 401: $ref: '#/components/responses/AuthenticationException' tags: - 'Proforma Invoices' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: preInvoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/preinvoice/{preInvoiceUuid}/history': get: summary: '' operationId: getApiUserCompanyCompanyUuidPreinvoicePreInvoiceUuidHistory description: '' parameters: [] responses: 200: description: '`PreInvoiceHistoryCollectionResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PreInvoiceHistoryCollectionResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' tags: - 'Proforma Invoices' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: preInvoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/preinvoice/{preInvoiceUuid}/pdf': get: summary: '' operationId: getApiUserCompanyCompanyUuidPreinvoicePreInvoiceUuidPdf description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object 401: $ref: '#/components/responses/AuthenticationException' tags: - 'Proforma Invoices' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: preInvoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/preinvoice/{preInvoiceUuid}/paid': post: summary: '' operationId: postApiUserCompanyCompanyUuidPreinvoicePreInvoiceUuidPaid description: '' parameters: [] responses: 200: description: '`PreInvoiceResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PreInvoiceResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' tags: - 'Proforma Invoices' requestBody: required: true content: application/json: schema: type: object properties: paid: type: boolean description: '' example: true required: - paid parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: preInvoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/preinvoice/{preInvoiceUuid}/sent': post: summary: '' operationId: postApiUserCompanyCompanyUuidPreinvoicePreInvoiceUuidSent description: '' parameters: [] responses: 200: description: '`PreInvoiceResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/PreInvoiceResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' tags: - 'Proforma Invoices' requestBody: required: true content: application/json: schema: type: object properties: sent: type: boolean description: '' example: true required: - sent parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: preInvoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/recurring-invoices': get: summary: '' operationId: getApiUserCompanyCompanyUuidRecurringInvoices description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: array example: - uuid: 018f1f47-7c8a-7d18-ae5e-123456789abc name: 'Monthly support' client_id: 42 client: id: 42 uuid: 018f1f47-7c8a-7d18-ae5e-abcdef123456 name: 'Client s. r. o.' frequency: monthly interval: 1 starts_on: '2026-09-01' next_run_on: '2026-10-01' ends_on: null due_days: 14 is_active: true last_generated_at: null generated_count: 0 items: - name: Support price: 100 quantity: 1 taxRate: 20 payment: BANK bank_transfer: [] note: null currency_3_code: EUR language_2_code: sk created_at: '2026-08-21T09:30:00.000000Z' updated_at: '2026-08-21T09:30:00.000000Z' items: type: object properties: uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc name: type: string example: 'Monthly support' client_id: type: integer example: 42 client: type: object properties: id: type: integer example: 42 uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 name: type: string example: 'Client s. r. o.' frequency: type: string example: monthly interval: type: integer example: 1 starts_on: type: string example: '2026-09-01' next_run_on: type: string example: '2026-10-01' ends_on: type: string example: null nullable: true due_days: type: integer example: 14 is_active: type: boolean example: true last_generated_at: type: string example: null nullable: true generated_count: type: integer example: 0 items: type: array example: - name: Support price: 100 quantity: 1 taxRate: 20 items: type: object properties: name: type: string example: Support price: type: integer example: 100 quantity: type: integer example: 1 taxRate: type: integer example: 20 payment: type: string example: BANK bank_transfer: type: array example: [] note: type: string example: null nullable: true currency_3_code: type: string example: EUR language_2_code: type: string example: sk created_at: type: string example: '2026-08-21T09:30:00.000000Z' updated_at: type: string example: '2026-08-21T09:30:00.000000Z' tags: - 'Recurring Invoices' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/recurring-invoice': post: summary: '' operationId: postApiUserCompanyCompanyUuidRecurringInvoice description: '' parameters: [] responses: 201: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc name: type: string example: 'Monthly support' client_id: type: integer example: 42 client: type: object properties: id: type: integer example: 42 uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 name: type: string example: 'Client s. r. o.' frequency: type: string example: monthly interval: type: integer example: 1 starts_on: type: string example: '2026-09-01' next_run_on: type: string example: '2026-10-01' ends_on: type: string example: null nullable: true due_days: type: integer example: 14 is_active: type: boolean example: true last_generated_at: type: string example: null nullable: true generated_count: type: integer example: 0 items: type: array example: - name: Support price: 100 quantity: 1 taxRate: 20 items: type: object properties: name: type: string example: Support price: type: integer example: 100 quantity: type: integer example: 1 taxRate: type: integer example: 20 payment: type: string example: BANK bank_transfer: type: array example: [] note: type: string example: null nullable: true currency_3_code: type: string example: EUR language_2_code: type: string example: sk created_at: type: string example: '2026-08-21T09:30:00.000000Z' updated_at: type: string example: '2026-08-21T09:30:00.000000Z' tags: - 'Recurring Invoices' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Must not be greater than 120 characters.' example: b client_id: type: integer description: '' example: 16 frequency: type: string description: '' example: monthly enum: - weekly - monthly - quarterly - yearly interval: type: integer description: 'Must be at least 1. Must not be greater than 12.' example: 4 starts_on: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' ends_on: type: string description: 'Must be a valid date. Must be a date after or equal to starts_on.' example: '2052-10-06' nullable: true due_days: type: integer description: 'Must be at least 0. Must not be greater than 365.' example: 22 is_active: type: boolean description: '' example: true items: type: array description: 'Must have at least 1 items.' example: - [] items: type: object properties: name: type: string description: 'Must not be greater than 255 characters.' example: 'y' price: type: number description: '' example: 4326.41688 quantity: type: number description: '' example: 4326.41688 taxRate: type: number description: 'Must be at least 0. Must not be greater than 100.' example: 17 nullable: true required: - name - price - quantity payment: type: string description: '' example: BANK enum: - BANK - CASH bank_transfer: type: object description: '' example: null properties: { } nullable: true note: type: string description: 'Must not be greater than 5000 characters.' example: b nullable: true currency_3_code: type: string description: 'Must be 3 characters.' example: ngz language_2_code: type: string description: 'Must be 2 characters.' example: mi required: - name - client_id - frequency - interval - starts_on - due_days - items - payment - currency_3_code - language_2_code parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/recurring-invoice/{recurringInvoiceUuid}': get: summary: '' operationId: getApiUserCompanyCompanyUuidRecurringInvoiceRecurringInvoiceUuid description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc name: type: string example: 'Monthly support' client_id: type: integer example: 42 client: type: object properties: id: type: integer example: 42 uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 name: type: string example: 'Client s. r. o.' frequency: type: string example: monthly interval: type: integer example: 1 starts_on: type: string example: '2026-09-01' next_run_on: type: string example: '2026-10-01' ends_on: type: string example: null nullable: true due_days: type: integer example: 14 is_active: type: boolean example: true last_generated_at: type: string example: null nullable: true generated_count: type: integer example: 0 items: type: array example: - name: Support price: 100 quantity: 1 taxRate: 20 items: type: object properties: name: type: string example: Support price: type: integer example: 100 quantity: type: integer example: 1 taxRate: type: integer example: 20 payment: type: string example: BANK bank_transfer: type: array example: [] note: type: string example: null nullable: true currency_3_code: type: string example: EUR language_2_code: type: string example: sk created_at: type: string example: '2026-08-21T09:30:00.000000Z' updated_at: type: string example: '2026-08-21T09:30:00.000000Z' tags: - 'Recurring Invoices' post: summary: '' operationId: postApiUserCompanyCompanyUuidRecurringInvoiceRecurringInvoiceUuid description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc name: type: string example: 'Monthly support' client_id: type: integer example: 42 client: type: object properties: id: type: integer example: 42 uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 name: type: string example: 'Client s. r. o.' frequency: type: string example: monthly interval: type: integer example: 1 starts_on: type: string example: '2026-09-01' next_run_on: type: string example: '2026-10-01' ends_on: type: string example: null nullable: true due_days: type: integer example: 14 is_active: type: boolean example: true last_generated_at: type: string example: null nullable: true generated_count: type: integer example: 0 items: type: array example: - name: Support price: 100 quantity: 1 taxRate: 20 items: type: object properties: name: type: string example: Support price: type: integer example: 100 quantity: type: integer example: 1 taxRate: type: integer example: 20 payment: type: string example: BANK bank_transfer: type: array example: [] note: type: string example: null nullable: true currency_3_code: type: string example: EUR language_2_code: type: string example: sk created_at: type: string example: '2026-08-21T09:30:00.000000Z' updated_at: type: string example: '2026-08-21T09:30:00.000000Z' tags: - 'Recurring Invoices' requestBody: required: true content: application/json: schema: type: object properties: name: type: string description: 'Must not be greater than 120 characters.' example: b client_id: type: integer description: '' example: 16 frequency: type: string description: '' example: quarterly enum: - weekly - monthly - quarterly - yearly interval: type: integer description: 'Must be at least 1. Must not be greater than 12.' example: 4 starts_on: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' ends_on: type: string description: 'Must be a valid date. Must be a date after or equal to starts_on.' example: '2052-10-06' nullable: true due_days: type: integer description: 'Must be at least 0. Must not be greater than 365.' example: 22 is_active: type: boolean description: '' example: false items: type: array description: 'Must have at least 1 items.' example: - [] items: type: object properties: name: type: string description: 'Must not be greater than 255 characters.' example: 'y' price: type: number description: '' example: 4326.41688 quantity: type: number description: '' example: 4326.41688 taxRate: type: number description: 'Must be at least 0. Must not be greater than 100.' example: 17 nullable: true required: - name - price - quantity payment: type: string description: '' example: BANK enum: - BANK - CASH bank_transfer: type: object description: '' example: null properties: { } nullable: true note: type: string description: 'Must not be greater than 5000 characters.' example: b nullable: true currency_3_code: type: string description: 'Must be 3 characters.' example: ngz language_2_code: type: string description: 'Must be 2 characters.' example: mi required: - name - client_id - frequency - interval - starts_on - due_days - items - payment - currency_3_code - language_2_code delete: summary: '' operationId: deleteApiUserCompanyCompanyUuidRecurringInvoiceRecurringInvoiceUuid description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: message: type: string example: RECURRING_INVOICE_DELETED tags: - 'Recurring Invoices' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: recurringInvoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/recurring-invoice/{recurringInvoiceUuid}/status': post: summary: '' operationId: postApiUserCompanyCompanyUuidRecurringInvoiceRecurringInvoiceUuidStatus description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc name: type: string example: 'Monthly support' client_id: type: integer example: 42 client: type: object properties: id: type: integer example: 42 uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 name: type: string example: 'Client s. r. o.' frequency: type: string example: monthly interval: type: integer example: 1 starts_on: type: string example: '2026-09-01' next_run_on: type: string example: '2026-10-01' ends_on: type: string example: null nullable: true due_days: type: integer example: 14 is_active: type: boolean example: true last_generated_at: type: string example: null nullable: true generated_count: type: integer example: 0 items: type: array example: - name: Support price: 100 quantity: 1 taxRate: 20 items: type: object properties: name: type: string example: Support price: type: integer example: 100 quantity: type: integer example: 1 taxRate: type: integer example: 20 payment: type: string example: BANK bank_transfer: type: array example: [] note: type: string example: null nullable: true currency_3_code: type: string example: EUR language_2_code: type: string example: sk created_at: type: string example: '2026-08-21T09:30:00.000000Z' updated_at: type: string example: '2026-08-21T09:30:00.000000Z' tags: - 'Recurring Invoices' requestBody: required: true content: application/json: schema: type: object properties: is_active: type: boolean description: '' example: true required: - is_active parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: recurringInvoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/expenses': get: summary: '' operationId: getApiUserCompanyCompanyUuidExpenses description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: array example: - uuid: 018f1f47-7c8a-7d18-ae5e-123456789abc company_uuid: 018f1f47-7c8a-7d18-ae5e-abcdef123456 type: received_invoice supplier_name: 'Supplier s. r. o.' supplier_identification_number: '12345678' document_number: DF-2026-001 variable_symbol: '2026001' issued_on: '2026-08-01' delivered_on: '2026-08-01' due_on: '2026-08-31' paid_on: null category: services description: 'Monthly services' currency_3_code: EUR net_amount: '100.00' vat_amount: '23.00' total_amount: '123.00' payment_method: bank_transfer paid: false tax_deductible: true note: null status: open attachment: original_name: received-invoice.pdf mime_type: application/pdf size: 122880 download_url: /api/user/company/example/expense/example/attachment e_invoice: provider: epostak provider_document_id: bec4f875-996f-4794-b42e-8f3b5b2f1ba4 status: acknowledged received_at: '2026-08-21T09:30:00.000000Z' acknowledged_at: '2026-08-21T09:31:00.000000Z' created_at: '2026-08-21T09:30:00.000000Z' updated_at: '2026-08-21T09:30:00.000000Z' items: type: object properties: uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc company_uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 type: type: string example: received_invoice supplier_name: type: string example: 'Supplier s. r. o.' supplier_identification_number: type: string example: '12345678' document_number: type: string example: DF-2026-001 variable_symbol: type: string example: '2026001' issued_on: type: string example: '2026-08-01' delivered_on: type: string example: '2026-08-01' due_on: type: string example: '2026-08-31' paid_on: type: string example: null nullable: true category: type: string example: services description: type: string example: 'Monthly services' currency_3_code: type: string example: EUR net_amount: type: string example: '100.00' vat_amount: type: string example: '23.00' total_amount: type: string example: '123.00' payment_method: type: string example: bank_transfer paid: type: boolean example: false tax_deductible: type: boolean example: true note: type: string example: null nullable: true status: type: string example: open attachment: type: object properties: original_name: type: string example: received-invoice.pdf mime_type: type: string example: application/pdf size: type: integer example: 122880 download_url: type: string example: /api/user/company/example/expense/example/attachment e_invoice: type: object properties: provider: type: string example: epostak provider_document_id: type: string example: bec4f875-996f-4794-b42e-8f3b5b2f1ba4 status: type: string example: acknowledged received_at: type: string example: '2026-08-21T09:30:00.000000Z' acknowledged_at: type: string example: '2026-08-21T09:31:00.000000Z' created_at: type: string example: '2026-08-21T09:30:00.000000Z' updated_at: type: string example: '2026-08-21T09:30:00.000000Z' tags: - Expenses parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/expense': post: summary: '' operationId: postApiUserCompanyCompanyUuidExpense description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc company_uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 type: type: string example: received_invoice supplier_name: type: string example: 'Supplier s. r. o.' supplier_identification_number: type: string example: '12345678' document_number: type: string example: DF-2026-001 variable_symbol: type: string example: '2026001' issued_on: type: string example: '2026-08-01' delivered_on: type: string example: '2026-08-01' due_on: type: string example: '2026-08-31' paid_on: type: string example: null nullable: true category: type: string example: services description: type: string example: 'Monthly services' currency_3_code: type: string example: EUR net_amount: type: string example: '100.00' vat_amount: type: string example: '23.00' total_amount: type: string example: '123.00' payment_method: type: string example: bank_transfer paid: type: boolean example: false tax_deductible: type: boolean example: true note: type: string example: null nullable: true status: type: string example: open attachment: type: object properties: original_name: type: string example: received-invoice.pdf mime_type: type: string example: application/pdf size: type: integer example: 122880 download_url: type: string example: /api/user/company/example/expense/example/attachment e_invoice: type: object properties: provider: type: string example: epostak provider_document_id: type: string example: bec4f875-996f-4794-b42e-8f3b5b2f1ba4 status: type: string example: acknowledged received_at: type: string example: '2026-08-21T09:30:00.000000Z' acknowledged_at: type: string example: '2026-08-21T09:31:00.000000Z' created_at: type: string example: '2026-08-21T09:30:00.000000Z' updated_at: type: string example: '2026-08-21T09:30:00.000000Z' tags: - Expenses requestBody: required: true content: application/json: schema: type: object properties: type: type: string description: '' example: received_invoice enum: - received_invoice - expense supplier_name: type: string description: 'Must not be greater than 255 characters.' example: b supplier_identification_number: type: string description: 'Must not be greater than 64 characters.' example: 'n' nullable: true document_number: type: string description: 'This field is required when type is received_invoice. Must not be greater than 120 characters.' example: g nullable: true variable_symbol: type: string description: 'Must not be greater than 20 characters.' example: zmiyvdljnikhwayk nullable: true issued_on: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' delivered_on: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' nullable: true due_on: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' nullable: true paid_on: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' nullable: true category: type: string description: '' example: rent enum: - goods - services - rent - utilities - travel - marketing - taxes - wages - other description: type: string description: 'Must not be greater than 255 characters.' example: 'Omnis nostrum aut adipisci quidem nostrum qui commodi.' nullable: true currency_3_code: type: string description: 'Must be 3 characters.' example: qwr net_amount: type: number description: 'Must be at least 0. Must not be greater than 9999999999999.99.' example: 10 vat_amount: type: number description: 'Must be at least 0. Must not be greater than 9999999999999.99.' example: 20 payment_method: type: string description: '' example: other enum: - bank_transfer - cash - card - direct_debit - other nullable: true paid: type: boolean description: '' example: false tax_deductible: type: boolean description: '' example: true note: type: string description: 'Must not be greater than 5000 characters.' example: t nullable: true required: - type - supplier_name - issued_on - category - currency_3_code - net_amount - vat_amount - paid - tax_deductible parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/expense/{expenseUuid}': get: summary: '' operationId: getApiUserCompanyCompanyUuidExpenseExpenseUuid description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc company_uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 type: type: string example: received_invoice supplier_name: type: string example: 'Supplier s. r. o.' supplier_identification_number: type: string example: '12345678' document_number: type: string example: DF-2026-001 variable_symbol: type: string example: '2026001' issued_on: type: string example: '2026-08-01' delivered_on: type: string example: '2026-08-01' due_on: type: string example: '2026-08-31' paid_on: type: string example: null nullable: true category: type: string example: services description: type: string example: 'Monthly services' currency_3_code: type: string example: EUR net_amount: type: string example: '100.00' vat_amount: type: string example: '23.00' total_amount: type: string example: '123.00' payment_method: type: string example: bank_transfer paid: type: boolean example: false tax_deductible: type: boolean example: true note: type: string example: null nullable: true status: type: string example: open attachment: type: object properties: original_name: type: string example: received-invoice.pdf mime_type: type: string example: application/pdf size: type: integer example: 122880 download_url: type: string example: /api/user/company/example/expense/example/attachment e_invoice: type: object properties: provider: type: string example: epostak provider_document_id: type: string example: bec4f875-996f-4794-b42e-8f3b5b2f1ba4 status: type: string example: acknowledged received_at: type: string example: '2026-08-21T09:30:00.000000Z' acknowledged_at: type: string example: '2026-08-21T09:31:00.000000Z' created_at: type: string example: '2026-08-21T09:30:00.000000Z' updated_at: type: string example: '2026-08-21T09:30:00.000000Z' tags: - Expenses post: summary: '' operationId: postApiUserCompanyCompanyUuidExpenseExpenseUuid description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc company_uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 type: type: string example: received_invoice supplier_name: type: string example: 'Supplier s. r. o.' supplier_identification_number: type: string example: '12345678' document_number: type: string example: DF-2026-001 variable_symbol: type: string example: '2026001' issued_on: type: string example: '2026-08-01' delivered_on: type: string example: '2026-08-01' due_on: type: string example: '2026-08-31' paid_on: type: string example: null nullable: true category: type: string example: services description: type: string example: 'Monthly services' currency_3_code: type: string example: EUR net_amount: type: string example: '100.00' vat_amount: type: string example: '23.00' total_amount: type: string example: '123.00' payment_method: type: string example: bank_transfer paid: type: boolean example: false tax_deductible: type: boolean example: true note: type: string example: null nullable: true status: type: string example: open attachment: type: object properties: original_name: type: string example: received-invoice.pdf mime_type: type: string example: application/pdf size: type: integer example: 122880 download_url: type: string example: /api/user/company/example/expense/example/attachment e_invoice: type: object properties: provider: type: string example: epostak provider_document_id: type: string example: bec4f875-996f-4794-b42e-8f3b5b2f1ba4 status: type: string example: acknowledged received_at: type: string example: '2026-08-21T09:30:00.000000Z' acknowledged_at: type: string example: '2026-08-21T09:31:00.000000Z' created_at: type: string example: '2026-08-21T09:30:00.000000Z' updated_at: type: string example: '2026-08-21T09:30:00.000000Z' tags: - Expenses requestBody: required: true content: application/json: schema: type: object properties: type: type: string description: '' example: received_invoice enum: - received_invoice - expense supplier_name: type: string description: 'Must not be greater than 255 characters.' example: b supplier_identification_number: type: string description: 'Must not be greater than 64 characters.' example: 'n' nullable: true document_number: type: string description: 'This field is required when type is received_invoice. Must not be greater than 120 characters.' example: g nullable: true variable_symbol: type: string description: 'Must not be greater than 20 characters.' example: zmiyvdljnikhwayk nullable: true issued_on: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' delivered_on: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' nullable: true due_on: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' nullable: true paid_on: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' nullable: true category: type: string description: '' example: goods enum: - goods - services - rent - utilities - travel - marketing - taxes - wages - other description: type: string description: 'Must not be greater than 255 characters.' example: 'Omnis nostrum aut adipisci quidem nostrum qui commodi.' nullable: true currency_3_code: type: string description: 'Must be 3 characters.' example: qwr net_amount: type: number description: 'Must be at least 0. Must not be greater than 9999999999999.99.' example: 10 vat_amount: type: number description: 'Must be at least 0. Must not be greater than 9999999999999.99.' example: 20 payment_method: type: string description: '' example: cash enum: - bank_transfer - cash - card - direct_debit - other nullable: true paid: type: boolean description: '' example: true tax_deductible: type: boolean description: '' example: true note: type: string description: 'Must not be greater than 5000 characters.' example: t nullable: true required: - type - supplier_name - issued_on - category - currency_3_code - net_amount - vat_amount - paid - tax_deductible delete: summary: '' operationId: deleteApiUserCompanyCompanyUuidExpenseExpenseUuid description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: message: type: string example: EXPENSE_DELETED tags: - Expenses parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: expenseUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/expense/{expenseUuid}/paid': post: summary: '' operationId: postApiUserCompanyCompanyUuidExpenseExpenseUuidPaid description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc company_uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 type: type: string example: received_invoice supplier_name: type: string example: 'Supplier s. r. o.' supplier_identification_number: type: string example: '12345678' document_number: type: string example: DF-2026-001 variable_symbol: type: string example: '2026001' issued_on: type: string example: '2026-08-01' delivered_on: type: string example: '2026-08-01' due_on: type: string example: '2026-08-31' paid_on: type: string example: null nullable: true category: type: string example: services description: type: string example: 'Monthly services' currency_3_code: type: string example: EUR net_amount: type: string example: '100.00' vat_amount: type: string example: '23.00' total_amount: type: string example: '123.00' payment_method: type: string example: bank_transfer paid: type: boolean example: false tax_deductible: type: boolean example: true note: type: string example: null nullable: true status: type: string example: open attachment: type: object properties: original_name: type: string example: received-invoice.pdf mime_type: type: string example: application/pdf size: type: integer example: 122880 download_url: type: string example: /api/user/company/example/expense/example/attachment e_invoice: type: object properties: provider: type: string example: epostak provider_document_id: type: string example: bec4f875-996f-4794-b42e-8f3b5b2f1ba4 status: type: string example: acknowledged received_at: type: string example: '2026-08-21T09:30:00.000000Z' acknowledged_at: type: string example: '2026-08-21T09:31:00.000000Z' created_at: type: string example: '2026-08-21T09:30:00.000000Z' updated_at: type: string example: '2026-08-21T09:30:00.000000Z' tags: - Expenses requestBody: required: true content: application/json: schema: type: object properties: paid: type: boolean description: '' example: false paid_on: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' nullable: true required: - paid parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: expenseUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/expense/{expenseUuid}/attachment': post: summary: '' operationId: postApiUserCompanyCompanyUuidExpenseExpenseUuidAttachment description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc company_uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 type: type: string example: received_invoice supplier_name: type: string example: 'Supplier s. r. o.' supplier_identification_number: type: string example: '12345678' document_number: type: string example: DF-2026-001 variable_symbol: type: string example: '2026001' issued_on: type: string example: '2026-08-01' delivered_on: type: string example: '2026-08-01' due_on: type: string example: '2026-08-31' paid_on: type: string example: null nullable: true category: type: string example: services description: type: string example: 'Monthly services' currency_3_code: type: string example: EUR net_amount: type: string example: '100.00' vat_amount: type: string example: '23.00' total_amount: type: string example: '123.00' payment_method: type: string example: bank_transfer paid: type: boolean example: false tax_deductible: type: boolean example: true note: type: string example: null nullable: true status: type: string example: open attachment: type: object properties: original_name: type: string example: received-invoice.pdf mime_type: type: string example: application/pdf size: type: integer example: 122880 download_url: type: string example: /api/user/company/example/expense/example/attachment e_invoice: type: object properties: provider: type: string example: epostak provider_document_id: type: string example: bec4f875-996f-4794-b42e-8f3b5b2f1ba4 status: type: string example: acknowledged received_at: type: string example: '2026-08-21T09:30:00.000000Z' acknowledged_at: type: string example: '2026-08-21T09:31:00.000000Z' created_at: type: string example: '2026-08-21T09:30:00.000000Z' updated_at: type: string example: '2026-08-21T09:30:00.000000Z' tags: - Expenses requestBody: required: true content: multipart/form-data: schema: type: object properties: attachment: type: string format: binary description: 'Must be a file. Must not be greater than 10240 kilobytes.' required: - attachment get: summary: '' operationId: getApiUserCompanyCompanyUuidExpenseExpenseUuidAttachment description: '' parameters: [] responses: 200: description: 'Binary file response' content: application/pdf: schema: type: string format: binary application/octet-stream: schema: type: string format: binary tags: - Expenses delete: summary: '' operationId: deleteApiUserCompanyCompanyUuidExpenseExpenseUuidAttachment description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc company_uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 type: type: string example: received_invoice supplier_name: type: string example: 'Supplier s. r. o.' supplier_identification_number: type: string example: '12345678' document_number: type: string example: DF-2026-001 variable_symbol: type: string example: '2026001' issued_on: type: string example: '2026-08-01' delivered_on: type: string example: '2026-08-01' due_on: type: string example: '2026-08-31' paid_on: type: string example: null nullable: true category: type: string example: services description: type: string example: 'Monthly services' currency_3_code: type: string example: EUR net_amount: type: string example: '100.00' vat_amount: type: string example: '23.00' total_amount: type: string example: '123.00' payment_method: type: string example: bank_transfer paid: type: boolean example: false tax_deductible: type: boolean example: true note: type: string example: null nullable: true status: type: string example: open attachment: type: string example: null nullable: true e_invoice: type: object properties: provider: type: string example: epostak provider_document_id: type: string example: bec4f875-996f-4794-b42e-8f3b5b2f1ba4 status: type: string example: acknowledged received_at: type: string example: '2026-08-21T09:30:00.000000Z' acknowledged_at: type: string example: '2026-08-21T09:31:00.000000Z' created_at: type: string example: '2026-08-21T09:30:00.000000Z' updated_at: type: string example: '2026-08-21T09:30:00.000000Z' tags: - Expenses parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: expenseUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/{invoiceUuid}/receipt': post: summary: 'Creates a receipt associated with an invoice' operationId: createsAReceiptAssociatedWithAnInvoice description: '' parameters: [] responses: 200: description: '`ReceiptResource`' content: application/json: schema: anyOf: - type: object properties: data: $ref: '#/components/schemas/ReceiptResource' required: - data - type: object 401: $ref: '#/components/responses/AuthenticationException' tags: - Receipts parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: invoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/{invoiceUuid}/receipt/{receiptUuid}': delete: summary: 'Deletes a receipt associated with an invoice' operationId: deletesAReceiptAssociatedWithAnInvoice description: '' parameters: [] responses: 200: description: '' content: application/json: schema: anyOf: - type: object properties: message: type: string enum: - 'Receipt deleted successfully' required: - message - type: object 401: $ref: '#/components/responses/AuthenticationException' tags: - Receipts parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: invoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: receiptUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/{invoiceUuid}/receipts': get: summary: '' operationId: getApiUserCompanyCompanyUuidInvoiceInvoiceUuidReceipts description: '' parameters: [] responses: 200: description: '`ReceiptCollectionResource`' content: application/json: schema: anyOf: - $ref: '#/components/schemas/ReceiptCollectionResource' - type: object 401: $ref: '#/components/responses/AuthenticationException' tags: - Receipts parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: invoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/{invoiceUuid}/receipt/pdf': get: summary: 'Returns a streamed response with the receipt PDF for a receipt associated with an invoice' operationId: returnsAStreamedResponseWithTheReceiptPDFForAReceiptAssociatedWithAnInvoice description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object 401: $ref: '#/components/responses/AuthenticationException' tags: - Receipts parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: invoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/receipts': get: summary: '' operationId: getApiUserCompanyCompanyUuidReceipts description: '' parameters: [] responses: 200: description: '`ReceiptCollectionResource`' content: application/json: schema: $ref: '#/components/schemas/ReceiptCollectionResource' 401: $ref: '#/components/responses/AuthenticationException' tags: - Receipts parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/receipt': post: summary: '' operationId: postApiUserCompanyCompanyUuidReceipt description: '' parameters: [] responses: 200: description: '`ReceiptResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ReceiptResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' tags: - Receipts requestBody: required: true content: application/json: schema: type: object properties: billed_to_client_id: type: string description: 'The id of an existing record in the clients table.' example: architecto invoice_id: type: string description: 'The id of an existing record in the invoices table.' example: null nullable: true language_2_code: type: string description: 'Must be 2 characters.' example: ng nullable: true total: type: number description: 'Must be at least 0.' example: 12 currency_3_code: type: string description: 'Must be 3 characters.' example: miy purpose: type: string description: '' example: architecto nullable: true made_by: type: string description: '' example: architecto nullable: true approved_by: type: string description: '' example: architecto nullable: true journal_number: type: string description: '' example: architecto nullable: true billing_regulation: type: array description: '' example: null items: type: object nullable: true properties: account: type: string description: 'This field is required when billing_regulation is present.' example: architecto total: type: number description: 'This field is required when billing_regulation is present. Must be at least 0.' example: 39 date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' required: - billed_to_client_id - total - currency_3_code - date parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/receipt/{receiptUuid}': get: summary: '' operationId: getApiUserCompanyCompanyUuidReceiptReceiptUuid description: '' parameters: [] responses: 200: description: '`ReceiptResource`' content: application/json: schema: type: object properties: data: $ref: '#/components/schemas/ReceiptResource' required: - data 401: $ref: '#/components/responses/AuthenticationException' tags: - Receipts post: summary: '' operationId: postApiUserCompanyCompanyUuidReceiptReceiptUuid description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - 'Receipt updated successfully' required: - message 401: $ref: '#/components/responses/AuthenticationException' 422: $ref: '#/components/responses/ValidationException' tags: - Receipts requestBody: required: true content: application/json: schema: type: object properties: billed_to_client_id: type: string description: 'The id of an existing record in the clients table.' example: architecto language_2_code: type: string description: 'Must be 2 characters.' example: ng nullable: true total: type: number description: 'Must be at least 0.' example: 12 currency_3_code: type: string description: 'Must be 3 characters.' example: miy purpose: type: string description: '' example: architecto nullable: true made_by: type: string description: '' example: architecto nullable: true approved_by: type: string description: '' example: architecto nullable: true journal_number: type: string description: '' example: architecto nullable: true billing_regulation: type: array description: '' example: null items: type: object nullable: true properties: account: type: string description: 'This field is required when billing_regulation is present.' example: architecto total: type: number description: 'This field is required when billing_regulation is present. Must be at least 0.' example: 39 date: type: string description: 'Must be a valid date.' example: '2026-09-13T15:45:26' required: - billed_to_client_id - total - currency_3_code - date delete: summary: '' operationId: deleteApiUserCompanyCompanyUuidReceiptReceiptUuid description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object properties: message: type: string enum: - 'Receipt deleted successfully' required: - message 401: $ref: '#/components/responses/AuthenticationException' tags: - Receipts parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: receiptUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/receipt/{receiptUuid}/pdf': get: summary: '' operationId: getApiUserCompanyCompanyUuidReceiptReceiptUuidPdf description: '' parameters: [] responses: 200: description: '' content: application/json: schema: type: object 401: $ref: '#/components/responses/AuthenticationException' tags: - Receipts parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: receiptUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/public/documents/{token}': get: summary: 'Get a shared document.' operationId: getASharedDocument description: 'Resolves a valid public share token and records the visit.' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: company_name: type: string example: 'Example s. r. o.' document_number: type: string example: FV20260001 document_type: type: string example: invoice billed_date: type: string example: '2026-08-21' due_date: type: string example: '2026-09-04' currency: type: string example: EUR total: type: integer example: 120 formats: type: object properties: pdf: type: string example: 'https://fakturo.app/api/public/documents/example-token/pdf' isdoc: type: string example: 'https://fakturo.app/api/public/documents/example-token/isdoc' ubl: type: string example: 'https://fakturo.app/api/public/documents/example-token/ubl' tags: - 'Document Sharing' security: [] parameters: - in: path name: token description: '' example: architecto required: true schema: type: string '/api/public/documents/{token}/{format}': get: summary: 'Download a shared document file.' operationId: downloadASharedDocumentFile description: '' parameters: [] responses: 200: description: 'Binary file response' content: application/pdf: schema: type: string format: binary application/xml: schema: type: string format: binary application/octet-stream: schema: type: string format: binary tags: - 'Document Sharing' security: [] parameters: - in: path name: token description: '' example: architecto required: true schema: type: string - in: path name: format description: '' example: pdf|pdfIsdoc|isdoc|ubl required: true schema: type: string '/api/user/company/{companyUuid}/invoice/{documentUuid}/share': get: summary: 'Get share link statistics.' operationId: getShareLinkStatistics description: 'Returns the active share link and its visit history without creating a new link.' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: active: type: boolean example: true created_at: type: string example: '2026-08-21T09:30:00.000000Z' last_viewed_at: type: string example: '2026-08-21T10:15:00.000000Z' share_url: type: string example: 'https://fakturo.app/share/example-token' token: type: string example: example-token views_count: type: integer example: 1 views: type: array example: - accept_language: 'sk-SK,sk;q=0.9' ip_address: 203.0.113.10 referer: null user_agent: Mozilla/5.0 viewed_at: '2026-08-21T10:15:00.000000Z' items: type: object properties: accept_language: type: string example: 'sk-SK,sk;q=0.9' ip_address: type: string example: 203.0.113.10 referer: type: string example: null nullable: true user_agent: type: string example: Mozilla/5.0 viewed_at: type: string example: '2026-08-21T10:15:00.000000Z' tags: - 'Document Sharing' post: summary: '' operationId: postApiUserCompanyCompanyUuidInvoiceDocumentUuidShare description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: active: type: boolean example: true created_at: type: string example: '2026-08-21T09:30:00.000000Z' last_viewed_at: type: string example: '2026-08-21T10:15:00.000000Z' share_url: type: string example: 'https://fakturo.app/share/example-token' token: type: string example: example-token views_count: type: integer example: 1 views: type: array example: - accept_language: 'sk-SK,sk;q=0.9' ip_address: 203.0.113.10 referer: null user_agent: Mozilla/5.0 viewed_at: '2026-08-21T10:15:00.000000Z' items: type: object properties: accept_language: type: string example: 'sk-SK,sk;q=0.9' ip_address: type: string example: 203.0.113.10 referer: type: string example: null nullable: true user_agent: type: string example: Mozilla/5.0 viewed_at: type: string example: '2026-08-21T10:15:00.000000Z' tags: - 'Document Sharing' delete: summary: '' operationId: deleteApiUserCompanyCompanyUuidInvoiceDocumentUuidShare description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: active: type: boolean example: false last_viewed_at: type: string example: null nullable: true views_count: type: integer example: 0 views: type: array example: [] tags: - 'Document Sharing' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: documentUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/preinvoice/{documentUuid}/share': get: summary: 'Get share link statistics.' operationId: getShareLinkStatistics description: 'Returns the active share link and its visit history without creating a new link.' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: active: type: boolean example: true created_at: type: string example: '2026-08-21T09:30:00.000000Z' last_viewed_at: type: string example: '2026-08-21T10:15:00.000000Z' share_url: type: string example: 'https://fakturo.app/share/example-token' token: type: string example: example-token views_count: type: integer example: 1 views: type: array example: - accept_language: 'sk-SK,sk;q=0.9' ip_address: 203.0.113.10 referer: null user_agent: Mozilla/5.0 viewed_at: '2026-08-21T10:15:00.000000Z' items: type: object properties: accept_language: type: string example: 'sk-SK,sk;q=0.9' ip_address: type: string example: 203.0.113.10 referer: type: string example: null nullable: true user_agent: type: string example: Mozilla/5.0 viewed_at: type: string example: '2026-08-21T10:15:00.000000Z' tags: - 'Document Sharing' post: summary: '' operationId: postApiUserCompanyCompanyUuidPreinvoiceDocumentUuidShare description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: active: type: boolean example: true created_at: type: string example: '2026-08-21T09:30:00.000000Z' last_viewed_at: type: string example: '2026-08-21T10:15:00.000000Z' share_url: type: string example: 'https://fakturo.app/share/example-token' token: type: string example: example-token views_count: type: integer example: 1 views: type: array example: - accept_language: 'sk-SK,sk;q=0.9' ip_address: 203.0.113.10 referer: null user_agent: Mozilla/5.0 viewed_at: '2026-08-21T10:15:00.000000Z' items: type: object properties: accept_language: type: string example: 'sk-SK,sk;q=0.9' ip_address: type: string example: 203.0.113.10 referer: type: string example: null nullable: true user_agent: type: string example: Mozilla/5.0 viewed_at: type: string example: '2026-08-21T10:15:00.000000Z' tags: - 'Document Sharing' delete: summary: '' operationId: deleteApiUserCompanyCompanyUuidPreinvoiceDocumentUuidShare description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: active: type: boolean example: false last_viewed_at: type: string example: null nullable: true views_count: type: integer example: 0 views: type: array example: [] tags: - 'Document Sharing' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: documentUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/e-invoice/test-connection': post: summary: '' operationId: postApiUserCompanyCompanyUuidEInvoiceTestConnection description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: connected: type: boolean example: true provider: type: string example: epostak tags: - 'E-Invoice Transport' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/e-invoice/receive': post: summary: 'Check the configured provider and import newly received UBL invoices.' operationId: checkTheConfiguredProviderAndImportNewlyReceivedUBLInvoices description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: provider: type: string example: epostak discovered: type: integer example: 2 imported: type: integer example: 2 acknowledged: type: integer example: 2 skipped: type: integer example: 0 failed: type: integer example: 0 tags: - 'E-Invoice Transport' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/{invoiceUuid}/e-invoice/send': post: summary: '' operationId: postApiUserCompanyCompanyUuidInvoiceInvoiceUuidEInvoiceSend description: '' parameters: [] responses: 202: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 provider: type: string example: epostak status: type: string example: accepted provider_document_id: type: string example: bec4f875-996f-4794-b42e-8f3b5b2f1ba4 attempts: type: integer example: 1 last_error: type: string example: null nullable: true sent_at: type: string example: '2026-09-01T10:00:00+00:00' delivered_at: type: string example: null nullable: true last_checked_at: type: string example: '2026-09-01T10:00:00+00:00' tags: - 'E-Invoice Transport' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: invoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/invoice/{invoiceUuid}/e-invoice/status': get: summary: '' operationId: getApiUserCompanyCompanyUuidInvoiceInvoiceUuidEInvoiceStatus description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 provider: type: string example: epostak status: type: string example: accepted provider_document_id: type: string example: bec4f875-996f-4794-b42e-8f3b5b2f1ba4 attempts: type: integer example: 1 last_error: type: string example: null nullable: true sent_at: type: string example: '2026-09-01T10:00:00+00:00' delivered_at: type: string example: null nullable: true last_checked_at: type: string example: '2026-09-01T10:00:00+00:00' tags: - 'E-Invoice Transport' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: invoiceUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/payment-matching/settings': get: summary: '' operationId: getApiUserCompanyCompanyUuidPaymentMatchingSettings description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: company_uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 enabled: type: boolean example: true provider: type: string example: tatra_banka configured: type: boolean example: true imap_host: type: string example: imap.example.com imap_port: type: integer example: 993 imap_encryption: type: string example: ssl imap_validate_certificate: type: boolean example: true imap_username: type: string example: payments@example.com imap_folder: type: string example: INBOX last_checked_at: type: string example: '2026-08-21T09:30:00+00:00' last_error: type: string example: null nullable: true tags: - 'Payment Matching' post: summary: '' operationId: postApiUserCompanyCompanyUuidPaymentMatchingSettings description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: company_uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-abcdef123456 enabled: type: boolean example: true provider: type: string example: tatra_banka configured: type: boolean example: true imap_host: type: string example: imap.example.com imap_port: type: integer example: 993 imap_encryption: type: string example: ssl imap_validate_certificate: type: boolean example: true imap_username: type: string example: payments@example.com imap_folder: type: string example: INBOX last_checked_at: type: string example: '2026-08-21T09:30:00+00:00' last_error: type: string example: null nullable: true tags: - 'Payment Matching' requestBody: required: true content: application/json: schema: type: object properties: enabled: type: boolean description: '' example: false provider: type: string description: '' example: tatra_banka enum: - tatra_banka imap_host: type: string description: 'Must not be greater than 255 characters.' example: b nullable: true imap_port: type: integer description: 'Must be between 1 and 65535.' example: 2 imap_encryption: type: string description: '' example: ssl enum: - ssl - tls - none imap_validate_certificate: type: boolean description: '' example: false imap_username: type: string description: 'Must not be greater than 255 characters.' example: g nullable: true imap_password: type: string description: 'Must not be greater than 4096 characters.' example: z nullable: true imap_folder: type: string description: 'Must not be greater than 255 characters.' example: m required: - enabled parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/payment-matching/test-connection': post: summary: '' operationId: postApiUserCompanyCompanyUuidPaymentMatchingTestConnection description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: connected: type: boolean example: true tags: - 'Payment Matching' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/payment-matching/transactions': get: summary: '' operationId: getApiUserCompanyCompanyUuidPaymentMatchingTransactions description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: current_page: type: integer example: 1 data: type: array example: - uuid: 018f1f47-7c8a-7d18-ae5e-123456789abc provider: tatra_banka external_id: 210826/123456-1 booked_at: '2026-08-21T09:25:00.000000Z' account_iban: SK1111000000001234567890 amount: '120.00' currency: EUR variable_symbol: '20260001' counterparty_account: 1100/000000-1234567890 counterparty_name: 'Example Client s. r. o.' description: 'Platba 1100/000000-1234567890' status: matched matched_document_type: invoice matched_document_id: 42 matched_at: '2026-08-21T09:30:00.000000Z' items: type: object properties: uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc provider: type: string example: tatra_banka external_id: type: string example: 210826/123456-1 booked_at: type: string example: '2026-08-21T09:25:00.000000Z' account_iban: type: string example: SK1111000000001234567890 amount: type: string example: '120.00' currency: type: string example: EUR variable_symbol: type: string example: '20260001' counterparty_account: type: string example: 1100/000000-1234567890 counterparty_name: type: string example: 'Example Client s. r. o.' description: type: string example: 'Platba 1100/000000-1234567890' status: type: string example: matched matched_document_type: type: string example: invoice matched_document_id: type: integer example: 42 matched_at: type: string example: '2026-08-21T09:30:00.000000Z' first_page_url: type: string example: 'https://fakturo.app/api/user/company/example/payment-matching/transactions?page=1' from: type: integer example: 1 last_page: type: integer example: 1 last_page_url: type: string example: 'https://fakturo.app/api/user/company/example/payment-matching/transactions?page=1' links: type: array example: [] next_page_url: type: string example: null nullable: true path: type: string example: 'https://fakturo.app/api/user/company/example/payment-matching/transactions' per_page: type: integer example: 50 prev_page_url: type: string example: null nullable: true to: type: integer example: 1 total: type: integer example: 1 tags: - 'Payment Matching' parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string '/api/user/company/{companyUuid}/payment-matching/transactions/{transactionUuid}/match': post: summary: '' operationId: postApiUserCompanyCompanyUuidPaymentMatchingTransactionsTransactionUuidMatch description: '' parameters: [] responses: 200: description: 'Successful response' content: application/json: schema: type: object properties: data: type: object properties: uuid: type: string example: 018f1f47-7c8a-7d18-ae5e-123456789abc provider: type: string example: tatra_banka external_id: type: string example: 210826/123456-1 booked_at: type: string example: '2026-08-21T09:25:00.000000Z' account_iban: type: string example: SK1111000000001234567890 amount: type: string example: '120.00' currency: type: string example: EUR variable_symbol: type: string example: '20260001' counterparty_account: type: string example: 1100/000000-1234567890 counterparty_name: type: string example: 'Example Client s. r. o.' description: type: string example: 'Platba 1100/000000-1234567890' status: type: string example: matched matched_document_type: type: string example: invoice matched_document_id: type: integer example: 42 matched_at: type: string example: '2026-08-21T09:30:00.000000Z' tags: - 'Payment Matching' requestBody: required: true content: application/json: schema: type: object properties: document_type: type: string description: '' example: invoice enum: - invoice - pre_invoice document_uuid: type: string description: 'Must be a valid UUID.' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: - document_type - document_uuid parameters: - in: path name: companyUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string - in: path name: transactionUuid description: '' example: 6ff8f7f6-1eb3-3525-be4a-3932c805afed required: true schema: type: string