Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/AndrewwCO/Pana-Baker/llms.txt

Use this file to discover all available pages before exploring further.

Orders represent customer purchase requests for a bakery. The API lets bakers retrieve orders by recency and status, move each order through a defined status workflow, verify physical pickup via QR code, and communicate wait times back to customers. The orders list refreshes automatically in the app every 30 seconds.

Order status workflow

Orders progress through a linear status chain. Bakers advance an order by calling PATCH /orders/:id/status with the next status value.
StatusLabelDescription
PENDINGPendienteNew order awaiting baker confirmation
CONFIRMEDConfirmadoBaker accepted the order
BAKINGHorneandoOrder is being prepared
READYListoOrder is ready for customer pickup
COMPLETEDCompletadoOrder was picked up and closed
CANCELLEDCanceladoOrder was cancelled; stock is restored
The normal progression is PENDING → CONFIRMED → BAKING → READY. A baker can also move any non-terminal order directly to CANCELLED.

GET /orders/bakery/active

Returns all orders in non-terminal statuses (PENDING, CONFIRMED, BAKING, READY) for the authenticated bakery.
curl "https://your-backend.com/api/v1/orders/bakery/active" \
  -H "Authorization: Bearer <token>" \
  -H "X-User-Name: María"

Response

Returns an array of order objects.
{
  "data": [
    {
      "id": "ord_xyz789",
      "userName": "Carlos",
      "status": "CONFIRMED",
      "items": [
        { "name": "Pan de masa madre", "emoji": "🍞", "qty": 2, "price": 12000 }
      ],
      "total": 24000,
      "discountAmount": 0,
      "pickupTime": "08:30",
      "paymentMethod": "CREDIT_CARD",
      "paymentStatus": "APPROVED",
      "notes": "Sin sal por favor",
      "qrCode": "QR-ord_xyz789-abc",
      "estimatedReadyAt": null,
      "createdAt": "2026-05-20T07:45:00Z"
    }
  ]
}
id
string
Unique order identifier.
userName
string
Display name of the customer who placed the order.
status
string
Current order status. See the status table above.
items
array
Line items in the order.
total
number
Order total in COP after discounts.
discountAmount
number
Total discount applied in COP.
pickupTime
string
Requested pickup time in HH:mm format.
paymentMethod
string
Payment method used by the customer (e.g. CREDIT_CARD).
paymentStatus
string
Payment status. APPROVED means the customer has paid.
notes
string
Optional special instructions from the customer.
qrCode
string
QR code string used to verify physical pickup.
estimatedReadyAt
string
ISO 8601 timestamp of when the order is estimated to be ready, or null.
createdAt
string
ISO 8601 timestamp of when the order was placed.

GET /orders/bakery/pending

Returns only orders in PENDING status for the authenticated bakery. Use this endpoint to surface orders that need immediate confirmation.
curl "https://your-backend.com/api/v1/orders/bakery/pending" \
  -H "Authorization: Bearer <token>" \
  -H "X-User-Name: María"

Response

Returns an array of order objects. Structure is identical to GET /orders/bakery/active.

GET /orders/bakery

Returns all orders (all statuses, including completed and cancelled) for the authenticated bakery, paginated.
curl "https://your-backend.com/api/v1/orders/bakery?page=1&pageSize=100" \
  -H "Authorization: Bearer <token>" \
  -H "X-User-Name: María"

Query parameters

page
number
Page number, 1-indexed. Defaults to 1.
pageSize
number
Number of orders per page. The app uses 100.

Response

Returns an array of order objects. Structure is identical to GET /orders/bakery/active.

PATCH /orders/:id/status

Advances or changes an order’s status. Use this to move orders through the workflow or to cancel an order.

Path parameters

id
string
required
The unique order ID.

Request body

{
  "status": "CONFIRMED"
}
status
string
required
Target status. Must be one of PENDING, CONFIRMED, BAKING, READY, COMPLETED, or CANCELLED.

Response

Returns the updated order object with the new status value applied.

POST /orders/verify-qr

Verifies a QR code string scanned from a customer’s phone at the time of pickup. On success, marks the associated order as COMPLETED.

Request body

{
  "qrCode": "QR-ord_xyz789-abc"
}
qrCode
string
required
The raw QR code string scanned from the customer’s device.

Response

Returns the completed order object.
{
  "data": {
    "id": "ord_xyz789",
    "status": "COMPLETED",
    ...
  }
}

PATCH /orders/:id/estimated-ready

Sets or updates the estimated time at which an order will be ready for pickup. The timestamp is communicated to the customer.

Path parameters

id
string
required
The unique order ID.

Request body

{
  "estimatedReadyAt": "2026-05-20T09:15:00Z"
}
estimatedReadyAt
string
required
ISO 8601 timestamp indicating when the order will be ready.

Response

Returns the updated order object with estimatedReadyAt populated.

Build docs developers (and LLMs) love