Custom domains allow you to serve digital product passports from your own domain (e.g.,Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Avelero/avelero/llms.txt
Use this file to discover all available pages before exploring further.
passport.yourbrand.com) instead of Avelero’s default domain. This reinforces brand ownership, improves trust, and enables GS1-compliant QR codes.
Why use a custom domain?
Brand consistency- Passports appear on your domain, not a third-party URL
- Maintains brand ownership throughout the customer journey
- Reinforces authenticity and trust
- GS1 Digital Link standard requires brand-owned domains
- Enable compliant QR codes for regulated industries
- Future-proof your product transparency infrastructure
- Track passport views in your own analytics tools
- Attribute traffic to your domain
- Integrate with marketing attribution systems
Only brand owners can configure custom domains. Brand members can view domain settings but cannot modify them.
Prerequisites
Before setting up a custom domain:- You must be a brand owner in Avelero
- You need access to your domain’s DNS settings
- The domain or subdomain must not be in use elsewhere
- DNS changes can take 24-48 hours to propagate
DNS setup
Step 1: Add your domain
Enter domain
Enter your desired domain or subdomain:
- Subdomain:
passport.yourbrand.com(recommended) - Apex domain:
yourbrand.com(if not used for main website)
Step 2: Configure DNS records
You need to add two DNS records to your domain:TXT record (for verification)
This proves you own the domain:Provider-specific instructions
Provider-specific instructions
Cloudflare:
- Host field: Enter
_avelero-verification.passport(full subdomain) - Proxy status: DNS only (gray cloud)
- Name:
_avelero-verification.passport.yourbrand.com.(include trailing dot) - Type: TXT
- Value: Wrap in quotes:
"avelero-verify-..."
- Host name:
_avelero-verification.passport - Type: TXT
- Data: Paste verification token
- Host:
_avelero-verification.passport - Type: TXT Record
- Value: Paste verification token
CNAME record (for routing)
This points your domain to Avelero’s infrastructure:Step 3: Wait for DNS propagation
DNS changes can take time to propagate:- Typical: 15 minutes to 2 hours
- Maximum: 24-48 hours
- Depends on: Your DNS provider’s TTL settings
Check TXT record
Check CNAME record
Domain verification
Verify ownership
Once DNS records are added:Verification process
Avelero performs the following checks:- Find authoritative nameservers for your domain using DNS-over-HTTPS
- Resolve nameserver IPs using public DNS resolvers
- Query TXT record directly from authoritative nameservers
- Compare token to verify it matches the expected value
By querying authoritative nameservers directly, Avelero avoids DNS caching issues that can cause false negatives during verification.
Verification results
Success (status: verified)- Domain ownership confirmed
- Domain added to Vercel project for SSL provisioning
- Passports are now accessible via your custom domain
- Status cannot be changed (domain is locked until removed)
- Verification token not found or doesn’t match
- DNS records may not have propagated yet
- You can retry verification at any time
- Error message indicates the specific issue
SSL certificate provisioning
Once your domain is verified, Avelero automatically provisions an SSL certificate:How SSL works
- Automatic provisioning: Vercel (Avelero’s hosting provider) requests a certificate from Let’s Encrypt
- Domain validation: Let’s Encrypt verifies domain ownership via HTTP challenge
- Certificate issuance: SSL certificate is issued and installed
- Auto-renewal: Certificates renew automatically before expiration
SSL provisioning typically takes 5-15 minutes after domain verification. During this time, your custom domain may show a certificate warning.
Checking SSL status
Verify SSL is active:Check certificate
SSL certificate verify ok in the output.
Force HTTPS
All custom domains enforce HTTPS:- HTTP requests automatically redirect to HTTPS
- HSTS headers are set for enhanced security
- Mixed content is prevented
Using your custom domain
Once verified and SSL-enabled:QR code generation
- New QR codes use your custom domain automatically
- Old QR codes with default domain continue to work
- Re-export QR codes to update them to custom domain
Passport URLs
Passports are accessible at:GS1 Digital Link format
With a custom domain, you can generate GS1-compliant URLs:GS1 Digital Link explanation
GS1 Digital Link explanation
GS1 Digital Link is a standard for encoding product identifiers in web URLs:
01: Application Identifier for GTIN (Global Trade Item Number)21: Application Identifier for serial number- Domain must be owned by the brand (hence custom domain requirement)
Troubleshooting
Verification fails with 'No TXT record found'
Verification fails with 'No TXT record found'
Cause: DNS record not propagated or configured incorrectly.Solutions:
- Wait 1-2 hours for DNS propagation
- Check TXT record host includes
_avelero-verificationprefix - For subdomains, include subdomain in host:
_avelero-verification.passport - Verify record using
dig TXT _avelero-verification.passport.yourbrand.com - Ensure DNS provider didn’t add extra domain suffix (check raw DNS settings)
Verification fails with 'Token does not match'
Verification fails with 'Token does not match'
Cause: Wrong verification token in DNS record.Solutions:
- Copy token exactly as shown in Avelero (no extra spaces)
- Check DNS provider didn’t wrap token in extra quotes
- Delete and re-add TXT record if you copied incorrectly
- Verify the exact value using:
dig TXT _avelero-verification.passport.yourbrand.com
Domain verified but SSL certificate warning appears
Domain verified but SSL certificate warning appears
Cause: SSL certificate not yet provisioned or propagated.Solutions:
- Wait 15-30 minutes for Vercel to provision certificate
- Check SSL status in Vercel dashboard (contact support for access)
- Verify CNAME record points to
cname.avelero.com - Clear browser cache and retry in incognito mode
- If issue persists after 1 hour, contact Avelero support
Domain verification times out
Domain verification times out
Cause: DNS query timed out or nameservers unreachable.Solutions:
- Check your DNS provider’s status page for outages
- Verify nameservers are responding:
dig NS yourbrand.com - Retry verification after a few minutes
- If issue persists, check firewall rules on your DNS provider
Cannot add domain - already in use
Cannot add domain - already in use
Cause: Another brand has already claimed this domain.Solutions:
- Verify you’re not trying to add a domain used by another brand in your organization
- Check if domain was previously added and not removed
- Contact Avelero support if you believe this is an error
- Use a different subdomain (e.g.,
dpp.yourbrand.cominstead ofpassport.yourbrand.com)
CNAME already exists error
CNAME already exists error
Cause: Subdomain is already pointed elsewhere.Solutions:
- Remove existing CNAME record for the subdomain
- Choose a different subdomain not in use
- If subdomain must be used, migrate existing service first
- Cannot use CNAME on apex domain if other records exist (use ALIAS instead)
Passport loads but assets don't load (mixed content)
Passport loads but assets don't load (mixed content)
Cause: Theme references HTTP assets instead of HTTPS.Solutions:
- Go to Settings → Theme → Branding
- Ensure all image URLs use
https://nothttp:// - Re-upload images if hosted on non-HTTPS servers
- Check browser console for mixed content warnings
Removing a custom domain
To remove your custom domain:After removal
- Passports revert to default Avelero domain
- Existing QR codes with custom domain will return 404 errors
- You can re-add the same domain later (requires re-verification)
- DNS records can be safely deleted from your DNS provider
Best practices
Use subdomains
Use
passport.yourbrand.com instead of apex domain. Easier to manage and doesn’t conflict with main website.Set low TTL initially
Use TTL of 300 seconds (5 minutes) for DNS records during setup. Increase later for better caching.
Document DNS changes
Keep a record of DNS changes and verification tokens for your team’s reference.
Test before QR export
Verify custom domain works correctly before exporting QR codes to avoid reprinting.
Technical reference
DNS verification implementation
Avelero’s verification system queries DNS directly:Verification flow
Database schema
Custom domains are stored with the following structure:Unique domain record identifier
Brand that owns this domain (foreign key)
Domain name (normalized: lowercase, no trailing dot)
Verification status:
pending, verified, or failedToken that must appear in DNS TXT record
When domain was successfully verified (null if pending/failed)
Timestamp of most recent verification attempt
Error message from last failed verification
API endpoints
Custom domains are managed via tRPC:brand.customDomains.get- Get domain configurationbrand.customDomains.add- Add new domain (generates token)brand.customDomains.verify- Trigger DNS verificationbrand.customDomains.remove- Remove domain
Security considerations
Token generation:- 256-bit cryptographically secure random token
- Format:
avelero-verify-{64-char-hex} - Prevents domain hijacking via token guessing
- Queries authoritative nameservers only
- 10-second timeout prevents DOS via slow DNS
- Validation uses constant-time string comparison
- All traffic forced to HTTPS via 301 redirect
- HSTS headers prevent downgrade attacks
- Certificate auto-renewal prevents expiration
Next steps
QR code export
Export QR codes with your custom domain for product labeling.
Theme customization
Customize passport appearance to match your brand.