Instruções para recebimento dos dados

Guia de construção para o endpoint de callback do video agreement

Ao final do fluxo de processamento dos dados gerados pela gravação do video agreement, será realizado o envio dos dados coletados para o endpoint cadastrado no momento da criação do script.

O endpoint cadastrado deve aceitar:

  • Requisição HTTP
  • Content-Type: application/json;
  • Método POST;
  • Sem autenticação (open)
    • Em breve daremos suporte.
  • Body:
    •  {  
            "inviteId": "a7b28e42-5d6a-4db8-90bb-94e9efb2f0d2",  
            "customerForm": [  
              {  
                "label": "nome",  
                "value": "John Titor",  
                "private": false  
              },  
              {  
                "label": "fruta",  
                "value": "maçã",  
                "private": true  
              }  
            ],  
            "cpf": "12345678901",  
            "location": {  
              "city": "Curitiba",  
              "country": "Brasil",  
              "countryCode": "br",  
              "houseNumber": "42",  
              "postCode": "80030-000",  
              "street": "Rua do Amanhã",  
              "state": "Paraná",  
              "neighborhood": "Jardim das Teorias",  
              "latitude": -25.429596,  
              "longitude": -49.271272  
            },  
            "scriptAnalysis": [  
              {  
                "label": "cpf",  
                "expected": "12345678901",  
                "received": "987.654.321-00",  
                "reason": "CPF não corresponde ao esperado. Discrepância total.",  
                "percentage": 0  
              },  
              {  
                "label": "name",  
                "expected": "John Titor",  
                "received": "Carlos Silva",  
                "reason": "Nome não corresponde ao esperado. Discrepância total.",  
                "percentage": 0  
              },  
              {  
                "label": "idade",  
                "expected": "42",  
                "received": "29/02/1982",  
                "reason": "Idade não corresponde ao esperado. Data de nascimento fornecida em vez de idade.",  
                "percentage": 0  
              },  
              {  
                "label": "general_similarity",  
                "expected": "meu nome é John Titor e tenho 42, meu cpf é 12345678901",  
                "received": "Eu, Carlos Silva, CPF 987.654.321-00, nascido em 29/02/1982, confirmo a solicitação de crédito no valor de R$ 10.000,00.",  
                "reason": "Nenhuma correspondência entre os dados fornecidos na transcrição e os esperados no script.",  
                "percentage": 0  
              }  
            ],  
            "imageAnalysis": {  
              "riskLevel": "low",  
              "recommendation": "approve",  
              "reason": "Rosto visível, iluminação adequada, sem sinais de fraude. Fundo neutro.",  
              "indicators": [  
                {  
                  "label": "environment",  
                  "description": "Interior, parede branca ao fundo, boa iluminação.",  
                  "score": 75  
                },  
                {  
                  "label": "estimated_profession",  
                  "description": "Analista de sistemas ou profissional de tecnologia.",  
                  "score": 85  
                },  
                {  
                  "label": "facial_expression",  
                  "description": "Neutra, levemente séria.",  
                  "score": 88  
                },  
                {  
                  "label": "estimated_age",  
                  "description": "40-45 anos.",  
                  "score": 92  
                },  
                {  
                  "label": "appearance_impression",  
                  "description": "Aparência casual, profissional.",  
                  "score": 80  
                },  
                {  
                  "label": "authenticity",  
                  "description": "Imagem autêntica, sem edições visíveis.",  
                  "score": 100  
                },  
                {  
                  "label": "fraud_signs",  
                  "description": "Nenhum indício de fraude visual.",  
                  "score": 100  
                },  
                {  
                  "label": "financial_condition",  
                  "description": "Não identificado.",  
                  "score": 50  
                }  
              ],  
              "totalScore": 86,  
              "spoofDetected": false,  
              "multiplePeopleDetected": false,  
              "politicallyExposedPersonDetected": false  
            },  
            "facialBiometrics": {  
              "trustLevel": "ERROR",  
              "description": "dados insuficientes"  
            }  
          }
      


Tipagem dos dados de resposta:

  • Body

    NomeTipo
    inviteIdstring
    cpfstring
    customerForm[]CustomerForm | null
    locationGeoLocation | null
    scriptAnalysis[]ScriptAnalysis | null
    imageAnalysisImageAnalysis | null
    facialBiometricsFacialBiometrics | null
    fingerPrintobject (json)
    errors[]ProcessError | null
  • CustomerForm

    NomeTipo
    labelstring
    valuestring
    privateboolean
  • GeoLocation

    NomeTipo
    citystring
    countrystring
    countryCodestring
    houseNumberstring
    postCodestring
    streetstring
    statestring
    neighborhoodstring
    latitudefloat
    longitudefloat
  • ScriptAnalysis

    NomeTipo
    labelstring
    expectedstring
    receivedstring
    reasonstring
    percentageint
  • FacialBiometrics

    NomeTipo
    trustLevelstring
    descriptionstring
  • ImageAnalysis

    NomeTipo
    riskLevelstring
    recommendationstring
    reasonstring
    totalScoreint
    spoofDetectedboolean
    multiplePeopleDetectedboolean
    politicallyExposedPersonDetectedboolean
    indicators[]FacialIndicators
    • FacialIndicators

      NomeTipo
      labelstring
      descriptionstring
      scoreint

Em caso de erro em alguma etapa do processamento::

  • ProcessError

    NomeTipo
    errorstring
    descriptionstring