JamiDev

Quickstart

From zero to your first test sale in five minutes.

1. Enable Developer Mode

JamiDev lives behind Developer Mode, which requires a KYC-verified Jami account. Go to Settings → Developer Mode and flip the switch — if it's disabled, complete KYC verification first.

A "JamiDev" entry appears in the sidebar under Monetization.

2. Create a sandbox organization

Open JamiDev and use the organization switcher in the header → New organization…. New organizations start in sandbox: checkouts are fully simulated and no real money moves, so you can test the entire flow safely. (Your default organization is production.)

3. Create and publish a product

Store → Products → New product, then walk the wizard:

  1. Basics — title, description, images.
  2. Pricing — pick fixed, pwyw or free. The pricing model is locked after creation (only the amount of a fixed product can change later).
  3. Extras — metadata key/values, checkout fields, benefits (e.g. a license key).

Hit Publish. Prices are entered in ETB and buyers pay exactly that price — taxes (30% government + 5% Jami) are deducted later, when you withdraw your earnings.

4. Share the checkout

On the product page, copy the checkout link (an opaque /jamidev/p_… URL), or create a Checkout Link to sell several products from one URL or embed checkout on your own site.

5. Make a test purchase

Open the checkout link. Because the org is sandbox you'll see an amber Test mode banner. Use the magic phone number:

  • 251900000001 → instant success
  • 251900000002 → instant failure
  • any other number → an interactive gateway simulator with Approve / Fail buttons

A successful test creates a real order: benefits are granted, webhooks fire (with livemode: false), the dashboard Overview updates, and you—as the org owner—get a [TEST]-prefixed sale email. Buyer receipts are suppressed in sandbox.

6. Integrate from code (the SDK)

Everything above also works from your own backend through the official jami-sdk — zero dependencies, Node 18+/edge/browser:

npm install jami-sdk
import { Jami } from 'jami-sdk';

const jami = new Jami({ token: process.env.JAMI_TOKEN! }); // jamidev_test_… for sandbox

const checkout = await jami.createCheckout({
	productId: '<your product id>',
	customer: { email: 'buyer@example.com', phone: '251900000001' }, // magic success number
	gateway: 'telebirr',
});

if (!('orderId' in checkout)) {
	const status = await jami.waitForCheckout(checkout.sessionId);
	console.log(status.status, status.orderId); // 'completed', '665f…'
}

See the SDK page for orders, webhook verification, and error handling.

7. Go live

Settings → Environment → Switch to production. New checkouts now charge real money through ArifPay via Telebirr, M-Pesa or CBE Birr. Remember to:

  • register your production webhook endpoints — subscriptions are per-organization;
  • issue fresh jamidev_live_ API tokens — test tokens stop working when the environment changes.

On this page