NOTE: This product is under development and not available yet

MitID is a secure and user-friendly digital ID. You use the same login, regardless of whether you want to use your online bank, see your information on borger.dk, download your annual statement from Skat.dk or shop online.

MitID is a flexible and well-thought-out solution. It will be easy to further develop MitID to match a life where technology plays a greater role.

Most of us are already familiar with the NemID app – all we need to do is to download the new MitID app and use it in the same way. But the key card disappears. That is an important difference. It is still important that you never share codes or your user ID for MitID with others. Your MitID is just as important as your passport.

API Calls

Start: POST to https://tbd/eid/mitid

Result: GET from https://tbd/eid/mitid/sessionid
where env is api or test sessionid is the session identifier retrieved from the setup call, named id in the response.

 

tbd: production and test swagger links

POST to https://tdb/eid/mitid

env is prod or test 

ParameterDescriptionRequired
providerRequestSee table belowYes
Parameter Description Required
language The requested language. Possible values are DA | EN | KL | da | en | kl No
popupContext Identifies if the MitId broker page will be opened in a popup or it will be redirect. True – used a popup, false – redirect to another page. No
relaystate This optional parameter will be returned to you at the redirect back to your server. Use it to link an unique ID of your choice that you can parse. Example: relaystate=zignsec_eid_1234 No
target If this parameter is supplied the browser session will finally be redirected to this URL-value. No
targetError targetError works as target except it is navigated on user cancel or error situations. No
webhook A URL where success/error results will automatically be POST:ed No

Each request returns a response with status and details.

idA unique session identifier generated for each workflow instance.
errorsA JSON array of error conditions, see error handling.
redirectUrlMitId redirect url
{
  "id": "eb865995-8217-474d-9d96-66fbc998aca6",
  "redirectUrl": "https://tbd/broker/eb865995-8217-474d-9d96-66fbc998aca6",
  "errors": []
}

GET to https://tbd/eid/mitid/sessionid

env is prod or test 

How to get notified when workflow is finished:

There is both active and passive notification for when the workflow is finished

  • Callback: Set target and targetError URL parameter in step 1 and you can do the above GET when navigation will occur.
  • Webhook. You can set webhook URL parameter in step step 1 Result will be posted to the URL.
  • Polling: Repeatedly call the above collect-GET until the results contain a final result.

Each request returns a response with status and details.

idA unique session identifier generated for each workflow instance.
stateSession state.
errorsA JSON array of error conditions, see error handling.
resultRepresents result with a signed identity in a JSON Web Token form, see JWT-signature.
{
  "id": "6a36bbe1-fa10-43d6-813a-962ea7b73c87",
  "state": "Finished",
  "errors": [],
  "result": {
     "signedIdentity": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL3ppZ25zZWMuY29tL21pdGlkL3Y1LjAvIiwiaWRlbnRpdHkiOnsiY291bnRyeUNvZGUiOiJESyIsImZpcnN0TmFtZSI6IkJlcnRyYW0gSGVucmlrc2VuIiwibGFzdE5hbWUiOm51bGwsImZ1bGxOYW1lIjoiQmVydHJhbSBIZW5yaWtzZW4iLCJwZXJzb25hbE51bWJlciI6IiIsImRhdGVPZkJpcnRoIjoiMTk5MC0wNS0xNyIsImFnZSI6MzEsImdlbmRlciI6bnVsbCwicGhvbmUiOm51bGwsImVtYWlsIjpudWxsLCJhZGRyZXNzSW5mb1JhdyI6bnVsbCwicmVzdWx0UmVwb3J0UGRmIjpudWxsLCJpZFByb3ZpZGVyTmFtZSI6Ik1pdElEIiwiaWRlbnRpZmljYXRpb25EYXRlIjoiMjAyMS0wNS0yOFQxMDoxMTo0NS4xNjE1NThaIiwiaWRQcm92aWRlclJlcXVlc3RJZCI6bnVsbCwiaWRQcm92aWRlclBlcnNvbklkIjpudWxsLCJjdXN0b21lclBlcnNvbklkIjpudWxsLCJpZFByb3ZpZGVyQXV0aGVudGljaXR5U2NvcmUiOjB9LCJwcm92aWRlckRhdGEiOiJ7XCJtaXRpZC5kay5kYXRlX29mX2JpcnRoXCI6XCIxOTkwLTA1LTE3XCIsXCJtaXRpZC5kay5pZGVudGl0eV9uYW1lXCI6XCJCZXJ0cmFtIEhlbnJpa3NlblwiLFwibWl0aWQuZGsuaWFsX2lkZW50aXR5X2Fzc3VyYW5jZV9sZXZlbFwiOlwiU1VCU1RBTlRJQUxcIixcIm1pdGlkLmRrLmFnZVwiOlwiMzFcIn0iLCJqdGkiOiI3YzJiZWZkNC1iZDY3LTRmNWMtOGYwNy0zZmVmNDU1ZTFmZGYiLCJpYXQiOjE2MjIxOTgyNTEsImV4cCI6MTYyMjIwMTg1MX0.fCSFVyoLgAKJ-72RW_7TfwxTQHjcEFdybNp5Tj0z5P0"
  }
}

The signed identity can be decoded with JWT Web Token convertors, see JWT convertor tool.

 {
  "iss": "https://zignsec.com/mitid/v5.0/",
  "identity": {
    "countryCode": "DK",
    "firstName": "Bertram Henriksen",
    "lastName": null,
    "fullName": "Bertram Henriksen",
    "personalNumber": "",
    "dateOfBirth": "1990-05-17",
    "age": 31,
    "gender": null,
    "phone": null,
    "email": null,
    "addressInfoRaw": null,
    "resultReportPdf": null,
    "idProviderName": "MitID",
    "identificationDate": "2021-05-28T10:11:45.161558Z",
    "idProviderRequestId": null,
    "idProviderPersonId": null,
    "customerPersonId": null,
    "idProviderAuthenticityScore": 0
  },
  "providerData": "{\"mitid.dk.date_of_birth\":\"1990-05-17\",\"mitid.dk.identity_name\":\"Bertram Henriksen\",\"mitid.dk.ial_identity_assurance_level\":\"SUBSTANTIAL\",\"mitid.dk.age\":\"31\"}",
  "jti": "7c2befd4-bd67-4f5c-8f07-3fef455e1fdf",
  "iat": 1622198251,
  "exp": 1622201851
}