# Catálogos del SAT

Consultas públicas (sin autenticación) a los catálogos del SAT que usa FactuDesk. Responden JSON con la convención de la [API de la plataforma](../readme.md); `success` llega como número (`1` éxito, `0` error).

## Código postal

### Solicitud

```
GET https://factudesk.api.induxsoft.net/codpos/{cp}/
```

### Respuesta

```json
{
	"success": 1,
	"data": {
		"codigo": "01000",
		"estado": "CMX",
		"localidad": "01",
		"municipio": "010",
		"Ciudad_Epifania": 191,
		"num_estado": "09",
		"municipio_epifania": "09010",
		"colonias": [
			{ "c_colonia": "0001", "asentamiento": "San Ángel" }
		]
	}
}
```

- `estado`, `localidad` y `municipio` son las claves del catálogo del SAT; `num_estado` es la clave numérica del estado.
- `colonias` es la lista de colonias del catálogo de Carta Porte para ese código postal.
- Si el código no existe en el catálogo, `data` es `null` o trae los campos vacíos.

## Clave de producto o servicio

### Solicitud

```
GET https://factudesk.api.induxsoft.net/producto/sat/?text={texto}
```

`text` se busca en la clave y en la descripción. Devuelve hasta 500 coincidencias ordenadas por descripción.

### Respuesta

```json
{
	"success": 1,
	"data": [
		{ "clave": "44121715", "descripcion": "Combinaciones de esfero y lápiz" }
	]
}
```

## Clave de unidad

### Solicitud

```
GET https://factudesk.api.induxsoft.net/unidad/sat/?text={texto}&searcher={nombre}
```

- `text` se busca en la clave y en la descripción (en inglés, como la publica el SAT), por ejemplo `text=H87`.
- `searcher` se busca en el nombre de la unidad, por ejemplo `searcher=Pieza`. **Para buscar por nombre hay que usar `searcher`**: `text` no busca en el nombre.

### Respuesta

```json
{
	"success": 1,
	"data": [
		{
			"clave": "H87",
			"nombre": "Pieza",
			"descripcion": "A unit of count defining the number of pieces (piece: a single item, article or exemplar)."
		}
	]
}
```
