> For the complete documentation index, see [llms.txt](https://docs4.simutek.se/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs4.simutek.se/integrationer/business-central.md).

# Business Central

Microsoft Dynamics 365 Business Central är ett kraftfullt ekonomisystem för de lite större företagen som efterfrågar djup finansiell rapportering.

{% embed url="<https://www.microsoft.com/sv-se/dynamics-365/products/business-central>" %}
Läs mer om Business Central
{% endembed %}

GKS4 skapar försäljningsfakturor (sales invoices) i Microsoft Dynamics 365 Business Central Online, nedan Business Central. Fakturan skickas till kunden från Business Central.

## Översikt

### Så fungerar det

1. Kunden söks upp på GKS4:s kundnummer. Saknas kunden skapas den med samma kundnummer. En befintlig kund uppdateras med adress, e-postadress och momsregistreringsnummer. Bokföringsmallar som saknas på kunden fylls i från GKS4:s inställningar, se [Bokföringsmallar](#bokforingsmallar).
2. Betalningsvillkor med orderns antal dagar används. Saknas de skapas de.
3. Ett fakturautkast skapas med orderns rader, och produktspecifikationen bifogas som PDF.
4. Är **Bokför** aktiverat i GKS4 bokförs fakturan direkt. Annars ligger den kvar som utkast under Försäljningsfakturor och bokförs i Business Central.
5. Fakturanumret sparas på ordern i GKS4.

### Uppgifter som förs över

* Kund: kundnummer, namn, adress, e-postadress och momsregistreringsnummer (när det anges med landskod, t.ex. SE556677889901).
* Betalningsvillkor: datumformeln `{dagar}D`, t.ex. `30D`.
* Fakturahuvud: fakturadatum (även bokföringsdatum), förfallodatum, valuta när den skiljer sig från företagets, er referens, e-postadress för faktura samt GKS4:s ordernummer i fältet Externt dokumentnr (External Document No.).
* Fakturarader: rader med belopp blir redovisningskontorader (G/L account lines) på orderns intäktskonto med antal och à-pris. Textrader blir kommentarsrader. Kundens ordernummer läggs som en egen rad. Beskrivningar längre än 100 tecken fortsätter i Beskrivning 2.
* Bilaga: produktspecifikationen som PDF.

### Vad som skapas i Business Central och vilka val som gjorts

* **Redovisningskontorader, inte artikelrader.** Business Central behöver inget artikelregister. Kontot väljs per faktura enligt GKS4:s ordinarie kontoinställningar (Konto 25 %, 6 %, 0 %, EU och Export).
* **Business Central beräknar momsen.** GKS4 skickar belopp exklusive moms och ingen momssats. Momsen bestäms av fakturans och kontots bokföringsmallar.
* **Fakturan kan ha andra bokföringsmallar än kundkortet.** Fakturan får rörelse- och momsrörelsebokföringsmall för orderns kundtyp, så att t.ex. en EU-order till en inrikes kund faktureras utan moms. Mallarna syns på utkastet under **Fakturainformation** (Invoice Details). Kundkortet ändras inte.
* **Totalsummorna kontrolleras.** GKS4 jämför fakturans totalsummor i Business Central med orderns. Vid avvikelse med **Bokför** avaktiverat behålls utkastet och avvikelsen loggas, så att det kan kontrolleras i Business Central. Vid avvikelse med **Bokför** aktiverat bokförs fakturan inte: utkastet tas bort och ordern förblir ofakturerad tills konto eller bokföringsmall är rättad.
* **Ordernummer.** GKS4:s ordernummer sparas i Externt dokumentnr och skrivs ut på fakturan. Kundens ordernummer visas som en fakturarad.
* **Fakturanummer i GKS4.** Med **Bokför** aktiverat sparas det bokförda fakturanumret. Annars sparas utkastets nummer, och det uppdateras inte när fakturan bokförs i Business Central. Har utkast och bokförda fakturor olika nummerserier får den bokförda fakturan därför ett annat nummer än det som visas i GKS4.
* **Inget utskick från GKS4.** Fakturan skickas till kunden från Business Central.

## Bokföringsmallar

Bokföringsmallar (posting groups) är Business Centrals sätt att styra kontering och moms. I stället för att konto och momssats anges på varje fakturarad har kunden och kontot var sin uppsättning koder. Vid bokföring slår Business Central upp kombinationen av kundens och kontots koder i sina inställningstabeller och hämtar därifrån vilket konto och vilken moms som ska användas. Mekanismen är specifik för Business Central.

På kunden finns tre bokföringsmallar:

| Bokföringsmall            | Engelskt namn           | Styr                                                                                      | Typiska koder              |
| ------------------------- | ----------------------- | ----------------------------------------------------------------------------------------- | -------------------------- |
| Rörelsebokföringsmall     | Gen. Bus. Posting Group | Vilken typ av kund det är (inrikes, EU, export), och därmed intäktskonto för artikelrader | `INRIKES`, `EU`, `EXPORT`  |
| Momsrörelsebokföringsmall | VAT Bus. Posting Group  | Kundens momsstatus. Avgör momsen tillsammans med kontots momsproduktbokföringsmall        | `INRIKES`, `EU`, `EXPORT`  |
| Kundbokföringsmall        | Customer Posting Group  | Vilket kundfordringskonto fakturan bokförs på                                             | `INRIKES`, `EU`, `UTRIKES` |

På kontot, liksom på artiklar, finns motsvarande produktkoder: produktbokföringsmall (Gen. Prod. Posting Group) och momsproduktbokföringsmall (VAT Prod. Posting Group), t.ex. `MOMS25`, `MOMS6` och `INGEN MOMS`.

Momsen på en fakturarad bestäms av fakturans momsrörelsebokföringsmall i kombination med kontots momsproduktbokföringsmall, enligt tabellen Momsbokföringsinställningar (VAT Posting Setup). Exempel: `INRIKES` och `MOMS25` ger 25 %, `EU` och `MOMS25` ger 0 % (omvänd skattskyldighet). GKS4 skickar därför ingen momssats.

Kundtypen bestäms per order utifrån orderns exportinställning: **Export inom EU** ger raden EU, **Export** raden Export och övriga order raden Inrikes i GKS4:s inställningar.

Business Central kräver att alla tre bokföringsmallar är angivna på kunden innan en faktura kan skapas. En kund som skapas via API:et får inga bokföringsmallar automatiskt, och GKS4 fyller därför i dem:

* Nya kunder får de tre koderna från orderns rad.
* På befintliga kunder fylls endast tomma fält i. Värden som redan finns i Business Central ändras aldrig.
* Är raden för orderns kundtyp tom i GKS4 lämnas bokföringsmallarna orörda. Kunden måste då kompletteras i Business Central innan ordern kan faktureras.

Business Central kopierar kundens bokföringsmallar till fakturan. Skiljer de sig från orderns rad får fakturan radens rörelsebokföringsmall och momsrörelsebokföringsmall, medan kundkortet behåller sina. Kundbokföringsmallen sätts på fakturan bara om **Tillåt flera bokföringsmallar** (Allow Multiple Posting Groups) är aktiverat under Försäljnings- och kundreskontrainställningar (Sales & Receivables Setup) och på kundkortet, och radens kundbokföringsmall är upplagd som alternativ (Alternative) till kundens under Kundbokföringsmallar (Customer Posting Groups). Annars behåller fakturan kundens kundbokföringsmall. Momsen blir ändå rätt.

Momsbokföringsinställningar ska innehålla kombinationen av varje rads momsrörelsebokföringsmall och varje intäktskontos momsproduktbokföringsmall, med rätt momssats. Exempel för samma kund, med kundkortet på `INRIKES`:

| Order          | Fakturans momsrörelsebokföringsmall | Moms                         |
| -------------- | ----------------------------------- | ---------------------------- |
| Inrikes        | `INRIKES`                           | 25 %                         |
| Export inom EU | `EU`                                | 0 % (omvänd skattskyldighet) |

## Begränsningar

* Dimensioner: GKS4:s resultatenheter förs inte över.
* Kundfordringskonto: utan **Tillåt flera bokföringsmallar** i Business Central följer kundfordringskontot kunden, inte ordern.
* Alla rader på en faktura konteras på samma intäktskonto, valt utifrån orderns momssats och kundtyp. Momsen per rad styrs av kontots momsproduktbokföringsmall.
* Fakturan skickas inte till kunden av GKS4.
* Leverantörsfakturor hämtas inte från Business Central.
* Valutor: en annan valuta än företagets måste finnas i Business Central med valutakurser. GKS4 skapar inga valutor.
* Fakturanummer: GKS4 lagrar fakturanumret som ett tal. Innehåller nummerserien bokstäver används de avslutande siffrorna.
* Kundnummer: högst 20 tecken, utan mellanslag.

## Avbruten fakturering

GKS4 fakturerar aldrig en order som redan har ett fakturanummer. Avbryts en fakturering, t.ex. vid nätverksfel, kan ordern faktureras igen efter en minut. GKS4 söker då upp vad som redan finns i Business Central på orderns nummer i Externt dokumentnr och kundnumret:

* En bokförd faktura registreras som orderns faktura om belopp och valuta stämmer med ordern. Annars stoppas faktureringen med ett meddelande.
* Ett utkast som motsvarar ordern kompletteras: rader som avviker ersätts och produktspecifikationen laddas upp på nytt.
* Ett utkast där datum, betalningsvillkor, valuta, er referens, e-postadress eller bokföringsmallar avviker från ordern tas bort och skapas på nytt.
* Kan bokföringsmallarna inte sättas på ett nytt utkast tas det tomma utkastet bort och faktureringen stoppas med ett meddelande om vad som ska åtgärdas.
* Ett utkast som väntar på godkännande i Business Central stoppar faktureringen tills det är godkänt eller avvisat.
* Efter en makulerad faktura skapas en ny.

## Aktivera integrationen

Stegen nedan görs en gång per Business Central-miljö. App-registreringen i Microsoft Entra är gemensam för organisationen; posten under Microsoft Entra Applications och webbtjänsterna görs i varje miljö.

### Aktivera app i Azure och Business Central

1. Logga in på ditt konto i [Microsoft Entra](https://entra.microsoft.com/).
2. Gå till *App registrations > New registration*.
   * Name: `GKS-BusinessCentral-API`
   * Supported account types: `Single tenant only`
   * Klicka *Register*.
   * Anteckna: ***Application (client) ID*** samt ***Directory (tenant) ID***.
3. Gå till *Certificates & secrets > New client secret*.
   * Description: `GKS`
   * Expires: `24 months`
   * Klicka *Add*.
   * Anteckna värdet för **Secret&#x20;*****Value***.
4. Gå till *API permissions > Add a permission > Microsoft APIs > Dynamics 365 Business Central > Application permissions*.
   * Kryssa i: `API.ReadWrite.All`
   * Klicka *Add Permissions.*
   * Klicka på knappen *Grand admin consent for (your org).*
5. Logga in på ditt konto i [Business Central](https://businesscentral.dynamics.com/).
6. Klicka på sökikon och skriv: `Microsoft Entra Applications`. Klicka på länken.
7. Klicka *New*.
   * Client ID: `(antecknat tidigare)`
   * Description: `GKS`
   * State: `Enabled`
   * Permission sets: `D365 FULL ACCESS` (eller annan lämplig för ändamålet)
8. Gå till *Settings (kugghjulet) > Admin Center*.
9. Kontrollera att er miljö:
   * Har Type: `Production` eller `Sandbox` baserat på ändamål.
   * Har version: `28.5` (eller senare)

{% hint style="info" %}
Se [Using Service-to-Service (S2S) Authentication](https://docs.microsoft.com/en-us/dynamics365/business-central/dev-itpro/administration/automation-apis-using-s2s-authentication) för fullständig dokumentation och steg gällande aktiveringen.
{% endhint %}

### Publicera kundkort och försäljningsfaktura som webbtjänster

Business Centrals standard-API kan inte ange alla bokföringsmallar på en kund eller en faktura. GKS4 skriver dem därför via kundkortet och försäljningsfakturan, som publiceras som webbtjänster.

1. Sök upp sidan **Webbtjänster** (Web Services) i Business Central och välj **Ny**.
2. Fyll i raden:

   | Fält                      | Värde                                             |
   | ------------------------- | ------------------------------------------------- |
   | Objekttyp (Object Type)   | Sida (Page)                                       |
   | Objekt-ID (Object ID)     | `21`                                              |
   | Objektnamn                | fylls i automatiskt: Customer Card                |
   | Tjänstnamn (Service Name) | `GKS4CustomerCard` (exakt så, skiftlägeskänsligt) |
   | Publicerad (Published)    | ☑                                                 |
3. Välj **Ny** igen och fyll i raden:

   | Fält                      | Värde                                             |
   | ------------------------- | ------------------------------------------------- |
   | Objekttyp (Object Type)   | Sida (Page)                                       |
   | Objekt-ID (Object ID)     | `43`                                              |
   | Objektnamn                | fylls i automatiskt: Sales Invoice                |
   | Tjänstnamn (Service Name) | `GKS4SalesInvoice` (exakt så, skiftlägeskänsligt) |
   | Publicerad (Published)    | ☑                                                 |
4. Kolumnen **OData V4-URL** fylls i automatiskt och behöver inte kopieras.

Utan publicerade webbtjänster stoppas faktureringen med ett fel som anger den saknade webbtjänsten, t.ex. `The page web service 'GKS4CustomerCard' is not published`. `GKS4SalesInvoice` behövs när kundens bokföringsmallar skiljer sig från orderns kundtyp. Lämnas bokföringsmallarna tomma i GKS4 används webbtjänsterna inte.

### Förbered konton och nummerserier

* **Intäktskonton.** De fem kontona i GKS4 (Konto 25 %, 6 %, 0 %, EU och Export) ska finnas i kontoplanen, ha **Direktbokföring** (Direct Posting) aktiverad och rätt momsproduktbokföringsmall. Kombinationen med kundens bokföringsmallar ska finnas i Momsbokföringsinställningar och Bokföringsinställningar (General Posting Setup). Konton som redan används för manuella försäljningsfakturor uppfyller normalt kraven.
* **Kundnummerserie.** Nummerserien för kunder ska tillåta **Manuella nr** (Manual Nos.), eftersom GKS4 skapar kunder med GKS4:s kundnummer.
* **Fakturanummerserie.** Nummerserien för bokförda försäljningsfakturor bör vara numerisk.
* **Betalningsvillkor.** Skapas av GKS4 vid behov med datumformeln `{dagar}D`. Ett befintligt villkor med samma formel används.
* **Valutor.** Andra valutor än företagets ska finnas med valutakurser.

### Ta fram koder för bokföringsmallar

1. Öppna ett befintligt kundkort av varje typ (inrikes, EU, export) i Business Central och läs av de tre fälten under snabbfliken **Fakturering**. Koderna finns även under Inställningar → Bokföringsmallar.
2. Ange koderna i GKS4 under **Bokföringsmallar per kundtyp**, se nästa avsnitt. Ange alla tre koder på en rad, eller lämna raden tom.
3. Kontrollera att de fem intäktskontona har rätt momsproduktbokföringsmall.

### Inställningar i GKS4

Under **Fakturering > Inställningar** i GKS4 visas bara de inställningar som integrationen med Business Central använder. Sidan kräver behörighet att redigera faktureringsinställningar.

| Inställning                                   | Beskrivning                                                                                                                                                                                  |
| --------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Ekonomisystem                                 | Välj **Microsoft Dynamics 365 Business Central**.                                                                                                                                            |
| Katalog-ID (tenant)                           | Directory (tenant) ID från app-registreringen.                                                                                                                                               |
| Program-ID (klient)                           | Application (client) ID från app-registreringen.                                                                                                                                             |
| Klienthemlighet                               | Hemlighetens värde (Value), inte dess ID.                                                                                                                                                    |
| Miljö                                         | `Production` (standard) eller sandboxens namn.                                                                                                                                               |
| Företag                                       | Företagsnamnet i Business Central. Lämnas tomt när miljön har exakt ett företag.                                                                                                             |
| Konto 25 % / 6 % / 0 % / EU / Export          | Intäktskonton i Business Central, t.ex. 3051 / 3052 / 3053 / 3056 / 3055. Kontot väljs per faktura utifrån orderns momssats och kundtyp.                                                     |
| Bokföringsmallar per kundtyp                  | Tre rader (Inrikes, EU, Export) med tre koder vardera, se [Bokföringsmallar](#bokforingsmallar). Alla tre koder eller ingen per rad.                                                         |
| Uteslut alltid produktspecifikation           | Produktspecifikationen bifogas inte till någon faktura.                                                                                                                                      |
| Exkludera produktspecifikation för kundnummer | Kommaseparerad lista med kundnummer, t.ex. `1001,1002`, vars fakturor inte får produktspecifikationen bifogad. Gäller bara när inställningen ovan är avaktiverad.                            |
| Bokför                                        | Aktiverat: fakturan bokförs direkt och det bokförda fakturanumret sparas i GKS4. Avaktiverat: fakturan ligger kvar som utkast under Försäljningsfakturor och utkastets nummer sparas i GKS4. |

Testläge finns inte för Business Central. Miljön avgör var fakturorna skapas, se [Testa mot en sandbox](#testa-mot-en-sandbox).

### Testa mot en sandbox

* Skapa en sandbox i Admin Center (Miljöer → Ny → Sandbox, gärna som kopia av produktionsmiljön). Lägg till appen under Microsoft Entra Applications och publicera webbtjänsterna `GKS4CustomerCard` och `GKS4SalesInvoice` i sandboxen.
* Ange sandboxens namn som **Miljö** i GKS4. Övriga inställningar är desamma.
