Tjenesten for tilleggsinformasjon (TINFO) benytter oppslag mot 1881.no for å finne privatadresse og telefonnummer på en sluttbruker. |
TINFO-tjenesten er foreløpig i preview-status ment for evaluering og skal ikke benyttes for kommersielle anvendelser |
TINFO består av et REST API med en tilhørende testklient. Testklienten benytter REST APIet.
Pilottjenesten inneholder i seg selv ingen teknisk kobling mellom innlogging med BankID og etterfølgende oppslag på privatadresse og telefonnummer som tilleggsinformasjon. Det forutsettes at pilotbrukersteder gjør en innlogging med BankID i eget system før pilottjenesten kalles. Pilotbrukerstedene forutsettes å benytte følgende data fra BankID-innloggingen som input til pilottjenesten:
Det forutsettes at pilotbrukerstedene viser en consent-screen til sluttbruker ala "Aksepterer du at din privatadresse og ditt telefonnummer utleveres fra BankID til <BRUKERSTED>?"
Se etterfølgende avsnitt for en nærmere beskrivelse av pilottjenesten:
Pilottjenesten er tilgjengelig i ulike miljøer og benytter basic auth for tilgang. Kontakt developer@bankidnorge.no for forespørsel om tilgang.
En demo i form av en implementasjon som først gjør en innlogging med BankID før pilottjenesten kalles er åpent tilgjengelig.
prod | preview | pre-prod | protoype | |
Pilottjenesten (TINFO) | ||||
Testklient | na | test | test | xxx |
REST API base URL | na | preview.bankidapis.no/tinfo | preprod.bankidapis.no/tinfo | xxx |
Demo | ||||
Test TINFO med BankID | na | demo | demo | xxxx |
Merk: Alle miljøer virker mot produksjonsmiljøet til 1881.
Datagrunnlaget for 1881 er bestemmende for i hvilken grad pilottjenesten vil klare å finne privatadresse og telefonnummer på en vilkårlig sluttbruker.
Databasen hos 1881 har mange inputkilder, der nattlige oppdateringer av abonnementsdata fra teleoperatørene utgjør grunnstammen. Brukere som har reservert seg mot katalogoppføringer vil fortsatt oversendes fra teleoperatørene til 1881, men markeres som reservert hos 1881.
For ca. 90% av abonnementene er brukeren kjent og det finnes fødselsdato på brukeren. Brukeren på et abonnement kalles "person" hos 1881. For privatabonnementer sammenfaller dette i all hovedsak med juridisk eier. For bedriftsabonnementer finnes det et "company" hos 1881 som utgjør juridisk eier. Blant bedriftsabonnementene er det mange hvor brukeren ikke er kjent, dvs. at det ikke finnes noen "person" hos 1881.
Hos 1881 finnes det ca 5 millioner innslag på "person" og ca 2 mill innslag på "company". For et vilkårlig telefonnr kan man derfor regne ca. 70% som nedre grense for treffprosent på privatadresse. Faktisk treffprosent fra pilottjenesten vil imidlertid være høyere fordi tjenesten gjør også andre søk enn oppslag på telefonnummer (se mer info under). F.eks. vil tjenesten gi treff på privatadresse en sluttbruker har (ett eller flere) privatabonnement i tillegg til et bedriftsabonnement. Hva som er faktisk treffprosent fra pilottjenesten i praktisk er pt. ukjent, og er derfor et viktig punkt å avklare gjennom pilotperioden.
APIet består av kun ett endepunkt med 3 parametere (Telefonnummer, Fullt navn, Fødselsdato DDMMYY) der enten telefonnummer eller fullt navn må være satt. Se nærmere beskrivelse av søkealgoritme under.
[baseurl]/api1881/search?number=<number>&commonname=<commonname>&birthdate=<DDMMYY>
APIet forventer angivelse av fullt navn slik dette er angitt i CommonName-feltet i et BankID sertifikat. Følgende formater støttes, der førstnevnte er gjeldende navnestandard i BankID:
Det er antatt at etternavn kun består av ett ord.
{
"statusMessage": "Status Melding (String)",
"statusCode": "Status Code (int)",
"personContactInfo": {
"firstName": "String",
"middleName": "String",
"lastName": "String",
"birthDate": "String med format {YYYY-MM-DD}",
"streetName": "String",
"houseNumber": "String",
"houseLetter": "String",
"postalCode": "String",
"postalArea": "String",
"numbers": ["String liste"]
},
"companyContactInfo": {
"companyName": "String",
"streetName": "String",
"houseNumber": "String",
"houseLetter": "String",
"postalCode": "String",
"postalArea": "String",
"contactName": "String",
"contactValue": "String"
}
}
Et resultat som stammer fra persontreff hos 1881, vil returneres i "personContactInfo" feltet, og et resultat som stammer fra companytreff hos 1881 vil returneres i "companyContactInfo" feltet.
Respons:
{
"statusMessage": "One person hit",
"statusCode": 1,
"personContactInfo": {
"firstName": "Ole",
"middleName": null,
"lastName": "Hansen",
"birthDate": "1950-01-06T",
"streetName": "Furusethveien",
"houseNumber": "35",
"houseLetter": null,
"postalCode": "1811",
"postalArea": "Askim",
"numbers": [
"90898943"
]
},
"companyContactInfo": null
}
url: https://preview.bankidapis.no/tinfo/api1881/search?number=90823120
Respons:
{
"statusMessage": "One company hit",
"statusCode": 2,
"personContactInfo": null,
"companyContactInfo": {
"companyName": "Kantega AS",
"streetName": "Kirkegata",
"houseNumber": "5",
"houseLetter": null,
"postalCode": "0153",
"postalArea": "Oslo",
"contactName": "Geir Ottar Kvernstuen",
"contactValue": "90823120"
}
}
Ved persontreff fra 1881 er det mulig å få tilbake opptil flere telefonnummer, da både til mobil og fasttelefon. I disse tilfellene definerer 1881 hvilket nummer de tror er hovednummeret. Da det er umulig å vite om dette stemmer eller ikke har vi valgt i pilottjenesten å returnere alle nummer som kommer fra 1881 som en liste, hvor nummeret 1881 har definert som hovednummer alltid vil være øverst i denne listen.
Pilottjenesten returnerer aldri informasjon som er blitt angitt som input uten at informasjonen også har blitt returnert fra 1881. Det kan derfor forekomme at et nummer det er blitt søk på ikke vil forekomme i listen over nummer som returneres. Dette forekommer for eksempel i tilfeller hvor nummeret det er blitt søkt på er reservert, men adressen til søkt person finnes hos 1881. I disse tilfellene er det opp til brukeren av pilottjenesten å vurdere om et nummer er gyldig og om det skal brukes eller ikke.
Foreløpig implementert:
NO_HITS = "No hits for search";
NO_HITS_CODE = -1;
MORE_THAN_ONE_HIT = "More than one hit for search";
MORE_THAN_ONE_HIT_CODE = -2;
NUMBER_RESERVED = "Number listing is declined by customer request";
NUMBER_RESERVED_CODE = -3;
ONE_PERSON_HIT = "One person hit";
ONE_PERSON_HIT_CODE = 1;
ONE_COMPANY_HIT = "One company hit";
ONE_COMPANY_HIT_CODE = 2;
Tre input [Telefonnummer, Fult navn, Fødselsdato DDMMÅÅ], der alle kan være satt eller blanke.
Søket mot 1881 blir gjort som følger:
Alle søk blir logget med formatet:
{dato};{klokkeslett};{søktNummer};{søktCommonName};{søktFødselsDato};{fantperson:boolean};{fantFirma:boolean};{fleireTreffPåSøk:boolean};{resultatAvSøk}
Loggingen vil utelukkende bli benytter for statistikkformål for å kunne trekke nærmere konklusjoner om pilottjenestens treffprosent mot 1881.