Onboarding: Customization
Complete reference for customizing the white-label onboarding experience to match your brand and requirements.
Overview
Customize every aspect of the white-label onboarding flow to create a seamless branded experience. From visual styling to content localization, make the Debitura onboarding feel like a natural part of your platform.
Customization Levels
Level 1: Basic Branding
- Logo
- Primary color
- Font family
Level 2: Advanced Styling
- Full color palette
- Custom CSS
- Typography system
Level 3: Content Customization
- Custom copy and messaging
- Localized content
- Help text and tooltips
Level 4: Flow Customization
- Optional steps
- Pre-filled data
- Custom fields
Configuring White-Label Settings
Initial Setup
Configure your white-label settings before creating clients:
POST /v1/referral-partners/settings/white-label
Basic Configuration:
{
"branding": {
"logo_url": "https://yourplatform.com/logo.png",
"primary_color": "#0066CC",
"font_family": "Inter, sans-serif"
},
"return_url": "https://yourplatform.com/onboarding/complete",
"webhook_url": "https://yourplatform.com/webhooks/debitura"
}
Advanced Configuration:
{
"branding": {
"logo_url": "https://yourplatform.com/logo.png",
"logo_height": 40,
"favicon_url": "https://yourplatform.com/favicon.ico",
"primary_color": "#0066CC",
"secondary_color": "#004A99",
"success_color": "#00B050",
"error_color": "#DC3545",
"text_color": "#1A1A1A",
"background_color": "#FFFFFF",
"font_family": "Inter, -apple-system, sans-serif",
"heading_font_family": "Inter, sans-serif",
"border_radius": "8px"
},
"urls": {
"return_url": "https://yourplatform.com/onboarding/complete",
"cancel_url": "https://yourplatform.com/onboarding/cancelled",
"privacy_policy_url": "https://yourplatform.com/privacy",
"terms_url": "https://yourplatform.com/terms"
},
"webhooks": {
"url": "https://yourplatform.com/webhooks/debitura",
"events": ["onboarding_started", "onboarding_completed", "onboarding_cancelled"]
},
"localization": {
"default_language": "en",
"supported_languages": ["en", "sv", "da", "no"]
}
}
Update Settings
Modify settings at any time:
PATCH /v1/referral-partners/settings/white-label
Request:
{
"branding": {
"primary_color": "#FF6600"
}
}
Changes apply to new onboarding flows immediately.
Branding Options
Logo Configuration
{
"branding": {
"logo_url": "https://yourplatform.com/logo.png",
"logo_height": 40,
"logo_dark_url": "https://yourplatform.com/logo-dark.png"
}
}
Logo Requirements:
- Format: PNG, SVG, or JPG
- Recommended height: 32-48px
- Transparent background recommended
- Max file size: 500KB
- Served over HTTPS
Optional dark mode logo:
- Provide
logo_dark_urlfor dark mode support - Falls back to main logo if not provided
Color Palette
{
"branding": {
"primary_color": "#0066CC",
"secondary_color": "#004A99",
"accent_color": "#FF6600",
"success_color": "#00B050",
"warning_color": "#FFA500",
"error_color": "#DC3545",
"info_color": "#17A2B8",
"text_color": "#1A1A1A",
"text_secondary_color": "#6C757D",
"background_color": "#FFFFFF",
"background_secondary_color": "#F8F9FA",
"border_color": "#DEE2E6"
}
}
Color format: Hex codes (e.g., #0066CC)
Usage:
primary_color- Buttons, links, headerssecondary_color- Secondary buttons, accentssuccess_color- Success messages, completed stepserror_color- Validation errors, warningstext_color- Main text contentbackground_color- Page background
Typography
{
"branding": {
"font_family": "Inter, -apple-system, BlinkMacSystemFont, sans-serif",
"heading_font_family": "Inter, sans-serif",
"font_size_base": "16px",
"line_height": "1.5"
}
}
Font options:
- Use system fonts for best performance
- Or reference Google Fonts:
"Roboto, sans-serif" - Fallback fonts recommended
System font stack example:
"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"
Styling Options
{
"branding": {
"border_radius": "8px",
"button_border_radius": "6px",
"input_border_radius": "4px",
"shadow_style": "medium"
}
}
Border radius:
0px- Square corners4px- Subtle rounding8px- Standard rounded (default)16px- Highly rounded
Shadow styles:
none- No shadowssubtle- Light shadowsmedium- Standard depth (default)strong- Pronounced shadows
Content Customization
Custom Messaging
Override default text throughout the flow:
{
"content": {
"welcome": {
"title": "Welcome to {{platform_name}}",
"subtitle": "Set up your debt collection in minutes",
"description": "We've partnered with Debitura to bring professional debt collection to your business."
},
"completion": {
"title": "You're all set!",
"message": "Your {{platform_name}} account is ready for debt collection.",
"next_steps": [
"Return to {{platform_name}}",
"Create your first case",
"Explore collection features"
]
}
}
}
Available variables:
{{platform_name}}- Your platform name{{company_name}}- Customer's company name{{contact_name}}- Contact person name
Help Text
Customize tooltips and help messages:
{
"content": {
"help_text": {
"company_registration": "Your official company registration number as registered with your country's business registry.",
"vat_number": "VAT number is optional but helps with invoicing and compliance.",
"bank_account": "Debt collection payments will be transferred to this account."
}
}
}
Email Templates
Customize automated emails sent during onboarding:
{
"emails": {
"onboarding_invitation": {
"subject": "Complete your {{platform_name}} setup",
"from_name": "{{platform_name}} Team",
"reply_to": "support@yourplatform.com"
},
"onboarding_reminder": {
"subject": "Don't forget to complete your setup",
"enabled": true,
"send_after_hours": 24
},
"onboarding_completed": {
"subject": "Welcome to {{platform_name}}!",
"enabled": true
}
}
}
Localization
Language Configuration
Support multiple languages:
{
"localization": {
"default_language": "en",
"supported_languages": ["en", "sv", "da", "no", "fi"],
"auto_detect": true
}
}
Language detection:
auto_detect: true- Detect from browser settingsauto_detect: false- Always use default language
Per-Client Language
Set language when creating client:
{
"onboarding_metadata": {
"language": "sv"
}
}
Supported languages:
en- Englishsv- Swedishda- Danishno- Norwegianfi- Finnishde- German
Custom Translations
Override specific translations:
{
"translations": {
"sv": {
"welcome.title": "Välkommen till {{platform_name}}",
"button.continue": "Fortsätt",
"button.back": "Tillbaka"
}
}
}
Flow Customization
Optional Steps
Configure which steps are required:
{
"flow": {
"steps": {
"company_details": { "required": true },
"verification": { "required": true },
"beneficial_ownership": { "required": false },
"banking": { "required": true },
"agreement": { "required": true }
}
}
}
Conditional requirements:
{
"flow": {
"steps": {
"beneficial_ownership": {
"required": true,
"condition": "country === 'SE' || country === 'DK'"
}
}
}
}
Pre-filled Data
Pre-populate fields to reduce friction:
{
"external_id": "customer_123",
"company_name": "Acme Corporation",
"onboarding_metadata": {
"prefill": {
"vat_number": "SE123456789001",
"country": "SE",
"email": "contact@acme.com",
"phone": "+46701234567",
"address": {
"street": "Kungsgatan 1",
"city": "Stockholm",
"postal_code": "111 43",
"country": "SE"
}
}
}
}
Pre-fillable fields:
- Company information
- Contact details
- Address
- VAT number
- Industry
Note: Users can still edit pre-filled values.
Custom Fields
Add custom fields to collect additional data:
{
"flow": {
"custom_fields": [
{
"id": "account_manager",
"label": "Account Manager",
"type": "text",
"required": false,
"step": "company_details"
},
{
"id": "referral_source",
"label": "How did you hear about us?",
"type": "select",
"options": [
{ "value": "search", "label": "Search engine" },
{ "value": "referral", "label": "Referral" },
{ "value": "other", "label": "Other" }
],
"step": "welcome"
}
]
}
}
Field types:
text- Single line text inputtextarea- Multi-line textselect- Dropdown menucheckbox- Boolean valuenumber- Numeric inputdate- Date picker
URL Configuration
Return URLs
{
"urls": {
"return_url": "https://yourplatform.com/onboarding/complete",
"cancel_url": "https://yourplatform.com/onboarding/cancelled",
"error_url": "https://yourplatform.com/onboarding/error"
}
}
Query parameters appended:
client_id- Client identifierstatus- Completion statussession_id- Onboarding session ID
Example return:
https://yourplatform.com/onboarding/complete?client_id=cli_abc123&status=completed&session_id=sess_xyz789
Footer Links
{
"urls": {
"privacy_policy_url": "https://yourplatform.com/privacy",
"terms_url": "https://yourplatform.com/terms",
"support_url": "https://yourplatform.com/support",
"contact_email": "support@yourplatform.com"
}
}
Links appear in onboarding footer.
Advanced Customization
Custom CSS
Inject custom CSS for fine-grained control:
{
"branding": {
"custom_css": ".btn-primary { box-shadow: 0 4px 6px rgba(0,0,0,0.1); }"
}
}
Limitations:
- Max 10KB of CSS
- Cannot override layout structure
- Scoped to onboarding flow only
Use cases:
- Adjust spacing
- Fine-tune colors
- Custom animations
JavaScript Events
Listen to onboarding events:
// On your return_url page
window.addEventListener('message', (event) => {
if (event.data.type === 'debitura_onboarding_completed') {
console.log('Client ID:', event.data.client_id);
// Handle completion
}
});
Testing Customization
Preview Mode
Preview your customization before going live:
GET /v1/referral-partners/settings/white-label/preview
Response:
{
"preview_url": "https://onboarding.debitura.com/preview/xyz789",
"expires_at": "2024-01-15T12:00:00Z"
}
Use test data to complete the flow and verify appearance.
Responsive Testing
Test on different devices:
- Desktop browsers
- Mobile devices (iOS/Android)
- Tablets
- Different screen sizes
Best Practices
Visual Design
- Use your brand colors consistently
- Ensure sufficient color contrast (WCAG AA)
- Test logo visibility on different backgrounds
- Keep fonts readable (min 14px)
Content
- Write clear, concise instructions
- Use customer-friendly language
- Avoid legal jargon where possible
- Provide helpful error messages
User Experience
- Pre-fill data when possible
- Make optional fields clearly marked
- Show progress indication
- Provide exit/cancel option
Technical
- Use HTTPS for all resource URLs
- Optimize logo file size
- Test in multiple browsers
- Monitor webhook reliability
Common Customization Patterns
Pattern 1: Minimal Branding
Just logo and color:
{
"branding": {
"logo_url": "https://yourplatform.com/logo.png",
"primary_color": "#0066CC"
}
}
Pattern 2: Full White-Label
Complete brand immersion:
{
"branding": {
"logo_url": "https://yourplatform.com/logo.png",
"primary_color": "#0066CC",
"secondary_color": "#004A99",
"font_family": "YourBrandFont, sans-serif"
},
"content": {
"welcome": {
"title": "Welcome to {{platform_name}}",
"subtitle": "Professional debt collection, made simple"
}
},
"urls": {
"privacy_policy_url": "https://yourplatform.com/privacy",
"terms_url": "https://yourplatform.com/terms"
}
}
Pattern 3: Localized Experience
Multi-language support:
{
"localization": {
"default_language": "en",
"supported_languages": ["en", "sv", "da"],
"auto_detect": true
},
"translations": {
"sv": {
"welcome.title": "Välkommen"
}
}
}
Troubleshooting
Issue: Logo not displaying
Solutions:
- Verify URL is accessible
- Check HTTPS is used
- Ensure file size under 500KB
- Verify image format (PNG/SVG/JPG)
Issue: Colors not applying
Solutions:
- Use hex format:
#0066CC - Clear cache and test again
- Check color is valid hex code
Issue: Custom CSS not working
Solutions:
- Check CSS is valid
- Verify size under 10KB
- Review browser console for errors
Next Steps
- White-Label Onboarding - Implementation guide
- Integration Examples - Code samples
- Troubleshooting - Common issues