{ "info": { "_postman_id": "app-padel-api-collection", "name": "App Canchas de Pádel - API", "description": "Colección completa de endpoints para App Canchas de Pádel. Backend API REST con 150+ endpoints.", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" }, "item": [ { "name": "🏥 Health & Info", "item": [ { "name": "Health Check", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/health", "host": ["{{base_url}}"], "path": ["health"] }, "description": "Verificar estado de la API" }, "response": [] }, { "name": "API Info", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}", "host": ["{{base_url}}"] } }, "response": [] } ] }, { "name": "🔐 Autenticación", "item": [ { "name": "Registrar Usuario", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"email\": \"usuario@ejemplo.com\",\n \"password\": \"password123\",\n \"firstName\": \"Juan\",\n \"lastName\": \"Pérez\",\n \"phone\": \"+5491123456789\"\n}" }, "url": { "raw": "{{base_url}}/auth/register", "host": ["{{base_url}}"], "path": ["auth", "register"] } }, "response": [] }, { "name": "Login", "event": [ { "listen": "test", "script": { "exec": [ "var jsonData = pm.response.json();", "if (jsonData.success && jsonData.data.tokens) {", " pm.environment.set(\"access_token\", jsonData.data.tokens.accessToken);", " pm.environment.set(\"refresh_token\", jsonData.data.tokens.refreshToken);", "}" ], "type": "text/javascript" } } ], "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"email\": \"{{email}}\",\n \"password\": \"{{password}}\"\n}" }, "url": { "raw": "{{base_url}}/auth/login", "host": ["{{base_url}}"], "path": ["auth", "login"] } }, "response": [] }, { "name": "Refresh Token", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"refreshToken\": \"{{refresh_token}}\"\n}" }, "url": { "raw": "{{base_url}}/auth/refresh", "host": ["{{base_url}}"], "path": ["auth", "refresh"] } }, "response": [] }, { "name": "Logout", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/auth/logout", "host": ["{{base_url}}"], "path": ["auth", "logout"] } }, "response": [] }, { "name": "Obtener Perfil", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/auth/me", "host": ["{{base_url}}"], "path": ["auth", "me"] } }, "response": [] } ] }, { "name": "👤 Usuarios", "item": [ { "name": "Mi Perfil", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/users/me", "host": ["{{base_url}}"], "path": ["users", "me"] } }, "response": [] }, { "name": "Actualizar Mi Perfil", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"firstName\": \"Juan\",\n \"lastName\": \"Pérez\",\n \"phone\": \"+5491123456789\",\n \"level\": \"ADVANCED\",\n \"handPreference\": \"RIGHT\",\n \"positionPreference\": \"DRIVE\"\n}" }, "url": { "raw": "{{base_url}}/users/me", "host": ["{{base_url}}"], "path": ["users", "me"] } }, "response": [] }, { "name": "Buscar Usuarios", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/users/search?q=juan&level=INTERMEDIATE&limit=10", "host": ["{{base_url}}"], "path": ["users", "search"], "query": [ { "key": "q", "value": "juan" }, { "key": "level", "value": "INTERMEDIATE" }, { "key": "limit", "value": "10" } ] } }, "response": [] }, { "name": "Perfil Público", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/users/:id", "host": ["{{base_url}}"], "path": ["users", ":id"], "variable": [ { "key": "id", "value": "{{user_id}}" } ] } }, "response": [] }, { "name": "Historial de Niveles", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/users/:id/level-history", "host": ["{{base_url}}"], "path": ["users", ":id", "level-history"], "variable": [ { "key": "id", "value": "{{user_id}}" } ] } }, "response": [] }, { "name": "Cambiar Nivel (Admin)", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{admin_token}}" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"level\": \"ADVANCED\",\n \"reason\": \"Evaluación técnica\"\n}" }, "url": { "raw": "{{base_url}}/users/:id/level", "host": ["{{base_url}}"], "path": ["users", ":id", "level"], "variable": [ { "key": "id", "value": "{{user_id}}" } ] } }, "response": [] } ] }, { "name": "🎾 Canchas", "item": [ { "name": "Listar Canchas", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/courts", "host": ["{{base_url}}"], "path": ["courts"] } }, "response": [] }, { "name": "Detalle de Cancha", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/courts/:id", "host": ["{{base_url}}"], "path": ["courts", ":id"], "variable": [ { "key": "id", "value": "{{court_id}}" } ] } }, "response": [] }, { "name": "Disponibilidad", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/courts/:id/availability?date=2026-02-15", "host": ["{{base_url}}"], "path": ["courts", ":id", "availability"], "query": [ { "key": "date", "value": "2026-02-15" } ], "variable": [ { "key": "id", "value": "{{court_id}}" } ] } }, "response": [] }, { "name": "Crear Cancha (Admin)", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{admin_token}}" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"Cancha 1\",\n \"type\": \"PANORAMIC\",\n \"pricePerHour\": 15000,\n \"openingTime\": \"08:00\",\n \"closingTime\": \"23:00\",\n \"isIndoor\": true,\n \"hasLighting\": true\n}" }, "url": { "raw": "{{base_url}}/courts", "host": ["{{base_url}}"], "path": ["courts"] } }, "response": [] } ] }, { "name": "📅 Reservas", "item": [ { "name": "Crear Reserva", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"courtId\": \"{{court_id}}\",\n \"date\": \"2026-02-15\",\n \"startTime\": \"18:00\",\n \"endTime\": \"19:30\",\n \"notes\": \"Partido con amigos\"\n}" }, "url": { "raw": "{{base_url}}/bookings", "host": ["{{base_url}}"], "path": ["bookings"] } }, "response": [] }, { "name": "Mis Reservas", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/bookings/my-bookings", "host": ["{{base_url}}"], "path": ["bookings", "my-bookings"] } }, "response": [] }, { "name": "Detalle de Reserva", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/bookings/:id", "host": ["{{base_url}}"], "path": ["bookings", ":id"], "variable": [ { "key": "id", "value": "{{booking_id}}" } ] } }, "response": [] }, { "name": "Cancelar Reserva", "request": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/bookings/:id", "host": ["{{base_url}}"], "path": ["bookings", ":id"], "variable": [ { "key": "id", "value": "{{booking_id}}" } ] } }, "response": [] }, { "name": "Calcular Precio", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/bookings/price-preview?courtId={{court_id}}&date=2026-02-15&startTime=18:00&endTime=19:30", "host": ["{{base_url}}"], "path": ["bookings", "price-preview"], "query": [ { "key": "courtId", "value": "{{court_id}}" }, { "key": "date", "value": "2026-02-15" }, { "key": "startTime", "value": "18:00" }, { "key": "endTime", "value": "19:30" } ] } }, "response": [] } ] }, { "name": "🏆 Torneos", "item": [ { "name": "Listar Torneos", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/tournaments?status=OPEN", "host": ["{{base_url}}"], "path": ["tournaments"], "query": [ { "key": "status", "value": "OPEN" } ] } }, "response": [] }, { "name": "Detalle de Torneo", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/tournaments/:id", "host": ["{{base_url}}"], "path": ["tournaments", ":id"], "variable": [ { "key": "id", "value": "{{tournament_id}}" } ] } }, "response": [] }, { "name": "Crear Torneo (Admin)", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{admin_token}}" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"name\": \"Torneo de Verano 2026\",\n \"description\": \"Torneo categoría intermedia\",\n \"type\": \"ELIMINATION\",\n \"category\": \"MIXED\",\n \"startDate\": \"2026-03-01\",\n \"endDate\": \"2026-03-15\",\n \"registrationDeadline\": \"2026-02-25\",\n \"maxParticipants\": 32,\n \"registrationFee\": 50000\n}" }, "url": { "raw": "{{base_url}}/tournaments", "host": ["{{base_url}}"], "path": ["tournaments"] } }, "response": [] }, { "name": "Inscribirse a Torneo", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/tournaments/:id/register", "host": ["{{base_url}}"], "path": ["tournaments", ":id", "register"], "variable": [ { "key": "id", "value": "{{tournament_id}}" } ] } }, "response": [] }, { "name": "Cancelar Inscripción", "request": { "method": "DELETE", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/tournaments/:id/register", "host": ["{{base_url}}"], "path": ["tournaments", ":id", "register"], "variable": [ { "key": "id", "value": "{{tournament_id}}" } ] } }, "response": [] } ] }, { "name": "⭐ Ranking", "item": [ { "name": "Ver Ranking", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/ranking?period=MONTH&periodValue=2026-01&level=INTERMEDIATE&limit=50", "host": ["{{base_url}}"], "path": ["ranking"], "query": [ { "key": "period", "value": "MONTH" }, { "key": "periodValue", "value": "2026-01" }, { "key": "level", "value": "INTERMEDIATE" }, { "key": "limit", "value": "50" } ] } }, "response": [] }, { "name": "Mi Ranking", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/ranking/me", "host": ["{{base_url}}"], "path": ["ranking", "me"] } }, "response": [] }, { "name": "Top Jugadores", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/ranking/top?limit=10", "host": ["{{base_url}}"], "path": ["ranking", "top"], "query": [ { "key": "limit", "value": "10" } ] } }, "response": [] } ] }, { "name": "💳 Pagos", "item": [ { "name": "Crear Preferencia de Pago", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"type\": \"BOOKING\",\n \"referenceId\": \"{{booking_id}}\",\n \"description\": \"Reserva Cancha 1 - 15/02/2026 18:00\",\n \"amount\": 22500\n}" }, "url": { "raw": "{{base_url}}/payments/preference", "host": ["{{base_url}}"], "path": ["payments", "preference"] } }, "response": [] }, { "name": "Mis Pagos", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/payments/my-payments", "host": ["{{base_url}}"], "path": ["payments", "my-payments"] } }, "response": [] }, { "name": "Detalle de Pago", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/payments/:id", "host": ["{{base_url}}"], "path": ["payments", ":id"], "variable": [ { "key": "id", "value": "{{payment_id}}" } ] } }, "response": [] }, { "name": "Estado de Pago", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/payments/:id/status", "host": ["{{base_url}}"], "path": ["payments", ":id", "status"], "variable": [ { "key": "id", "value": "{{payment_id}}" } ] } }, "response": [] }, { "name": "Webhook MercadoPago", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"action\": \"payment.created\",\n \"api_version\": \"v1\",\n \"data\": {\n \"id\": \"123456789\"\n },\n \"date_created\": \"2026-01-31T10:00:00.000Z\",\n \"id\": \"123456\",\n \"live_mode\": true,\n \"type\": \"payment\",\n \"user_id\": \"123456\"\n}" }, "url": { "raw": "{{base_url}}/payments/webhook", "host": ["{{base_url}}"], "path": ["payments", "webhook"] } }, "response": [] } ] }, { "name": "🔄 Suscripciones", "item": [ { "name": "Listar Planes", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/subscription-plans", "host": ["{{base_url}}"], "path": ["subscription-plans"] } }, "response": [] }, { "name": "Detalle de Plan", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/subscription-plans/:id", "host": ["{{base_url}}"], "path": ["subscription-plans", ":id"], "variable": [ { "key": "id", "value": "{{plan_id}}" } ] } }, "response": [] }, { "name": "Crear Suscripción", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"planId\": \"{{plan_id}}\",\n \"paymentMethodId\": \"visa\"\n}" }, "url": { "raw": "{{base_url}}/subscriptions", "host": ["{{base_url}}"], "path": ["subscriptions"] } }, "response": [] }, { "name": "Mi Suscripción", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/subscriptions/my-subscription", "host": ["{{base_url}}"], "path": ["subscriptions", "my-subscription"] } }, "response": [] }, { "name": "Mis Beneficios", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/subscriptions/benefits", "host": ["{{base_url}}"], "path": ["subscriptions", "benefits"] } }, "response": [] } ] }, { "name": "👥 Amigos", "item": [ { "name": "Enviar Solicitud", "request": { "method": "POST", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" }, { "key": "Content-Type", "value": "application/json" } ], "body": { "mode": "raw", "raw": "{\n \"receiverId\": \"{{friend_id}}\",\n \"message\": \"¡Hola! ¿Jugamos un partido?\"\n}" }, "url": { "raw": "{{base_url}}/friends/request", "host": ["{{base_url}}"], "path": ["friends", "request"] } }, "response": [] }, { "name": "Mis Amigos", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/friends", "host": ["{{base_url}}"], "path": ["friends"] } }, "response": [] }, { "name": "Solicitudes Pendientes", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/friends/pending", "host": ["{{base_url}}"], "path": ["friends", "pending"] } }, "response": [] }, { "name": "Aceptar Solicitud", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/friends/:id/accept", "host": ["{{base_url}}"], "path": ["friends", ":id", "accept"], "variable": [ { "key": "id", "value": "{{friend_request_id}}" } ] } }, "response": [] } ] }, { "name": "🔔 Notificaciones", "item": [ { "name": "Mis Notificaciones", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/notifications", "host": ["{{base_url}}"], "path": ["notifications"] } }, "response": [] }, { "name": "Contador No Leídas", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/notifications/unread-count", "host": ["{{base_url}}"], "path": ["notifications", "unread-count"] } }, "response": [] }, { "name": "Marcar como Leída", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/notifications/:id/read", "host": ["{{base_url}}"], "path": ["notifications", ":id", "read"], "variable": [ { "key": "id", "value": "{{notification_id}}" } ] } }, "response": [] }, { "name": "Marcar Todas Leídas", "request": { "method": "PUT", "header": [ { "key": "Authorization", "value": "Bearer {{access_token}}" } ], "url": { "raw": "{{base_url}}/notifications/read-all", "host": ["{{base_url}}"], "path": ["notifications", "read-all"] } }, "response": [] } ] }, { "name": "🏅 Wall of Fame", "item": [ { "name": "Listar Entradas", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/wall-of-fame?category=TOURNAMENT&limit=20", "host": ["{{base_url}}"], "path": ["wall-of-fame"], "query": [ { "key": "category", "value": "TOURNAMENT" }, { "key": "limit", "value": "20" } ] } }, "response": [] }, { "name": "Entradas Destacadas", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/wall-of-fame/featured", "host": ["{{base_url}}"], "path": ["wall-of-fame", "featured"] } }, "response": [] }, { "name": "Detalle de Entrada", "request": { "method": "GET", "header": [], "url": { "raw": "{{base_url}}/wall-of-fame/:id", "host": ["{{base_url}}"], "path": ["wall-of-fame", ":id"], "variable": [ { "key": "id", "value": "{{wall_of_fame_id}}" } ] } }, "response": [] } ] }, { "name": "📊 Analytics (Admin)", "item": [ { "name": "Dashboard Summary", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{admin_token}}" } ], "url": { "raw": "{{base_url}}/analytics/dashboard/summary", "host": ["{{base_url}}"], "path": ["analytics", "dashboard", "summary"] } }, "response": [] }, { "name": "Today Overview", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{admin_token}}" } ], "url": { "raw": "{{base_url}}/analytics/dashboard/today", "host": ["{{base_url}}"], "path": ["analytics", "dashboard", "today"] } }, "response": [] }, { "name": "Ocupación Report", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{admin_token}}" } ], "url": { "raw": "{{base_url}}/analytics/occupancy?startDate=2026-01-01&endDate=2026-01-31&courtId={{court_id}}", "host": ["{{base_url}}"], "path": ["analytics", "occupancy"], "query": [ { "key": "startDate", "value": "2026-01-01" }, { "key": "endDate", "value": "2026-01-31" }, { "key": "courtId", "value": "{{court_id}}" } ] } }, "response": [] }, { "name": "Revenue Report", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{admin_token}}" } ], "url": { "raw": "{{base_url}}/analytics/revenue?startDate=2026-01-01&endDate=2026-01-31&groupBy=day", "host": ["{{base_url}}"], "path": ["analytics", "revenue"], "query": [ { "key": "startDate", "value": "2026-01-01" }, { "key": "endDate", "value": "2026-01-31" }, { "key": "groupBy", "value": "day" } ] } }, "response": [] }, { "name": "Executive Summary", "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{admin_token}}" } ], "url": { "raw": "{{base_url}}/analytics/reports/summary?startDate=2026-01-01&endDate=2026-01-31", "host": ["{{base_url}}"], "path": ["analytics", "reports", "summary"], "query": [ { "key": "startDate", "value": "2026-01-01" }, { "key": "endDate", "value": "2026-01-31" } ] } }, "response": [] } ] } ], "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "exec": [ "// Pre-request script para toda la colección" ] } }, { "listen": "test", "script": { "type": "text/javascript", "exec": [ "// Test global: verificar que la respuesta sea válida JSON", "pm.test(\"Status code es 2xx o 4xx\", function () {", " pm.expect(pm.response.code).to.be.oneOf([200, 201, 400, 401, 403, 404, 422]);", "});", "", "pm.test(\"Respuesta es JSON válido\", function () {", " pm.response.to.be.json;", "});", "", "pm.test(\"Estructura de respuesta correcta\", function () {", " var jsonData = pm.response.json();", " pm.expect(jsonData).to.have.property('success');", "});" ] } } ], "variable": [ { "key": "base_url", "value": "http://localhost:3000/api/v1", "type": "string", "description": "URL base de la API" }, { "key": "access_token", "value": "", "type": "string", "description": "Token de acceso JWT" }, { "key": "refresh_token", "value": "", "type": "string", "description": "Token de refresh JWT" }, { "key": "admin_token", "value": "", "type": "string", "description": "Token de admin" }, { "key": "user_id", "value": "", "type": "string", "description": "ID de usuario" }, { "key": "court_id", "value": "", "type": "string", "description": "ID de cancha" }, { "key": "booking_id", "value": "", "type": "string", "description": "ID de reserva" }, { "key": "tournament_id", "value": "", "type": "string", "description": "ID de torneo" }, { "key": "payment_id", "value": "", "type": "string", "description": "ID de pago" }, { "key": "plan_id", "value": "", "type": "string", "description": "ID de plan de suscripción" } ] }