Build on Esplanda

POS partner program: keep 100% of your first $1M

Build on a public REST API over each store's register, purchasing, pricing and reporting, and keep 85% after your first $1,000,000.

No listing fee, no annual reset and no paid tier for getting featured. The sandbox and API access are free.

In short

The Esplanda POS partner program pays developers 100% of their first $1,000,000 in lifetime marketplace revenue, then 85%. The threshold is cumulative and per developer, not per app and not per year, and there is no listing fee.

You build against a public REST API over the live catalog behind each merchant's register, purchasing, pricing and reporting, with OAuth 2.0 scoped grants, signed webhooks, idempotent writes and a free sandbox.

  • REST API
  • OAuth 2.0 scopes
  • Webhooks
  • Free sandbox
  • Idempotent writes
  • Visible rate limits

Revenue share

Zero until your app earns a million dollars

Merchants pay you. Esplanda takes 15%, and only above the line, so a slow quarter never drops you back into a fee band you already cleared.

The API

The live catalog, not a nightly export

The merchant's register, purchase orders, price rules and margin reports all read one set of records, and so does your app. A bottle sold at 7pm shows up against the same row purchasing forecasts on.

  • Public REST API

    Catalog, inventory, orders, customers, suppliers and purchase orders. JSON over HTTPS, cursor pagination, predictable error shapes.

  • OAuth 2.0 with scoped grants

    Authorization code flow. Declare your scopes at registration; tokens are issued per merchant and per location, so one store can be granted without the chain.

  • Webhooks

    Signed deliveries for sales, inventory movements, catalog changes and purchase order state, with retry and backoff.

  • A free sandbox

    A store seeded with products, suppliers, price rules and transaction history. Drive the full OAuth flow and fire test events before any merchant is involved.

  • Idempotent writes

    Send an idempotency key on writes. A retried request returns the original result instead of writing a second purchase order. Build the key from something stable in your own records, never a timestamp.

  • Rate limits you can see

    Standard rate-limit headers on every response, published per endpoint, so you back off before you are throttled.

Scopes and consent

Every scope becomes a sentence an owner reads

The consent screen renders each scope you declare in plain language. Owners approve the set or walk away, so declare what you call, and nothing else.

The same consent screen merchants see on the POS apps marketplace page.
You declareThe owner reads
catalog:readRead your product list
orders:readSee your sales, item by item
purchase_orders:writeCreate purchase orders to your suppliers
customers:readRead your customer names and email addresses
  • Scope tightly from the start. Each extra scope is one more sentence a store owner accepts at ten at night. Asking for customers:read when you only reprice bottles costs installs, and it is the most common reason an app is sent back at review.
  • One declared set. Merchants accept your set or decline it, so build the app to do its whole job on exactly the scopes it declares.
  • Uninstall is immediate. Tokens are revoked at that moment and calls return an authorization error. Handle the revocation event, stop your jobs, and keep only what your own terms allow. The merchant data commitments are on why Esplanda is safe to trust.

Building an app

From sandbox to paid, in seven steps

The first four need no merchant at all: you can reach a working OAuth round trip on seeded store data in an afternoon.

  1. Create a developer account and a sandbox store

    Seeded with products, suppliers, price rules and transaction history.

  2. Register the app and declare your scopes

    Each one becomes a plain-language sentence on the merchant consent screen.

  3. Implement the OAuth 2.0 authorization code flow

    Exchange the code for access and refresh tokens; store them per merchant and per location.

  4. Build against the REST API with idempotent writes

    Catalog, inventory, orders and purchase orders, with an idempotency key on every write.

  5. Subscribe to webhooks rather than polling

    Verify the signature, queue the work, return fast, and keep handlers idempotent because deliveries retry.

  6. Submit for review

    A plain-language listing, your pricing and a test account. Review checks that every declared scope is used and that uninstall is handled.

  7. Publish and get paid

    100% of your first $1,000,000 in lifetime marketplace revenue, 85% after that.

Built for

Apps that need one catalog

Independent retailers on Esplanda run one catalog across register, purchasing and pricing, so an app reads real depletion instead of a nightly export.

Built for

  • Apps that act on stock and margin: reordering, repricing, delivery routing, labels and loyalty.
  • Private apps a store hires a developer to build, kept off the public list.
  • Developers who want the whole store through one API, whatever register the merchant keeps.

How review works

  • People review every app, in days, checking each declared scope against the code.
  • Sent back most often for scopes the app never calls, broken uninstall handling, or a listing that describes something the app does not do.
  • That check is what makes the plain-language consent screen mean something to an owner.

Questions

Questions developers ask

What does the Esplanda POS partner program take from my app revenue?

Nothing on your first $1,000,000 of lifetime marketplace revenue, then 15%. The threshold is per developer and cumulative, not annual, so it never resets and you never drop back into a fee band after a slow year.

How does authentication work?

OAuth 2.0 authorization code flow with scoped grants. You declare the scopes your app needs at registration, the merchant sees them in plain language on the consent screen, and you exchange the authorization code for an access token and a refresh token. Tokens are scoped per merchant and per location, so a merchant can grant one store without granting the chain.

Can I build and test without a live merchant?

Yes. The sandbox gives you a store seeded with products, suppliers, price rules and transaction history, and it is free. You can drive the full OAuth flow, fire test webhooks and write to the catalog without touching anyone's real inventory.

What happens to my tokens when a merchant uninstalls?

They are revoked immediately, and later API calls return an authorization error. That is by design: a merchant who uninstalls has withdrawn consent at that moment. Handle the revocation event and stop your background jobs rather than retrying into a wall.

Are there webhooks, or do I have to poll?

There are webhooks, and you should use them. Subscribe to the events you care about, such as sales, inventory movements, catalog changes and purchase order state, verify the signature on every delivery, and return quickly rather than doing the work inline. Deliveries retry with backoff, so your handler needs to be idempotent.

What are the rate limits?

Limits are published per endpoint in the developer documentation, and every response carries standard rate-limit headers so you can back off before you are throttled. Read endpoints are more generous than writes. If you are polling hard enough to hit a limit, the answer is almost always a webhook subscription rather than a limit increase.

What happens to my app when a merchant's store goes offline?

The register keeps ringing sales locally and syncs when the connection returns, and your app catches up then. From your side that looks like a quiet period followed by a burst of webhook deliveries with older timestamps, so design for events that arrive late and out of order.

How long does app review take, and what gets sent back?

Review is done by people, so it takes days rather than minutes. The most common reason an app is sent back is declaring scopes it never calls, because every scope you declare becomes a sentence a store owner has to accept. Broken uninstall handling and listings that describe something the app does not do are the other two.

Build for stores that run one catalog

Start free today, or book a demo and we'll set you up with a sandbox store, the REST reference and the scope list.

The sandbox and API access are free. The revenue share is 0% until you have earned your first million.

Powered by
esplanda