API Documentation
Welcome to the PosDo API documentation. This REST API allows you to integrate your applications with PosDo's restaurant management platform.
Base URL
All API requests should be made to the following base URL:
https://pos.do/api/v1
Authentication
The PosDo API uses Bearer token authentication. Include your API key in the Authorization header of every request:
Authorization: Bearer YOUR_API_KEY
Replace YOUR_API_KEY with your actual API key. You can obtain your API key from your account dashboard.
Orders
The Orders API allows you to create, retrieve, update, and manage restaurant orders programmatically.
/orders
Retrieve a paginated list of orders with optional filtering.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
status |
string | Filter by order status: pending, completed, cancelled |
limit |
integer | Number of results per page (default: 20, max: 100) |
page |
integer | Page number for pagination (default: 1) |
/orders
Create a new order with customer details and line items.
Request Body
{
"customer_id": "123",
"items": [
{
"menu_item_id": "456",
"quantity": 2,
"notes": "No onions"
}
],
"delivery_address": "123 Main St",
"payment_method": "card"
}
/orders/{id}
Retrieve details of a specific order by its unique identifier.
/orders/{id}/status
Update the status of an existing order.
Request Body
{
"status": "completed"
}
Reservations
Handle table reservations and booking management through the Reservations API.
/reservations
Get a list of restaurant reservations with optional filters.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
date |
date | Filter by reservation date (format: YYYY-MM-DD) |
status |
string | Filter by status: confirmed, pending, cancelled |
/reservations
Create a new table reservation for your restaurant.
Request Body
{
"customer_name": "John Doe",
"customer_email": "john@example.com",
"customer_phone": "+1234567890",
"date": "2024-12-25",
"time": "19:30",
"party_size": 4,
"special_requests": "Window table preferred"
}
Response Codes
The PosDo API uses standard HTTP response codes to indicate the success or failure of requests.
| Code | Status | Description |
|---|---|---|
200 |
Success | Request completed successfully |
201 |
Created | Resource created successfully |
400 |
Error | Bad Request - Invalid parameters or malformed request |
401 |
Error | Unauthorized - Authentication credentials missing or invalid |
404 |
Error | Not Found - The requested resource doesn't exist |
429 |
Error | Too Many Requests - Rate limit exceeded |
500 |
Error | Internal Server Error - Something went wrong on our end |
Rate Limiting
API requests are limited to 1000 requests per hour per API key. Rate limit information is included in the response headers of every request.
X-RateLimit-Limit: 1000
X-RateLimit-Remaining: 999
X-RateLimit-Reset: 1640995200
- Cache responses when possible to reduce API calls
- Implement exponential backoff for retries
- Monitor rate limit headers in your application
- Contact support if you need higher limits for production use
Error Handling
When an error occurs, the API returns a JSON response with error details:
{
"error": {
"code": "invalid_request",
"message": "Missing required parameter: customer_id",
"param": "customer_id"
}
}
Support
Need help with the PosDo API? Our developer support team is here to assist you.