Users can have up to 4 documents:
- ID front
- ID back
- Proof of address
- Selfie
If all 4 documents are verified, user is verified else user is unverified.
User can resubmit for documents that have been rejected.
### **API Endpoint Design**
Design APIs for clients to query for user statusesDesign APIs for clients to submit user documents
API enpoint: http://api.com
API: http://api.com/submit_document
Request Params: {
username:'username',
id_front:'id_front',
id_back:'id_back',
'selfie':'selfie'
}
Headers {
token: token (if logged in already)
}
errors{
id_front:required,
id_front:invalid format
id_back:required
id_back:invalid_format
selfie:required
selfie:invalid format
something went wrong while upload your document:server error when convert and upload document on s3
something went wrong: while storing the document record in database in case of database is not available to connect
invalid token: if token is invalid
}
success{
code : 200
message: document uploaded successfully
data: {
[
id, document_name, path, status
]
}
}
response{
check for validation errors with error code
error/success message based on scenario
}
api url: http://api.com/get_user_documents
headers{
token:token
}
request params{
}
response{
error:if document not found, token invalid
success: if document found and token is valid
data: [ doucument array with all document details fetch for user based on token]
}
### **Database Design**
Design tables to store user documents
table:users
(id,username,hash_password,etc)
table:user_documents
(id,user_id,document_name, document_path, document_type, status,etc)
document_type -> selfie
document_name -> fullname
document_path -> path
status - > need to resubmit from admin