Providers

Providers let your app plug directly into Stok.ly's fulfilment and finance workflows, for example, generating a shipping label through a carrier your app integrates with, syncing orders to an accounting platform, or connecting a custom sales channel.

Unlike extension points, which render your app's UI inside a Stok.ly page, providers work the other way around: Stok.ly calls out to your app to perform an action as part of a normal workflow, such as when a goods out note is dispatched or an order is invoiced.

🚧

Coming in a future phase

Providers aren't available yet — they're part of the next phase of platform integrations. This page is an early look at what's planned and will be filled in as each provider contract is finalized.

Provider types

Three categories of provider are planned:

TypeDescription
Shipping providersGenerate shipping labels and rates through a custom carrier.
Channel providersConnect a custom sales channel (e.g. a marketplace or storefront) to Stok.ly.
Accounting providersSync invoices, and other financial data to a custom accounting platform.

Declaring a provider in your manifest

Providers your app implements will need to be declared in your app's manifest, alongside a URI Stok.ly can call to invoke them. That URI is subject to the same validation as your webhook and OAuth redirect URIs, HTTPS only, no localhost or private/internal addresses, no loopback addresses, no internal hostnames, and no credentials embedded in the URI.

What's consistent across every provider

A few things apply regardless of which provider type you're implementing

Versioning. Provider contracts are versioned, so Stok.ly can evolve them over time without breaking apps already relying on an existing version.

Timeouts. Calls to your provider are time-limited. If your app doesn't respond in time, Stok.ly treats the call as failed and handles it accordingly rather than blocking the workflow indefinitely.

Error handling. If your provider fails, the person using Stok.ly needs to see something useful — including which app's provider failed — rather than a generic error with no attribution.

Request signing. Every request Stok.ly sends to your provider is signed, so your app can verify it genuinely came from Stok.ly rather than a third party impersonating the platform.



Did this page help you?