KYC Documents

Customer KYC files uploaded on behalf of a customer, tagged with a document type and submitted for validation.

Retrieve a list of KYC documents

Retrieve a list of KYC documents.

Request
Security:
query Parameters
limit
integer [ 0 .. 1000 ]

The collection items limit.

offset
integer >= 0

The collection items offset.

filter
string

The collection items filter requires a special format. Use "," for multiple allowed values. Use ";" for multiple fields. See the filter guide for more options and examples about this format.

sort
Array of strings

The collection items sort field and order (prefix with "-" for descending sort).

header Parameters
Organization-Id
string (ResourceId) <= 50 characters
Deprecated

Organization identifier in scope of which need to perform request (if not specified, the default organization will be used).

It is deprecated. Use servers with /organizations/{organizationId} base path instead.

Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
Responses
200

A list of KYC documents was retrieved successfully.

401

Unauthorized access, invalid credentials was used.

403

Access forbidden.

get/kyc-documents
Request samples
// all parameters are optional
const firstCollection = await api.kycDocuments.getAll();

// alternatively you can specify one or more of them
const params = {limit: 20, offset: 100, sort: '-createdTime'};
const secondCollection = await api.kycDocuments.getAll(params);

// access the collection items, each item is a Member
secondCollection.items.forEach(document => console.log(document.fields.documentType));
Response samples
application/json
[
  • {
    }
]

Create a KYC Document

Create a KYC Document.

Request
Security:
header Parameters
Organization-Id
string (ResourceId) <= 50 characters
Deprecated

Organization identifier in scope of which need to perform request (if not specified, the default organization will be used).

It is deprecated. Use servers with /organizations/{organizationId} base path instead.

Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
Request Body schema: application/json

Kyc document resource.

fileId
string <= 50 characters
Deprecated

Linked file object id.

fileIds
Array of strings

Linked file object id's.

documentType
required
string

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

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" … 11 more
customerId
required
string <= 50 characters

The customer ID.

notes
string or null

Reviewer notes.

reason
string

Reason for uploading.

matchLevel
integer [ 1 .. 2 ]

The level of strictness for the document matches.

Responses
201

Kyc document was created.

401

Unauthorized access, invalid credentials was 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
}
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",
  • "_links": [
    ],
  • "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",
  • "reason": "string",
  • "matchLevel": 2,
  • "documentMatches": {
    },
  • "parsedData": {
    }
}

Retrieve a KYC Document

Retrieve a KYC document with specified identifier string.

Request
Security:
path Parameters
id
required
string <= 50 characters ^[@~\-\.\w]+$

The resource identifier string.

header Parameters
Organization-Id
string (ResourceId) <= 50 characters
Deprecated

Organization identifier in scope of which need to perform request (if not specified, the default organization will be used).

It is deprecated. Use servers with /organizations/{organizationId} base path instead.

Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
Responses
200

KYC document was retrieved successfully.

401

Unauthorized access, invalid credentials was used.

403

Access forbidden.

404

Resource was not found.

get/kyc-documents/{id}
Request samples
const document = await api.kycDocuments.get({id: 'foobar-001'});
console.log(document.fields.documentType);
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",
  • "_links": [
    ],
  • "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",
  • "reason": "string",
  • "matchLevel": 2,
  • "documentMatches": {
    },
  • "parsedData": {
    }
}

Create or update a KYC document with predefined ID

Create or update a KYC document with predefined identifier string.

Request
Security:
path Parameters
id
required
string <= 50 characters ^[@~\-\.\w]+$

The resource identifier string.

header Parameters
Organization-Id
string (ResourceId) <= 50 characters
Deprecated

Organization identifier in scope of which need to perform request (if not specified, the default organization will be used).

It is deprecated. Use servers with /organizations/{organizationId} base path instead.

Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
Request Body schema: application/json

KYC document resource.

fileId
string <= 50 characters
Deprecated

Linked file object id.

fileIds
Array of strings

Linked file object id's.

documentType
required
string

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

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" … 11 more
customerId
required
string <= 50 characters

The customer ID.

notes
string or null

Reviewer notes.

reason
string

Reason for uploading.

matchLevel
integer [ 1 .. 2 ]

The level of strictness for the document matches.

Responses
200

KYC document was updated.

201

KYC document was created.

401

Unauthorized access, invalid credentials was used.

403

Access forbidden.

404

Resource was not found.

422

Invalid data was sent.

put/kyc-documents/{id}
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
}
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",
  • "_links": [
    ],
  • "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",
  • "reason": "string",
  • "matchLevel": 2,
  • "documentMatches": {
    },
  • "parsedData": {
    }
}

Accept a KYC document

Marks that status of the document as accepted. Updates the review time and reviewer information. Intended to be used for manual overrides.

Request
Security:
path Parameters
id
required
string <= 50 characters ^[@~\-\.\w]+$

The resource identifier string.

header Parameters
Organization-Id
string (ResourceId) <= 50 characters
Deprecated

Organization identifier in scope of which need to perform request (if not specified, the default organization will be used).

It is deprecated. Use servers with /organizations/{organizationId} base path instead.

Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
Responses
201

KYC document acceptance was created.

401

Unauthorized access, invalid credentials was used.

403

Access forbidden.

404

Resource was not found.

post/kyc-documents/{id}/acceptance
Request samples
const acceptedDocument = await api.kycDocuments.accept({id: 'my-second-id'});
console.log(acceptedDocument.fields.status);
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",
  • "_links": [
    ],
  • "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",
  • "reason": "string",
  • "matchLevel": 2,
  • "documentMatches": {
    },
  • "parsedData": {
    }
}

Update a KYC document's documentMatches

Updates a KYC document's documentMatches. Intended to be used for manual overrides.

Request
Security:
path Parameters
id
required
string <= 50 characters ^[@~\-\.\w]+$

The resource identifier string.

header Parameters
Organization-Id
string (ResourceId) <= 50 characters
Deprecated

Organization identifier in scope of which need to perform request (if not specified, the default organization will be used).

It is deprecated. Use servers with /organizations/{organizationId} base path instead.

Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
Request Body schema: application/json

Kyc document resource.

Any of:
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.

firstName
string

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

lastName
string

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

dateOfBirth
string <date-time>

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

expiryDate
string <date-time>

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

issueDate
string <date-time>

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

nationality
string <= 3 characters

The nationality found on the document, null otherwise.

Responses
204

KYC document's documentMatches were updated.

401

Unauthorized access, invalid credentials was used.

403

Access forbidden.

404

Resource was not found.

post/kyc-documents/{id}/matches
Request samples
application/json
{
  • "containsImage": true,
  • "isIdentityDocument": true,
  • "isPublishedOnline": false,
  • "firstName": "John",
  • "lastName": "Doe",
  • "dateOfBirth": "2019-08-24T14:15:22Z",
  • "expiryDate": "2019-08-24T14:15:22Z",
  • "issueDate": "2019-08-24T14:15:22Z",
  • "nationality": "US"
}
Response samples
application/json
{
  • "status": 400,
  • "title": "string",
  • "detail": "string",
  • "error": "string"
}

Reject a KYC document

Marks that status of the document as rejected. Updates the review time and reviewer information. Intended to be used for manual overrides.

Request
Security:
path Parameters
id
required
string <= 50 characters ^[@~\-\.\w]+$

The resource identifier string.

header Parameters
Organization-Id
string (ResourceId) <= 50 characters
Deprecated

Organization identifier in scope of which need to perform request (if not specified, the default organization will be used).

It is deprecated. Use servers with /organizations/{organizationId} base path instead.

Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
Request Body schema: application/json

KYC document resource.

type
string
Enum: "document-unreadable" "document-expired" "document-not-matching" "underage-person" "other"
message
string

The rejection message.

Responses
201

KYC document rejection was created.

401

Unauthorized access, invalid credentials was used.

403

Access forbidden.

404

Resource was not found.

422

Invalid data was sent.

post/kyc-documents/{id}/rejection
Request samples
application/json
{
  • "type": "document-unreadable",
  • "message": "Provided document is unreadable"
}
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",
  • "_links": [
    ],
  • "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",
  • "reason": "string",
  • "matchLevel": 2,
  • "documentMatches": {
    },
  • "parsedData": {
    }
}

Review a KYC document

Mark the KYC document as reviewed. Updates the review time and reviewer. information.

Request
Security:
path Parameters
id
required
string <= 50 characters ^[@~\-\.\w]+$

The resource identifier string.

header Parameters
Organization-Id
string (ResourceId) <= 50 characters
Deprecated

Organization identifier in scope of which need to perform request (if not specified, the default organization will be used).

It is deprecated. Use servers with /organizations/{organizationId} base path instead.

Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
Responses
201

KYC document was reviewed.

401

Unauthorized access, invalid credentials was used.

403

Access forbidden.

404

Resource was not found.

422

Invalid data was sent.

post/kyc-documents/{id}/review
Request samples
const reviewedDocument = await api.kycDocuments.review({id: 'my-second-id'});
console.log(reviewedDocument.fields.status);
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",
  • "_links": [
    ],
  • "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",
  • "reason": "string",
  • "matchLevel": 2,
  • "documentMatches": {
    },
  • "parsedData": {
    }
}

Start review for a KYC document

Sets the KYC document reviewStartTime to the current date-time, along with the review information.

Request
Security:
path Parameters
id
required
string <= 50 characters ^[@~\-\.\w]+$

The resource identifier string.

header Parameters
Organization-Id
string (ResourceId) <= 50 characters
Deprecated

Organization identifier in scope of which need to perform request (if not specified, the default organization will be used).

It is deprecated. Use servers with /organizations/{organizationId} base path instead.

Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
Responses
201

KYC document review started.

401

Unauthorized access, invalid credentials was used.

403

Access forbidden.

404

Resource was not found.

422

Invalid data was sent.

post/kyc-documents/{id}/start-review
Request samples
curl -i -X POST \
  https://api-sandbox.rebilly.com/organizations/unknown/kyc-documents/:id/start-review \
  -H 'Organization-Id: 4f6cf35x-2c4y-483z-a0a9-158621f77a21' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE'
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",
  • "_links": [
    ],
  • "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",
  • "reason": "string",
  • "matchLevel": 2,
  • "documentMatches": {
    },
  • "parsedData": {
    }
}

Stop review for a KYC document

Sets the KYC document reviewStartTime to null, along with the reviewer information to null too. Use this when the reviewer decides to stop, take a break, or ends a shift.

Request
Security:
path Parameters
id
required
string <= 50 characters ^[@~\-\.\w]+$

The resource identifier string.

header Parameters
Organization-Id
string (ResourceId) <= 50 characters
Deprecated

Organization identifier in scope of which need to perform request (if not specified, the default organization will be used).

It is deprecated. Use servers with /organizations/{organizationId} base path instead.

Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
Responses
201

KYC document review stopped.

401

Unauthorized access, invalid credentials was used.

403

Access forbidden.

404

Resource was not found.

422

Invalid data was sent.

post/kyc-documents/{id}/stop-review
Request samples
curl -i -X POST \
  https://api-sandbox.rebilly.com/organizations/unknown/kyc-documents/:id/stop-review \
  -H 'Organization-Id: 4f6cf35x-2c4y-483z-a0a9-158621f77a21' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE'
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",
  • "_links": [
    ],
  • "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",
  • "reason": "string",
  • "matchLevel": 2,
  • "documentMatches": {
    },
  • "parsedData": {
    }
}

Retrieve a list of KYC requests

Retrieve a list of KYC requests.

Request
Security:
query Parameters
limit
integer [ 0 .. 1000 ]

The collection items limit.

offset
integer >= 0

The collection items offset.

filter
string

The collection items filter requires a special format. Use "," for multiple allowed values. Use ";" for multiple fields. See the filter guide for more options and examples about this format.

sort
Array of strings

The collection items sort field and order (prefix with "-" for descending sort).

header Parameters
Organization-Id
string (ResourceId) <= 50 characters
Deprecated

Organization identifier in scope of which need to perform request (if not specified, the default organization will be used).

It is deprecated. Use servers with /organizations/{organizationId} base path instead.

Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
Responses
200

A list of KYC requests was retrieved successfully.

401

Unauthorized access, invalid credentials was used.

403

Access forbidden.

get/kyc-requests
Request samples
curl -i -X GET \
  'https://api-sandbox.rebilly.com/organizations/unknown/kyc-requests?limit=1000&offset=0&filter=string&sort=string' \
  -H 'Organization-Id: 4f6cf35x-2c4y-483z-a0a9-158621f77a21' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE'
Response samples
application/json
[
  • {
    }
]

Create a KYC Request

Create a KYC Request.

Request
Security:
header Parameters
Organization-Id
string (ResourceId) <= 50 characters
Deprecated

Organization identifier in scope of which need to perform request (if not specified, the default organization will be used).

It is deprecated. Use servers with /organizations/{organizationId} base path instead.

Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
Request Body schema: application/json

Kyc request resource.

required
Array of objects

Documents to be requested from customer.

Array
type
required
string

Document type to be requested from customer.

Enum: "identity-proof" "address-proof" "funds-proof" "purchase-proof"
subtypes
Array of strings (KycDocumentSubtypes)

Document subtype allowed for customer.

Items Enum: "passport" "id-card" "driver-license" "birth-certificate" "utility-bill" "rental-receipt" "lease-agreement" "copy-credit-card" "credit-card-statement" "bank-statement" … 11 more
maxAttempts
integer [ 0 .. 100 ]
Default: 3

The number of document upload attempts. 0 treated as unlimited.

redirectUrl
string <uri>

The URL to redirect the customer when an upload is completed.

expirationTime
string <date-time>

Expiration date/time.

customerId
required
string <= 50 characters

The customer ID.

reason
string

Reason for uploading.

matchLevel
integer [ 1 .. 2 ]

The level of strictness for the document matches.

Responses
201

Kyc request was created.

401

Unauthorized access, invalid credentials was used.

403

Access forbidden.

422

Invalid data was sent.

post/kyc-requests
Request samples
application/json
{
  • "documents": [
    ],
  • "redirectUrl": "http://example.com",
  • "expirationTime": "2019-08-24T14:15:22Z",
  • "customerId": "4f6cf35x-2c4y-483z-a0a9-158621f77a21",
  • "reason": "string",
  • "matchLevel": 2
}
Response samples
application/json
{
  • "id": "4f6cf35x-2c4y-483z-a0a9-158621f77a21",
  • "documents": [
    ],
  • "redirectUrl": "http://example.com",
  • "expirationTime": "2019-08-24T14:15:22Z",
  • "createdTime": "2019-08-24T14:15:22Z",
  • "updatedTime": "2019-08-24T14:15:22Z",
  • "customerId": "4f6cf35x-2c4y-483z-a0a9-158621f77a21",
  • "reason": "string",
  • "matchLevel": 2,
  • "_links": [
    ]
}

Retrieve a KYC request

Retrieve a KYC request with specified identifier string.

Request
Security:
path Parameters
id
required
string <= 50 characters ^[@~\-\.\w]+$

The resource identifier string.

header Parameters
Organization-Id
string (ResourceId) <= 50 characters
Deprecated

Organization identifier in scope of which need to perform request (if not specified, the default organization will be used).

It is deprecated. Use servers with /organizations/{organizationId} base path instead.

Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
Responses
200

KYC request was retrieved successfully.

401

Unauthorized access, invalid credentials was used.

403

Access forbidden.

404

Resource was not found.

get/kyc-requests/{id}
Request samples
curl -i -X GET \
  https://api-sandbox.rebilly.com/organizations/unknown/kyc-requests/:id \
  -H 'Organization-Id: 4f6cf35x-2c4y-483z-a0a9-158621f77a21' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE'
Response samples
application/json
{
  • "id": "4f6cf35x-2c4y-483z-a0a9-158621f77a21",
  • "documents": [
    ],
  • "redirectUrl": "http://example.com",
  • "expirationTime": "2019-08-24T14:15:22Z",
  • "createdTime": "2019-08-24T14:15:22Z",
  • "updatedTime": "2019-08-24T14:15:22Z",
  • "customerId": "4f6cf35x-2c4y-483z-a0a9-158621f77a21",
  • "reason": "string",
  • "matchLevel": 2,
  • "_links": [
    ]
}

Update a KYC request

Update a KYC request.

Request
Security:
path Parameters
id
required
string <= 50 characters ^[@~\-\.\w]+$

The resource identifier string.

header Parameters
Organization-Id
string (ResourceId) <= 50 characters
Deprecated

Organization identifier in scope of which need to perform request (if not specified, the default organization will be used).

It is deprecated. Use servers with /organizations/{organizationId} base path instead.

Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
Request Body schema: application/json
required
Array of objects

Documents to be requested from customer.

Array
type
required
string

Document type to be requested from customer.

Enum: "identity-proof" "address-proof" "funds-proof" "purchase-proof"
subtypes
Array of strings (KycDocumentSubtypes)

Document subtype allowed for customer.

Items Enum: "passport" "id-card" "driver-license" "birth-certificate" "utility-bill" "rental-receipt" "lease-agreement" "copy-credit-card" "credit-card-statement" "bank-statement" … 11 more
maxAttempts
integer [ 0 .. 100 ]
Default: 3

The number of document upload attempts. 0 treated as unlimited.

redirectUrl
string <uri>

The URL to redirect the customer when an upload is completed.

expirationTime
string <date-time>

Expiration date/time.

reason
string

Reason for uploading.

matchLevel
integer [ 1 .. 2 ]

The level of strictness for the document matches.

Responses
200

KYC request was updated.

401

Unauthorized access, invalid credentials was used.

403

Access forbidden.

404

Resource was not found.

422

Invalid data was sent.

patch/kyc-requests/{id}
Request samples
application/json
{
  • "documents": [
    ],
  • "redirectUrl": "http://example.com",
  • "expirationTime": "2019-08-24T14:15:22Z",
  • "customerId": "4f6cf35x-2c4y-483z-a0a9-158621f77a21",
  • "reason": "string",
  • "matchLevel": 2
}
Response samples
application/json
{
  • "id": "4f6cf35x-2c4y-483z-a0a9-158621f77a21",
  • "documents": [
    ],
  • "redirectUrl": "http://example.com",
  • "expirationTime": "2019-08-24T14:15:22Z",
  • "createdTime": "2019-08-24T14:15:22Z",
  • "updatedTime": "2019-08-24T14:15:22Z",
  • "customerId": "4f6cf35x-2c4y-483z-a0a9-158621f77a21",
  • "reason": "string",
  • "matchLevel": 2,
  • "_links": [
    ]
}

Delete the KYC request

Delete the KYC request with the predefined identifier string.

Request
Security:
path Parameters
id
required
string <= 50 characters ^[@~\-\.\w]+$

The resource identifier string.

header Parameters
Organization-Id
string (ResourceId) <= 50 characters
Deprecated

Organization identifier in scope of which need to perform request (if not specified, the default organization will be used).

It is deprecated. Use servers with /organizations/{organizationId} base path instead.

Example: 4f6cf35x-2c4y-483z-a0a9-158621f77a21
Responses
204

The KYC request was deleted.

401

Unauthorized access, invalid credentials was used.

404

Resource was not found.

delete/kyc-requests/{id}
Request samples
curl -i -X DELETE \
  https://api-sandbox.rebilly.com/organizations/unknown/kyc-requests/:id \
  -H 'Organization-Id: 4f6cf35x-2c4y-483z-a0a9-158621f77a21' \
  -H 'REB-APIKEY: YOUR_API_KEY_HERE'
Response samples
application/json
{
  • "status": 400,
  • "title": "string",
  • "detail": "string",
  • "error": "string"
}

KYC document acceptedWebhook

Request
Security:
Request Body schema: application/json

KYC document webhook request body resource.

customerId
string

The customer ID.

kycDocumentId
string

The KYC document ID.

fileId
string

The file ID.

eventType
string (GlobalWebhookEventType)

Rebilly webhooks event type.

Enum: "aml-list-possibly-matched" "customer-created" "customer-merged" "customer-one-time-password-requested" "customer-redirected-offsite" "customer-returned" "customer-updated" "dispute-created" "dispute-modified" "experian-check-performed" … 54 more
object
object (Customer)
id
string <= 50 characters

The customer identifier string.

email
string <email>

The customer's email.

firstName
string

The customer's first name.

lastName
string

The customer's last name.

websiteId
string <= 50 characters

The website's ID.

paymentToken
string

A write-only payment token; if supplied, it will be converted into a payment instrument and be set as the defaultPaymentInstrument. The value of this property will override the defaultPaymentInstrument in the case that both are supplied. The token may only be used once before it is expired.

Vaulted instrument (object) or Alternative Instrument (object) or Cash (object) or Check (object) (PaymentInstrument)
createdTime
string <date-time>

The customer created time.

updatedTime
string <date-time>

The customer updated time.

customFields
object (ResourceCustomFields)
Default: {}

Custom Fields list as a map {"custom field name": "custom field value", ...}. The format must follow the saved format (see Custom Fields section for the formats).

object (ContactObject)
object (CustomerAverageValue)
paymentCount
integer

The number of approved payments for the customer.

lastPaymentTime
string <date-time>

The most recent time of an approved payment for the customer.

object (CustomerLifetimeRevenue)
invoiceCount
integer

An auto-incrementing number based on the sequence of invoices. If set to 0, then this record is a Lead, otherwise is a Customer.

Array of objects (Tag)

A list of customer's tags.

revision
integer

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

Array of SelfLink (object) or DefaultPaymentInstrumentLink (object) or LeadSourceLink (object) or WebsiteLink (object) >= 3 items

The links related to resource.

Array of LeadSourceEmbed (object) non-empty

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

any (KycDocument-2)
id
string <= 50 characters

The resource ID. Defaults to UUID v4.

fileId
string <= 50 characters
Deprecated

Linked file object id.

fileIds
Array of strings

Linked file object id's.

documentType
required
string

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

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" … 11 more
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

object (KycDocumentRejection)
requestId
string or null <= 50 characters

KYC request identifier string.

createdTime
string <date-time>

Creation date/time.

updatedTime
string <date-time>

Latest update date/time.

processedTime
string <date-time>

Processing date/time.

Array of SelfLink (object) non-empty

The links related to resource.

customerId
required
string <= 50 characters

The customer ID.

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.

reason
string

Reason for uploading.

matchLevel
integer [ 1 .. 2 ]

The level of strictness for the document matches.

object
object
Array of CustomerLink (object) or FileLink (object) or KycDocumentLink (object) >= 3 items

The links related to resource.

Array (>= 3 items)
Any of:
rel
required
string

The link type.

Enum: "customer" "targetCustomer"
href
required
string

The link URL.

Responses
2xx

Return any 2xx status to indicate that the data was received successfully.

Request samples
application/json
{
  • "customerId": "string",
  • "kycDocumentId": "string",
  • "fileId": "string",
  • "eventType": "aml-list-possibly-matched",
  • "_embedded": {
    },
  • "_links": [
    ]
}

KYC document modifiedWebhook

Request
Security:
Request Body schema: application/json

KYC document webhook request body resource.

customerId
string

The customer ID.

kycDocumentId
string

The KYC document ID.

fileId
string

The file ID.

eventType
string (GlobalWebhookEventType)

Rebilly webhooks event type.

Enum: "aml-list-possibly-matched" "customer-created" "customer-merged" "customer-one-time-password-requested" "customer-redirected-offsite" "customer-returned" "customer-updated" "dispute-created" "dispute-modified" "experian-check-performed" … 54 more
object
object (Customer)
id
string <= 50 characters

The customer identifier string.

email
string <email>

The customer's email.

firstName
string

The customer's first name.

lastName
string

The customer's last name.

websiteId
string <= 50 characters

The website's ID.

paymentToken
string

A write-only payment token; if supplied, it will be converted into a payment instrument and be set as the defaultPaymentInstrument. The value of this property will override the defaultPaymentInstrument in the case that both are supplied. The token may only be used once before it is expired.

Vaulted instrument (object) or Alternative Instrument (object) or Cash (object) or Check (object) (PaymentInstrument)
createdTime
string <date-time>

The customer created time.

updatedTime
string <date-time>

The customer updated time.

customFields
object (ResourceCustomFields)
Default: {}

Custom Fields list as a map {"custom field name": "custom field value", ...}. The format must follow the saved format (see Custom Fields section for the formats).

object (ContactObject)
object (CustomerAverageValue)
paymentCount
integer

The number of approved payments for the customer.

lastPaymentTime
string <date-time>

The most recent time of an approved payment for the customer.

object (CustomerLifetimeRevenue)
invoiceCount
integer

An auto-incrementing number based on the sequence of invoices. If set to 0, then this record is a Lead, otherwise is a Customer.

Array of objects (Tag)

A list of customer's tags.

revision
integer

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

Array of SelfLink (object) or DefaultPaymentInstrumentLink (object) or LeadSourceLink (object) or WebsiteLink (object) >= 3 items

The links related to resource.

Array of LeadSourceEmbed (object) non-empty

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

any (KycDocument-2)
id
string <= 50 characters

The resource ID. Defaults to UUID v4.

fileId
string <= 50 characters
Deprecated

Linked file object id.

fileIds
Array of strings

Linked file object id's.

documentType
required
string

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

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" … 11 more
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

object (KycDocumentRejection)
requestId
string or null <= 50 characters

KYC request identifier string.

createdTime
string <date-time>

Creation date/time.

updatedTime
string <date-time>

Latest update date/time.

processedTime
string <date-time>

Processing date/time.

Array of SelfLink (object) non-empty

The links related to resource.

customerId
required
string <= 50 characters

The customer ID.

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.

reason
string

Reason for uploading.

matchLevel
integer [ 1 .. 2 ]

The level of strictness for the document matches.

object
object
Array of CustomerLink (object) or FileLink (object) or KycDocumentLink (object) >= 3 items

The links related to resource.

Array (>= 3 items)
Any of:
rel
required
string

The link type.

Enum: "customer" "targetCustomer"
href
required
string

The link URL.

Responses
2xx

Return any 2xx status to indicate that the data was received successfully.

Request samples
application/json
{
  • "customerId": "string",
  • "kycDocumentId": "string",
  • "fileId": "string",
  • "eventType": "aml-list-possibly-matched",
  • "_embedded": {
    },
  • "_links": [
    ]
}

KYC document rejectedWebhook

Request
Security:
Request Body schema: application/json

KYC document webhook request body resource.

customerId
string

The customer ID.

kycDocumentId
string

The KYC document ID.

fileId
string

The file ID.

eventType
string (GlobalWebhookEventType)

Rebilly webhooks event type.

Enum: "aml-list-possibly-matched" "customer-created" "customer-merged" "customer-one-time-password-requested" "customer-redirected-offsite" "customer-returned" "customer-updated" "dispute-created" "dispute-modified" "experian-check-performed" … 54 more
object
object (Customer)
id
string <= 50 characters

The customer identifier string.

email
string <email>

The customer's email.

firstName
string

The customer's first name.

lastName
string

The customer's last name.

websiteId
string <= 50 characters

The website's ID.

paymentToken
string

A write-only payment token; if supplied, it will be converted into a payment instrument and be set as the defaultPaymentInstrument. The value of this property will override the defaultPaymentInstrument in the case that both are supplied. The token may only be used once before it is expired.

Vaulted instrument (object) or Alternative Instrument (object) or Cash (object) or Check (object) (PaymentInstrument)
createdTime
string <date-time>

The customer created time.

updatedTime
string <date-time>

The customer updated time.

customFields
object (ResourceCustomFields)
Default: {}

Custom Fields list as a map {"custom field name": "custom field value", ...}. The format must follow the saved format (see Custom Fields section for the formats).

object (ContactObject)
object (CustomerAverageValue)
paymentCount
integer

The number of approved payments for the customer.

lastPaymentTime
string <date-time>

The most recent time of an approved payment for the customer.

object (CustomerLifetimeRevenue)
invoiceCount
integer

An auto-incrementing number based on the sequence of invoices. If set to 0, then this record is a Lead, otherwise is a Customer.

Array of objects (Tag)

A list of customer's tags.

revision
integer

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

Array of SelfLink (object) or DefaultPaymentInstrumentLink (object) or LeadSourceLink (object) or WebsiteLink (object) >= 3 items

The links related to resource.

Array of LeadSourceEmbed (object) non-empty

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

any (KycDocument-2)
id
string <= 50 characters

The resource ID. Defaults to UUID v4.

fileId
string <= 50 characters
Deprecated

Linked file object id.

fileIds
Array of strings

Linked file object id's.

documentType
required
string

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

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" … 11 more
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

object (KycDocumentRejection)
requestId
string or null <= 50 characters

KYC request identifier string.

createdTime
string <date-time>

Creation date/time.

updatedTime
string <date-time>

Latest update date/time.

processedTime
string <date-time>

Processing date/time.

Array of SelfLink (object) non-empty

The links related to resource.

customerId
required
string <= 50 characters

The customer ID.

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.

reason
string

Reason for uploading.

matchLevel
integer [ 1 .. 2 ]

The level of strictness for the document matches.

object
object
Array of CustomerLink (object) or FileLink (object) or KycDocumentLink (object) >= 3 items

The links related to resource.

Array (>= 3 items)
Any of:
rel
required
string

The link type.

Enum: "customer" "targetCustomer"
href
required
string

The link URL.

Responses
2xx

Return any 2xx status to indicate that the data was received successfully.

Request samples
application/json
{
  • "customerId": "string",
  • "kycDocumentId": "string",
  • "fileId": "string",
  • "eventType": "aml-list-possibly-matched",
  • "_embedded": {
    },
  • "_links": [
    ]
}

KYC document reviewedWebhook

Request
Security:
Request Body schema: application/json

KYC document webhook request body resource.

customerId
string

The customer ID.

kycDocumentId
string

The KYC document ID.

fileId
string

The file ID.

eventType
string (GlobalWebhookEventType)

Rebilly webhooks event type.

Enum: "aml-list-possibly-matched" "customer-created" "customer-merged" "customer-one-time-password-requested" "customer-redirected-offsite" "customer-returned" "customer-updated" "dispute-created" "dispute-modified" "experian-check-performed" … 54 more
object
object (Customer)
id
string <= 50 characters

The customer identifier string.

email
string <email>

The customer's email.

firstName
string

The customer's first name.

lastName
string

The customer's last name.

websiteId