Skip to content

Cases

Endpoints for interacting with Cases

The case object

Cases can either represent a Person or an Entity. There are different fields available to each type although there are also common fields. The tables below detail the fields available.

Common fields

PropertyRequiredNotes
URNIdentifier of the case. Used to match the case to any object in your system
TypeType of the case. Must be either: 'Person' or 'Business'

Entity fields

PropertyRequiredNotes
EntityNameName of the entity.
EntityRegistrationNumberUsed to store the registration number of the entity like a Company House Id. Must be under 20 characters if supplied

Person fields

PropertyRequiredNotes
TitleOne of: Mr, Miss, Mrs or Dr
GivenNames
Surname
DOBDay
DOBMonth
DOBYear
GenderOne of: Male, Female, Other or PreferNotToSay
PhoneNumbersComma separated list of phone numbers
EmailAddressesComma separated list of email addresses
Addressline1House Number.
One of Addressline1 OR Addressline2 must be supplied
Addressline2House Name.
One of Addressline1 OR Addressline2 must be supplied
Addressline3Sub Builing (flat, appt)
Addressline4Street
Addressline5Locality
Addressline6Town
Addressline7County
AddressPostcode
AddressCountryCode2ISO 2 letter country code

Get case

Returns case info from a case id.

Endpoint/api/cases/{caseId}
MethodGET

Response

json

{
    "id": 229,
    "urn": "testing-123",
    "riskRating":"High",
    "summary":"The case for **Jerry Seinfeld** has been assigned a **high overall risk rating** due to multiple high-risk flags identified during the checks performed on the documents. Specifically, there are **high risk ratings** related to tamper detection and content validation checks, indicating significant concerns regarding the integrity and accuracy of the documents. Additionally, the content validation revealed **medium risks** associated with discrepancies in the date of birth and **low risks** related to address checks. These combined risks necessitate thorough follow-up to ensure compliance and mitigate potential issues.\n\nIn terms of checks performed, both the **Bank Statement #1** and **Passport #1** underwent completed tamper detection and content validation checks. However, critical checks such as **IDV** for both documents remain **not run**, leaving gaps in the risk assessment. While KYC and financial vulnerability checks were completed, the absence of these checks raises concerns about the overall reliability of the gathered information, which could impact the overall risk evaluation process.",
    "assignedUsername": "Warren Russell",
    "givenNames": "Jerry",
    "surname": "Seinfeld",
    "dobYear": 1990,
    "dobMonth": 10,
    "dobDay": 10,
    "countryOfCitizenship": "",
    "addressLine1": "22",
    "addressLine3": "Best street",
    "addressPostcode": "123",
    "addressCountryCode2": "gb",
    "emailAddresses": [],
    "phoneNumbers": []
}

Create case

Creates a new case from the information provided in the request body. The endpoint uses a multipart form data request which makes it easy to provide document files.

Something to note is the documents section of the request. It's an array so multiple documents can be provided but form data arrays can be tricky to get working. This is what it looks like uploading two documents in Postman:

Creating a case with multiple documents in Postman
Endpoint/api/cases
MethodPOST
Content typemultipart/form-data

Request

Here is creating a case in C#

csharp
public async Task<string> CreateTestCase(string accessToken)
{
    var client = new HttpClient{
        BaseAddress = new Uri("https://api.eyedp.com/")
    };

    var document = await File.ReadAllBytesAsync("TestData/test-passport.jpg");

    var fileContent = new ByteArrayContent(document);
    fileContent.Headers.ContentType = new MediaTypeHeaderValue("image/jpeg");

    var content = new MultipartFormDataContent{
        { new StringContent("testing-123"), "urn" },
        { new StringContent("Elaine"), "givenNames" },
        { new StringContent("Benes"), "surname" },
        { new StringContent("10"), "dobDay" },
        { new StringContent("01"), "dobMonth" },
        { new StringContent("1990"), "dobYear" },
        { new StringContent("22"), "addressline1" },
        { new StringContent("Best Street"), "addressline2" },
        { new StringContent("Newport"), "addressline6" },
        { new StringContent("12345"), "addresspostcode" },
        { new StringContent("GB"), "addresscountrycode2" },
        { new StringContent("passport"), "documents[0].type" },
        { fileContent, "documents[0].files", "test-passport.jpg" }
    };

    var request = new HttpRequestMessage(HttpMethod.Post, "/api/cases");
    request.Content = content;
    request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken);

    var response = await client.SendAsync(request);

    response.EnsureSuccessStatusCode();

    return await response.Content.ReadAsStringAsync();
}

And the full create case request in Postman:

Creating a case with in Postman

Response

The response contains the id of the created case

json
256