MAES.Fiskal2 1.1.47

dotnet add package MAES.Fiskal2 --version 1.1.47
                    
NuGet\Install-Package MAES.Fiskal2 -Version 1.1.47
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MAES.Fiskal2" Version="1.1.47" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MAES.Fiskal2" Version="1.1.47" />
                    
Directory.Packages.props
<PackageReference Include="MAES.Fiskal2" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MAES.Fiskal2 --version 1.1.47
                    
#r "nuget: MAES.Fiskal2, 1.1.47"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MAES.Fiskal2@1.1.47
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MAES.Fiskal2&version=1.1.47
                    
Install as a Cake Addin
#tool nuget:?package=MAES.Fiskal2&version=1.1.47
                    
Install as a Cake Tool

MAES.Fiskal2

CI/CD .NET Standard NuGet NuGet Downloads

MAES.Fiskal2 je C# biblioteka za rad s hrvatskim fiskalnim posrednicima. Omogućuje zajednički sloj za slanje, dohvat i obradu ulaznih i izlaznih e-računa preko različitih posrednika.

Što projekt radi

Biblioteka definira baznu klasu Posrednik i konkretne implementacije za najčešće hrvatske fiskalne posrednike.

Podržane operacije uključuju:

  • dohvat ulaznih i izlaznih e-računa
  • dohvat UBL/XML i PDF sadržaja računa
  • evidentiranje UBL dokumenta
  • evidentiranje uplate za izlazni račun
  • odbijanje ulaznog računa

Osim toga, postoje i modeli ERacun, UlazniERacun i IzlazniERacun koji sadrže osnovne podatke o računu i pružaju jednostavne pomoćne metode za rad s njima.

Trenutno podržani posrednici

U Posrednici/ direktoriju nalaze se konkretne implementacije

Značajka / posrednik Super EPoslovanje Fina MER
Dohvat ulaznih računa
Dohvat izlaznih računa
Dohvat UBL sadržaja
Dohvat PDF sadržaja
Evidentiranje UBL dokumenta ⚠️
Evidentiranje uplate
Odbijanje računa

✅ Implementirano ⚠️ Nije testirano/Ne prolazi testove 🚧 WIP ❌ Posrednik ne podržava

Instalacija

Instalirajte paket iz NuGeta:

dotnet add package MAES.Fiskal2

Ili dodajte referencu direktno u .csproj:

<ItemGroup>
  <PackageReference Include="MAES.Fiskal2" Version="*" />
</ItemGroup>

Inicijalizacija posrednika

using MAES.Fiskal2.Posrednici;

var super = new Super
{
    IsDev = true,
    BusinessGuid = "...",
    Username = "...",
    Password = "..."
};

var ePoslovanje = new EPoslovanje
{
    IsDev = true,
    ApiKey = "..."
};

var fina = new Fina
{
    Certificate = ...
};

var mer = new MER
{
    IsDev = true,
    Username = "...",
    Password = "...",
    CompanyId = "...",
    SoftwareId = "..."
};

Primjer korištenja posrednika

// dohvat ulaznih računa u razdoblju zadnjih mj. dana
var ulazniRacuni = posrednik.UlazniListAsync(DateTime.Now.AddMonths(-1), DateTime.Now);

if(ulazniRacuni.FirstOrDefault() is UlazniERacun ulazni)
{
    // dohvat ubl stringa i pdf byteova
    string ubl = await ulazni.DohvatiUBLAsync();
    byte[] pdf = await ulazni.DohvatiPdfAsync();

    // odbija ulazni račun
    await ulazni.OdbijAsync(RazlogOdbijanja.Ostalo, "Račun odbijen radi necega");
}

// dohvat izlaznih računa u razdoblju zadnjih mj. dana
var izlazniRacuni = posrednik.IzlazniListAsync(DateTime.Now.AddMonths(-1), DateTime.Now);

if(izlazniRacuni.FirstOrDefault() is IzlazniERacun izlazni)
{
    // dohvat ubl stringa i pdf byteova
    string ubl = await izlazni.DohvatiUBLAsync();
    byte[] pdf = await izlazni.DohvatiPdfAsync();

    // evidentira uplatu za izlazni račun
    await izlazni.EvidentirajUplatuAsync(DateTime.Now, 100, ERacunNacinPlacanja.TransakcijskimRacunom);
}

// evidentiranje računa
posrednik.EvidentirajUBLAsync(ubl);

Neki posrednici nemaju podržane sve metode, neki nemaju sve fieldove u modelima tipa UlazniERacun i sl. Mora se voditi računa o tome...

Dostupne metode

Svaka metoda ima na kraju CancellationToken kojeg je poželjno postaviti, ali se može izostaviti

Abstraktna klasa Posrednik nudi sljedeće metode:

Dohvat ulaznih e-računa

  • Task<IEnumerable<UlazniERacun>> UlazniListAsync(DateTime from, DateTime to)

    Dohvaća popis ulaznih računa u vremenskom rasponu

  • Task<string> UlazniUBLAsync(string id)

    Dohvaća XML/UBL sadržaj ulaznog računa

  • Task<byte[]> UlazniPdfAsync(string id)

    Dohvaća PDF sadržaj ulaznog računa

Dohvat izlaznih e-računa

  • Task<IEnumerable<IzlazniERacun>> IzlazniListAsync(DateTime from, DateTime to)

    Dohvaća popis izlaznih računa u vremenskom rasponu

  • Task<string> IzlazniUBLAsync(string id)

    Dohvaća XML/UBL sadržaj izlaznog računa

  • Task<byte[]> IzlazniPdfAsync(string id)

    Dohvaća PDF sadržaj izlaznog računa

Operacije na računima

  • Task EvidentirajUBLAsync(string ubl)

    Evidentira UBL dokument

  • Task EvidentirajUplatuAsync(string id, DateTime datum, double iznos, NacinPlacanja nacinPlacanja)

    Evidentira uplatu za izlazni račun

  • Task OdbijRacunAsync(string id, RazlogOdbijana razlog, string opis)

    Odbija ulazni eRačun

UlazniERacun i IzlazniERacun imaju na sebi metode koje su vezane za taj specifičan e-račun (tipa izlazni ima izlazni.EvidentirajUplatuAsync, i sl.)

Modeli i enum-ovi

  • ERacun – zajednička baza za sve račune
  • UlazniERacun – ulazni račun s dodatnim statusom i metodama za odbijanje
  • IzlazniERacun – izlazni račun s dodatnim statusom i metodom za evidentiranje uplate
  • ERacunNacinPlacanja – načini plaćanja
  • UlazniERacunStatus / IzlazniERacunStatus – statusi računa
  • RazlogOdbijanja – razlozi odbijanja ulaznog računa

Dodatne informacije

Spremanje posrednika u listu

Budući da sve konkretne implementacije nasljeđuju Posrednik, možete ih spremati u običan List<Posrednik>:

using MAES.Fiskal2;
using MAES.Fiskal2.Posrednici;

var posrednici = new List<Posrednik>
{
    new Super
    {
        IsDev = true,
        BusinessGuid = "BUSINESS_GUID",
        Username = "USERNAME",
        Password = "PASSWORD"
    },
    new EPoslovanje
    {
        IsDev = true,
        ApiKey = "API_KEY"
    }
};

foreach (var posrednik in posrednici)
{
    Console.WriteLine(posrednik.GetType().Name);
}

Ovo je korisno ako želite voditi više konfiguracija posrednika u jednoj strukturi i pozivati iste metode nad njima kroz baznu klasu.

Serializacija u JSON

Biblioteka koristi System.Text.Json i baza Posrednik je označena sa JsonPolymorphic/JsonDerivedType, što znači da možete lako spremiti i učitati različite tipove posrednika u JSON.

using System.Text.Json;
using MAES.Fiskal2;
using MAES.Fiskal2.Posrednici;

var options = new JsonSerializerOptions
{
    WriteIndented = true
};

var posrednici = new List<Posrednik>
{
    new Super
    {
        IsDev = true,
        BusinessGuid = "BUSINESS_GUID",
        Username = "USERNAME",
        Password = "PASSWORD"
    }
};

string json = JsonSerializer.Serialize(posrednici, options);
File.WriteAllText("posrednici.json", json);

var loaded = JsonSerializer.Deserialize<List<Posrednik>>(json, options);

U izlaznom JSON-u bit će prisutan polje $type, pa se prilikom deserijalizacije zna točno koji konkretni tip posrednika treba vratiti.

Dodatne napomene

  • IsDev određuje koristi li se razvojno ili produkcijsko okruženje.
  • Sve glavne metode podržavaju CancellationToken kao zadnji parametar.
  • Za Fina je potreban X.509 certifikat, a podrška za dohvat računa i PDF-a nije dostupna.
  • Ako koristite ERacun objekte, možete direktno pozivati DohvatiUBLAsync() i DohvatiPdfAsync() bez da svaki put ručno prolazite kroz posrednika.

Izgradnja i pakiranje

dotnet build MAES.Fiskal2.csproj --configuration Release
dotnet pack MAES.Fiskal2.csproj --configuration Release
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.47 124 7/19/2026
1.0.46 107 7/19/2026
1.0.45 104 7/19/2026
1.0.44 101 7/18/2026
1.0.43 112 7/16/2026
1.0.42 110 7/15/2026
1.0.41 102 7/15/2026
1.0.40 101 7/15/2026
1.0.39 97 7/15/2026
1.0.38 104 7/15/2026
1.0.37 101 7/15/2026
1.0.36 126 6/12/2026
0.4.35 108 6/12/2026
0.4.34 108 6/12/2026
0.4.33 108 6/10/2026
0.4.30 124 5/30/2026
0.3.13 121 5/27/2026
0.2.10 102 5/23/2026
0.2.9 112 5/23/2026
0.2.8 110 5/23/2026
Loading failed