A Peppol BIS Billing 3.0 szerinti számla XML-dokumentum. Maga az XML a számla: olyan strukturált adatokat tartalmaz, amelyeket a könyvelőszoftver ellenőrizhet, könyvelhet és automatikusan feldolgozhat. Néha azonban a számlához kiegészítő anyagok is tartoznak, például munkaidő-kimutatás, szállítólevél vagy ember által olvasható PDF. A BIS 3 lehetővé teszi, hogy ezeket XML-mellékletként a számlával együtt küldjük el.
A PDF megkönnyítheti a számla emberi olvasását, de nem helyettesíti a strukturált BIS-számlát. A validáláshoz és az automatikus feldolgozáshoz továbbra is az XML az elsődleges dokumentum.
Hol helyezkedik el a melléklet a BIS 3-ban?
A mellékletek a cac:AdditionalDocumentReference/cac:Attachment elemben kerülnek továbbításra. Ez a csoport opcionális, és többször is előfordulhat. A teljes struktúrát a Peppol BIS Billing 3.0 hivatalos UBL Invoice szintaxisa írja le.
Beágyazott fájl esetén a cbc:EmbeddedDocumentBinaryObject elem a fontos. Két kötelező attribútuma van:
- a
mimeCodeadja meg a fájl médiatípusát; - a
filenameadja meg a fájl nevét a címzett számára.
Egy minimális beágyazott PDF például így nézhet ki:
| |
Az elem értéke nem maga a PDF, hanem annak Base64 formában ábrázolt tartalma.
Milyen formátumok támogatottak?
A BIS Billing 3 nem enged meg tetszőleges MIME-típust. A címzettnek az IANA alapján korlátozott listát kell támogatnia. A hivatalos csatolt dokumentumok médiatípusainak kódlistája a következőket tartalmazza:
| Kategória | MIME-típus |
|---|---|
| Dokumentum | application/pdf |
| Kép | image/png |
| Kép | image/jpeg |
| Szöveg | text/csv |
| Táblázat | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| Táblázat | application/vnd.oasis.opendocument.spreadsheet |
A mimeCode értékének ezen értékek egyikének kell lennie, a fájlkiterjesztésnek pedig egyeznie kell vele. ZIP-fájlt tehát nem szabad PDF-ként megjelölni, és Excel-fájlt sem szabad mimeCode="application/pdf" értékkel küldeni.
A BIS külső hivatkozást is támogat a cac:ExternalReference/cbc:URI elemen keresztül. A beágyazott melléklet a számlához tartozó bizonyítékok esetében általában megbízhatóbb, mert a fájl a számlával együtt utazik, és nem függ egy később elérhető URL-től, bejelentkezéstől vagy lejáró linktől.
10 MiB és 100 MiB
Ezt a két értéket gyakran összekeverik:
- A 10 MiB a teljes XML-üzenetre vonatkozó, gyakran ellenőrzött limit. Nem egyetlen melléklet limitje. Az ellenőrzés általában az XML-számlára, az összes beágyazott mellékletre és az Access Point által fogadott üzenettartalomra vonatkozik. Több kisebb melléklet együtt is átlépheti a határt.
- A 100 MiB az általános átviteli kapacitás. Egy üzenetnek általában 100 MiB-ig működnie kellene, de a tényleges limitet az adott Access Point szabályzata határozza meg. Egyes Access Pointok ennél jóval korábban elutasíthatják.
A Base64 minden beágyazott bináris értéket körülbelül egyharmaddal megnövel. Ehhez hozzáadódik az XML, a MIME-csomagolás és a biztonsági többlet. Ezért nem a lemezen lévő fájlok mérete, hanem a kész üzenet mérete számít. A megvalósításnak a teljesen kódolt üzenetet kell mérnie, és tartalékot kell hagynia az Access Point által érvényesített limit alatt.
Nagyobb kiegészítő anyagokhoz használjon kisebb, releváns exportot vagy a címzettel egyeztetett külső hivatkozást. A számlát ne alakítsa általános fájlarchívummá, és nagy üzenet küldése előtt egyeztesse a tényleges méretkorlátot a fogadó Access Pointtal.
Hogyan történik a fájl kódolása?
A fájl bájtjait Base64 formában kódoljuk, majd a cbc:EmbeddedDocumentBinaryObject elembe helyezzük. A Base64 nem titkosítás és nem biztonsági ellenőrzés. A címzett visszaalakítja az értéket bájtokká, az Access Pointnak és a célalkalmazásnak pedig továbbra is vizsgálnia kell a káros tartalmakat.
Melléklet létrehozásakor:
- olvassa be az eredeti bájtokat szöveges kódolásra történő átalakítás nélkül;
- kódolja őket Base64 formában;
- állítsa be a helyes
mimeCodeésfilenameértéket; - tesztben dekódolja vissza az értéket, és bájtonként hasonlítsa össze az eredetivel;
- validálja a teljes BIS-számlát és a kész üzenet méretét.
Miért küldjünk mellékletet?
A strukturált XML kiválóan alkalmas automatizálásra, de nem tartalmazhat minden, az üzleti folyamatban szükséges bizonyítékot. Melléklet lehet például munkaidő-kimutatás, szállítási vagy átvételi jegyzőkönyv, számítás, fénykép, táblázat vagy ember számára készült PDF-reprezentáció.
Az azonos tranzakcióval együtt küldött dokumentum javítja a nyomon követhetőséget. A címzettnek nem kell e-mailes mellékletet párosítania, és nem kell később lejáró linket letöltenie. A mellékletnek azonban támogatnia kell a számlát, nem pedig ellentmondania neki. Az összegeknek, adóadatoknak és a felek azonosítóinak a strukturált BIS-adatokból kell származniuk.
Miért adhat hozzá PDF-et egy Access Point?
Egyes Access Pointok PDF-reprezentációt készítenek az XML-számlából, és mellékletként hozzáadják számlaelőnézetként. Ez hasznos lehet kézi ellenőrzésnél, nyomtatásnál vagy archiválásnál, amikor a géppel olvasható XML mellett vizuális megjelenítésre is szükség van.
A PDF kiegészítő megjelenítés, nem pedig második hiteles számla. Validált XML-ből kell létrehozni, egyértelmű névvel és mimeCode="application/pdf" értékkel. Nem módosíthatja észrevétlenül az összegeket, az áfát, a fizetési hivatkozásokat vagy a feleket. A könyveléshez a címzettnek az XML-t kell használnia, a PDF pedig nézetként vagy kiegészítő dokumentumként szolgál.
Érdemes egyértelművé tenni azt is, hogy a PDF-et a feladó adta-e, vagy az Access Point generálta. A generált PDF növeli az üzenet méretét, és a címzett nem feltétlenül számít rá.
Gyakorlati ellenőrzőlista
Küldés előtt ellenőrizze, hogy:
- az XML-számla megfelel a Peppol BIS Billing 3.0 szabályainak;
- minden melléklet engedélyezett MIME-típust és értelmes fájlnevet használ;
- a tartalom Base64-kódolt, és változtatás nélkül visszafejthető;
- a teljes üzenet az Access Point által ellenőrzött limit alatt marad;
- ismert, hogy az Access Point generál-e PDF-et, és hogyan kezeli azt.
Így az XML pontos és automatizálható marad, a kiegészítő dokumentumok pedig együtt utaznak a tranzakcióval.
Források: Peppol BIS Billing 3.0, UBL Invoice szintaxis, csatolt dokumentumok médiatípusainak kódlistája és Peppol AS4 Profile.
