drawing

T5-nxGen MBAP Developer Guide

Version 1.0.1
This document is intended for technical developers responsible for integrating T5-nxGen MBAP (Multi Biometric Authentication Platform). It describes the API along with interfaces and packet structures to be used by the clients communicating with the Tech5 Next Generation MBAP Server.

Disclaimers

The information contained in this document is the proprietary and exclusive property of Tech5 except as otherwise indicated. No part of this document, in whole or in part, may be reproduced, stored, transmitted, or used for design purposes without the prior written permission from Tech5.

The information contained in this document is subject to change without notice. The information in this document is provided for informational purposes only. Tech5 specifically disclaims all warranties, express or limited, including, but not limited, to the implied warranty of merchant-ability and fitness for a particular purpose, except as provided for in a separate software license agreement.

Privacy Information

This document may contain information of a sensitive nature. This information should not be shared with individuals or organizations other than those who are involved in the T5-nxGen MBAP development or integration.

Contact : support@tech5-sa.com

1. Overview

1.1 Introduction

This document discusses the api Interfaces and packet structures to be used by the client, communicating with the T5 nxGen MBAP Restful web service for Authentication and Verification. Biometric data face/finger/iris must be sent along with unique ID to get verification result. Optionally T5-nxGen MBAP also facilitates biometric to biometric verifications.

2. Client Interface

This Section explains the request and response structures that the client builds to communicate with T5-nxGen MBAP Authentication. All the communication will be in JSON format.

Request URL, Request and Response structure

T5-nxGen MBAP supports different types of API requests as described below:

Overview of Transaction types and typical sequence

ClientClientSDKMBAP Master1. Images2. TemplatesTemplates created using SDK can beused for enrollment & verification in MBAP3. Enroll(Images/Templates)If images are sent for enrollment, master creates templates using TC4. Insert Templates in cache5. Enroll Response6. Authenticate ID (Images/Templates)If images are sent for identification, master creates templates using TC7. Retrieve gallery templates from DB8. Match probe and gallery templates9. Authentication Response10. Verify Biometrics (Images/Templates)If images are sent for identification, master creates templates using TC11. Match Templates12. Verification ResponseClientClientSDKMBAP Master

Request Data structures for biometric modalities :
Following data structures are common to all the request types. Data relevant to particular request should be sent.

public class Request {
 	private String transactionId;
    private String transactionSource;
    private String uid;
    private List<Finger> fingerData;
    private List<Iris> irisData;
    private Face faceData;
    private double faceThreshold=0;
    private double fingerThreshold=0;
    private double irisThreshold=0;
}
 public class Finger{
    private String pos;
    private String image;
    private String template;
    private Double quality;
}
 public class Iris{
    private String pos;
    private String image;
    private String template;
    private Double quality;
    private Double blur;
}
 public class Face{
    private String pos;
    private String image;
    private String template;
    private Double quality;
 }

JSON Request structure description:

Position Codes Table

Position Code
Face “F”
RIGHT_IRIS “1”
LEFT_IRIS “2”
RIGHT_THUMB “1”
RIGHT_INDEX “2”
RIGHT_MIDDLE “3”
RIGHT_RING “4”
RIGHT_LITTLE “5”
LEFT_THUMB “6”
LEFT_INDEX “7”
LEFT_MIDDLE “8”
LEFT_RING “9”
LEFT_LITTLE “10”

Enrollment Request

This request type is used for enrolling records to the T5-nxGen MBAP database which can then further be used for authentication using ID transaction types. MBAP will store the ID of the person and corresponding biometric templates in the database. For enrollment, either images or templates can be sent and they will be stored in the database and thus available for future authentication transactions.

URL: http://xxx.xxx.xxx.xxxx:portnumber/MBAP/V1/enroll
Method: POST
Consumes: Application/JSON
Produces: Application/JSON
Example: http://in-testapi.tech5.tech:9090/MBAP/V1/enroll

Request

Unique ID for the person and corresponding biometrics in the form of images or templates should be sent.

Sample Enrollment JSON Request using images. Note: Tech5 templates can also be sent instead of images

Note: Base64 strings given in all sample jsons are partial strings and please make a note that those strings cannot be used, do replace these strings with full base64 strings for the biometric Images that you want to use.

Full JSON for a sample record can be downloaded from here:
nxGen MBAP JSONs

    {
      "transactionId": "c25d8d53-c7c4-49b6-a6f1-d799d8996ef2",
      "transactionSource": "nxGen MBAP TestTool",
      "uid": "919595833595",
      "faceThreshold": "6.0",
      "fingerThreshold": "6.0",
      "irisThreshold": "6.0",
      "fingerData": [
        {
          "pos": "7",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC4..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "10",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC4..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "8",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC4..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "9",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "6",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "2",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44n..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "5",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44n..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "3",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44n..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "4",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZ..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "1",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM..",
          "template": null,
          "quality": 0.0
        }
      ],
      "irisData": [
        {
          "pos": "2",
          "image": "AAAADGpQICANCocKAAAAFGZ0eXBqcDIgAAAAAGpwMiA..",
          "template": null,
          "quality": 0.0,
          "blur": 0.0
        },
        {
          "pos": "1",
          "image": "AAAADGpQICANCocKAAAAFGZ0eXBqcDIgAAAAAGpwMiA..",
          "template": null,
          "quality": 0.0,
          "blur": 0.0
        }
      ],
      "faceData": {
        "pos": "F",
        "image": "/9j/4AAQSkZJRgABAgAAAQABAAD//gA9SW50ZWwoUikgS..",
        "template": null,
        "quality": 0.0
      }
    }

Response

Upon successful execution following response will be sent. Error code will be sent in case if there is an error (please refer to error codes table at the end).
Sample JSON Response for enrollment request.

{
    "enrollmentResult": true,
    "error": {
        "documentation": "http://wiki.tech5.tech/Tech5-nxGen-MBAPDeveloperGuide.html",
        "errorCode": 2001,
        "errorMessage": "Face Enrollment Successfull"
    },
    "faceData": {},
    "faceThreshold": 0,
    "fingerThreshold": 0,
    "httpErrorMessage": "Face Enrollment Successfull",
    "httpResponseCode": 200,
    "irisThreshold": 0,
    "uid": "919595833595"
}

Verification using UID

This request type is used for verification using ID. In this request the user can send the ID of the person to be verified and associate biometrics (image or template). T5-nxGen MBAP will compare the biometrics passed in the request with the biometrics stored in the DB corresponding to that ID. If the matching score is above the passed threshold a true response will be sent. This serves as a central authentication system.

URL: http://xxx.xxx.xxx.xxx:portnumber/MBAP/V1/verificationWithId
Method: POST
Consumes: Application/JSON
Produces: Application/JSON
Example: http://in-testapi.tech5.tech:9090/MBAP/V1/verificationWithId

Request

ID of the person and biometrics in the form of images or templates
Sample JSON Authentication Request structure using Face Image:

 {
  "transactionId": "2156b46-0b39-4f77-a715-1f69944035a4",
  "transactionSource": "nxGen MBAP TestTool",
  "uid": "919595833595",
  "faceThreshold": "6",
  "fingerThreshold": "0.0",
  "irisThreshold": "0.0",
  "fingerData": [],
  "faceData": {
    "pos": "F",
    "image": "/9j/4AAQSkZJRgABAgEAAAAAAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQg..",
    "template": null,
    "quality": 0.0
  },
  "irisData": []
}

Sample JSON Authentication Request structure using Iris and Finger Image:

{
  "transactionId": "2156b46-0b39-4f77-a715-1f69944035a4",
  "transactionSource": "nxGen MBAP TestTool",
  "uid": "919595833595",
  "faceThreshold": "6",
  "fingerThreshold": "0.6",
  "irisThreshold": "0.5",
 "fingerData": [
    {
      "pos": "7",
      "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMA..",
      "template": null,
      "quality": 0.0
    },
    {
      "pos": "10",
      "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMA..",
      "template": null,
      "quality": 0.0
    }],
  "irisData": [
    {
      "pos": "2",
      "image": "AAAADGpQICANCocKAAAAFGZ0eXBqcDIgAAAAAGpwMiAAAAAtanAya..",
      "template": null,
      "quality": 0.0,
      "blur": 0.0
    }]
}

Sample JSON Authentication Request structure using Face and Finger Image:

{
	  "transactionId": "2156b46-0b39-4f77-a715-1f69944035a4",
	  "transactionSource": "nxGen MBAP TestTool",
	  "uid": "919595833595",
	  "faceThreshold": "6",
	  "fingerThreshold": "0.6",
	  "irisThreshold": "0.5",	  
	  "faceData": {
	    "pos": "F",
	    "image": "/9j/4AAQSkZJRgABAgEAAAAAAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQg..",
	    "template": null,
	    "quality": 0.0
	  },
	 "fingerData": [
	    {
	      "pos": "7",
	      "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMA..",
	      "template": null,
	      "quality": 0.0
	    },
	    {
	      "pos": "10",
	      "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMA..",
	      "template": null,
	      "quality": 0.0
	    }]
}

Sample JSON Authentication Request structure using Face and Iris templates:

{
      "transactionId": "2156b46-0b39-4f77-a715-1f69944035a4",
      "transactionSource": "nxGen MBAP TestTool",
      "uid": "919595833595",
      "faceThreshold": "6",
      "fingerThreshold": "0.6",
      "irisThreshold": "0.5",
      "fingerData": [],
      "faceData": {
        "pos": "F",
        "image": null,
        "template": "/9j/4AAQSkZJRgABAgEAAAAAAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQg..",
        "quality": 0.0
      },
      "irisData": [
        {
          "pos": "2",
          "image": null,
          "template": "AAAADGpQICANCocKAAAAFGZ0eXBqcDIgAAAAAGpwMiAAAAAtanAya..",
          "quality": 0.0,
          "blur": 0.0
        }]
    }

Sample JSON Authentication Request structure using Iris and Finger templates:

{
  "transactionId": "2156b46-0b39-4f77-a715-1f69944035a4",
  "transactionSource": "nxGen MBAP TestTool",
  "uid": "919595833595",
  "faceThreshold": "6",
  "fingerThreshold": "0.6",
  "irisThreshold": "0.5",
 "fingerData": [
    {
      "pos": "7",
      "image": null,
      "template": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMA..",
      "quality": 0.0
    },
    {
      "pos": "10",
      "image": null,
      "template": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMA..",
      "quality": 0.0
    }],
  "irisData": [
    {
      "pos": "2",
      "image": null,
      "template": "AAAADGpQICANCocKAAAAFGZ0eXBqcDIgAAAAAGpwMiAAAAAtanAya..",
      "quality": 0.0,
      "blur": 0.0
    }]
}

Sample JSON Authentication Request structure using Face and Finger templates:

{
	  "transactionId": "2156b46-0b39-4f77-a715-1f69944035a4",
	  "transactionSource": "nxGen MBAP TestTool",
	  "uid": "919595833595",
	  "faceThreshold": "6",
	  "fingerThreshold": "0.6",
	  "irisThreshold": "0.5",	  
	  "faceData": {
	    "pos": "F",
	    "image": null,
	    "template": "/9j/4AAQSkZJRgABAgEAAAAAAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQg..",
	    "quality": 0.0
	  },
	 "fingerData": [
	    {
	      "pos": "7",
	      "image": null,
	      "template":  "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMA..",
	      "quality": 0.0
	    },
	    {
	      "pos": "10",
	      "image": null,
	      "template": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMA..",
	      "quality": 0.0
	    }]
   }

Response

Response Data structures for biometric modalities :

public class RequestResponse
{
   	private MBAPError error { get; set; }
	private int httpResponseCode { get; set; }
	private String httpErrorMessage { get; set; }
	private Boolean verificationResult { get; set; }
	private String transactionId { get; set; }
	private String transactionSource { get; set; }
	private String matchScore { get; set; }
	private String uid { get; set; }    
}

JSON structure description:

Sample JSON AuthResponse

{
    "httpResponseCode": 200,
    "matchScore": "20.0",
    "transactionId": "nxGen MBAP TestTool",
    "uid": "919595833595",
    "verificationResult": true
}

Verification using biometrics

This request type is used for matching two biometrics sets passed in the request. This is a stateless service and does not depend on the database. If the matching score is above the passed threshold the system will respond with a true.

URL: http://xxx.xxx.xxx.xxx:portnumber/MBAP/V1/verifyBiometrics
Method: POST
Consumes: Application/JSON
Produces: Application/JSON
Example: http://in-testapi.tech5.tech:9090/MBAP/V1/verifyBiometrics

Request

Sample JSON Face verification request using biometric images

{
  "transactionId": "b3c350aa-2734-48d1-998d-7777777",
  "transactionSource": "MBAP Test Tool",
  "uid": "111122223333555555",
  "probeFace": {
    "pos": "F",
    "image": "/9j/4AAQSkZJRgABAQEAeAB4AAD/2wBDAAIBAQIBAQI...",
    "template": null,
    "quality": 0.0
  },
  "galleryFace": {
    "pos": "F",
    "image": "/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAgGBgcGBQg...",
    "template": null,
    "quality": 0.0
  },
  "probeFingerData": null,
  "galleryFingerData": null,
  "probeIrisData": null,
  "galleryIrisData": null,
  "needTemplates": 2,
  "faceThreshold": "6",
  "fingerThreshold": "6",
  "irisThreshold": "6"
}

Sample JSON Face verification request using biometric templates

 {
      "transactionId": "2156b46-0b39-4f77-a715-1f69944035a4",
      "transactionSource": "nxGen MBAP TestTool",
      "uid": "919595833595",
      "faceThreshold": "6",
      "fingerThreshold": "0.6",
      "irisThreshold": "0.5",  
       "fingerData": [],
      "irisData": [],
      "probeFace": {
                "pos": "F",
                "image": null,
                "template": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgK..",
                "quality": 0
        },
        "galleryFace": {
                "pos": "F",
                "image": null,
                "template": "Qk26AR4AAAAAADYAAAAoAAAA4QIAAHkDAAABABgAAAAAAAAAAAD..",
                "quality": 0
        }
  }

Create Templates

This request type is used to create biometric templates by sending biometric images as base64 strings.

URL: http://xxx.xxx.xxx.xxx:portnumber/MBAP/V1/createTemplate
Method: POST
Example: http://in-testapi.tech5.tech:9090/MBAP/V1/createTemplate

Multi biometrics Request

Sample JSON CreateTemplate request file for Face, Iris & Finger using base64 images

    {
      "transactionId": "f5cfcf13-bff3-400a-9fb5-ced8a488fb98",
      "transactionSource": "nxGen MBAP TestTool",
      "uid": "919595833595",
      "faceThreshold": "6",
      "fingerThreshold": "0.6",
      "irisThreshold": "0.5",
      "fingerData": [
        {
          "pos": "7",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozM..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "10",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozM..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "8",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMA..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "9",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMA..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "6",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMAC..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "2",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMACS..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "5",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMACS7..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "3",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMACS7..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "4",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMACS7..",
          "template": null,
          "quality": 0.0
        },
        {
          "pos": "1",
          "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMACS7/..",
          "template": null,
          "quality": 0.0
        }
      ],
      "irisData": [
        {
          "pos": "2",
          "image": "AAAADGpQICANCocKAAAAFGZ0eXBqcDIgAAAAAGpwMiAAAAAtanAyaAAAA..",
          "template": null,
          "quality": 0.0,
          "blur": 0.0
        },
        {
          "pos": "1",
          "image": "AAAADGpQICANCocKAAAAFGZ0eXBqcDIgAAAAAGpwMiAAAAAtanAyaAAAABZ..",
          "template": null,
          "quality": 0.0,
          "blur": 0.0
        }
      ],
      "faceData": {
        "pos": "F",
        "image": "/9j/4AAQSkZJRgABAgAAAQABAAD//gA9SW50ZWwoUikgSVBQIEpQRUcgZW5jb2..",
        "template": null,
        "quality": 0.0
      }
    }

Multi Biometrics Response

Sample JSON Multi biometrics Response with the templates

    {
     "fingerData": [
        {
          "pos": "7",
          "template": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5..",
          "templateCreationResult": true
        },
        {
          "pos": "10",
          "template": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5..",
          "templateCreationResult": true
        },
        {
          "pos": "8",
          "template":"/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5o..",
          "templateCreationResult": true
        },
        {
          "pos": "9",
          "template": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5o..",
          "templateCreationResult": true
        },
        {
          "pos": "6",
          "template": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5o..",
          "templateCreationResult": true
        },
        {
          "pos": "2",
          "template":  "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozM..",
          "templateCreationResult": true
        },
        {
          "pos": "5",
          "template": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMA..",
          "templateCreationResult": true
        },
        {
          "pos": "3",
          "template": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMAC..",
          "quality": 0.0
        },
        {
          "pos": "4",
          "template": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMACS..",
          "templateCreationResult": true
        },
        {
          "pos": "1",      
          "template": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMACS7..",
          "templateCreationResult": true
        }
      ],
      "irisData": [
        {
          "pos": "2",
          "template": "AAAADGpQICANCocKAAAAFGZ0eXBqcDIgAAAAAGpwMiAAAAAtanAyaAA..",
          "templateCreationResult": true
        },
        {
          "pos": "1",
          "template": "AAAADGpQICANCocKAAAAFGZ0eXBqcDIgAAAAAGpwMiAAAAAtanAyaA..",
          "templateCreationResult": true
        }
      ],
        "faceData": {
            "pos": "F",
            "template": "+s7srwABAAFVRdNfwkPXHYy+bfBytOOvk8H4sRSbpriVtN3rpgUj/..",
            "templateCreationResult": true
        },
        "httpResponseCode": 200,
        "transactionId": "f5cfcf13-bff3-400a-9fb5-ced8a488fb98",
        "transactionSource": "nxtGen MBAP TestTool",
        "uid": "919595833595"
    }

Face Request

Sample JSON CreateTemplate request file for Face using base64 images

	     {
	   		  "transactionId": "235d2b46-0b39-4f77-a715-1f69944035a4",
	   		  "transactionSource": "nxGen MBAP TestTool",
	   		  "uid": "919595833595",
	   		  "faceThreshold": "0",
	   		  "fingerThreshold": "0",
	   		  "irisThreshold": "0",
	   		  "fingerData": [],
	   		  "irisData": [],
	   		  "faceData": {
	   		    "pos": "F",
	   		    "image": "/9j/4AAQSkZJRgABAgEAAAAAAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQ..",
	   		    "template": null,
	   		    "quality": 0.0
	   		  }
	    }

Face Response

Sample JSON Response with the Face template

{
	    "faceData": {
	        "pos": "F",
	        "template": "+s7srwABAAHc5jU3fSlyHnt+EHtkR7gA05xzGMJhghg8R..",
	        "templateCreationResult": true
	    },
	    "httpResponseCode": 0,
	    "transactionId": "235d2b46-0b39-4f77-a715-1f69944035a4",
	    "transactionSource": "nxGen MBAP TestTool",
	    "uid": "919595833595"
}

Iris Request

Sample JSON CreateTemplate request file for Iris using base64 images

     {
        	  "transactionId": "d2b46-0b39-4f77-a715-1f69944035a4",
        	  "transactionSource": "nxGen MBAP TestTool",
        	  "uid": "919595833595",
        	  "faceThreshold": "0",
        	  "fingerThreshold": "0",
        	  "irisThreshold": "0",
        	  "fingerData": [],
        	  "faceData": {}
        	  "irisData": [
        	    {
        	      "pos": "1",
        	      "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMACS7/VgAB..",
        	      "template": null,
        	      "quality": 0.0,
    	      "blur": 0.0
        	    },
        	    {
        	      "pos": "2",
        	      "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMACS7/VgAB..",
        	      "template": null,
        	      "quality": 0.0,
    	      "blur": 0.0
        	    }]
    }

Iris Response

Sample JSON Response with the Iris template

    {
    	    "irisData": [
    			   {
    			      "pos": "1",
    			      "template": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozM..",
    			       "templateCreationResult": true  
    			    },
    			    {
    			      "pos": "2",
    			      "template": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozM..",
    			      "templateCreationResult": true
    			    }],
    	    "httpResponseCode": 200,
    	    "transactionId": "d2b46-0b39-4f77-a715-1f69944035a4",
    	    "transactionSource": "nxGen MBAP TestTool",
    	    "uid": "919595833595"
    }

Finger Request

Sample JSON CreateTemplate request file for Finger using base64 images

    {
        	  "transactionId": "246-0b39-4f77-a715-1f69944035a4",
        	  "transactionSource": "nxGen MBAP TestTool",
        	  "uid": "919595833595",
        	  "faceThreshold": "0",
        	  "fingerThreshold": "0",
        	  "irisThreshold": "0",
        	  "irisData": [],
        	  "faceData": {}
        	  "fingerData": [
        	    {
        	      "pos": "7",
        	      "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMACS7/VgAB..",
        	      "template": null,
        	      "quality": 0.0
        	    },
        	    {
        	      "pos": "10",
        	      "image": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozMACS7/VgAB..",
        	      "template": null,
        	      "quality": 0.0
        	    }]
        }

Finger Response

Sample JSON Response with the Finger template

    {
    	    "fingerData": [
    			   {
    			      "pos": "7",
    			      "template": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozM..",
    			       "templateCreationResult": true  
    			    },
    			    {
    			      "pos": "10",
    			      "template": "/6D/pAA6CQcACTLTJc0ACuDzGZoBCkHv8ZoBC44nZM0AC+F5ozM..",
    			      "templateCreationResult": true
    			    }],
    	    "httpResponseCode": 200,
    	    "transactionId": "246-0b39-4f77-a715-1f69944035a4",
    	    "transactionSource": "nxtGen MBAP TestTool",
    	    "uid": "919595833595"
    }

UIDStatus using UID

This request type is used to check if a given UID exists in T5 nxGen MBAP cache against each of the three modalities. If a given UID exists in any modality, a “true” is returned for the corresponding modality or else a “false” is returned.

URL: http://xxx.xxx.xxx.xxx:portnumber/MBAP/V1/UIDStatus
Method: POST
Example: http://in-testapi.tech5.tech:9090/MBAP/V1/UIDStatus

Request

    {  
        "uid" : "919595833595",  
        "transactionId" : "c25d8d53-c7c4-49b6-a6f1-d799d8996ejagd67",  
        "transactionSource" : "nxGen MBAP TestTool"
    }

Response

    {
        "httpResponseCode": 200,
        "transactionId": "c25d8d53-c7c4-49b6-a6f1-d799d8996ejagd67",
        "uid": "919595833595",
        "face": true,
        "finger": false,
        "iris": false
    }

Delete using UID

This request type is used for deleting a given UID which exists in T5 nxGen MBAP cache against all three modalities based on input parameters.

URL: http://xxx.xxx.xxx.xxx:portnumber/MBAP/V1/delete
Method: POST
Example: http://in-testapi.tech5.tech:9090/MBAP/V1/delete

Request

    {  
        "uid" : "919595833595",  
        "transactionId" : "c25d8d53-c7c4-49b6-996ejagd67",  
        "transactionSource" : "nxGen MBAP TestTool",
        "deletedFromFace" : true,  
        "deletedFromFinger" : false,  
        "deletedFromIris" : false
    }

Response

    {
        "uid": "919595833595",
        "transactionId": "c25d8d53-c7c4-49b6-996ejagd67",
        "transactionSource": "nxGen MBAP TestTool",
        "deleteFromFace": true,
        "httpResponseCode": 200
    }

3. ERROR CODES

Following are the error code definitions:

Error Code Error Message
500 INTERNAL SERVER ERROR
2001 ENROLMENT SUCCESS
2002 ENROLMENT ERROR
2003 CREATE FACE TEMPLATE REQUEST::FAILED
2004 FACE GALLERY TEMPLATE::NOT FOUND
2005 FACE GALLERY TEMPLATE INVALID
2006 FACE PROBE TEMPLATE INVALID
2007 FACE IMAGE VERIFICATION ERROR
2008 FACE MATCH NOT FOUND
2009 CREATE FACE TEMPLATE REQUEST::SUCCESSFUL
2010 FACE IMAGE OR TEMPLATE NOT FOUND
2011 FACE GALLERY TEMPLATE FOUND
2013 FACE IMAGE INVALID
5001 UID NOT FOUND
5002 UID ALREADY EXISTS
6001 REQUIRED PARAMETERS ARE MISSING
6002 INVALID POSITION SPECIFIED
6003 PROBE TEMPLATE FORMAT INVALID
6004 BIOMETRICS ARE MISSING
6005 PARSING ERROR SUPPLIED JSON IS INVALID
6006 INVALID BASE64 STRING SUPPLIED

Please do contact us at support@tech5-sa.com if you need more information or clarification on any of the above topics.

Thank You