private Map<String, Object> getSignedParams() {
    Map<String, Object> signedParams =
        (data != null) ? new HashMap<>(data) : new HashMap<String, Object>();

    if (factoryId != null) signedParams.put("factory_id", factoryId);

    signedParams.put("access_key", credentials.getAccessKey());
    signedParams.put("timestamp", timestamp != null ? timestamp : Utils.isoTimestamp());

    Map<String, Object> additionalParams = new HashMap<>(signedParams);
    additionalParams.remove("file");

    String signature = generateSignature(additionalParams);
    signedParams.put("signature", signature);
    return signedParams;
  }