Pre-Integration
✅ Obtain Credentials
✅ Obtain Credentials
✅ Setup Development Environment
✅ Setup Development Environment
- HTTPS-enabled server
- Node.js/Python/PHP environment
- Database for local order storage
- Logging system
- Error tracking (optional but recommended)
✅ Review Documentation
✅ Review Documentation
- Read Quick Start
- Understand Authentication
- Study Order Lifecycle
- Review all API endpoints
Authentication Implementation
Implement Login
- Login endpoint implemented
- Credentials stored securely
- Access token received successfully
Restaurant Management
✅ Implement Restaurant Endpoints
✅ Implement Restaurant Endpoints
- GET
/restaurants/get- Fetch restaurant list - GET
/restaurants/status/get/{rest_id}- Check status - PUT
/restaurants/status/open/{rest_id}- Open restaurant - PUT
/restaurants/status/close/{rest_id}- Close restaurant
✅ UI Integration
✅ UI Integration
- Display restaurant status in POS
- Open/close buttons functional
- Status syncs with API
- Visual indicators (green=open, red=closed)
Menu Management
✅ Implement Food Endpoints
✅ Implement Food Endpoints
- GET
/foods/get-foods- Fetch menu (with rate limit handling) - PUT
/foods/status-active/{food_id}- Activate item - PUT
/foods/status-passive/{food_id}- Deactivate item
✅ Menu Caching
✅ Menu Caching
✅ Modifier Handling
✅ Modifier Handling
- Parse
add_substractmodifier groups - Display modifiers in POS
- Calculate prices including modifiers
- Match modifiers in incoming orders
Order Management
✅ Order Polling
✅ Order Polling
- GET
/orders/get-currentimplemented - Polling interval: 30+ seconds
- Rate limit (429) handled
- Polls continuously while POS is running
✅ Order Acknowledgment
✅ Order Acknowledgment
- PUT
/orders/success/{payment_key}implemented - Called immediately after importing order
- Uses
payment_key(UUID), notid(integer) - Prevents duplicate orders
✅ Order Acceptance
✅ Order Acceptance
- PUT
/orders/accept/{payment_key}implemented - Includes
preparing_timeparameter - Staff can set preparation time
- Updates order status to CONFIRMED
✅ Order Dispatch
✅ Order Dispatch
- PUT
/orders/ontheway/{payment_key}implemented - Only for restaurant couriers
- Checks
courier_typebefore calling - Updates order status to IN_DELIVERY
✅ Order Completion
✅ Order Completion
- PUT
/orders/complete/{payment_key}implemented - Confirms delivery and payment
- Works for all payment types
- Updates order status to COMPLETE_WITH_PAYMENT
✅ Order Cancellation
✅ Order Cancellation
- GET
/orders/cancel-reasonsimplemented - PUT
/orders/cancel/{payment_key}implemented - Staff can select cancellation reason
- Includes
reason_id(1-8) - Updates order status to CANCELED
✅ Order Variables
✅ Order Variables
- GET
/orders/variablesimplemented - Payment methods cached
- Shipping methods cached
- Used for display mapping
Data Handling
✅ Order Storage
✅ Order Storage
- Orders saved to local database
- All order fields stored correctly
- Customer information stored
- Order items with modifiers stored
- Order history maintained
✅ Data Validation
✅ Data Validation
- Validate order structure
- Check required fields
- Validate UUIDs
- Verify payment methods
- Confirm shipping methods
✅ Modifier Processing
✅ Modifier Processing
- Parse nested modifier structure
- Extract modifier group names
- Extract ingredient names and prices
- Calculate total with modifiers
- Display modifiers to kitchen staff
Error Handling
✅ Implement Error Handling
✅ Implement Error Handling
- Try-catch around all API calls
- Parse error responses
- Handle 401 (authentication)
- Handle 403 (forbidden)
- Handle 404 (not found)
- Handle 422 (validation)
- Handle 429 (rate limit)
- Handle 500 (server error)
- Network error handling
✅ Retry Logic
✅ Retry Logic
- Retry on 429 (after 30s wait)
- Retry on 500 (with exponential backoff)
- Maximum retry attempts (3)
- Don’t retry on 400/403/404
✅ Error Logging
✅ Error Logging
- Log all errors with context
- Include timestamps
- Include request details
- Store locally for debugging
- Send to monitoring service (optional)
User Interface
✅ Order Display
✅ Order Display
- New orders highlighted
- Order details clearly displayed
- Customer information visible
- Delivery address shown
- Order items with modifiers listed
- Total amount displayed
- Order status visible
✅ Actions
✅ Actions
- Accept order button
- Set preparation time input
- Mark on the way button
- Complete order button
- Cancel order button (with reason selection)
- View order details
✅ Notifications
✅ Notifications
- Sound alert for new orders
- Visual notification
- Desktop notification (optional)
- Success/error messages
Testing
✅ Endpoint Testing
✅ Endpoint Testing
- Test login with valid credentials
- Test login with invalid credentials
- Test token expiration
- Test all restaurant endpoints
- Test all food endpoints
- Test all order endpoints
- Test rate limiting
- Test error responses
✅ Order Lifecycle Testing
✅ Order Lifecycle Testing
- Test RECEIVED → CONFIRMED
- Test CONFIRMED → IN_DELIVERY
- Test IN_DELIVERY → COMPLETE
- Test order cancellation
- Test order repetition (before acknowledgment)
- Test order acknowledgment
✅ Edge Cases
✅ Edge Cases
- Orders with no modifiers
- Orders with multiple modifier groups
- Scheduled orders
- Cash vs card payments
- Different courier types
- Large orders (many items)
- Network timeouts
- Server errors
Security
✅ Credential Security
✅ Credential Security
- Credentials in environment variables
- Credentials not in source code
- Credentials not logged
- Credentials encrypted at rest
✅ Token Security
✅ Token Security
- Tokens stored securely
- Tokens not logged
- Tokens transmitted over HTTPS only
- Token refresh implemented
✅ HTTPS
✅ HTTPS
- All requests use HTTPS
- SSL certificates validated
- No HTTP fallback
Production Deployment
✅ Pre-Deployment
✅ Pre-Deployment
- All tests passing
- Error handling tested
- Logging configured
- Monitoring set up
- Backup procedures in place
✅ Configuration
✅ Configuration
- Production API base URL configured
- Production credentials set
- Polling intervals optimized
- Cache durations configured
- Timeout values set
✅ Monitoring
✅ Monitoring
- API call success rate monitored
- Error rates tracked
- Response times monitored
- Rate limit hits tracked
- Alerts configured for issues
✅ Documentation
✅ Documentation
- Internal documentation written
- Staff training completed
- Troubleshooting guide created
- Emergency procedures documented
Post-Deployment
✅ Verification
✅ Verification
- Test order flow end-to-end
- Verify orders appear correctly
- Confirm status updates work
- Test restaurant open/close
- Test menu item activation/deactivation
- Monitor for errors
✅ Ongoing Maintenance
✅ Ongoing Maintenance
- Monitor integration health daily
- Review error logs regularly
- Update credentials periodically
- Keep documentation updated
- Train new staff as needed
Quick Reference
Critical IDs
- Use
payment_key(UUID) for order operations - Use
food_id(integer) for menu operations - Use
rest_id(UUID) for restaurant operations
Critical Intervals
- Poll orders: 30+ seconds
- Cache menu: 30+ minutes
- Token refresh: Before 24 hours
Critical Remember
- Always acknowledge orders immediately
- Always use HTTPS
- Always handle rate limits
- Never log credentials
- Never use integer
idfor order operations
Need Help?
API Reference
Complete endpoint documentation
Order Lifecycle
Understand order flow
Best Practices
Production-ready patterns
Contact Support
Get help from our team
Congratulations! Once you’ve completed this checklist, your integration is ready for production. 🎉