Activating KSeF via POP
Goal
Link your POP account to the KSeF system (Poland) to send FA(3) electronic invoices.
Prerequisites
- On WordPress: no minimum plan, activation and sending are available on every plan (including Free), using credits. On Shopify, the Basic plan or higher is required instead.
- NIP (Polish VAT number) set in the account data.
- Live environment: access to
podpis.gov.plwith Profil Zaufany, or a KSeF PKI certificate (PKCS#12orPEM). - Sandbox environment: no prerequisites, the signature is simulated automatically.
Live and sandbox are separate registrations: activating the sandbox doesn’t automatically activate live, and vice versa.
Steps (account panel)
- Register the legal entity: address, city, postal code, notification email. The NIP and registered business name are read automatically from the account settings, they don’t need to be re-entered.
- Authorize access:
- Sandbox: click “Start authorization” (a 10-minute window), then “Activate”.
- Live with Profil Zaufany: download the signature file, sign it on
podpis.gov.pl, upload the signed XML, then “Activate”. - Live with PKI certificate: upload the certificate name, passphrase, and certificate file.
- Active connection: from this point you can send KSeF invoices via the POP API.
If you’re accessing for the first time with a Polish (PL) account, activation can also happen from
the guided setup wizard, with the same two steps (registration + authorization).
Credit cost
Every KSeF document consumes 1 credit, only for delivery: locally generating the XML never consumes a credit.
Disconnecting
- Disconnect: pauses sending while keeping the registration (you can reactivate it later).
- Delete connection: also removes the local registration data.
Common errors
- “KSeF Legal Entity is missing.”: the legal entity hasn’t been registered (Step 1) before generating/sending a document, complete the registration in the account panel.
- KSeF onboarding not completed: NIP or account data is missing, check the settings before proceeding with authorization.
- Sandbox active but no real sending happens: expected, the sandbox doesn’t actually deliver to KSeF, you need to switch to the live environment for actual sending.
Related configuration
For the API contract details (payload, FA(3) field mapping), see api/ksef.