Nuestra API es una forma sencilla de integrar CrossHero con otras aplicaciones, lo que te brinda la oportunidad de personalizar formularios de alta customizada y obtener una lista completa de los clientes registrados en tu centro deportivo. Para facilitar la integración, te recomendamos descargar nuestra colección de Postman aquí, una herramienta que te permitirá interactuar con nuestra API.
Autenticación
Para la autenticación con la API de CrossHero se usa un token de acceso. Para obtenerlo debe buscarlo en la configuración del Centro. Este token de acceso es enviado junto con el identificador del centro en los encabezados (headers) de la petición.
Header | Tipo | Descripción |
CROSSHERO_BOX | varchar | Identificador del centro |
CROSSHERO_ACCESS_TOKEN | varchar | Token de acceso del centro |
Códigos de Respuesta
Las peticiones al API retornan varios códigos de respuesta.
Código | Descripción |
200 | La petición fue procesada correctamente |
400 | Los parámetros de la petición son incorrectos |
401 | No se han proporcionado las credenciales de autenticación o son incorrectas |
500 | Ha ocurrido un error interno procesando la petición |
API Clientes
Listado de clientes
Devuelve un listado de clientes y los parámetros para realizar la paginación.
Parámetros
Parámetro | Tipo | Default | Via | Descripción |
page | integer | 1 | query param | Página actual |
per_page | integer | 25 | query param | Cantidad de registros por página. Debe estar entre 1 y 100. |
varchar |
| query param | Filtro opcional para listar clientes por su email único. |
Respuesta
Ejemplo de respuesta:
{
"athletes": [
{
"name": "Nombre Cliente",
"email": "[email protected]",
"phone": "+55 11 99999-9999",
"birthdate": null,
"gender": "",
"line1": "Calle 123",
"postal_code": "52666",
"city": "Espana",
"state": "Madrid",
"country": "ES",
"iban": null,
"status": "inactive",
"status_updated_at": "2023-02-28",
"since": "2023-02-28T20:46:29.948Z",
"coach_notes": "",
"mrr": null,
"cltv": null,
"last_attendance_at": null
"height": null,
"weight": null
}
],
"meta": {
"current_page": 1,
"next_page": 2,
"prev_page": null,
"total_pages": 70,
"total_count": 70
}
}
El endpoint retorna un JSON donde el campo athletes retorna una lista de todos los clientes de la página y el campo meta posee la información necesaria para realizar el paginado de la información.
A continuación se describe la respuesta de cada campo del cliente
Nombre | Tipo | Descripción |
name | varchar | Nombre del cliente |
varchar | Email del cliente | |
phone | varchar | Número de teléfono |
birthdate | varchar | Fecha de cumpleaños |
gender | varchar | Sexo |
line1 | varchar | Dirección |
postal_code | varchar | Código postal |
city | varchar | Ciudad |
state | varchar | Estado de la dirección del cliente |
country | varchar | País del cliente |
iban | varchar | Número IBAN del cliente |
status | varchar | Estado del cliente en el centro. |
status_updated_at | varchar | Fecha de la última actualización del estado del cliente |
since | varchar | Fecha en que el cliente se incorporó al centro |
coach_notes | varchar | Notas del coach |
mrr | varchar | MRR del cliente |
cltv | varchar | CLTV del cliente |
last_attendance_at | varchar | Fecha de la última reserva |
height | varchar | Altura del cliente en centímetros |
weight | varchar | Peso del cliente en kilogramos |
A continuación se describe la respuesta de cada campo dentro de meta para la paginación
Nombre | TIpo | Descripción |
current_page | integer | Página actual |
next_page | integer | Próxima página. Cuando es null significa que la página actual es la última página. |
prev_page | integer | Página anterior. Cuando es null significa que la página actual es la primera página. |
total_pages | integer | Total de páginas |
total_count | integer | Total de documentos que existen |
API Centros
Añadir o actualizar clientes de un centro
Realiza una sincronización de clientes del centro
Parámetros
El cuerpo de la petición tiene que ser un JSON con el siguiente formato
{
"athletes": [
{
"code": "1234",
"name": "Nombre cliente",
"phone": "+55 11 99999-9999",
"email": "[email protected]",
"birthdate": "2016-02-23",
"iban": "...",
"gender": "...",
"line1": "...",
"city": "...",
"state": "...",
"postal_code": "...",
"country": "..."
}
]
}
Parámetro | Tipo | Requerido | Descripción |
code | varchar | sí | Código interno usando en GestBox |
name | varchar | sí | Nombre |
phone | varchar | no | Número de teléfono |
varchar | sí | ||
birthdate | varchar | no | Fecha de cumpleaños |
iban | varchar | no | IBAN |
gender | varchar | no | Sexo. Los posibles valores son (“male”, “female”) |
line1 | varchar | no | Dirección |
city | varchar | no | Ciudad de la dirección |
state | varchar | no | Estado/Provincia de la dirección |
postal_code | varchar | no | Código Postal |
country | varchar | no | País |
Respuesta
Cuando todos los clientes fueron procesados satisfactoriamente, se retorna un código HTTP 200.
De ocurrir algún error sincronizando un cliente se devuelve un código 400 junto con el siguiente JSON en el cuerpo de la respuesta. En este caso no es necesario enviar todos los clientes nuevamente, solamente aquellos que fallaron.
{
"errors": {
"athletes": {
"1234": [
"Domicilio no es válido",
"Gender no está incluido en la lista",
"Name no puede estar en blanco",
"Iban no es válido",
"País no está incluido en la lista"
]
}
}
}