# Consultar un catálogo del SAT

`GET https://api.fiscalisto.com/v1/sat_catalogs/{name}`

product_keys y unit_keys se buscan con q (texto o clave). Los demás vienen completos: tax_systems, cfdi_uses, payment_forms, payment_methods, relationship_types, cancellation_motives, export_types, tax_objects, retention_codes.

## Parámetros

| Nombre | Dónde | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `name` | ruta | sí | El catálogo, uno de: product_keys, unit_keys, tax_systems, cfdi_uses, payment_forms, payment_methods, relationship_types, cancellation_motives, export_types, tax_objects, retention_codes. |
| `q` | consulta |  | Qué buscar: palabras («consultoría») o una clave. |
| `limit` | consulta |  | Hasta cuántos, de 1 a 100 (búsquedas). Por omisión 20. |

## Con el SDK de TypeScript

```ts
import { Fiscalisto } from "fiscalisto";

// La llave viene de FISCALISTO_API_KEY.
const fiscalisto = new Fiscalisto();

const { data } = await fiscalisto.satCatalogs.get("product_keys");
```

## Con el SDK de Python

```python
from fiscalisto import Fiscalisto

# La llave viene de FISCALISTO_API_KEY.
fiscalisto = Fiscalisto()

data = fiscalisto.sat_catalogs.get("product_keys")["data"]
```

## Con el SDK de PHP

```php
<?php

use Fiscalisto\Fiscalisto;

// La llave viene de FISCALISTO_API_KEY.
$fiscalisto = new Fiscalisto();

$data = $fiscalisto->satCatalogs->get('product_keys')['data'];
```

## Con el SDK de .NET

```csharp
using Fiscalisto;

// La llave viene de FISCALISTO_API_KEY.
var fiscalisto = new FiscalistoClient();

var satCatalogEntryList = await fiscalisto.SatCatalogs.GetAsync("product_keys");
```

## Con el SDK de Go

```go
package main

import (
	"context"
	"fmt"
	"log"

	fiscalisto "fiscalisto.com/go"
)

func main() {
	// La llave viene de FISCALISTO_API_KEY.
	client, err := fiscalisto.NewClient("")
	if err != nil {
		log.Fatal(err)
	}
	ctx := context.Background()

	satCatalogEntryList, err := client.SatCatalogs.Get(ctx, "product_keys", nil)
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%+v\n", *satCatalogEntryList)
}
```

## Con el SDK de Java

```java
import com.fiscalisto.FiscalistoClient;

// La llave viene de FISCALISTO_API_KEY.
var fiscalisto = new FiscalistoClient();

var satCatalogEntryList = fiscalisto.satCatalogs().get("product_keys");
System.out.println(satCatalogEntryList);
```

## Respuesta 200

Correcto.

Un objeto `SatCatalogEntryList`:

| Campo | Tipo | Siempre viene | Descripción |
| --- | --- | --- | --- |
| `object` | `"list"` | sí | Qué tipo de objeto es («invoice», «customer»…). |
| `data` | arreglo de objeto | sí | Los objetos de esta página. |
| `data[].code` | string | sí | La clave en el catálogo del SAT. |
| `data[].description` | string | sí | Su descripción en el catálogo. |
| `has_more` | boolean | sí | true si hay más: pida la siguiente con starting_after igual al id del último. |
| `url` | string | sí | La ruta de esta lista. |

```json
{
  "object": "list",
  "data": [
    {
      "code": "80131500",
      "description": "Alquiler de propiedades",
      "similar_words": "renta"
    }
  ],
  "has_more": false,
  "url": "/v1/sat_catalogs/{name}"
}
```

## Errores

Puede responder 400, 401, 403, 404, 429, 500, 503 con el cuerpo de error de siempre; cada código está en https://fiscalisto.com/docs/api/errores.md.
