Ir al contenido

Integraciones Para importacion de Nomina

Flujos de Integración con Microsoft Sharepoint

Sección titulada «Flujos de Integración con Microsoft Sharepoint»
  • 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.

Diagrama de Integración con Microsoft SharePoint

Cron Job Para obtener la Informacion de Nomina

Sección titulada «Cron Job Para obtener la Informacion de Nomina»
  • 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»
  • La integracion obtendra los datos de nomina desde el sharepoint y los insertara en los diarios de pago de Business Central.

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.

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.

Identificador del tipo de diario en Business Central. Solo puede ser numerico.

  • Tipos de diario:
    • 0 = Diario General
    • 1 = Diario de Pagos

Número que identifica el documento en Business Central. Puede ser alfanumérico.

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

Número que identifica la cuenta en Business Central. Puede ser alfanumérico.

Fecha en formato ISO 8601 (YYYY-MM-DD) que indica la fecha contable del asiento.

Importe numérico que indica el monto del asiento. El importe debe ser positivo.

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

Número que identifica la cuenta contrapartida en Business Central. Puede ser alfanumérico.

Indica el método de pago utilizado en la transacción. Solo puede ser numerico.

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.

  1. URL del ambiente de Microsoft SharePoint
  2. Credenciales OAuth 2.0
    • Client ID (Aplicación ID): Identificador de la aplicación registrada
    • Client Secret: Clave secreta de la aplicación.
  3. Permisos y alcances (Scopes)
  4. Drive ID
    • Identificador del drive de SharePoint donde se encontrara los documentos de nómina.
    • Ejemplo: b!1234567890abcdef1234567890abcdef!123
  5. Site ID
    • Identificador del sitio de SharePoint donde se encontrara los documentos de nómina.
    • Ejemplo: 12345678-90ab-cdef-1234-567890abcdef
  6. Folder ID
    • Identificador de la carpeta dentro del drive de SharePoint donde se encontrara los documentos de nómina.
    • Ejemplo: 01ABCD2345678901234567890ABCDEFF

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'
}
GET
https://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.
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.

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).
PUT
https://graph.microsoft.com/v1.0/drives/{drive_id}/items/{folder_id}:/{nombre_archivo}:/content
Authorization: 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.

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).

PUT
https://graph.microsoft.com/v1.0/drives/{drive_id}/items/{folder_id}:/{nombre_archivo}:/createUploadSession
Authorization: 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.