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

# Netsuite

# 🚨 REQUISITOS PREVIOS

Lo siguiente debe cumplirse en tu cuenta de NetSuite antes de comenzar:

* Tienes un rol de **Administrador**, o un rol con el permiso **SuiteApp Marketplace** (necesario para instalar un bundle).
* Tienes el **Bundle ID** proporcionado por Chift: `703899` (o por tu proveedor, en el caso de un bundle personalizado).

Todo lo que Chift necesita — un script, un rol de mínimos privilegios, el registro de integración OAuth 2.0 y una carpeta de adjuntos — se entrega mediante el bundle con un solo clic. Nunca tendrás que subir archivos, configurar scripts manualmente ni copiar un Client ID o Secret.

Toda la configuración consta de cuatro pasos: **habilitar funcionalidades → instalar el bundle → asignar el rol → autorizar**.

# 🛠 CONFIGURACIÓN

Debes haber iniciado sesión en tu cuenta de NetSuite para realizar los pasos siguientes.

## ☑ 1. Habilita las funcionalidades correctas de la empresa

Ve a la pestaña **Setup > Company > Enable Features > SuiteCloud**. Habilita cada una de las siguientes opciones, guarda y acepta todos los avisos de Términos de Servicio.

⚠ Esto debe hacerse **antes de instalar el bundle** — sin Server SuiteScript habilitado, el script incluido no puede instalarse.

* **SuiteScript** → Client SuiteScript, Server SuiteScript

  <img src="https://mintcdn.com/chift/31nQ8nkwKpxNtIUa/images/help/netsuite/netsuite-1.png?fit=max&auto=format&n=31nQ8nkwKpxNtIUa&q=85&s=301f8c50873fd57feee0b295d72b8a98" alt="image.png" width="1528" height="324" data-path="images/help/netsuite/netsuite-1.png" />

* **Manage Authentication** → OAuth 2.0

  <img src="https://mintcdn.com/chift/31nQ8nkwKpxNtIUa/images/help/netsuite/netsuite-2.png?fit=max&auto=format&n=31nQ8nkwKpxNtIUa&q=85&s=cb5231357e125eaba4c0a49e58cd9541" alt="image.png" width="1600" height="658" data-path="images/help/netsuite/netsuite-2.png" />

* **SuiteTalk (Web Services)** → REST Web Services

  <img src="https://mintcdn.com/chift/31nQ8nkwKpxNtIUa/images/help/netsuite/netsuite-3.png?fit=max&auto=format&n=31nQ8nkwKpxNtIUa&q=85&s=9b7acf1367355f95c4a86a75c1e169a1" alt="image.png" width="1570" height="308" data-path="images/help/netsuite/netsuite-3.png" />

* **Custom Records** → Custom Records

  <img src="https://mintcdn.com/chift/31nQ8nkwKpxNtIUa/images/help/netsuite/netsuite-4.png?fit=max&auto=format&n=31nQ8nkwKpxNtIUa&q=85&s=f5307a44217dcf2db77a3178421a1526" alt="image.png" width="1390" height="548" data-path="images/help/netsuite/netsuite-4.png" />

Si tu cuenta utiliza **custom segments** como dimensiones analíticas, habilita también **SuiteCloud > Custom Segments** (más adelante otorgarás el permiso correspondiente en el rol; el permiso solo aparece una vez que la funcionalidad está activada).

## ☑ 2. Instala el bundle de Chift

Ve a **Customization > SuiteBundler > Search & Install Bundles**, introduce el **Bundle ID** `703899`, revisa la lista de objetos y haz clic en **Install**.

<img src="https://mintcdn.com/chift/31nQ8nkwKpxNtIUa/images/help/netsuite/netsuite-5.png?fit=max&auto=format&n=31nQ8nkwKpxNtIUa&q=85&s=ebb22596acfabc71235d997eacd2e23e" alt="image.png" width="1600" height="775" data-path="images/help/netsuite/netsuite-5.png" />

El script y su despliegue, el rol `Chift Integration`, el registro de integración y la carpeta `Chift Attachments` se instalan todos con un solo clic.

Para eliminar el bundle más adelante: **Customization > SuiteBundler > List of Installed Bundles** → selecciona el bundle → **Uninstall**.

## ☑ 3. Asigna el rol `Chift Integration` (y vuelve a iniciar sesión)

**Puedes hacerlo ahora o en el momento de la conexión.** Asignar el rol por adelantado es lo más limpio, pero si no se establece aquí, el usuario todavía puede seleccionar (o cambiar a) el rol correcto en la pantalla de consentimiento de NetSuite durante la conexión — consulta *Comprueba el rol en la conexión* en la sección Conexión más abajo.

El bundle instala la **definición del rol**, pero no lo asigna a ningún usuario. Asígnalo al usuario que se conectará a Chift.

Asigna el rol en **Setup > Users/Roles > Manage Users >** el usuario > subpestaña **Access** > añade `Chift Integration` > **Save**.

<img src="https://mintcdn.com/chift/31nQ8nkwKpxNtIUa/images/help/netsuite/netsuite-6.png?fit=max&auto=format&n=31nQ8nkwKpxNtIUa&q=85&s=0051f8740eb38e0e7d85b473d26d86d4" alt="image.png" width="1600" height="774" data-path="images/help/netsuite/netsuite-6.png" />

✅ **Recomendado: utiliza un usuario de integración dedicado.** Crea o elige un empleado cuyo **único** rol sea `Chift Integration` (sin Administrador, sin ningún otro rol). Esto es lo que mantiene la conexión con mínimos privilegios en tiempo de ejecución.

⚠ **Si utilizas tu propio rol en lugar de los incluidos:** Añádele el permiso `Manage own OAuth 2.0 Client Credentials certificates` (dentro de Setup). Sin él, la conexión sigue funcionando, pero permanece en el flujo OAuth estándar y necesita reautorizarse aproximadamente cada 30 días — con este permiso, pasa a autenticación basada en certificados (machine-to-machine) y nunca caduca. También debes asegurarte de que el permiso Subsidiaries View/List esté configurado en el rol utilizado.

<img src="https://mintcdn.com/chift/31nQ8nkwKpxNtIUa/images/help/netsuite/netsuite-7.png?fit=max&auto=format&n=31nQ8nkwKpxNtIUa&q=85&s=98d5e1a3323bbbf40cd32134f1b15d09" alt="image.png" width="1600" height="305" data-path="images/help/netsuite/netsuite-7.png" />

⚠ **DEBES cerrar sesión y volver a iniciarla después de asignar el rol.** NetSuite almacena en caché los roles por sesión, por lo que un rol recién asignado solo se puede seleccionar después de que el usuario cierre sesión y vuelva a iniciarla. Si te saltas este paso, el rol no aparecerá en la pantalla de consentimiento del paso siguiente.

***

# ⚡️ CONEXIÓN

En Chift, inicia la conexión con NetSuite y sigue los pasos.

**Paso 1:** Elige un nombre para tu conexión.

<img src="https://mintcdn.com/chift/31nQ8nkwKpxNtIUa/images/help/netsuite/netsuite-8.png?fit=max&auto=format&n=31nQ8nkwKpxNtIUa&q=85&s=c9042d05e6c8861abb3996da5d7a3c7f" alt="Preview" width="878" height="172" data-path="images/help/netsuite/netsuite-8.png" />

**Paso 2:** Introduce el **Account ID** de tu NetSuite.

<img src="https://mintcdn.com/chift/31nQ8nkwKpxNtIUa/images/help/netsuite/netsuite-9.png?fit=max&auto=format&n=31nQ8nkwKpxNtIUa&q=85&s=b0fe04e41d829c120aea9c4d2371ce37" alt="image.png" width="1600" height="313" data-path="images/help/netsuite/netsuite-9.png" />

Tu Account ID está al principio de tu URL de NetSuite, p. ej. `https://1234567.app.netsuite.com` → el Account ID es `1234567`. Para cuentas **sandbox**, sustituye el guion de la URL (`sb-`) por un guion bajo (`sb_`) — p. ej. `sb-12345` se introduce como `sb_12345`. ([Documentación de NetSuite](https://docs.oracle.com/en/cloud/saas/netsuite/ns-online-help/section_1498754928.html))

**Paso 3:** Haz clic en **Authorize**. Cuando se te solicite, introduce tus credenciales (asociadas a la app) para conectar tu cuenta de NetSuite.

<img src="https://mintcdn.com/chift/31nQ8nkwKpxNtIUa/images/help/netsuite/netsuite-10.png?fit=max&auto=format&n=31nQ8nkwKpxNtIUa&q=85&s=a795958d5557f783f11935f04bfff817" alt="image.png" width="454" height="184" data-path="images/help/netsuite/netsuite-10.png" />

🚨 **Conéctate con el rol que quieres que Chift utilice — no como Administrador.** La conexión se ejecuta con **el rol con el que el usuario autoriza**. Si se conecta un Administrador, se ejecuta con acceso completo de administrador. Inicia sesión como el usuario que tiene el rol acotado que asignaste en el paso 3 de Configuración (lectura + escritura, solo lectura, o tu propio rol).

<img src="https://mintcdn.com/chift/31nQ8nkwKpxNtIUa/images/help/netsuite/netsuite-11.png?fit=max&auto=format&n=31nQ8nkwKpxNtIUa&q=85&s=81f96d57d465d9d95718ed6e28175cd1" alt="image.png" width="1252" height="689" data-path="images/help/netsuite/netsuite-11.png" />

***Comprueba el rol en la conexión.*** *En la pantalla de consentimiento, NetSuite muestra el rol que utilizará la conexión. Si el rol correcto no se asignó durante la preparación — o si está preseleccionado el incorrecto — compruébalo aquí y cambia al rol correcto antes de confirmar.*

<img src="https://mintcdn.com/chift/31nQ8nkwKpxNtIUa/images/help/netsuite/netsuite-12.png?fit=max&auto=format&n=31nQ8nkwKpxNtIUa&q=85&s=c0482b97219806d86aa92ac98bb9aff3" alt="image.png" width="1252" height="689" data-path="images/help/netsuite/netsuite-12.png" />

Haz clic en **Continue** y ya está — no hay que introducir Client ID, Client Secret ni URL de RESTlet. Los datos contables estándar y las funcionalidades basadas en el script (adjuntos; transacciones bancarias cuando corresponda) funcionan todos a través de la misma conexión OAuth 2.0.

***

# ℹ BUENO SABERLO

**Roles y permisos.**

El bundle incluye dos roles — `Chift Integration` (lectura + escritura) y `Chift Integration (Read Only)`. También puedes conectarte con **tu propio rol de NetSuite** acotado a tus necesidades; en ese caso, ponte en contacto con el proveedor de software desde el que estás iniciando esta conexión para conocer el conjunto mínimo de permisos necesarios para el alcance de tu integración con Netsuite.

🚨 **Mantenerse en la autenticación machine-to-machine (sin reconexiones mensuales).**

Sea cual sea el rol con el que te conectes — incluido en el bundle o propio — necesita el permiso `Manage own OAuth 2.0 Client Credentials certificates` (dentro de **Setup** en la lista de permisos del rol) para que la conexión pase a autenticación basada en certificados y deje de requerir reconexión cada \~30 días. Los roles `Chift Integration` del bundle ya lo incluyen. Si utilizas tu propio rol, añádelo manualmente:

<img src="https://mintcdn.com/chift/31nQ8nkwKpxNtIUa/images/help/netsuite/netsuite-13.png?fit=max&auto=format&n=31nQ8nkwKpxNtIUa&q=85&s=d126539d3ba33a305883bcdd26083173" alt="image.png" width="1600" height="305" data-path="images/help/netsuite/netsuite-13.png" />

También necesitarás que `Client Credentials (Machine To Machine) Grant` esté marcado en el propio registro de integración de NetSuite (la misma pantalla que las casillas de alcance `REST Web Services` y `RESTlets`) — esto solo se aplica si utilizas tu propio registro de integración en lugar del bundle de Chift.

Sin ambos, la conexión sigue funcionando con normalidad, simplemente permanece en el flujo estándar y necesita reautorizarse aproximadamente una vez al mes.

**Cuentas OneWorld (multi-subsidiarias).**

El rol `Chift Integration` viene con **Subsidiary Restrictions = All** para que el conector pueda ver todas las subsidiarias. Si esto se cambia a *User Subsidiary*, o si la preferencia del usuario *Include Sub-Subsidiaries* está desactivada (**Home > Set Preferences > Restrict View**), las subsidiarias hijas no aparecerán en Chift. Vuelve a iniciar sesión después de cambiar cualquiera de las dos.

**Carpeta de adjuntos.**

El bundle incluye una carpeta del File Cabinet llamada `Chift Attachments` como destino por defecto para los adjuntos almacenados. Puedes indicar a Chift otra carpeta en los ajustes posteriores a la conexión. **No** cambies el nombre de la carpeta incluida — Chift la identifica por el nombre exacto `Chift Attachments`.

**Transacciones bancarias.**

Importar transacciones bancarias requiere que la SuiteApp de terceros **ZoneReconcile (Zone & Co)** esté instalada en tu cuenta, y que el rol `Chift Integration` tenga acceso a sus tipos de registros bancarios. Los adjuntos y todas las funcionalidades contables estándar **no** dependen de esto.

***

# 🧯 RESOLUCIÓN DE PROBLEMAS

| Síntoma | Causa | Solución |
| - | - | - |
| La conexión sigue pidiendo reconexión cada \~30 días aunque todo lo demás esté configurado correctamente | Al rol personalizado le falta `Manage own OAuth 2.0 Client Credentials certificates`, o el registro de integración no tiene marcado `Client Credentials (Machine To Machine) Grant` | Añade el permiso al rol y/o marca el grant en el registro de integración, luego ejecuta Test Connection |
| `INSUFFICIENT_PERMISSION` / "You do not have privileges to view this page" en llamadas de adjuntos o bancarias | Te conectaste como Administrador en lugar de con el usuario `Chift Integration`, o el rol del token no está en la audiencia del despliegue del script | Reconéctate con el usuario de integración dedicado (paso 3 de Conexión). |
| El rol `Chift Integration` no se puede seleccionar en la pantalla de consentimiento | El rol fue asignado pero la sesión no se actualizó | Cierra sesión y vuelve a iniciarla con el usuario de integración (paso 3 de Configuración), luego reinténtalo. |
| La lista de subsidiarias solo muestra la matriz (OneWorld) | Subsidiary Restrictions del rol = *User Subsidiary*, o *Include Sub-Subsidiaries* está desactivado | Establece Subsidiary Restrictions = **All** en el rol, habilita *Include Sub-Subsidiaries* y vuelve a iniciar sesión. |
| La carpeta `Chift Attachments` no aparece en el desplegable de carpetas | Se cambió el nombre de la carpeta | Mantén el nombre exacto `Chift Attachments`. |
| El bundle no se instala ("script cannot be deployed") | La funcionalidad Server SuiteScript / Custom Records no está habilitada | Completa el paso 1 de Configuración antes de instalar. |
| Un endpoint concreto devuelve un 403 en tiempo de ejecución | Al rol le falta ese permiso de transacción/lista | Otorga el permiso que falta en el rol `Chift Integration`. |
