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 ou o antigo ControlPay Client), é 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.

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.

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.

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 ligadoX
textCondensedOffModo texto condensado desligadoX
qrcodeQR CodeXX
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>",
   "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>",
   "terminalId": {{terminalId}},
   "aguardarClienteIniciarImpressao": true
}'