- IBAN · SEPA
- Card issuing
- KYC onboarding
A connected banking platform for modern financial services.
Account details, SEPA payments, card issuing, KYC onboarding and multi-currency exchange in one financial product.
Read case study: LuxPaySet verification, screening and monitoring rules around your risk approach. Crassula is certified to PCI DSS v4.0.1, with yearly external audits, penetration tests and quarterly internal scans.
Connect verification and screening services, define onboarding requirements and organise the information your team needs.
Set relevant person and business verification requirements for your product. Configure provider workflows, document and liveness checks, and the verification levels associated with customer limits.
Guide customers through verification with clear requirements and understandable progress. Behind the experience, your policies define the checks, providers and review process.

Connect screening and monitoring tools to assess customer and transaction risks. Keep information current through sanctions and watchlist checks, with review responsibilities defined for your compliance team.
Use customer questionnaires to request additional data and documents. Configure notifications for new verification activity, transaction pre-approvals, expiring documents and messages so your team can respond in the back office.
Choose integrations that fit your programme, market and required capabilities.
Start an identity verification request with your configured provider. Build the onboarding experience around the request lifecycle described in the Banking API.
/api/clients/{clientId}/identification-requests// Start identity verification
const baseUrl = process.env.CRASSULA_BASE_URL;
const apiKey = process.env.CRASSULA_API_KEY;
const clientId = process.env.CRASSULA_CLIENT_ID;
const path = `/api/clients/${encodeURIComponent(clientId)}/identification-requests`;
const response = await fetch(`${baseUrl}${path}`, {
method: 'POST',
headers: {
Authorization: apiKey,
'Content-Type': 'application/json',
},
body: JSON.stringify({
"provider": "sumsub",
"type": "main"
}),
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
const data = await response.json();
# Start identity verification
import os
from urllib.parse import quote
import requests
base_url = os.environ["CRASSULA_BASE_URL"]
api_key = os.environ["CRASSULA_API_KEY"]
client_id = os.environ["CRASSULA_CLIENT_ID"]
path = f'/api/clients/{quote(client_id, safe="")}/identification-requests'
response = requests.post(
f"{base_url}{path}",
headers={"Authorization": api_key},
json={
"provider": "sumsub",
"type": "main"
},
timeout=30,
)
response.raise_for_status()
data = response.json()
# Start identity verification
curl --request POST \
"${CRASSULA_BASE_URL}/api/clients/${CRASSULA_CLIENT_ID}/identification-requests" \
--header "Authorization: ${CRASSULA_API_KEY}" \
--header 'Content-Type: application/json' \
--data '{
"provider": "sumsub",
"type": "main"
}'
Account details, SEPA payments, card issuing, KYC onboarding and multi-currency exchange in one financial product.
Read case study: LuxPay
Fiat and crypto payments, multi-currency exchange and digital-asset accounts on Crassula infrastructure.
Read case study: KeytomThe questions teams ask us before a first call.
Not covered here?Bring your question to a demo with our team.Limits can be associated with verification levels. Customers provide additional information through the applicable provider flow when a product requires a different level.
No. Identity verification establishes the profile’s verification outcome. Your onboarding decision and account-provisioning policy determine what happens next.
Review security documentation, audit arrangements and operating controls with Crassula as part of your due-diligence process.
Review verification integrations, monitoring capabilities and the customer journey with our team.
Request demo