Choose Your Integration Method
API Integration
Full control with our REST API. Create sessions, upload documents, and receive verification results programmatically.
View API Docs βIframe Embed
Embed the KYC flow directly in your website. Minimal code required. White-label customization available.
Redirect Flow
Redirect users to our hosted KYC page. They return to your callback URL with the verification result.
Telegram Mini App
Launch KYC directly from your Telegram bot. Users complete verification without leaving the app.
Quick Integration Examples
1. Redirect Flow (Simplest)
// Create session and redirect
const response = await fetch('https://api.openkyc.africa/api/session/create', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
user_id: 'your-user-id',
callback_url: 'https://yoursite.com/kyc-complete'
})
});
const { mini_app_url } = await response.json();
window.location.href = mini_app_url;
2. Iframe Embed
<iframe
src="https://openkyc.africa/mini-app?user_id=123&callback=https://yoursite.com/done"
width="100%"
height="700"
allow="camera"
style="border: none; border-radius: 12px;"
></iframe>
3. Telegram Bot Integration
# Python Telegram Bot
from telegram import InlineKeyboardButton, InlineKeyboardMarkup, WebAppInfo
keyboard = [[InlineKeyboardButton(
"Start KYC Verification",
web_app=WebAppInfo(url="https://openkyc.africa/mini-app?user_id=" + str(user.id))
)]]
await update.message.reply_text(
"Click below to verify your identity:",
reply_markup=InlineKeyboardMarkup(keyboard)
)
4. Webhook Receiver
# Flask webhook endpoint
@app.route('/webhooks/kyc', methods=['POST'])
def kyc_webhook():
data = request.json
event = data['event']
if event == 'verification.approved':
user_id = data['data']['user_id']
# Grant access to your user
mark_user_verified(user_id)
return {'status': 'ok'}
SDK Libraries (Coming Soon)
JavaScript/Node.js
npm install @openkyc/sdk
Python
pip install openkyc
Ruby
gem install openkyc
PHP
composer require openkyc/sdk