Апликативни интрфејс (API) - најчешћа питања
- Који су технички захтеви за firewall? За компаније са интерним мрежама, чест је упит за тачне IP адресе и портове којима МАТП и МАКС апликације приступају како би се омогућила комуникација кроз корпоративни firewall.
Одговор:
Не постоји експлицитан списак IP адреса и портова који је наведен као захтев за подешавање корпоративног firewall-а.
Систем еОтпремница је имплементиран као централизована платформа у „Cloud” окружењу. То подразумева да апликације комуницирају са централним серверима путем стандардних интернет протокола.
Приступ свим апликацијама је интегрисан са Порталом за електронску идентификацију - еИД, који обезбеђује Канцеларија за ИТ и еУправу. За успешно логовање, неопходно је омогућити комуникацију ка домену eid.gov.rs.
За несметан рад апликација кроз корпоративну мрежу обично је потребно дозволити саобраћај на порту 443 (HTTPS) ка доменима:
- eotpremnica.mfin.gov.rs
- efaktura.mfin.gov.rs
- api.eotpremnica.mfin.gov.rs
- auth.sef.mfin.gov.rs
За субјекте које интегришу своје ERP системе, комплетна документација је доступна на порталу https://eotpremnica.efaktura.gov.rs , као и у оквиру корисничког интерфејса, у оквиру Подешавања – API подешавања – Админ модул – API кључеви, за све приступне тачке (endpoint) и где се налази кључ за аутентификацију.
Систем користи XML структуре и UBL (Universal Business Language) синтаксу за размену докумената.
- Да ли ће бити омогућено масовно штампање и извоз (export) листа отпремница у Excel са свим статусима и да ли је коначна одлука да се PDF више не налази у "envelope -у" већ се мора преузимати посебним API позивом?
Одговор:
Логика увођења електронске отпремнице је да се генерално смањи штампање докумената, те би омогућавање масовног штампања било у супротности са оним што би требало постићи овим системом, а то је дигитализација процеса транспорта.
Извоз листа отпремница у фајл ће бити омогућена.
Што се тиче PDF документа, он се налази у „envelope-у“ и тако ће и остати.
- Како послати догађај Почетак вожње преко API-ја без прилагања скенираног документа, с обзиром на то да систем и даље враћа грешку да је фајл обавезан и ако је најављено да неће бити?
Одговор:
Могуће је послати почетак вожње преко API-ја без прилагања скенираног документа, како је и најављено.
- Када ће бити доступан API позив који омогућава директно добијање ID-а отпремнице на основу requestId, како би се избегло заморно парсирање свих дневних промена само да би се пронашао један документ?
Одговор:
Наведени API позив је већ доступан. У питању је: /public/documents/requests/changes. Уколико се унесе параметар requestId и одговарајући датум као одговор се добијају промене за прослеђени requestId. У одговору, између осталог, је и documentId уколико је обрада прошла успешно и креиран је документ у систему.
Поруке грешака
- InvalidDespatchAdviceStatus - неисправан статус отпремнице за жељену акцију.
Погрешан статус отпремнице приликом покушаја следеће акције.
Неправилно:
- Покушавати акцију сторнирања отпремнице након физичког пријема,
- Слати пријемницу пре физичког пријема,
- Вршити промену возила након почетка вожње и наредних статуса (физички пријем, усаглашено).
- DocumentNumberAlreadyExists - покушај слања документа са истим бројем који је већ регистрован на Систему еОтпремница за компанију на којој се ради.
- XML incorrect: cvc-complex-type.2.4.b: The content of element u0027sbt:ShipmentMethodu0027 is not complete. One of u0027{u0022urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2u0022:ShipmentMethodType}u0027 is expected - недостатак целог тага и вредности унутар XML фајла за отпремницу - ShipmentMethodType
- ReceiverCompanyStatusNotActive - покушај слања документа ка компанији која још нема активиран модул еОтпремница - неактивна компанија.
- ActualDeliveryDate is missing - недостатак обавезног поља за Стварни датум отпреме у XML фајлу отпремнице.
- ReceivedQuantity must be greater than or equal to RejectedQuantity - ReceivedQuantity означава количину која је пристигла приликом отпреме, док је rejectedQuantity количина која је одбијена приликом пријема, тј. враћена.
Разлика ове две количине износи прихваћену количину. Стога, ReceivedQuantity не може бити већа количина од RejectedQuantity, јер не можемо одбити више него што је пристигло.
- XML incorrect: cvc-datatype-valid.1.2.1: u0027u0027 is not a valid value for u0027decimalu0027 - погрешна вредност за поље које је типа децимал (то су следећи подаци на отпремници: запремина, тежина, код кафе грамажа, код алкохола литража и код нафте густина).
- ReferencedDocumentNotFound - неки од података референцираног документа није у складу са записом на систему, тј. са самим референцираним документом.
Неопходно је да подаци о референцираном документу, тј. о броју референцираног документа (под тагом ID), датум издавања референцираног документа (под тагом IssueDate) и издаваоц референцираног документа (под тагом IssuerParty) буду исправни.
Код почетка вожње, промене возила, физичког пријема, сторнирања и креирања пријемнице, референцирани документ је отпремница, док је код прихватања и одбијања пријемнице референцирани документ пријемница.
- AdditionalItemProperty/Value is missing for excise goods - недостатак обавезног податка о акцизној роби (нпр: за тип акцизне категорије Алкохол прослеђена је категорија, али не и податак о литражи).
- ActualDespatchDateCannotBeEarlierThanIssueDate - стварни датум отпреме не може бити у прошлости, тј. не може бити пре датума издавања, који мора бити текући датум.
- IssueDateDoesNotMatchCurrentCalendarDate - датум издавања документа не може бити у прошлости, тј. мора бити текући датум по временској зони Републике Србије.
- DeliveredQuantity/unitCode attribute is missing - код количина и на отпремници и на пријемници обавезни подаци су атрибути који носе информацију о јединици мере.
13. SenderNotActiveCarrier - за почетак вожње путем API интеграција, од стране превозника, неопходно је да компанија има активан статус превозника унутар еОтпремнице. У супротном, Систем еОтпремнице не препознаје компанију као превозника и не дозвољава ову акцију.
- StandardItemIdentification/ID is empty - ако постоји таг StandardItemIdentification и његов подтаг ID, он мора бити попуњен.
- AdditionalItemProperty/Value is empty for excise goods - недостатак обавезног податка о акцизној роби (нпр. за тип акцизне категорије Алкохол прослеђена је категорија, прослеђен је и таг за литражу, али је вредност поља Value празна, тј. под тагом Value нема вредности).
- DespatchLine/ID is not sequential starting from 1 - код ставки отпремнице, ID-еви морају почети од 1 и итеративно се повећавати.
- EstimatedDeliveryPeriodEndDateCannotBeEarlierThanIssueDate - планирано време завршетка отпреме не може бити у прошлости, тј. не може бити пре датума издавања, који мора бити текући датум.
- EstimatedDeliveryPeriod/EndDate and EstimatedDeliveryPeriod/EndTime are not after EstimatedDespatchDate and EstimatedDespatchTime when tobacco products are present - код дуванских производа, тј. када на отпремници постоје ставке које су означене као акцизни производи категорије Дуван обавезан податак је Планирани датум и време почетка отпреме. Наведени датум не може бити након Планираног датума и времена завршетка отпреме.
- LoadingPortLocation/Description is missing when there are multiple Shipment stages - податак о месту утовара код фазе отпреме је обавезан када постоји више фаза отпреме.
- StandardItemIdentification/ID does not contain only digits - податак о ГТИН-у мора садржати само цифре уколико је попуњен. Укупно може имати највише 14 цифара.
- ReceiverCompanyNotFoundByJbkjsIdentifier – компанија која је прималац није препозната по подацима који су унети у XML фајл, конкретно ЈБКЈС податак није унет исправно.
- CannotSendDocumentOnBehalfOfOtherCompany - није могуће слати документа у име друге компаније. До овог случаја долази коришћењем API кључа једне компаније, док се у прослеђеном XML-у наводе подаци друге компаније. Систем препознаје компанију на основу API кључа са којим се представља.
- StreetName is empty - податак о називу улице је обавезан на свим местима где се уносе подаци о адресама (Адресе компаније пошиљаоца, примаоца, превозника, адреса отпреме и адреса одредишта).
- PartyLegalEntity/CompanyID is missing - податак CompanyID унутар тага PartyLegalEntity је обавезан на свим местима где се уносе подаци о компанији (Компанија пошиљаоца, примаоца и превозника).
- LicensePlateID is empty - податак о регистарском броју возила је обавезан за начине отпреме Сопствени превоз, Превозник и Превоз примаоца.
- CityName is missing - податак о називу места је обавезан на свим местима где се уноси адреса (Адресе компаније пошиљаоца, примаоца, превозника, адреса отпреме и адреса одредишта).
- For ShipmentMethodType 1, 2 or 3: CarrierParty is missing - код начина отпреме Сопствени превоз, Превозник и Превоз примаоца подаци о Превознику су обавезни.
- EstimatedDeliveryPeriod/EndDate and EstimatedDeliveryPeriod/EndTime are not after EstimatedDespatchDate and EstimatedDespatchTime - податак Планирани датум и време почетка отпреме не може бити након Планираног датума и времена завршетка отпреме.
- ReceiverCompanyNotFoundByVatIdentifier – компанија која је прималац није пронађена по подацима који су унети у XML фајл. Унет је погрешан ПИБ.
- TransportationAlreadyStarted - за једну отпремницу само једном може да се започне вожња. Уколико се покуша поново иста акција систем ће пријавити грешку.
- For ShipmentMethodType 1, 2 or 3: TransportMeans is missing - код начина отпреме Сопствени превоз, Превозник и Превоз примаоца подаци у пољу TransportMeans су обавезни.
- EndpointID is empty - податак EndpointID не може бити празан код података о компанијама.