Dispositivo POST Scanner (escáner) La interfaz del escáner es responsable de administrar el periférico del escáner. Se envía a: https:// 172.20.10.1:2011/v1/device/scanner Petición width: Anchura del visor del escáner. height: Altura del visor del escáner. Respuesta resultCode: Valor del código de resultado. Data: Datos escaneados. Se pueden devolver los siguientes resultCodes: 0 Success -1001 scan canceled -1999 Exception error ENCABEZADOS X-SOURCE NOMBRE DE LA APLICACIÓN ID de la aplicación de la persona que llama que identifica de forma exclusiva la aplicación que origina la solicitud de API. Body raw (json) { "width": 300, "height": 900 } Estos son ejemplos de petición y respuesta de POST Escáner. Aquí tienes los ejemplos en algunos lenguajes de programación. JavaScript - Fetch C# - HttpClient cURL - cURL Python - Requests Swift - URLSession Otros lenguajes var myHeaders = new Headers(); myHeaders.append("X-SOURCE", "APPNAME"); var raw = "{\n \"width\": 300,\n \"height\": 900\n}"; var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; fetch("https:// 172.20.10.1:2011/v1/device/scanner", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Post, "https:// 172.20.10.1:2011/v1/device/scanner"); request.Headers.Add("X-SOURCE", "APPNAME"); var content = new StringContent("{\n\t\"width\": 300,\n\t\"height\": 900\n}", null, "text/plain"); request.Content = content; var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); curl --location 'https:// 172.20.10.1:2011/v1/device/scanner' \ --header 'X-SOURCE: APPNAME' \ --data '{ "width": 300, "height": 900 }' import requests url = "https:// 172.20.10.1:2011/v1/device/scanner" payload = "{\n\t\"width\": 300,\n\t\"height\": 900\n}" headers = { 'X-SOURCE': 'APPNAME' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text) let parameters = "{\n\t\"width\": 300,\n\t\"height\": 900\n}" let postData = parameters.data(using: .utf8) var request = URLRequest(url: URL(string: "https:// 172.20.10.1:2011/v1/device/scanner")!,timeoutInterval: Double.infinity) request.addValue("APPNAME", forHTTPHeaderField: "X-SOURCE") request.httpMethod = "POST" request.httpBody = postData let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data else { print(String(describing: error)) return } print(String(data: data, encoding: .utf8)!) } task.resume() Puedes ver más ejemplos de lenguajes de programación en nuestra colección Postman. Este es el JSON de la respuesta y sus encabezados. Cuerpo Encabezados { "data": "9780132350884", "result": 0 } Content–Type application/json Date Mon, 8 Jun 2020 12:10:03 GMT Access-Control-Allow-Credentials true Access-Control-Allow-Origin * Connection keep-alive Content-Encoding gzip Transfer-Encoding chunked POST Printer (impresora) La interfaz de la impresora es responsable de gestionar los periféricos de la impresora. Se envía a: https:// 172.20.10.1:2011/v1/device/printer Petición objeto JSON Para imprimir textos, imágenes, códigos de barras o códigos QR debe definir el siguiente objeto JSON: typeFace: familia de tipografías. Actualmente soporta: – Monospace– Sans-Serif– Droid Sans– Droid Sans Mono advancedPaper: avanza hasta el final del papel automáticamente letterSpacing: el interlineado está en píxeles; el valor predeterminado es 4 GrayLevel: establece el valor de gris; si no se establece, el valor predeterminado es 0. Cuanto mayor sea la escala de grises, más oscura será la fuente de impresión y más lenta será la velocidad de impresión. Los valores disponibles son: – 0 -> Escala de grises más clara – 1 -> Escala de grises media – 2 -> Filas en escala de grises más oscuras: Lista de las filas a imprimir: Texto, Imagen, Código de barras o QR filas. Respuesta resultCode: Valor del código de resultado. Se pueden devolver los siguientes resultCodes: 0 Succes -1001 Printer Print Failure -1002 Failed to set the string in buffer -1003 Failed to set the image in buffer -1004 Printer Busy -1005 Out of paper -1006 Wrong Package -1007 Printer Hardware Failure -1008 OverTemperature -1009 Printing has not finished -1999 Exception error. Fila de texto type: Tipo de fila text: Texto para imprimir align: Tipo de alineación fontSize: Tamaño de la fuente del texto isBold: Marca para imprimir el texto con estilo negrita isUnderline: Marca para imprimir el texto con estilo de subrayado. Fila de texto con texto a la derecha type: Tipo de fila text: Texto para imprimir a la izquierda alignText: Texto para imprimir a la derecha align: Tipo de alineación fontSize: Tamaño de la fuente del texto isBold: Marca para imprimir el texto con estilo negrita isUnderline: Marca para imprimir el texto con estilo de subrayado. Fila de imagen type: Tipo de fila align: Tipo de alineación image: Imagen codificada Base64. Fila de código de barras type: Tipo de fila align: Tipo de alineación content: Contenido que se incluirá en el código de barras height: Altura del código de barras margin: Margen de impresión scale: Escala format: Tipo de formato del código de barras. Fila del código QR type: Tipo de fila align: Tipo de alineación content: Contenido que se incluirá en el código QR size: Tamaño del QR generado. Tipos de fila Tipos de fila disponibles: TEXT: Fila de texto IMAGE: Fila de imágenes BARCODE: Fila de código de barras QR: Fila de código QR. Tipos de alineación LEFT: Alinear el elemento a la izquierda RIGHT: Alinear el elemento a la derecha CENTER: Alinear el elemento con el centro. Tipos de formato de código de barras CODABAR CODE_39 CODE_93 CODE_128 EAN_8 EAN_13 ITF UPC_A UPC_E ENCABEZADOS X-SOURCE NOMBRE DE LA APLICACIÓN ID de la aplicación de la persona que llama que identifica de forma exclusiva la aplicación que origina la solicitud de API. Body raw (json) { "typeFace": "Droid Sans Mono", "advancePaper": true, "letterSpacing": 0, "grayLevel": 2, "rows": [ { "type": "IMAGE", "image": "iVBORw0KGoVzp04L+scwcnxX8B3h+BXkdeQ2YAAAAASUVORK5CYII=", "align": "CENTER" }, { "type": "TEXT", "text": "ITOS TECHNOLOGY", "align": "CENTER", "fontSize": 32, "isBold": true, "isUnderline": false }, { "type": "TEXT", "text": "ISO Payment API", "align": "LEFT", "fontSize": 23, "isBold": false, "isUnderline": true }, { "type": "TEXT", "text": "Date & Time: ", "rightText": "8-6-2020", "fontSize": 23, "isBold": false, "isUnderline": false }, { "type": "TEXT", "text": "Version: ", "rightText": "1.0-alpha", "fontSize": 23, "isBold": false, "isUnderline": false }, { "type": "BARCODE", "content": "1234566666666", "height": 32, "margin": 5, "scale": 2, "format": "ITF", "align": "CENTER" }, { "type": "QR", "content": "Copyright © 2020 by ITOS TECHNOLOGY S.L", "size": 64, "align": "CENTER" } ] } Estos son ejemplos de petición y respuesta de POST Impresora. Aquí tienes los ejemplos en algunos lenguajes de programación. JavaScript - Fetch C# - HttpClient cURL - cURL Python - Requests Swift - URLSession Otros lenguajes var myHeaders = new Headers(); myHeaders.append("X-SOURCE", "APPNAME"); var raw = "{\n \"typeFace\": \"Droid Sans Mono\",\n \"advancePaper\": true,\n \"letterSpacing\": 0,\n \"grayLevel\": 2,\n \n \"rows\": [\n {\n \"type\": \"IMAGE\",\n \"image\": \"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAA79coK/nOAvJ/jLCdJhSK0COuSoVzp04L+scwcnxX8B3h+BXkdeQ2YAAAAASUVORK5CYII=\",\n \"align\": \"CENTER\"\n },\n {\n \"type\": \"TEXT\",\n \"text\": \"ITOS TECHNOLOGY\",\n \"align\": \"CENTER\",\n \"fontSize\": 32,\n \"isBold\": true,\n \"isUnderline\": false\n },\n {\n \"type\": \"TEXT\",\n \"text\": \"ISO Payment API\",\n \"align\": \"LEFT\",\n \"fontSize\": 23,\n \"isBold\": false,\n \"isUnderline\": true\n },\n {\n \"type\": \"TEXT\",\n \"text\": \"Date & Time: \",\n \"rightText\":\"8-6-2020\",\n \"fontSize\": 23,\n \"isBold\": false,\n \"isUnderline\": false\n },\n {\n \"type\": \"TEXT\",\n \"text\": \"Version: \",\n \"rightText\":\"1.0-alpha\",\n \"fontSize\": 23,\n \"isBold\": false,\n \"isUnderline\": false\n },\n {\n \"type\": \"BARCODE\",\n \"content\": \"1234566666666\",\n \"height\": 32,\n \"margin\": 5,\n \"scale\": 2,\n \"format\": \"ITF\",\n \"align\": \"CENTER\"\n },\n {\n \"type\": \"QR\",\n \"content\": \"Copyright © 2020 by ITOS TECHNOLOGY S.L\",\n \"size\": 64,\n \"align\": \"CENTER\"\n }\n ]\n}"; var requestOptions = { method: 'POST', headers: myHeaders, body: raw, redirect: 'follow' }; fetch("https:// 172.20.10.1:2011/v1/device/printer", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Post, "https:// 172.20.10.1:2011/v1/device/printer"); request.Headers.Add("X-SOURCE", "APPNAME"); var content = new StringContent("{\n \"typeFace\": \"Droid Sans Mono\",\n \"advancePaper\": true,\n \"letterSpacing\": 0,\n \"grayLevel\": 2,\n \n \"rows\": [\n \t{\n \"type\": \"IMAGE\",\n \"image\": \"iVBORw079coK/nOAvJ/jLCdJhSK0COuSoVzp04L+scwcnxX8B3h+BXkdeQ2YAAAAASUVORK5CYII=\",\n \"align\": \"CENTER\"\n },\n {\n \"type\": \"TEXT\",\n \"text\": \"ITOS TECHNOLOGY\",\n \"align\": \"CENTER\",\n \"fontSize\": 32,\n \"isBold\": true,\n \"isUnderline\": false\n },\n {\n \"type\": \"TEXT\",\n \"text\": \"ISO Payment API\",\n \"align\": \"LEFT\",\n \"fontSize\": 23,\n \"isBold\": false,\n \"isUnderline\": true\n },\n {\n \"type\": \"TEXT\",\n \"text\": \"Date & Time: \",\n \"rightText\":\"8-6-2020\",\n \"fontSize\": 23,\n \"isBold\": false,\n \"isUnderline\": false\n },\n {\n \"type\": \"TEXT\",\n \"text\": \"Version: \",\n \"rightText\":\"1.0-alpha\",\n \"fontSize\": 23,\n \"isBold\": false,\n \"isUnderline\": false\n },\n {\n \"type\": \"BARCODE\",\n \"content\": \"1234566666666\",\n \"height\": 32,\n \"margin\": 5,\n \"scale\": 2,\n \"format\": \"ITF\",\n \"align\": \"CENTER\"\n },\n {\n \"type\": \"QR\",\n \"content\": \"Copyright © 2020 by ITOS TECHNOLOGY S.L\",\n \"size\": 64,\n \"align\": \"CENTER\"\n }\n ]\n}", null, "text/plain"); request.Content = content; var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); curl --location 'https:// 172.20.10.1:2011/v1/device/printer' \ --header 'X-SOURCE: APPNAME' \ --data '{ "typeFace": "Droid Sans Mono", "advancePaper": true, "letterSpacing": 0, "grayLevel": 2, "rows": [ { "type": "IMAGE", "image": "iVBORw0KGgoAAAANSUhEUgAAAEABtl4wSJYqTHj06EC5QPe53gj879coK/nOAvJ/jLCdJhSK0COuSoVzp04L+scwcnxX8B3h+BXkdeQ2YAAAAASUVORK5CYII=", "align": "CENTER" }, { "type": "TEXT", "text": "ITOS TECHNOLOGY", "align": "CENTER", "fontSize": 32, "isBold": true, "isUnderline": false }, { "type": "TEXT", "text": "ISO Payment API", "align": "LEFT", "fontSize": 23, "isBold": false, "isUnderline": true }, { "type": "TEXT", "text": "Date & Time: ", "rightText":"8-6-2020", "fontSize": 23, "isBold": false, "isUnderline": false }, { "type": "TEXT", "text": "Version: ", "rightText":"1.0-alpha", "fontSize": 23, "isBold": false, "isUnderline": false }, { "type": "BARCODE", "content": "1234566666666", "height": 32, "margin": 5, "scale": 2, "format": "ITF", "align": "CENTER" }, { "type": "QR", "content": "Copyright © 2020 by ITOS TECHNOLOGY S.L", "size": 64, "align": "CENTER" } ] }' import requests url = "https:// 172.20.10.1:2011/v1/device/printer" payload = "{\n \"typeFace\": \"Droid Sans Mono\",\n \"advancePaper\": true,\n \"letterSpacing\": 0,\n \"grayLevel\": 2,\n \n \"rows\": [\n \t{\n \"type\": \"IMAGE\",\n \"image\": \"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAAi+NGO0YnVzp04L+scwcnxX8B3h+BXkdeQ2YAAAAASUVORK5CYII=\",\n \"align\": \"CENTER\"\n },\n {\n \"type\": \"TEXT\",\n \"text\": \"ITOS TECHNOLOGY\",\n \"align\": \"CENTER\",\n \"fontSize\": 32,\n \"isBold\": true,\n \"isUnderline\": false\n },\n {\n \"type\": \"TEXT\",\n \"text\": \"ISO Payment API\",\n \"align\": \"LEFT\",\n \"fontSize\": 23,\n \"isBold\": false,\n \"isUnderline\": true\n },\n {\n \"type\": \"TEXT\",\n \"text\": \"Date & Time: \",\n \"rightText\":\"8-6-2020\",\n \"fontSize\": 23,\n \"isBold\": false,\n \"isUnderline\": false\n },\n {\n \"type\": \"TEXT\",\n \"text\": \"Version: \",\n \"rightText\":\"1.0-alpha\",\n \"fontSize\": 23,\n \"isBold\": false,\n \"isUnderline\": false\n },\n {\n \"type\": \"BARCODE\",\n \"content\": \"1234566666666\",\n \"height\": 32,\n \"margin\": 5,\n \"scale\": 2,\n \"format\": \"ITF\",\n \"align\": \"CENTER\"\n },\n {\n \"type\": \"QR\",\n \"content\": \"Copyright © 2020 by ITOS TECHNOLOGY S.L\",\n \"size\": 64,\n \"align\": \"CENTER\"\n }\n ]\n}" headers = { 'X-SOURCE': 'APPNAME' } response = requests.request("POST", url, headers=headers, data=payload) print(response.text) let parameters = "{\n \"typeFace\": \"Droid Sans Mono\",\n \"advancePaper\": true,\n \"letterSpacing\": 0,\n \"grayLevel\": 2,\n \n \"rows\": [\n \t{\n \"type\": \"IMAGE\",\n \"image\": \"iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXoVzp04L+scwcnxX8B3h+BXkdeQ2YAAAAASUVORK5CYII=\",\n \"align\": \"CENTER\"\n },\n {\n \"type\": \"TEXT\",\n \"text\": \"ITOS TECHNOLOGY\",\n \"align\": \"CENTER\",\n \"fontSize\": 32,\n \"isBold\": true,\n \"isUnderline\": false\n },\n {\n \"type\": \"TEXT\",\n \"text\": \"ISO Payment API\",\n \"align\": \"LEFT\",\n \"fontSize\": 23,\n \"isBold\": false,\n \"isUnderline\": true\n },\n {\n \"type\": \"TEXT\",\n \"text\": \"Date & Time: \",\n \"rightText\":\"8-6-2020\",\n \"fontSize\": 23,\n \"isBold\": false,\n \"isUnderline\": false\n },\n {\n \"type\": \"TEXT\",\n \"text\": \"Version: \",\n \"rightText\":\"1.0-alpha\",\n \"fontSize\": 23,\n \"isBold\": false,\n \"isUnderline\": false\n },\n {\n \"type\": \"BARCODE\",\n \"content\": \"1234566666666\",\n \"height\": 32,\n \"margin\": 5,\n \"scale\": 2,\n \"format\": \"ITF\",\n \"align\": \"CENTER\"\n },\n {\n \"type\": \"QR\",\n \"content\": \"Copyright © 2020 by ITOS TECHNOLOGY S.L\",\n \"size\": 64,\n \"align\": \"CENTER\"\n }\n ]\n}" let postData = parameters.data(using: .utf8) var request = URLRequest(url: URL(string: "https:// 172.20.10.1:2011/v1/device/printer")!,timeoutInterval: Double.infinity) request.addValue("APPNAME", forHTTPHeaderField: "X-SOURCE") request.httpMethod = "POST" request.httpBody = postData let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data else { print(String(describing: error)) return } print(String(data: data, encoding: .utf8)!) } task.resume() Puedes ver más ejemplos de lenguajes de programación en nuestra colección Postman. Este es el JSON de la respuesta y sus encabezados. Cuerpo Encabezados { "result": 0 } Content–Type application/json Date Mon, 8 Jun 2020 12:08:50 GMT Access-Control-Allow-Credentials true Access-Control-Allow-Origin * Connection keep-alive Content-Encoding gzip Transfer-Encoding chunked GET Mifare Cards Recupera el identificador único universal (UUID) de las smart cards Mifare. Se envía a: https:// 172.20.10.1:2011/v1/device/mifare Respuesta resultCode: Código de resultado de la solicitud. Devuelve 0 en caso de éxito; de lo contrario, indica un error resultMessage: Mensaje de resultado de la operación data: El uuid si el código de resultado es igual a 0; de lo contrario, devuelve nulo o vacío. ENCABEZADOS X-SOURCE NOMBRE DE LA APLICACIÓN ID de la aplicación de la persona que llama que identifica de forma exclusiva la aplicación que origina la solicitud de API. Estos son ejemplos de petición y respuesta de POST Mifare Cards. Aquí tienes los ejemplos en algunos lenguajes de programación. JavaScript - Fetch C# - HttpClient cURL - cURL Python - Requests Swift - URLSession Otros lenguajes var myHeaders = new Headers(); myHeaders.append("X-SOURCE", "APPNAME"); var requestOptions = { method: 'GET', headers: myHeaders, redirect: 'follow' }; fetch("https:// 172.20.10.1:2011/v1/device/mifare", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https:// 172.20.10.1:2011/v1/device/mifare"); request.Headers.Add("X-SOURCE", "APPNAME"); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); curl --location 'https:// 172.20.10.1:2011/v1/device/mifare' \ --header 'X-SOURCE: APPNAME' import requests url = "https:// 172.20.10.1:2011/v1/device/mifare" payload={} headers = { 'X-SOURCE': 'APPNAME' } response = requests.request("GET", url, headers=headers, data=payload) print(response.text) var request = URLRequest(url: URL(string: "https:// 172.20.10.1:2011/v1/device/mifare")!,timeoutInterval: Double.infinity) request.addValue("APPNAME", forHTTPHeaderField: "X-SOURCE") request.httpMethod = "GET" let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data else { print(String(describing: error)) return } print(String(data: data, encoding: .utf8)!) } task.resume() Puedes ver más ejemplos de lenguajes de programación en nuestra colección Postman. Este es el JSON de la respuesta y sus encabezados. Cuerpo Encabezados { "data": "92C7F052", "resultCode": 0 } Content–Type application/json Date Mon, 31 May 2021 16:02:26 GMT Access-Control-Allow-Credentials true Access-Control-Allow-Origin * Connection keep-alive Content-Encoding gzip Transfer-Encoding chunked GET Request Information (Solicitar información) Recupera el MID (merchantId) del dispositivo. Se envía a: https:// 172.20.10.1:2011/v1/device/info?filter=MID Respuesta resultCode: código de resultado de la solicitud. Devuelve 0 en caso de éxito; de lo contrario, indica un error. resultMessage: mensaje de resultado de la operación. data: datos del resultado. ENCABEZADOS X-SOURCE NOMBRE DE LA APLICACIÓN ID de la aplicación de la persona que llama que identifica de forma exclusiva la aplicación que origina la solicitud de API. PARÁMETROS filter MID Filtro de consulta. MID: Solicitar el identificador de comerciante actual. Estos son ejemplos de petición y respuesta de POST Solicitar Información. Aquí tienes los ejemplos en algunos lenguajes de programación. JavaScript - Fetch C# - HttpClient cURL - cURL Python - Requests Swift - URLSession Otros lenguajes var myHeaders = new Headers(); myHeaders.append("X-SOURCE", "APPNAME"); var requestOptions = { method: 'GET', headers: myHeaders, redirect: 'follow' }; fetch("https:// 172.20.10.1:2011/v1/device/info?filter=MID", requestOptions) .then(response => response.text()) .then(result => console.log(result)) .catch(error => console.log('error', error)); var client = new HttpClient(); var request = new HttpRequestMessage(HttpMethod.Get, "https:// 172.20.10.1:2011/v1/device/info?filter=MID"); request.Headers.Add("X-SOURCE", "APPNAME"); var response = await client.SendAsync(request); response.EnsureSuccessStatusCode(); Console.WriteLine(await response.Content.ReadAsStringAsync()); curl --location 'https:// 172.20.10.1:2011/v1/device/info?filter=MID' \ --header 'X-SOURCE: APPNAME' import requests url = "https:// 172.20.10.1:2011/v1/device/info?filter=MID" payload={} headers = { 'X-SOURCE': 'APPNAME' } response = requests.request("GET", url, headers=headers, data=payload) print(response.text) var request = URLRequest(url: URL(string: "https:// 172.20.10.1:2011/v1/device/info?filter=MID")!,timeoutInterval: Double.infinity) request.addValue("APPNAME", forHTTPHeaderField: "X-SOURCE") request.httpMethod = "GET" let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data else { print(String(describing: error)) return } print(String(data: data, encoding: .utf8)!) } task.resume() Puedes ver más ejemplos de lenguajes de programación en nuestra colección Postman. Este es el JSON de la respuesta y sus encabezados. Cuerpo Encabezados { "data": "329811087", "resultCode": 0 } Content–Type application/json Date Tue, 1 Jun 2021 08:44:26 GMT Access-Control-Allow-Credentials true Access-Control-Allow-Origin * Connection keep-alive Content-Encoding gzip Transfer-Encoding chunked