{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"8d475e0c-3511-4628-9e8d-3ebbcc788de3","name":"🔌API Labor","description":"<p>Documentación de la API estándar para integraciones externas con Labor.<br>La autenticación será con el usuario y contraseña proporcionados por Summar.</p>\n\n# **🧪 Pruebas de la API**\n\nPara probar las diferentes funciones, con el botón \"Run in Postman\" se pueden probar las funciones en la aplicación de Windows de Postman o directamente en un navegador, y allí se pueden informar las variables y ejecutar cada función para ver el resultado.\n\n# **⚙️ Variables de la API**\n\nAntes de ejecutar los endpoints, asegúrate de definir las siguientes variables:\n\n- `{{APIbaseURL}}`: URL base de la API (ej. `https://clientUrl:7048/service`)\n    \n- `{{APIuser}}`: ID del usuario\n    \n- `{{APIpassword}}`: Contraseña del usuario\n    \n- `{{APIcompanyId}}`: ID de la Company/Empresa Navision seleccionada (necesario para todas las consultas)\n    \n- `{{APIemployeeId}}`: ID del empleado seleccionado (para las consultas filtradas por un empleado)\n    \n- `{{APIemployeeContractId}}`: ID del contrato de un empleado seleccionado (para las consultas filtradas por un contrato de empleado)\n    \n- `{{APIattachmentNo}}`: Nº del anexo seleccionado (para las consultas filtradas por un anexo)\n    \n- `{{APIemployeeJournalLineId}}`: ID del registro del diario de altas/modificaciones (para las modificaciones o eliminaciones de registros del diario)\n    \n- `{{APIterminationJournalLineId}}`: ID del registro del diario de bajas (para las modificaciones o eliminaciones de registros del diario)\n    \n- `{{APIincidentsJournalLineId}}`: ID del registro del diario de incidencias (para las modificaciones o eliminaciones de registros del diario)\n    \n\n# 💡 **Consejos prácticos**\n\nA continuación se presentan recomendaciones útiles para optimizar tus consultas OData en la API de Labor Summar, acompañadas de ejemplos prácticos.\n\n---\n\n## 🔍 Filtrado de datos\n\nPuedes aplicar filtros sobre campos específicos utilizando el parámetro `$filter` al final de la URL.\n\n**Ejemplo 1**: Filtrar empleados por código de empresa\n\n``` html\n{{APIbaseURL}}/api/summar/labor/v1.0/companies({{APIcompanyId}})/employees?$filter=laborCompanyCode eq 'A34544551'\n\n ```\n\n**Ejemplo 2**: Filtrar empleados por fecha de última modificación\n\n``` html\n{{APIbaseURL}}/api/summar/labor/v1.0/companies({{APIcompanyId}})/employees?$filter=modifiedOn ge 2025-08-01T00:00:00Z\n\n ```\n\n---\n\n## 📋 Selección de campos\n\nPuedes limitar los campos devueltos en la respuesta usando `$select`, lo que simplifica los resultados y mejora el rendimiento.\n\n**Ejemplo 3**: Obtener solo nombre y NIF de los empleados\n\n``` html\n{{APIbaseURL}}/api/summar/labor/v1.0/companies({{APIcompanyId}})/employees?$select=name,firstSurname,secondSurname,vatNumber\n\n ```\n\n---\n\n## 📐 Ordenación de resultados\n\nOrdena los resultados por uno o varios campos utilizando `$orderby`.\n\n**Ejemplo 4**: Ordenar empleados por fecha de última modificación (descendente)\n\n``` html\n{{APIbaseURL}}/api/summar/labor/v1.0/companies({{APIcompanyId}})/employees?$orderby=modifiedOn desc\n\n ```\n\n---\n\n## 🔢 Conteo de registros\n\nPara obtener únicamente el número de registros sin los datos, combina `$count=true` con `$top=0`.\n\n**Ejemplo 5**: Obtener el número total de empleados sin detalles\n\n``` html\n{{APIbaseURL}}/api/summar/labor/v1.0/companies({{APIcompanyId}})/employees?$count=true&$top=0\n\n ```\n\n---\n\n## 📄 Paginación de resultados\n\nDivide grandes volúmenes de datos en páginas usando `$top` y `$skip`.\n\n**Ejemplo 6**: Obtener los primeros 20 empleados\n\n``` html\n{{APIbaseURL}}/api/summar/labor/v1.0/companies({{APIcompanyId}})/employees?$top=20\n\n ```\n\n**Ejemplo 7**: Obtener empleados del 21 al 40\n\n``` html\n{{APIbaseURL}}/api/summar/labor/v1.0/companies({{APIcompanyId}})/employees?$skip=20&$top=20\n\n ```\n\n---\n\n## ✂️ Truncado de resultados\n\nCuando una respuesta contiene más resultados de los que se devuelven en una sola página, se trunca el resultado, pero incluye el campo \"@odata.nextLink\" en la respuesta, con la URL que hay que llamar para obtener la siguiente página de resultados. Si este campo no aparece, significa que ya se han recibido todos los datos disponibles.\n\n---\n\n## 🔗 Enlaces\n\n[https://www.odata.org/getting-started/basic-tutorial/](https://www.odata.org/getting-started/basic-tutorial/)\n\n[https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/webservices/use-filter-expressions-in-odata-uris](https://learn.microsoft.com/en-us/dynamics365/business-central/dev-itpro/webservices/use-filter-expressions-in-odata-uris)\n\n# **🔢 Versiones**\n\n- `1.0.2`: 20/10/2026 - Nuevos endpoints para la gestión de firma electrónica\n    \n- `1.0.1`: 15/09/2026 - Nuevos endpoints para la gestión de anexos y ajustes en los nombres de campos\n    \n- `1.0.0`: 01/09/2025 - Versión inicial\n    \n\n# **🔄 Cambios entre versiones**\n\n- Versión 1.0.2: se añaden los endpoints _eSignatureTransactions_ y _eSignatureRequests_ (GET). No hay cambios en endpoints existentes.\n    \n- Versión 1.0.1 (Se han corregido algunos nombres de campos, aunque se mantiene el campo anterior disponible para mantener la compatibilidad con versiones anteriores). En los ejemplos sólo aparece el campo nuevo, aunque también siga vigente el campo anterior.\n    \n\n| Campo anterior | Campo nuevo | Endpoints afectados |\n| --- | --- | --- |\n| backAccountNumber | bankAccountNumber | employeeJournalLines (GET/POST/PATCH) |\n| backAccountNumberBban | bankAccountNumberBban | employeeJournalLines (GET/POST/PATCH) |\n| companyCode | laborCompanyCode | employeePhotos (GET) |\n| durationTimeUnit | contractDurationTimeUnit | employeeContracts (GET), employeeJournalLines (GET/POST/PATCH) |\n| employeeFreeField1…10 | employeeCustomField1…10 | workers (GET) |\n| endDateForeignAutorization | foreignAuthorizationEndDate | employeeContracts (GET), workers (GET), employeeJournalLines (GET/POST/PATCH) |\n| foreignAutorizationCode | foreignAuthorizationCode | employeeContracts (GET), workers (GET), employeeJournalLines (GET/POST/PATCH) |\n| foreignAutorizationDescription | foreignAuthorizationDescription | employeeContracts (GET), workers (GET), employeeJournalLines (GET/POST/PATCH) |\n| foreignAutorizationRemarks | foreignAuthorizationRemarks | employeeContracts (GET), workers (GET), employeeJournalLines (GET/POST/PATCH) |\n| foriegnWorkExemption | foreignWorkExemption | employeeContracts (GET), employeeContractChanges (GET), workers (GET) |\n| foriegnWorkExemptionDate | foreignWorkExemptionDate | employeeContracts (GET), employeeContractChanges (GET), workers (GET) |\n| foriegnWorkExemptionUpdate | foreignWorkExemptionUpdate | employeeContracts (GET), employeeContractChanges (GET), workers (GET) |\n| lastModifiedOn | modifiedOn | employees (GET), employeeContracts (GET), workers (GET) |\n| level1code | costCenterLevel1Code | employeeSalaryInformation (GET) |\n| level2code | costCenterLevel2Code | employeeSalaryInformation (GET) |\n| level3code | costCenterLevel3Code | employeeSalaryInformation (GET) |\n| level4code | costCenterLevel4Code | employeeSalaryInformation (GET) |\n| numberingType | numberType | employeeJournalLines (GET/POST/PATCH) |\n| sectionDescription | costCenterDescription | employeeSalaryInformation (GET) |\n| workHoursTimeUnit | workdayHoursTimeUnit | employeeContracts (GET), employeeContractChanges (GET), workers (GET), employeeJournalLines (GET/POST/PATCH) |\n| classificationSubcode | classificationSubCode | employeeAttachments (GET) |\n| employeeContractID | employeeContractId | employeeContractChanges (GET), employeeCostCenters (GET) |\n| exemptionSubcode | exemptionSubCode | employeeContracts (GET), workers (GET) |\n| subcode | subCode | contracts (GET) |","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"49520574","team":15190839,"collectionId":"8d475e0c-3511-4628-9e8d-3ebbcc788de3","publishedId":"2sBY4HSP7x","public":true,"publicUrl":"https://apilabor.summarbysilae.es","privateUrl":"https://go.postman.co/documentation/49520574-8d475e0c-3511-4628-9e8d-3ebbcc788de3","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":"https://content.pstmn.io/54e050c2-b3a3-4aed-9953-2b249ada7f28/c3VtbWFyLWZvb3RlcjIucG5n","colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":"https://content.pstmn.io/7e97f952-90bf-4ce1-a048-2efb304d0e78/c3VtbWFyLWZvb3RlcjIucG9ydG1hbi5wbmc=","colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.12.10","publishDate":"2026-07-03T07:49:58.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":"https://content.pstmn.io/7e97f952-90bf-4ce1-a048-2efb304d0e78/c3VtbWFyLWZvb3RlcjIucG9ydG1hbi5wbmc=","logoDark":"https://content.pstmn.io/54e050c2-b3a3-4aed-9953-2b249ada7f28/c3VtbWFyLWZvb3RlcjIucG5n"}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/46251b563559223bb14ea8ba2d4940f349c3a323140b1264fe798f893d58ebf0","favicon":"https://summarbysilae.es/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://apilabor.summarbysilae.es/view/metadata/2sBY4HSP7x"}