FMFI E-Invoice — Tekninen ja konsulttiopas
Tämä dokumentti on tarkoitettu konsulteille ja kehittäjille, jotka työskentelevät FMFI E-Invoice -sovelluksen kanssa. Loppukäyttäjäohjeistus löytyy tiedostosta index.md.
Sisällysluettelo
- Verkkolaskuasetukset — kenttäviite
- Yleiset asetukset
- Liitteet
- Azure Blob Storage -yhteys
- Asiakaskortti — verkkolaskukentät
- Vienti-/tuontiasetukset
- Oletusmääritykset
- Pankkitietojen määritys
- Työkirjan sarakkeiden viite
- Validointi
- Käyttöoikeudet
- Sovelluksen laajentaminen
- Integrointitapahtumat
- Finvoice XML -standardi
Verkkolaskuasetukset — kenttäviite
Avaa E-Invoice Setup -sivu (hae "E-Invoice Setup" Business Centralissa).
Yleiset asetukset
| Kenttä | Kuvaus |
|---|---|
| E-Invoice Address | Yrityksesi verkkolaskuosoite (OVT-tunnus tai vastaava). Tätä käytetään lähettäjän osoitteena Finvoice XML:ssä. |
| Intermediator Code | Verkkolaskuoperaattorisi (pankin/palveluntarjoajan) koodi. |
| Send E-Inv. To All Customers | Kun käytössä, verkkolaskut luodaan kaikille asiakkaille. Kun pois käytöstä, verkkolaskutus on erikseen otettava käyttöön asiakaskortilla. |
| Default Finvoice Receiv. Field | Mikä asiakaskortin kenttä määrittää asiakkaan verkkolaskuosoitteen. Voidaan ohittaa asiakaskohtaisesti. |
| Finvoice Receiver Alternative | Varaervo, jota käytetään kun asiakkaalta puuttuu verkkolaskuosoite (esim. EKIRJE, PRINT, TULOSTUS). |
| Cust. Address Details Source | Määrittää, haetaanko asiakkaan osoitetiedot XML:ään asiakaskortilta vai kirjatulta laskuasiakirjalta. |
| Finvoice Validation | Määrittää, mitä tapahtuu, jos tekninen XML-validointi epäonnistuu ennen lähetystä: Tyhjä = ei validointia, Message = näytä validoinnin tulos mutta jatka, Error = estä lähetys validointivirheen sattuessa. |
| Finvoice Validation Scope | Määrittää, tarkistetaanko vain XML-skeema vai sekä skeema että Schematron-liiketoimintasäännöt. |
| Write To One File | Kun käytössä, kaikki laskut kirjoitetaan yhteen XML-tiedostoon (ketjutetaan). Yleensä tarvitaan kun käytetään pankkia operaattorina. |
| Zip Per Invoice | Luo erillisen ZIP-tiedoston jokaiselle laskulle (sisältäen XML:n ja mahdolliset liitteet). |
| Increase No. Printed On Export | Kasvattaa kirjatun asiakirjan "Tulostettu kpl" -laskuria verkkolaskun viennin yhteydessä. |
| Skip Zero Amount Invoices | Ohittaa laskut, joiden summa ALV:n kanssa on nolla, laskuja ehdotettaessa. |
| Print 0 Invoice Lines | Määrittää, sisällytetäänkö nollasummaiset laskurivit XML:ään. |
| Write Finvoice SOAP | Lisää Finvoice SOAP -kirjekuoren otsikon. Yleensä operaattorien vaatima. |
| Default Inv. Overdue Interest | Oletusviivästyskorko, jota käytetään kun maksuehdossa ei ole määritelty korkoa. |
| InvoiceFreeText Std Text | Vakiotekstikoodi, jonka sisältö viedään <InvoiceFreeText>-elementtiin. |
| Invoice Comment Lines Visible | Sisällyttää laskun kommenttirivit verkkolaskuun (huom: EN 16931 ei tue kommenttirivejä). |
| Skip EN16931 Identifier | Jättää <SpecificationIdentifier>-elementin pois XML:stä. |
Laskutyypit — ota käyttöön tai poista käytöstä asiakirjatyypit, jotka voidaan lähettää verkkolaskuina:
- Invoice — Myyntilaskut
- Credit Memo — Myynti hyvityslaskut
- Service Invoice — Huoltolaskut
- Service Credit Memo — Huollon hyvityslaskut
Liitteet
| Kenttä | Kuvaus |
|---|---|
| Include Attachments | Sisällyttää asiakirjaliitteet (Asiakirjaliite-toiminnosta) verkkolaskun vientiin. |
| Auto Generate Invoice Printout | Luo automaattisesti laskun PDF-tulosteen ennen vientiä. Käytettävissä vain kun Include Attachments on käytössä. |
| Attachment Path | Polkuetuliite liitetiedostonimille (esim. Attachments\). Voidaan käyttää myös tiedostonimen etuliitteenä. |
| Skip Attachment Name Prefix | Kun käytössä, poistaa attachment://-etuliitteen liitteiden URL-osoitteista XML:ssä. |
Azure Blob Storage -yhteys
| Kenttä | Kuvaus |
|---|---|
| ABS Account Name | Azure Storage -tilin nimi suoraa blob-vientiä varten. |
| ABS Container Name | Säilön nimi tallennustilillä. |
| Access Key | Azure Storagen avain (peitetty kenttä). |
Asiakaskortti — verkkolaskukentät
Asiakaskortin Verkkolasku-ryhmässä on seuraavat kentät:
| Kenttä | Kuvaus |
|---|---|
| E-Invoice Address | Asiakkaan verkkolaskuosoite (OVT-tunnus, IBAN tai muu päätepisteen tunniste). |
| Intermediator Code | Asiakkaan verkkolaskuoperaattorin koodi. |
| Enable E-Invoice | Default = käyttää yleistä asetusta Verkkolaskuasetuksista, Yes = lähetetään aina verkkolasku, No = ei koskaan lähetetä verkkolaskua. |
| Business Identity Code | Asiakkaan Y-tunnus. Käytetään Finvoice XML:n <BusinessId>-elementissä. |
| Alternative Receiver Field Id | Ohittaa sen, mitä asiakaskortin kenttää käytetään verkkolaskun vastaanottajan osoitteena tälle asiakkaalle. |
Kun Send E-Inv. To All Customers on pois käytöstä Verkkolaskuasetuksissa, vain asiakkaat, joilla Enable E-Invoice on Yes, sisällytetään verkkolaskujen ehdottamiseen.
Vienti-/tuontiasetukset
E-Invoice Exp. Imp. Setup -sivulla voit määrittää nimettyjä työkirjamäärityksiä. Jokainen määritys sisältää:
| Kenttä | Kuvaus |
|---|---|
| Code | Määrityksen yksilöllinen tunniste. |
| Description | Kuvaava nimi. |
| Direction | Vienti tai tuonti. |
| Suggest Invoices Codeunit | Mikä codeunit ehdottaa laskuja (mahdollistaa laajennettavuuden). |
| Export Codeunit | Mikä codeunit käsittelee viennin (esim. vienti ZIP-tiedostoon, vienti Azure Blobiin). |
Tämä on sovelluksen pääasiallinen laajennettavuuspiste: luomalla uusia vienti-/tuontiasetustietueita ja osoittamalla ne omiin codeuniteihin, konsultit voivat lisätä uusia vientikohteita tai laskujen ehdotuslogiikkaa muuttamatta perussovellusta.
Oletusmääritykset
Asennuksen jälkeen sovellus luo:
- Vienti-määritys, joka käyttää Finvoice 3.0 -vientimoottoria ZIP-tiedostotulosteella
- Lisämäärityksiä voidaan lisätä Azure Blob Storagelle tai mukautetuille integraatioille
Pankkitietojen määritys
E-Invoice Bank Detail Card -sivulla voit määrittää, mitkä pankkitilit sisällytetään Finvoice XML:ään.
| Kenttä | Kuvaus |
|---|---|
| Bank No. | Linkittyy pankkitiliin Business Centralissa. |
| Show As Default Bank | Vain yksi pankki valuuttaa kohti voi olla oletuspankki. Oletuspankki näytetään ensimmäisenä Finvoice XML:ssä. |
| Currency Code | Liittää pankin tiettyyn valuuttaan. |
Jos pankkitietoja ei ole määritelty, sovellus käyttää Yrityksen tiedot -sivun pankkitietoja.
Työkirjan sarakkeiden viite
| Sarake | Kuvaus |
|---|---|
| Document Type | Lasku, hyvityslasku, huoltolasku tai huollon hyvityslasku |
| Document No. | Kirjatun asiakirjan numero |
| Account No. | Asiakasnumero |
| Account Name | Asiakkaan nimi |
| Amount | Laskun summa ilman ALV:tä |
| Amount Including VAT | Laskun summa ALV:n kanssa |
| E-Invoice Sent | Onko verkkolasku lähetetty (voidaan vaihtaa manuaalisesti) |
| E-Invoice Date Sent | Päivämäärä, jolloin verkkolasku lähetettiin |
| E-Invoice Time Sent | Kellonaika, jolloin verkkolasku lähetettiin |
| Factoring Sent Date | Päivämäärä, jolloin factoringtiedot lähetettiin |
| Has Printout Attachment | Onko PDF-tuloste liitetty |
| Contains Validation Errors | Onko luodussa XML:ssä validointivirheitä (napsauta nähdäksesi tiedot) |
Validointi
Sovellus voi validoida luodun Finvoice XML:n ennen lähetystä. Verkkolaskuasetuksissa validointia ohjataan kahdella kentällä.
Finvoice Validation määrittää, mitä tapahtuu validoinnin epäonnistuessa:
| Asetus | Toiminta |
|---|---|
| Tyhjä | Ei validointia. |
| Message | Validointi suoritetaan ja validoinnin tulos näytetään, mutta vientiä ei estetä. |
| Error | Validointi suoritetaan ja vienti estetään, jos XML on virheellinen. |
Finvoice Validation Scope määrittää validoinnin laajuuden:
| Asetus | Toiminta |
|---|---|
| Schema | Validoi XML:n vain Finvoice XSD -skeemaa vasten. |
| Schema and Schematron | Validoi sekä XSD-skeeman että Schematron-liiketoimintasäännöt. |
Voit myös validoida yksittäisiä laskuja työkirjalta Validate Invoice -toiminnolla.
Käyttöoikeudet
Sovellus sisältää käyttöoikeusjoukon e-invoice FMD, joka antaa pääsyn kaikkiin verkkolaskutauluihin ja -objekteihin. Määritä tämä käyttöoikeusjoukko käyttäjille, jotka työskentelevät verkkolaskujen kanssa.
Sovelluksen laajentaminen
Sovellus on suunniteltu laajennettavaksi Vienti-/tuontiasetukset-mallin kautta:
- Luo uusi codeunit, joka käsittelee
E-Invoice Worksheet FMD-tietueita. - Luo uusi vienti-/tuontiasetustietue, joka osoittaa codeunitiisi.
- Käyttäjät voivat valita mukautetun työkirjan käyttääkseen omaa vienti-/tuontilogiikkaasi.
Integrointitapahtumat
Vientimoottorin ydin (Export - Finvoice 3.0 FMD) julkaisee [IntegrationEvent]-tapahtumia XML-luonnin eri vaiheissa. Tilaa nämä tapahtumat omasta laajennuksestasi mukauttaaksesi XML-tuotosta muuttamatta perussovellusta:
| Tapahtuma | Käyttötarkoitus |
|---|---|
OnAfterGetCustomers |
Muokkaa laskutus-/toimitusosoiteasiakastietoja ennen XML-luontia |
OnBeforeAddSellerPartyDetails |
Muokkaa myyjän tietoja XML-elementissä |
OnAfterGetSetBankInformation |
Muokkaa pankkitilien valintaa |
OnBeforeAddInvoiceRecipientPartyDetails |
Muokkaa laskun vastaanottajan XML-elementtiä |
OnBeforeAddBuyerPartyDetails |
Muokkaa ostajan XML-elementtiä |
OnBeforeAddDeliveryPartyDetails |
Muokkaa tai piilota toimitustiedot |
OnBeforeInsertInvoiceRowContent |
Muokkaa tai ohita yksittäisiä laskurivejä |
OnBeforeRowFreeText |
Lisää sisältöä ennen rivin vapaatekstiä |
OnAfterInsertInvoiceRow |
Lisää elementtejä jokaisen laskurivin jälkeen |
OnBeforeEpiDetails |
Lisää sisältöä ennen maksutietoja (EPI) |
OnAfterEpiDetails |
Lisää sisältöä maksutietojen jälkeen |
OnAfterGetSetAttachmentInformation |
Muokkaa liiteviittauksia |
OnBeforeGetInvoiceLines |
Ohita laskurivien haku |
OnAfterGetInvoiceLines |
Jälkikäsittele laskurivejä |
OnAfterGetInvoiceFreeTextBeforeAddToInvoiceDetails |
Ohita vapaatekstin sisältö |
OnAfterinvoiceSoapDataForInvoice |
Muokkaa SOAP-kirjekuorta |
Finvoice XML -standardi
Luotu XML noudattaa:
- Finvoice 3.0 — Suomalainen verkkolaskustandardi
- EN 16931 — Eurooppalainen verkkolaskustandardi (kun
Skip EN16931 Identifieron pois käytöstä)
XML sisältää asianmukaisen ALV-käsittelyn UN 5305 -veroluokkakoodeilla ja tukee useita ALV-kantoja laskua kohden.