Skip to main content

Set Up for Sending KSeF Invoices

See which fields are required to send KSeF invoices for Poland, including company details, Tax ID, and bank account information.

If your organization sends invoices from a Polish subsidiary via the KSeF network, you can configure your Productive account to send KSeF-compliant e-invoices.

This guide covers the initial KSeF setup, including required subsidiary information, client details, and bank/payment settings.

πŸ‘‰ Once everything is in place, you'll be able to send invoices through KSeF.

Good to Know: Limitations by Plan

There is a monthly limit on the number of invoices you can send via KSeF, based on your plan:

  • Essential Plan: 10 invoices

  • Professional Plan: 50 invoices

  • Ultimate Plan: 100 invoices

You'll see the transaction counter in Settings > Invoicing > E-Invoicing and when selecting Send to client > Send e-invoice.

Prerequisites

Before you start:

  • Subsidiary country: E-invoicing is configured per subsidiary. Only subsidiaries based in Poland can send invoices via KSeF.

    Check your subsidiary in Settings > Company Info > Subsidiary.

  • KSeF registration: Your subsidiary must be registered with the Polish KSeF system (Krajowy System e-Faktur). Your client does not need a separate KSeF ID: KSeF uses Tax IDs (NIP) to identify recipients.

1) E-Invoicing Settings

To enable KSeF e-invoicing (eInvoicing):

  • Go to Settings > Invoicing > e-Invoicing
    ​

  • Select the appropriate Subsidiary
    ​

Tax ID

Enter your company's Polish Tax ID (NIP). It can be entered as 10 digits (e.g. 1234567890) or with the country prefix (e.g. PL1234567890).

Payment Means

Select how the invoice will be paid: Credit Transfer (standard bank transfer) or SEPA (standardized euro transfer within the SEPA region).

πŸ“Œ Bank account information is only included in the KSeF XML if a Payment Means is selected. Even if a bank account exists, it won't appear in the invoice without this setting.

Click Finish Setup to save.

2) Client Company (Invoice Recipient) Settings

To configure your client's details for KSeF invoicing:

1) Go to CRM > Companies

2) Select the relevant client company and add the following:

  • Full Company Name

  • Tax ID: The client's Polish NIP (used to identify the recipient in KSeF). It can be entered as 10 digits (e.g. 1234567890) or with the country prefix (e.g. PL1234567890).

  • (Optional) Buyer Reference Number: A reference identifier for the client's internal systems. Not required for KSeF, but you can add it if your client expects it on the invoice.

πŸ“Œ Recommended: Add the Subsidiary, Tax Rate, Payment Terms, and Invoice Template to the client profile to pre-fill this information when creating new invoices.

3) Subsidiary (Invoice Sender) Settings

To define your company's sender details:

1) Go to Settings > Company Info > Subsidiary
​

2) Enter the following fields:

  • Full Company Name

  • Tax ID (Polish NIP format)

  • Street, City, ZIP, State, and Country

πŸ“Œ These values are included in the invoice file and are required by KSeF.

4) Bank Account Settings

Bank account information is required for KSeF invoices. To set up your bank account:


1) Go to Settings > Company Info > Bank Accounts
​

2) Add or edit an account using the following fields:

  • Subsidiary

  • Name of the Bank Account

  • Bank Name

  • Bank Address (optional)

  • BIC/SWIFT Code (recommended)

  • IBAN/Account Number

  • Currency

3) After setting up the bank account, set it as the default in the subsidiary settings (Settings > Company Info) so it always appears in the Pay to section of invoices issued by that subsidiary.

Sending a KSeF Invoice

Once setup is complete and client data is filled in, you'll be able to send invoices via KSeF.

If your client uses internal references, you can optionally add a Buyer Reference (stored on the client company profile) or a PO Number (entered manually when finalizing the invoice). Neither is required for KSeF delivery.

πŸ‘‰ For the full flow, see: KSeF: Sending Invoices via KSeF.

Did this answer your question?