Skip to main content

KYC Operations

This section covers GraphQL operations related to KYC (Know Your Customer) verification processes.

Identity Verification (IDV)​

Request KYC IDV URL​

Requests a URL for identity verification through the KYC provider.

mutation RequestKycIdvUrl($input: RequestKycIdvUrlInput) {
requestKycIdvUrl(input: $input) {
url
}
}

Input Parameters:

{
"input": {
"callbackPath": "/kyc/complete"
}
}

Response:

{
"data": {
"requestKycIdvUrl": {
"url": "https://kyc-provider.com/verify/reference-id"
}
}
}

Complete KYC IDV​

Completes the identity verification process after the user has gone through the KYC provider's flow.

mutation CompleteKycIdv($input: CompleteKycIdvInput!) {
completeKycIdv(input: $input)
}

Input Parameters:

{
"input": {
"referenceId": "reference-id-from-provider"
}
}

Response:

{
"data": {
"completeKycIdv": true
}
}

Check KYC IDV Status​

Checks the current status of the KYC identity verification process.

query CheckKycIdv {
checkKycIdv
}

Response:

{
"data": {
"checkKycIdv": "VERIFIED"
}
}

Possible status values include:

  • NONE: No KYC verification has been started
  • PENDING: KYC verification is in progress
  • VERIFIED: KYC verification has been successfully completed
  • REJECTED: KYC verification has been rejected

Proof of Address (POA)​

Upload KYC Proof of Address​

Uploads a document for proof of address verification.

mutation UploadKycPoa($input: UploadPoaFileInput!) {
uploadKycPoa(input: $input) {
status
message
}
}

Input Parameters:

{
"input": {
"filename": "address-proof.pdf"
}
}

Response:

{
"data": {
"uploadKycPoa": {
"status": "SUCCESS",
"message": "Proof of address uploaded successfully"
}
}
}

File Upload​

Before uploading a file using the uploadKycPoa mutation, you'll need to obtain a signed URL to upload the file to the storage provider.

Get Signed File URL​

query GetSignedFileUrl($filename: String!, $type: MainUploadFileType!) {
getSignedFileUrl(filename: $filename, type: $type)
}

Input Parameters:

{
"filename": "address-proof.pdf",
"type": "KYC_DOCUMENT"
}

Response:

{
"data": {
"getSignedFileUrl": "https://storage-provider.com/upload?signature=abc123..."
}
}

After obtaining the signed URL, upload the file directly to the storage provider using an HTTP PUT request. Then, use the uploadKycPoa mutation to register the uploaded file.

Input Types​

RequestKycIdvUrlInput​

FieldTypeDescription
callbackPathStringOptional path to redirect to after KYC completion

CompleteKycIdvInput​

FieldTypeDescription
referenceIdStringReference ID received from KYC provider

UploadPoaFileInput​

FieldTypeDescription
filenameStringName of the uploaded proof of address file