Sample code for 30+ languages & platforms
Swift

Refinitiv World-Check One - Synchronous Screening (POST)

See more Refinitiv Examples

Sends a signed POST request to do simple synchronous screening.

Chilkat Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    let json = CkoJsonObject()!

    // Create the following JSON:
    // 
    // {
    //   "keyId": "aaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
    //   "hmacKey": "xxxxzI3vi58xxxCBxxx1+P/d8tGxx7KuLqN/KMPNxxxxekhj8/bx83+1YQSUxxxxYyv939ceY06GvhYRKmxxxx==",
    //   "algorithm": "hmac-sha256",
    //   "headers": [
    //     "(request-target)",
    //     "host",
    //     "date",
    //     "content-type",
    //     "content-length"
    //   ]
    // }

    // Substitute your actual API key and API secret in place of "api-key" and "api-secret"
    json.updateString(jsonPath: "keyId", value: "api-key")
    json.updateString(jsonPath: "hmacKey", value: "api-secret")
    json.updateString(jsonPath: "algorithm", value: "hmac-sha256")
    json.updateString(jsonPath: "headers[0]", value: "(request-target)")
    json.updateString(jsonPath: "headers[1]", value: "host")
    json.updateString(jsonPath: "headers[2]", value: "date")
    json.updateString(jsonPath: "headers[3]", value: "content-type")
    json.updateString(jsonPath: "headers[4]", value: "content-length")

    let http = CkoHttp()!

    // Setting the AuthSignature property causes the following header to be computed and added:
    // Authorization: Signature keyId="...", algorithm="hmac-sha256", headers="(request-target) host date content-type content-length", signature="..."
    http.authSignature = json.emit()

    // Build the following JSON to be sent in the POST request body.

    // {
    //     "groupId": "{{group-id}}",
    //     "entityType": "ORGANISATION",
    //     "caseId": "",
    //     "providerTypes": [
    //         "WATCHLIST"
    //     ],
    //     "name": "COMPANY NAME",
    //     "nameTransposition": false,
    //     "secondaryFields": [],
    //     "customFields": []
    // }

    // Use this online tool to generate code from sample JSON: 
    // Generate Code to Create JSON

    let jsonBody = CkoJsonObject()!
    jsonBody.updateString(jsonPath: "groupId", value: "{{group-id}}")
    jsonBody.updateString(jsonPath: "entityType", value: "ORGANISATION")
    jsonBody.updateString(jsonPath: "caseId", value: "")
    jsonBody.updateString(jsonPath: "providerTypes[0]", value: "WATCHLIST")
    jsonBody.updateString(jsonPath: "name", value: "COMPANY NAME")
    jsonBody.updateBool(jsonPath: "nameTransposition", value: false)
    jsonBody.updateNewArray(jsonPath: "secondaryFields")
    jsonBody.updateNewArray(jsonPath: "customFields")

    let resp = CkoHttpResponse()!
    success = http.httpJson(verb: "POST", url: "https://api-worldcheck.refinitiv.com/v2/cases/screeningRequest", json: jsonBody, contentType: "application/json", response: resp)
    if success == false {
        print("\(http.lastErrorText!)")
        return
    }

    print("Response status code = \(resp.statusCode.intValue)")

    let jsonResp = CkoJsonObject()!
    jsonResp.load(json: resp.bodyStr)

    jsonResp.emitCompact = false
    print("\(jsonResp.emit()!)")

    // Use this online tool to generate parsing code from sample JSON: 
    // Generate Parsing Code from JSON

}