Integraciones Para importacion de Nomina
Propuesta Técnica
Sección titulada «Propuesta Técnica»Flujos de Integración con Microsoft Sharepoint
Sección titulada «Flujos de Integración con Microsoft Sharepoint»Lineamiento de Integración
Sección titulada «Lineamiento de Integración»-
El sistema de nómina se integrará con Microsoft SharePoint para almacenar y gestionar documentos relacionados con la nómina, como recibos de pago y otros documentos relevantes.
-
La integración se realizará utilizando la API de Microsoft Graph, que permite interactuar con los servicios de Microsoft 365, incluido SharePoint.
-
Se implementará un proceso automatizado que subirá los documentos de nómina a una biblioteca específica en SharePoint, para facilitar su acceso y gestión.

Cron Job Para obtener la Informacion de Nomina
Sección titulada «Cron Job Para obtener la Informacion de Nomina»Lineamiento de Integración
Sección titulada «Lineamiento de Integración»-
Se desarrollará un proceso automatizado (Job) que se ejecutará periódicamente para obtener la información de nómina desde el sharepoint.
-
La información obtenida de la nomina se almacenará en Business Central.
Integracion y Validacion de Documentos de Nomina
Sección titulada «Integracion y Validacion de Documentos de Nomina»Lineamiento de Integración
Sección titulada «Lineamiento de Integración»- La integracion obtendra los datos de nomina desde el sharepoint y los insertara en los diarios de pago de Business Central.
Estructura del Archivo
Sección titulada «Estructura del Archivo»desde Business Central se permitirá importar archivos de nómina en formato TXT o CSV mediante dos mecanismos:
El archivo debe respetar una estructura previamente definida, donde cada línea representa un asiento contable y contiene información como:
- Empresa.
- Tipo de diario.
- Número de documento.
- Tipo de cuenta
- Número de cuenta.
- Fechas contables.
- Importes (Debe / Haber).
- Tipo de importe (Debe o Haber).
- Tipo de Cuentra Contrapartida (cuando aplique).
- Cuenta contrapartida (cuando aplique).
- Método de pago (cuando aplica).
- Dimensiones.
Empresa
Sección titulada «Empresa»Código de la empresa en Business Central. Puede ser un codigo alfanumerico con espacios y caracteres especiales, pero debe ser único para cada empresa.
Tipo de diario.
Sección titulada «Tipo de diario.»Identificador del tipo de diario en Business Central. Solo puede ser numerico.
- Tipos de diario:
- 0 = Diario General
- 1 = Diario de Pagos
Número de documento.
Sección titulada «Número de documento.»Número que identifica el documento en Business Central. Puede ser alfanumérico.
Tipo de cuenta
Sección titulada «Tipo de cuenta»Indica el tipo de cuenta en Business Central. Solo puede ser numerico.
- Tipos de cuenta:
- 0 = Cuenta Contable
- 1 = Cliente
- 2 = Proveedor
- 3 = Cuenta Bancaria
- 4 = Activo Fijo
- 5 = Socio IC
- 6 = Empleado
- 7 = Cuenta de Asignacion
Numero de Cuenta
Sección titulada «Numero de Cuenta»Número que identifica la cuenta en Business Central. Puede ser alfanumérico.
Fechas Contables
Sección titulada «Fechas Contables»Fecha en formato ISO 8601 (YYYY-MM-DD) que indica la fecha contable del asiento.
Importes (Debe / Haber)
Sección titulada «Importes (Debe / Haber)»Importe numérico que indica el monto del asiento. El importe debe ser positivo.
Tipo de importe
Sección titulada «Tipo de importe»Indica si el importe corresponde al Debe o al Haber. Solo puede ser numerico.
- Tipos de importe:
- 1 = Debe
- 2 = Haber
Tipo de Cuenta Contrapartida (cuando aplique)
Sección titulada «Tipo de Cuenta Contrapartida (cuando aplique)»Indica el tipo de cuenta contrapartida en Business Central. Solo puede ser numerico.
- Tipos de cuenta contrapartida:
- 0 = Cuenta Contable
- 1 = Cliente
- 2 = Proveedor
- 3 = Cuenta Bancaria
- 4 = Activo Fijo
- 5 = Socio IC
- 6 = Empleado
- 7 = Cuenta de Asignacion
Cuenta Contrapartida (cuando aplique)
Sección titulada «Cuenta Contrapartida (cuando aplique)»Número que identifica la cuenta contrapartida en Business Central. Puede ser alfanumérico.
Método de pago (cuando aplica)
Sección titulada «Método de pago (cuando aplica)»Indica el método de pago utilizado en la transacción. Solo puede ser numerico.
Dimensiones
Sección titulada «Dimensiones»Las dimensiones son atributos adicionales que se pueden asignar a los asientos contables para proporcionar información adicional sobre la transacción. Pueden incluir información como el departamento, el proyecto, la ubicación, entre otros. Las dimensiones se representan como pares de nombre y valor en el archivo de nómina.
Ejemplo de Estructura del Archivo
Sección titulada «Ejemplo de Estructura del Archivo»Puntos Previos
Sección titulada «Puntos Previos»- URL del ambiente de Microsoft SharePoint
- URL de producción o ambiente de pruebas
- Ejemplo: https://contoso.sharepoint.com/sites/nomina
- TenantId: Identificador único del Proveedor.
- Credenciales OAuth 2.0
- Client ID (Aplicación ID): Identificador de la aplicación registrada
- Client Secret: Clave secreta de la aplicación.
- Permisos y alcances (Scopes)
- Definir los permisos necesarios para acceder a las Apis
- Ejemplo: https://api.businesscentral.dynamics.com/.default
- Token de acceso (Oauth 2.0)
- Drive ID
- Identificador del drive de SharePoint donde se encontrara los documentos de nómina.
- Ejemplo: b!1234567890abcdef1234567890abcdef!123
- Site ID
- Identificador del sitio de SharePoint donde se encontrara los documentos de nómina.
- Ejemplo: 12345678-90ab-cdef-1234-567890abcdef
- Folder ID
- Identificador de la carpeta dentro del drive de SharePoint donde se encontrara los documentos de nómina.
- Ejemplo: 01ABCD2345678901234567890ABCDEFF
Recursos para pruebas
Sección titulada «Recursos para pruebas»Obtener Token de Acceso para Microsoft Graph API
Sección titulada «Obtener Token de Acceso para Microsoft Graph API»POST'https://login.microsoftonline.com/{{tenantId}}/oauth2/v2.0/token''Content-Type: application/x-www-form-urlencoded'body{ client_id={clientId} scope= 'https://graph.microsoft.com/.default' client_secret='{{clientSecret}}' grant_type='client_credentials'}Obtener unidades de SharePoint (Drive)
Sección titulada «Obtener unidades de SharePoint (Drive)»GEThttps://graph.microsoft.com/v1.0/sites/virtualofgroup.sharepoint.com,c887b431-1d21-42e6-ae2e-a81e165fcacd,ddaa5855-305f-4f94-9b50-f08afd1dbec8/drives'--header 'Accept: application/json'--header 'Authorization: Bearer {token}'Datos obtenidos
{ "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#drives", "value": [ { "createdDateTime": "2026-03-06T14:06:58Z", "description": "", "id": "b!MbSHyCEd5kKuLqgeFl_KzVVYqt1fMJRPm1Dwiv0dvsjoqFOFf9ckRbXgC62z82Eu", "lastModifiedDateTime": "2026-03-06T14:06:58Z", "name": "Nomina", "webUrl": "https://virtualofgroup.sharepoint.com/sites/vog-prueba/Nomina", "driveType": "documentLibrary", "createdBy": { "user": { "email": "admin@virtualofgroup.onmicrosoft.com", "id": "ee769023-dc21-4cd1-9661-2478d55f5c03", "displayName": "Virtual Office Group, C.A" } }, "owner": { "group": { "email": "vog-prueba@virtualofgroup.onmicrosoft.com", "id": "83d0b60b-c8f1-4d50-a2e5-7df7f50ebf2c", "displayName": "Propietarios vog-prueba" } }, "quota": { "deleted": 1348596, "remaining": 27487771044375, "state": "normal", "total": 27487790694400, "used": 18301429 } } ]}Campos de respuestas
| Nombre | Tipo de dato | Descripción |
|---|---|---|
| @odata.context | string | URL del contexto de la respuesta. |
| value | array | Lista de unidades de SharePoint (drives) disponibles en el sitio. |
| createdDateTime | string | Fecha y hora de creación de la unidad de SharePoint. |
| description | string | Descripción de la unidad de SharePoint. |
| id | string | Identificador único de la unidad de SharePoint. |
| lastModifiedDateTime | string | Fecha y hora de la última modificación de la unidad de SharePoint. |
| name | string | Nombre de la unidad de SharePoint. |
| webUrl | string | URL de la unidad de SharePoint. |
| driveType | string | Tipo de unidad de SharePoint (por ejemplo, “documentLibrary”). |
| createdBy | object | Información sobre el usuario que creó la unidad de SharePoint. |
| owner | object | Información sobre el propietario de la unidad de SharePoint. |
| quota | object | Información sobre la cuota de almacenamiento de la unidad de SharePoint. |
Obtener sitio de SharePoint
Sección titulada «Obtener sitio de SharePoint»GET'https://graph.microsoft.com/v1.0/sites/virtualofgroup.sharepoint.com:/sites/vog-prueba''Accept: application/json''Authorization: Bearer {token}'Datos obtenidos
{ "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#sites/$entity", "createdDateTime": "2025-09-12T19:28:35.603Z", "description": "", "id": "virtualofgroup.sharepoint.com,c887b431-1d21-42e6-ae2e-a81e165fcacd,ddaa5855-305f-4f94-9b50-f08afd1dbec8", "lastModifiedDateTime": "2026-03-22T17:52:06Z", "name": "vog-prueba", "webUrl": "https://virtualofgroup.sharepoint.com/sites/vog-prueba", "displayName": "vog-prueba", "root": {}, "siteCollection": { "hostname": "virtualofgroup.sharepoint.com" }}campos de respuestas
| Nombre | Tipo de dato | Descripción |
|---|---|---|
| @odata.context | string | URL del contexto de la respuesta. |
| id | string | Identificador único del sitio de SharePoint. |
| name | string | Nombre del sitio de SharePoint. |
| webUrl | string | URL del sitio de SharePoint. |
| displayName | string | Nombre para mostrar del sitio de SharePoint. |
| createdDateTime | string | Fecha y hora de creación del sitio de SharePoint. |
| lastModifiedDateTime | string | Fecha y hora de la última modificación del sitio de SharePoint. |
| description | string | Descripción del sitio de SharePoint. |
| root | object | Información sobre la raíz del sitio de SharePoint. |
| siteCollection | object | Información sobre la colección de sitios de SharePoint. |
Obtener carpeta de SharePoint
Sección titulada «Obtener carpeta de SharePoint»Datos obtenidos
{ "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#Collection(driveItem)", "value": [ { "@odata.etag": "\"{CC99933F-4760-4DCB-B9CA-44069C2F8DBD},1\"", "id": "01QMYQJ7R7SOM4YYCHZNG3TSSEA2OC7DN5", "name": "Activos fijos", "webUrl": "https://virtualofgroup.sharepoint.com/sites/vog-prueba/Facturas/Activos%20fijos", "folder": { "childCount": 0 } }, ]}Campos de respuestas
| Nombre | Tipo de dato | Descripción |
|---|---|---|
| @odata.context | string | URL del contexto de la respuesta. |
| value | array | Lista de carpetas disponibles en la unidad de SharePoint. |
| @odata.etag | string | ETag de la carpeta, utilizado para control de concurrencia. |
| id | string | Identificador único de la carpeta en SharePoint. |
| name | string | Nombre de la carpeta en SharePoint. |
| webUrl | string | URL de la carpeta en SharePoint. |
| folder | object | Información adicional sobre la carpeta, como el número de elementos hijos (childCount). |
Inserción de Documentos en SharePoint
Sección titulada «Inserción de Documentos en SharePoint»Documentos menores a 4MB
Sección titulada «Documentos menores a 4MB»PUThttps://graph.microsoft.com/v1.0/drives/{drive_id}/items/{folder_id}:/{nombre_archivo}:/contentAuthorization: Bearer {token}Content-Length: {tamaño del archivo en bytes}Content-Range: bytes 0-{tamaño del archivo - 1}/{tamaño total del archivo}Content-Type: application/octet-stream.body{ data-binary '@/C:/Users/programador02/AppData/Local/Postman/app-12.3.0/ffmpeg.dll'}Datos obtenidos
{ "id": "01QMYQJ7R7SOM4YYCHZNG3TSSEA2OC7DN5", "name": "ffmpeg.dll", "webUrl": "https://virtualofgroup.sharepoint.com/sites/vog-prueba/Facturas/Activos%20fijos/ffmpeg.dll", "size": 123456}Campos de respuestas
| Nombre | Tipo de dato | Descripción |
|---|---|---|
| id | string | Identificador único del archivo en SharePoint. |
| name | string | Nombre del archivo en SharePoint. |
| webUrl | string | URL del archivo en SharePoint. |
| size | integer | Tamaño del archivo en bytes. |
Documentos mayores a 4MB
Sección titulada «Documentos mayores a 4MB»Para archivos grandes (imágenes de alta resolución, videos o PDFs extensos), el archivo debe dividirse en trozos. Cada trozo debe ser múltiplo de 320 KB (excepto el último).
PUThttps://graph.microsoft.com/v1.0/drives/{drive_id}/items/{folder_id}:/{nombre_archivo}:/createUploadSessionAuthorization: Bearer {token}Content-Type: application/octet-stream.Content-Length: {tamaño del archivo en bytes}Content-Range: bytes 0-{tamaño del archivo - 1}/{tamaño total del archivo}body{ data-binary '@/C:/Users/programador02/AppData/Local/Postman/app-12.3.0/ffmpeg.dll'}Datos obtenidos
{ "id": "01QMYQJ7R7SOM4YYCHZNG3TSSEA2OC7DN5", "name": "ffmpeg.dll", "webUrl": "https://virtualofgroup.sharepoint.com/sites/vog-prueba/Facturas/Activos%20fijos/ffmpeg.dll", "size": 123456}Campos de respuestas
| Nombre | Tipo de dato | Descripción |
|---|---|---|
| id | string | Identificador único del archivo en SharePoint. |
| name | string | Nombre del archivo en SharePoint. |
| webUrl | string | URL del archivo en SharePoint. |
| size | integer | Tamaño del archivo en bytes. |