E-fakturowanie — jak zintegrować wysyłkę i odbiór e-faktur w produkcie firmy?

E-fakturowanie zastąpiło faktury papierowe i PDF w wielu krajach. W Finlandii e-faktury są wymagane między firmami od 2020 roku, a w UE wprowadzane są nowe wymogi w ramach reformy ViDA (VAT in the Digital Age). Jak więc zintegrować obsługę e-faktur w produkcie własnym lub systemie firmy?

Co to jest e-faktura?

E-faktura to faktura w formacie ustrukturyzowanym (XML), zdolnym do automatycznego przetwarzania komputerowego. Najpopularniejsze standardy to Finvoice (Finlandia) i TEAPPSXML, oba zgodne z europejskim standardem EN 16931 (Peppol BIS Billing). UE i Peppol wprowadzają jednolity format Peppol BIS, który jest stopniowo standardem międzynarodowym.

Operatorzy e-faktur

E-faktury są przesyłane przez operatorów — usługi specjalizujące się w obsłudze e-faktur między systemami firmowymi. W Finlandii znanymi operatorami są m.in. Maventa, OpusCapita, Apix, Pagero, Basware. Każda firma ma swojego operatora i swój identyfikator OVT (np. „003712345678″).

Wymiana faktur funkcjonuje z grubsza tak:

  1. Twoja firma utworzy fakturę w swoim systemie.
  2. System wysyła ją do Twojego operatora.
  3. Operator przekazuje fakturę do operatora odbiorcy.
  4. Operator odbiorcy dostarcza fakturę do systemu klienta.
  5. System klienta wprowadza fakturę do księgowości.

Cały proces zajmuje sekundy lub minuty, w przeciwieństwie do dni przy tradycyjnej obsłudze.

Integracja wysyłki e-faktur

Aby zintegrować wysyłanie e-faktur, system Twojej firmy musi:

  1. Wygenerować plik XML w formacie Finvoice (lub TEAPPSXML, lub Peppol BIS) — zawierający wszystkie wymagane informacje (dostawca, klient, wiersze faktury, podatek, OVT).
  2. Połączyć się z API operatora — większość operatorów oferuje REST API. Operator wymaga zwykle uwierzytelnienia (login + token API).
  3. Wysłać fakturę i obsłużyć odpowiedzi (potwierdzenia, błędy walidacji, statusy).
  4. Śledzić status — większość operatorów oferuje webhooki, które informują, gdy faktura została odebrana, dostarczona lub odrzucona.

Integracja odbioru e-faktur

Odbiór działa odwrotnie:

  1. Operator otrzymuje fakturę przychodzącą i powiadamia Twój system (webhook lub poll).
  2. Twój system pobiera plik XML.
  3. System parsuje XML, mapuje pola na wewnętrzną strukturę i zapisuje fakturę.
  4. Faktura przepływa do procesu zatwierdzania, np. w Twoim systemie ERP lub aplikacji księgowej.

Wyzwania techniczne

Walidacja XML

Standardy są ścisłe — XSD (XML Schema Definition) określa pola obowiązkowe i ich format. Walidator XML to obowiązkowy element przed wysyłką, w przeciwnym razie operator odrzuci fakturę.

Mapping na model wewnętrzny

Twój system ma własną strukturę faktur. Dopasowanie pól (np. „klient.nazwa” → „BuyerOrganisationName”) wymaga uwagi. Często też trzeba obsługiwać kilka wariantów (Finvoice 2.0 vs 3.0, TEAPPSXML, Peppol BIS).

Zarządzanie OVT

Każda firma ma identyfikator OVT — to pierwszy klucz przy wysyłce. Twój system musi pobrać OVT z bazy klientów (np. z biznesi.fi lub własnej) i umieścić go w fakturze.

Obsługa błędów i powtarzania

Operator może chwilowo nie być dostępny. Solidna implementacja powtarza wysłanie z backoffem, śledzi status faktur i powiadamia administratora w przypadku błędów krytycznych.

Gotowe biblioteki i platformy

Nie trzeba budować wszystkiego od zera:

  • API operatorów — Maventa, Apix i inne oferują dobrą dokumentację i biblioteki dla popularnych języków.
  • Biblioteki Finvoice — istnieją gotowe biblioteki Java/PHP/Python do generowania zgodnego XML.
  • iPaaS — n8n lub Zapier mogą obsługiwać proste przypadki użycia bez własnego kodu.

Jak HD SofT pomaga?

Mamy doświadczenie z integracjami Finvoice, OVT i operatorami w wielu projektach klientów. Zwykle tworzymy lekki moduł, który łączy wewnętrzny system klienta z wybranym operatorem (Maventa, Apix, Pagero) i obsługuje całą logikę walidacji, mappingu i obsługi błędów. Często łączymy go z Odoo, SAP lub niestandardową platformą e-commerce.

Skontaktuj się — pomożemy zaprojektować i wdrożyć integrację e-faktur dopasowaną do Twojego produktu.

Related posts