Skip to content
SoundSyncAudio software platform

Guide

Serial Claim and Email Verification

Use the supported claim path to prove the intended serial owner before activation.

SoundSync

From serial to authorized machine

  1. Start the claim

    Use beginClaim(serial, email) in a maintained native client, or POST /api/license/v1/claim with license_key, email and instance_id. The first helper argument is the serial, not a web claim token.

  2. Verify ownership

    Use the private link for this product. The link currently expires after 48 hours. Account-login two-factor codes and email-entitlement activation codes are different workflows. Never share the link in screenshots.

  3. Resume the saved claim

    Restore checks /api/license/v1/claim-status with the saved serial, instance_id and optional claim_id. Native pending serial/email context survives a restart; a pending two-factor login challenge does not.

  4. Complete activation

    Use the returned claim_activation_token in a separate /activate request. Its current ten-minute lifetime differs from the verification-link lifetime. If it expires, read claim status again for fresh proof rather than creating a new owner.

  5. Apply the decision

    Unlock only after authorized activation for this product and machine. Keep serial claims, email-code entitlements and customer account sessions separate.

SoundSync

Serial claim outcomes and recovery

ResultWhat to do
pending_email_verificationKeep the product locked. Save claim_id with the serial, customer email and machine identity. Complete the private verification link, then Restore or poll claim status.
verified + claim_activation_tokenPOST /api/license/v1/activate for the same serial and machine with claim_activation_token. Verification alone is not activation or a device reservation.
400 VERIFICATION_RESTART_REQUIREDThe link was not sent or has expired. Submit the email and serial to /claim again; do not poll the expired claim indefinitely.
503 VERIFICATION_EMAIL_FAILED / emailSent:falseDelivery was not confirmed. Wait for service recovery and deliberately retry the claim, or contact product support. HTTP failure does not grant access.
SERIAL_OWNER_EMAIL_MISMATCH / SERIAL_OWNER_LOGIN_REQUIREDSign in to the owning customer account, verify the owner email where supported, or contact support. Do not replace the owner email or create another identity to bypass the denial.
identity_required / CUSTOMER_DETAILS_REQUIREDProvide the requested identity or use the owner-login path indicated by nextAction. HTTP 200 with ok:false is not a verified claim.
429, timeout or temporary server error while polling/finalizingMaintained native clients keep a pending claim for Restore to retry. Honor retry guidance; do not clear the cache or replace the machine identity merely to retry. No offline grant is created.
Revoked, refunded, expired or product-mismatched serialStop activation and follow the purchase/support path. These are access decisions, not an eligible connectivity failure.

SoundSync

Custom HTTP claim sequence

Start ownership verification with standard product credentials
curl --fail-with-body -sS -X POST "$SOUNDSYNC_API_BASE/api/license/v1/claim" \
  -H "x-ss-app-id: $APP_ID" \
  -H "x-ss-plugin-key: $PLUGIN_KEY" \
  -H "x-ss-plugin-secret: $PLUGIN_SECRET" \
  -H "Content-Type: application/json" \
  --data '{"license_key":"EXAMPLE-SERIAL","email":"customer@example.com","instance_id":"example-machine"}'
After verification, inspect status without putting serials in the URL
curl --fail-with-body -sS -X POST "$SOUNDSYNC_API_BASE/api/license/v1/claim-status" \
  -H "x-ss-app-id: $APP_ID" \
  -H "x-ss-plugin-key: $PLUGIN_KEY" \
  -H "x-ss-plugin-secret: $PLUGIN_SECRET" \
  -H "Content-Type: application/json" \
  --data '{"license_key":"EXAMPLE-SERIAL","instance_id":"example-machine","claim_id":"123"}'
Only after verified status: activate the same machine
curl --fail-with-body -sS -X POST "$SOUNDSYNC_API_BASE/api/license/v1/activate" \
  -H "x-ss-app-id: $APP_ID" \
  -H "x-ss-plugin-key: $PLUGIN_KEY" \
  -H "x-ss-plugin-secret: $PLUGIN_SECRET" \
  -H "Content-Type: application/json" \
  --data '{"license_key":"EXAMPLE-SERIAL","email":"customer@example.com","instance_id":"example-machine","claim_activation_token":"VERIFIED_CLAIM_ACTIVATION_TOKEN"}'

Use the matching client identity

The HTTP samples use standard product credentials. Generated JUCE/HISE Native clients use matching app/product/public-client headers instead. Developer and partner tokens cannot substitute for product licensing identity. These are illustrative requests, not live customer transcripts.

Package-specific access policy

JUCE 0.7.3 supports signed offline access for the grace period selected in product Access settings, through 90 days. A prior successful activation or validation and the matching package verification keys are required. Startup uses a verified unexpired grant or online authorization. Zero, disabled, missing or expired grace requires online authorization; confirmed denial or deactivation locks access. Regenerate and rebuild older plugins to use this release.