Skip to Content
Orders

Orders

Read your order history and record new sales - for example, to push point-of-sale or third-party orders into Cloove.

All endpoints share the prefix /v1/orders and authenticate with an API key.

EndpointScope
GET /v1/ordersorders:read
GET /v1/orders/:idorders:read
POST /v1/ordersorders:write

List orders

GET /v1/orders

Query parameters

ParameterTypeDescription
statusstringComma-separated statuses to include
customer_iduuidFilter by customer
store_iduuidFilter by store
start_dateISO dateOnly orders on/after this date
end_dateISO dateOnly orders on/before this date
pagenumberPage number (default 1)
limitnumberItems per page (default 50)
{ "message": "Orders retrieved", "data": [ { "id": "o1a2b3c4-...", "shortCode": "ORD-1234", "status": "COMPLETED", "totalAmount": 5000, "amountPaid": 5000, "remainingAmount": 0, "paymentMethod": "CASH", "customer": { "id": "ct1a2b3c-...", "name": "Ada Lovelace" }, "date": "2026-01-15T10:00:00.000Z" } ], "meta": { "total": 1, "page": 1, "perPage": 50, "totalPages": 1, "hasMore": false } }

Get an order

GET /v1/orders/:id

Returns a single order with its line items. Responds 404 not_found if the ID doesn’t belong to your business.

Record an order

POST /v1/orders

Records a sale. Always send an Idempotency-Key header - recording is a money-affecting write, and the key guarantees a retry won’t double-count the sale.

Body

FieldTypeRequiredDescription
itemsarrayYesOne or more line items (see below)
payment_methodstringNoe.g. CASH, TRANSFER (defaults to CASH)
amount_paidnumberNoAmount collected; less than the total creates a credit sale
discount_amountnumberNoDiscount applied to the order
customer_iduuidNoLink to an existing contact
customer_namestringNoName when no customer_id is provided
store_iduuidNoStore the sale belongs to
channelstringNoSales channel label
notesstringNoFree-text note

Line item

FieldTypeRequiredDescription
product_namestringYesProduct name
quantitynumberYesQuantity sold
product_iduuidNoLink to a catalog product
variant_iduuidNoSpecific variant
custom_pricenumberNoOverride the unit price
{ "items": [ { "product_id": "p1a2b3c4-...", "product_name": "Jollof Rice", "quantity": 2 } ], "payment_method": "CASH", "amount_paid": 5000, "customer_id": "ct1a2b3c-...", "channel": "api" }

Response 201 Created - the recorded order.

Recording an order emits an order.created webhook, so downstream systems can react in real time.

Last updated on