- Español
- English
Guía paso a paso para que los administradores de cuenta NetSuite configuren y obtengan todas las credenciales y permisos necesarios para la integración con Payana.
1. Obtener el Account ID
- Ve a Setup > Company > Company Information.
- Localiza el campo Account ID (ej.
1234567o1234567_SB1en sandboxes). - Copia y guarda este valor.
2. Habilitar Token-Based Authentication (TBA)
- Ve a Setup > Company > Enable Features.
- Abre la subpestaña SuiteCloud.
- En Manage Authentication, marca Token-Based Authentication.
- Haz clic en Save.
3. Crear el Integration Record (Consumer Key y Secret)
- Ve a Setup > Integration > Manage Integrations > New.
- Completa los campos:
- Name:
Payana Integration(u otro nombre descriptivo). - State: Enabled.
- Name:
- En la subpestaña Authentication:
- Marca Token-Based Authentication.
- Desmarca Authorization Code Grant (no es necesario para servidor a servidor).
- Haz clic en Save.
- Copia de inmediato los valores mostrados:
- Consumer Key
- Consumer Secret
4. Crear el rol “Conexión Payana”
4.1 Crear el rol
- Ve a Setup > Users/Roles > Manage Roles > New.
- Configura:
- Name:
Conexión Payana. - Centre Type: Classic Centre (es crítico; ver nota abajo).
- Name:
- En la subpestaña Authentication:
- Marca Web Services Only Role.
- Haz clic en Save (agregarás permisos en los siguientes pasos).
¿Por qué Classic Centre?
Los roles de NetSuite usan el Centre Type para determinar qué módulos y tipos de registro puede ver un usuario. Centros funcionales como Accounting Centre o Employee Centre restringen el acceso a ciertos registros y endpoints REST aunque el permiso figure como “Full”. Classic Centre es el único Centre Type que da acceso sin restricciones a todos los módulos vía REST/SOAP, necesario para una integración servidor a servidor. Usar otro centro es una causa frecuente de
Los roles de NetSuite usan el Centre Type para determinar qué módulos y tipos de registro puede ver un usuario. Centros funcionales como Accounting Centre o Employee Centre restringen el acceso a ciertos registros y endpoints REST aunque el permiso figure como “Full”. Classic Centre es el único Centre Type que da acceso sin restricciones a todos los módulos vía REST/SOAP, necesario para una integración servidor a servidor. Usar otro centro es una causa frecuente de
401 Invalid login o respuestas API vacías difíciles de diagnosticar.4.2 Permisos de Setup
En la subpestaña Permissions > Setup agrega:4.2 Permisos de Reportes
En la subpestaña Permissions > Reports agrega:4.4 Permisos de transacciones
En la subpestaña Permissions > Transactions agrega:Nivel 1 — Mínimo requerido (operaciones AP básicas)
Nivel 2 — Requerido para flujo AP completo
4.5 Permisos de listas
En la subpestaña Permissions > Lists agrega:Nivel 1 — Mínimo requerido
Nivel 2 — Requerido para flujo AP completo
4.6 Permisos por tabla (SuiteQL)
La integración usa SuiteQL para leer datos. Cada tabla requiere el permiso indicado en NetSuite. La siguiente lista coincide con las entidades a las que accede el procesador (equivalente funcional a la integración con Odoo).Perform Search (Lists) debe estar en Full para que las consultas SuiteQL funcionen. Find Transaction (Transactions) permite consultar la tabla Transaction y TransactionLine para los tipos de transacción permitidos (Bills, Purchase Orders, etc.).
4.6 Acceso a subsidiarias
- En el mismo rol, ve a la subpestaña Subsidiaries (solo si la cuenta usa OneWorld).
- Elige All o las subsidiarias que gestionará la integración.
- Haz clic en Save.
5. Asignar el rol a un usuario
- Ve a Setup > Users/Roles > Manage Users y selecciona el usuario que tendrá el token (puede ser un usuario dedicado a la integración).
- En la subpestaña Access > Roles, agrega el rol Conexión Payana.
- Haz clic en Save.
6. Generar Access Tokens (Token ID y Token Secret)
- Ve a Setup > Users/Roles > Access Tokens > New.
- Completa:
- Application Name: Selecciona
Payana Integration(el Integration Record del paso 3). - User: Selecciona el usuario del paso 5.
- Role: Selecciona
Conexión Payana.
- Application Name: Selecciona
- Haz clic en Save.
- Copia de inmediato los valores mostrados:
- Token ID
- Token Secret
7. Resumen de valores para compartir con Payana
Comparte estos seis valores por un canal seguro
8. Lista de verificación
- Token-Based Authentication está habilitado en SuiteCloud.
- Existe un Integration Record con TBA habilitado.
- El rol “Conexión Payana” usa Classic Centre como Centre Type.
- El rol tiene Web Services Only marcado en la subpestaña Authentication.
- Permisos de Setup: Log in using Access Tokens, REST Web Services, User Access Tokens, SuiteAnalytics Workbook, y Accounting Lists en Full.
- Permisos de transacciones (Nivel 1): Bills, Purchase Orders y Find Transaction en Full.
- Permisos de transacciones (Nivel 2): Bill Purchase Orders, Enter Vendor Credits y Pay Bills en Full.
- Permisos de listas (Nivel 1): Vendors, Subsidiaries, Accounts y Perform Search en Full.
- Permisos de listas (Nivel 2): Items, Companies, Currency, Departments y Locations en Full.
- Permisos por tabla SuiteQL (sección 4.5): acceso a Vendor, Item, Account, Department, Location, Transaction, TransactionLine y, si aplica, PaymentMethod.
- El rol tiene configurado el acceso a subsidiarias (All o lista específica).
- Un usuario de integración dedicado tiene asignado el rol.
- Se ha creado el Access Token y se han copiado Token ID y Token Secret.
- Las seis credenciales se han compartido con Payana de forma segura.
- Se verificó el acceso con una solicitud de prueba (sección 9).
9. Validar la conexión (Opcional)
Una vez configuradas las credenciales, verifica que la integración tiene acceso correcto a NetSuite.Con Postman (recomendado)
Postman maneja la firma OAuth 1.0 automáticamente, lo que lo hace la forma más sencilla de probar.1
Crear una solicitud POST
Usa la siguiente URL, reemplazando Ejemplo producción:
ACCOUNT_ID por tu Account ID en minúsculas (usa guiones en lugar de guiones bajos para sandboxes):https://1234567.suitetalk.api.netsuite.com/services/rest/query/v1/suiteql Ejemplo sandbox: https://1234567-sb1.suitetalk.api.netsuite.com/services/rest/query/v1/suiteql2
Configurar autenticación OAuth 1.0
En la pestaña Authorization:
Marca la opción Add params to header.
3
Agregar headers
En la pestaña Headers:
4
Enviar la consulta de prueba
En Body selecciona raw > JSON y pega:Haz clic en Send.
Respuesta esperada
Una respuesta 200 OK confirma que las credenciales y permisos están correctos:Errores comunes
Alternativa: probar con cURL
Alternativa: probar con cURL
Copia el siguiente script, reemplaza los valores de credenciales al inicio, y pégalo directamente en una terminal (macOS, Linux o Windows con WSL/Git Bash).Requiere
curl, openssl, python3 y base64.Consultas de validación adicionales
Consultas de validación adicionales
Una vez que la consulta básica funcione, verifica acceso a los tipos de registro específicos que usa la integración:Si todas las consultas retornan resultados (o un array
items vacío con status 200), las credenciales y permisos están correctamente configurados.