# Administración del catálogo de clientes

La autenticación puede hacerse con Id de sesión (ids) o con usuario (correo/teléfono) y contraseña (pwd), a través de parámetros en la URL o bien, 
con el encabezado ```Authorization: Bearer p_ids```

La determinación de la base de datos del emisor, se realiza por medio del parámetro rfc o nic, se requiere uno de los dos, pero no ambos.

Parámetros generales

* ```p_rfc```. RFC del emisor
* ```p_nic```. NIC del emisor
* ```p_ids```. Identificador de sesión del usuario
* ```p_uid```. Identificador del usuario, correo o teléfono móvil
* ```p_pwd```. Contraseña correspondiente al p_uid

## Consultar clientes

Obtiene un array con la información de clientes que corresponde a los parámetros suministrados.

### Solicitud
```
Method: GET 
https://factudesk.api.induxsoft.net/{p_rfc|p_nic}/clientes/?ids=p_ids&uid=p_uid&pwd=p_wd&filtro=p_filtro&limit=p_limit
```

#### Parámetros
* ```p_filtro```. Texto de filtro para los resultados
* ```p_limit```. Cantidad máxima de filas a devolver, si se omite se asumen 500, el máximo admitido es 2000

### Respuesta
```
{
    "success":true,
    "data":[
        {
            "sys_pk": Clave primaria interna,
            "sys_guid":"GUID de la fila",
            ... otros campos de sistema...,
            "codigo":"Código del cliente",
            "rfc":"RFC del cliente",
            "nombre":"Nombre fiscal",
            "nombre_comercial":"Nombre comercial",
            "curp":"",
            ...
            "domicilios":[
                {
                    "sys_pk":Clave primaria del domicilio",
                    "cp":"Código postal",
                    "pais":"Código de país",
                    "estado":"Código del estado",
                    "municipio":"Código del municipio",
                    "localidad":"",
                    "calle":"",
                    "num_ext":"",
                    "num_int":"",
                    "colonia":"",
                    "referencia":""
                },
                ...
            ]
        },
        ...
    ]
}
```

## Agregar un cliente

Agrega un cliente a la base de datos del emisor

### Solicitud
```
Method: POST
https://factudesk.api.induxsoft.net/{p_rfc|p_nic}/clientes/?ids=p_ids&uid=p_uid&pwd=p_wd

{
    ...
}
```

### Respuesta
```
{
    "success":true,
    "data":{
        ...datos del nuevo cliente
    }
}
```

## Modificar un cliente

Actualiza información de un cliente en la base de datos del emisor, solo los datos que se suministran.

En este servicio no se actualizan los domicilios fiscales.


### Solicitud
```
Method: PATCH
https://factudesk.api.induxsoft.net/{p_rfc|p_nic}/clientes/{p_codigo}/?ids=p_ids&uid=p_uid&pwd=p_wd

{
    ...
}
```

* p_codigo. Código del cliente a Modificar

### Respuesta
```
{
    "success":true,
    "data":{
        ...datos del cliente
    }
}
```

## Agregar un domicilio fiscal a un cliente

Agrega un domicilio fiscal a un cliente

### Solicitud
```
Method: POST
https://factudesk.api.induxsoft.net/{p_rfc|p_nic}/clientes/{p_codigo}/domicilios/?ids=p_ids&uid=p_uid&pwd=p_wd

{
    ...datos del domicilio...
}
```

* p_codigo. Código del cliente a Modificar

### Respuesta
```
{
    "success":true,
    "data":{
        ...datos del nuevo domicilio
    }
}
```

## Actualizar un domicilio fiscal a un cliente

Actualiza información de un domicilio de un cliente en la base de datos del emisor, solo los datos que se suministran.


### Solicitud
```
Method: PATCH
https://factudesk.api.induxsoft.net/{p_rfc|p_nic}/clientes/{p_codigo}/domicilios/{p_sys_pk}?ids=p_ids&uid=p_uid&pwd=p_wd

{
    ...datos del domicilio...
}
```

* p_codigo. Código del cliente a Modificar
* p_sys_pk. Clave primaria del domicilio

### Respuesta
```
{
    "success":true,
    "data":{
        ...datos del domicilio
    }
}
```

## Eliminar un domicilio fiscal a un cliente

Elimina un domicilio de un cliente en la base de datos del emisor


### Solicitud
```
Method: DELETE
https://factudesk.api.induxsoft.net/{p_rfc|p_nic}/clientes/{p_codigo}/domicilios/{p_sys_pk}?ids=p_ids&uid=p_uid&pwd=p_wd

```

* p_codigo. Código del cliente a Modificar
* p_sys_pk. Clave primaria del domicilio

### Respuesta
```
{
    "success":true,
    "data":null
}
```
## Eliminar un cliente

Elimina un cliente en la base de datos del emisor


### Solicitud
```
Method: DELETE
https://factudesk.api.induxsoft.net/{p_rfc|p_nic}/clientes/{p_codigo}?ids=p_ids&uid=p_uid&pwd=p_wd

```

* p_codigo. Código del cliente a Modificar

### Respuesta
```
{
    "success":true,
    "data":null
}
```