# Reject a KYC document

Rejects a KYC document and changes the `status` to `rejected`.
The review time and reviewer information is also updated.

> **Note:** Use this operation for manual overrides.

Endpoint: POST /kyc-documents/{id}/rejection
Version: latest
Security: SecretApiKey, JWT

## Path parameters

- `id` (string, required)
  ID of the resource.

## Request fields

- `type` (string, required)
  Reason the document is rejected.
  Enum: "document-unreadable", "document-expired", "document-was-valid-but-expired", "document-not-matching", "document-duplicate", "document-invalid", "document-not-open", "underage-person", "third-party-or-mismatch", "expiration-date-missing", "issue-date-missing", "subtype-missing", "dob-mismatch", "name-mismatch", "name-and-dob-mismatch", "critical-info-missing", "old-address-on-id", "tampered-document", "no-document-data-detected", "other"
- `message` (string)
  KYC document rejection message.
  Example: Provided document is unreadable

## Response 201 fields

- `id` (string)
  ID of the KYC document.
  Example: kyc_doc_0YV7JHY705C6DA487BFTAA33V8
- `fileIds` (array, required)
  IDs of linked file objects. Uploaded `identity-proof` files must have the following tags attached to be used for KYC purposes: `['kyc', 'id-front']`, `['kyc', 'id-back']`, `['kyc', 'face-proof']`. Permitted file types for `identity-proof` files: `.jpg`, `.png`, and `.pdf`.
- `documentType` (string, required)
  Enum: "identity-proof", "address-proof", "funds-proof", "purchase-proof", "credit-file-proof"
- `documentSubtype` (string | null)
  Enum: "passport", "id-card", "driver-license", "birth-certificate", "utility-bill", "rental-receipt", "lease-agreement", "copy-credit-card", "credit-card-statement", "bank-statement", "inheritance-documentation", "tax-return", "salary-slip", "sale-of-assets", "public-health-card", "proof-of-age-card", "reverse-of-id", "public-service", "ewallet-holder-details", "ewallet-transaction-statement", "marriage-certificate", "firearms-license", "insurance-letter", "income-statement", "debtors-letter", "other", null
- `status` (string, required)
  Status of the validation.
  Enum: "pending", "in-progress", "accepted", "rejected", "archived"
- `rejectionReason` (object | null)
  Reason the document is rejected.
- `rejectionReason.type` (string, required)
  Reason the document is rejected.
  Enum: "document-unreadable", "document-expired", "document-was-valid-but-expired", "document-not-matching", "document-duplicate", "document-invalid", "document-not-open", "underage-person", "third-party-or-mismatch", "expiration-date-missing", "issue-date-missing", "subtype-missing", "dob-mismatch", "name-mismatch", "name-and-dob-mismatch", "critical-info-missing", "old-address-on-id", "tampered-document", "no-document-data-detected", "other"
- `rejectionReason.message` (string)
  KYC document rejection message.
  Example: Provided document is unreadable
- `requestId` (string | null)
  ID of the KYC request.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `processedTime` (string | null)
  Date and time when the KYC document is processed.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `reviewerId` (string | null)
  ID of the KYC document reviewer.
  Example: 44433322-2c4y-483z-a0a9-158621f77a21
- `reviewerName` (string | null)
  First and last name of the KYC document reviewer.
- `reviewStartTime` (string | null)
  Date and time when the manual review starts.
- `reviewTime` (string | null)
  Date and time of manual review.
- `notes` (string | null)
  Reviewer notes.
- `tags` (array)
  List of KYC document tags.
- `tags.id` (string)
  Unique resource ID.
  Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
- `tags.name` (string, required)
  Unique name for the tag. Tag names are not case-sensitive.
  Example: New
- `tags.type` (string, required)
  Type of tag. Tags of a specific type can only be assigned to corresponding entity types. For example, you can only use customer tags on customers.
  Enum: "customer", "kyc-document", "aml-check"
- `tags._links` (array)
  Related links.
- `tags._links.href` (string)
  Link URL.
- `tags._links.rel` (string)
  Type of link.
  Enum: "self"
- `reason` (string | null)
  Reason for uploading.
- `matchLevel` (integer)
  Document verification level.
  Enum: 1, 2, 3
- `revision` (integer)
  Number of times the KYC document data has been modified. Use this value when analyzing webhook data to determine if a change must take precedence over the current representation.
- `documentMatches` (object | null)
  Proof of identity document matches.
- `documentMatches.version` (string)
  Version of the document matches.
  Example: 2.0
- `documentMatches.score` (integer)
  Calculated score that represents the percentage of confidence that this ID document represents the customer.
  Example: 75
- `documentMatches.checkList` (array | null)
  List of checks executed against the document during KYC verification.
- `documentMatches.checkList.name` (string)
  Name of the document check.
  Enum: "city", "containsImage", "date", "dateIsInvalid", "dateOfBirth", "decision", "documentNumber", "documentSubtype", "expirationDate", "firstName", "hasMatchingFaceProof", "hasMinimalAge", "isIdentityDocument", "isPublishedOnline", "isTampered", "issuanceCountry", "issuanceRegion", "issueDate", "lastName", "line1", "matchesDateOfBirth", "phone", "postalCode", "region"
- `documentMatches.checkList.failed` (boolean)
  Specifies if a document check has failed. When a check fails, the score value associated with the check is subtracted from the overall score of the proof document. The overall score together with accept and reject thresholds determine whether an proof document passes or fails verification. For more information, see [KYC](https://www.rebilly.com/docs/kyc-and-aml/kyc).
  Example: true
- `documentMatches.checkList.score` (integer)
  Specifies the number of points to deduct from the proof document when a check fails during the verification process.
  Example: 75
- `documentMatches.checkList.reason` (string | null)
  Specifies the reason why the KYC check failed.
  Example: closed_eyes
- `documentMatches.data` (object)
  Matched identity data.
- `documentMatches.data.containsImage` (boolean)
  Specifies if the document includes an image that contains a face.
  Example: true
- `documentMatches.data.isIdentityDocument` (boolean)
  Specifies if the document resembles an ID.
  Example: true
- `documentMatches.data.isPublishedOnline` (boolean)
  Specifies if an exact match of the document has been found online.
  Example: false
- `documentMatches.data.matchingImages` (array)
  URLs where matching images have been found online.
- `documentMatches.data.firstName` (string | null)
  First name of the customer. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.dateOfBirth` (string | null)
  Date of birth detected on the document. This value is null if no match is detected.
- `documentMatches.data.expirationDate` (string | null)
  Expiration date detected on the document. This value is null if no expiration date is detected.
- `documentMatches.data.issueDate` (string | null)
  Issue date detected on the document. This value is null if no issue date is detected.
- `documentMatches.data.hasMinimalAge` (boolean | null)
  Specifies that the individual is older than the minimal age limit. The minimal age is 21+ the for USA and 18+ for all other countries. This value is null if `dateOfBirth` is not determined.
  Example: true
- `documentMatches.data.nationality` (string | null)
  Nationality detected on a passport or citizenship document. This value is null if no nationality is detected.
  Example: US
- `documentMatches.data.issuanceCountry` (string | null)
  Country that issued the document.
  Example: CA
- `documentMatches.data.issuanceRegion` (string | null)
  Region, state, province, or territory that issued the document.
  Example: Ontario
- `documentMatches.data.documentNumber` (string | null)
  Unique number on the identity document. This value may contain alphanumeric characters.
  Example: 1234567890
- `documentMatches.data.sex` (string | null)
  MRZ sex code (ICAO 9303). `M`, `F`, or `X`. Null if not extracted.
  Example: M
- `documentMatches.data.mrzChecksumValid` (boolean | null)
  MRZ check digits validation. Null if there is no MRZ, no check data, or a non-standard layout.
  Example: true
- `documentMatches.data.hasMatchingFaceProof` (boolean)
  Specifies if an identity document has matching face proof.
  Example: false
- `documentMatches.data.isTampered` (boolean)
  Specifies if an identity document has been tampered with.
  Example: false
- `documentMatches.data.isDigitallyTampered` (boolean)
  Specifies if an identity document has been digitally tampered with (experimental).
  Example: false
- `documentMatches.data.isPhotocopy` (boolean)
  Specifies if an identity document is detected as a photocopy.
  Example: false
- `documentMatches.data.hasCompletedFaceLiveness` (boolean)
  Specifies if the face liveness session completed.
  Example: false
- `documentMatches.data.faceProofBrightness` (number | null)
  Brightness of the lighting in the detected face area of the face proof image, on a scale from `0` to `100`. A higher value indicates brighter lighting. This value is `null` if no face proof is compared with the document.
  Example: 72.5
- `documentMatches.data.expiryDate` (string | null)
  Use `expirationDate` field instead.
- `parsedData` (object | null)
  Parsed data.
- `settings` (object | null)
  Settings used to score the document.
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)
- `_embedded.files` (array)
  Linked files.
- `documentMatches` (object | null)
- `documentMatches.data` (object)
  Matched address data.
- `documentMatches.data.line1` (string | null)
  Address of the customer's residence. This value is null if no match is found.
  Example: 36 Craven St
- `documentMatches.data.city` (string | null)
  Customer's city of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.region` (string | null)
  Customer's region of residence. This value is null if no match is found.
  Example: London
- `documentMatches.data.postalCode` (string | null)
  Postal code of the customer's residence. This value is null if no match is found.
  Example: WC2N 5NF
- `documentMatches.data.wordCount` (integer)
  Total number of words in the document.
  Example: 350
- `documentMatches.data.uniqueWords` (integer)
  Total number of unique words in the document.
  Example: 175
- `documentMatches.data.date` (string | null)
  Date detected on the document. Use this field to determine if the document is recent.
  Example: 2021-01-01T00:00:00+00:00
- `documentMatches.data.phone` (string | null)
  Phone number of the company or agency that issued the document.
  Example: (123) 456-7890
- `documentMatches.data.isTampered` (boolean)
  Specifies if an address proof document has been tampered with.
  Example: false
- `parsedData` (object | null)
- `documentMatches` (object | null)
  Proof of funds document matches.
- `documentMatches.data` (object)
- `documentMatches` (object | null)
  Proof of purchase document matches.
- `documentMatches.data.firstName` (string | null)
  First name of the customer if it is matched. This value is null if no match is found.
  Example: John
- `documentMatches.data.lastName` (string | null)
  Last name of the customer if it is matched. This value is null if no match is found.
  Example: Doe
- `documentMatches.data.paymentInstrumentId` (string | null)
  ID of the payment instrument related to the document. This value is null if no match is found.
  Example: inst_0YVB8KPKNXCBR9EDX7JHSED75N
- `documentMatches` (object | null)
  Proof of credit document matches.
- `documentMatches.data.creditBureau` (string)
  Credit bureau from which the credit file data is sourced.
  Enum: "equifax", "experian", "transunion", "test-bureau"
- `documentMatches.data.creditFileNumber` (string)
  Credit file number from the credit bureau.
- `documentMatches.data.name` (string)
  Name of the person to consult about the credit file.
- `documentMatches.data.consultedDate` (string)
  Date to consult with the credit bureau about the credit file.
- `documentMatches.data.decision` (string)
  Specifies if the credit file is used in a single source, or as part of a dual source, proof of identity decision.
  Enum: "single-source", "dual-source", "other"
- `documentMatches.data.trades` (array)
  Contains information to support the dual process.
- `documentMatches.data.trades.name` (string)
  Trade name.
  Example: Rogers
- `documentMatches.data.trades.accountNumber` (string)
  Example: 123-ABC-123
- `documentMatches.data.trades.dateOpened` (string)
- `documentMatches.data.referenceData` (object)
  Extra data from the credit bureau.
- `documentMatches.data.referenceData.singleSourceHit` (string)
  Single source hit.
  Example: Y
- `documentMatches.data.referenceData.dualSourceHit` (string)
  Dual source hit.
  Example: Y
- `documentMatches.data.referenceData.waterfallProcess` (string)
  Waterfall process.
  Example: Y
- `documentMatches.data.referenceData.creditFileCreatedDate` (string)
  Date when the credit file is created.
- `documentMatches.data.referenceData.numberOfTradesOnFile` (string)
  Number of trades on file.
  Example: 001
- `documentMatches.data.referenceData.singleDecision` (object)
  Data related to a single source decision.
- `documentMatches.data.referenceData.singleDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.singleDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision` (array | null)
  Data related to a dual source decision.
- `documentMatches.data.referenceData.dualDecision.lastNameMatch` (string)
  Last name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.firstNameMatch` (string)
  First name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.civicNumberMatch` (string)
  Civic number match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.streetNameMatch` (string)
  Street name match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.cityMatch` (string)
  City match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.postalCodeMatch` (string)
  Postal code match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.provinceMatch` (string)
  Province match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthMatch` (string)
  Date of birth match.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.ageOfCreditFileThreeOrMoreYearsOld` (string)
  Age of credit file is three or more years old.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.addressAsReported` (string)
  Address as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.nameAsReported` (string)
  Name as reported.
  Example: Y
- `documentMatches.data.referenceData.dualDecision.dateOfBirthAsReported` (string)
  Date of birth as reported.
  Example: Y

## Response 401 fields

- `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 fields

- `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 fields

- `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 422 fields

- `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.
- `invalidFields` (array)
  Invalid field details.
  Example: [{"field":"field1","message":"field1 is invalid"},{"field":"subObject.field2","message":"field2 is invalid"},{"field":"subObject.field2","message":"another error in the field2"}]
- `invalidFields.field` (string)
  Name of the field. Dot notation is used for nested object field names.
- `invalidFields.message` (string)
  Message field.

## Response 429 fields

- `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.
