Developers
Bearer key from Portal → Developers. Envelope is success / data / error. Missing scopes return insufficient_scope.
Authorization: Bearer zoe_live_…
Accept: application/json
{ "success": true, "data": [] }
GH₵ 76.70
You keep
The store already uses these routes
A creator /@handle and an invited merchant site hit the same ledger.
Simulate writes safely
X-Zoe-Simulate: true on POST /products returns a body without writing.
v1
openapi.json · embed.js · WordPress
Checkout
A creator /@handle and an invited merchant site hit the same ledger.

GH₵ 76.70
You keep
SDK
import { createZoeClient } from "@/lib/api/sdk";
const zoe = createZoeClient({
baseUrl: "https://your-zoe-host",
apiKey: process.env.ZOE_API_KEY!,
});
const req = zoe.listProducts({ limit: "20" });
await fetch(req.url, { method: req.method, headers: req.headers });<script src="https://your-zoe-host/embed.js" data-handle="ama-books" data-product="write-your-first-offer" data-label="Buy now" ></script>
API terms. License check stays public at /api/licenses/verify. Popup checkout for gateway payments stays /zoe.js. X-Zoe-Simulate: true on POST /products returns a body without writing.

Creators
Studio is free. This page is for invited merchants.
Instant MoMo
Available the same day.
3.5% + GH₵0.50
Free plan. No monthly fee.
No GH₵7
No extra withdrawal fee.

Showcase the work. Get paid on MoMo. Sell from one /@handle, send a portal invoice, run a membership, and track it all in one wallet. Free to start. One fee when a buyer pays.
Get Started