NAV Navbar

Introduction

Auth eID is an electronic identification (eID) solution for end users and organisations which can be used for identification, authentication and signing. The essential part of Auth eID service is a mobile application used for login and signing to all services that are connected to the Auth eID

Auth eID allows end users to participate at two levels. The first is an entry-level registration flow where user will have to confirm an e-mail address to be allowed,for example, login authentication in situations where an absolute identity is not of significance for the Relying Party.

Relying parties can make different Auth eID API calls depending on their needs. Our Device Key API call protects keys required to perform specific functions. WithAuthentication Requests Auth eID authenticate users for login. Signing requests are used when a digital signature is required for a specific transaction.

However, other API calls require that the end user has successfully gone through the onboarding process. The onboarding process involves, amongst other controls, verifying phone number, scanning ID documents, taking a selfie and uploading a proof of residency. Onboarded users can be involved in interactions with Relying Parties that involve login, but which also requires identity verification. Identification request API calls are made when Relying Parties requires users full name, date of birth and address. KYC Request are suitable for Relying parties who need to conduct their own due diligence and require extensive user details such as passport details, selfie, proof of residency and a screening result from a sanction list control and Politically exposed person (PEP) check.

This document contains instructions for Relying parties on how to securely transmit the information to Auth eID. This is a technical document aimed at software architects and developers.

How to begin

1. Onboarding

Signing up and joining as a Relying Party is very easy. First, you will have to download Auth eID on your mobile device, create a personal account and verify yourself with Auth eID. This gives you an insight of what your clients will go through to use the service.

2. Let’s get started

Sign up as a Relying Party through our webpage. Tell us more about the Company by filling out the form. Pick a monthly plan that fits your business (Basic/Advanced/Pro). Remember that Basic is free of charge and perfect for new Relying Parties. You can always change your plan once you are signed up. Read and accept the relying party agreement before you sign your application with your Auth eID. Add your credit card details (Required for business plan Advanced and Pro)

3. Integrate with Auth eID

The integration is very smooth and done via an API. Your API keys are available once you sign up.

4. We support you

Except of managing digital identities for you, we are happy to help with your technical integration. Just let us know ([email protected]).

Request

Creating request

To initiate request Relaying Party (RP) sends request to the Auth eID server and receives request ID that would be needed to retrieve request result or cancelling request from the RP side.

Auth eID app could be opened automatically if request is made from native mobile OS app (Android and iOS are supported). Please see Android and iOS examples on how use in-app links.

HTTP Request

POST https://api.autheid.com/v1/requests

gRPC Request

rpc Create(CreateRequest) returns (CreateResponse);

Example request:

$ curl --request POST https://api.staging.autheid.com/v1/requests \
    --Header "Content-Type: application/json" \
    --Header 'Authorization: Bearer Pj+GIg2/l7ZKmicZi37+1giqKJ1WH3Vt8vSSxCuvPkKD' \
    --data '{"email":"[email protected]","title":"Test","type":"KYC"}'
  Rp.CreateRequest request = Rp.CreateRequest.newBuilder()
          .setTitle("Test").setEmail("[email protected]").setType(Rp.RequestType.KYC).build();
      Rp.CreateResponse response = blockingStub.create(request);
  import grpc
  import rp_pb2
  import rp_pb2_grpc

  def send_request(stub):
    create_request = rp_pb2.CreateRequest()
    create_request.title = "Test"
    create_request.email = email
    create_request.type = rp_pb2.KYC
    create_request.kyc.files_format = rp_pb2.EMBEDDED
    create_response = stub.Create(create_request, metadata=metadata)
  channel channel = new Channel("api.staging.autheid.com", channelCredentials);
  var client = new Requests.RequestsClient(channel);
  var request = new CreateRequest();
  var reply = client.Create(request);
  let url2 = URL(string: baseUrl + "/requests")!
  var request = URLRequest(url: url2)
  request.setValue("Bearer " + apiKey, forHTTPHeaderField: "Authorization")
  request.setValue("application/json", forHTTPHeaderField: "Content-Type")
  request.httpMethod = "POST"
  request.httpBody = jsonData

  let task = URLSession.shared.dataTask(with: request) { data, response, error in
    guard let data = data, error == nil else {
        print(error?.localizedDescription ?? "No data")
        return
    }
    let responseJSON = try? JSONSerialization.jsonObject(with: data, options: [])
  }

Body Parameters

Name Type Description Notes
type Enum Request type: AUTHENTICATION, SIGNATURE, IDENTIFICATION or KYC, more details below Required
email Optional User identification. Users might add and remove emails so this might change for the same user. Use unique_user_id from the request response to reliable detect same accounts. Either email or use_local_account must be set. Optional
use_local_account Boolean For intra-mobile calls (using native mobile application or mobile browser) email could be empty if this field is set. See below. Optional
timeout_seconds Integer Duration of time in seconds while user could sign request. Valid range is [10..600]. Default is 60 Optional
title String Request title. Will be visible in the app when user is prompted to sign request. Maximum is 100 symbols and one line Required
description String Request description. Will be visible in the app when user is prompted to sign request. Maximum is 1024 symbols and up to ten lines Optional
authenticate Object Optional data for authentication request. More details below Optional
signature Object Optional data for signature request. More details below Optional
kyc Object Optional data for KYC request. More details below Optional

Response

Example response:

{
  "success": true,
  "request_id": "JHgBYyLjUsJkKktsclwkMfkcv8MRgLkrubwzHBdnIJ4c",
  "timestamp_created": 1552650262
}
Name Type Description Notes
success Boolean Boolean value to make sure request was successfully created
request_id String Unique request identificator
timestamp_created Integer Timestamp in seconds since Unix epoch (1 January 1970 UTC)

Retrieving request result

Request result will be available using this API call:

HTTP Request

GET https://api.autheid.com/v1/requests/{requestId}

gRPC Request

rpc GetResult(GetResultRequest) returns (GetResultResponse);

This methods is blocking and result would be sent when request status is determined (so it might block for up to timeout_seconds period). If non-blocking method is preferred please poll request status first (see below).

Request results are available for 5 minutes after signing. After that "not found" error returned instead.

Response

Name Type Description Notes
success Boolean Indicates that request result was retreived succefully (this is different from the request status itself)
status Enum Request status (see below)
status_code Integer Request status code (see below)
request_id String Unique request identificator
device_id String Unique installation ID of the Auth eID app used to sign request if request was signed succesfully
device_name String Model of the mobile device used to sign request if request was signed succesfully
email String Email address used creating request
unique_user_id String Unique key to identify account that is persistent between accounts restores and emails adding/removing
timestamp_created Integer Timestamp when request was created
timestamp_finished Integer Timestamp when request has been finished
authentication Object Authentication details if request succeed. See below.
signature Object Signature details if request succeed. See below.
identification Object Identification details if request succeed. See below.
kyc Object KYC details if request succeed. See below.
device_key Object Device Key details if request succeed. See below.

Statuses

Name Code Description
SUCCESS 10000 Successful request result. User have signed request
NOT_READY 20001 Request is not ready yet. This status is used only with request status polling API
TIMEOUT 20002 Request is timed out before user signed it. This might also happen when account is not known to Auth eID
RP_CANCELLED 20003 Request was cancelled by RP using cancel API call
USER_CANCELLED 20004 User have cancelled request from mobile app
ACCOUNT_NOT_VERIFIED 20005 User have signed request but his account is not verified yet or passport expired. RP might limit SIGNATURE and AUTHENTICATION requests to verified accounts only. For IDENTIFICATION and KYC requests user must have verified account

Retrieving request status

Request status are available for 5 minutes after signing. After that "not found" error returned instead.

HTTP Request

GET https://api.autheid.com/v1/requests/{requestId}/status

gRPC Request

rpc GetStatus(GetStatusRequest) returns (GetStatusResponse);

Response

Name Type Description Notes
success Boolean Indicates that the requesting status succeed (this is different from the request status itself)
status Enum Request status. See above
status_code Integer Request status as number

Cancelling request

HTTP Request

POST https://api.autheid.com/v1/requests/{requestId}/cancel

gRPC Request

rpc Cancel(CancelRequest) returns (CancelResponse);

Intra-mobile calls

When request is made in the same device (from native mobile application or from mobile browser) user might skip entering his id (email address). In this case RP should make request with use_local_account flag set. Auth eID server will return new request ID but won't send it anywhere. After that RP should try to open this URL on mobile device:

From mobile browser:

https://autheid.com/app/requests/?request_id=<REQUEST_ID>&callback=<OPTIONAL_CALLBACK_URL>&email=<OPTIONAL_EMAIL>

From native application:

autheid://autheid.com/app/requests/?request_id=<REQUEST_ID>&callback=<OPTIONAL_CALLBACK_URL>&email=<OPTIONAL_EMAIL>

Example request (Android):

String url = "autheid://autheid.com/app/requests/?request_id=" + requestId;
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
try {
  startActivity(intent);
} catch (ActivityNotFoundException e) {
  showMessage("Auth eID is not installed");
}

Example request (iOS):

let url = "autheid://autheid.com/app/requests/?callback=autheiddemo%3A%2F%2Ftest&request_id=" + self.requestId
UIApplication.shared.open(URL(string: url)!, options: [:]) {
  (success) in
    if (!success) {
      self.showMessage("Auth eID is not installed")
  }
}

Complete examples are avilable in the samples repository.

callback parameter is optional. If set, Auth eID mobile application will open it when request is done (whether it succeed or failed). It could be regular web page (will be opened in mobile browser) or URL with custom scheme for the RP's native application. If not set, on Android Auth eID app will close itself when request is done. On iOS RP should use callback for better user experience.

Parameters must be URL encoded as usual (not needed for request_id as it uses only URL-safe symbols).

If account has multiple associated email addresses this will open email selection dialog. If this is not desired and specific email address is already known, RP could pass it in email parameter. This will automatically select account's email if it available (or will show error message otherwise). Please note that RP should not pass email parameter when request is registered on the server for local requests even if it is known.

Errors

If any REST API call failed for some reasons this error message returned instead:

Name Type Description Notes
error Enum Error code (subset of gRPC status codes). See below
error_code Integer Error code as number
message String Textual description of the error

Error codes:

Name Code Description
INVALID_ARGUMENT 3 Invalid input parameters. Request must not be resend before fixing the problem
NOT_FOUND 5 Requested item was not found (unknown request ID, file not found etc)
PERMISSION_DENIED 7 RP is known but has no access to this resource
FAILED_PRECONDITION 9 There might be a problem with RP account
UNAUTHENTICATED 16 RP is not known

For gRPC API equivalent status codes used instead.

Authorization

All end-points require RP authorization. Auth eID server uses bearer tokens for RP authorization. RP must set own API key in the Authorization header (HTTP request's header for the REST API or request's metadata for the gRPC API). API keys will be available in the RP client's portal after registration. With test environment test API key should be used instead.

Request types

Authentication

Body Parameters

Example response:

{
  "success": true,
  "status": "SUCCESS",
  "status_code": 10000,
  "request_id": "lgayNDC_tyUPgf9GuTfjNl6kbwCrUk6e5sZUaU4Sqksu",
  "device_id": "Awiuhl1V7yqmZUDM5SMlO1YQwbV+VN8bBKzQ/5oDZtQh",
  "device_name": "iPhone 7",
  "email": "[email protected]",
  "unique_user_id": "oava51cj",
  "authentication": {
    "jwt": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE1NTI3NDkwMzgsImlzcyI6ImF1dGhlaWQuY29tIiwic3ViIjoidGVzdEBleGFtcGxlLmNvbSJ9.CMc1DZe9IxVf1vjbrhSM14hnGL_oL-HzNPxYzp-MsscP5BK2mK4ZbFGDBYXHi6e2h0J1I6Lkutl5NnjyvCR6TMZ7G-heFMwCZ4J0XDpwnVc4PRtbOQWQ1bJT_CIqmWjTEjwCIrh3IQIJ7uLgs4b_sNre5x2AGTr-rH9HF5rdJw_ArsoeGEAlUGprJeTGV_IrZFsKKj4MUpOTtZU8I9UJu-lNcobo1IQ0B0cPgrJv7DdEdiZ5h1kMPfU0eP9hxsLxGtS-Urbcm49yQwB1xOomzYRKFGuZ9lKYFEfyfIYps0fRVsVKmhm6KmJG4irv0eWfNqtDT6Hn1fQ0iJSWKBhqUA",
    "is_verified": true
  }
}
Name Type Description Notes
verified_only Boolean If set, only verified users will be able authenticate himself. Default is false Optional

Response

Name Type Description Notes
jwt String JWT token for the user's account signed by Auth eID Required
is_verified Boolean Shows if account is verified or not Required

Signature

User signs requests on mobile app using secured private key. Auth eID verifies that the signature is valid and that account is active.

Body Parameters

Example response:

{
  "success": true,
  "status": "SUCCESS",
  "status_code": 10000,
  "request_id": "bZGRPCgF0D71x-49DkjzOzyXdRTGyZ0w_OSkqWcT5fTq",
  "device_id": "Awiuhl1V7yqmZUDM5SMlO1YQwbV+VN8bBKzQ/5oDZtQh",
  "device_name": "iPhone 7",
  "email": "[email protected]",
  "unique_user_id": "oava51cj",
  "signature": {
    "signature_data": "eyJlbWFpbCI6InRlc3RAZXhhbXBsZS5jb20iLCJycE5hbWUiOiJBdXRoIGVJRCBUZXN0IiwidGl0bGUiOiJUZXN0IiwiZGVzY3JpcHRpb24iOiIiLCJ0aW1lc3RhbXAiOjE1NTI3NDkyNDAsInRpbWVvdXRTZWNvbmRzIjowLCJyYVB1YktleSI6IiIsImludmlzaWJsZURhdGEiOiIifQ==",
    "sign": "d0eIau0SCEEDtodxfo7V0apOfSXUw1t9PSZWfExd06+473JWp/ltC19l5r2V7BwBzZSlhgi/DSx75ZbB1jir8A==",
    "is_verified": true
  }
}
Name Type Description Notes
serialization Enum Signed data format. Available formats are SERIALIZATION_JSON and SERIALIZATION_PROTOBUF. Default is SERIALIZATION_JSON Optional
invisible_data Binary Invisible data that will be copied as-is in the signature response Optional
verified_only Boolean If set, only verified users will be able sign request. Default is false Optional

Response

Name Type Description Notes
serialization Enum Signed data format. See above. Required
signature_data Binary Binary data signed by the user Required
sign Binary Digital signature by user's private key Required
is_verified Boolean Shows if account is verified or not Required

Identification

Response

Example response:

{
  "success": true,
  "status": "SUCCESS",
  "status_code": 10000,
  "request_id": "eMizOqNCEI0kC5vpgJnbJKrXb8SQ880ncoL1KHTahVcT",
  "device_id": "A05mecU3ob6HWhbXu4EDuC23pjV0ChoZtXwLDJhouGJG",
  "device_name": "iPhone 7",
  "email": "[email protected]",
  "unique_user_id": "hoxzi7ey",
  "timestamp_created": 1556956040,
  "timestamp_finished": 1556956041,
  "identification": {
    "first_name": "TEST",
    "last_name": "SPECIMEN",
    "phone_number": "+46 1234567890",
    "gender": "M",
    "date_of_birth": "1980-01-01",
    "nationality": "SWE",
    "personal_number": "98765432",
    "residency_country": "SWE",
    "residency_city": "Malmo",
    "residency_postcode": "211 25",
    "residency_address": "Ostergatan 21"
  }
}
Name Type Description Notes
first_name String User's first name Required
last_name String User's last name Required
phone_number String Verified client's phone number Required
gender String could be "M"/"F" or empty if not set in the passport Optional
date_of_birth String Date of birth in ISO 8601 format (ie 2018-12-31) Required
nationality String Country of the nationality (ISO 3166-1 alpha-3) Required
personal_number String Personal number from the passport if available Optional
residency_country String Residency country (ISO 3166-1 alpha-3 format) Required
residency_city String Residency city in (ISO 3166-1 alpha-3 format) Required
residency_postcode String Residency postcode Required
residency_address String Residency address Required
residency_address2 String Residency address line 2 Optional

Know-Your-Customer (KYC)

Body Parameters

Name Type Description Notes
files_format Enum How additional KYC documents will be available. DOWNLOAD_LINK - as download link (default), EMBEDDED - as binary field Optional

Response

Example response:

{
  "success": true,
  "status": "SUCCESS",
  "status_code": 10000,
  "request_id": "URI4TsaRVCvzJH1oUBotbKNUiRQarZs7JMRWw33GT-Af",
  "device_id": "Awiuhl1V7yqmZUDM5SMlO1YQwbV+VN8bBKzQ/5oDZtQh",
  "device_name": "iPhone 7",
  "email": "[email protected]",
  "unique_user_id": "oava51cj",
  "kyc": {
    "identification": {
      "first_name": "TEST",
      "last_name": "SPECIMEN",
      "gender": "M",
      "date_of_birth": "1980-01-01",
      "nationality": "SWE",
      "personal_number": "98765432",
      "residency_country": "SWE",
      "residency_city": "Malmo",
      "residency_postcode": "211 25",
      "residency_address": "Ostergatan 21"
    },
    "passport_issuing_state": "SWE",
    "passport_number": "111222333",
    "passport_expiration": "2020-01-01",
    "screening_EU": "NO_MATCH_FOUND",
    "screening_UN": "NO_MATCH_FOUND",
    "screening_PEP": "NO_MATCH_FOUND",
    "phone_number": "+46 1234567890",
    "kyc_pdf": {
      "download_link": "https://api.staging.autheid.com/v1/requests/URI4TsaRVCvzJH1oUBotbKNUiRQarZs7JMRWw33GT-Af/files/kyc.pdf"
    },
    "residency_proof_pdf": {
      "download_link": "https://api.staging.autheid.com/v1/requests/URI4TsaRVCvzJH1oUBotbKNUiRQarZs7JMRWw33GT-Af/files/residency.pdf"
    }
  }
}
Name Type Description Notes
identification Object Identification information same as in identification response. See above Required
passport_issuing_state String Country that issues passport (in ISO 3166-1 alpha-3 format) Required
passport_number String Passport's number Required
passport_expiration String Passport's expiration date in ISO 8601 format (ie 2018-12-31) Required
screening_EU Enum Screening result for the EU sanction's list. Possible values MATCH_FOUND and NO_MATCH_FOUND Required
screening_UN Enum Same as above but for the UN sanction's list Required
screening_PEP Enum Same as above but for the politically exposed persons (PEP) list Required
screening_EU_info String Human readable screening result information if match found in the EU sanction's list Optional
screening_UN_info String Same as above but for UN sanction's list Optional
screening_PEP_info String Same as above but for PEP list Optional
phone_number String Verified client's phone number Required
kyc_pdf Object KYC PDF document. See below Required
residency_proof_pdf Object Same as above but with residency proof details Required

Files information:

Name Type Description Notes
download_link String Link where PDF document could be downloaded. Please note that this request also requires RP authorization Optional
embedded Binary Embedded PDF document itself Optional

There will be only one field set depending on KYC request type. By default PDF files will be available as URLs.

Device Key

Device keys are secure keys generated in the mobile app. They could be used to protect secrets (bitcoin wallets, encrypted archives etc). Device keys are generated inside the app (and used seed never leaves device). Seed is protected by PIN code (enforced by Auth eID server). Device key is optionally encrypted so only RP agent could decrypt it. Key is derived from key_id (supplied by RP agent), unique RP seed (generated and stored on Auth eID server) and device seed (generated and stored in the app). Please note that old device keys would be lost if device is removed and added later or account is restored.

Device keys could be optionally encrypted in the mobile app (so Auth eID server could not know it). Please see C++ example if encryption required.

Body Parameters

Name Type Description Notes
key_id String Key ID that is used to generate unique key Required
use_new_devices Boolean If set then requests would be sent to only unknown devices (from the known_device_ids list. Otherwise requests would be sent to only known devices) Optional
known_device_ids String List Already known to RP device IDs Optional Optional
register_key Enum Register or not new key_id in the app settings info. KEEP - do not update list (default), REPLACE - clear list and register as new, ADD - add registration to the list, CLEAR - clear list Optional

Response

Example response:

{
  "success": true,
  "status": "SUCCESS",
  "status_code": 10000,
  "request_id": "c7NCKZhfkzR8y1ghpNeaXAD-hegjkS0poHRA5GlKbU4R",
  "device_id": "A9eIMRIb+qRG8+NEPv3m8c6AjTv07cNs+y2/TquZR54K",
  "device_name": "iPhone 7",
  "email": "[email protected]",
  "unique_user_id": "q914fg5f",
  "device_key": {
    "request_id": "c7NCKZhfkzR8y1ghpNeaXAD-hegjkS0poHRA5GlKbU4R",
    "timestamp": 1553954189,
    "device_key": "b/GIibBPyxUw4Mo7+R51Mjc0cfdGBPumb8NZ+e3GmXU="
  }
}
Name Type Description Notes
request_id String Request ID Required
timestamp Integer Timestamp Required
device_key Binary Generated key Required

Production environment

Root certificate:

-----BEGIN CERTIFICATE-----
MIICiDCCAg6gAwIBAgIVAOb2okkDBWR/iW2RuT8nYjpNplTqMAoGCCqGSM49BAMD
MGUxCzAJBgNVBAYTAlNFMRwwGgYDVQQKExNBdXRoZW50aWNhdGUgZUlEIEFCMRow
GAYDVQQLExFJbmZyYXN0cnVjdHVyZSBDQTEcMBoGA1UEAxMTQXV0aCBlSUQgUm9v
dCBDQSB2MTAiGA8yMDE5MDUyMjAwMDAwMFoYDzIwMzkwNTIyMDAwMDAwWjBlMQsw
CQYDVQQGEwJTRTEcMBoGA1UEChMTQXV0aGVudGljYXRlIGVJRCBBQjEaMBgGA1UE
CxMRSW5mcmFzdHJ1Y3R1cmUgQ0ExHDAaBgNVBAMTE0F1dGggZUlEIFJvb3QgQ0Eg
djEwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAR2kBiv/YrCKa/LfEBAIvjCmonftbeq
wIjlTMFnVXTZTBTOMssMOeCByJYTv0ghR4g7BNTeYaCcriMA35UtlKeF6jiTnoQc
6mGU2b19HwSyvtmIhlINeeCu5HfxLvHDFsijejB4MB0GA1UdDgQWBBQlqiF6NhIs
6V7c/FEOvUCONlG2mDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAV
BgNVHSAEDjAMMAoGCCqFcIIEAQEBMB8GA1UdIwQYMBaAFCWqIXo2EizpXtz8UQ69
QI42UbaYMAoGCCqGSM49BAMDA2gAMGUCMCPwsYvJzRIRLvGyAVlbLj+E6BnvAfBb
5+iNbo1RXrhTdIMb/oqcyEJbNbSSrrYYUwIxALTrwUrCe7t33RZOVVtuV+ZjiAm/
j7izMBc1rGipMTl4L8vVqqmtz+2vXilxSb7dtA==
-----END CERTIFICATE-----

Server: api.autheid.com

API keys: https://autheid.com/api-keys

Test environment

Test root certificate:


-----BEGIN CERTIFICATE-----
MIICpzCCAi2gAwIBAgIVANCWAAe4NB0AbzvcOMzVt/eXvJOEMAoGCCqGSM49BAMD
MHQxCzAJBgNVBAYTAlNFMSEwHwYDVQQKExhUZXN0IEF1dGhlbnRpY2F0ZSBlSUQg
QUIxHzAdBgNVBAsTFlRlc3QgSW5mcmFzdHJ1Y3R1cmUgQ0ExITAfBgNVBAMTGFRl
c3QgQXV0aCBlSUQgUm9vdCBDQSB2MTAiGA8yMDE5MDUyMTAwMDAwMFoYDzIwMzkw
NTIxMDAwMDAwWjB0MQswCQYDVQQGEwJTRTEhMB8GA1UEChMYVGVzdCBBdXRoZW50
aWNhdGUgZUlEIEFCMR8wHQYDVQQLExZUZXN0IEluZnJhc3RydWN0dXJlIENBMSEw
HwYDVQQDExhUZXN0IEF1dGggZUlEIFJvb3QgQ0EgdjEwdjAQBgcqhkjOPQIBBgUr
gQQAIgNiAATttsFmSGlfGgeBWCO+G4j+LaheRZksckdz0ks2DrUz+eBLAdY5neE1
uwvidGXuebR4c3Kr7TbBZaQbmIHEd3kUTQ4paqKWQKgck5WJNYPm2wgpS7co8Fjk
jaFG4Mu9QZujezB5MB0GA1UdDgQWBBRaWiMIx4yz8dBVsBVyR0qL9wVSejAOBgNV
HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAWBgNVHSAEDzANMAsGCSqFcL2E
PwEBATAfBgNVHSMEGDAWgBRaWiMIx4yz8dBVsBVyR0qL9wVSejAKBggqhkjOPQQD
AwNoADBlAjBaJB4PI9hFk0teclJEPWfXUt1CovrWY3nWlOkyl+usJFkgJZH1yIFI
uYVsbv9LK7QCMQCc9MQEu9tZLzVCcucBy2tbNYF1BPUE4Z51gohpiBTxbosqy9L2
61lZsHVbH/v/HtY=
-----END CERTIFICATE-----

Server: api.autheid.com

Please use test API keys from the client portal: https://autheid.com/api-keys

Requests to the test environment are not accounted in the billing.

To connect from mobile app to the test environment please toggle license acceptance switch 6 times. On main app screen there should be text saying Staging server after account activation).

Test accounts with auto sign (after 10 seconds):

Email Type
[email protected] Verified account
[email protected] Unverified account
[email protected] Verified account with EU sanctions list match
[email protected] Verified account with PEP list match

API

There are REST API and gRPC end-point API available. Please see demo applications for more information. Main protocol specification is gRPC schema (rp.proto file).

Auth eID gRPC API specification

OpenAPI / Swagger UI (schema generated from rp.proto with gRCP gateway)

Examples