---
# System prepended metadata

title: System Design Interview (KYC Service)

---

# System Design Interview (KYC Service)

### Context
Users can have up to 4 documents:

- ID front (.jpg)
- ID back (.jpg)
- Proof of address (.jpg)
- Selfie (.jpg)

If all 4 documents are verified, user is verified else user is unverified.

intial
approved
rejected

what is kyc service?

is an api server.

User can resubmit for documents that have been rejected.

Other 3rd party services can send us additional information to unverify users

--


// KYC Service ??
// - Upload image => camera, storage, process
// python : for image comparation 


verify? : we are using manual to verify 

kyc service does not have direct customers, they are working with other services to provide them kyc abilities

www.kycservice.com

# create user
POST: https://www.kycservice.com/api/v1/users

# submit documents
POST: https://www.kycservice.com/api/v1/documents/{UserId}
POST: https://www.kycservice.com/api/v1/users/{UserId}/documents/

# review User Information
GET: https://www.kycservice.com/api/v1/User/{UserId}

# Submit User Form
POST: https://www.kycservice.com/api/v1/User/{UserId}

# Webhook receive criminal record
POST: https://www.kycservice.com/api/v1/webhook

# push notification for verification process
GET : https://www.kycservice.com/api/v1/Notification/{UserId}

# verification process
POST : https://www.kycservice.com/api/v1/admin/{adminId}


# DB design

// User Table
UserId : Guid
Name : string
address : string
IsVerified: string // NO, YES, 'NOT YET' 
IsSubmitted: bool
VerifyDate: Datetime
UserVerified: Guid 


// Documents table
DocumentId: guid
UserId: Guid
FileName: string 
FilePath : string



