OmaVeroon ei voi kirjautua torstaina 29.1. klo 16.00 alkaen. Palvelu sulkeutuu huoltokatkon takia kokonaan klo 17.00, jolloin kirjaudut ulos automaattisesti. Jos et saa kaikkea valmiiksi ajoissa, tallenna tiedot keskeneräisenä. Pääset OmaVeroon jälleen klo 21.00.
Tekniset vaatimukset Push-notifikaatiopalvelun käyttöön
Push-notifikaatiopalvelun käyttäjän on tarjottava Verohallinnolle rajapinta, johon push-notifikaatiot voi lähettää julkisen internetin kautta. Rajapinnan on täytettävä seuraavat tekniset- ja turvallisuusvaatimukset:
- HTTPS REST/JSON rajapinta, jota voi kutsua julkisesta Internetistä
- Rajapinnan osoitteen lopussa on oltava seuraava vakio-osa: “/Notify/v1”
Esimerkki: https://{client host name}/Notify/v1 - Rajapinnan on otettava vastaan ainoastaan seuraavassa kuvatun kaltaisia JSON-notifikaatiosanomia HTTP POST-kutsujen bodyssä:
{
"Environment": "FIP",
"NotificationKey": 0,
"NotificationType": "string",
"SubscriptionId": 0,
"Timestamp": "2021-04-22T12:01:33.478+02:00"
}
- Environment on vakioteksti, joka kertoo käytettävän ympäristön. “FIP” on tuotantoympäristö, “FIS” on testiympäristö.
- Rajapinnan on vastattava 10 sekunnin sisällä Verohallinnon lähettämään notifikaatiokutsuun.
- Rajapinnan on vastattava HTTP-koodilla 200 OK kun rajapinta on onnistuneesti vastaanottanut push-notifikaatiosanoman. Tämä vastaus toimii kuittauksena Verohallinnon suuntaan push-notifikaation vastaanottamisesta. Vastauksessa ei tule olla bodyä.
- Vero API push-notifikaatiopalvelu yrittää lähettää saman notifikaation asiakkaan järjestelmän rajapintaan korkeintaan kolme kertaa, mikäli rajapinta ei vastaa ollenkaan tai antaa muun kuin 200 OK HTTP-koodin. Kolmen yrityksen jälkeen push-notifikaatiopalvelu ei yritä lähettää samaa notifikaatiota uudelleen. Epäonnistumisesta lähetetään sähköposti notifikaatiotilauksessa annetun yhteyshenkilön sähköpostiosoitteeseen. Mikäli vastaanottovirheitä tapahtuu riittävä määrä tietyn ajan kuluessa, push-notifikaatioiden toimitus keskeytetään ja asiasta lähetetään sähköpostiviesti. Asiakkaan järjestelmän tulee selvittää notifikaatioiden toimituksen epäonnistumisen syy, korjata se ja tämän jälkeen push-endpointin voi rekisteröidä uudelleen.
- Verohallinto ei takaa push-notifikaatioiden perillemenoa. Asiakkaan järjestelmän kannattaa säännöllisesti kutsua ListNotifications-rajapintaa ja tarkistaa, että kaikki notifikaatiot on käsitelty.
- Rajapinnan on tuettava “HEALTHCHECK”-tyyppistä notifikaatiota ja vastattava siihen HTTP-koodilla 200 OK välittömästi. Tämä notifikaatiotyyppi on tarkoitettu rajapinnan toimivuuden tarkistamiseen.
- Vero API push-notifikaatiopalvelu lähettää ”HEALTHCHECK” -notifikaatiotyypin, kun uuden rajapinnan osoitteen rekisteröi. Lisäksi health check voidaan lähettää muulloinkin yhteyden toimivuuden varmistamiseksi. Asiakkaan järjestelmän ei tarvitse reagoida tähän muulla tavalla kuin vastaamalla 200 OK.
- RegisterPush -rajapintaa tulee kutsua ainoastaan silloin kun ensimmäisen kerran rekisteröi oman rajapintansa tai omaan rajapintaan tulee muutoksia (esim. callback secret muuttuu tai lopettaa push-tilauksen). RegisterPush -rajapinnan käyttö on verohallinnon puolella käyttömäärältään rajoitettu, joten rajapinta sallii ainoastaan yhden kutsun kerrallaan.
- Asiakkaan järjestelmä voi tarkistaa Vero API push-notifikaatiopalvelun rekisteröinnin tilanteen kutsumalla ListSubscriptions-rajapintaa. Push-rekisteröinnin tila kertoo palvelun tilan, active = push-notifikaatioita toimitetaan, fail = yhteys asiakkaan rajapintaan on epäonnistunut ja push-notifikaatioiden toimitus on katkaistu, pending = health check-tarkistus on meneillään ja push-notifikaatioita ei toimiteta asiakkaan järjestelmään.
- Uuden push-osoitteen rekisteröinnin onnistuttua, Vero API push-notifikaatiopalvelu lähettää sähköpostin onnistuneesta rekisteröinnistä notifikaatiotilauksen yhteydessä annettuun yhteyshenkilön sähköpostiosoitteeseen. Lähettäjänä DoNotReply@vero.fi -osoite. Varmista, että sähköposti vastaanotetaan, jotta myös poikkeustilanteissa saapuvat häiriöilmoitukset vastaanotetaan onnistuneesti.
- Asiakkaan järjestelmän rajapinnan toimivuutta on monitoroitava ja rajapinnan ylläpidosta vastaavien on reagoitava ja korjattava virhetilanteet.
- Jos push-notifikaatioiden toimitus halutaan lopettaa tai on tarve päivittää asiakkaan rajapinnan osoitetta, asiakkaan järjestelmä voi tehdä nämä muutokset kutsumalla RegisterPush-rajapintaa. Lähettämällä tyhjän push-osoitteen (callbackURL), push-notifikaatioiden toimitus lopetetaan. Vanhan osoitteen voi päivittää uudeksi lähettämällä RegisterPush-rajapinnan kautta uuden osoitteen.
- Jos asiakkaan järjestelmän rajapinnassa on huoltokatko tai tarvitaan pidempi tauko, jolloin push-notifikaatioita ei voida vastaanottaa, on push-rekisteröinti päätettävä katkon ajaksi. Asiakkaan järjestelmän on noudettava katkon päätyttyä katkon aikaiset notifikaatiot ListNotifications-rajapinnalla. Mikäli push-rekisteröintiä ei päätä, katkeaa notifikaatioiden toimitus automaattisesti uudelleen yritysten jälkeen.
Asiakkaan järjestelmän rajapinnan turvallisuusvaatimukset
Push-notifikaatioiden tietosisältö ei ole arkaluontoista ja se ei sisällä henkilötietoja. Tietosisältö koostuu ainoastaan teknisistä avaintiedoista.
- Asiakkaan järjestelmän rajapinnan on käytettävä mutual TLS / client certificate authentication-menettelyä ja pyydettävä kutsujalta client-varmenne SSL-kättelyn yhteydessä. Varmenteesta on tarkistettava, että sen myöntäjä on Verohallinto. Tällä tavalla asiakkaan järjestelmä varmistaa, että kutsuja on Verohallinto.
- Edellytä client certificate authentication-menettelyä rajapinnan kutsujilta
- Verohallinnon rajapintaa kutsuva client-ohjelma antaa kättelyssä varmenteen, jonka on allekirjoittanut Verohallinto CA.
- Asiakkaan järjestelmän tulee ladata myöntäjän CA-paketti Vero.fi:stä ja käyttää sitä kutsujan tunnistamisessa. CA-paketti on ladattavissa täältä: IRServicesIssuingCAv1-chain.cacert.zip, (ZIP)
- Huom! Testi- ja tuotantoympäristöissä on eri CA.
- Asiakkaan järjestelmän rajapinta on suojattava lisäksi asiakkaan järjestelmän ilmoittamalla salaisuudella (API-avain).
- Asiakkaan järjestelmä ilmoittaa käytettävän salaisuuden (API-avaimen) push-endpointin rekisteröinnin yhteydessä. Salaisuus (API-avain) on base64-enkoodattu merkkijono, jonka pituus on vähintään 32 merkkiä.
- Verohallinto lähettää push-rajapintakutsujen yhteydessä tämän salaisuuden headerissa “vero-callback-secret”. Asiakkaan järjestelmän on tarkistettava, että headeria käytetään ja siinä tullut arvo on sama mikä rekisteröinnissä on annettu.
- Asiakkaan järjestelmän rajapinnan on käytettävä HTTPS-protokollaa ja TLS 1.2 versiota tai uudempaa
- Rajapinnan on tuettavat jotakin seuraavista Cipher suiteista:
- TLS_AES_128_GCM_SHA256
- TLS_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- Verohallinnon push-notifikaatiopalvelu lähettää kutsut asiakkaan järjestelmään Azure-pilvipalvelusta. Push-notifikaatiopalvelulla on ennalta määritellyt IP-osoitteet, joista kutsut tulevat:
- Testiympäristö 57.153.39.45
- Tuotanto 108.142.42.70
- Asiakkaan järjestelmään on tehtävä tarvittavat palomuuriavaukset sallimaan liikenne porttiin 443 kyseisistä Azure-osoitteista.
Push-notifikaatioiden testaus
Vero API-testiympäristössä push-notifikaatioiden testauksen voi suorittaa ainoastaan kutsumalla RegisterPush-rajapintaa. Annettuun osoitteeseen lähetetään tällöin reaaliaikaisesti yksi HEALTHCHECK-tyyppinen notifikaatiosanoma RegisterPush-kutsun aikana. RegisterPush-kutsu onnistuu, mikäli rekisteröinnissä annettu osoite (callbackURL) vastaa 200 OK HEALTHCHECK-notifikaatioon. Tämän avulla voi varmistaa testiympäristössä, että tarjottu rajapinta pystyy vastaanottamaan notifikaatioita Verohallinnosta. Onnistunut RegisterPush-kutsu testiympäristössä ei lähetä sähköpostia eikä kyseinen rekisteröinti tallennu mihinkään.
Hyväksymistestauksen avulla Vero API tuotantoympäristössä voi varmistaa tuotantoympäristön Push-notifikaatioiden toimituksen yhteydet ja ympäristön toimivuuden. Verification/RegisterPush-lähettää kutsun aikana HEALTHCHECK-notifikaation annettuun osoitteeseen samaan tapaan kuin testiympäristö.