Рана верзија, тестира се на тест окружењу УЈП-а
Е-фактура до УЈП без главобоље.
еФакт је десктоп апликација за систем електронских фактура УЈП-а. Ради на Windows-у, macOS-у и Linux-у, потписује вашим сертификатом и чува излазна и улазна документа на једном месту.
Све на један поглед
Колико сте издали и примили, разлика у ПДВ-у, шта чека вашу одлуку и који купац још није одговорио.

Цео ток документа, у једној апликацији
Излазне фактуре
- Издајте
Унесите ставке. Апликација обрачунава ПДВ и збирове према шифарницима УЈП-а.
- Потпишите
Документ се потписује на вашем рачунару, вашим квалификованим сертификатом.
- Пошаљите
Фактура иде директно УЈП-у. Добијате EUID, статус и QR линк.
- Сторнирајте или кориговајте
Послата фактура се не брише. Апликација припрема сторно или корекцију са референцом на оригинал.
Улазне фактуре
- Примите
Видите фактуре које су вам послале друге фирме, са PDF-ом и оригиналним потписаним документом.
- Прихватите или одбијте
Одбијање иде са разлогом из шифарника УЈП-а и вашим коментаром.
- Расподелите улазни ПДВ
Уносите основицу и ПДВ по индикатору, за право на одбитак.
Такође: претрага пореских обвезника по ЕДБ-у, курсна листа НБРСМ, сви шифарници, историја статуса и преузимање PDF-а и ASiC-а.
Шта вам треба пре прве фактуре
Апликација користи исте податке као и портал УЈП-а.
- ЕДБ фирме.
- Приступ систему е-Фактура УЈП-а и ваш еУЈП идентификатор.
- Квалификовани сертификат за електронски потпис: датотека .p12, USB токен или смарт картица.
Немате сертификат? Обвезнике и шифарнике можете претраживати и без њега.
Кључ за потпис остаје код вас
Потписивање се ради локално. Приватни кључ не напушта ваш рачунар или токен, а PIN се не чува: постоји у меморији само док је апликација отворена.
- Датотека .p12 или .pfxСертификат сачуван као датотека, заштићен лозинком.
- USB токен или смарт картицаПреко PKCS#11. Кључ не излази са картице, она сама потписује.
- macOS KeychainСертификат већ увезен у систем. Кључ чува macOS.
Ваши подаци остају код вас
еФакт је апликација на вашем рачунару, а не веб-сервис. Без додатака, фактуре, сертификат и PIN не пролазе кроз нас.
Немамо приступ вашим фактурама, купцима, сертификатима ни лозинкама.
- Без нашег сервера
Нема налога код нас ни сервера преко ког пролазе ваша документа. Апликација ради локално. Само додаци које укључите (резервна копија, AI, е-пошта) шаљу нам оно што им треба.
- Документа иду само УЈП-у
Фактуре и потписи иду само на efaktura.ujp.gov.mk. До нас стижу само провера лиценце и дневни бројеви коришћења, без износа, имена и садржаја. Бројеви се искључују у Подешавањима.
- Кључ не напушта картицу
Документа се потписују на вашем рачунару. Са USB токеном или паметном картицом приватни кључ никада не излази из уређаја.
- PIN се не чува
PIN и лозинка се држе само у меморији док је апликација откључана и бришу се закључавањем или затварањем. Не записују се нигде.
- Фактуре остају код вас
Сваки послати и примљени документ, са статусима, PDF-ом и историјом, чува се у локалној бази на вашем рачунару, а не код нас. Када УЈП не одговара, и даље их видите.
На вашем језику
Апликација је на македонском, са енглеским, албанским, српским и турским. Језик се мења из менија, без поновног покретања.
Исти SDK, за ваш софтвер
Сваки позив апликације ка УЈП-у иде преко нашег SDK-а: потписивање, слање, листе, сторно, корекције и шифарници. Ако имате свој ERP или рачуноводствени софтвер, исти SDK можете да купите и да га уградите у њега.
SDK за Rust, TypeScript, Python, PHP, .NET, Java и Go — упутства и примери на страници за програмере.
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