Appearance
Listar Campos adicionales de contacto
GET /api/v1/contact-fields
Este endpoint permite obtener un listado paginado de todos los campos adicionales de contacto que han sido configurados en su equipo.
Es útil para construir dinámicamente formularios de contacto, asegurando que se soliciten todos los datos personalizados definidos en la plataforma. La respuesta incluye detalles como el tipo de campo, reglas de validación y opciones disponibles.
ℹ Recuerda que:
La URL base para todas las solicitudes es: https://tu-dominio.c3.pe
Importante: reemplaza tu-dominio por el nombre de dominio específico que te haya proporcionado C3.
Solicitud
Cabeceras
| Encabezado | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Authorization | String | ✅ Sí | Token de autenticación (Bearer Token). |
Parámetros de consulta
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
search | String | ❌ No | Término de búsqueda para filtrar campos por el nombre name. Debe contener entre 3 y 255 caracteres. |
page | Integer | ❌ No | Número de la página que se desea obtener. Por defecto es 1. |
per_page | Integer | ❌ No | Cantidad de resultados por página. El valor por defecto es 15 y el rango es de 1 a 20 |
Ejemplo de solicitud
http
GET /api/v1/contact-fields?page=1&per_page=10Respuesta
La API devuelve un objeto JSON con la siguiente estructura.
Respuesta base 200
json
{
"message": "Campos adicionales de contacto obtenidos correctamente",
"data": [
{
"id": 2,
"name": "Canal preferido de contacto",
"type": "select",
"options": "Teléfono, WhatsApp, Email"
},
{
"id": 20,
"name": "Cargo laboral",
"type": "text",
"options": ""
},
{
"id": 21,
"name": "Ingreso mensual aproximado",
"type": "number",
"options": ""
},
{
"id": 22,
"name": "Comentarios adicionales",
"type": "textarea",
"options": ""
},
{
"id": 23,
"name": "Nivel de interés",
"type": "radio",
"options": "Alto, Medio, Bajo"
},
{
"id": 24,
"name": "Servicios de interés",
"type": "checkbox",
"options": "Ventas, Soporte, Encuestas, Cobranza"
},
{
"id": 25,
"name": "Género",
"type": "select",
"options": "M, F, Otro"
},
{
"id": 26,
"name": "Fecha de aceptación de términos",
"type": "date",
"options": ""
}
],
"pagination": {
"total_items": 8,
"items_per_page": 10,
"current_page": 1,
"total_pages": 1
}
}Definición de atributos
| Campo | Tipo | Descripción |
|---|---|---|
message | String | Mensaje de respuesta del servidor. |
data | Array | Lista de campos adicionales obtenidos. |
data.id | Integer | Identificador único del campo adicional. |
data.name | String | Nombre del campo. |
data.type | String | Tipo de campo (ej. text, select, date, checkbox). |
data.options | String | Un único string con las opciones separadas por coma para campos de tipo select, radio o checkbox. Si no hay opciones, es un string vacío. |
pagination | Object | Información de la paginación. |
pagination.total_items | Integer | Total de elementos encontrados. |
pagination.items_per_page | Integer | Elementos por página. |
pagination.current_page | Integer | Página actual. |
pagination.total_pages | Integer | Total de páginas. |
Errores generales
| Código HTTP | Tipo | Causa común |
|---|---|---|
401 | Unauthorized | El token de acceso no fue proporcionado en el encabezado Authorization, es inválido o ha sido revocado. Verifique que el token sea correcto y esté activo. |
422 | Unprocessable Entity | La solicitud fue entendida, pero contiene errores semánticos que impiden su procesamiento. Esto puede deberse a: 1. Parámetros faltantes o inválidos (ej, from_date no es una fecha válida); 2. Recurso inexistente ( wa_number no registrado en el sistema); 3. Violación de reglas de negocio (el rango de fechas excede el límite permitido). |
500 | Server Error | Error interno del servidor. Intenta nuevamente más tarde o contacta soporte técnico. |

