Impressão
API para interação com impressoras.
Antes de usar as APIs...Certifique-se de ter verificado as secções de APIs e Chave de Integração, além de ter lido as nossas Informações preliminares.
Impressoras disponíveis
BETA Neste momento estão disponíveis integrações com as seguintes impressoras:
• Bematech MP4200; • CIS PR 3000; • Daruma DR800; • Elgin i9; • Epson T20; • Tanca TP 450.
Em todos os casos são suportadas operações de avanço e corte de papel, além de acionamento de gavetas.
Todas as impressoras devem estar configuradas para operar usando ESC/POS. Consulte o manual da impressora para verificar como proceder.
Atenção!O ControlPay não é responsável pela impressão em si (impressão, formatação no papel, tamanho de fonte, etc.), ele é apenas responsável por enviar o conteúdo do que será impresso e os comandos de impressora citados neste documento.
Para configurações de formatação na folha de impressão ou configurações semelhantes, consulte o manual de sua impressora ou o seu software de impressão.
Informações para impressão automática
É importante ressaltar que, para que ocorra impressão automática (caso esteja sendo usado o PayGo Windows), é necessário configurá-la em dois locais:
No próprio ControlPay (portal ou via API):
- No terminal utilizado, é preciso que estejam ativadas configurações de impressão e ter uma impressora vinculada (a impressora cadastrada no ControlPay deve ser a mesma que a física, para que sejam enviadas as impressões com o formato correto).
No PayGo Windows / ControlPay Client:
- É necessário configurar a impressora na tela de Configurações, informando para onde devem ser enviadas as informações da impressão.
Impressoras e seus códigos
Para o uso da API de envio de impressões, é possível enviar o código da impressora que está sendo usada. Isso fará com que o ControlPay vincule automaticamente o template daquela impressora à impressão e não seja necessário que o usuário vincule uma impressora previamente ao seu terminal.
| Id | Código | Impressora |
|---|---|---|
| 0 | GENERICA | Simplificada - Genérica (sem formatação específica para uso em terminais Android, impressão em PDF etc.) |
| 1 | BMTMP4200 | Bematech – MP4200 |
| 2 | CISPR3000 | Cis – PR 3000 |
| 3 | DRMDR800 | Daruma – DR800 |
| 4 | ELGI9 | Elgin – i9 |
| 5 | EPST20 | Epson – T20 |
| 6 | TNATP450 | Tanca – TP450 |
GET ImpressoraTemplate/GetTemplates
{{Url}}/ImpressoraTemplate/GetTemplates?key={{Key}}Variáveis:
Url: endereço do ambiente atual.Key: chave de acesso.
Esta API retorna todos os templates acima mencionados.
{
"data": "12/03/2026 11:07:06.6685",
"impressoraTemplates": [
{
"id": 1,
"nome": "Bematech - MP4200",
"codigoImpressora": "BMTMP4200",
"isGeneric": false
},
{
"id": 2,
"nome": "Cis - PR 3000",
"codigoImpressora": "CISPR3000",
"isGeneric": false
},
...
]
}
GET IntencaoImpressao/GetById
{{Url}}/intencaoImpressao/GetById?key={{Key}}&intencaoImpressaoId={{IntencaoImpressaoId}}Variáveis:
Url: endereço do ambiente atual.Key: chave de acesso.IntencaoImpressaoId: ID da intenção de impressão desejada.
API para consulta do status de uma impressão. Deve ser usada caso o callback (enviado ao término do trabalho de impressão) não tenha sido recebido.
| HEADERS | |
|---|---|
| Content-Type | application/json |
| User-Agent | NomeDaAutomacao/1.0 |
| PARAMS | |
|---|---|
| key | {Key} |
| intencaoImpressaoId | {IntencaoImpressaoId} |
{
"referencia":"TESTE",
"conteudo":"Conteudo",
"impressoraId": 6,
//"terminalId":
"aguardarClienteIniciarImpressao":true
}Exemplo: IntencaoImpressao/GetById
curl --location --request GET 'sandbox.controlpay.com.br/webapi/IntencaoImpressao/GetById?key={{Key}}&intencaoImpressaoId=31' \
--header 'Content-Type: application/json' \
--header 'User-Agent: NomeDaAutomacao/1.0' \
--data-raw '{
"referencia":"TESTE",
"conteudo":"Conteudo",
"impressoraId": 6,
//"terminalId":
"aguardarClienteIniciarImpressao":true
}'POST IntencaoImpressao/Insert
{{Url}}/IntencaoImpressao/Insert?key={{Key}}Variáveis:
Url: endereço do ambiente atual.Key: chave de acesso.
API usada para envio do conteúdo a ser impresso pela impressora.
Os parâmetros "impressoraId" e "terminalId" são exclusivos em si. Ambos são usados para mapeamento do local onde a impressão deve ser realizada. No caso do envio do parâmetro "terminalId", a impressão será realizada na impressora vinculada àquele terminal.
Recomendamos o uso sempre da propriedade "terminalId" em conjunto com a propriedade "codigoImpressora", informando qual o tipo de impressora usada por aquele terminal.
O parâmetro "referencia" é opcional, podendo ser enviado caso você prefira injetar um identificador próprio neste trabalho de impressão. Este mesmo identificador pode ser usado pelo método de consulta de IntencaoImpressao posteriormente.
Body de exemplo:
{
"referencia": "Ref123",
"conteudo": "Conteudo da impressao...",
"terminalId": "5678",
"aguardarClienteIniciarImpressao": false,
//Campo identificador do template de impressão.
//Suplanta impressoraId. Pode ser
//o ID ou o código do template.
"codigoImpressora": "BMTMP42000",
//Propriedade não recomendada
//"impressoraId": "1234"
}
Atenção!
Caso seja usada uma impressora genérica e a impressão não for automática (aguardarClienteIniciarImpressao = false), a intenção será gerada com status “Impresso” ao invés do costumeiro “ImpressaoEnviada”.
Mapeamento de comandos de impressão
| Comando | Descrição | Bematech MP4200 | Cis PR3000 | Daruma DR800 | Elgin i9 |
|---|---|---|---|---|---|
| paperCutFull | Acionamento total da guilhotina | ✓ | ✓ | ✓ | ✓ |
| paperCutPartial | Acionamento parcial da guilhotina (Nem todas as impressoras aceitam. Enviaremos um acionamento total da guilhotina caso não seja aceito parcial) | ✓ | ✓ | X | ✓ |
| textAlignCenter | Alinhamento do texto centralizado | ✓ | ✓ | ✓ | ✓ |
| textAlignLeft | Alinhamento do texto à esquerda | ✓ | ✓ | ✓ | ✓ |
| textAlignRight | Alinhamento do texto à direita | ✓ | ✓ | ✓ | ✓ |
| textCondensedOn | Modo texto condensado ligado | ✓ | ✓ | ✓ | X |
| textCondensedOff | Modo texto condensado desligado | ✓ | ✓ | ✓ | X |
| qrcode | QR Code | ✓ | X | X | ✓ |
| Comando | Descrição | Epson T20 | Tanca TP 450 |
|---|---|---|---|
| paperCutFull | Acionamento total da guilhotina | ✓ | ✓ |
| paperCutPartial | Acionamento parcial da guilhotina (Nem todas as impressoras aceitam. Enviaremos um acionamento total da guilhotina caso não seja aceito parcial) | ✓ | ✓ |
| textAlignCenter | Alinhamento do texto centralizado | ✓ | ✓ |
| textAlignLeft | Alinhamento do texto à esquerda | ✓ | ✓ |
| textAlignRight | Alinhamento do texto à direita | ✓ | ✓ |
| textCondensedOn | Modo texto condensado ligado | ✓ | ✓ |
| textCondensedOff | Modo texto condensado desligado | ✓ | ✓ |
| qrcode | QR Code | X | X |
EXEMPLO:
"<textAlignLeft>" Texto à esquerda
"<textAlignRight>" Texto à direita
"<textAlignCenter>" Texto centralizado
"<paperCutPartial>" Acionamento parcial da guilhotina
"<paperCutFull>" Acionamento completo da guilhotina
| HEADERS | |
|---|---|
| Content-Type | application/json |
| User-Agent | NomeDaAutomacao/1.0 |
| PARAMS | |
|---|---|
| key | {Key} |
Exemplo: Body raw (a string "conteudo" foi quebrada para melhor visualização)
{
"referencia":"Sua referencia para consulta posterior",
"conteudo":"<textAlignLeft>
Texto à esquerda
<textAlignRight>
Texto à direita
<textAlignCenter>
Texto centralizado
Acionamento parcial da guilhotina (Nem todas impressoras possuem essa implementação)
<paperCutPartial>
<textCondensedOff>
A partir daqui desligamos o modo de texto condensado.
Importante
mostrar que
<textAlignLeft>
o alinhamento
de texto
<textAlignRight>
funciona
da mesma
<textAlignCenter>
maneira
Acionamento parcial da guilhotina (Nem todas impressoras possuem essa implementação)
<paperCutPartial>
<textCondensedOn>
A partir daqui Ligamos o modo de texto condensado.
Importante
mostrar que
<textAlignLeft>
o alinhamento
de texto
<textAlignRight>
funciona
da mesma
<textAlignCenter>
maneira
QRCODE:
<qrcode>http://www.ntk.com.br</qrcode>
Acionamento completo da guilhotina
<paperCutFull>",
"impressoraId": {{impressoraId}},
"terminalId": {{terminalId}},
"aguardarClienteIniciarImpressao": true
}Exemplo: IntencaoImpressao/Insert
curl --location --request POST 'sandbox.controlpay.com.br/webapi/IntencaoImpressao/Insert?key=' \
--header 'Content-Type: application/json' \
--header 'User-Agent: NomeDaAutomacao/1.0' \
--data-raw '{
"referencia":"Sua referencia para consulta posterior",
"conteudo":"<textAlignLeft>Texto à esquerda<textAlignRight>Texto à direita<textAlignCenter>Texto centralizado Acionamento parcial da guilhotina (Nem todas impressoras possuem essa implementação)<paperCutPartial><textCondensedOff>A partir daqui desligamos o modo de texto condensado.Importante mostrar que<textAlignLeft>o alinhamento de texto<textAlignRight>funciona da mesma<textAlignCenter>maneira Acionamento parcial da guilhotina (Nem todas impressoras possuem essa implementação)<paperCutPartial><textCondensedOn>A partir daqui Ligamos o modo de texto condensado. Importante mostrar que<textAlignLeft>o alinhamento de texto<textAlignRight>funciona da mesma<textAlignCenter>maneiraQRCODE:<qrcode>http://www.ntk.com.br</qrcode>Acionamento completo da guilhotina<paperCutFull>",
"impressoraId": {{impressoraId}},
"terminalId": {{terminalId}},
"aguardarClienteIniciarImpressao": true
}'Updated 5 days ago
