# Ver la opinión de cumplimiento (32-D)

`GET https://api.fiscalisto.com/v1/issuers/{id}/compliance_opinion`

La última opinión que trajo del SAT: positiva, negativa (con sus motivos), sin obligaciones o en suspensión. result es null hasta la primera consulta. No usa timbres.

## Parámetros

| Nombre | Dónde | Obligatorio | Descripción |
| --- | --- | --- | --- |
| `id` | ruta | sí | El id del objeto. |

## Con el SDK de TypeScript

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

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

const complianceOpinion = await fiscalisto.issuers.complianceOpinion("id");
```

## Con el SDK de Python

```python
from fiscalisto import Fiscalisto

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

compliance_opinion = fiscalisto.issuers.compliance_opinion("id")
```

## Con el SDK de PHP

```php
<?php

use Fiscalisto\Fiscalisto;

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

$complianceOpinion = $fiscalisto->issuers->complianceOpinion('id');
```

## Con el SDK de .NET

```csharp
using Fiscalisto;

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

var complianceOpinion = await fiscalisto.Issuers.ComplianceOpinionAsync("id");
```

## 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()

	complianceOpinion, err := client.Issuers.ComplianceOpinion(ctx, "id")
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("%+v\n", *complianceOpinion)
}
```

## Con el SDK de Java

```java
import com.fiscalisto.FiscalistoClient;

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

var complianceOpinion = fiscalisto.issuers().complianceOpinion("id");
System.out.println(complianceOpinion);
```

## Respuesta 200

Correcto.

Un objeto `ComplianceOpinion`:

| Campo | Tipo | Siempre viene | Descripción |
| --- | --- | --- | --- |
| `object` | `"compliance_opinion"` | sí | Qué tipo de objeto es («invoice», «customer»…). |
| `livemode` | boolean | sí | true en producción (llaves fk_live_), false en pruebas (fk_test_). Lo de pruebas no vale ante el SAT. |
| `issuer` | string | sí | El emisor. |
| `result` | `positive`, `negative`, `no_obligations`, `suspended` o null | sí | positive, negative, no_obligations (inscrito sin obligaciones) o suspended (en suspensión de actividades); null si no se ha consultado. |
| `date` | string o null | sí | El día que la emitió el SAT (AAAA-MM-DD), o null. |
| `folio` | string o null | sí | Su folio, o null. |
| `reasons` | arreglo de string | sí | Si es negativa, lo que el SAT marca como pendiente. |
| `pdf` | boolean | sí | true si su PDF está en GET /v1/issuers/{id}/compliance_opinion/pdf. |
| `checked_at` | string (date-time) o null | sí | Cuándo se consultó por última vez, o null. |
| `last_error` | string o null | sí | Por qué falló la última consulta, o null. |

```json
{
  "object": "compliance_opinion",
  "livemode": false,
  "issuer": "iss_OufpKqnrvx9p",
  "result": "positive",
  "date": "2026-10-27",
  "folio": "26NA20261027TEST",
  "reasons": [],
  "pdf": true,
  "checked_at": "2026-10-27T09:12:00-06:00",
  "last_error": null
}
```

## Errores

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