Create a KYC Document

Create a KYC Document.

SecuritySecretApiKey or JWT
Request
Request Body schema: application/json

Kyc document resource.

customerId
required
string (CustomerId) <= 50 characters

Customer resource ID. Defaults to UUID v4.

documentType
required
string

Document type submitted for validation, only identity-proof type is analyzed in an automated manner.

fileId
string <= 50 characters
Deprecated

Linked file object id.

fileIds
Array of strings

Linked file object id's.

Files uploaded for identity-proof must have following corresponding tags attached ['kyc', 'id-front'], ['kyc', 'id-back'], ['kyc', 'face-proof'] in order to be properly recognized as identity-proof files.

documentSubtype
string

Document subtype submitted for validation.

Enum: "passport" "id-card" "driver-license" "birth-certificate" "utility-bill" "rental-receipt" "lease-agreement" "copy-credit-card" "credit-card-statement" "bank-statement" … 16 more
notes
string or null

Reviewer notes.

reason
string

Reason for uploading.

matchLevel
integer [ 1 .. 2 ]

The level of strictness for the document matches.

object or null

The settings used to score the document.

object

The weights of all matched properties.

containsImage
integer [ 0 .. 100 ]

The weight of containsImage.

isIdentityDocument
integer [ 0 .. 100 ]

The weight of isIdentityDocument.

isPublishedOnline
integer [ 0 .. 100 ]

The weight of isPublishedOnline.

firstName
integer [ 0 .. 100 ]

The weight of firstName.

lastName
integer [ 0 .. 100 ]

The weight of lastName.

expirationDate
integer [ 0 .. 100 ]

The weight of expirationDate.

dateOfBirth
integer [ 0 .. 100 ]

The weight of dateOfBirth.

matchesDateOfBirth
integer [ 0 .. 100 ]

The weight of matchesDateOfBirth.

issueDate
integer [ 0 .. 100 ]

The weight of issueDate.

hasMinimalAge
integer [ 0 .. 100 ]

The weight of hasMinimalAge.

hasMatchingFaceProof
integer [ 0 .. 100 ]

The weight of hasMatchingFaceProof.

nationality
integer [ 0 .. 100 ]

The weight of nationality.

documentSubtype
integer [ 0 .. 100 ]

The weight of documentSubtype.

object

The thresholds to determine the document status.

rejectBelow
integer [ 0 .. 100 ]

The weight of rejectBelow.

acceptAbove
integer [ 0 .. 100 ]

The weight of acceptAbove.

Responses
201

Kyc document was created.

Response Headers
Location
string <uri>

Location of the related resource.

Example: "https://api.rebilly.com/example"
Response Schema: application/json
customerId
required
string (CustomerId) <= 50 characters

Customer resource ID. Defaults to UUID v4.

documentType
required
string

Document type submitted for validation, only identity-proof type is analyzed in an automated manner.

status
required
string

Status of the validation.

Enum: Description
pending

Waiting to be reviewed or analyzed

in-progress

Being analyzed by Rebilly's AI

accepted

Accepted by AI or a human

rejected

Rejected by AI or a human

archived

Archived by Rebilly's AI

id
string <= 50 characters

Unique resource ID. Defaults to UUID v4.

fileId
string <= 50 characters
Deprecated

Linked file object id.

fileIds
Array of strings

Linked file object id's.

Files uploaded for identity-proof must have following corresponding tags attached ['kyc', 'id-front'], ['kyc', 'id-back'], ['kyc', 'face-proof'] in order to be properly recognized as identity-proof files.

documentSubtype
string

Document subtype submitted for validation.

Enum: "passport" "id-card" "driver-license" "birth-certificate" "utility-bill" "rental-receipt" "lease-agreement" "copy-credit-card" "credit-card-statement" "bank-statement" … 16 more
object (KycDocumentRejection)
type
string (KycDocumentRejectionReasonTypes)
Enum: "document-unreadable" "document-expired" "document-not-matching" "document-duplicate" "document-invalid" "document-not-open" "underage-person" "third-party-or-mismatch" "expiration-date-missing" "issue-date-missing" … 5 more
message
string

The rejection message.

requestId
string or null <= 50 characters

KYC request identifier string.

createdTime
string <date-time>

Creation date/time.

updatedTime
string <date-time> (UpdatedTime)

Read-only timestamp. This value updates when the resource is updated.

processedTime
string <date-time>

Processing date/time.

reviewerId
string or null <= 50 characters

Reviewer's user ID.

reviewerName
string or null

Reviewer's first and last name.

reviewStartTime
string or null <date-time>

Date and time that manual review starts.

reviewTime
string or null <date-time>

Date and time of manual review.

notes
string or null

Reviewer notes.

Array of objects (Tag)

A list of kyc document tags.

Array
name
required
string <= 255 characters ^[@~\-\.\w\s]+$

Unique tag name. Tag names are not case-sensitive.

type
required
string

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"
id
string <= 50 characters

Unique tag identifier string.

createdTime
string <date-time>

Date and time at which the tag was created.

updatedTime
string <date-time> (UpdatedTime)

Read-only timestamp. This value updates when the resource is updated.

Array of Self (object) non-empty

Resource related links.

reason
string

Reason for uploading.

matchLevel
integer [ 1 .. 2 ]

The level of strictness for the document matches.

object or null

The settings used to score the document.

object

The weights of all matched properties.

containsImage
integer [ 0 .. 100 ]

The weight of containsImage.

isIdentityDocument
integer [ 0 .. 100 ]

The weight of isIdentityDocument.

isPublishedOnline
integer [ 0 .. 100 ]

The weight of isPublishedOnline.

firstName
integer [ 0 .. 100 ]

The weight of firstName.

lastName
integer [ 0 .. 100 ]

The weight of lastName.

expirationDate
integer [ 0 .. 100 ]

The weight of expirationDate.

dateOfBirth
integer [ 0 .. 100 ]

The weight of dateOfBirth.

matchesDateOfBirth
integer [ 0 .. 100 ]

The weight of matchesDateOfBirth.

issueDate
integer [ 0 .. 100 ]

The weight of issueDate.

hasMinimalAge
integer [ 0 .. 100 ]

The weight of hasMinimalAge.

hasMatchingFaceProof
integer [ 0 .. 100 ]

The weight of hasMatchingFaceProof.

nationality
integer [ 0 .. 100 ]

The weight of nationality.

documentSubtype
integer [ 0 .. 100 ]

The weight of documentSubtype.

object

The thresholds to determine the document status.

rejectBelow
integer [ 0 .. 100 ]

The weight of rejectBelow.

acceptAbove
integer [ 0 .. 100 ]

The weight of acceptAbove.

revision
integer

The number of times the KYC document data has been modified. The revision is useful when analyzing webhook data to determine if the change takes precedence over the current representation.

object
score
number <double>

The calculated score that represents the % of confidence that this ID represents the given customer.

object (IdentityMatches)
containsImage
boolean

Flag that indicates if there is an image that contains a face on it.

isIdentityDocument
boolean

Flag that indicates if this looks like and ID.

isPublishedOnline
boolean

If there is an exact match found online.

matchingImages
Array of strings <= 3 items

Contains urls to matching images found online.

firstName
string or null

The customer first name if it was matched, null otherwise.

lastName
string or null

The customer last name if it was matched, null otherwise.

dateOfBirth
string or null <date-time>

The date of birth found on the document, null if not found.

expirationDate
string or null <date-time>

Expiration date detected on the document. If an expiration date is not detected, this value is null.

issueDate
string or null <date-time>

The issued date found on the document, null if not found.

hasMinimalAge
boolean or null

Checks the minimal age, 21+ for USA and 18+ for all other countries. Null if dateOfBirth could not be determined.

nationality
string or null <= 3 characters

Nationality detected on a passport or citizenship document. If a nationality is not detected, this value is null.

issuanceCountry
string or null = 2 characters

Country where the document was issued.

issuanceRegion
string or null

Region, state, province, or territory where the document was issued.

documentNumber
string or null

Unique number on the identity document. This value may contain alphanumeric characters.

documentSubtype
string or null

The interpreted subtype of the uploaded document.

expiryDate
string or null <date-time>
Deprecated

Expiry date detected on the document. If an expiry date is not detected, this value is null.

object
score
number <double>

The calculated score that represents the % of confidence that this ID represents the given customer.

object (IdentityMatches)
containsImage
boolean

Flag that indicates if there is an image that contains a face on it.

isIdentityDocument
boolean

Flag that indicates if this looks like and ID.

isPublishedOnline
boolean

If there is an exact match found online.

matchingImages
Array of strings <= 3 items

Contains urls to matching images found online.

firstName
string or null

The customer first name if it was matched, null otherwise.

lastName
string or null

The customer last name if it was matched, null otherwise.

dateOfBirth
string or null <date-time>

The date of birth found on the document, null if not found.

expirationDate
string or null <date-time>

Expiration date detected on the document. If an expiration date is not detected, this value is null.

issueDate
string or null <date-time>

The issued date found on the document, null if not found.

hasMinimalAge
boolean or null

Checks the minimal age, 21+ for USA and 18+ for all other countries. Null if dateOfBirth could not be determined.

nationality
string or null <= 3 characters

Nationality detected on a passport or citizenship document. If a nationality is not detected, this value is null.

issuanceCountry
string or null = 2 characters

Country where the document was issued.

issuanceRegion
string or null

Region, state, province, or territory where the document was issued.

documentNumber
string or null

Unique number on the identity document. This value may contain alphanumeric characters.

documentSubtype
string or null

The interpreted subtype of the uploaded document.

expiryDate
string or null <date-time>
Deprecated

Expiry date detected on the document. If an expiry date is not detected, this value is null.

Array of Self (object) or CustomerLink (object) >= 2 items

Related resource links.

Array (>= 2 items)
Any of:
href
required
string

Link URL.

rel
required
string

Type of link.

Value: "self"
Array of CustomerEmbed (object) non-empty

Any embedded objects available that are requested by the expand querystring parameter.

Array (non-empty)
Any of:

Customer object.

object (Customer)
401

Unauthorized access. Invalid credentials used.

403

Access forbidden.

422

Invalid data was sent.

post/kyc-documents
Request samples
application/json
{
  • "fileId": "4f6cf35x-2c4y-483z-a0a9-158621f77a21",
  • "fileIds": [
    ],
  • "documentType": "identity-proof",
  • "documentSubtype": "passport",
  • "customerId": "4f6cf35x-2c4y-483z-a0a9-158621f77a21",
  • "notes": "string",
  • "reason": "string",
  • "matchLevel": 2,
  • "settings": {
    }
}
Response samples
application/json
{
  • "id": "4f6cf35x-2c4y-483z-a0a9-158621f77a21",
  • "fileId": "4f6cf35x-2c4y-483z-a0a9-158621f77a21",
  • "fileIds": [
    ],
  • "documentType": "identity-proof",
  • "documentSubtype": "passport",
  • "status": "pending",
  • "rejectionReason": {
    },
  • "requestId": "4f6cf35x-2c4y-483z-a0a9-158621f77a21",
  • "createdTime": "2019-08-24T14:15:22Z",
  • "updatedTime": "2019-08-24T14:15:22Z",
  • "processedTime": "2019-08-24T14:15:22Z",
  • "customerId": "4f6cf35x-2c4y-483z-a0a9-158621f77a21",
  • "reviewerId": "4f6cf35x-2c4y-483z-a0a9-158621f77a21",
  • "reviewerName": "string",
  • "reviewStartTime": "2019-08-24T14:15:22Z",
  • "reviewTime": "2019-08-24T14:15:22Z",
  • "notes": "string",
  • "tags": [
    ],
  • "reason": "string",
  • "matchLevel": 2,
  • "settings": {
    },
  • "revision": 0,
  • "documentMatches": {
    },
  • "parsedData": {
    },
  • "_links": [
    ],
  • "_embedded": [
    ]
}