Notus API

KYC Quickstart

Know Your Customer verification process

KYC (Know Your Customer)

KYC (Know Your Customer) is a mandatory identity verification process that allows your application to know and validate the identity of your users. This process is essential for:

  • Regulatory compliance: Meeting regulatory requirements
  • Fraud prevention: Reducing risks of illicit activities
  • Security: Ensuring only legitimate users access your services
  • Trust: Establishing a solid foundation for financial transactions

Accepted Document Types

Currently, our system accepts the following document types:

Brazilian Documents

  • RG (General Registry): Front and back
  • CNH (National Driver's License): Front and back
  • Passport: Main page with photo only

International Documents

  • Passport: Main page with photo only
  • National Identity Card: Front and back (when applicable)

All documents must be legible, valid, and not expired. Damaged, illegible, or obscured documents may result in verification rejection.

KYC Verification Flow

The KYC verification process follows a simple and intuitive flow:

1. Create Verification Session

First, you must create a verification session for the user:

POST kyc/individual-verification-sessions/standard

Example Response:

{
	"session": {
		"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
		"firstName": "João",
		"lastName": "Silva Santos",
		"birthDate": "15/03/1990",
		"document": {
			"id": "12345678901",
			"type": null,
			"category": "DRIVERS_LICENSE"
		},
		"status": "PENDING",
		"livenessRequired": false,
		"createdAt": "2025-01-20T10:30:00.000Z",
		"updatedAt": null
	},
	"backDocumentUpload": {
		"url": "https://s3.amazonaws.com/example-bucket",
		"fields": {
			"bucket": "example-bucket",
			"X-Amz-Algorithm": "AWS4-HMAC-SHA256",
			"X-Amz-Credential": "EXAMPLE/20250120/us-east-1/s3/aws4_request",
			"X-Amz-Date": "20250120T103000Z",
			"key": "documents/back-doc-12345",
			"Policy": "eyJleHBpcmF0aW9uIjoiMjAyNS0wMS0yMFQxMDQ1OjAwWiIsImNvbmRpdGlvbnMiOltbImNvbnRlbnQtbGVuZ3RoLXJhbmdlIiwwLDI2MjE0NDAwXSxbInN0YXJ0cy13aXRoIiwiJGtleSIsImRvY3VtZW50cy9iYWNrLWRvYy0xMjM0NSJdLHsiYnVja2V0IjoiZXhhbXBsZS1idWNrZXQifV19",
			"X-Amz-Signature": "example-signature-back-document"
		}
	},
	"frontDocumentUpload": {
		"url": "https://s3.amazonaws.com/example-bucket",
		"fields": {
			"bucket": "example-bucket",
			"X-Amz-Algorithm": "AWS4-HMAC-SHA256",
			"X-Amz-Credential": "EXAMPLE/20250120/us-east-1/s3/aws4_request",
			"X-Amz-Date": "20250120T103000Z",
			"key": "documents/front-doc-12345",
			"Policy": "eyJleHBpcmF0aW9uIjoiMjAyNS0wMS0yMFQxMDQ1OjAwWiIsImNvbmRpdGlvbnMiOltbImNvbnRlbnQtbGVuZ3RoLXJhbmdlIiwwLDI2MjE0NDAwXSxbInN0YXJ0cy13aXRoIiwiJGtleSIsImRvY3VtZW50cy9mcm9udC1kb2MtMTIzNDUiXSx7ImJ1Y2tldCI6ImV4YW1wbGUtYnVja2V0In1dfQ==",
			"X-Amz-Signature": "example-signature-front-document"
		}
	}
}

2. Upload Documents

Use the provided URLs to upload documents:

  • Front Document: Upload the document (front)
  • Back Document: Upload the back of the document (when applicable)

Important: Uploads must be photos of the original document, not scanned or digitized copies. The document must be well-lit, legible, and without reflections.

Upload URLs expire in 15 minutes. Make sure to upload within this period.

3. Finalize Process

After uploading the documents, finalize the process:

POST /kyc/individual-verification-sessions/standard/:sessionId/process

4. Check Status

Monitor the verification status:

GET /kyc/individual-verification-sessions/standard/:sessionId

Verification Status

The verification process can have the following statuses:

StatusDescription
PENDINGSession created, waiting for document upload
VERIFYINGDocuments being analyzed by the system
COMPLETEDVerification approved successfully
FAILEDVerification rejected or error during processing
EXPIREDSession expired

Detailed Status

COMPLETED

  • ✅ Valid and legible documents
  • ✅ Consistent information
  • ✅ User approved for transactions
  • ✅ Returns individualId required for FIAT ramp operations

FAILED

  • ❌ Illegible or damaged document
  • ❌ Inconsistent information
  • ❌ Expired document
  • ❌ Document not accepted
  • ❌ Low quality photo or with reflections
  • ❌ Digitized or scanned copy (must be photo of original)
  • ⚠️ Technical error during processing
  • ⚠️ Temporary system issue
  • ⚠️ Can be retried (with other document photos)

Individual ID

When the verification status is COMPLETED, the response will include an individualId:

{
  "session": {
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "COMPLETED",
    "individualId": "ind_1234567890abcdef"
  }
}

Important: The individualId is required for all FIAT ramp operations (deposits and withdrawals). Keep this ID to use in ramp requests.

Flow Diagram

KYC Sequence Diagram

Next Steps

After KYC approval, your user will be ready to:

  • Perform FIAT deposits and withdrawals (using the individualId)

Monthly limit: After KYC approval, the user will have a monthly limit of approximately $9,000 USD for FIAT ramp operations.

Next step: With the individualId in hand, you can proceed to FIAT ramp operations. Check the Ramp documentation for more details.

The KYC process is mandatory for all FIAT ramp operations. Without KYC approval, users will not be able to perform deposits or withdrawals.