еФакт™
Српски

Рана верзија, тестира се на тест окружењу УЈП-а

Е-фактура до УЈП без главобоље.

еФакт је десктоп апликација за систем електронских фактура УЈП-а. Ради на Windows-у, macOS-у и Linux-у, потписује вашим сертификатом и чува излазна и улазна документа на једном месту.

Све на један поглед

Колико сте издали и примили, разлика у ПДВ-у, шта чека вашу одлуку и који купац још није одговорио.

Екран „Преглед“ у еФакту: збир издатих и примљених фактура, разлика у ПДВ-у, графикон по данима, документи који чекају одговор и највећи купци.
Демо режим са измишљеним подацима. Апликација је доступна и на српском.

Цео ток документа, у једној апликацији

Излазне фактуре

  1. Издајте

    Унесите ставке. Апликација обрачунава ПДВ и збирове према шифарницима УЈП-а.

  2. Потпишите

    Документ се потписује на вашем рачунару, вашим квалификованим сертификатом.

  3. Пошаљите

    Фактура иде директно УЈП-у. Добијате EUID, статус и QR линк.

  4. Сторнирајте или кориговајте

    Послата фактура се не брише. Апликација припрема сторно или корекцију са референцом на оригинал.

Улазне фактуре

  1. Примите

    Видите фактуре које су вам послале друге фирме, са PDF-ом и оригиналним потписаним документом.

  2. Прихватите или одбијте

    Одбијање иде са разлогом из шифарника УЈП-а и вашим коментаром.

  3. Расподелите улазни ПДВ

    Уносите основицу и ПДВ по индикатору, за право на одбитак.

Такође: претрага пореских обвезника по ЕДБ-у, курсна листа НБРСМ, сви шифарници, историја статуса и преузимање PDF-а и ASiC-а.

Шта вам треба пре прве фактуре

Апликација користи исте податке као и портал УЈП-а.

  • ЕДБ фирме.
  • Приступ систему е-Фактура УЈП-а и ваш еУЈП идентификатор.
  • Квалификовани сертификат за електронски потпис: датотека .p12, USB токен или смарт картица.

Немате сертификат? Обвезнике и шифарнике можете претраживати и без њега.

Кључ за потпис остаје код вас

Потписивање се ради локално. Приватни кључ не напушта ваш рачунар или токен, а PIN се не чува: постоји у меморији само док је апликација отворена.

Ваши подаци остају код вас

еФакт је апликација на вашем рачунару, а не веб-сервис. Без додатака, фактуре, сертификат и PIN не пролазе кроз нас.

Немамо приступ вашим фактурама, купцима, сертификатима ни лозинкама.

На вашем језику

Апликација је на македонском, са енглеским, албанским, српским и турским. Језик се мења из менија, без поновног покретања.

За програмере

Исти SDK, за ваш софтвер

Сваки позив апликације ка УЈП-у иде преко нашег SDK-а: потписивање, слање, листе, сторно, корекције и шифарници. Ако имате свој ERP или рачуноводствени софтвер, исти SDK можете да купите и да га уградите у њега.

SDK за Rust, TypeScript, Python, PHP, .NET, Java и Go — упутства и примери на страници за програмере.

Слање фактуре USB токеном
import { UjpClient, Pkcs11Signer } from "@rid/efakt";

const signer = await Pkcs11Signer.open({
  module: "/usr/lib/opensc-pkcs11.so",
  pin,
});

const ujp = new UjpClient({
  environment: "test",
  edb, eujpId,
  signer,
});

const sent = await ujp.sendInvoice(invoice);
console.log(sent.euid, sent.qrLink);
from efakt import Environment, Pkcs11Signer, UjpClient

signer = Pkcs11Signer.open(
    module="/usr/lib/opensc-pkcs11.so",
    pin=pin,
)

ujp = UjpClient(
    environment=Environment.TEST,
    edb=edb, eujp_id=eujp_id,
    signer=signer,
)

sent = ujp.send_invoice(invoice)
print(sent.euid, sent.qr_link)
<?php
use Rid\Efakt\{Environment, Pkcs11Signer, UjpClient};

$signer = Pkcs11Signer::open(
    module: '/usr/lib/opensc-pkcs11.so',
    pin: $pin,
);

$ujp = new UjpClient(
    environment: Environment::Test,
    edb: $edb, eujpId: $eujpId,
    signer: $signer,
);

$sent = $ujp->sendInvoice($invoice);
echo $sent->euid, ' ', $sent->qrLink;
using Rid.Efakt;
using Rid.Efakt.Signing;

using var signer = Pkcs11Signer.Open(
    module: "/usr/lib/opensc-pkcs11.so",
    pin: pin);

var ujp = new UjpClient(new ClientConfig
{
    Environment = UjpEnvironment.Test,
    Edb = edb, EujpId = eujpId,
    Signer = signer,
});

var sent = await ujp.SendInvoiceAsync(invoice);
Console.WriteLine($"{sent.Euid} {sent.QrLink}");
import mk.rid.efakt.*;

var signer = Pkcs11Signer.open(
    "/usr/lib/opensc-pkcs11.so", pin);

var ujp = UjpClient.builder()
    .environment(Environment.TEST)
    .edb(edb).eujpId(eujpId)
    .signer(signer)
    .build();

var sent = ujp.sendInvoice(invoice);
System.out.println(sent.euid() + " " + sent.qrLink());
signer, err := efakt.OpenPKCS11(efakt.PKCS11{
	Module: "/usr/lib/opensc-pkcs11.so",
	PIN:    pin,
})
if err != nil {
	return err
}

ujp := efakt.NewClient(efakt.Config{
	Environment: efakt.Test,
	EDB:         edb,
	EUJPID:      eujpID,
	Signer:      signer,
})

sent, err := ujp.SendInvoice(ctx, invoice)
if err != nil {
	return err
}
fmt.Println(sent.EUID, sent.QRLink)
let signer = SignerSource::Pkcs11 {
    module: "/usr/lib/opensc-pkcs11.so".into(),
    slot_id: None,
    object_id_hex: None,
}.open(&pin)?;

let ujp = UjpClient::new(ClientConfig {
    environment: Environment::Test,
    edb, eujp_id,
    ..Default::default()
})?.with_signer(signer)?;

let sent = ujp.send_invoice(invoice).await?;
println!("{:?} {:?}", sent.euid, sent.qr_link);

Испробајте рану верзију

Апликација се тренутно тестира на тест окружењу УЈП-а. Пишите нам ако желите да је испробате са вашом фирмом.

  • Windows
  • macOSApple Silicon и Intel
  • Linux