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.

IdCódigoImpressora
0GENERICASimplificada - Genérica (sem formatação específica para uso em terminais Android, impressão em PDF etc.)
1BMTMP4200Bematech – MP4200
2CISPR3000Cis – PR 3000
3DRMDR800Daruma – DR800
4ELGI9Elgin – i9
5EPST20Epson – T20
6TNATP450Tanca – 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-Typeapplication/json
User-AgentNomeDaAutomacao/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

ComandoDescriçãoBematech MP4200Cis PR3000Daruma DR800Elgin i9
paperCutFullAcionamento total da guilhotina✓✓✓✓
paperCutPartialAcionamento parcial da guilhotina (Nem todas as impressoras aceitam. Enviaremos um acionamento total da guilhotina caso não seja aceito parcial)✓✓X✓
textAlignCenterAlinhamento do texto centralizado✓✓✓✓
textAlignLeftAlinhamento do texto à esquerda✓✓✓✓
textAlignRightAlinhamento do texto à direita✓✓✓✓
textCondensedOnModo texto condensado ligado✓✓✓X
textCondensedOffModo texto condensado desligado✓✓✓X
qrcodeQR Code✓XX✓
ComandoDescriçãoEpson T20Tanca TP 450
paperCutFullAcionamento total da guilhotina✓✓
paperCutPartialAcionamento parcial da guilhotina (Nem todas as impressoras aceitam. Enviaremos um acionamento total da guilhotina caso não seja aceito parcial)✓✓
textAlignCenterAlinhamento do texto centralizado✓✓
textAlignLeftAlinhamento do texto à esquerda✓✓
textAlignRightAlinhamento do texto à direita✓✓
textCondensedOnModo texto condensado ligado✓✓
textCondensedOffModo texto condensado desligado✓✓
qrcodeQR CodeXX

EXEMPLO:

"<textAlignLeft>" Texto à esquerda

"<textAlignRight>" Texto à direita

"<textAlignCenter>" Texto centralizado

"<paperCutPartial>" Acionamento parcial da guilhotina

"<paperCutFull>" Acionamento completo da guilhotina

HEADERS
Content-Typeapplication/json
User-AgentNomeDaAutomacao/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
}'

Did this page help you?