developers
REST + webhooks. JSON in, JSON out.
Two API surfaces share the same auth and conventions: an inventory and order API for ERPs and partners, and a B2B-specific API for companies, contract pricing, and quote requests. Both versioned (v1), paginated and rate-limited.
order.created · order.paid · order.shipped · order.delivered · order.cancelled · order.refunded · company.applied · company.approved · company.updated · quote.requested · quote.responded · quote.converted · customer.created · customer.updated · product.created · product.updated · product.stock_changed
# Place a B2B order (wire / Net-30)curl https://ol-y.com/api/v1/public/orders \ -H "X-API-Key: $OLY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "purchase_order_number": "PO-2026-0418", "payment_method": "wire", "items": [ { "ean": "7350012340001", "qty": 24 }, { "ean": "7350012340018", "qty": 12 } ], "shipping": { "company": "Acme Wholesale GmbH", "street": "Hauptstrasse 12", "postal_code": "10115", "city": "Berlin", "country": "DE" } }'// Pull live inventory every 5 minutesimport { Velicoo } from "velicoo-sdk";const client = new Velicoo({ apiKey: process.env.VELICOO_API_KEY });setInterval(async () => { const stock = await client.inventory.list({ updatedSince: lastSync, limit: 500, }); await syncToErp(stock);}, 5 * 60 * 1000);b2b api
Wholesale-specific surfaces, called out explicitly.
Companies, buyers and quote requests are first-class resources — not customer-table workarounds.
| Method | Path | Required scope |
|---|---|---|
| GET | /api/v1/public/inventory | read:inventory |
| GET | /api/v1/public/inventory/{ean} | read:inventory |
| GET | /api/v1/public/products | read:inventory |
| GET | /api/v1/public/companies | read:companies |
| POST | /api/v1/public/companies/{id}/quotes | write:quotes |
| POST | /api/v1/public/orders | write:orders |
| GET | /api/v1/public/orders | read:orders |
| GET | /api/v1/public/orders/{id} | read:orders |
| GET | /api/v1/public/orders/{id}/invoice.pdf | read:orders |
webhooks
Subscribe once. Reliable retries.
HMAC-SHA256 signed payloads, replay protection via timestamp header, exponential backoff retries up to 24 hours.
- order.created
- order.paid
- order.shipped
- order.delivered
- order.cancelled
- order.refunded
- company.applied
- company.approved
- company.updated
- quote.requested
- quote.responded
- quote.converted
- customer.created
- customer.updated
- product.created
- product.updated
- product.stock_changed
sdks
Hit REST directly. Or use a thin SDK.
Node.js / TypeScript
availablenpm install velicoo-sdkGo
availableImport path on signupPython
on requestAvailable when a customer commits