Mancha Scheduling API
Mancha is a universal reservation and scheduling platform for the RBS ecosystem.
Base URL: https://mancha.redbroomsoftware.com
Overview
Mancha provides:
- Availability Checking: Query open time slots
- Reservation Management: Create, lookup, and cancel bookings
- Multi-Domain Support: Works for restaurants, clinics, donation centers
- Ecosystem Metering: Per-reservation fees tracked via Constanza
Domain Mapping
Mancha uses restaurant terminology but supports any domain:
| Mancha Term | Restaurant | Blood Donation | Vet Clinic |
|---|---|---|---|
| Restaurant | Restaurant | Donation Center | Clinic |
| Table | Table | Donation Station | Exam Room |
| Shift | Service Time | Operating Hours | Clinic Hours |
| Party Size | Guests | Always 1 | Pets + Owner |
| Reservation | Booking | Appointment | Appointment |
Authentication
http
Authorization: Bearer <api_key>
Content-Type: application/jsonFor B2C integrations (Continua, Cosmos Pet), use the ecosystem API key.
Endpoints
Check Availability
Get available time slots for a venue.
http
GET /api/availability/{restaurantId}?date=YYYY-MM-DD&party_size=NQuery Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
date | string | Yes | Date in YYYY-MM-DD format |
party_size | number | Yes | Number of guests/spots needed |
Response:
json
{
"slots": [
{ "time": "09:00", "available_tables": 3 },
{ "time": "09:30", "available_tables": 2 },
{ "time": "10:00", "available_tables": 5 }
]
}Create Reservation
Book a time slot.
http
POST /api/reservationsRequest Body:
json
{
"restaurantId": "uuid",
"date": "2026-01-28",
"time": "14:00",
"partySize": 2,
"customerName": "Juan Perez",
"customerPhone": "+521234567890",
"customerEmail": "juan@example.com",
"specialRequests": "Window table preferred",
"occasion": "Birthday",
"source": "widget"
}Fields:
| Field | Type | Required | Description |
|---|---|---|---|
restaurantId | uuid | Yes | Venue ID |
date | string | Yes | YYYY-MM-DD |
time | string | Yes | HH:MM (24h) |
partySize | number | Yes | Number of guests |
customerName | string | Yes | Guest name |
customerPhone | string | Yes | Phone with country code |
customerEmail | string | No | Email for confirmation |
specialRequests | string | No | Special requests |
occasion | string | No | Event type |
source | string | Yes | widget, dashboard, or api |
Response:
json
{
"id": "uuid",
"confirmationCode": "MNCH-A1B2C3",
"status": "confirmed",
"restaurantName": "Tacos El Rey",
"date": "2026-01-28",
"time": "14:00"
}Lookup Reservation
Find an existing reservation.
http
POST /api/reservaciones/lookupRequest Body:
json
{
"confirmationCode": "MNCH-A1B2C3",
"phone": "+521234567890"
}Response:
json
{
"id": "uuid",
"confirmationCode": "MNCH-A1B2C3",
"status": "confirmed",
"restaurantName": "Tacos El Rey",
"date": "2026-01-28",
"time": "14:00",
"partySize": 2,
"customerName": "Juan Perez"
}Cancel Reservation
Cancel an existing booking.
http
POST /api/reservaciones/{id}/cancelRequest Body:
json
{
"phone": "+521234567890"
}Response:
json
{
"success": true,
"message": "Reservation cancelled"
}Reservation Status Values
| Status | Description |
|---|---|
pending | Awaiting confirmation |
confirmed | Confirmed booking |
seated | Guest has arrived |
completed | Visit completed |
cancelled | Cancelled by guest or host |
no_show | Guest did not arrive |
Ecosystem Integration
Consumer Apps
Mancha powers scheduling for:
- Continua - Blood donation appointments
- Cosmos Pet - Veterinary clinic bookings
- Hospitality-Fiscal - Property check-ins
No-Show Fees
No-show fees are processed via Colectiva:
json
{
"amount": 100.00,
"currency": "MXN",
"reason": "no_show_fee",
"reservation_id": "uuid"
}Internal Metering
Per-reservation fees tracked in Constanza:
- Standard rate: $5 MXN per booking
- Continua (blood donation): 100% discount
Error Handling
json
{
"error": "No availability for requested time",
"code": "NO_AVAILABILITY"
}Error Codes
| Code | HTTP Status | Description |
|---|---|---|
NO_AVAILABILITY | 409 | No slots available |
INVALID_DATE | 400 | Date format invalid or in past |
VENUE_CLOSED | 409 | Venue not open at requested time |
RESERVATION_NOT_FOUND | 404 | Lookup failed |
ALREADY_CANCELLED | 400 | Reservation already cancelled |
Related Documentation
- Colectiva Payments - No-show fee processing
- Constanza Accounting - Revenue metering
- Ecosystem Architecture