Desktop Experience

Way's UI delivers its best experience on desktop.

Convert units & prep designs for print instantly... Click here
WaySorted LogoWaySorted Logo
BETA
ProductsNewChevron Down
Palettable

Palettable

Create color palettes with variations and accessibility ch...

Frames to PDF

Frames to PDF

Turn your designs into share-ready PDFs in seconds.

Unit Converter

Unit Converter

Effortlessly convert design dimensions between units.

File Importer

File Importer

Import files effortlessly with smart font handling and previews.

ResourcesChevron Down
HomeArrow RightDocuments
WayDocsWayDocs

Document Hub

Search
Getting StartedWhat is WaysortedAccount Creation and SetupQuick Integration with FigmaAccessing Waysorted in FigmaFAQs
IntroductionMain UIWayspaceWaychallengeOther Features
Searching and Browsing PluginsCreator GuidelinesRatings and Reviews
Profile and SettingsAccount Settings NavigationProfile and Settings OverviewProfile PhotoLinked Accounts and IntegrationsNotifications PreferencesBeta Features
PDF ExporterPalettableUnit ConverterImport ToolUpcoming Tools
Common ErrorsDiagnosticsContact SupportBug ReportingRequest a Feature
Privacy PolicyTerms of Service
Figma SyncBackup and RecoveryThird-Party Integrations
OverviewEarning CreditsUsing CreditsManaging Credits
Developer Focused GuideOverview and AuthenticationExamplesRate LimitsWebhooks

Webhooks

Webhooks enable asynchronous notifications for long-running tasks (e.g., conversions >10s), reducing polling overhead. Supported for CMYK, PSD, and DPI APIs; EPS is synchronous.

Setup

  • Registration: POST to /v1/webhooks/register with { "url": "https://yourapp.com/waysorted-callback", "events": ["conversion.completed", "conversion.failed"], "secret": "your-hmac-secret" }.
  • Verification: Waysorted sends a challenge POST with {"challenge": "token-123"}; echo back in response body.

Events:

  • job.started: { "job_id": "...", "type": "cmyk_convert" }
  • job.completed: { "job_id": "...", "download_url": "...", "credits_consumed": 10 }
  • job.failed: { "job_id": "...", "error": "GhostscriptTimeout" }

Security:

  • Payloads HMAC-SHA256 signed with your secret (header: X-Webhook-Signature). Verify on receipt.
  • Retries: Exponential backoff (up to 5 attempts, 1h window) on 5xx/timeout; idempotent via X-Waysorted-Idempotency-Key.
  • Unregister: DELETE /v1/webhooks/{webhook_id}.

Example Payload (Completed):

json
{
  "event": "job.completed",
  "timestamp": "2025-10-30T12:00:00Z",
  "data": {
    "job_id": "cmyk-job-uuid-456",
    "result": { "download_url": "https://...", "status": "success" }
  },
  "signature": "sha256=abc123..."
}

Handling in Node.js:

javascript
app.post('/waysorted-callback', (req, res) => {
  const signature = req.headers['x-webhook-signature'];
  const payload = JSON.stringify(req.body);
  const expected = crypto.createHmac('sha256', SECRET).update(payload).digest('hex');
  if (crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected))) {
    // Process event
    res.status(200).send('OK');
  } else {
    res.status(401).send('Invalid signature');
  }
});

Last updated: December 2025. Need help? Contact info@waysorted.com or submit feedback via Report a Bug.

On this page
No headings

Help us improve WayDocs!

undefined (Beta Tester)
Waysorted Logo

Follow Waysorted

Get exclusive updates!

Get exclusive updates !

Be the first to know about our updates. Unsubscribe anytime.

Get Started
  • Explore Tools
  • Sign in
Company
  • About Us
  • Docs
  • Contact Us
  • Security
Support
  • Report a Bug
  • Learning Hub
  • FAQs
© 2025 Waysorted
Privacy PolicyTerms of Service