Verify zkKYC Status
Get KYC statistics status
https://openapi.zk.me/kyc/v1/status
?mch_no=YourMerchantNumber
&api_key=YourApiKeyParameters
api_key
string
Your API key
Sample Response
{
"code": 200,
"message": "success",
"data": {
"kyc_participants": 22,
"kyc_verified": 0,
"kyc_participants_daily": [
{
"date": "2023-07-27",
"participants": 2
},
{
"date": "2023-07-28",
"participants": 1
},
{
"date": "2023-08-09",
"participants": 1
},
{
"date": "2023-08-13",
"participants": 2
},
{
"date": "2023-09-14",
"participants": 1
},
{
"date": "2023-09-25",
"participants": 1
},
{
"date": "2023-10-27",
"participants": 2
},
{
"date": "2023-12-01",
"participants": 1
},
{
"date": "2024-01-05",
"participants": 1
},
{
"date": "2024-01-06",
"participants": 1
},
{
"date": "2024-01-10",
"participants": 2
},
{
"date": "2024-01-15",
"participants": 1
},
{
"date": "2024-01-16",
"participants": 1
},
{
"date": "2024-01-17",
"participants": 3
},
{
"date": "2024-01-19",
"participants": 1
},
{
"date": "2024-01-24",
"participants": 1
}
],
"kyc_verified_daily": null,
"meid_count": 4
}
}Get Users List
Returns a list of users who initiated the verification flow under a dashboard account.
POST https://agw.zk.me/zkseradmin/openapi/kyc/getUsersListRequest Body
{
"mchNo": "YourAppID" ,
"apiKey": "YourApiKey",
"programNo": "YourProgramNo",
"page": 1,
}Fields Explanation
apiKey
string
Your API Key.
programNo
string
Same as the programNo you pass for the SDK integration.
page
integer
Returns users in blocks of 50 (page 1 = 1–50, page 2 = 51–100, etc.). If fewer users exist, all are returned.
Sample Response
{
"code": ...,
"data": {
"total": ...,
"totalPage": ...,
"users": [
{
"clientUserIdentifier": [
{
"blockchainId": ...,
"network": "...",
"tokenId": "...",
"userId": ...,
"walletAddress": "..."
}
],
"completedTimeUnix": "...",
"ssiWallet": "...",
"status": "...",
"zkmeAccount": "...",
"zkmeId": "..."
},
]
},
"msg": "...",
"timestamp": ...
}Fields Explanation
code
number
Business status code, e.g. 80000000 indicates success
msg
string
Message describing the result
timestamp
number
Response timestamp in Unix milliseconds
data
object
Main data object (see data Object below)
data Object
total
number
Total number of users matched
totalPage
number
Total number of pages
users
array<object>
List of user objects (see users Object)
users Object
clientUserIdentifier
array<object>
Identifiers linked to this user (see clientUserIdentifier Object)
completedTimeUnix
string
Completion time (Unix milliseconds, as string)
ssiWallet
string
zkMe SSI wallet address bound to the user.
status
string
Current KYC/verification status. Possible values include:
Verification Started
OCR Passed
Liveness Checked
ZKP Generated
SBT Minted
OnChain Minted
Note: Only applicable to On-chain Mint
KYC Passed
Verification Failed
zkmeAccount
string
The email address used to log in to zkMe.
zkmeId
string
Unique zkMe user ID
clientUserIdentifier Object
blockchainId
number
Chain ID
network
string
Chain name
tokenId
string
The ID of the Soulbound Token (SBT) minted for the user on the chain.
walletAddress
string
User’s wallet address from the client system.
userId
string
User’s email address, or another non-wallet unique identifier from the client system.
Get Users KYC Result Overview
Returns the verification status of the user for the following credentials: Proof-of-Citizenship (zkPoC), Proof-of-Location (zkPoL), and AML Check (AMLMe).
POST https://agw.zk.me/zkseradmin/openapi/queryKycInfoByAddressRequest Body
{
"mchNo": "YourAppID" ,
"apiKey": "YourApiKey",
"programNo": "YourProgramNo",
"account": "walletAddress", // or email, or other unique identifiers
"chainId": "YourChainID"
}Fields Explanation
apiKey
string
Your API Key.
programNo
string
Same as the programNo you pass for the SDK integration.
account
string
User's wallet address (recommended), email address, or other unique identifier
chainId
string
Same as the param chainId you pass for the SDK integration.
Supported Chain List
Aptos
aptos-1
Arbitrum
42161
Base
8453
BNB Smart Chain
56
BounceBit
6001
Ethereum
1
Kaia
8217
Manta
169
Neutron
neutron-1
Polygon
137
Ronin
2020
Solana
solana
TON
ton
Aptos Testnet
aptos-2
Plume Testnet
98864
Scroll Sepolia Testnet
534351
Sei Testnet
atlantic-2
ZetaChain Athens3 Testnet
7001
Sample Response
{
"zkme_id":"...",
"kycStatus":"...",
"kycCompleteTimeUnix":"...",
"ssiAddress":"...",
"verifierValues":{
"sanction":...,
"age":...,
"citizenship":...,
"location":...,
"unique":...,
},
}Fields Explanation
zkme_id
string
Return the zkMe id corresponding to the zkMe account linked to the provided address.
kycStatus
string
Return users' KYC status, including 8-9 stages:
Not Started
Verification Started
OCR Passed
Liveness Checked
ZKP Generated
SBT Minted
OnChain Minted
Note: Only applicable to On-chain Mint
KYC Passed
Verification Failed
kycCompleteTimeUnix
string
Unix timestamp of the mint time of SBT minting in SSI wallet.
ssiAddress
string
User's SSI wallet address.
verifierValues
object
List of verifierValues objects (see verifierValues Object)
verifierValues Object
sanction
bool
Return the user's AML Screening verification result with the following output:
If the user passes, return
true.If the user fails, return
false.If the AML Screening verification is not configured for the program, return
null.
age
bool
Return the user's age verification result with the following output:
If the user passes, return
true.If the user fails, return
false.If the Proof of Citizenship is not configured for this program, return
null.
citizenship
bool
Return the user's citizenship verification result with the following output:
If the user passes, return
true.If the user fails, return
false.If the Proof of Citizenship is not configured for the program, return
null.
location
bool
Return the user's location verification result with the following output:
If the user passes, return
true.If the user fails, return
false.If the Proof of Location is not configured for the program, return
null.
unique
bool
Return the user's ID-based uniqueness verification result with the following output:
If the user passes, return
true.If the user fails, return
false.If the Uniqueness Check is not configured for the program, return
null.
Get Users Address Proof Result Overview
Returns the verification status of the user for the following credentials: Proof-of-Address (zkPoA).
POST https://agw.zk.me/zkseradmin/openapi/queryPoAInfoByAddress Request Body
{
"mchNo": "YourAppID" ,
"apiKey": "YourApiKey",
"programNo": "YourProgramNo",
"account": "walletAddress", // or email, or other unique identifiers
}Fields Explanation
apiKey
string
Your API Key.
programNo
string
Same as the programNo you pass for the SDK integration.
account
string
User's wallet address (recommended), email address, or other unique identifier
Sample Response
{
"code": ...,
"data": [
{
"completedTimeUnix": "...",
"ssiAddress": "...",
"status": "...",
"verifierValues": {
"countryRegion": ...
},
"zkmeId": "..."
}
],
"msg": "...",
"timestamp": ...
}Fields Explanation
code
number
Business status code, e.g. 80000000 indicates success
msg
string
Message describing the result
timestamp
number
Response timestamp in Unix milliseconds
data
object
Main data object (see data Object below)
data Object
completedTimeUnix
string
Unix timestamp of the mint time of SBT minting in SSI wallet.
ssiAddress
string
User's SSI wallet address.
status
string
Return users' KYC status, including 7 stages:
Not Started
Verification Started
OCR Passed
ZKP Generated
SBT Minted
Verification Passed
Verification Failed
zkme_id
string
Return the zkMe id corresponding to the zkMe account linked to the provided address.
verifierValues
object
List of verifierValues objects (see verifierValues Object)
verifierValues Object
countryRegion
bool
Return the user's Address verification result with the following output:
If the user passes, return
true.If the user fails, return
false.If the AML Screening verification is not configured for the program, return
null.
Get Users Accredited Investor Status Overview
Returns the verification status of the user for the following credential: Proof-of-Accredited-Investor (zkPoAI).
POST https://agw.zk.me/zkseradmin/openapi/queryKycInfoByAddressForPoaRequest Body
{
"mchNo": "YourAppID" ,
"apiKey": "YourApiKey",
"programNo": "YourProgramNo",
"account": "walletAddress", // or email, or other unique identifiers
"chainId": "YourChainID"
}Fields Explanation
apiKey
string
Your API Key.
programNo
string
Same as the programNo you pass for the SDK integration.
account
string
User's wallet address (recommended), email address, or other unique identifier
chainId
string
Same as the param chainId you pass for the SDK integration.
Currently supports Polygon (137) and Base (8453).
Supported Chain List
Aptos
aptos-1
Arbitrum
42161
Base
8453
BNB Smart Chain
56
BounceBit
6001
Ethereum
1
Kaia
8217
Manta
169
Neutron
neutron-1
Polygon
137
Ronin
2020
Solana
solana
TON
ton
Aptos Testnet
aptos-2
Plume Testnet
98864
Scroll Sepolia Testnet
534351
Sei Testnet
atlantic-2
ZetaChain Athens3 Testnet
7001
Sample Response
{
"poaiCompletedTimeUnix":"...",
"poaiStatus":"...",
"ssiAddress":"...",
"zkmeId":"...",
}Fields Explanation
poaiCompletedTimeUnix
string
Unix timestamp of the mint time of user completed the share data process and minted a SBT in SSI wallet.
poaiStatus
string
Return users' zkPoAI status, including 6 stages:
Verification Started
Data Retrieved
ZKP Generated
SBT Minted
OnChain Minted
Note: Only applicable to On-chain Mint and On-chain Transactional
PoAI Passed (or PoAI Failed)
ssiAddress
string
User's SSI wallet address
zkmeId
string
Return the zkMe id corresponding to the zkMe account linked to the provided address.
Last updated