Skip to main content
GET
/
api
/
kyc
/
:account
{
  "kyc_verify": true,
  "money_limit": "8990",
  "kyc_url": ""
}

Overview

Check the KYC (Know Your Customer) verification status for a user account. This endpoint returns whether the user is verified, their money transfer limit, and a verification URL if needed.

KYC Provider

CashQ uses Veriff as our Attested KYC provider for identity verification.
Custom Veriff IntegrationIf you are using your own Veriff account, we can integrate with your Veriff API key to maintain a unified verification experience.
Alternative KYC ProvidersIf you need to use another KYC provider, please contact [email protected] to discuss integration options.

Endpoint

GET /api/kyc/:account

Path Parameters

account
string
required
User account ID (phone number in E.164 format without the + sign)Format: [country code][subscriber number including area code]Example: 16175551212 for a US number
Phone Number FormatPhone numbers must be in E.164 international standard without the + sign:
  • ✅ Correct: 16175551212
  • ❌ Incorrect: +16175551212
  • ❌ Incorrect: 6175551212 (missing country code)

Authentication

API-KEY
string
required
Your CashQ API Key for authentication

Request Example

curl -X GET 'https://api.cashqbot.com/api/kyc/16175551212' \
  -H 'API-KEY: your_api_key_here'

Response

kyc_verify
boolean
required
KYC verification status
  • true: User is verified
  • false: User is not verified or has limited verification
money_limit
string
required
Maximum amount the user can receive in a single transfer (in dollars)
  • If "0": User cannot receive money transfers
  • Otherwise: Maximum transfer amount allowed
kyc_url
string
required
URL to redirect user for KYC verification
  • Empty string ("") if user is fully verified
  • Contains verification URL if user needs to complete KYC

Response Examples

{
  "kyc_verify": true,
  "money_limit": "8990",
  "kyc_url": ""
}

Understanding KYC Status

Verified Users (kyc_verify: true)

  • User has completed full KYC verification
  • Can receive transfers up to their money_limit
  • No additional verification needed
  • kyc_url will be empty

Unverified Users (kyc_verify: false)

  • User has limited or no verification
  • Can only receive transfers up to their money_limit
  • Should be directed to kyc_url to complete verification
  • After verification, their money_limit will increase

Money Limit Interpretation

money_limitMeaning
"0"Cannot receive any transfers
"600"Can receive up to $600 per transfer
"8990"Can receive up to $8,990 per transfer

Phone Number Formatting

Converting to E.164 Format

function formatPhoneNumber(phone, countryCode = '1') {
  // Remove all non-digit characters
  const digits = phone.replace(/\D/g, '');
  
  // Add country code if not present
  if (!digits.startsWith(countryCode)) {
    return countryCode + digits;
  }
  
  return digits;
}

// Examples
formatPhoneNumber('(617) 555-1212', '1');  // Returns: 16175551212
formatPhoneNumber('+1-617-555-1212', '1'); // Returns: 16175551212
formatPhoneNumber('6175551212', '1');      // Returns: 16175551212

Error Responses

Error CodeDescriptionSolution
authentication_errorInvalid or missing API keyVerify your API key
invalid_phone_numberPhone number format is incorrectUse E.164 format without +
account_not_foundAccount doesn’t existVerify the phone number is correct
internal_server_errorServer error occurredRetry the request

Best Practices

Check KYC status before initiating any transfer to avoid failures due to verification limits.
Cache KYC status for a reasonable time (e.g., 1 hour) but refresh before large transfers.
If a user needs verification, clearly explain why and provide the verification URL.
Validate and format phone numbers on your end before sending to the API.
Account for all cases: fully verified, partially verified, and unverified users.