For developers building AI agents that need to transact, OrderCore adds a working product catalog, orders, and retry-safe checkout to your Claude or GPT agent in 5 minutes — so you skip building and securing a commerce backend (Stripe wiring, order DB, idempotency keys) yourself.
You're wiring tools into a Claude or GPT agent and one of them needs to actually place an order or take payment.
You're building an assistant that buys, reorders, or checks out on a user's behalf and you don't want to own a payments stack.
You need a real order in a database with idempotency and webhooks today, not a two-week backend project first.
These are live tools your agent calls (REST or MCP). The demo runs the core two and retries to prove idempotency.
Save this as run.mjs and run node run.mjs. No key, no signup — it runs in mock mode offline. Set ORDERCORE_API_KEY to hit the real API.
// run.mjs — the exact sequence an OrderCore agent performs. Node 18+. const BASE = (process.env.ORDERCORE_BASE_URL || 'https://api.ordercore.ai').replace(/\/$/, ''); const KEY = (process.env.ORDERCORE_API_KEY || '').trim(), LIVE = KEY.length > 0; const SKU = process.env.ORDERCORE_SKU_ID || '00000000-0000-0000-0000-000000000001'; const mem = new Map(); async function call(path, body, token) { if (!LIVE) return mock(path, body); // offline mock keeps the aha visible const h = { 'Content-Type': 'application/json' }; token ? (h['X-Checkout-Token'] = token) : (h['X-API-Key'] = KEY); const r = await fetch(BASE + path, { method: 'POST', headers: h, body: JSON.stringify(body) }); if (!r.ok) throw new Error(path + ' → ' + r.status); return r.json(); } function mock(path, body) { if (path.endsWith('/sessions')) { mem.set('s1', { order: null }); return { session_id: 's1' }; } const s = mem.get('s1'); if (!s.order) s.order = 'ord_9F3K21'; // created once, reused on retry return { order: { id: s.order, idempotent: true } }; } const token = LIVE ? (await call('/v1/account/checkout-access-tokens', {})).token : null; const { session_id } = await call('/ucp/public/checkout/sessions', { line_items: [{ item: { id: SKU }, quantity: 2 }], currency: 'USD' }, token); const pay = { session_id, payment_data: { handler_id: 'card', payment_intent_id: 'pi_demo' } }; const a = await call(`/ucp/public/checkout/sessions/${session_id}/complete`, pay, token); const b = await call(`/ucp/public/checkout/sessions/${session_id}/complete`, pay, token); // retry same session console.log(a.order.id === b.order.id ? `✅ same order on retry: ${a.order.id}` : '⚠️ duplicate!');
Have the repo? The same script is in examples/agent-commerce-demo/ with a mock and live mode.
| If you reach for… | You still have to… | With OrderCore |
|---|---|---|
| Stripe alone | Build the catalog, order records, idempotency, and fulfillment state yourself | Catalog + orders + idempotency included |
| Shopify | Run a storefront and theme you don't need; agent access is a bolt-on | Headless, API-first, no storefront required |
| Medusa / commercetools | Host, model, and operate a full commerce platform before your agent can transact | Four agent tools + MCP, live in minutes |
| Roll your own | Own PaymentIntents, an order DB, dedup on retry, signed webhooks, and their edge cases | All of it, retry-safe by default |
The demo above is free and offline forever. When you want live keys, start a 3-day trial — no charge during the trial period — then $49/month or $490/year. Cancel yourself from the Stripe billing portal any time.
/direct-ai/tooling — schemas for OpenAI, Claude, Gemini, DeepSeek, Grok
By Cloudpeakify s.r.o. — public legal pages and support before you commit.