> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tupana.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Buscar Entidad por RUT

> Busca una entidad maestra específica por su RUT. Requiere autenticación por API Key.

**Permisos requeridos:** Este endpoint actualmente no requiere permisos específicos (`AllowAny`), pero requiere autenticación válida por API Key.

**Respuesta:** Retorna información completa de la entidad incluyendo direcciones y actividades económicas. Si la entidad no existe en la base de datos, el sistema intentará buscarla y crearla automáticamente usando el scraper del SII.

## Qué hace

* Busca una entidad maestra específica por su RUT
* Obtiene todos los detalles completos de la entidad, incluyendo direcciones y actividades económicas
* Proporciona información esencial para determinar el tipo de documento a emitir
* Permite consultar direcciones y actividades económicas registradas de la entidad

## Ejemplos de uso

* Buscar información de un cliente antes de crear un documento
* Obtener el ID de una entidad para usar en otros endpoints (como crear credenciales)
* Consultar las direcciones disponibles de una entidad
* Verificar las actividades económicas para determinar el tipo de DTE a emitir
* Validar que una entidad existe en el sistema antes de emitir documentos

### Información importante sobre tipos de documento

La información de actividades económicas es fundamental para decidir qué tipo de documento debes emitir:

* **Si la entidad tiene actividad económica**: Debes emitir una **Factura Electrónica** (DTE 33) o **Factura Exenta** (DTE 34)
* **Si la entidad NO tiene actividad económica**: Debes emitir una **Boleta** (DTE 39)

Esta información es esencial para validar que estás emitiendo el tipo correcto de documento tributario según las características de la entidad receptora.


## OpenAPI

````yaml GET /master-entities
openapi: 3.0.0
info:
  title: Tupana API
  description: API para integración con el sistema Tupana - Facturación Electrónica
  version: 1.0.0
servers:
  - url: https://api.tupana.ai/v1
    description: Servidor de producción
security:
  - apiKeyAuth: []
paths:
  /master-entities:
    get:
      summary: Buscar entidad por RUT
      description: >-
        Busca una entidad maestra específica por su RUT. Requiere autenticación
        por API Key.


        **Permisos requeridos:** Este endpoint actualmente no requiere permisos
        específicos (`AllowAny`), pero requiere autenticación válida por API
        Key.


        **Respuesta:** Retorna información completa de la entidad incluyendo
        direcciones y actividades económicas. Si la entidad no existe en la base
        de datos, el sistema intentará buscarla y crearla automáticamente usando
        el scraper del SII.
      parameters:
        - name: rut
          in: query
          description: 'RUT del cliente a consultar (formato: 76543210-1, sin puntos)'
          required: true
          schema:
            type: string
            pattern: ^[0-9]{7,8}-[0-9K]$
            example: 76543210-1
      responses:
        '200':
          description: Entidad encontrada exitosamente
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MasterEntity'
              example:
                id: 371
                opaque_id: eid_NDgyMTM6c2lnbmF0dXJl
                tax_id: 76.798.398-0
                name: SUPLO SPA
                email: contacto@suplo.cl
                addresses:
                  - id: 6
                    address: AV TAJAMAR 183 OF 401   OFIC
                    district:
                      id: 7
                      name: LAS CONDES
                      city:
                        id: 3
                        name: SANTIAGO
                    sii_branch_code: null
                    phone: null
                activities:
                  - id: 1
                    code: '620900'
                    name: OTRAS ACTIVIDADES DE TECNOLOGIA DE LA IN
        '400':
          description: Parámetro 'rut' faltante o formato inválido
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: API Key inválida o faltante
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: >-
            API Key inválida o sin autenticación. Aunque este endpoint no
            requiere permisos específicos, requiere una API Key válida.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
              example:
                error: API Key inválida o faltante
        '404':
          description: Entidad no encontrada
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Error interno del servidor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - apiKeyAuth: []
components:
  schemas:
    MasterEntity:
      type: object
      properties:
        id:
          type: integer
          description: >-
            ID entero de la entidad maestra (contrato v1). Para integraciones
            nuevas prefiere `opaque_id`.
          example: 371
        opaque_id:
          type: string
          description: >-
            ID opaco de la entidad (`eid_...`), no enumerable. Úsalo tal cual
            como `master_entity_id` en los demás endpoints (documentos, resumen
            de libros, etc.) — aceptan ambos formatos. En la futura v2, `id`
            pasará a ser este token.
          example: eid_NDgyMTM6c2lnbmF0dXJl
        tax_id:
          type: string
          description: RUT de la entidad maestra
          example: 76.798.398-0
        name:
          type: string
          description: Razón social de la entidad
          example: SUPLO SPA
        email:
          type: string
          description: Correo electrónico de contacto
          nullable: true
          example: null
        addresses:
          type: array
          description: Lista de direcciones de la entidad
          items:
            type: object
            properties:
              id:
                type: integer
                description: ID único de la dirección
                example: 6
              address:
                type: string
                description: Dirección completa
                example: AV TAJAMAR 183 OF 401   OFIC
              district:
                type: object
                properties:
                  id:
                    type: integer
                    description: ID único de la comuna
                    example: 7
                  name:
                    type: string
                    description: Nombre de la comuna
                    example: LAS CONDES
                  city:
                    type: object
                    properties:
                      id:
                        type: integer
                        description: ID único de la ciudad
                        example: 3
                      name:
                        type: string
                        description: Nombre de la ciudad
                        example: SANTIAGO
              sii_branch_code:
                type: string
                description: Código de sucursal SII
                nullable: true
                example: null
              phone:
                type: string
                description: Teléfono de la sucursal
                nullable: true
                example: null
        activities:
          type: array
          description: Lista de actividades económicas de la entidad
          items:
            type: object
            properties:
              id:
                type: integer
                description: ID único de la actividad
                example: 1
              code:
                type: string
                description: Código de actividad económica
                example: '620900'
              name:
                type: string
                description: Nombre de la actividad económica
                example: OTRAS ACTIVIDADES DE TECNOLOGIA DE LA IN
    Error:
      required:
        - error
        - message
      type: object
      properties:
        error:
          type: string
          description: Código de error
          example: VALIDATION_ERROR
          enum:
            - VALIDATION_ERROR
            - AUTHENTICATION_ERROR
            - AUTHORIZATION_ERROR
            - NOT_FOUND
            - SII_ERROR
            - INTERNAL_ERROR
        message:
          type: string
          description: Mensaje de error
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        API Key para autenticación. Debe proporcionarse en el header
        Authorization con el formato: 'Api-Key YOUR-API-KEY' (incluye el prefijo
        'Api-Key ' seguido de tu API key)

````