> ## Documentation Index
> Fetch the complete documentation index at: https://docs.frankieone.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Blocklist Check Results

If there are blocklist checks enabled in the recipe, there’ll be an ability to pick up on customers or entity attributes that have been blocked previously.

Blocklist checks, and their close counterpart the [duplicate](/docs/v1/kyc/understanding-check/duplicates) check, will return a [ProcessResultObject](/docs/v1/kyc/understanding-check/process-result-object) for each match to another entity, based on your configured matching rules.

<Callout icon="thumbtack" color="#1A6CFF" iconType="regular">
  ##### Blacklist or Blocklist?

  The API documents refer to “blacklists” as well as “blocklists”. We’re in the process of renaming all our blacklist references to blocklists, so recognise that these terms are interchangeable and refer to the same mechanism.

  **Blocklist** will be the preferred naming convention going forward.
</Callout>

Each `ProcessResultObject` will contain the following values:

| Field Name       | Description                                                                                                                                                                                                                                                                                                                                                                                         |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| checkDate        | UTC timestamp as to when the blocklist check was matched                                                                                                                                                                                                                                                                                                                                            |
| checkId          | The check run that found the match                                                                                                                                                                                                                                                                                                                                                                  |
| checkPerformedBy | With be one of “dup”, “bl” or “dup+bl”, as the checks run for duplicate and blocklist are the same and generally run at the same time.                                                                                                                                                                                                                                                              |
| checkSource      | Will always be `builtin`                                                                                                                                                                                                                                                                                                                                                                            |
| checkType        | Will be the full list of checks that are scheduled to be run as part of the recipe (or as requested in an ad-hoc query)                                                                                                                                                                                                                                                                             |
| confidenceLevel  | What was the matching score, based on the configured matching rules.                                                                                                                                                                                                                                                                                                                                |
| providerCheckId  | Will always be the same as checkId above.                                                                                                                                                                                                                                                                                                                                                           |
| resultState      | Will be one of:   <br />\_ `CHECKED_SUCCESS_CLEAR`: blocklist check was run and no match found   <br />\_ `CHECKED_SUCCESS_WITH_NOTES`: There was a match found that requires/required review.   <br />\* `CHECKED_FAILED`: there was an error running the blocklist check. If you see this, please let FrankieOne dev support know and provide the entityID, requestID and date/time of the error. |

The following `resultNote` Key-Value-Pairs will also be set.

| Key Name                         | Value Description                                                                              |                                                        |
| -------------------------------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------ |
| match.entity.id                  | The entityID that we matched to                                                                |                                                        |
| match.entity.customer\_reference | If the matched entity has a customer reference, then this is included as well                  |                                                        |
| match.level                      | How strong a match                                                                             |                                                        |
| blacklist.attribute              | The specific attribute that was matched (or ENTIRE\_ENTITY if a general blocklist match)       |                                                        |
| blacklist.reason                 | Why this particular matching entity/attribute was blocklisted                                  |                                                        |
| match.type.entity                | A pipe (                                                                                       | ) separated list of the entity fields we matched on.   |
| match.type.document              | A pipe (                                                                                       | ) separated list of the document fields we matched on. |
| match.notes                      | Which matching rule was used to determine that a match has been made.                          |                                                        |
| status.current                   | If this match has been assessed, what’s the final status. It will be one of:                   |                                                        |
| *`false_positive`*               |                                                                                                |                                                        |
| `true_positive`                  |                                                                                                |                                                        |
| status.manual\_update            | Will be the requestID of the request that set the final state of this match                    |                                                        |
| status.set\_date                 | UTC date stamp when the status was set                                                         |                                                        |
| status.set\_by                   | The username of the person who set the status                                                  |                                                        |
| status.false\_positive.ignore    | Internal flag used to indicate this result can be ignored when evaluating overall entity state |                                                        |
| status.true\_positive            | Internal flag used to indicate a true positive match                                           |                                                        |

## Effect on EntityProfileResult

When there is a blocklist match (either a true positive or all potential matches haven’t yet been marked as false positives), this will prevent any further checks from being run. In that case, there would be something like the following in the **entityProfileResult** `checkResults` section:

```json Blocklist Result theme={null}
                {  
                    "checkClass": "fraud",  
                    "checkType": "blacklist",  
                    "code": "POTENTIAL_MATCH",  
                    "message": "Potential blacklist match (Manual review required)",  
                    "result": "FAIL"  
                },  
                {  
                    "checkClass": "aml",  
                    "checkType": "pep_media",  
                    "code": "BLOCKED_BY_OTHER_FAIL",  
                    "message": "Can't check while there are potential blacklist matches",  
                    "result": "UNCHECKED"  
                },  
                {  
                    "checkClass": "none",  
                    "checkType": "idvalidate",  
                    "code": "BLOCKED_BY_OTHER_FAIL",  
                    "message": "Can't check while there are potential blacklist matches",  
                    "result": "UNCHECKED"  
                }  
```

In there you can see that there is a blacklist FAIL result and subsequent checks are blocked by this failure.

## Example

An example where there are two false positive matches, one true positive and outstanding are below:

```json Example Blocklist Result expandable theme={null}
"blacklistCheckResults": [  
        {  
            "checkDate": "2021-08-10T07:35:33.953Z",  
            "checkId": "9c6e3b73-9a83-162b-c76e-cc8d63cf2674",  
            "checkPerformedBy": "bl",  
            "checkSource": "builtin",  
            "checkType": "blacklist,pep_media,idvalidate",  
            "confidenceLevel": 60,  
            "providerCheckID": "9c6e3b73-9a83-162b-c76e-cc8d63cf2674",  
            "resultNotes": [  
                {  
                    "kvpKey": "match.entity.id",  
                    "kvpType": "general.string",  
                    "kvpValue": "97f96378-1b64-af6d-9f09-a96fb13be05f"  
                },  
                {  
                    "kvpKey": "match.entity.customer_reference",  
                    "kvpType": "id.external",  
                    "kvpValue": "5290008-new-applicant"  
                },  
                {  
                    "kvpKey": "match.level",  
                    "kvpType": "general.string",  
                    "kvpValue": "MEDIUM"  
                },  
                {  
                    "kvpKey": "match.type.document",  
                    "kvpType": "general.string",  
                    "kvpValue": "IdNo"  
                },  
                {  
                    "kvpKey": "match.notes",  
                    "kvpType": "general.string",  
                    "kvpValue": "Match rule #2"  
                },  
                {  
                    "kvpKey": "blacklist.reason",  
                    "kvpType": "general.string",  
                    "kvpValue": "FABRICATED_IDENTITY"  
                },  
                {  
                    "kvpKey": "blacklist.attribute",  
                    "kvpType": "general.string",  
                    "kvpValue": "ID_DOCUMENT"  
                },  
                {  
                    "kvpKey": "original_checksource",  
                    "kvpType": "general.string",  
                    "kvpValue": "builtin"  
                },  
                {  
                    "kvpKey": "status.false_positive.ignore",  
                    "kvpType": "result.code",  
                    "kvpValue": "01FCQG0KBSKA5P27WGP8EZTNHX"  
                },  
                {  
                    "kvpKey": "status.current",  
                    "kvpType": "general.string",  
                    "kvpValue": "false_positive"  
                },  
                {  
                    "kvpKey": "status.manual_update",  
                    "kvpType": "result.code",  
                    "kvpValue": "01FCQG0KBSKA5P27WGP8EZTNHX"  
                },  
                {  
                    "kvpKey": "status.set_by",  
                    "kvpType": "general.string",  
                    "kvpValue": "jerry@frankieone.com"  
                },  
                {  
                    "kvpKey": "status.set_date",  
                    "kvpType": "general.datetime",  
                    "kvpValue": "2021-08-10T07:39:15Z"  
                }  
            ],  
            "resultState": "CHECKED_SUCCESS_WITH_NOTES"  
        },  
        {  
            "checkDate": "2021-08-10T07:35:33.953Z",  
            "checkId": "9c6e3b73-9a83-162b-c76e-cc8d63cf2674",  
            "checkPerformedBy": "bl",  
            "checkSource": "builtin",  
            "checkType": "blacklist,pep_media,idvalidate",  
            "confidenceLevel": 50,  
            "providerCheckID": "9c6e3b73-9a83-162b-c76e-cc8d63cf2674",  
            "resultNotes": [  
                {  
                    "kvpKey": "match.entity.id",  
                    "kvpType": "general.string",  
                    "kvpValue": "3e3cac65-813b-975a-b3e8-0c772767b74a"  
                },  
                {  
                    "kvpKey": "match.level",  
                    "kvpType": "general.string",  
                    "kvpValue": "MEDIUM"  
                },  
                {  
                    "kvpKey": "match.type.entity",  
                    "kvpType": "general.string",  
                    "kvpValue": "Date|Fnam"  
                },  
                {  
                    "kvpKey": "match.notes",  
                    "kvpType": "general.string",  
                    "kvpValue": "Match rule #5"  
                },  
                {  
                    "kvpKey": "blacklist.reason",  
                    "kvpType": "general.string",  
                    "kvpValue": "FABRICATED_IDENTITY"  
                },  
                {  
                    "kvpKey": "blacklist.attribute",  
                    "kvpType": "general.string",  
                    "kvpValue": "FULL_NAME"  
                },  
                {  
                    "kvpKey": "original_checksource",  
                    "kvpType": "general.string",  
                    "kvpValue": "builtin"  
                },  
                {  
                    "kvpKey": "status.true_positive",  
                    "kvpType": "result.code",  
                    "kvpValue": "01FDPBHTK2NKJWCC4EYEVGR18P"  
                },  
                {  
                    "kvpKey": "status.current",  
                    "kvpType": "general.string",  
                    "kvpValue": "true_positive"  
                },  
                {  
                    "kvpKey": "status.manual_update",  
                    "kvpType": "result.code",  
                    "kvpValue": "01FDPBHTK2NKJWCC4EYEVGR18P"  
                },  
                {  
                    "kvpKey": "status.set_by",  
                    "kvpType": "general.string",  
                    "kvpValue": "ops-verify@frankiefinancial.com"  
                },  
                {  
                    "kvpKey": "status.set_date",  
                    "kvpType": "general.datetime",  
                    "kvpValue": "2021-08-22T07:17:43Z"  
                }  
            ],  
            "resultState": "CHECKED_SUCCESS_WITH_NOTES"  
        },  
        {  
            "checkDate": "2021-08-10T07:35:33.953Z",  
            "checkId": "9c6e3b73-9a83-162b-c76e-cc8d63cf2674",  
            "checkPerformedBy": "bl",  
            "checkSource": "builtin",  
            "checkType": "blacklist,pep_media,idvalidate",  
            "confidenceLevel": 50,  
            "providerCheckID": "9c6e3b73-9a83-162b-c76e-cc8d63cf2674",  
            "resultNotes": [  
                {  
                    "kvpKey": "match.entity.id",  
                    "kvpType": "general.string",  
                    "kvpValue": "c435b728-34ba-53e6-cd8d-1a6c18209bf1"  
                },  
                {  
                    "kvpKey": "match.level",  
                    "kvpType": "general.string",  
                    "kvpValue": "MEDIUM"  
                },  
                {  
                    "kvpKey": "match.type.entity",  
                    "kvpType": "general.string",  
                    "kvpValue": "Date|Fnam"  
                },  
                {  
                    "kvpKey": "match.notes",  
                    "kvpType": "general.string",  
                    "kvpValue": "Match rule #5"  
                },  
                {  
                    "kvpKey": "blacklist.reason",  
                    "kvpType": "general.string",  
                    "kvpValue": "NO_REASON_SUPPLIED"  
                },  
                {  
                    "kvpKey": "blacklist.attribute",  
                    "kvpType": "general.string",  
                    "kvpValue": "ENTIRE_ENTITY"  
                },  
                {  
                    "kvpKey": "original_checksource",  
                    "kvpType": "general.string",  
                    "kvpValue": "builtin"  
                }  
            ],  
            "resultState": "CHECKED_SUCCESS_WITH_NOTES"  
        }  
    ],  
```
