Calendario
Eventos
Crea y administra desde tu sitio los eventos de Recaudo: webinars, talleres, cursos o reuniones. Cada evento publicado tiene su página de registro en recaudo.app/e/{tu-cuenta}/{evento}, con los mismos campos que ves en el panel.
GET
/v1/events
Lista tus eventos
POST
/v1/events
Crea un evento
GET
/v1/events/{id}
Consulta un evento
PATCH
/v1/events/{id}
Edita un evento
DELETE
/v1/events/{id}
Borra un evento
GET
/v1/events/{id}/registrations
Lista quién se registró
Crear un evento
Cuerpo
{
"name": "Webinar: mantenimiento preventivo",
"description": "Sesión en vivo con preguntas al final.",
"location_type": "online",
"format": "webinar",
"frequency": "one_time",
"date": "2026-11-18",
"start_time": "19:00",
"end_time": "20:30",
"meeting_url": "https://meet.example.com/abc-defg-hij",
"max_attendees": 150,
"status": "published",
"custom_fields": [
{
"label": "Puesto",
"type": "select",
"required": true,
"options": [
"Dirección",
"Operación",
"Ventas"
]
},
{
"label": "Ciudad",
"type": "text",
"required": true
}
]
}
| Campo | Tipo | Requerido | Descripción |
|---|---|---|---|
name |
string | Sí | Nombre del evento. De aquí sale el slug de su página. |
location_type |
string | Sí | online, presencial, hibrido u on_demand. |
frequency |
string | Sí | one_time (una fecha), recurring (se repite) o evergreen (sin fecha, siempre disponible). |
date |
date | Según el caso | Fecha (YYYY-MM-DD), de hoy en adelante. Obligatoria salvo en evergreen. |
start_time |
string | Según el caso | Hora de inicio (HH:MM, 24 h). Obligatoria salvo en evergreen. |
end_time |
string | No | Hora de fin (HH:MM), después del inicio. |
format |
string | No | webinar, demo, taller, conferencia, reunion u otro. |
description |
string | No | Texto de la página del evento (máximo 5,000 caracteres). |
status |
string | No | draft (borrador, default) o published. Al editar también cancelled o completed. |
location |
string | No | Dirección o lugar, para eventos presenciales. |
latitude |
number | No | Latitud del lugar, para mostrar el mapa. |
longitude |
number | No | Longitud del lugar, para mostrar el mapa. |
meeting_url |
url | No | Liga de la sesión en vivo (Zoom, Meet, Teams). |
content_url |
url | No | Liga a la grabación o material, para on_demand. |
image_url |
url | No | Imagen de portada (URL pública). |
max_attendees |
integer | No | Cupo máximo (1 a 10,000). Sin valor, cupo ilimitado. |
requires_payment |
boolean | No | true si el registro se paga. |
price |
number | Según el caso | Precio en decimales. Obligatorio si requires_payment es true. |
currency |
string | No | Moneda ISO de 3 letras (default MXN). |
is_invitation_only |
boolean | No | true para que el evento no aparezca en tu lista pública. |
recurrence_rule |
object | Según el caso | Obligatorio en recurring: {"pattern": "weekly|biweekly|monthly", "end_date": "YYYY-MM-DD", "occurrences": 2-52}. |
custom_fields |
array | No | Preguntas extra del formulario de registro (máximo 30). |
- custom_fields: lista de {label, type, required, options}. type puede ser text, email, tel, number, select o textarea. En select, options es una lista ["A", "B"] o un texto separado por comas.
- La respuesta trae el evento con id, slug, public_url (la página de registro), registrations_count y available_spots.
Editar, borrar y listar
- PATCH /v1/events/{id} cambia solo los campos que mandes. Si mandas custom_fields, reemplaza la lista completa.
- DELETE /v1/events/{id} borra el evento y su página deja de estar disponible. Los registros se conservan.
- GET /v1/events acepta status, search (por nombre), upcoming=true (de hoy en adelante), limit y page.
Registros de un evento
GET /v1/events/{id}/registrations regresa a cada persona registrada: attendee_name, attendee_email, attendee_phone, status (registered, paid, attended, cancelled, no_show), amount_paid, custom_data (las respuestas a tus preguntas, con su label) y url_params (UTM de donde llegó). Filtra con status, limit y page.
¿Te sirvió esta página?
Gracias por avisarnos.