WC1: secondary field matching

When searching (call to /cases/{caseSystemId}/results) a Vessel by name and IMO (secondary field):

  1. does the "matchingStrength" field only apply to the name search? It seems to me that when searching with a wrong IMO, the strength may still be "EXACT"
  2. is there a way to search by IMO only?
  3. is there a way to return the IMO when not present in the search fields? (currently I use a placeholder IMO - 0000.. - to force the API to return the IMO value)

Thank you!

Best Answer

  • Irfan.Khan
    Answer ✓

    @cedric.lasbleiz

    Please find the answer to your questions below:

    1. Yes, the matchingStrength applies only to the entity name being sent to the WC1 API. IMO number is a secondary field identifier and is only used to auto resolve the matches of the screened entities.

    2. No, passing the name of the entity(vessel) is a must for the screening request to be successful. Otherwise you will get a 404 bad request.

    3. Even if you do not send the IMO # in your screening request, the WC result and WC profile will still display the IMO number in it, if we have that information in our DB. As said before, the IMO number being send over is a secondary identifier which helps the system auto resolve the matches automatically.

    For example: Let say: You screened the vessel name "Squamish" with the IMO # 45678 (secondary identifier)- there will be 1 match. The match will be auto resolved as there is a IMO # mismatch with the IMO # number in the DB and the matchingStrength will be "EXACT".

    If you screen just "Sqamish" with out the IMO number, you will see the match is unresolved and the IMO number will still be in the JSON response of sync screening/WC profile for your reference and investigation.

Answers

  • @Irfan.Khan, thank you for your reply.

    However, for the third point, I am not able to obtain the described result when searching. I do obtain the IMO when I get the profile from "/reference/profile/{referenceId}", but not when I get the search results. Is there something missing from my steps?

    1. Post to "/cases" using the body:

    {
    "entityType": "VESSEL",
    "groupId":"{{group-id}}",
    "providerTypes": [
    "WATCHLIST"
    ],
    "name": "Squamish",
    "customFields":[],
    "secondaryFields":[]
    }

    results in a CaseData with an empty "secondaryFields" value (this is true even if I don't include "secondaryFields" in the input body).

    2. Post to "/cases/{caseSystemId}/screeningRequest"

    3. Cycle until Post to "/cases/{caseSystemId}/auditEvents" indicates "COMPLETED"

    4. Get to "/cases/{caseSystemId}/results" to get results, which produces an empty "secondaryFields" list:

    [
    {
    "resultId": "0a3687cf-69ca-1d06-9a77-5d35005f1156","referenceId": "e_tr_wcv_1328634","matchStrength": "EXACT","matchedTerm": "SQUAMISH","submittedTerm": "Squamish","matchedNameType": "PRIMARY","secondaryFieldResults": [],"sources": [
    "b_trwc_62"],"categories": [
    "Other Bodies"],"creationDate": "2019-04-02T09:50:15.273Z","modificationDate": "2019-04-02T09:50:15.273Z","resolution": null,"resultReview": {
    "reviewRequired": false,"reviewRequiredDate": "2019-03-19T00:00:00.000Z","reviewRemark": null,"reviewDate": null}
    }
    ]
  • @cedric.lasbleiz

    Apologies for mentioning that you can get the IMO number in the screening result endpoint. Currently we do not provide the IMO number in the screening result endpoint.

    The only way would be, as you suggested, to send a random IMO number as secondary identifier.

    If you do not want to send an IMO number in the secondary identifier, you can dig in further using the WC profile API or just use the sync screening endpoint.

    The IMO number is only available in the sync screening request JSON and WC profile API JSON.

    Please find the sync screening request JSON below. It is inside the

    "identityDocuments" array.

       "identityDocuments": [
    {
    "entity": null,
    "number": "9413078",
    "issueDate": null,
    "expiryDate": null,
    "issuer": null,
    "type": null,
    "locationType": {
    "type": "INT-IMO",
    "country": {
    "code": "QQQ",
    "name": "INTERNATIONAL"
    },
    "name": "IMO REGISTRATION NUMBER"
    }
    }