Pesquisar

Are you looking for test card numbers?

Would you like to contact support?

Point-of-sale icon

Imprimir dados no terminal

Imprima um recibo, outros textos ou um QR code no terminal, fora do fluxo de pagamento.

Uma solicitação de impressão permite iniciar uma impressão no terminal a partir da caixa registradora fora de um pagamento. Você pode imprimir texto ou um QR code que o cliente possa digitalizar com o dispositivo móvel.

Aqui estão alguns exemplos de como você pode usar solicitações de impressão

  • No fluxo pagamento na mesa, imprima a fatura no terminal antes de enviar uma solicitação de pagamento. Isso permite que os clientes decidam se desejam dividir a conta e como desejam pagar.
  • Imprima ingressos de entrada em um festival.
  • Em um restaurante de serviços rápidos, imprima um recibo que permita aos clientes receber seus pedidos no balcão.
  • Imprima um QR code com um URL para ingressar no seu programa de fidelidade ou para baixar um aplicativo.

If you want to combine text and a QR code, you'd need to make two subsequent print requests. Não há solicitação para rasgar o papel após cada solicitação de impressão, para que você possa fornecer ao cliente um único recibo.

Obviamente, uma solicitação de impressão funciona apenas em um terminal de pagamento que possui uma impressora embutida. Você pode usar estes modelos:

  • V240m Plus (in Brazil)
  • V400c Plus
  • V400m

Para usar o terminal de pagamento para imprimir conteúdo de texto:

  • Faça uma solicitação POST para o endpoint da API de terminais, especificando:

    • MessageHeader: A estrutura da MessageHeader padrão, explicada nos fundamentos da API de terminais:
      Parâmetro Requerimento Descrição
      ProtocolVersion -white_check_mark- 3.0
      MessageClass -white_check_mark- Device
      MessageCategory -white_check_mark- Print
      MessageType -white_check_mark- Request
      SaleID -white_check_mark- Seu ID exclusivo para a caixa registradora.
      ServiceID -white_check_mark- Seu ID exclusivo para esta solicitação, consistindo em 1 a 10 caracteres alfanuméricos. Este valor precisa ser exclusivo nas últimas 48 horas.
      POIID -white_check_mark- ID exclusivo do terminal para o qual você deseja encaminhar esta solicitação. Formato: [modelo do dispositivo] - [número de série].
    • PrintRequest.PrintOutput: O corpo da solicitação com:

      Parâmetro Requerimento Descrição
      DocumentQualifier -white_check_mark- Document
      ResponseMode -white_check_mark- PrintEnd
      OutputContent.OutputFormat -white_check_mark- Text
      OutputContent.OutputText -white_check_mark- Uma matriz com um ou mais itens da matriz contendo o texto que você deseja imprimir.

      Cada item OutputText da matriz pode ter:

      Parâmetro Requerimento Descrição
      CharacterStyle Valores permitidos: Normal, Bold, Underline. Se não especificado, o padrão é Normal.
      Alignment Valores permitidos: Left, Centred, Justified, Right. Se não especificado, o padrão é Left.
      EndOfLineFlag Se não especificado, o padrão é true. Use false se desejar que o próximo item da matriz continue na mesma linha.
      Text -white_check_mark- O texto que você deseja imprimir neste elemento da matriz. Para uma linha em branco, especifique um valor vazio.

    Selecione as abas abaixo para ver como você pode usar os parâmetros para imprimir um recibo (com cabeçalho, itens de linha e rodapé) ou um documento (com título, títulos e parágrafos).

    {
      "SaleToPOIRequest": {
          "MessageHeader": {
             "ProtocolVersion": "3.0",
             "MessageClass": "Device",
             "MessageCategory":"Print",
             "MessageType": "Request",
             "ServiceID": "050824",
             "SaleID": "POSSystemID12345",
             "POIID": "V400m-346403161"
        },
        "PrintRequest": {
          "PrintOutput": {
            "DocumentQualifier": "Document",
            "ResponseMode": "PrintEnd",
            "OutputContent": {
              "OutputFormat": "Text",
              "OutputText": [
                {
                  "CharacterStyle": "Bold",
                  "Alignment": "Centred",
                  "EndOfLineFlag": true,
                  "Text": "THIS IS THE TITLE"
                },
                {
                  "Alignment": "Centred",
                  "EndOfLineFlag": true,
                  "Text": ""
                },
                {
                  "Alignment": "Left",
                  "EndOfLineFlag": false,
                  "Text": "This is key-1"
                },
                {
                  "Alignment": "Right",
                  "EndOfLineFlag": true,
                  "Text": "value-1"
                },
                {
                  "Alignment": "Left",
                  "EndOfLineFlag": false,
                  "Text": "This is key-2"
                },
                {
                  "Alignment": "Right",
                  "EndOfLineFlag": true,
                  "Text": "value-2"
                },
                {
                  "Alignment": "Left",
                  "EndOfLineFlag": false,
                  "Text": "This is key-3"
                },
                {
                  "Alignment": "Right",
                  "EndOfLineFlag": true,
                  "Text": "value-3"
                },
                {
                  "Alignment": "Left",
                  "EndOfLineFlag": true,
                  "Text": "Some explanation about the receipt (# %^& @/: $ £ €)"
                },
                {
                  "Alignment": "Centred",
                  "EndOfLineFlag": true,
                  "Text": ""
                },
                {
                  "CharacterStyle": "Bold",
                  "Alignment": "Centred",
                  "EndOfLineFlag": true,
                  "Text": "This is the footer"
                }
              ]
            }
          }
        }
      }
    }
    
    {
      "SaleToPOIRequest": {
        "MessageHeader": {
          "ProtocolVersion": "3.0",
          "MessageClass": "Device",
          "MessageCategory":"Print",
          "MessageType": "Request",
          "ServiceID": "050823",
          "SaleID": "POSSystemID12345",
          "POIID": "V400m-346403161"
        },
        "PrintRequest": {
          "PrintOutput": {
            "DocumentQualifier": "Document",
            "ResponseMode": "PrintEnd",
            "OutputContent": {
              "OutputFormat": "Text",
              "OutputText": [
                {
                  "CharacterStyle": "Bold",
                  "Alignment": "Centred",
                  "EndOfLineFlag": true,
                  "Text": "THIS IS THE TITLE"
                },
                {
                  "CharacterStyle": "Normal",
                  "Alignment": "Centred",
                  "EndOfLineFlag": true,
                  "Text": "This is the subtitle"
                },
                {
                  "Alignment": "Centred",
                  "EndOfLineFlag": true,
                  "Text": ""
                },
                {
                  "CharacterStyle": "Underline",
                  "Alignment": "Left",
                  "EndOfLineFlag": true,
                  "Text": "This is a heading"
                },
                {
                  "Alignment": "Left",
                  "EndOfLineFlag": true,
                  "Text": "Normal left-aligned text belonging to the header above."
                },
                {
                  "CharacterStyle": "Underline",
                  "Alignment": "Left",
                  "EndOfLineFlag": true,
                  "Text": "Another heading"
                },
                {
                  "Alignment": "Left",
                  "EndOfLineFlag": true,
                  "Text": "Normal left-aligned text belonging to the header above."
                },
                {
                  "Alignment": "Left",
                  "EndOfLineFlag": false,
                  "Text": "This is the key"
                },
                {
                  "Alignment": "Right",
                  "EndOfLineFlag": true,
                  "Text": "value"
                },
                {
                  "Alignment": "Left",
                  "EndOfLineFlag": false,
                  "Text": "This is the key"
                },
                {
                  "Alignment": "Right",
                  "EndOfLineFlag": true,
                  "Text": "value"
                },
                {
                  "Alignment": "Left",
                  "EndOfLineFlag": true,
                  "Text": ""
                },
                {
                  "Alignment": "Justified",
                  "EndOfLineFlag": true,
                  "Text": "Normal justified text flush with the left and right margins."
                },
                {
                  "Alignment": "Left",
                  "EndOfLineFlag": true,
                  "Text": "For comparison, here you have some normal left-aligned text."
                },
                {
                  "Alignment": "Left",
                  "EndOfLineFlag": true,
                  "Text": ""
                },
                {
                  "CharacterStyle": "Bold",
                  "Alignment": "Left",
                  "EndOfLineFlag": true,
                  "Text": "This is bold left-aligned text."
                },
                {
                  "Alignment": "Centred",
                  "EndOfLineFlag": true,
                  "Text": ""
                },
                {
                  "CharacterStyle": "Bold",
                  "Alignment": "Centred",
                  "EndOfLineFlag": true,
                  "Text": "This is the footer"
                }
              ]
            }
          }
        }
      }
    }

    Você recebe uma resposta de impressão contendo:

    • DocumentQualifier: Document
    • Response.Result: Success
    {
        "SaleToPOIResponse": {
            "PrintResponse": {
                "DocumentQualifier": "Document",
                "Response": {
                    "Result": "Success"
                }
            },
            "MessageHeader": {
                "ProtocolVersion": "3.0",
                "SaleID": "POSSystemID12345",
                "MessageClass": "Device",
                "MessageCategory": "Print",
                "ServiceID": "050823",
                "POIID": "V400m-346403161",
                "MessageType": "Response"
            }
        }
    }

Para usar o terminal para imprimir um QR code que o cliente pode digitalizar com seu dispositivo móvel:

  1. Decida o que o QR code precisa conter.

    • Apenas um URL: você não precisa fazer nada agora. Você especificará isso como uma sequência de texto na solicitação de impressão.
    • Mais do que um URL: escreva o conteúdo e converta-o em uma string codificada em URL.

  2. Faça uma solicitação POST para o endpoint da API de terminais, especificando:

    • MessageHeader: A estrutura da MessageHeader padrão, explicada nos fundamentos da API de terminais:
      Parâmetro Requerimento Descrição
      ProtocolVersion -white_check_mark- 3.0
      MessageClass -white_check_mark- Device
      MessageCategory -white_check_mark- Print
      MessageType -white_check_mark- Request
      SaleID -white_check_mark- Seu ID exclusivo para a caixa registradora.
      ServiceID -white_check_mark- Seu ID exclusivo para esta solicitação, consistindo em 1 a 10 caracteres alfanuméricos. Este valor precisa ser exclusivo nas últimas 48 horas.
      POIID -white_check_mark- ID exclusivo do terminal para o qual você deseja encaminhar esta solicitação. Formato: [modelo do dispositivo] - [número de série].
    • PrintRequest.PrintOutput: O corpo da solicitação com:

      Parâmetro Requerimento Descrição
      DocumentQualifier -white_check_mark- CustomerReceipt
      ResponseMode -white_check_mark- PrintEnd
      OutputContent.OutputFormat -white_check_mark- BarCode
      OutputContent.OutputBarcode.BarcodeType -white_check_mark- QRCode
      OutputContent.OutputBarcode.BarcodeValue -white_check_mark- O conteúdo do QR code, especificado como uma sequência de texto ou uma sequência codificada em URL.
    {
        "SaleToPOIRequest": {
            "MessageHeader": {
                "ProtocolVersion": "3.0",
                "MessageClass": "Device",
                "MessageCategory": "Print",
                "MessageType": "Request",
                "ServiceID": "050817",
                "SaleID": "POSSystemID12345",
                "POIID": "V400m-346403161"
            },
            "PrintRequest": {
                "PrintOutput": {
                    "DocumentQualifier": "CustomerReceipt",
                    "ResponseMode": "PrintEnd",
                    "OutputContent": {
                        "OutputFormat":"BarCode",
                        "OutputBarcode": {
                            "BarcodeType": "QRCode",
                            "BarcodeValue": "https://www.adyen.com/pos-payments"
                        }
                    }
                }
            }
        }
    }
    String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
    String saleID = "YOUR_CASH_REGISTER_ID";
    String POIID = "YOUR_TERMINAL_ID";
    
    SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
    PrintRequest printRequest = new PrintRequest();
    PrintOutput printOutput = new PrintOutput();
    printOutput.setDocumentQualifier( DocumentQualifierType.CUSTOMERRRECEIPT );
    printOutput.setResponseMode( ResponseModeType.PRINTEND );
    OutputContent outputContent = new OutputContent();
    outputContent.setOutputFormat( OutputFormatType.BARCODE );
    OutputBarcode outputBarcode = new OutputBarcode();
    outputBarcode.setBarcodeType( BarcodeTypeType.QRCODE );
    outputBarcode.setBarcodeValue( "https://www.adyen.com/pos-payments" )
    outputContent.setOutputBarcode(outputBarcode);
    printOutput.setOutputContent(outputContent);
    printRequest.setPrintOutput(printOutput);
    saleToPOIRequest.setPrintRequest(printRequest);
    
    MessageHeader messageHeader = new MessageHeader();
    messageHeader.setProtocolVersion("3.0");
    messageHeader.setMessageClass( MessageClassType.DEVICE );
    messageHeader.setMessageCategory( MessageCategoryType.PRINT );
    messageHeader.setMessageType( MessageType.REQUEST );
    messageHeader.setServiceID(serviceID);
    messageHeader.setSaleID(saleID);
    messageHeader.setPOIID(POIID);
    saleToPOIRequest.setMessageHeader(messageHeader);
    terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);

    Você recebe uma resposta de impressão contendo:

    • DocumentQualifier: CustomerReceipt
    • Response.Result: Success
    {
        "SaleToPOIResponse": {
            "PrintResponse": {
                "DocumentQualifier": "CustomerReceipt",
                "Response": {
                    "Result": "Success"
                }
            },
            "MessageHeader": {
                "ProtocolVersion": "3.0",
                "SaleID": "POSSystemID12345",
                "MessageClass": "Device",
                "MessageCategory": "Print",
                "ServiceID": "050817",
                "POIID": "V400m-346403161",
                "MessageType": "Response"
            }
        }
    }

Veja também