RiseTech UnifyID API Documentation
Build secure identity verification into your applications with RiseTech Digital UnifyID's
Introduction
Integrate secure, decentralized identity verification into your applications with the RiseTech UnifyID API. Our enterprise-grade platform is built with W3C Decentralized Identifiers (DIDs), allowing you to create seamless, secure and trustworthy user experiences.
What can you do with this API?
Request User Verification
Initiate requests for users to present their digital verified credentials for seamless authentication, choosing between standard or face-check levels of security.
Validate Credentials
Securely receive and validate the authenticity of presented credentials in real-time, whether through a simple SAML assertion or a direct API response.
Issue Custom Credentials
Design and issue your own branded, verifiable credentials to users, with full control over the claims, branding, and optional KYC verification.
Getting Started
- Get Your API Key: Contact your RiseTech account manager to obtain your API key and base URL.
- Integration Flows: Review the Integration Flows to choose the pattern that best fits your app.
- API Reference: Explore the API Reference for detailed endpoint information.
Integration Flows
1. Credential Issuance Flow
- A customer must be created first before you can issue credentials to users
- The KYC verification step is optional and can be skipped based on your requirements
- All other steps are mandatory for credential issuance
2. Presentation Flow (Direct API Verification)
Authentication
All API calls require authentication using an API key. Include your API key in the X-API-Key header with every request.
Getting Your API Key
Your API key and base URL will be provided to you during onboarding. Contact your RiseTech account manager or reach out to our support team if you haven't received your credentials.
Making Authenticated Requests
Example: Get active card types with API key authentication
curl -X GET {BASE_URL}/api/cardtypes/getactivecards \
-H "X-API-Key: your_api_key_here"
X-API-Key: your_api_key_here
- Never expose your API key in client-side code or public repositories
- Use environment variables to store your API keys
- Rotate your API keys periodically
- Use sandbox API keys for development and testing
Monitor your API usage, view rate limits, and manage billing through your RiseTech dashboard.
SAML 2.0 Integration
Configure your application as a Service Provider (SP) to use UnifyID as a SAML Identity Provider (IdP).
SAML Endpoints
Get IdP metadata XML
SAML SSO endpoint - accepts AuthnRequest via redirect or POST binding
Authentication Context Classes
| Level | Context URI | Use Case |
|---|---|---|
| Standard | https://risetech.id/saml/contexts/unifyid-standard |
Regular authentication via mobile app |
| Face Check | https://risetech.id/saml/contexts/unifyid-facecheck |
High-security with biometric face check |
Direct API Integration
For applications that cannot use SAML or require a custom user interface.
Initiate a verification request and receive a QR code
curl -X POST {BASE_URL}/api/verification/verification-request \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"UserGUID": "BD275F05-A037-4B3E-93DC-008E5B13F3C8",
"CustomerGUID": "BF5F8407-DBEB-45DC-8E51-B0B784D8042C",
"faceCheck": false,
"isMobile": false,
"purpose": "Log in to the portal.",
"cardTypeGuid": "3E524D30-F5F2-47F4-980E-96EE3A0A9201"
}'
Poll for verification status (every 3 seconds)
Monitor status using Server-Sent Events (SSE) - Alternative to polling
Customer Management
Create a new customer organization
curl -X POST {BASE_URL}/api/customers/createcustomer \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"companyName": "Acme Corporation",
"email": "admin@acme.com",
"firstName": "John",
"lastName": "Doe"
}'
Retrieve customer details by GUID
Update existing customer information
User Management
Create a new user under a customer account
curl -X POST {BASE_URL}/api/users/createuser \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"customerGuid": "BF5F8407-DBEB-45DC-8E51-B0B784D8042C",
"email": "john.smith@acme.com",
"firstName": "John",
"lastName": "Smith"
}'
Retrieve user details by GUID
Update existing user information
Credentials & Cards
Get all active card types available for issuance
Create a custom credential type with branding and claims
Get all credentials issued to a specific user
Revoke an issued credential
KYC & Issuance Flow
Generate QR code for ID document scanning
Issue a verifiable credential to a user
curl -X POST {BASE_URL}/api/credentials/issuance-request \
-H "X-API-Key: your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"UserGUID": "BD275F05-A037-4B3E-93DC-008E5B13F3C8",
"CustomerGUID": "BF5F8407-DBEB-45DC-8E51-B0B784D8042C",
"Claims": {
"given_name": "John",
"family_name": "Smith",
"mail": "john.smith@example.com"
},
"IsMobile": false,
"cardTypeGuid": "3E524D30-F5F2-47F4-980E-96EE3A0A9201",
"purpose": "Employee credential issuance"
}'
Send verification code via email
Error Codes
The API uses standard HTTP response codes and returns detailed error information in JSON format.
HTTP Status Codes
| Code | Status | Description |
|---|---|---|
| 200 | OK | Request succeeded |
| 201 | Created | Resource created successfully |
| 400 | Bad Request | Invalid request parameters or body |
| 401 | Unauthorized | Missing or invalid API key |
| 403 | Forbidden | API key doesn't have permission |
| 404 | Not Found | Resource not found |
| 429 | Too Many Requests | Usage limit exceeded |
| 500 | Internal Server Error | Server error - contact support |
Error Response Format
{
"error": "API key is required",
"errorCode": "missing_api_key",
"correlationId": "be0adcce-deca-4017-a132-71f99250c87e"
}
Error Codes Reference
| HTTP Code | Error Code | Description | Resolution |
|---|---|---|---|
| 401 | missing_api_key |
No API key provided | Add X-API-Key header |
| 401 | invalid_api_key |
API key not found or inactive | Check key in Dashboard |
| 429 | usage_limit_exceeded |
Plan limit reached | Upgrade or wait for next cycle |
| 500 | validation_service_error |
Unable to validate API key | Retry; contact support |
| 500 | internal_error |
Unexpected server error | Include correlationId in support |
correlationId from error responses when contacting support.
Best Practices
DO
- Use environment variables for API keys
- Implement comprehensive error handling
- Use HTTPS for all endpoints
- Rotate API keys periodically
- Set reasonable timeouts
- Monitor usage via Dashboard
DON'T
- Store API keys in source code
- Log sensitive data or API keys
- Share API keys via email/chat
- Use production keys in testing
- Skip error handling
- Expose internal error messages
SDKs & Libraries
Coming Soon
Native SDKs to make integration even easier
JavaScript/TypeScript
In DevelopmentPython
In Development.NET/C#
In DevelopmentRiseTech Wallet
Coming Soon
A comprehensive digital wallet for managing your digital identity
Digital ID Cards
Securely store and manage all your digital identity cards
NFC Support
Tap to share your credentials
Secure & Private
End-to-end encryption with biometric authentication