Skip to content

Tipos de Servicio

Endpoint

GET /api/v3/types

Descripción

Retorna la lista de tipos de servicio del ofertante disponibles para la integración API, con su identificador y los requisitos de origen/destino de cada tipo.

Información proporcionada por cada tipo:

  • id: identificador del tipo de servicio (para usar en tipoServicio de otras operaciones).
  • type: nombre del tipo de servicio.
  • required_origin: si el tipo requiere punto de origen.
  • required_destination: si el tipo requiere punto de destino.

Uso recomendado:

Consultar antes de crear ofertas o asignaciones directas para validar los tipos de servicio disponibles y sus requisitos.

Autenticación

Este endpoint usa autenticación HTTP Basic (autValidator).

Authorization: Basic <credentials>

Parámetros

Este endpoint no requiere parámetros en el body ni en la query string.

Respuesta

Éxito (200)

La respuesta es un objeto con status, msg y data (la lista de tipos). Los valores de required_origin y required_destination se devuelven como booleanos.

json
{
  "status": true,
  "msg": "TIPOS DE SERVICIO",
  "data": [
    {
      "id": 1,
      "type": "GRÚA LIVIANA",
      "required_origin": true,
      "required_destination": true
    },
    {
      "id": 2,
      "type": "CONDUCTOR ELEGIDO",
      "required_origin": true,
      "required_destination": false
    },
    {
      "id": 3,
      "type": "MECÁNICO EN SITIO",
      "required_origin": true,
      "required_destination": false
    }
  ]
}

Los id, nombres y valores mostrados son ilustrativos. La lista real depende de la configuración de tipos de servicio (api_services_skill) del ofertante.

Estructura de cada elemento de data

CampoTipoDescripción
idintegerIdentificador del tipo de servicio (id_api_skill). Se usa en el campo tipoServicio.
typestringNombre del tipo de servicio (service_type_name).
required_originbooleanIndica si el tipo requiere especificar punto de origen.
required_destinationbooleanIndica si el tipo requiere especificar punto de destino.

Ejemplos de Código

cURL

bash
curl -X GET "[URL_API]/api/v3/types" \
  --user "tu_usuario:tu_password" \
  -H "Content-Type: application/json"

JavaScript

javascript
const obtenerTiposServicio = async () => {
  const response = await fetch('[URL_API]/api/v3/types', {
    method: 'GET',
    headers: {
      'Authorization': `Basic ${btoa('usuario:password')}`,
      'Content-Type': 'application/json'
    }
  });

  const result = await response.json();

  if (!result.status) {
    throw new Error(result.msg);
  }

  return result.data;
};

// Uso
obtenerTiposServicio()
  .then(tipos => {
    console.log('Tipos disponibles:');
    tipos.forEach(tipo => {
      console.log(`${tipo.id}: ${tipo.type}`);
      console.log(`  Origen requerido: ${tipo.required_origin}`);
      console.log(`  Destino requerido: ${tipo.required_destination}`);
    });
  })
  .catch(error => console.error('Error:', error));

Python

python
import requests
from requests.auth import HTTPBasicAuth

def obtener_tipos_servicio():
    response = requests.get(
        '[URL_API]/api/v3/types',
        auth=HTTPBasicAuth('usuario', 'password')
    )

    result = response.json()

    if not result['status']:
        raise Exception(result['msg'])

    return result['data']

# Uso
try:
    tipos = obtener_tipos_servicio()

    print("Tipos de servicio disponibles:")
    for tipo in tipos:
        print(f"ID {tipo['id']}: {tipo['type']}")
        print(f"  Origen: {'Requerido' if tipo['required_origin'] else 'Opcional'}")
        print(f"  Destino: {'Requerido' if tipo['required_destination'] else 'Opcional'}")
        print()

except Exception as e:
    print(f"Error: {e}")

Validación de Requisitos

Validar antes de crear una oferta o asignación

javascript
async function validarTipoServicio(tipoId, tieneDestino) {
  const tipos = await obtenerTiposServicio();
  const tipoSeleccionado = tipos.find(t => t.id === parseInt(tipoId));

  if (!tipoSeleccionado) {
    throw new Error(`Tipo de servicio ${tipoId} no existe`);
  }

  if (tipoSeleccionado.required_destination && !tieneDestino) {
    throw new Error(`El tipo "${tipoSeleccionado.type}" requiere punto de destino`);
  }

  return tipoSeleccionado;
}

Recomendación

Consulta este endpoint al inicializar tu aplicación y guarda los tipos en cache local. Usa el id devuelto como valor de tipoServicio en Asignación Directa y en las ofertas.

Importante

Valida siempre que el tipo de servicio seleccionado exista y cumpla con los requisitos de origen/destino (required_origin / required_destination) antes de crear una oferta.

Tsalva API - Documentación desarrollada por RobPixels