{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"6df2a017-43aa-4f70-b690-acfdc4546d25","name":"Saint Sync Server","description":"**Ultima actualización: 10/09/2025**\n\nEl Saint Sync Server es un servidor web diseñado para facilitar el proceso de disponibilización de la base de datos del Saint Enterprise Administrativo a la web. Simplifica el acceso de desarrolladores de terceros a la base de datos, agregando una capa de abstracción.\n\nHaz [click aqui](https://saintnet.com/downloads/Admin/SaintSyncServer.rar) para descargar la **versión de prueba** **no comercial**.\n\n# Antes de empezar\n\nLa base de datos del Saint Enterprise Administrativo debe tener una licencia activa para que la conexión con el servidor web sea validada. Sin una licencia activa, el servidor web no podrá establecer la conexión.\n\nAdemas, se debe actualizar la base de datos para que esta sea compatible con el servidor web, esto se realiza ejecutando [este query.](https://saintnet.com/downloads/Admin/SQL_Admin_Web_Server.sql)\n\n# **Requisitos de Autenticación**\n\nAl realizar solicitudes al servidor web, se deben enviar ciertas cabeceras para la autenticación y permitir el acceso a la API. Estas cabeceras se detallan a continuación.\n\nLecturas Recomendadas:\n\n- [HTTP - Documentación de Mozilla MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP)\n    \n- [Cabeceras HTTP - Documentación de Mozilla MDN](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers)\n    \n\n# Autorización\n\nPara iniciar una sesión con la API, debes incluir la cabecera \"Authorization\" en la solicitud. Esta cabecera debe usar el formato \"usuario:clave\" y estar codificada en **Base64**. Nota los dos puntos (`:`) que separan los campos. Estas credenciales representan los datos de acceso del usuario al sistema Saint Enterprise Administrativo.\n\nPor ejemplo, si el usuario es \"Admin\" y la contraseña es \"12345\", la cabecera de autorización se verá así:\n\n``` json\n{\n    \"Authorization\": \"Basic QWRtaW46MTIzNDU=\"\n}\n\n ```\n\nPuedes utilizar herramientas como [Base64 Decoder](https://www.base64decode.org/) para entender la información codificada.\n\n# Serial del API\n\nOtra cabecera requerida es \"x-api-key\", que identifica al desarrollador de terceros autorizado.\n\nEjemplo:\n\n``` json\n{\n    \"x-api-key\": \"B5D31933-C996-476C-B116-EF212A41479A\"\n}\n\n ```\n\n# Identificador de la aplicación\n\nLa solicitud también debe incluir la cabecera \"x-api-id\", que contiene el identificador único de la aplicación que intenta conectarse.\n\nEjemplo:\n\n``` json\n{\n    \"x-api-id\": 1093\n}\n\n ```\n\n# Terminal\n\nAdemás, el cuerpo de la solicitud debe incluir un nombre de terminal que sirva como un identificador reconocible para la aplicación que se conecta. Este valor es arbitrario y lo define el integrador o desarrollador de la aplicación. El nombre del terminal se almacenará en la base de datos bajo el parámetro \"CodEsta.\"\n\n``` json\n{\n    \"terminal\": \"Postman\"\n}\n\n ```\n\n# Pragma\n\nDespués de iniciar la sesión, el servidor responderá con una cabecera \"Pragma\". Esta cabecera debe incluirse en las solicitudes posteriores al servidor. Una vez que hayas recibido la cabecera Pragma, no necesitas enviar las cabeceras Authorization, x-api-key y x-api-id en futuras solicitudes. La cabecera Pragma contendrá toda la información necesaria para que el servidor autorice las solicitudes posteriores.\n\nEjemplo:\n\n``` json\n{\n    \"Pragma\": \"dssession=400850.968457.901242,dssessionexpires=1199859\"\n}\n\n ```\n\n# Como usar la documentación\n\nEn el lado izquierdo de la pantalla, verás un esquema de la documentación. Además de los temas mencionados aquí, hay dos secciones clave: \"main\" y \"adm.\" Estos prefijos ayudan a organizar los endpoints disponibles. \"adm\" significa \"Administrativo.\" Actualmente, la sección \"main\" solo contiene el endpoint de inicio de sesión, que debe ser llamado antes de acceder a cualquier otro endpoint dentro de la API.\n\n# Cabeceras a enviar\n\nInicio de sesion:\n\n``` json\n{\n    \"method\": \"POST\",\n    \"headers\": {\n        \"Content-Type\": \"application/json\",\n        \"Authorization\": \"Basic QWRtaW46MTIzNDU=\",\n        \"x-api-key\": \"B5D31933-C996-476C-B116-EF212A41479A\",\n        \"x-api-id\" : \"1093\"\n    },\n    \"body\": {\n        \"terminal\": \"Nombre que identifica la aplicación\"\n    }\n}\n\n ```\n\nSolicitudes de tipo GET:\n\n``` json\n{\n    \"method\": \"GET\",\n    \"headers\": {\n        \"Pragma\": \"dssession=400850.968457.901242,dssessionexpires=1199859\"\n    }\n}\n\n ```\n\nSolicitudes de tipo POST (El ejemplo será usando el servicio **/customers**):\n\n``` json\n{\n    \"method\": \"POST\",\n    \"headers\": {\n        \"Pragma\": \"dssession=400850.968457.901242,dssessionexpires=1199859\"\n    },\n    \"body\": [\n        {\n            \"codclie\": \"01\",\n            \"descrip\": \"PRIMER CLIENTE\",\n            \"activo\": 1 //Indica que esta activo operaciones\n        },\n        {\n            \"codclie\": \"02\",\n            \"descrip\": \"SEGUNDO CLIENTE\",\n            \"activo\": 1\n        },\n        {\n            \"codclie\": \"03\",\n            \"decrip\": \"TERCER CLIENTE\",\n            \"activo\": 0 //Inactivo para operaciones\n        }\n    ]\n}\n\n ```\n\n# Versiones del API\n\nA partir de la versión del Servidor Web publicada el **26/11/2024** (disponible para descarga en esta documentación), el URL de conexión del Servidor Web ahora incluye la versión del API.\n\nEsta modificación facilita futuras actualizaciones al especificar la versión del API que se utilizará. Por ejemplo, si antes la URL era [<b>http://localhost:6163/api/adm/customers</b>](http://localhost:6163/api/adm/customers), ahora será [<b>http://localhost:6163/api/v1/adm/customers</b>](http://localhost:6163/api/v1/adm/customers)","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"31311438","collectionId":"6df2a017-43aa-4f70-b690-acfdc4546d25","publishedId":"2sB3HnMLcm","public":true,"publicUrl":"https://documenter-api.postman.tech/view/31311438/2sB3HnMLcm","privateUrl":"https://go.postman.co/documentation/31311438-6df2a017-43aa-4f70-b690-acfdc4546d25","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/e80cbae8-4ec2-446c-a9a1-7cecfbde3ab2/c2FpbnRfbG9nb19ibGFuY28ucG5n","colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":"https://content.pstmn.io/185d0c25-f8c9-461b-a0cb-45b447c6e732/c2FpbnRfbG9nb19henVsLnBuZw==","colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.12.3","publishDate":"2025-09-10T16:38:17.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":"https://content.pstmn.io/185d0c25-f8c9-461b-a0cb-45b447c6e732/c2FpbnRfbG9nb19henVsLnBuZw==","logoDark":"https://content.pstmn.io/e80cbae8-4ec2-446c-a9a1-7cecfbde3ab2/c2FpbnRfbG9nb19ibGFuY28ucG5n"}},"statusCode":200},"environments":[{"name":"SAINT","id":"5e1bb025-0666-470d-811f-64901e97b9ed","owner":"31311438","values":[{"key":"apiKey","value":"B5D31933-C996-476C-B116-EF212A41479A","enabled":true,"type":"default"},{"key":"appId","value":"1093","enabled":true,"type":"default"},{"key":"usuario","value":"001","enabled":true,"type":"default"},{"key":"clave","value":"MDAxOjEyMzQ1","enabled":true,"type":"default"},{"key":"dssession","value":"","enabled":true,"type":"any"},{"key":"url","value":"","enabled":true,"type":"default"}],"published":true}],"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/768118b36f06c94b0306958b980558e6915839447e859fe16906e29d683976f0","favicon":""},"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"},{"label":"SAINT","value":"31311438-5e1bb025-0666-470d-811f-64901e97b9ed"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/2sB3HnMLcm"}