Configurar impresiones
Las impresoras de las terminals Point Smart 1 y 2 permiten imprimir el ticket de la compra y, adicionalmente, integrar impresiones personalizadas a través de la API de Terminals. Esta función puede ser útil para quienes requieran imprimir comprobantes complementarios, como Documentos Tributarios Electrónicos (DTE), cupones, o mismo imágenes.
De esta manera, podrás gestionar impresiones adicionales directamente desde tu sistema Punto de Venta, y obtenerlas desde la terminal a la que sean asignadas.
Crear impresiones
Las impresiones generadas desde tu sistema son acciones que tu punto de venta envía a la terminal. Por esto, para crear una impresión, deberás enviar un POST al endpoint Crear acción de terminalAPI con tu Access Token de producción, en caso de estar realizando una integración propia, o el obtenido por medio de OAuthOAuth, en caso de estar realizando una integración para terceros, y cuidando de enviar correctamente los parámetros obligatorios indicados debajo.
curl
curl -X POST \ 'https://api.mercadopago.com/terminals/v1/actions'\ -H 'Content-Type: application/json' \ -H 'X-Idempotency-Key: 0d5020ed-1af6-469c-ae06-c3bec19954bb' \ -H 'Authorization: Bearer ACCESS_TOKEN \ -d '{ "type": "print", "external_reference": "ext_ref_1234", "config": { "point": { "terminal_id": "NEWLAND_N950__N950NCB123456789", "subtype": "image" } }, "content": "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAB2AAAAdgB+lymcgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAPqSURBVHic7ZrZaxRBEIe/mJh4xRgDGk8ivqtvIvGESLwQ7wsU/yD/Ah+NURQjIioY8FbwRZ9UEFREvEFjEm83GR96Byab2Zlf9/RuFp0PlsxR1dVTXVXdPRPIycnJycnJ+V+pc9DpANYAU8vc/wXcBZ479qkcLcBmYGaZ+6PAI+C+Z7tj2Ar8AIKU3x9gl0e7HcBbwW4AHPNodxwPxE4EwEtgkie7xy3sjgLtnuyO46tFRwJgnQebU4CBStm1GaFGYLqFPMBBS/k4dgKzLHVkeRsHtFl2AmAf0OSgF+WIg05FHDDboSOtQLeDXshcoMtBryIOaHXoCGRLg8NAg4NeiypY6QgA2A40O+oedtSrKQdMA3Y46K0AljnarJkaEOKSBi7FL6SmagDARkxBU2kgW+2ouQhoAPZYyHeTbTVXcw4AOGQh61r8QmwXThJXsVuOxq3Rlwh2ZgLfM9r6pD5UtWoAmK23ktf7Kb/VVmnBbaufyDOyjUoAPBHs3PFgJ6D8ewNnPnvq2PIEGx2YVPFhZ7HyUGoKTMJidZVCUjE8ir/Q9VoI2/AzKgHwinjH1+EnzcLfWuXB1AjIOgVGWQSsjrneCSz1aEeKANUBWWeAUuJmgyxL3zhq2gF7gcmR86biNYUBUU6qWb5TYEiUawM2RM43oY3YK+C6aMNrBKivw/qAn6Ls7sjxAVGnFxgUZb1GgDqlvMEsmRV2APWY9wXbRJ1e9CiT0rYSKXBWlJ2D+cK0FZghyD8EHgPDYvvSoKnv21QHDAIXMV+PlPX8LmC+2HZP8a8aAV5rgOqAL5iPJ1dE+b3AFkGuAJwuHk9IDVAdEE5RZ0T5drRI6Qc+FI9rPgIALmMiwRc9kWM1AibUAd+BS6JOGkOYuhI9V5iFsLHyvRL8EjlW0yCNPoxDQ9QIqEebXVJpRt+BNUb0mjAOybqri64YARZa6C5KezglAtTR/wb8jpz/YmzouvAGuF1yTU0BEOqA4gDb/I+SNQ1OACMl14Yxb40UJtwB/ZhXaa6cirkW4HE1WGkH/AEuiPqlPMD801Mc3qbCSjsA9L1BKT0J97wthnw6oNyoXAM+im2EFEiuH1WNAJc1QJQC9mnQD7xPuO9tP1CNFAD72SAp/EFPAS8OUCMgaVRuAu/EdkqXvra2otREEQQzb58X2znH2KVvHFV1gPpFKMkBoKfBSUFGTYHUwVMcoIbu05T794AXKTLPgFsebIUkFVKZlaRvatKKVkgnZn0f18ZrYJXYTiPpX5EHi31PRP0QOQ9Yz/h/dwswo1G6YUmiAViA2a6GjGAcU7Bsp4v4r8DDwA08RUBOTk5OTk7Ov8lfFiKY13GwsdoAAAAASUVORK5CYII=" }'
| Atributo | Tipo | Descripción |
Authorization | Header | Hace referencia o bien a tu Access Token de producción, en caso de estar realizando una integración propia, o al obtenido por medio de OAuthOAuth. |
X-Idempotency-Key | Header | Llave de idempotencia. Esta llave garantiza que cada solicitud sea procesada una única vez, evitando duplicidades. Utiliza un valor exclusivo en el encabezado de tu solicitud, como un UUID V4 o strings aleatorias. |
type | Body. String | Tipo de acción. Debes enviar el valor print, que es el asociado con la creación de acciones de impresión para el Punto de Venta. |
external_reference | Body. String | Es una referencia externa de la acción, asignada al momento de su creación. El límite máximo permitido es de 64 caracteres y los permitidos son: letras mayúsculas y minúsculas, números y los símbolos de guion (-) y guion bajo (_). |
config.point.terminal_id | Body. String | Identificador de la terminal Point que obtendrá la order. Debes enviarlo tal cual fue devuelto en el llamado Obtener terminalsAPI, como en el siguiente ejemplo: "NEWLAND_N950__N950NCB801293324". |
config.point.subtype | Body. String | Identificador del subtipo de impresión que se creará para la terminal Point. Si la acción es print se debe elegir uno de los siguientes valores: - invoice: para la impresión de DTEs o facturas. - custom: para una impresión personalizada. - image: para una impresión de imágenes. |
content | Body. String | Contiene la información a imprimir en la terminal Point. Dirígete a Requisitos para el contenido de impresiones para saber qué validaciones tener en cuenta dependiendo del tipo de impresión. |
Requisitos para el contenido de impresiones
Para implementar los distintos tipos de impresión deseados, además de indicar de cuál se trata en el campo config.point.subtype, debes tener en cuenta los requisitos, formatos y validaciones que cada una de ellos requiere a la hora de enviar su contenido a través del parámetro content.
Al seleccionar el config.point.subtype como invoice, el DTE a enviar en el parámetro content debe ser compatible con los formatos definidos por el SII, y debe ser enviado en formato XML.
Adicionalmente, se admiten los siguientes tipos de documentos:
| Tipo de documento | Descripción |
| Factura Afecta (33) y Exenta (34) | Se refiere al documento tributario que tiene validez legal ante el Servicio de Impuestos Internos (SII). |
| Boleta Afecta (39) y Exenta (41) | Se refiere al documento que el cliente recibe al realizar una compra, que tiene validez contable y tributaria. |
Si la solicitud es enviada correctamente, la respuesta devolverá el id de la acción creada junto con el status: created, y la impresión será obtenida de manera automática por la terminal, en cuyo caso pasará a tener un status: on_terminal. En caso de que esto último no suceda, puedes consultar nuestra documentación troubleshooting.
La API de Terminals también te permitirá obtener una acciónAPI, incluyendo su status en tiempo real, enviando el id de referencia obtenido en la respuesta a su creación.
Por último, también es posible cancelar una acciónAPI utilizando el id de referencia obtenido en la respuesta a su creación, siempre y cuando su estado sea created.