Anton Keks
24 Nov 2011

How to use Mobile-ID in Python

Antud lugu on saadaval ainult inglise keeles

Mobile-ID (Mobiil-ID) is a personal mobile identity in Estonia and Lithuania, provided by an additional application on a SIM card.

The good thing is that it is backed by government and provides the same level of security for authentication and digital signatures as a national ID card without the need of having a smart card reader.

So, while thinking on adding Mobile-ID authentication to our era.ee free domain service, I have came up with this Python code, which is incredibly simple. Replace +372xxxxxx with your own phone number for testing and register it at https://demo.sk.ee/MIDCertsReg/ before running the code.


from sys import exit
from suds.client import Client
import time
import logging
logging.basicConfig(level=logging.INFO)


url = 'https://tsp.demo.sk.ee/?wsdl' # test env
client = Client(url)


mid = client.service.MobileAuthenticate('', '', '+372xxxxxx', 'EST', 'Testimine', 'era.ee login', '12345678901234567890', 'asynchClientServer', 0, False, False)
if mid.Status != 'OK':
    print mid.Status
    exit(1)


print 'Challenge: ' + mid.ChallengeID


status = 'OUTSTANDING_TRANSACTION'
while status == 'OUTSTANDING_TRANSACTION':
    time.sleep(2)
    status = client.service.GetMobileAuthenticateStatus(mid.Sesscode, False).Status


if status != 'USER_AUTHENTICATED':
    print status
    exit(2)


print 'Authenticated: ' + mid.UserGivenname + ' ' + mid.UserSurname + ', ' + mid.UserIDCode

Don’t forget to install the SUDS Python library that does the magic of creating SOAP requests (apt-get install python-suds on Debian & Ubuntu)

Archived comments

ornyx 2012-03-07T20:17:07.200Z

In real environment sadly this script does not work for me also customer has agreement with sk.ee - returns 101 server fault. What is the real URL and request? Is everything the same?

Our recent stories

Weekly TeX - how knowledge sharing shapes our culture

Weekly Technology Exchange (TeX) sessions are an integral part of Codeborne’s DNA. These sessions provide our team with the opportunity to share new knowledge, present interesting discoveries, and discuss the latest technological advancements.

The story of HIIT Pekk

At Codeborne, we believe that work should be balanced with fun and fitness. Our journey with high-intensity interval training (HIIT) began as a creative response to the challenges posed by the COVID-19 pandemic.