Documentación técnica de funciones, payloads JSON a enviar y respuestas del servidor
{
"email": "usuario@tintails.com",
"password": "password123",
"full_name": "María García",
"role": "user"
}
{
"success": 1,
"message": {
"message": "Usuario registrado con éxito",
"user": {
"id": "2wwdx3qaAoyYuUPFcNUhQy",
"email": "usuario@tintails.com",
"full_name": "María García",
"role": "user"
},
"token": "eyJhbGciOiJIUzI1Ni..."
}
}
{
"email": "usuario@tintails.com",
"password": "password123"
}
{
"success": 1,
"message": {
"user": {
"id": "2wwdx3qaAoyYuUPFcNUhQy",
"email": "usuario@tintails.com",
"full_name": "María García",
"role": "user"
},
"token": "eyJhbGciOiJIUzI1Ni..."
}
}
Authorization: Bearer <token> al recargar la aplicación web.
Authorization: Bearer eyJhbGciOiJIUzI1Ni...
{
"success": 1,
"message": {
"user": {
"id": "2wwdx3qaAoyYuUPFcNUhQy",
"email": "usuario@tintails.com",
"full_name": "María García",
"role": "user"
},
"token": "eyJhbGciOiJIUzI1..."
}
}
?category_id=cat_emociones o ?is_free=true.
GET /api/books?category_id=cat_emociones&is_free=true
{
"success": 1,
"message": [
{
"id": "autocontrol",
"title": "El secreto de Martina y el río de la calma",
"subtitle": "Cómo dominar los impulsos negativos",
"price": 0,
"original_price": 40000,
"age_range": "3-8 años",
"category_id": "cat_emociones",
"cover_image": "/assets/covers/cover-autocontrol.jpg",
"description": "Martina aprende a respirar...",
"is_free": 1,
"category_name": "Emociones & Autoestima"
}
]
}
GET /api/books/autocontrol
{
"success": 1,
"message": {
"id": "autocontrol",
"title": "El secreto de Martina y el río de la calma",
"price": 0,
"category_name": "Emociones & Autoestima"
}
}
GET /api/books/autocontrol/pages
{
"success": 1,
"message": [
{
"id": "page_1",
"book_id": "autocontrol",
"page_number": 1,
"text": "Había una vez en un valle lejano...",
"image_url": "/assets/pages/autocontrol_1.jpg",
"audio_url": "/assets/audio/autocontrol_1.mp3"
}
]
}
{
"title": "Las aventuras de Moti",
"subtitle": "Un viaje por las nubes",
"price": 40000.00,
"original_price": 120000.00,
"age_range": "3-8 años",
"category_id": "cat_emociones",
"cover_image": "/assets/uploads/portada_moti.jpg",
"description": "Una historia para fortalecer la autoconfianza.",
"is_free": 0
}
{
"success": 1,
"message": {
"message": "Libro creado correctamente",
"book": {
"id": "eXp6XPvHES6Utgqv4ejKL3",
"title": "Las aventuras de Moti",
"price": 40000,
"cover_image": "/assets/uploads/portada_moti.jpg"
}
}
}
{
"title": "Las aventuras de Moti (Edición Especial)",
"price": 35000.00,
"original_price": 100000.00
}
{
"success": 1,
"message": "Libro actualizado correctamente."
}
clientSecret de la sesión en Stripe para mostrar el formulario de tarjeta de crédito embebido en la web.
{
"priceId": "price_12345",
"quantity": 1,
"customerEmail": "usuario@tintails.com",
"userId": "2wwdx3qaAoyYuUPFcNUhQy",
"metadata": {
"bookIds": "autocontrol,responsabilidad",
"formatType": "digital"
}
}
{
"clientSecret": "cs_test_a1b2c3d4..."
}
Authorization: Bearer eyJhbGciOiJIUzI1Ni...
{
"success": 1,
"message": [
{
"id": "pur_987",
"book_id": "responsabilidad",
"title": "Lucas y el jardín de las Responsabilidades",
"format_type": "digital",
"amount_paid": 40000,
"status": "completado",
"purchase_date": "2026-08-07T03:37:32.000Z"
}
]
}
file), la guarda físicamente en files/uploads/ y retorna la URL estática accesible para ser usada en los cuentos.
Content-Type: multipart/form-data field: file (Binary File)
{
"success": 1,
"message": {
"message": "Archivo subido con éxito",
"url": "/assets/uploads/emh6MkdKLUYnVgHUDzkGS7.jpg"
}
}