Criar uma tarefa de impressão
Enviar uma tarefa de impressão
POST https://www.expedy.fr/api/v2/printers/{printer_uid}/print
Envia uma tarefa de impressão para a impressora térmica na nuvem designada.
URL base: https://www.expedy.fr/api/v2
Autenticação
Este endpoint requer um cabeçalho Authorization contendo o seu SID e o seu TOKEN, separados por um único caractere de dois-pontos.
Authorization: <SID>:<TOKEN>
⚠️ Isto não é um token Bearer. Não adicione um prefixo
BearerouBasic— envie o valor brutoSID:TOKEN.
Authorization: 9F3K7Q2WZ1ABCDEF:b1c2d3e4f5a6b7c8d9e0f1a2b3c4d5e6
Ambos os valores estão disponíveis na consola Expedy, na secção API. Os pedidos com um SID:TOKEN ausente ou inválido são rejeitados e devolvem um envelope de erro (consulte Erros).
Todos os pedidos devem ser feitos através de HTTPS (TLS).
Parâmetros de caminho
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
printer_uid |
string |
Sim | UID da impressora de destino, visível na consola em Printers (ex.: WP0RGS1SEDZ). Não inclua o símbolo #. Use GET /printers/all para o obter programaticamente. |
Corpo do pedido
Content-Type: application/json
| Parâmetro | Tipo | Obrigatório | Descrição |
|---|---|---|---|
printer_msg |
string |
Sim | O conteúdo a imprimir, construído com as etiquetas de layout do talão (<C>, <BOLD>, <IMG>, <QR>, <CUT/>, …). Texto simples, códigos QR, imagens ou o URL de um PDF — tudo o que a impressora suportar. |
origin |
string |
Não | Uma etiqueta livre para identificar a origem da tarefa (um URI, um nome de aplicação, um departamento…). Útil para filtrar e depurar nos seus registos. |
Exemplo de pedido:
{
"printer_msg": "<C><BOLD>ORDER #1234</BOLD></C>\n<C>Table 7</C>\n--------------------------------\n1 x Burger\n2 x Fries\n<CUT/>",
"origin": "pos-kitchen-01"
}
Exemplo cURL:
curl -X POST "https://www.expedy.fr/api/v2/printers/WP0RGS1SEDZ/print" \
-H "Authorization: <SID>:<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"printer_msg":"<C><BOLD>Hello</BOLD></C><CUT/>","origin":"my-app"}'
Resposta 200 OK
A tarefa foi aceite e colocada em fila pelo servidor de impressão na nuvem Expedy.
ℹ️ Um
200confirma apenas a receção do lado do servidor — não que o talão foi fisicamente impresso. A impressão é assíncrona: o servidor entrega a tarefa ao dispositivo na sua próxima ligação. Um200não garante a saída em papel, porque a impressora pode estar offline, sem papel, desligada ou inacessível na sua rede/SIM nesse momento. Use orequest_uiddevolvido para referenciar a tarefa nos seus próprios registos e pedidos de suporte.
| Parâmetro | Tipo | Descrição |
|---|---|---|
request_uid |
string |
Identificador único da tarefa de impressão aceite (ex.: 1X5ERXL94BYVWHP92DK3MCASUGJ). |
Exemplo de resposta:
{
"request_uid": "1X5ERXL94BYVWHP92DK3MCASUGJ"
}
Erros
Qualquer estado diferente de 2xx devolve um envelope JSON com um campo message que descreve o problema:
{
"message": "Invalid printer"
}
| Estado | Significado |
|---|---|
401 / 403 |
Credenciais ausentes ou inválidas (SID / TOKEN). |
422 |
O pedido não pôde ser processado — por ex. um printer_uid desconhecido ou um corpo malformado. |
Leia sempre o campo message em vez de confiar apenas no código de estado.
Boas práticas
- Idempotência. Cada pedido aceite produz uma impressão. O endpoint não elimina duplicados, por isso, se repetir o pedido após um erro de rede, proteja-se contra a dupla impressão do seu lado (por ex. registando o
request_uid, ou marcando a encomenda como impressa assim que receber um200). - Teste com e sem imagens. Alguns modelos de impressora rejeitam certos tipos de imagem e podem fazer falhar toda a tarefa — valide antes de entrar em produção.
- Mantenha
printer_msgdentro da largura do papel. 32 caracteres por linha a 58 mm, 48 a 80 mm. Consulte a referência de layout.
Listar as impressoras
Para descobrir os valores printer_uid da sua conta:
GET https://www.expedy.fr/api/v2/printers/all
Devolve as impressoras associadas à sua conta (nome, largura do papel, UID, estado), usando o mesmo cabeçalho Authorization: <SID>:<TOKEN>.
SDK e exemplos
Prefere um cliente pronto a usar? Use o SDK oficial de Node.js — encapsula a autenticação, a listagem de impressoras e as tarefas de impressão: