OpusCapitaTYVI asiakasjärjestelmäliittymä 2.2

Samankaltaiset tiedostot
OpusCapitaTYVI asiakasjärjestelmäliittymä 2.2

NELLI-Tunnis. Käyttäjän tunnistus NELLI-tiedonhakuportaalissa yleisissä kirjastoissa. Versio Ere Maijala Kansalliskirjasto

Sosiaalihuollon asiakastiedon arkiston validointipalvelu. Käyttöohje

Sosiaalihuollon asiakastiedon arkiston validointipalvelu

Veronumero.fi Tarkastaja rajapinta

OnniSMS Rajapintakuvaus v1.1

Tekstiviestipalvelun rajapintakuvaus

Suuli api dokumentaatio

Tekninen kuvaus Aineistosiirrot Interaktiiviset yhteydet iftp-yhteydet

K U U L A L A A K E R I LUOTTAMUKSELLINEN 1(6)

Varmennepalvelu Rajapintakuvaus Tulorekisteriyksikkö

Tilaajavastuu.fi. Muutoshistoria. Suomen Tilaajavastuu Oy. Raporttinoutaja Rajapinta yritysten tilaajavastuutietojen tarkistamiseen

Varmennepalvelu Rajapintakuvaus Kansallisen tulorekisterin perustamishanke

Uuden palvelun lisääminen liityntäpalvelimelle esuomi.fi

sertifikaattiratkaisu Apitamopki

Sähköpostitilin käyttöönotto

LoCCaM Riistakamerasovellus. Dimag Ky dimag.fi

Tekninen dokumentti. TEKNINEN DOKUMENTTI Versio (24) Versio ja pvm Laatinut Tarkastanut Hyväksynyt.

VIRANOMAISEN PALUUKANAVA WS API. Suomi.fi-viestit julkinen rajapinta

EKP:N HANKINTAMENETTELYJEN VERKKOPALVELU OSALLISTUMINEN HANKINTAMENETTELYIHIN

Jos yritys tekee EU tavarakauppaa, käy tekemässä ennen käyttöönottoa myynnin perustiedoissa kerran seuraava toimenpide:

TEKNINEN MÄÄRITTELY. Matkahuollon osoitekorttihaun rajapinta. Ismo Koskinen

Koodistopalvelun REST-rajapinnat

Käyttöohje Suomen Pankin DCS2-järjestelmään rekisteröityminen

Poikkeusinfo XML-rajapinnan kuvaus, rajapinnan versio 2 Seasam Group

Lemonsoft SaaS -pilvipalvelu OHJEET

OPUSCAPITA TYVI PALVELUKUVAUS. Versio 1.2. OpusCapita Group Oy Keilaranta Espoo FINLAND. Tel Fax

Tulorekisteri: Varmenne Visma Fivaldi

Järjestelmän kriittisimmille toiminnallisuuksille (listattu alla), toteutetaan 1

Visma Fivaldi -käsikirja Tehtävienhallinta- ohje käyttäjälle

PALVELUKUVAUS OHJELMISTOTALOILLE SAMLINK VARMENNEPALVELU

VIRANOMAISEN PALUUKANAVA WS API. Suomi.fi-viestit julkinen rajapinta

Käyttöohje. Ticket Inspector. Versio 1.0. Sportum Oy

EASY Tiedostopalvelin - mobiilin käyttöopas

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

SSH Secure Shell & SSH File Transfer

1 Uuden vuoden aloitus palkanlaskennassa

Katso-tunnistautumisen muutos. Visma Fivaldi

1 Virtu IdP- palvelimen testiohjeet

Tietojen toimittaminen Skeemat Viestit Kansallisen tulorekisterin perustamishanke

Kelan työnantaja-asiakkaat

Ilmoitus saapuneesta turvasähköpostiviestistä

1 Uuden vuoden aloitus palkanlaskennassa

Maventa Connector Käyttöohje

SAMLINK VARMENNEPALVELU PALVELUKUVAUS OHJELMISTOTALOILLE

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE:

TEKNINEN MÄÄRITTELY. Matkahuollon toimipistehaun rajapinta. Ismo Koskinen

KServer Etäohjaus Spesifikaatio asiakaspuolen toteutuksille

Maksuturva-palvelun käyttöönottolomakkeen rajapintakuvaus verkkokauppaohjelmistolle

Muutokset suoran sanoma-asioinnin webservicepalvelun

SoleMOVE lähtevän harjoittelijan ohje

Varmennepalvelu Yleiskuvaus Kansallisen tulorekisterin perustamishanke

Ohje luottamuksellista tietoa sisältävien sähköpostiviestien lähettämiseen ja vastaanottamiseen

Kelan työnantaja-asiakkaille 2017

Valtiokonttorin tunnistuspalvelu

LUPAHANKKEET RAKENNUSVALVONNAN SAHKÖISESSÄ ASIOINTIPALVELUSSA

Asiointipalvelu. Asiakkaan sisäänkirjautumisohje

NORDEAN WEB SERVICES YHTEYDEN KÄYTTÖÖNOTTO

Ohjeita esara-tiedostojen lähettäjälle. Kelan työnantaja-asiakkaat, verkkoasiointiopas

Maksuturva- ja emaksut- palvelun integrointiohje

Avoin metsätieto - Rajapintapalvelut

1 Visma L7 päivitysaineiston nouto

Onecapital Invoicer XML API

Varmennepalvelu Yleiskuvaus Kansallisen tulorekisterin perustamishanke

Edico Lite ja S Käyttöohje istunnon pitäjälle ja kutsutulle

Tietojen jakelu Skeemat Viestit Kansallisen tulorekisterin perustamishanke

Tulorekisteri: Erillisilmoitus Visma Fivaldi

L7 8.8 Tulorekisteriaineistot: Aineistojen lähetys ja virhetilanteet, aineistojen korjaaminen

Titta-palvelun käyttöohje

Titta-palvelun käyttöohje

Asiointipalvelun ohje

Ajankohtaista tietoa LähiTapiolan verkkopalvelun pääkäyttäjille

Convergence of messaging

Apix Vastaanota-palvelun lisäominaisuus. Vastaanota+ Pikaohje Versio 1.0

EasyGO Hunter Käyttäjän opas

Osallistavan suunnittelun kyselytyökalu

VEROHALLINTO

LoCCaM. LoCCaM Cam laitteiston ohjaaminen. Dimag Ky dimag.fi

Toimittajaportaalin pikaohje

Ohjeita esara-tiedostojen lähettäjälle

OPAS KULTA2 -JÄRJESTELMÄN KÄYTTÖÖN

WEB SERVICES RAJAPINTA SAMLINKIN TEKNINEN RAJAPINTAKUVAUS OHJELMISTOTALOILLE

BaseMidlet. KÄYTTÖOHJE v. 1.00

Ohjeita Omapalvelun käyttöön

Tietojen toimittaminen Skeemat Käsittelypalaute Kansallisen tulorekisterin perustamishanke

Sisäänkirjautuminen Tallennus/raportit (YAP) Tallennusohjelma

Työsähköpostin sisällön siirto uuteen postijärjestelmään

Varmennepalvelu - testipenkki. Kansallisen tulorekisterin perustamishanke

Luottamuksellinen sähköposti Trafissa

VEROHALLINTO

PANKKILINJAN FTP - KUVAUS

Lohtu-projekti. Testaussuunnitelma

OHJE EVENTALEN ASIAKASKUTSUJÄRJESTELMÄN KÄYTTÖÖN FKS-Tapahtumat Oy, v2

SUOMEN PANKIN RAPORTOINTIPALVELUN KÄYTTÖOHJE. Maksutaseen kuukausikysely ulkomaisista rahoitussaamisista ja -veloista (BOPM)

Yhteistyökumppanit kirjautuvat erikseen annetuilla tunnuksilla osoitteeseen

OFFICE 365 PIKAOHJE

Sähköposti ja uutisryhmät

Liite 7: Asiakastietoa käsittelevä järjestelmä Sosiaalihuollon asiakastiedon arkisto. Rajapintakäyttötapaukset

Kirje -tasolla viestiliikenne suojataan automaattisesti SSL-salauksella, sekä viesti lukitaan Deltagon MessageLock -tekniikalla.

Transkriptio:

OpusCapita TYVI AJL 1 (28) OpusCapitaTYVI asiakasjärjestelmäliittymä 2.2 Tekninen kuvaus versio 1.6 OpusCapita Group Oy Postintaival 7 FI-00230 HELSINKI, FINLAND Tel. +358 20 452 3000 Fax +358 20 452 9271 VAT FI14655702 www.opuscapita.com

OpusCapita TYVI AJL 2 (28) Sisällysluettelo 1 Yleistä... 3 2 Termien selitykset... 3 3 Palvelun kutsuminen... 3 4 Paluuviesti... 4 5 Sanoman lähettäminen... 5 5.1 Sisäänkirjautuminen... 6 5.2 Autentikoinnin vastausviestin lukeminen... 7 5.3 Ilmoitettavan yrityksen lisääminen... 8 5.4 Tiedoston lähetys... 9 5.5 Tiedonsiirron paluuviestin lukeminen... 10 5.6 Saapuvan aineiston noutaminen... 12 5.6.1 Hakukomennon paluuviestin lukeminen... 13 5.6.2 Saapuvan aineiston tiedoston lataus... 13 5.7 Katso- ja Raksi-välilehdet... 14 5.7.1 Katso-kirjautuminen... 14 5.7.2 Katso-kirjautumisviestin lukeminen... 15 5.7.3 Katso- ja Raksi-välilehden listaaminen... 16 5.7.4 Katso- ja Raksi-välilehden listauksen vastauksen lukeminen... 16 5.7.5 Katso- ja Raksi-ilmoituksen lähettäminen... 17 5.7.6 Katso- ja Raksi-ilmoituksen lähetyksen vastauksen lukeminen... 18 5.8 PDF-kuitti... 18 5.8.1 PDF-kuittien listaus... 18 5.8.2 PDF-kuittien listauksen lukeminen... 19 5.8.3 PDF-kuitin lataus... 19 5.8.4 PDF-kuitin lukeminen... 20 5.9 Uloskirjautuminen palvelusta... 20 5.10 Vastausviesti ja yhteyden katkaisu... 21 6 Testaamiseen liittyviä huomioita... 21 7 Uudet ominaisuudet versiossa 2.2... 23 8 Viitteet... 25 9 Versiohistoria... 25

OpusCapita TYVI AJL 3 (28) 1 YLEISTÄ Tämä dokumentti kuvaa OpusCapitan ohjelmistotaloille tarjoaman HTTPS-protokollaa [1] käyttävän yleisen rajapinnan ohjelmistojen integrointiin OpusCapitaTYVI-palveluun. Rajapinta tarjoaa sovellusohjelmoijalle käsitteellisen sanomaversiosta tai tyypistä riippumattoman tiedonsiirtorajapinnan OpusCapitaTYVI- palvelun kautta viranomaisille. Rajapinta tarjoaa turvallisen ja yksinkertaisen tavan siirtää aineistoa TYVI-palveluun suoraan sovelluksesta ilman että käyttäjä joutuu tekemään manuaalisia toimenpiteitä. 2 TERMIEN SELITYKSET Termi TYVI OpusCapitaTYVI Lähetyskerta Sanoma 3 PALVELUN KUTSUMINEN Selitys Tietovirrat Yritysten ja Viranomaisten Välillä OpusCapita toteuttama TYVI-palvelu Kaikki saman lähetyksen aikana yhdellä tunnuksella lähetettävät tiedot. Lähetyskerta voi sisältää 0 n sanomaa. Lähetyskerran osa. Yksi yksittäinen ilmoitus yhdelle vastaanottajalle. Esimerkiksi yksi ilmoittavan yrityksen työnantajasuoritus Verohallintoon. Kutsut palveluun tehdään käyttämällä tiettyjä ennalta määriteltyjä URL:a [2]. URL (Uniform Resource Locator) on nimensä mukaisesti osoitin resursseihin. Se on merkkijono, joka kuvaa yksiselitteisesti palvelun (järjestelmä, palvelun nimi sekä palvelun versio) johon sanoma liittyy sekä komennon, joka määrittelee millaista kutsua palveluun ollaan tekemässä. Suurin osa URL:n tiedoista on kiinteitä eri lähetyskertojen välillä samaa palvelua käytettäessä, mutta komento riippuu siitä mitä kyseisellä hetkellä tehdään. Lähetettävään sanomaan liittyvä URL on muotoa: https://konteksti/iea/palvelu/versio/komento Konteksti sisältää palvelun sijainnin (koneen nimi tai osoite sekä portti). Palvelun looginen sijainti määrää myös käytetyn järjestelmän. URL:n osa iea on kiinteä merkkijono, joka kertoo vastaanottavalle järjestelmälle, että kyseessä on ohjelmistotaloliittymä (iea tulee sanoista Interface for External Applications). Palvelu ja versio kertovat käytetyn palvelun ja sen halutun version. Komento määrittelee mitä kyseisen kutsun halutaan tekevän. Mahdolliset komennot on lueteltu allaolevassa taulukossa:

OpusCapita TYVI AJL 4 (28) auth Komento transmit terminate query Kirjaudutaan sisään palveluun, paluuviestissä saadaan session tunniste, jota käytetään siirrettäessä aineistoa ja kirjauduttaessa ulos palvelusta. Siirretään aineisto palveluun, paluuviestissä saadaan sanomakohtainen tieto siirron onnistumisesta. Kirjaudutaan ulos palvelusta. Noudetaan erityyppistä aineistoa palvelusta (ei toteutettu draftversiossa) add_company Lisätään ilmoitettava yritys katso/login katso/list katso/send Aktivoidaan Katso-tiedot nykyiseen istuntoon. Mahdollistaa Katso- ja Raksi-välilehdillä olevien ilmoitusten lähettämisen 10 minuutin aikaikkunan aikana. Tämän jälkeen tunnistautuminen Katsoon on tehtävä uudestaan. Listaa Katso-ja Raksi-välilehtien sisältämät ilmoitukset (ilmoitukset, joiden lähettämiseen vaaditaan Katso-tunnus) Lähettää halutun ilmoituksen eteenpäin Katso-tunnuksella Esimerkki: Tehdään kutsu OpusCapita TYVI-palveluun rajapintaversiolla 2.1. Kyseessä tunnistautuminen. Itse autentikointitiedot lähetetään HTTPS:n POST-datassa eivätkä ne näy URL:ssa https://www.tyvi.fi/ec/tyvi-r5/p/iea/auth/ 4 PALUUVIESTI Lähetykseen liittyvä paluuviesti on XML-sanoma [3], jossa kerrotaan tilakoodin avulla lähetyksen onnistumisesta, viitataan lähetyksen sessiotunnisteeseen ja kerrotaan tarvittaessa sanomakohtaisesti vastaanottokuittaus tai mahdollinen virheilmoitus lähetetyistä tiedoista. Paluuviestin merkistö on UTF-8. Paluuviestin XML Schema [4] on esitetty liitteessä 1. Esimerkkejä erilaisista paluuviesteistä on kappaleessa 5. Oheisessa taulukossa on käytössä olevat tilakoodit ja niiden mukana palautuvat selitteet. Tilakoodi teksti Tarkennus 0 OK Pyyntö palveluun on onnistunut. 100 Authentication failure Annettu käyttäjätunnus tai salasana on väärä. Tarkista käyttäjätunnus ja salasana. Ota tarvittaessa yhteys helpdeskiin. 101 No active session Session tunniste ei ole oikea tai sessio on jo vanhentunut. 102 No command verb in url Palvelimelle on lähetetty pyyntö, jossa ei ole komentoosaa. 103 Internal Server Error Määrittelemätön virhetilanne palvelussa. Tilanne on luonteeltaan sellainen, että palvelu ei ole osannut käsitellä virhettä. 104 Transfer format error Lähetyssä aineiston esitystavassa on virhe ts. tiedon esitysmuoto on epävalidi. Virhe tulee myös silloin jos

OpusCapita TYVI AJL 5 (28) kyseisellä tunnuksella ei ole sallittua lähettää tällaista aineistoa. 105 Transfer content error Aineiston tietosisältö on virheellinen. 106 No data transmitted Varsinainen tietosisältö puuttuu kokonaan. 107 Transmitted data contained extraneous Ylimääräisiä rivejä sanoman lopussa. 108 109 110 lines No rights to send forms of this type Unknown or unsupported query type Invalid parameters for query 111 Duplicate file transferred 112 Unsupported protocol version 113 Authentication redirected 114 Katso ID is needed Kirjautuneella asiakkaalla ei ole oikeutta lähettää kyseistä aineistotyyppiä. Parametrin type arvo on joko tuntematon tai käyttäjällä ei ole oikeutta noutaa tyypin mukaista aineistoa Joku query-komennon parametreista on väärä tai vaihtoehtoisesti joku pakollinen parametri puuttuu. Tiedostosiirrossa on havaittu identtisen tiedoston aikaisempi siirtäminen. Asiakasohjelmiston ehdottamaa protokollaversiota ei tueta (uusi 2.1:ssä.) Sisäänkirjautuminen ei ole mahdollista tässä osoitteessa. Asiakasohjelmiston tulee käyttää kentässä <use-base> olevaa järjestelmän URL:a ja yrittää uudelleen. (uusi 2.1:ssä) Katso/send-käskyllä lähetetty ilmoitus vaatii Katsoistunnon. Istunto oli joko vanhentunut tai Katsotunnuksella ei ole riittäviä oikeuksia ilmoituksen lähettämiseen. 5 SANOMAN LÄHETTÄMINEN Lähetys tapahtuu käyttämällä HTTPS-protokollaa lomakepohjaiseen lähetykseen. Lähetys on luonteeltaan hyvin yksinkertainen. Lähetykseen liittyy tietty URL, jonka perusosa (https://fqdn) kertoo suoraan käytetyn protokollan, autentikointitiedot, palvelimen sekä portin. URL:n absoluuttinen polkuosa (perusosan jälkeinen osa mukaan lukien ensimmäinen kauttamerkki sekä kaikki parametrit) kuvaa lähetyksen palvelimen sisällä. Lähetys voidaan jakaa seuraaviin osiin: 1. Sisäänkirjautuminen palveluun. Kirjautumiseen tarvittavat tiedot välitetään HTTPS:n POST-metodilla. 2. Sisäänkirjautumisen vastausviestin lukeminen. Luetaan ja tarkastetaan palvelimen lähettämä tilakoodi, session tunniste ja muu mahdollinen informaatio. Jos vastausviestissä ilmoitetaan, että sisäänkirjautuminen tulee tehdä toisessa osoitteessa, hypätään takaisin kohtaan 1 käyttäen annettua osoitetta. 3. Tiedoston lähetys. Lähetetään tiedosto HTTPS:n POST-metodilla 4. Tiedonsiirron vastausviestin lukeminen. Luetaan ja tarkastetaan HTTP-palvelimen lähettämä siirron tilakoodi ja mahdollinen muu viestissä tuleva informaatio.

OpusCapita TYVI AJL 6 (28) 5. Mahdollisten palvelussa olevien tiedostojen noutaminen. Kerrotaan HTTPS-POSTkomennolla mitä halutaan noutaa ja samalla voidaan antaa joitain rajaavia hakuehtoja nuodettaville tiedostoille. 6. Tiedoston noutoon tarkoitettuun pyyntöön palautetaan paluuviesti, jossa on osoitin itse noudettavaan tiedostoon. Luetaan paluuviesti ja siellä oleva osoitin itse noudettavaan tiedostoon. 7. Noudetaan itse tiedosto käyttämällä paluuviestissä saatua osoitinta. Kyse on normaalista tiedostonlatauksesta HTTPS-palvelimelta. 8. Uloskirjautuminen palvelusta. Kirjaudutaan ulos ja suljetaan sessio eksplisiittisesti ennen yhteyden sulkemista. 9. Vastausviestin lukeminen. Luetaan palvelimen lähettämä tilakoodi ja tarkastetaan, että uloskirjautuminen onnistui. 5.1 Sisäänkirjautuminen Pyyntö lähetetään URL:n, jossa komento on auth, esimerkiksi https://www.tyvi.fi/ec/tyvir5/p/iea/auth/ Kutsulle voi antaa parametreina seuraavat tiedot: Pakolliset parametrit: username password software Vapaaehtoiset parametrit: protocol-version käyttäjätunnus OpusCapita TYVIpalveluun salasana OpusCapita TYVI-palveluun kirjautuvan ohjelmiston nimi ja versio Pyytää palvelinta käyttämään annettua protokollaversiota (2.0, 2.1 tai 2.2) force-redirect Ei-nolla arvo (esim 1 tai "yes") pyytää palvelinta antamaan vastauskoodin 113 "Authentication redirected" kirjautumiseen, joko asiakasohjelmiston testausta tai järjestelmän URL:n verifiointia varten. Parametrilla software on tarkoitus kertoa mikä ohjelmisto ja sen versio on kyseessä samaan tyyliin kuin www-selain lähettää www-palvelimelle user-agent parametrilla tiedon siitä mikä selain ja sen versio on kyseessä. Suositeltava muoto software parametrin arvoksi on <ohjelmisto> <versiotieto>. Esimerkiksi OpusCapitan testiohjelman tapauksessa: ElmaIEA C# DEMO $Revision: 1.6 $

OpusCapita TYVI AJL 7 (28) Esimerkki: autentikointi palvelimelle https://www.tyvi.fi käyttäjänä user123 POST /ec/tyvi-r5/p/iea/auth HTTP/1.1 Host: www.tyvi.fi Content-type: multipart/form-data; boundary=boundary-string-should-not-appear-in-data Content-length: 366 Content-Disposition: form-data; name="username" user123 Content-Disposition: form-data; name="password" passwd1234 Content-Disposition: form-data; name="software" ElmaIEA C# DEMO $Revision: 1.6 $ -- Huomaa, että merkkijono Boundary-string-should-not-appear-in-data on ainoastaan esimerkinomainen MIME Multipart-sanoman erotin [5] [6]. Merkkijonon tulisi olla satunnainen generoitu merkkijono, jonka sisältö on sellainen ettei sitä esiinny itse sanomalla. Esimerkkiohjelmistossa on tämä osuus toteutettu lisäämällä kiinteä merkkijono, jota ei esiinny itse sanomalla. Lisäksi kannattaa kiinnittää huomiota erottimen yhteydessä oleviin aloitus- ja lopetusmerkkeihin. Jokainen erotinmerkki alkaa kahdella viivalla -- ja viimeinen erotin päättyy lopetusmerkkiin, joka on myöskin kaksi viivaa --. Välissä olevien erottimien lopussa ei ole viivoja. 5.2 Autentikoinnin vastausviestin lukeminen Palvelu palauttaa paluuviestissä paluukoodin <status>-elementin id-attribuutin arvona, ja sessiotunnisteen <session>-elementissä. Paluukoodi on joko 0 kirjautumisen onnistuessa, 100 kirjautumisen epäonnistuessa tai 103 (Internal Server Error) jos kirjautumisen yhteydessä on tapahtunut virhetilanne, jota palvelu ei ole osannut käsitellä oikein. Kun käytetään protokollaversiota 2.1 tai suurempaa, vastaussanomassa voi olla elementti <usebase>. Tämän sisältö on järjestelmän URL:n perusosa, jota asiakasohjelmiston pitää käyttää istunnon seuraavissa pyynnöissä. <use-base> voi esiintyä kaikissa järjestelmän tuottamissa vastaussanomissa, myös muissa toiminteissa kuin sisäänkirjautumisessa. Esimerkki: paluuviestin sisältö onnistuneen kirjautumisen jälkeen: HTTP/1.1 200 OK Transfer-Encoding: chunked Content-Type: text/xml b4 <?xml version="1.0" encoding="utf-8"?> <iea-response xmlns="http://tyvi.elma.fi/schema/200710/iea"> <status id="0">ok</status> <session>aqsyoakgkljpxn3</session>

OpusCapita TYVI AJL 8 (28) <use-base>https://www.tyvi.fi/c/ec/tyvi-r5/p/iea/</use-base> </iea-response> 0 Esimerkki: epäonnistunut kirjautuminen palveluun: HTTP/1.1 200 OK Transfer-Encoding: chunked Content-Type: text/xml b4 <?xml version="1.0" encoding="utf-8"?> <iea-response xmlns="http://tyvi.elma.fi/schema/200710/iea"> <status id="100">authentication failure</status> </iea-response> 0 5.3 Ilmoitettavan yrityksen lisääminen Jotta yritykselle voidaan tehdä ilmoitus, on kyseinen yritys lisättä ilmoitettavien listaan. Pakolliset parametrit s company_name company_id sessiotunniste lisättävän ilmoitettavan yrityksen/henkilön nimi lisättävän ilmoitettavan yrityksen y-tunnus tai henkilön henkilötunnus Esimerkki: POST /ec/tyvi-r5/p/iea/add_company HTTP/1.1 Host: www.tyvi.fi Content-type: multipart/form-data; boundary=boundary-string-should-not-appear-in-data Content-length: 373 Content-Disposition: form-data; name="s" aqsyoakgkljpxn3 Content-Disposition: form-data; name="company_name" Testi Asiakas Content-Disposition: form-data; name="company_id"

OpusCapita TYVI AJL 9 (28) 1234567-1 -- Vastausviesti on yksinkertaisesti ok tai virhe (ei kerättäviä tietoja varsinaisesti). Mikäli ilmoitettava yritys löytyy jo listalta, annetaan virhe 111 - Duplicate file transferred. Mikäli annettu company_id ei ole hetu tai y-tunnus, annetaan virhe 110 - Invalid parameters for query. Mikäli käyttäjällä ei ole oikeutta lisätä ilmoitettavaa, annetaan virhe 108 - No rights to send forms of this type. 5.4 Tiedoston lähetys Pyyntö lähetetään URL:n, jossa komento on transmit. esimerkiksi https://www.tyvi.fi/ec/tyvi-r5/p/iea/transmit Kutsulle voi antaa parametreina seuraavat tiedot: Pakolliset parametrit: s records Vapaaehtoiset parametrit: test sessiotunniste itse lähetettävä lähetyskerta ts. lähetettävät sanomat saa aina arvon 1, tätä parametria ei anneta ollenkaan jos kyseessä on tuotantolähetys. Huomatkaa, että testiparametria käytettäessä, aineistoa ei tallenneta kantaan ollenkaan. Esimerkki: Tiedonsiirto. Verohallinnolle menevä vuosi-ilmoitus. Palkansaajakohtainen erittely. Kirjautumisen yhteydessä on saatu URL: https://www.tyvi.fi/ec/tyvi-r5/p/iea/. POST /a/iea/transmit HTTP/1.1 Host: www.tyvi.fi Content-type: multipart/form-data; boundary=boundary-string-should-not-appear-in-data Content-length: 577 Content-Disposition: form-data; name="s" aqsyoakgkljpxn3 -- Content-Disposition: form-data; name="test" 1 Content-Disposition: form-data; name="records"; filename="tyvi-data.txt" Content-Type: application/octet-stream 000:VSPSERIE

OpusCapita TYVI AJL 10 (28) 101:0 110:P 109:2004 102:6666662-2 098:1 111:010101-XX1X 115:54217 116:10858 117:5000 135:3000 140:1200 141:6604 143:1 146:1 150:875 153:1 999:1 -- Huomiotavaa on, että lähetettävän sanoman tyyppiä ei kerrota lähetyksessä. Se päätellään lähetettävästä sanomasta. Jos sanomaa ei tunnisteta, palautetaan virheilmoitus. Aineistoa lähetettäessä kannattaa kirjautuneen käyttäjän koko lähetyskerta lähettää yhdellä transmit-kutsulla. Palvelu pystyy erottelemaan ja käsittelemään sanomalajista ja vastaanottajasta riippumatta kaikki samassa lähetyskerrassa tulleet sanomat, joten lähettävässä päässä ei ole tarvetta pilkkoa niitä useiksi lähetyksiksi. 5.5 Tiedonsiirron paluuviestin lukeminen Paluuviesti pitää sisällään vähintään paluukoodin <status>- elementin id-attribuutin arvona, session <session>-elementissä ja sanomakohtaisen kuittauksen siirretyistä sanomista <transfer>-elementin alla <record>-elementeissä. Esimerkki: Paluuviesti onnistuneesta tiedonsiirrosta testimoodissa versiossa 2.1 tai aiempi: HTTP/1.1 200 OK Transfer-Encoding: chunked Content-type: text/xml 110 <?xml version="1.0" encoding="utf-8"?> <iea-response xmlns="http://tyvi.elma.fi/schema/200710/iea"> <status id="0">ok</status> <session>aqsyoakgkljpxn3</session> <use-base>https://www.tyvi.fi/c/ec/tyvi-r5/p/iea/</use-base> <transfer mode="test"> <record num="1"> <type id= vheritp >Palkansaajakohtainen erittely</type> </record> </transfer> </iea-response> 0

OpusCapita TYVI AJL 11 (28) Esimerkki: Paluuviesti onnistuneesta tiedonsiirrosta testimoodissa versiossa 2.2: HTTP/1.1 200 OK Transfer-Encoding: chunked Content-type: text/xml 110 <?xml version="1.0" encoding="utf-8"?> <iea-response xmlns="http://tyvi.elma.fi/schema/201408/iea"> <status id="0">ok</status> <session>aqsyoakgkljpxn3</session> <use-base>https://www.tyvi.fi/c/ec/tyvi-r5/p/iea/</use-base> <transfer mode="test"> <record num="1"> <type id= vheritp >Palkansaajakohtainen erittely</type> <message_id>12345678</message_id> </record> </transfer> </iea-response> Erona aiempiin versioihin, on paluusanomassa message_id -tieto, jonka avulla voidaan kohdentaa lähetetty ilmoitus välittömästi Tyvin oikeaan ilmoitusnumeroon katso/sendkäskyä varten. Jos sanomalla on ollut virheitä, tulee <record>-elementin sisällä myös sanomakohtainen virheilmoitus. Virheilmoitus palautetaan <error>-elementissä. Elementin <record> numattribuutti kertoo kyseisen sanoman järjestysnumeron siirtovaiheessa. Esimerkki: Paluuviesti virheellisestä tiedonsiirrosta testimoodissa TYVI-VAHTI-palveluun: HTTP/1.1 200 OK Transfer-Encoding: chunked Content-type: text/xml 110 <?xml version="1.0" encoding="utf-8"?> <iea-response xmlns="http://tyvi.elma.fi/schema/200710/iea/"> <status id="105">transfer content error</status> <session>kq2ivnllejtou7x</session> <use-base>https://www.tyvi.fi/c/ec/tyvi-r5/p/iea/</use-base> <transfer mode="test"> <record num="1"> <type id= ym_tuotanto >Tuotanto</type> </record> <record num="2"> <type id= ym_jatevesi >Veteen johdetut paastot</type> <error id="105">no customer number</error> </record> <record num="3"> <type id= ym_ilmaanjohd > Ilmaan johdetut jatteet</type> <error id="105">invalid parameter: 369</error> </record> <record num="4"> <type id= ym_ilmaanjohd >Ilmaan johdetut jatteet</type> <error id="105">invalid parameter: 369</error>

OpusCapita TYVI AJL 12 (28) </record> <record num="5"> <type id= ym_perustied >Perustiedot</type> </record> </transfer> </iea-response> 0 5.6 Saapuvan aineiston noutaminen Tiedoston nouto on kaksiosainen tapahtuma. Ensin tehdään palveluun pyyntö, jolla määritellään mitä halutaan noutaa. Sen jälkeen paluuviestissä olleen viitteen avulla noudetaan itse aineisto toisella pyynnöllä. Aineisto merkitään noudetuksi vasta kun se on todellisuudessa haettu. Tiedoston nouto aloitetaan tekemällä pyyntö URL:n, jonka komento osa on query, esimerkiksi https://www.tyvi.fi/ec/tyvi-r5/p/iea/query Kutsulle voi antaa parametreina seuraavat tiedot: Pakolliset parametrit: S Type Year Vapaaehtoiset parametrit: Bid New Sessiotunniste Tyyppi määrittelee mitä aineistoa halutaan hakea. Esimerkiksi VK_VAST määrittelee, että haetaan verokorttien suorasiirtopyyntöjen vastauksia. Määrittelee minkä vuoden aineistoa haetaan (pakollinen jos type = VK_VAST). Y-tunnus. Määrittelee minkä yrityksen tietoja ollaan hakemassa. Jos tätä ei anneta, haetaan kaikkien yritysten tiedot, joihin hakijalla on oikeus. Saa aina arvon 0. Määritellään haetaanko myös jo kerran haetuksi merkityt aineistot. Oletus on, että haetaan vain uudet ja tällöin koko parametri kuuluu jättää pois. Esimerkki: Query-komento, jolla haetaan vuoden 2004 verokortteja. Kirjautumisen yhteydessä on saatu URL: https://tyvi.elma.fi/ec/tyvi-r5/p/iea/. POST /ec/tyvi-r5/p/iea/query HTTP/1.1 Host: www.tyvi.fi Content-type: multipart/form-data; boundary=boundary-string-should-not-appear-in-data Content-length: 345

OpusCapita TYVI AJL 13 (28) Content-Disposition: form-data; name="s" aqsyoakgkljpxn3 Content-Disposition: form-data; name="type" vk_vast Content-Disposition: form-data; name="year" 2004 Content-Disposition: form-data; name="bid" 1234567-1 -- 5.6.1 Hakukomennon paluuviestin lukeminen Paluuviesti pitää sisällään paluukoodin <status>- elementin id-attribuutin arvona ja viitteen ladattavaan aineistoon <query>-elementin alla <download-token>-elementeissä. Lisäksi sanomalla tulee tieto ladattavien sanomien määrästä <query> -elementin results - attribuutin arvona. Esimerkki: Paluuviesti, jossa kerrotaan, että Verokortin suorasiirron vastauksia 12 kappaletta noudettavana. HTTP/1.1 200 OK Transfer-Encoding: chunked Content-type: text/xml 110 <?xml version="1.0" encoding="utf-8"?> <iea-response xmlns="http://tyvi.elma.fi/schema/200710/iea"> <status id="0">ok</status> <use-base>https://www.tyvi.fi/c/ec/tyvi-r5/p/iea/</use-base> <query results="12"> <type id="vk_vast" count="12">verokortin vastaus</type> <download-token>7</download-token> </query> </iea-response> 0 5.6.2 Saapuvan aineiston tiedoston lataus Kun aineistoon on saatu viite query -komennolla voidaan aineisto lopuksi noutaa laittamalla pyyntö URL:n, jonka komento-osa on download, esimerkiksi https://www.tyvi.fi/ec/tyvi-r5/p/iea/download Kutsulle voi antaa parametreina seuraavat tiedot:

OpusCapita TYVI AJL 14 (28) Pakolliset parametrit: s token Sessiotunniste Query-komennon vastauksena saatu tiedostoviite ts. <download-token> - elementin sisältö. Esimerkki: Download -komento POST /ec/tyvi-r5/p/iea/download HTTP/1.1 Host: www.tyvi.fi Content-type: multipart/form-data; boundary=boundary-string-should-not-appear-in-data Content-length: 123 Content-Disposition: form-data; name="s" aqsyoakgkljpxn3 Content-Disposition: form-data; name="token" 7 -- Kutsun vastaus pitää sisällään aina kaikki vastaussanomat ja noudattaa kulloisenkin sanoman määrityksiä. Esimerkiksi verokorttien vastaussanomat ovat Verohallinnon määrittelemää rivipohjaista dataa, jossa rivierottimena on merkki #10 ns. unix-rivinvaihto. 5.7 Katso- ja Raksi-välilehdet 5.7.1 Katso-kirjautuminen Jotta Katso-välilehdellä olevia ilmoituksia (TVR, Vero, Tulli) voi lähettää, tulee sessiossa olla tieto hyväksytystä Katso-kirjautumisesta. Tyvin ilmoituksista OTP-tunnistautumisen vaativia ilmoituksia ovat kausiveroilmoituikset sekä tuloveroilmoitukset. Näistä Katsovälilehden kautta voi lähettää vain kausiveroilmoituksia. Muille Katsoa vaativille ilmoituksille PWD on riittävä tunnistautumistaso. Pakolliset parametrit: s Sessiotunniste username Katso-kirjautumistunnus, normaalisti 6 merkkiä, esim. d27ri2. password logintype Katso-tunnuksen salasana. Joko PWD tai OTP. Jos OTP, pitää myös parametri otp antaa.

OpusCapita TYVI AJL 15 (28) Vapaaehtoiset parametrit: otp logintype ollessa OTP, seuraava käyttämättömän OTP-salasana OTPlistalta. Vaaditaan Veron kausiveroilmoituksien lähettämiseen. Esimerkki: Katso-kirjautumiskomento POST /ec/tyvi-r5/p/iea/katso/login HTTP/1.1 Host: www.tyvi.fi Content-type: multipart/form-data; boundary=boundary-string-should-not-appear-in-data Content-length: 521 Content-Disposition: form-data; name="s" aqsyoakgkljpxn3 Content-Disposition: form-data; name="username" d27ri2 Content-Disposition: form-data; name="password" katsosalasana Content-Disposition: form-data; name="logintype" OTP Content-Disposition: form-data; name="otp" 123456 -- 5.7.2 Katso-kirjautumisviestin lukeminen Vastaus kertoo, kuka on kirjautunut Katsolla sovellukseen sekä milloin tunnistautuminen menee vanhaksi (deadline). Deadline ilmoitetaan GMT-aikana ja on voimassa 10 minuuttia kerrallaan. Esimerkkivastaus: HTTP/1.1 200 OK Transfer-Encoding: chunked Content-type: text/xml <?xml version="1.0" encoding="utf-8"?> <iea-response xmlns="http://tyvi.elma.fi/schema/200710/iea"> <status id="0">ok</status> <session> aqsyoakgkljpxn3</session>

OpusCapita TYVI AJL 16 (28) <use-base>https://www.tyvi.fi/a/ec/tyvi-r5/p/iea/</use-base> <deadline>2014-08-11t05:04:32.740z</deadline> <kid>d27ri2</kid> <version>katso-1.1</version> <personname>test Person </personname> <accountexpiring>false</accountexpiring> </iea-response> Virhetilanteessa, jossa on OTP-avainluku mukana, on vastaus muotoa <?xml version="1.0" encoding="utf-8"?> <iea-response xmlns="http://tyvi.elma.fi/schema/201408/iea"> <status id="100">authentication failure</status> <session> aqsyoakgkljpxn3</session> <use-base> https://www.tyvi.fi/a/ec/tyvi-r5/p/iea/</use-base> <accountexpiring>false</accountexpiring> <nextotpcode>154</nextotpcode> </iea-response> Vastaus kertoo seuraavan vaaditun OTP-avaimen numeron kentässä nextotpcode. 5.7.3 Katso- ja Raksi-välilehden listaaminen Vastaavantyylinen komento kuin query, mutta hakee kaikki Katso- ja Raksi-välilehdellä olevat ilmoitukset. Pakolliset parametrit: s sessiotunniste Esimerkki: Katso-välilehden listaaminen: POST /ec/tyvi-r5/p/iea/katso/list HTTP/1.1 Host: www.tyvi.fi Content-type: multipart/form-data; boundary=boundary-string-should-not-appear-in-data Content-length: 149 Content-Disposition: form-data; name="s" aqsyoakgkljpxn3 -- 5.7.4 Katso- ja Raksi-välilehden listauksen vastauksen lukeminen Vastaus kertoo lomakkeen tunnisteen (message_id), itse lomakkeen tyypin (form), ilmoitettavan yrityksen y-tunnuksen (identifier) sekä nimen (common_name) ja mille ajalle ilmoitus kohdistuu (period). Esimerkkivastaus:

OpusCapita TYVI AJL 17 (28) HTTP/1.1 200 OK Transfer-Encoding: chunked Content-type: text/xml <?xml version="1.0" encoding="utf-8"?> <iea-response xmlns="http://tyvi.elma.fi/schema/200710/iea"> <status id="0">ok</status> <session> aqsyoakgkljpxn3</session> <use-base>https://www.tyvi.fi/a/ec/tyvi-r5/p/iea/</use-base> <forms> <form> <message_id>12345</message_id> <form>veroraksi.vsurakka</form> <identifier>1234567-1</identifier> <common_name>test Company</common_name> <period>2014-01</period> </form> </forms> </iea-response> 5.7.5 Katso- ja Raksi-ilmoituksen lähettäminen Tapahtuu ilmoittamalla message_id parametri katso/send-toiminnolle. Pakolliset parametrit: s message_id sessiotunniste Lähetettävän viestin tunniste, saatu katso/list-toiminnosta. Esimerkki: Raksi-ilmoituksen lähettäminen POST /ec/tyvi-r5/p/iea/katso/send HTTP/1.1 Host: www.tyvi.fi Content-type: multipart/form-data; boundary=boundary-string-should-not-appear-in-data Content-length: 253 Content-Disposition: form-data; name="s" aqsyoakgkljpxn3 Content-Disposition: form-data; name="message_id 12345 --

OpusCapita TYVI AJL 18 (28) 5.7.6 Katso- ja Raksi-ilmoituksen lähetyksen vastauksen lukeminen Onnistunut lähetys tuottaa paluuviestin, jossa status_id=0 (OK). Raksi-ilmoituksissa tulee vielä ilmoituksen Veron puolen tunniste kentässä s807. Kyseistä tunnistetta tulee käyttää mm. kyseisen lomakkeen korjausilmoituksissa. Katso-välilehteä käyttävät ilmoitukset (ei Raksi-ilmoitukset) eivät sisällä tätä kenttää. Esimerkkivastaus: HTTP/1.1 200 OK Transfer-Encoding: chunked Content-type: text/xml <?xml version="1.0" encoding="utf-8"?> <iea-response xmlns="http://tyvi.elma.fi/schema/200710/iea"> <status id="0">ok</status> <session> aqsyoakgkljpxn3</session> <use-base> https://www.tyvi.fi/a/ec/tyvi-r5/p/iea/</use-base> <message_id>12345</message_id> <s087>v14077376774692</s087> </iea-response> 5.8 PDF-kuitti Lähetetyistä ilmoituksista on mahdollista ladata PDF-muotoinen kuitti. Lähetetyt ilmoitukset listataan pdf/list-komennolla, jonka vastauksesta saatavalla message_id-tunnisteella voi ladata kuitin käyttämällä pdf/download-komentoa. 5.8.1 PDF-kuittien listaus Pakolliset parametrit: s bid Sessiotunniste Y-tunnus. Määrittelee minkä yrityksen tiedot haetaan. Esimerkki: POST /ec/tyvi-r5/p/iea/pdf/list/ HTTP/1.1 Host: www.tyvi.fi Content-Length: 237 Content-Type: multipart/form-data; boundary=boundary-string-should-not-appear-in-data Content-Disposition: form-data; name="s" h9fi5uqrip0twrf Content-Disposition: form-data; name="bid" 1234567-1 --

OpusCapita TYVI AJL 19 (28) 5.8.2 PDF-kuittien listauksen lukeminen Vastaus kertoo lomakkeen tunnisteen (message_id), itse lomakkeen tyypin (form), ilmoitettavan yrityksen nimen (common_name), mille ajalle ilmoitus kohdistuu (period) ja lähetysajan (deliver_time). Esimerkkivastaus: HTTP/1.1 200 OK Transfer-Encoding: chunked Content-Type: text/xml <?xml version="1.0" encoding="utf-8"?> <iea-response xmlns="http://tyvi.elma.fi/schema/200710/iea"> <status id="0">ok</status> <session>h9fi5uqrip0twrf</session> <use-base>https://www.tyvi.fi/a/ec/tyvi-r5/p/iea/</use-base> <pdfs> <pdf> <message_id>12345</message_id> <form>verovuosi.vheritp</form> <common_name>test Company</common_name> <period>2015</period> <deliver_time>2016-01-02 13:14:15.678901</deliver_time> </pdf> <pdf> <message_id>12346</message_id> <form>verovuosi.vheritp</form> <common_name>test Company</common_name> <period>2015</period> <deliver_time>2016-01-03 14:15:16.789012</deliver_time> </pdf> </pdfs> </iea-response> 5.8.3 PDF-kuitin lataus Pakolliset parametrit: s message_id Sessiotunniste Lähetettävän viestin tunniste, saatu pdf/list-toiminnosta. Esimerkki: POST /ec/tyvi-r5/p/iea/pdf/download/ HTTP/1.1 Host: www.tyvi.fi Content-Length: 240 Content-Type: multipart/form-data; boundary=boundary-string-should-not-appear-in-data

OpusCapita TYVI AJL 20 (28) Content-Disposition: form-data; name="s" h9fi5uqrip0twrf Content-Disposition: form-data; name="message_id" 12345 -- 5.8.4 PDF-kuitin lukeminen Vastauksena tulee <pdffile>-elementti, jolla on status-attribuutti, joka on joko ok, delayed tai in_progress. Jos status on ok, pdffile-elementin alla on <content>-elementti, joka sisältää ladattavan tiedoston ja <filename>-elementti, joka sisältää tallentamiseen käytettäväksi sopivan tiedostonimen. Tiedosto on Base64-koodattu PDF. Jos statusattribuutti on queued, kuittitiedoston luonti suoritetaan taustalla sen suuren koon vuoksi ja tällöin tiedosto on ladattavissa kun tiedosto on valmis, eli yleensä 10 minuutin kuluessa. Jos kuittia yritetään tämän jälkeen ladata ennen kuin se on valmistunut, status on in_progress. Esimerkkivastaus: HTTP/1.1 200 OK Transfer-Encoding: chunked Content-Type: text/xml <iea-response xmlns="http://tyvi.elma.fi/schema/200710/iea"> <status id="0">ok</status> <session> h9fi5uqrip0twrf</session> <use-base>https://potoo.itella.net:11394/ec/tyvi-r5/p/iea/</use-base> <pdffile status= ok > <content>jvberi0xljqkmsawig9iago8paovvgl0bgugkp7/ae8acab1ahmaqwb hahaaaqb0ageaiabuafka JUVPRgo= </content> <filename>1234567-1_palkansaajakohtainen_yhteenveto_ja_erittely.pdf</filename> </pdffile> </iea-response> 5.9 Uloskirjautuminen palvelusta Sessio tulee sulkea tiedonsiirron lopuksi. Sulkeminen tapahtuu tekemällä pyyntö URL:n, jonka komento-osa on terminate, esimerkiksi https://www.tyvi.fi/ec/tyvi-r5/p/iea/terminate Kutsulle voi antaa parametreina seuraavat tiedot: Pakolliset parametrit: s sessiotunniste

OpusCapita TYVI AJL 21 (28) Esimerkki: Uloskirjautuminen palvelusta POST /ec/tyvi-r5/p/iea/terminate HTTP/1.1 Host: www.tyvi.fi Content-type: multipart/form-data; boundary=boundary-string-should-not-appear-in-data Content-length: 157 Content-Disposition: form-data; name="s" aqsyoakgkljpxn3 -- 5.10 Vastausviesti ja yhteyden katkaisu Tämän jälkeen vastausviesti voidaan lukea ulkoskirjautumisesta. 6 TESTAAMISEEN LIITTYVIÄ HUOMIOITA Lähdettäessä kehittämään ja testaamaan integrointikoodia OpusCapita TYVI-palvelua vasten, seuraavat asiat tulisi huomioida. 1. Testaamiseen tarvitsette OpusCapita TYVI-testitunnuksen ja salasanan. Jos teillä ei ole tunnuksia, ottakaa yhteys OpusCapitan Service Deskiin 2. Palvelua testataan OpusCapita TYVI-tuotantopalvelimella testitunnuksin. Vaikka palvelu on tuotanto-palvelu, mikään aineisto ei siirry oikeasti eteenpäin, koska tunnukset ovat palvelussa testistatuksella. 3. Itse lähetettävän aineiston oikeellisuus kannattaa testata ennen kuin aineistoa yrittää lähettää ohjelmistointegraatiokoodilla. Hyvin usein ongelmana on joko se, että data on epävalidia tai sitä ei voi lähettää kyseiselle testitunnuksella ollenkaan. Nämä asiat on syytä tarkastaa ennen kuin testaus oman koodin kanssa aloitetaan. 4. Tyypillisesti ohjelmistotalolle annetulla testitunnuksella voi ilmoittaa ainoastaan yhden yrityksen tietoja. Tämä yritys on testaava yritys ts. ohjelmistotalo itse. Y- tunnus testiaineistossa tulisi siis olla testitunnuksen omaavan yrityksen oma y- tunnus. 5. Kun testiaineisto on oikeanlaista, kannattaa sen lähettämistä testata seuraavaksi curl-ohjelman avulla esim. curl --insecure -d "username=testitunnus&password=salasana&software=test" https://www.tyvi.fi/ec/tyvi-r5/p/iea/auth/. 6. Tämän jälkeen kannattaa aloittaa testaaminen omalla sovelluksella. Jos kehityksen ja testauksen aikana tulee ongelmia, niistä kannattaa ilmoittaa OpusCapitan Service Deskiin. Mukaan tulisi liittää mieluusti lyhyt ongelman kuvaus, testattava aineisto sekä tuloste tehdystä pyynnöstä ja palvelun antamasta vastauksesta sekä

OpusCapita TYVI AJL 22 (28) testausajankohdasta. Testauksen tukipalvelu on maksullista ja siitä veloitetaan tuntityöperusteisesti voimassa olevan hinnaston mukaisesti.

OpusCapita TYVI AJL 23 (28) 7 UUDET OMINAISUUDET VERSIOSSA 2.2 4.3.2016 o pdf/list ja pdf/download käskyt lisätty. Käskyt dokumentoitu kappalessa 5. 25.8.2014 Version 2.2 muutokset o Vastaussanoman XML-nimiavaruus riippuu käytetystä protokollaversiosta seuraavasti: 1. 2.0 = http://tyvi.elma.fi/schema/200411/iea 2. 2.1 = http://tyvi.elma.fi/schema/200710/iea o 3. 2.2 = http://tyvi.elma.fi/schema/201408/iea Transmit-käskyn paluusanomaan lisätty message_id -elementti ilmoitukselle. 11.8.2014 versiomuutokset (ei uutta protokollaversiota) o Katso/login, katso/list ja katso/send käskyt lisätty. Käskyjen myötä täysi tuki Katso-lähetykselle integraatiorajapinnan läpi. Käskyt dokumentoitu kappaleessa 5. o o o o Katso-id parametri poistettu vanhentuneena auth-käskyn parametrilistalta. Virhekoodia 114 muutettu vastaamaan nykyistä tarkoitusta. Lisätty add_company käsky. Päivitetty schema-kuvaus Edeltävät 2.1 muutokset o Sisäänkirjautumisessa on kaksi uutta vapaaehtoista parametriä force-redirect ja protocol-version, jotka on dokumentoitu kappaleessa 5. o Sisäänkirjautuminen voi johtaa redirektiin o Kaksi uuttaa virhekoodia 112 ja 113 on dokumentoitu kappaleessa 4. o Vastaussanomat voivat aina sisältää tagin <use-base> o Vastaussanoman XML-nimiavaruus riippuu käytetystä protokollaversiosta seuraavasti: 1. 2.0 = http://tyvi.elma.fi/schema/200411/iea 2. 2.1 = http://tyvi.elma.fi/schema/200710/iea o Versiossa 1.2 lisätty KATSO- tunnistautumiseen liittyvät osat.

OpusCapita TYVI AJL 24 (28) 1. Sisäänkirjautumisessa uusi vapaaehtoinen parametri katso-id, joka on dokumentoitu kappaleessa 5. 2. Yksi uusi virhekoodi 114 on dokumentoitu kappaleessa 4.

OpusCapita TYVI AJL 25 (28) 8 VIITTEET 1 HTTPS, RFC 2818, Network Working Group Request for Comments: 2818, Category: Informational, http://www.ietf.org/rfc/rfc2818.txt 2 URL, RFC 1738 (RFC1738), Network Working Group Request for Comments: 1738, Category: Standards Track, http://www.faqs.org/rfcs/rfc1738.html 3 XML, Extensible Markup Language (XML) 1.0 (Third Edition), W3C Recommendation 04 February 2004, http://www.w3c.org/tr/2004/rec-xml-20040204/ 4 XML Schema, XML Schema Part 0: Primer Second Edition, W3C Recommendation 28 Octo-ber 2004, http://www.w3c.org/tr/xmlschema-0/ 5 MIME, RFC 1341 (RFC1341), Network Working Group Request for Comments: 1341, http://www.faqs.org/rfcs/rfc1341.html 6 MIME Multipart/Related Content Type, RFC 2112 (RFC2112), Network Working Group Re-quest for Comments: 2112, Obsoletes: 1872, Category: Standards Track, http://www.faqs.org/rfcs/rfc2112.html 9 VERSIOHISTORIA Versio Aika Muutos 1.1 4.10.2007 Edellinen ohjelmistotaloille suunnattu päivitys 1.2 24.11.2009 KATSO-toiminnallisuuden lisäys dokumentaatioon, kts. kappale 7. 1.3 16.1.2013 Palvelun osoite päivitetty uuteen: https://tyvi.elma.fi/ec/tyvir5/p/iea/ 1.4 11.8.2014 Palvelun osoitteet päivitetty www.tyvi.fi-mallisiksi. Lisätty katso/login, katso/list ja katso/send toiminnot. Poistettu vanhentunut viittaus katso-id kirjautumispolusta (p/iea/auth). Lisätty add_company-käsky. 1.5 25.8.2014 Lisätty versio 2.2 (message_id transmit-käskyn paluusanomaan) ja schema versiolle 2.2 1.6 4.3.2016 Lisätty PDFkuittitoiminnallisuus, kts. kappale 7.

OpusCapita TYVI AJL 26 (28) Liite 1. Paluuviestin schema-kuvaus <?xml version="1.0" encoding="utf-8"?> <!-- IEA Schema $Revision: 81666 $ --> <xsd:schema xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:iea="http://tyvi.elma.fi/schema/201408/iea" targetnamespace="http://tyvi.elma.fi/schema/201408/iea" elementformdefault="qualified"> <xsd:element name="iea-response"> <xsd:complextype> <xsd:sequence> <xsd:element name="status" type="iea:statustype"/> <xsd:element name="session" type="xsd:string" minoccurs="0"/> <xsd:element name="terminated-session" type="xsd:string" minoccurs="0"/> <xsd:element name="use-base" type="xsd:string" minoccurs="0"/> <xsd:element name="transfer" type="iea:transfertype" minoccurs="0"/> <xsd:element name="query" type="iea:querytype" minoccurs="0"/> <!-- katso/list --> <xsd:element name="forms" type="iea:formstype" minoccurs="0"/> <!-- katso/login --> <xsd:element name="deadline" type="xsd:datetime" minoccurs="0"/> <xsd:element name="kid" type="xsd:string" minoccurs="0"/> <xsd:element name="version" type="xsd:string" minoccurs="0"/> <xsd:element name="personname" type="xsd:string" minoccurs="0"/> <xsd:element name="accountexpiring" type="xsd:boolean" minoccurs="0"/> <xsd:element name="nextotpcode" type="xsd:string" minoccurs="0"/> <!-- katso/send --> <xsd:element name="reason" type="xsd:string" minoccurs="0"/> <xsd:element name="info" type="xsd:string" minoccurs="0"/> <xsd:element name="errors" type="iea:errorstype" minoccurs="0"/> <xsd:element name="message_id" type="xsd:integer" minoccurs="0"/> <xsd:element name="s087" type="xsd:string" minoccurs="0"/> <xsd:element name="signature" type="xsd:string" minoccurs="0"/> <!-- pdf/list --> <xsd:element name="pdfs" type="iea:pdfstype" minoccurs="0"/> <!-- pdf/downlowd --> <xsd:element name="pdffile" type="iea:pdffiletype" minoccurs="0"/> </xsd:sequence> </xsd:complextype> </xsd:element> <xsd:complextype name="statustype"> <xsd:simplecontent> <xsd:extension base="xsd:string"> <xsd:attribute name="id" type="xsd:nonnegativeinteger" use="required"/> </xsd:extension> </xsd:simplecontent> </xsd:complextype> <xsd:complextype name="recordtypetype"> <xsd:simplecontent> <xsd:extension base="xsd:string"> <xsd:attribute name="id" type="xsd:string" use="required"/> </xsd:extension> </xsd:simplecontent> </xsd:complextype> <xsd:complextype name="transfertype"> <xsd:sequence> <xsd:element name="record" type="iea:transferrecordtype" minoccurs="0" maxoccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="mode" type="iea:transfermodetype"/> </xsd:complextype> <xsd:complextype name="transferrecordtype"> <xsd:sequence> <xsd:element name="type" type="iea:recordtypetype"/> <xsd:element name="message_id" type="xsd:integer" minoccurs="0"/>

OpusCapita TYVI AJL 27 (28) <xsd:element name="error" type="iea:statustype" minoccurs="0"/> </xsd:sequence> <xsd:attribute name="num" type="xsd:positiveinteger" use="required"/> </xsd:complextype> <xsd:simpletype name="transfermodetype"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="test"/> </xsd:restriction> </xsd:simpletype> <xsd:complextype name="querytypetype"> <xsd:simplecontent> <xsd:extension base="xsd:string"> <xsd:attribute name="id" type="xsd:string" use="required"/> <xsd:attribute name="count" type="xsd:nonnegativeinteger" use="required"/> </xsd:extension> </xsd:simplecontent> </xsd:complextype> <xsd:complextype name="querytype"> <xsd:sequence> <xsd:element name="type" type="iea:querytypetype" minoccurs="0" maxoccurs="unbounded"/> <xsd:element name="download-token" type="xsd:string" minoccurs="0" maxoccurs="1"/> </xsd:sequence> <xsd:attribute name="results" type="xsd:nonnegativeinteger" use="required"/> </xsd:complextype> <xsd:complextype name="formstype"> <xsd:sequence> <xsd:element name="form" type="iea:formtype" minoccurs="0" maxoccurs="unbounded"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="formtype"> <xsd:sequence> <xsd:element name="message_id" type="xsd:integer"/> <xsd:element name="form" type="xsd:string"/> <xsd:element name="identifier" type="xsd:string"/> <xsd:element name="common_name" type="xsd:string"/> <xsd:element name="period" type="xsd:string"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="pdfstype"> <xsd:sequence> <xsd:element name="pdf" type="iea:pdftype" minoccurs="0" maxoccurs="unbounded"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="pdftype"> <xsd:sequence> <xsd:element name="message_id" type="xsd:integer"/> <xsd:element name="form" type="xsd:string"/> <xsd:element name="common_name" type="xsd:string"/> <xsd:element name="period" type="xsd:string"/> <xsd:element name="deliver_time" type="xsd:string"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="pdffiletype"> <xsd:sequence> <xsd:element name="content" type="xsd:string" minoccurs="0" maxoccurs="1"/> <xsd:element name="filename" type="xsd:string" minoccurs="0" maxoccurs="1"/> </xsd:sequence> <xsd:attribute name="pdfstatus" use="required"> <xsd:simpletype> <xsd:restriction base="xsd:string"> <xsd:enumeration value="ok"/> <xsd:enumeration value="delayed"/>

OpusCapita TYVI AJL 28 (28) <xsd:enumeration value="in_progress"/> </xsd:restriction> </xsd:simpletype> </xsd:attribute> </xsd:complextype> <xsd:complextype name="errorstype"> <xsd:sequence> <xsd:element name="error" type="iea:errortype" minoccurs="0" maxoccurs="unbounded"/> </xsd:sequence> </xsd:complextype> <xsd:complextype name="errortype"> <xsd:simplecontent> <xsd:extension base="xsd:string"> <xsd:attribute name="field" type="xsd:string"/> <xsd:attribute name="value" type="xsd:string"/> </xsd:extension> </xsd:simplecontent> </xsd:complextype> </xsd:schema>