# Update KYC settings

Updates KYC settings.

Endpoint: PUT /kyc-settings
Version: latest
Security: SecretApiKey, JWT

## Security:

  - `SecretApiKey` (unknown)
    apiKey in header REB-APIKEY

  - `JWT` (unknown)
    http bearer JWT

## Request body:

  - `application/json` (unknown)
    Settings for KYC analysis.

## Request fields (application/json):

  - `identityProof` (object)
    Identity proof settings.

  - `identityProof.weights` (object)
    Property weights that are used for the KYC document verification process.
All KYC documents start the verification process with a score of 100.
If a check fails, the score is reduced by the corresponding weight.
For example, if the `firstName` check weight is set to `5`, and the check fails,
the KYC document score becomes `95`.

  - `identityProof.weights.containsImage` (integer)
    Weight added if the document does not include an image that contains a face.

  - `identityProof.weights.isIdentityDocument` (integer)
    Weight added if the document does not resemble an ID.

  - `identityProof.weights.isPublishedOnline` (integer)
    Weight added if an exact match of the document is not found online.

  - `identityProof.weights.firstName` (integer)
    Weight added if the customer's first name is not matched.

  - `identityProof.weights.lastName` (integer)
    Weight added if the customer's last name is not matched.

  - `identityProof.weights.expirationDate` (integer)
    Weight added if an expiration date is not detected on the document.

  - `identityProof.weights.dateOfBirth` (integer)
    Weight added if a date of birth is not detected on the document, or if the date of birth detected on the document is not matched.

  - `identityProof.weights.issueDate` (integer)
    Weight added if an issue date is not detected on the document.

  - `identityProof.weights.hasMinimalAge` (integer)
    Weight added if the document does not verify the minimal age limit.
Minimal age is 21+ the for USA and 18+ for all other countries.

  - `identityProof.weights.hasMatchingFaceProof` (integer)
    Weight added if an identity document does not have matching face proof.

  - `identityProof.weights.nationality` (integer)
    Weight added if a nationality is not detected on the document.

  - `identityProof.weights.documentSubtype` (integer)
    Weight added if the document is not one of the recognized document subtypes.

  - `identityProof.weights.isTampered` (integer)
    Weight added if the document has been tampered with.

  - `identityProof.weights.isPhotocopy` (integer)
    Weight added if the document is detected as a photocopy.

  - `identityProof.weights.mrzChecksum` (integer)
    Weight added when MRZ check digits fail validation.

  - `identityProof.weights.documentNumber` (integer)
    Weight added if a document number is not detected on the document.

  - `identityProof.weights.issuanceCountry` (integer)
    Weight added if the country that issued the document is not detected.

  - `identityProof.weights.issuanceRegion` (integer)
    Weight added if the region, state, province, or territory that issued the document is not detected.

  - `identityProof.thresholds` (object)
    Pass and fail threshold definition for the document verification process.

  - `identityProof.thresholds.rejectBelow` (integer)
    Overall score by which an identity proof document fails the verification process.

  - `identityProof.thresholds.acceptAbove` (integer)
    Overall score by which an identity proof document passes the verification process.

  - `identityProof.minimumAgeSettings` (object)
    Minimum age settings for identity proof documents.

  - `identityProof.minimumAgeSettings.defaultMinimumAge` (integer)
    Default minimum age requirement for identity proof documents.
This is used when no location-specific override is configured.

  - `identityProof.minimumAgeSettings.locationOverrides` (array)
    Location-specific minimum age.
Each item specifies a minimum age for a specific location.
For country-wide rules, omit the state field.
For state-specific rules, include the state field.
    Example: [{"country":"US","minimumAge":21},{"country":"US","state":"AL","minimumAge":19}]

  - `identityProof.minimumAgeSettings.locationOverrides.country` (string, required)
    Country code in ISO 3166 alpha-2 format.
    Example: US

  - `identityProof.minimumAgeSettings.locationOverrides.state` (string)
    Name or code of the state or region.
    Example: AZ

  - `identityProof.minimumAgeSettings.locationOverrides.minimumAge` (integer, required)
    Minimum age requirement for this location.
    Example: 21

  - `identityProof.faceProofSettings` (object)
    Quality requirements for the face proof image of an identity proof document.

  - `identityProof.faceProofSettings.minimumBrightness` (integer)
    Minimum brightness of the lighting in the detected face area of the face proof image.
The brightness scale ranges from `0` to `100`.
A higher value indicates brighter lighting.
If the detected brightness is below this value,
the `hasMatchingFaceProof` check fails with the `face_match_low_brightness` reason.
Use `0` to disable the brightness requirement.

  - `addressProof` (object)
    Address proof settings.

  - `addressProof.weights` (object)
    Property weights that are used for the KYC document verification process.
All KYC documents start the verification process with a score of 100.
If a check fails, the score is reduced by the corresponding weight.
For example, if the `firstName` check weight is set to `5`, and the check fails,
the KYC document score becomes `95`.

  - `addressProof.weights.firstName` (integer)
    Weight added if the customer's first name is not matched.

  - `addressProof.weights.lastName` (integer)
    Weight added if the customer's last name is not matched.

  - `addressProof.weights.line1` (integer)
    Weight added if the customer's address is not matched.

  - `addressProof.weights.city` (integer)
    Weight added if the customer's city is not matched.

  - `addressProof.weights.region` (integer)
    Weight added if the customer's region is not matched.

  - `addressProof.weights.postalCode` (integer)
    Weight added if the customer's postal code is not matched.

  - `addressProof.weights.date` (integer)
    Weight added if a date is not detected on the document.

  - `addressProof.weights.phone` (integer)
    Weight added if a phone number is not detected on the document.

  - `addressProof.weights.documentSubtype` (integer)
    Weight added if the document is not one of the recognized document subtypes.

  - `addressProof.weights.isTampered` (integer)
    Weight added if the document has been tampered with.

  - `addressProof.thresholds` (object)
    Pass and fail threshold definition for the document verification process.

  - `addressProof.thresholds.rejectBelow` (integer)
    Overall score by which an identity proof document fails the verification process.

  - `addressProof.thresholds.acceptAbove` (integer)
    Overall score by which an identity proof document passes the verification process.

  - `uiVersion` (string | null)
    Version of the KYC document gatherer UI.
    Enum: "1", "2"

## Response 200:

  - `200` (unknown)
    KYC settings updated.

## Response 200 fields (application/json):

  - `identityProof` (object)
    Identity proof settings.

  - `identityProof.weights` (object)
    Property weights that are used for the KYC document verification process.
All KYC documents start the verification process with a score of 100.
If a check fails, the score is reduced by the corresponding weight.
For example, if the `firstName` check weight is set to `5`, and the check fails,
the KYC document score becomes `95`.

  - `identityProof.weights.containsImage` (integer)
    Weight added if the document does not include an image that contains a face.

  - `identityProof.weights.isIdentityDocument` (integer)
    Weight added if the document does not resemble an ID.

  - `identityProof.weights.isPublishedOnline` (integer)
    Weight added if an exact match of the document is not found online.

  - `identityProof.weights.firstName` (integer)
    Weight added if the customer's first name is not matched.

  - `identityProof.weights.lastName` (integer)
    Weight added if the customer's last name is not matched.

  - `identityProof.weights.expirationDate` (integer)
    Weight added if an expiration date is not detected on the document.

  - `identityProof.weights.dateOfBirth` (integer)
    Weight added if a date of birth is not detected on the document, or if the date of birth detected on the document is not matched.

  - `identityProof.weights.issueDate` (integer)
    Weight added if an issue date is not detected on the document.

  - `identityProof.weights.hasMinimalAge` (integer)
    Weight added if the document does not verify the minimal age limit.
Minimal age is 21+ the for USA and 18+ for all other countries.

  - `identityProof.weights.hasMatchingFaceProof` (integer)
    Weight added if an identity document does not have matching face proof.

  - `identityProof.weights.nationality` (integer)
    Weight added if a nationality is not detected on the document.

  - `identityProof.weights.documentSubtype` (integer)
    Weight added if the document is not one of the recognized document subtypes.

  - `identityProof.weights.isTampered` (integer)
    Weight added if the document has been tampered with.

  - `identityProof.weights.isPhotocopy` (integer)
    Weight added if the document is detected as a photocopy.

  - `identityProof.weights.mrzChecksum` (integer)
    Weight added when MRZ check digits fail validation.

  - `identityProof.weights.documentNumber` (integer)
    Weight added if a document number is not detected on the document.

  - `identityProof.weights.issuanceCountry` (integer)
    Weight added if the country that issued the document is not detected.

  - `identityProof.weights.issuanceRegion` (integer)
    Weight added if the region, state, province, or territory that issued the document is not detected.

  - `identityProof.thresholds` (object)
    Pass and fail threshold definition for the document verification process.

  - `identityProof.thresholds.rejectBelow` (integer)
    Overall score by which an identity proof document fails the verification process.

  - `identityProof.thresholds.acceptAbove` (integer)
    Overall score by which an identity proof document passes the verification process.

  - `identityProof.minimumAgeSettings` (object)
    Minimum age settings for identity proof documents.

  - `identityProof.minimumAgeSettings.defaultMinimumAge` (integer)
    Default minimum age requirement for identity proof documents.
This is used when no location-specific override is configured.

  - `identityProof.minimumAgeSettings.locationOverrides` (array)
    Location-specific minimum age.
Each item specifies a minimum age for a specific location.
For country-wide rules, omit the state field.
For state-specific rules, include the state field.
    Example: [{"country":"US","minimumAge":21},{"country":"US","state":"AL","minimumAge":19}]

  - `identityProof.minimumAgeSettings.locationOverrides.country` (string, required)
    Country code in ISO 3166 alpha-2 format.
    Example: US

  - `identityProof.minimumAgeSettings.locationOverrides.state` (string)
    Name or code of the state or region.
    Example: AZ

  - `identityProof.minimumAgeSettings.locationOverrides.minimumAge` (integer, required)
    Minimum age requirement for this location.
    Example: 21

  - `identityProof.faceProofSettings` (object)
    Quality requirements for the face proof image of an identity proof document.

  - `identityProof.faceProofSettings.minimumBrightness` (integer)
    Minimum brightness of the lighting in the detected face area of the face proof image.
The brightness scale ranges from `0` to `100`.
A higher value indicates brighter lighting.
If the detected brightness is below this value,
the `hasMatchingFaceProof` check fails with the `face_match_low_brightness` reason.
Use `0` to disable the brightness requirement.

  - `addressProof` (object)
    Address proof settings.

  - `addressProof.weights` (object)
    Property weights that are used for the KYC document verification process.
All KYC documents start the verification process with a score of 100.
If a check fails, the score is reduced by the corresponding weight.
For example, if the `firstName` check weight is set to `5`, and the check fails,
the KYC document score becomes `95`.

  - `addressProof.weights.firstName` (integer)
    Weight added if the customer's first name is not matched.

  - `addressProof.weights.lastName` (integer)
    Weight added if the customer's last name is not matched.

  - `addressProof.weights.line1` (integer)
    Weight added if the customer's address is not matched.

  - `addressProof.weights.city` (integer)
    Weight added if the customer's city is not matched.

  - `addressProof.weights.region` (integer)
    Weight added if the customer's region is not matched.

  - `addressProof.weights.postalCode` (integer)
    Weight added if the customer's postal code is not matched.

  - `addressProof.weights.date` (integer)
    Weight added if a date is not detected on the document.

  - `addressProof.weights.phone` (integer)
    Weight added if a phone number is not detected on the document.

  - `addressProof.weights.documentSubtype` (integer)
    Weight added if the document is not one of the recognized document subtypes.

  - `addressProof.weights.isTampered` (integer)
    Weight added if the document has been tampered with.

  - `addressProof.thresholds` (object)
    Pass and fail threshold definition for the document verification process.

  - `addressProof.thresholds.rejectBelow` (integer)
    Overall score by which an identity proof document fails the verification process.

  - `addressProof.thresholds.acceptAbove` (integer)
    Overall score by which an identity proof document passes the verification process.

  - `uiVersion` (string | null)
    Version of the KYC document gatherer UI.
    Enum: "1", "2"

## Response 200 headers (application/json):

  - `Rate-Limit-Limit` (integer)
    Maximum number of requests available at one time for this rate limit.
For more information, see [Rate limits](#section/Rate-limits).
    Example: 500

  - `Rate-Limit-Remaining` (integer)
    Number of requests still available for this rate limit.
For more information, see [Rate limits](#section/Rate-limits).
    Example: 499

## Response 401:

  - `401` (unknown)
    Unauthorized access.
Invalid credentials used.

## Response 401 fields (application/json):

  - `status` (integer)
    HTTP status code.

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

## Response 403:

  - `403` (unknown)
    Access forbidden.
If the organization requires multi-factor authentication (MFA) and the session has not passed MFA, `error` is `mfa_required`.

## Response 403 fields (application/json):

  - `status` (integer)
    HTTP status code.

  - `error` (string)
    Message that describes why the request is forbidden.
Most responses use a descriptive message, such as `Not allowed to change security settings`.
If the organization requires multi-factor authentication (MFA) and MFA verification has not been completed for the session, this value is `mfa_required`.
If the request sets `requireMfa` to `true` and MFA verification has not been completed for the session, this value is `mfa_required_for_caller`.

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

## Response 404:

  - `404` (unknown)
    Resource not found.

## Response 404 fields (application/json):

  - `status` (integer)
    HTTP status code.

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

## Response 429:

  - `429` (unknown)
    Request rate limit exceeded.

## Response 429 fields (application/json):

  - `type` (string)
    Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference.
It should provide human-readable documentation for the problem type.
When this member is not present, its value is assumed to be "about:blank".
    Example: about:blank

  - `title` (string)
    Short, human-readable summary of the problem type.
Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.
    Example: Rate Limit Exceeded

  - `status` (integer)
    HTTP status code.

  - `detail` (string)
    Human-readable explanation that is specific to this occurrence of the problem.
    Example: A request cannot be executed because the user has sent too many requests within a certain period of time

  - `instance` (string)
    URI reference that identifies the specific occurrence of the problem.
It may or may not yield further information if dereferenced.

## Response 429 headers (application/json):

  - `Rate-Limit-Limit` (integer)
    Maximum number of requests available at one time for this rate limit.
For more information, see [Rate limits](#section/Rate-limits).
    Example: 500

  - `Rate-Limit-Remaining` (integer)
    Number of requests still available for this rate limit.
For more information, see [Rate limits](#section/Rate-limits).
    Example: 0

  - `Rate-Limit-Retry-After` (integer)
    Number of seconds to wait before retrying the request.
    Example: 1

  - `Retry-After` (integer)
    Number of seconds to wait before retrying the request.
    Example: 1

