Erken sürüm, UJP test ortamında deneniyor
UJP'ye dertsiz e-fatura.
eFakt, UJP elektronik fatura sistemi için bir masaüstü uygulamasıdır. Windows, macOS ve Linux'ta çalışır, sizin sertifikanızla imzalar ve giden ile gelen belgeleri tek yerde tutar.
Her şey tek bakışta
Ne düzenlediğiniz ve aldığınız, KDV farkı, kararınızı bekleyenler ve hangi alıcının henüz yanıt vermediği.

Belgenin tüm süreci, tek uygulamada
Giden faturalar
- Düzenleyin
Kalemleri girin. Uygulama KDV'yi ve toplamları UJP kod listelerine göre hesaplar.
- İmzalayın
Belge, nitelikli sertifikanızla kendi bilgisayarınızda imzalanır.
- Gönderin
Fatura doğrudan UJP'ye gider. EUID, durum ve QR bağlantısı alırsınız.
- İptal edin veya düzeltin
Gönderilen fatura silinemez. Uygulama, asıl faturaya referans veren bir iptal veya düzeltme hazırlar.
Gelen faturalar
- Alın
Diğer firmaların size gönderdiği faturaları PDF ve imzalı asıl belgeyle birlikte görün.
- Kabul edin veya reddedin
Ret, UJP kod listesinden bir neden ve sizin yorumunuzla gider.
- İndirilecek KDV'yi dağıtın
İndirim hakkı için matrahı ve KDV'yi göstergeye göre girin.
Ayrıca: EDB ile mükellef arama, NBRM döviz kurları, tüm kod listeleri, durum geçmişi, PDF ve ASiC indirme.
İlk faturadan önce neye ihtiyacınız var
Uygulama, UJP portalıyla aynı bilgileri kullanır.
- Firmanızın EDB numarası.
- UJP e-Faktura sistemine erişim ve eUJP kimliğiniz.
- Nitelikli elektronik imza sertifikası: .p12 dosyası, USB token veya akıllı kart.
Sertifikanız yok mu? Mükellefleri ve kod listelerini sertifikasız da arayabilirsiniz.
İmza anahtarınız sizde kalır
İmzalama yerel olarak yapılır. Özel anahtar bilgisayarınızdan veya token'ınızdan çıkmaz; PIN kaydedilmez, yalnızca uygulama açıkken bellekte tutulur.
- .p12 veya .pfx dosyasıParola ile korunan, dosya olarak saklanan sertifika.
- USB token veya akıllı kartPKCS#11 üzerinden. Anahtar karttan çıkmaz; imzayı kartın kendisi atar.
- macOS KeychainSisteme önceden aktarılmış sertifika. Anahtarı macOS saklar.
Verileriniz sizde kalır
eFakt bir web hizmeti değil, bilgisayarınızda çalışan bir uygulamadır. Eklentiler olmadan faturalarınız, sertifikanız ve PIN'iniz bizim üzerimizden geçmez.
Faturalarınıza, alıcılarınıza, sertifikalarınıza veya parolalarınıza erişimimiz yoktur.
- Bize ait sunucu yok
Bizde hesap yok, belgelerinizin geçtiği bir sunucu da yok. Uygulama yerel olarak çalışır. Yalnızca açtığınız eklentiler (yedekleme, yapay zekâ, e-posta) ihtiyaç duydukları verileri bize gönderir.
- Belgeler yalnızca UJP'ye gider
Faturalar ve imzalar yalnızca efaktura.ujp.gov.mk'ye gider. Bize yalnızca lisans kontrolü ve günlük kullanım sayıları ulaşır; tutar, ad veya içerik yoktur. Sayıları Ayarlar'dan kapatabilirsiniz.
- Anahtar karttan çıkmaz
Belgeler bilgisayarınızda imzalanır. USB token veya akıllı kartla özel anahtar cihazdan asla çıkmaz.
- PIN kaydedilmez
PIN ve parola yalnızca uygulama kilidi açıkken bellekte tutulur; kilitlediğinizde veya kapattığınızda silinir. Hiçbir yere yazılmaz.
- Faturalarınız sizde kalır
Gönderdiğiniz ve aldığınız her belge, durumları, PDF'i ve geçmişiyle birlikte bizde değil, bilgisayarınızdaki yerel bir veritabanında saklanır. UJP yanıt vermediğinde de onları görebilirsiniz.
Kendi dilinizde
Uygulama Makedoncadır; İngilizce, Arnavutça, Sırpça ve Türkçe de desteklenir. Dil menüden, yeniden başlatmadan değiştirilir.
Aynı SDK, sizin yazılımınız için
Uygulamanın UJP'ye yaptığı her çağrı SDK'mız üzerinden geçer: imzalama, gönderme, listeler, iptaller, düzeltmeler ve kod listeleri. Kendi ERP veya muhasebe yazılımınız varsa aynı SDK'yı satın alıp ona ekleyebilirsiniz.
Rust, TypeScript, Python, PHP, .NET, Java ve Go için SDK'lar — kılavuzlar ve örnekler geliştirici sayfasında.
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);Erken sürümü deneyin
Uygulama şu anda UJP test ortamında deneniyor. Firmanızla denemek isterseniz bize yazın.
- Windows
- macOSApple Silicon ve Intel
- Linux