{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"f5062ee7-f656-420b-b9c4-79e0dee025d3","name":"Wings\\Net2","description":"WingsNet je servis za slanje elektronskih pošiljki preko HTTPS/RESTful API servisa.\n\nServis prepoznaje dva nivoa autorizacije:\n\n- ROLE_USER - korisnici softvera preko kojeg posredno vrše slanje i prijem pošiljki. Grupu korisnika određenog softvera nazivamo Mrežom korisnika (Network).\n    \n- ROLE_NETWORK_ADMIN - proizvođači softvera koji implementira interfejs za slanje i prijem pošiljki. Upravljaju korisničkim nalozima svoje mreže korisnika (Network administratori).\n    \n\n# Autorizacija\n\nKorišćenjem mejla i šifre dobija se token koji se kasnije koristi kod pozivanja servisa. Za početak pozovete servis za login:\n\n```\nPOST api/v0/login HTTP 1.1\nRequest Body:\n{\n  \"email\": \"testing@wings.rs\",\n  \"password\": \"5omeRandomPassword\"\n}\n\n ```\n\nKao rezultat dobijate token koji važi 24 časa:\n\n``` json\nHTTP 200 OK\n{\n  \"data\":  {\n    \"headers\":  {\n      \"X-Auth-Token\":  \"eyJjbGllbnRJZCI6IjljMTE1NDYj0n35NTYtMTFlYS04ZDE2LTAyNDJhYzE5MDAwMiJ9.feb15bae220cd0d366f53688b1f000265b4defddbc5c1d5474fc4ee711ed3480\"\n      }\n    }\n}\n\n ```\n\nDobijeni token dalje koristite kao autorizaciju zahteva koje šaljete na servis, na primer:\n\n```\nGET api/v0/me HTTP 1.1\nRequest Headers:\nX-Auth-Token: \"eyJjbGllbnRJZCI6IjljMTE1NDYj0n35NTYtMTFlYS04ZDE2LTAyNDJhYzE5MDAwMiJ9.feb15bae220cd0d366f53688b1f000265b4defddbc5c1d5474fc4ee711ed3480\"\n\n ```\n\n# Upravljanje korisnicima\n\n## (ROLE_NETWORK_ADMIN)\n\nKod kreiranja korisnika neophodno je navesti mejl adresu i PIB korisnika. Ova mejl adresa ne mora biti mejl koji je korisnik predvideo za prijem pošiljki, ali ako će u softveru biti ponuđena mogućnost učitavanja primljenih dokumenata onda i za tu mejl adresu mora postojati korisnički nalog. Ukoliko korisnik softvera prima pošiljke za više pravnih subjekata na istu mejl adresu, može se koristiti PIB (definisan kao PIB primaoca pri slanju pošiljke) radi filtriranja primljenih pošiljki.\n\nPrilikom svake registracije korisnika šalje se verifikacioni link, korisnik mora verifikovati svoju mejl adresu klikom na verifikacioni link čime se aktivira korisnički nalog. Moguće je i naknadno promeniti mejl za autorizaciju kada će servis poslati novi verifikacioni mejl. Ukoliko korisnik zaboravi šifru za pristup servisu moguće je izvršiti oporavak naloga preko **Recover user** endpoint-a prilikom čega će se nova šifra poslati korisniku na mejl, pod uslovom da je korisnički nalog verifikovan.\n\n# Upravljanje pošiljkama\n\n## (ROLE_USER)\n\nSledeći korak može biti slanje pošiljke. Procedura slanja pošiljke se sastoji iz nekoliko koraka:\n\n- kreiranje pošiljke sa podacima o primaocu,\n    \n- kačenje dokumenata uz pošiljku,\n    \n- zapečaćivanje i otpremanje pošiljke.\n    \n\nShodno tome pošiljke mogu imati jedan od statusa `CREATED`, `UPDATED`, `SEALED`, `SENT`, `READ`, `CONFIRMED` koji se mogu proveriti pomoću **Shipment States** endpoint-a (`GET api/v0/shipment/:shipmentId/states`).\n\nPrilikom slanja definiše se mail adresa primaoca pošiljke. Osim osnovne adrese, može se zadati i više dodatnih (CarbonCopy) adresa na koje ide kopija pošiljke kao i alternativnu adresu pošiljaoca za odgovore (Reply-To). Neophodno je zadati PIB pošiljaoca i primaoca, i tip dokumenta. Radi interoperabilnosti podataka odnosno mogućnosti učitavanja dokumenata direktno u softver Wings APP definisane su sledeće oznake tipa dokumenta:\n\n- FAK – fakture\n    \n- PRO – profakture\n    \n- NAR – narudžbenice\n    \n- IOS – IOS\n    \n\nOpciono se može zadati i HTML šablon izgleda mejla koji će primalac dobiti. Ako se ne unese, mail će imati podrazumevani izgled. Nakon kreiranja pošiljke vrši se kačenje datoteka. Preporučeno je da se uvek šalje PDF i XML istog dokumenta i da se pošiljka ograniči na jedan dokument. Potom se pošiljka zapečaćuje i servis je šalje primaocu. Nakon zapečaćivanja i slanja pošiljku više nije moguće menjati ili brisati.\n\nPored navedenog pristupa takođe je na raspolaganju i endpoint **Create Shipment (Batch)** kojim se procedura može odraditi u jednom pozivu (`POST api/v0/shipment/batch`).\n\nSada možete pregledati spisak poslatih dokumenata pomoću **Search Shipment** endpoint-a. Pruža se mogućnost pretrage poslatih pošiljki na osnovu mejla korisnika na koga se odnose pošiljke, zadatog PIB-a (jer se preko jednog naloga mogu slati i primati podaci od više firmi), tipa pošiljke (PRO, FAK…), kao i vremenskog intervala za koji se traže podaci.\n\nKod pregleda dokumenata moguće je navesti i parametar `mailbox=inbox` kojim se mogu pregledati primljene pošiljke (pošiljke poslate od strane drugih korisnika WingsNet2) i preuzeti ih direktno sa servisa u korisnički softver, umesto ručnog preuzimanja dokumenata iz primljenog mejla.\n\n# Ostali servisi\n\nServis omogućava i validaciju mejl adresa pomoću internet servisa MailGun. Na raspolaganju su pozivi za masovnu validaciju mejl adresa i manju validaciju do 10 mejl adresa po pozivu.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"2892103","team":1080911,"collectionId":"f5062ee7-f656-420b-b9c4-79e0dee025d3","publishedId":"TVKA3yn6","public":true,"publicUrl":"https://documenter-api.postman.tech/view/2892103/TVKA3yn6","privateUrl":"https://go.postman.co/documentation/2892103-f5062ee7-f656-420b-b9c4-79e0dee025d3","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.10.1","publishDate":"2020-09-17T08:14:06.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[{"name":"WingsNet2","id":"db72bad7-f5c9-4260-9c7b-8a1be1b1f391","owner":"2892103","values":[{"key":"token","value":"{X-Auth-Token}","enabled":true},{"key":"url","value":"https://net.wings.rs","enabled":true},{"key":"userId","value":"{userId}","enabled":true},{"key":"networkId","value":"{networkId}","enabled":true},{"key":"shipmentId","value":"{shipmentId}","enabled":true},{"key":"itemId","value":"{itemId}","enabled":true}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/6df97310f68768152846051aeb3dfa2c63798517199bf934b4b3cf41346ed632","favicon":""},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"WingsNet2","value":"2892103-db72bad7-f5c9-4260-9c7b-8a1be1b1f391"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/TVKA3yn6"}