Sample code for 30+ languages & platforms
Swift Requires Chilkat v11.0.0+

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

}