Skip to content
SoundSyncAudio software platform

Guide

Test Connection

Verify that productId, appId, pluginKey, and pluginSecret belong together before activation testing.

Live Moonwave FX products workspace showing the SoundSync product management surface for audio software releases.
Live Moonwave FX analytics workspace showing revenue, product, customer, activation, and download reporting.
Live Moonwave FX customers workspace showing customer management and activity for the developer account.

SoundSync

Endpoint contract

This endpoint uses JSON body credential fields. It does not use product credential headers.

POST /api/plugin-connections/verify

Verify product, App ID, plugin key, and plugin secret belong together before activation testing.

Auth
JSON body credential check. Headers are not used for this endpoint.
Scope
Product, app, credential, environment, and machine scoped.
Request fields
  • productId
  • appId
  • pluginKey
  • pluginSecret
  • pluginVersion optional
  • environment optional
Returns
ok/connected, productId, credentialId, pluginVersion, environment, lastSeenAt.
Side effects
Updates credential last-used state, upserts plugin connection status, and records a plugin connection event.

SoundSync

Copyable examples

Use canonical field names in new clients.

cURL
curl -sS -X POST "$SOUNDSYNC_API_BASE/api/plugin-connections/verify" \
  -H "Content-Type: application/json" \
  -d '{
    "productId": "prod_demo_piano",
    "appId": "ss_prod_demoapp123",
    "pluginKey": "ss_pk_demokey123",
    "pluginSecret": "ss_ps_demosecret123",
    "pluginVersion": "1.0.0",
    "environment": "test"
  }'
JUCE SoundSyncApiClient.cpp
SoundSync::CredentialConfig config;
config.apiBaseUrl = "https://api.soundsync.example";
config.productId = "prod_demo_piano";
config.appId = "ss_prod_demoapp123";
config.pluginKey = "ss_pk_demokey123";
config.pluginSecret = "ss_ps_demosecret123";
config.environment = "test";

SoundSync::ApiClient client(config);
client.verifyConnection("1.0.0", [](SoundSync::ApiResult result)
{
    // Runs on the JUCE message thread in the example client.
    // Do not unlock audio here; Test Connection only verifies product credentials.
    DBG(result.ok ? "SoundSync Test Connection passed" : result.code);
});

SoundSync

Stable failure codes

A failed Test Connection means fix credentials or product context before testing activation.

CodeHTTPMeaningClient action
MISSING_CREDENTIALS400Missing productId, appId, pluginKey, or pluginSecret.Fill all four body fields.
INVALID_PRODUCT400Product identifier is invalid.Use Product ID from the product setup page.
INVALID_APP_ID401App ID was not found.Use ss_prod_* from current product credential.
INVALID_PLUGIN_KEY401Plugin key mismatch.Use the current ss_pk_* value.
INVALID_PLUGIN_SECRET401Plugin secret mismatch.Use the current ss_ps_* value.
REVOKED_CREDENTIAL403Credential has been revoked.Generate/rotate credential and regenerate package.
INACTIVE_CREDENTIAL403Credential is inactive.Enable or replace credential.
PRODUCT_MISMATCH403Credential belongs to another product.Do not mix product config files.
PRODUCT_NOT_FOUND404Product record was not found.Check product setup.

SoundSync

Do not confuse Test Connection with

These calls answer different questions.

CallWhat it verifies
/api/license/pingGeneral licensing service reachability only.
/api/plugin-connections/verifyProduct credential relationship and connection status.
/api/license/v1/activateCustomer/product/machine activation.
/api/license/v1/validateCached activation is still allowed.
/api/license/v1/customer-login/activateCustomer login entitlement plus machine activation.