Multi-Signal Requests

Applies to: Direct | Capture

You can combine a document_type with more than one value in the signals array. This is known as a Multi-Signal Request. Multi-signal requests can be used to analyze several combinations at once, such as a barcode analysis (idcheck) with a watchlists check (kyc) for a North American driver license (na_dl). The private_data request object might look like this:

{  
  "private_data": {  
    "document_type": "na_dl", 
    "signals": [
      "idcheck",
      "kyc"
    ]
  }
}

Interdependent Signals

Certain multi-signal requests require specific combinations of values in the signals array. This is known as an Interdependent Signal combination. An interdependent signal must be present in combination with one or more additional signals for a specific document_type.

The following table shows combinations for multi-signal requests, including the required values for interdependent signals.

criminal_backgroundCustomer Quality*documentLiveness_idrndidcheckkycocr_matchocr_scanselfie
na_dlInterdependent: ocr_scan or idcheckValidValidValidInterdependent: ocr_scan or idcheckInterdependent: ocr_scan and idcheckValidValid
otherInterdependent: ocr_scanValidValidInvalidInterdependent: ocr_scanInterdependent: ocr_scanValidValid
passportInterdependent: ocr_scanValidValidInvalidInterdependent: ocr_scanInterdependent: ocr_scanValidValid

* Customer quality signals include address_validation, device_fingerprint, and phone_validation.

The table shows Valid, Invalid, or Interdependent for each combination.

  • Valid means the document_type and signal combination is okay to submit in the request body. No additional signals are required. For example, na_dl with idcheck is a valid combination for a simple request.
  • Invalid means the combination should not be submitted in the request body. There are two invalid combinations: other with idcheck, and passport with idcheck. Both would return an error if submitted because the request would not result in meaningful response data.
  • Interdependent means the combination requires two or more specific signals in the request body for the given document_type. For example, the combination of passport with kyc results in an interdependent combination. For a passport, the interdependent signal is ocr_scan and it must be included with kyc. A correct private_data request object looks like this:
{  
  "private_data": {  
    "document_type": "passport",
    "signals": [
      "kyc",
      "ocr_scan"
    ]
  }
}

But an incorrect private_data request object looks like this:

{  
  "private_data": {  
    "document_type": "passport",  
    "signals": [
      "kyc"
    ]
  }
}

It is incorrect for a passport because the signals array includes the kyc signal, but it does not also include the ocr_scan signal, which is interdependent with kyc for passports.

A North American driver license (na_dl) combined with ocr_match results in an interdependent combination that must include both ocr_scan and idcheck.

{  
  "private_data": {  
    "document_type": "na_dl",
    "signals": [
      "ocr_match",
      "ocr_scan",
      "idcheck"
    ]
  }
}