API Endpoints
Complete reference for all Crumb REST API endpoints. All endpoints use the base URL https://api.crumbpos.com/v1.
Orders
Manage orders across all channels—POS, online, and delivery platforms.
List Orders
GET /orders
Retrieve a list of orders with optional filters.
curl https://api.crumbpos.com/v1/orders?status=open&location_id=loc_abc123 \
-H "Authorization: Bearer sk_test_..." Query Parameters
| Parameter | Type | Description |
|---|---|---|
location_id | string | Filter by location |
status | string | Filter by status: open, fulfilled, cancelled |
created_after | datetime | Orders created after this time |
created_before | datetime | Orders created before this time |
page | integer | Page number (default: 1) |
per_page | integer | Results per page (default: 20, max: 100) |
Get Order
GET /orders/:id
Retrieve a single order by ID.
Create Order
POST /orders
curl https://api.crumbpos.com/v1/orders \
-X POST \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"location_id": "loc_abc123",
"items": [
{
"menu_item_id": "mi_xyz789",
"quantity": 2,
"modifiers": ["mod_no_onions"]
}
],
"customer": {
"name": "John Doe",
"phone": "+1234567890"
}
}' Update Order
PATCH /orders/:id
Update an existing order. Only open orders can be modified.
Payments
Process payments, issue refunds, and retrieve transaction history.
Create Payment Intent
POST /payments/intents
Create a payment intent to collect payment for an order.
curl https://api.crumbpos.com/v1/payments/intents \
-X POST \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"order_id": "ord_abc123",
"amount": 2500,
"currency": "usd"
}' Capture Payment
POST /payments/intents/:id/capture
Capture a previously authorized payment.
Refund Payment
POST /payments/:id/refunds
curl https://api.crumbpos.com/v1/payments/pay_xyz789/refunds \
-X POST \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"amount": 1000,
"reason": "customer_request"
}' Locations
Manage restaurant locations and their settings.
List Locations
GET /locations
Get Location
GET /locations/:id
Update Location
PATCH /locations/:id
Menu
Manage menu items, categories, and modifiers.
List Menu Items
GET /menu/items
curl https://api.crumbpos.com/v1/menu/items?location_id=loc_abc123 \
-H "Authorization: Bearer sk_test_..." Create Menu Item
POST /menu/items
curl https://api.crumbpos.com/v1/menu/items \
-X POST \
-H "Authorization: Bearer sk_test_..." \
-H "Content-Type: application/json" \
-d '{
"name": "Burger Deluxe",
"price": 1500,
"category_id": "cat_burgers",
"description": "Our signature burger with all the fixings",
"available": true
}' Update Menu Item
PATCH /menu/items/:id
Delete Menu Item
DELETE /menu/items/:id
List Categories
GET /menu/categories
Pagination
All list endpoints support pagination using page and per_page parameters.
{
"data": [...],
"meta": {
"total": 150,
"page": 2,
"per_page": 20,
"total_pages": 8
},
"links": {
"first": "https://api.crumbpos.com/v1/orders?page=1",
"prev": "https://api.crumbpos.com/v1/orders?page=1",
"next": "https://api.crumbpos.com/v1/orders?page=3",
"last": "https://api.crumbpos.com/v1/orders?page=8"
}
} Error Codes
| Code | Description |
|---|---|
invalid_request | The request was malformed or missing required parameters |
authentication_failed | Invalid or missing API key |
not_found | The requested resource doesn't exist |
rate_limit_exceeded | Too many requests |
internal_error | Something went wrong on our end |