Skip to content

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 TermRestaurantBlood DonationVet Clinic
RestaurantRestaurantDonation CenterClinic
TableTableDonation StationExam Room
ShiftService TimeOperating HoursClinic Hours
Party SizeGuestsAlways 1Pets + Owner
ReservationBookingAppointmentAppointment

Authentication

http
Authorization: Bearer <api_key>
Content-Type: application/json

For 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=N

Query Parameters:

ParameterTypeRequiredDescription
datestringYesDate in YYYY-MM-DD format
party_sizenumberYesNumber 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/reservations

Request 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:

FieldTypeRequiredDescription
restaurantIduuidYesVenue ID
datestringYesYYYY-MM-DD
timestringYesHH:MM (24h)
partySizenumberYesNumber of guests
customerNamestringYesGuest name
customerPhonestringYesPhone with country code
customerEmailstringNoEmail for confirmation
specialRequestsstringNoSpecial requests
occasionstringNoEvent type
sourcestringYeswidget, 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/lookup

Request 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}/cancel

Request Body:

json
{
  "phone": "+521234567890"
}

Response:

json
{
  "success": true,
  "message": "Reservation cancelled"
}

Reservation Status Values

StatusDescription
pendingAwaiting confirmation
confirmedConfirmed booking
seatedGuest has arrived
completedVisit completed
cancelledCancelled by guest or host
no_showGuest 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

CodeHTTP StatusDescription
NO_AVAILABILITY409No slots available
INVALID_DATE400Date format invalid or in past
VENUE_CLOSED409Venue not open at requested time
RESERVATION_NOT_FOUND404Lookup failed
ALREADY_CANCELLED400Reservation already cancelled

Red Broom Software Ecosystem