# Herramientas con IA

## Obtener datos de contribuyente

Analiza una imagen o documento (pdf), texto plano o página Web para extraer la información de un contribuyente.

```
Método: POST
Authorization: Basic <api ia>
Codificación: url-form-encoded o multipart/form-data (para enviar archivo)
Entradas posibles: Archivo imagen (png o jpg) o PDF, url o texto plano
End point: https://ai.api.induxsoft.net/mx/obtener-contribuyente/

```

> **Corrección (2026-10-19):** la autenticación `Bearer <induxsoft_sesid>` no está implementada; solo se acepta `Basic` con una clave de API de IA (la misma del [HUB AI](hub-ai.md)) que tenga habilitado el modelo `gpt-4.1`. Con `Bearer` la respuesta es el error `401` "Método de autenticación proporcionado no implementada".

Campos de entrada (se usa el primero que venga; si vienen varios, prevalece el archivo):

| Campo | Descripción |
|-------|-------------|
| `url` | Dirección de una página Web o documento con los datos del contribuyente. |
| `content` | Texto plano con los datos del contribuyente. |
| archivo | Un archivo (`png`, `jpg` o `pdf`) en `multipart/form-data`. Si el archivo es una Constancia de Situación Fiscal con código QR, el servicio completa el código postal y el régimen con la consulta del QR al SAT. |

Cuando se envía un archivo y no es posible poner el encabezado `Authorization`, se acepta `?auth={base64(api_key:pwd)}` codificado para URL. No se recomienda: la credencial queda en las bitácoras.

Ejemplo con datos ficticios:

```
curl -X POST https://ai.api.induxsoft.net/mx/obtener-contribuyente/ \
  -H "Authorization: Basic bWlfYXBpX2tleTptaV9wYXNzd29yZA==" \
  -F "archivo=@constancia.pdf"
```

Respuesta exitosa: un objeto JSON con la siguiente estructura.
```json
{
    "success": 1,
    "data": {
        "rfc": "XAXX010101000",
        "nombre": "Público en general",
        "cp": "29000",
        "calle": "",
        "num": "",
        "numint": "",
        "colonia": "",
        "domref": "",
        "ciudad": "TUXTLA GUTIERREZ",
        "regimen": [
            "Sin obligaciones fiscales"
        ],
        "telefono": "",
        "correo": "",
        "idcif": "",
        "notas": "Documento emitido por el SAT. Información parcial, el documento mostrado no contiene dirección completa ni otros datos de contacto.",
        "request_id": "1f5d79a8773f4acd88ef5711b137aeab"
    }
}
```

Respuesta de error:

```json
{
    "success": 0,
    "code": 401,
    "message": "No autorizado."
}
```

Códigos: `401` (credenciales), `404` (herramienta inexistente en `/mx/{herramienta}/`), `418` (formato de archivo no soportado).