Tok rada: eTransport + eFactura — Usklađenost sa ANAF-om
Uključeni moduli: eTransport · Fakturisanje (eFactura) · Fakture · Magacin (Otpremnice — opciona referenca)
Ko ga koristi: Finansije · Računovodstvo · Logistika
Tipično trajanje: eTransport = pre polaska · eFactura = na dan izdavanja ili automatski posle N dana
Pregled
CRMConnect pokriva obe ANAF obaveze za kompanije u Rumuniji:
| Obaveza | Modul | Okidač |
|---|---|---|
| e-Transport (RO-e-Transport) | etransport |
Ručno — korisnik popunjava pre polaska |
| e-Faktura (RO e-Faktura) | billing → kontroler Efactura |
Ručno (dugme na fakturi) ili automatski putem crona |
Arhitekturalna napomena: Oba sistema komuniciraju kroz CRMConnect posrednik (
https://einvoice.crmconnect.ro/api/e-factura/), ne direktno sa ANAF-om. ANAF OAuth token se čuva na CRMConnect serveru, ne lokalno. Autentifikacija se vrši jednom nahttps://einvoice.crmconnect.ro/e-factura/auth.
eTransport se ne generiše automatski kada se kreira otpremnica ili narudžbenica. Korisnik ručno popunjava deklaraciju, sa opcijom odabira postojećih otpremnica/faktura kao reference.
Dijagram toka
[POČETNO PODEŠAVANJE — admin, samo jednom]
│
├── Podešavanja → Opšte: company_vat (PIB kompanije), instance_id (CRMConnect nalog)
├── Podešavanja → default_country = Rumunija (142) ← uslov za meni eFactura
├── Autorizacija ANAF tokena: https://einvoice.crmconnect.ro/e-factura/auth
│ (SPV ANAF prijava, token se čuva na CRMConnect proxy-ju)
└── Bankarstvo: barem jedan konfigurisani bankovni račun (IBAN) u Fakturisanje → Banke
│
↓
════════════════════════════════════════════
E-TRANSPORT (pre polaska)
════════════════════════════════════════════
│
├── [Opciono] Kreiranje otpremnice u Magacinu ili Narudžbenice
│
├── eTransport → Dokumenti → Dodaj deklaraciju
│ ├── Tip operacije (iz tabele tipuri_operatii)
│ ├── Poslovni partner (klijent ili dobavljač)
│ ├── Vozilo: registarski broj (+ prikolica 1/2 opciono)
│ ├── Datum transporta (open_till)
│ ├── Transportovana roba: NC tarifni kod, JM, količina, težina, vrednost
│ ├── Ruta: polazak (okrug+adresa / carinski ured / granični prelaz) + odredište
│ └── Transportni dokumenti: otpremnica/faktura (tip, serija, broj, datum) ← opciona referenca
│
├── Početni status: Nije poslato (3)
├── Dugme "Pošalji na eTransport" → POST na einvoice.crmconnect.ro/generate-xml
│ → Odgovor: indexIncarcare (upload_index) + uit (UIT kod)
│ → Status postaje: U obradi (0)
├── Provera statusa: Uzmi status → endpoint transport-status
│ → Status postaje: Prihvaćeno (1) ili Greška (2)
│
├── Po potrebi: Izmena vozila (send_modif_vehicul → type:'modifVehicul')
└── Po potrebi: Brisanje deklaracije (type:'stergere' sa postojećim UIT)
│
↓
════════════════════════════════════════════
E-FAKTURA (pri izdavanju ili automatski)
════════════════════════════════════════════
│
├── Kreirana faktura → automatska provera prihvatljivosti:
│ ✓ Valuta = RON (currency_id = 3)
│ ✓ Zemlja klijenta = Rumunija (cod_tara_client = 'RO')
│ ✓ Status fakture ≠ otkazana, ≠ nacrt
│
├── Put A — Ručno: dugme "Pošalji eFactura" na fakturi
│ → POST /billing/efactura/send_invoice/{id}
│ → estatus = 'trimis'
│
└── Put B — Automatski (cron): autosend_efactura = 1
→ bira fakture: estatus IS NULL AND eindex IS NULL
AND datum = danas - autosend_efactura_days (podrazumevano 3 dana)
→ limit 1 po pokretanju crona
│
↓
[ANAF OBRADA]
│
├── estatus = 'in prelucrare' (ANAF obrađuje)
├── Cron sinhronizacija: proverava do 10 faktura po pokretanju
│ → estatus = 'ok' (prihvaćeno) ili 'nok' (odbijeno)
└── Kod 'nok': preuzimanje ZIP arhive sa greškama (endpoint download-invoice)
│
↓
[UVOZ PRIMLJENIH FAKTURA — opciono]
│
├── Cron: sync_efactura_invoices() svakih autoimport_efactura_interval sati
├── Proverava endpoint company-messages (filtrira P i R)
└── Automatski uvozi fakture dobavljača u Nabavka → Fakture dobavljača
[DEKLARACIJE ZAVRŠENE ✓ · FAKTURE PRIHVAĆENE OD STRANE ANAF ✓]
Korak po korak
1. Početno podešavanje (admin)
1a. Opšta podešavanja
Gde: /admin/settings → Opšta podešavanja
| Polje | Opis |
|---|---|
company_vat |
PIB kompanije (sa ili bez prefiksa RO — kod automatski uklanja pri slanju) |
instance_id |
UUID CRMConnect naloga (generisan pri registraciji) |
customer_default_country |
Mora biti postavljeno na 142 (Rumunija) — bez ovoga, sve eFactura stranice vraćaju 404 |
1b. Autorizacija ANAF tokena
Idite na:
https://einvoice.crmconnect.ro/e-factura/auth?company_id={instance_id}&fiscal_code={PIB}&partner_id=2
Bićete preusmereni na SPV ANAF za autentifikaciju digitalnim sertifikatom ili SPV korisničkim imenom i lozinkom. Dobijeni token se čuva na CRMConnect serveru — ne zahteva ručnu obnovu ako veza ostane aktivna.
Možete proveriti status tokena iz: Fakturisanje → eFactura → Podešavanja → Proveri ANAF token.
1c. Bankovni račun (za eFacturu)
Gde: /admin/billing → Banke → Dodaj bankovni račun
IBAN se pojavljuje u XML datoteci e-Fakture. Bez barem jednog konfigurisanog računa, generisani XML ne uključuje bankarske podatke.
1d. Test vs. produkcijski mod
Gde: /admin/billing → eFactura → Podešavanja → einvoice_test_mode
1= koristihttps://deveinvoice.crmconnect.ro/api/e-factura/(sandbox)0= produkcija (podrazumevano nakon završetka podešavanja)
2. Deklaracija eTransport
Gde: /admin/etransport → Dokumenti → Dodaj
2a. Tipovi operacija
Tip operacije određuje obavezna polja i da li se zahteva prethodno obaveštenje (previous_notifications = true → polje notificareAnterioara postaje obavezno).
Obavezna polja:
| Polje | Opis |
|---|---|
operation_type |
Kod operacije (iz tbletransport_tipuri_operatii) |
id_client / id_provider |
Poslovni partner (klijent ili dobavljač) |
vehicle_registration_number |
Registarski broj vozila |
open_till |
Datum transporta |
Transportovana roba (barem jedna):
| Polje | Opis |
|---|---|
tariff_code |
NC tarifni kod (iz tbletransport_cod_tarifar_nc) |
operation_purpose |
Kod svrhe operacije (iz etransport_documente_scopuri_operatii) |
unit_of_measure |
ANAF kod jedinice mere |
quantity |
Količina |
total_net_weight / total_gross_weight |
Težine (kg) |
unit_price_without_vat |
Jedinična cena bez PDV-a |
currency |
Kod valute (npr. RON) |
Ruta (polazak + odredište obavezni):
Svaka tačka rute je jedno od: adresa (okrug + mesto + ulica) / carinski ured (kod iz tbletransport_list_birou_vamal) / granični prelaz (kod iz tbletransport_list_ptf).
Transportni dokumenti (barem jedan):
| Polje | Opis |
|---|---|
type_document |
Kod tipa dokumenta (iz tbletransport_list_tip_document) |
document_series_and_number |
Serija i broj |
date_document |
Datum dokumenta |
2b. Statusi deklaracije eTransport
status |
Oznaka | Značenje |
|---|---|---|
3 |
Nije poslato | Kreirano lokalno, nije poslato ANAF-u |
0 |
U obradi | Poslato, ANAF obrađuje |
1 |
Prihvaćeno | Prihvaćeno od ANAF-a (UIT aktivan) |
2 |
Greška | Odbijeno od ANAF-a |
Važnost UIT-a (uit_valability — prikaz):
| Vrednost | Značenje |
|---|---|
2 |
Aktivan |
0 |
Ističe danas |
3 |
Istekao |
1 |
Neaktivan |
2c. Izmena vozila nakon slanja
Ako se vozilo promeni nakon što je UIT izdat, koristite dugme Izmeni vozilo — šalje type: 'modifVehicul' sa novim registarskim brojem i postojećim UIT-om.
3. Slanje eFacture
Gde: faktura → dugme Pošalji eFacturu ILI automatski putem crona
3a. Uslovi prihvatljivosti (proveravaju se pri slanju)
| Uslov | Detalj |
|---|---|
| Valuta RON | invoices.currency = 3 — fakture u drugim valutama se ne mogu slati |
| Klijent iz Rumunije | cod_tara_client = 'RO' — klijenti iz drugih zemalja su isključeni |
| Važeći status | Faktura nije otkazana niti u statusu nacrta |
| Aktivan token | ANAF token mora biti važeći na proxy-ju |
3b. Statusi eFacture
estatus |
Značenje |
|---|---|
NULL |
Nije poslato |
'trimis' |
Poslato, čeka potvrdu |
'in prelucrare' |
ANAF obrađuje |
'ok' |
Prihvaćeno od ANAF-a |
'nok' |
Odbijeno od ANAF-a — preuzmite arhivu sa greškama |
3c. Automatsko slanje putem crona
Gde: /admin/billing → eFactura → Podešavanja
| Opcija | Opis |
|---|---|
autosend_efactura |
1 = omogući automatsko slanje |
autosend_efactura_days |
Dani od izdavanja do automatskog slanja (podrazumevano: 3) |
Cron šalje maksimalno 1 fakturu po pokretanju u automatskom modu. Odbijene fakture (nok) se ne šalju automatski ponovo — potrebna je ručna intervencija.
3d. Uvoz faktura dobavljača iz SPV-a
Gde: /admin/billing → eFactura → Podešavanja → autoimport_efactura_interval (sati)
Cron upituje SPV inbox i automatski uvozi fakture primljene od dobavljača u Nabavka → Fakture dobavljača. Radi nezavisno od slanja eFacture.
Potrebne dozvole
| Akcija | Uslov |
|---|---|
| eTransport — pregled/kreiranje/izmena | Dozvole modula etransport |
| eFactura — ručno slanje | Pristup modulu billing + faktura koja se može menjati |
| eFactura — podešavanja (autosend, interval) | is_admin() |
| Verifikacija ANAF tokena | is_admin() |
Podešavanje customer_default_country |
is_admin() |
Česte greške
| Problem | Uzrok | Rešenje |
|---|---|---|
| Meni eFactura se ne pojavljuje | customer_default_country ≠ 142 |
Postavite podrazumevanu zemlju na Rumuniju u Podešavanjima → Opšte |
| ANAF token istekao | OAuth token nije obnovljen na proxy-ju | Ponovo autorizujte na https://einvoice.crmconnect.ro/e-factura/auth |
| Faktura odbijena pri slanju (valuta) | Faktura nije u RON | Izdajte fakturu u RON ili ručno konvertujte |
| UIT istekao pre transporta | Deklaracija nije poslata/prihvaćena na vreme | Kreirajte novu deklaraciju sa novim UIT-om |
eFactura nok od ANAF-a |
Greške XML validacije (netačan PIB, nedostaje poreski kod, itd.) | Preuzmite ZIP arhivu sa greškama → ispravite fakturu → ručno pošaljite ponovo |
| Autosend ne šalje | Cron neaktivan ili autosend_efactura_days nije dostignut |
Proverite cron posao + podešavanje broja dana |
| Fakture dobavljača se ne uvoze | autoimport_efactura_interval = 0 ili token nevažeći |
Postavite interval > 0 i proverite token |
Reference modula
- Fakture — standardne fakture
- Magacin — Otpremnice — otpremnice (opciona referenca u eTransportu)
- Nabavka — Fakture dobavljača — fakture dobavljača uvezene iz SPV-a
- Integracije — eFactura — podešavanja integracije