JamiDev
API Reference

Orders

List your organization's orders.

List orders

GET /api/jamidev/orders?page=1&limit=20&status=paid
Authorization: Bearer jamidev_live_…

With the SDK:

const { items, total } = await jami.listOrders({ status: 'paid', limit: 20 });
Query paramNotes
pageDefault 1
limitDefault 20, max 100
statusOptional filter: pending | paid | failed

Response

{
	"items": [
		{
			"_id": "665f1c2ab8d3a2f4e1a9c111",
			"checkoutSessionId": "665f1c2ab8d3a2f4e1a9c000",
			"productId": { "_id": "665f…", "title": "Pro License" },
			"customerId": { "_id": "665f…", "email": "buyer@example.com", "name": "Abebe B." },
			"amount": 10000,
			"currency": "ETB",
			"status": "paid",
			"environment": "production",
			"metadata": { "campaign": "launch" },
			"providerRef": "ARIFPAY-SESSION-REF",
			"paidAt": "2026-07-11T09:29:58.000Z",
			"createdAt": "2026-07-11T09:29:58.000Z"
		}
	],
	"total": 42,
	"page": 1,
	"limit": 20
}
  • amount is what the buyer paid — your listed price, in ETB minor units.
  • environment distinguishes sandbox test orders from live ones.
  • metadata is the snapshot taken at checkout — product metadata merged with any checkout-link metadata.

Orders are the durable record: exactly one exists per completed checkout session, and replayed payment notifications can never create duplicates.

On this page