Para realizar a operação de validação facial de um indivíduo, deve-se utilizar o método verify, cujo URL é: https://api.biopassid.com/multibiometrics/verify. O corpo da requisição consiste em um objeto do tipo Person, que é composto por uma string CustomID, que contém um valor único que será usado como o identificador do indivíduo, um array Fingers, cujos itens são as imagens das digitais em formato de string base64, e um array Face, que consiste no bloco de imagens da face do indivíduo. No entanto, para a realização desse procedimento, será necessário apenas a biometria facial. 

Desta forma, o modelo do corpo da requisição pode ser visto abaixo:

{
  "Person": {
    "CustomID": "1234",
    "Face": [
      {
        "Face-1": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAYGBgYHBgcIC..."
      }
    ]
  }
}


Para o conteúdo do header, será necessário inserir o tipo de conteúdo e a chave de acesso, conforme pode ser visto no modelo abaixo, em que o valor de <API-KEY> deve ser substituído pela sua chave de subscrição ao BioPass ID:

{
  'Content-Type': 'application/json-patch+json',
  'Ocp-Apim-Subscription-Key': '<API-KEY>'
}


Por fim, na requisição, devem ser passados como parâmetros a especificação de que é um método POST, a URL, o header e o corpo descrito acima. Um exemplo de como ficaria um código que faz essa requisição está demonstrado abaixo, que foi escrito em Python, mas pode ser verificado em diversas outras linguagens em nossa documentação:

import http.client
import json

conn = http.client.HTTPSConnection("hml-api.biopassid.com")
payload = json.dumps({
  "Person": {
    "CustomID": "1234",
    "Face": [
      {
        "Face-1": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAYGBgYHBgcIC..."
      }
    ]
  }
})
headers = {
  'Content-Type': 'application/json-patch+json',
  'Ocp-Apim-Subscription-Key': '<API-KEY>'
}
conn.request("POST", "/multibiometrics/verify", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))


A resposta da requisição será uma mensagem JSON com um objeto Person contendo os campos:

  1. CustomID: String identificadora do indivíduo;
  2. Match: Valor booleano que indica o resultado da operação, se a biometria informada corresponde com a do indivíduo indicado
  3. MatchDetails: Um objeto que contém informações sobre a comparação de biometria. Ele é composto por dois campos:
    1. FaceMatched: Valor booleano que informa se a face oferecida é compatível com a do indivíduo indicado. Seu valor é falso como padrão, caso não receba nenhuma biometria facial;
    2. NonMatchedFingers: Um Array de strings que informa quais dedos não conformaram com a biometria indicada. Por padrão, dedos que não foram informados serão inseridos nessa lista.

Portanto, o formato da mensagem JSON pode ser observado abaixo:

{
    "Person": {
        "CustomID": "1234",
        "Match": true,
        "MatchDetails": {
            "FaceMatched": true,
            "NonMatchedFingers": [
                "Finger-1",
                "Finger-2",
                "Finger-3",
                "Finger-4",
                "Finger-5",
                "Finger-6",
                "Finger-7",
                "Finger-8",
                "Finger-9",
                "Finger-10"
            ]
        }
    }
}

Observe que apesar de nenhuma biometria de digital ter sido enviada, o sistema enviou como verdadeiro o valor da comparação das faces, e, portanto, da validação biométrica, e retornou como falsa a comparação de todas as digitais, já que nenhuma foi informada.

Caso a mensagem de valor 200 (OK) for retornada, isso quer dizer que sua requisição foi concluída com sucesso e você já pode prosseguir para as próximas.