User-driven identity verification
Prevent fraud, remove friction, and improve security with Sora’s new model for identity verification.

One-touch KYC for digital finance.
Once verified at one Sora customer, a user can verify at any other Sora customer instantly. We share a common objective with our customers—verify new users as efficiently, seamlessly and accurately as possible.

The future of IDV
Sora’s patent-pending model for user identity decouples data collection, data checking, and decisioning, enabling a modern user experience and extensive customizability.
curl -X POST https://verify.soraid.com/v1/verification_sessions \
-H 'Authorization: Bearer <API-Key>'
import requests
verification_session = requests.post(
"https://verify.soraid.com/v1/verification_sessions",
headers={
"Authorization": f"Bearer {api_key}",
}
).json()
verification_id = verification_session["id"]
# User verifies using frontend
verification_session = requests.get(
f"https://verify.soraid.com/v1/verification_sessions/{verification_id}",
headers={
"Authorization": f"Bearer {api_key}",
}
).json()
if verification_session["status"] == "success":
celebrate()
<html>
<script src="https://static.soraid.com/sora.js"></script>
<script>
const ui = Sora.createLoginUI(token, {
onSuccess: function(data) {
celebrate();
},
});
ui.launch();
</script>
</html>

Integrate in hours, customize in seconds
Integrate our API with just a few lines of code, or get started immediately using no-code verification links from our dashboard.
Tailor your IDV workflows using customizable verification options or select sensible presets.
- curl -X POST https://verify.soraid.com/v1/login_sessions \
- -H ‘Authorization: Bearer
- -H ‘Content-Type: application/json’ \
- -d ‘{“auth_type”: “email”}’
import requests
# Create Identity API client using API key
login_session = requests.post (
“https://verify.soraid.com/v1/login_sessions”,
json={“auth_type”: “sms”},
headers={
“authorization”: f”Bearer sandbox-mY2Jd4s8oaCwen5tfEufxKyCJf7SqgKQ8A”,
}).json()
# User logs in on frontend
login_id = login_session[“id”]
login_session = requests.get( f”https://verify.soraid.com/v1/login_sessions/{login_id}“, headers={
“authorization”: f”Bearer sandbox-mY2Jd4s8oaCwen5tfEufxKyCJf7SqgKQ8A”,
}).json()
if login_session[“authenticated”]:
celebrate()
<html>
<script src=“https://static.soraid.com/sora.js“>
</script>
<script>
const ui = Sora.createLoginUI(token, {
onEvent: function(data) {},
onExit: function(data) {},
onSuccess: function(data) {}
});
ui.launch();
</script>
</html>
Safe & secure

Stronger trust through consent
Sora establishes a direct relationship with the user so their data is always up to date. Optionally, we can also take custody of user PII on your behalf to save you the challenge of safely storing and maintaining sensitive data.
Reach more consumers, securely

Industry leading passthrough rates

Simple implementation with a no-code option

Instant document verification with guided image capture

Passwordless login with secure account recovery

Flexible and granular IDV workflows

Secure PII custody
Reach more consumers, securely

Industry leading passthrough rates

Simple implementation with a no-code option

Instant document verification with guided image capture

Passwordless login with secure account recovery

Flexible and granular IDV workflows
