Pesquisar

Are you looking for test card numbers?

Would you like to contact support?

Point-of-sale icon

Venda digitada (MKE)

Manualmente os detalhes do cartão para realizar um pagamento.

Vendas digitadas (MKE - Manual Keyed Entry) envolvem digitar manualmente os detalhes do cartão de um cliente no terminal. Você pode usá-lo quando o terminal de pagamento não obtiver os detalhes do cartão no chip ou na tarja magnética do cartão.

Não há mudança de responsabilidade com o MKE. Isso significa que você é totalmente responsável por estornos de fraude.

Como funciona

  1. Quando o terminal de pagamento não consegue ler os detalhes do cartão, você inicia uma transação MKE partir da sua caixa registradora.
  2. O terminal solicita ao cliente que insira manualmente os detalhes do cartão.
  3. O terminal solicita ao cliente que forneça sua assinatura no visor.
  4. A transação continua.

Configurar transações MKE

Devido ao risco aumentado de estornos, você precisa executar uma ação antes de poder usar o MKE:

  1. Entre em contato com nossa POS Support Team e solicite a ativação da entrada com chave manual para você.
  2. Defina uma quantidade máxima que o terminal permitirá para uma transação MKE:

    1. Faça o login em sua Customer Area.
    2. Vá para Point of sale > Global properties ou selecione um terminal específico.
    3. Na guia Currencies & amounts insira o MKE max amount (valor máximo MKE).
    4. Selecione Save.

Efetuar um pagamento MKE

Usando uma condição de transação, você pode forçar o MKE como o modo de entrada do cartão.

  1. Faça uma chamada PaymentRequest para a API de terminais, especificando uma PaymentTransaction que contém:

    • TransactionConditions.ForceEntryMode: Keyed

    Para obter uma lista completa dos campos, você pode passar uma solicitação de pagamento e receber a resposta, consulte a referência de API PaymentRequest e a referência de API PaymentResponse.

    {
        "SaleToPOIRequest":{
            "MessageHeader":{
                "ProtocolVersion":"3.0",
                "MessageClass":"Service",
                "MessageCategory":"Payment",
                "MessageType":"Request",
                "ServiceID":"037",
                "SaleID":"POSSystemID12345",
                "POIID":"P400Plus-275040702"
            },
            "PaymentRequest":{
                "SaleData":{
                    "SaleToAcquirerData":"",
                    "SaleTransactionID":{
                        "TransactionID":"8377PME_POS",
                        "TimeStamp":"2021-01-19T11:03:39.000Z"
                    }
                },
                "PaymentTransaction":{
                    "AmountsReq":{
                        "RequestedAmount":17.50,
                        "Currency":"EUR"
                    },
                    "TransactionConditions":{
                        "ForceEntryMode":[
                            "Keyed"
                        ]
                    }
                }
            }
        }
    }
    String POIID = "YOUR_TERMINAL_ID";
    String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
    String saleID = "YOUR_CASH_REGISTER_ID";
    String transactionID = "YOUR_UNIQUE_TRANSACTION_ID";
    
    SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
    MessageHeader messageHeader = new MessageHeader();
    messageHeader.setPOIID(POIID);
    messageHeader.setMessageClass( MessageClassType.SERVICE );
    messageHeader.setMessageType( MessageType.REQUEST );
    messageHeader.setProtocolVersion("3.0");
    messageHeader.setServiceID(serviceID);
    messageHeader.setSaleID(saleID);
    messageHeader.setMessageCategory( MessageCategoryType.PAYMENT );
    saleToPOIRequest.setMessageHeader(messageHeader);
    
    PaymentRequest paymentRequest = new PaymentRequest();
    PaymentTransaction paymentTransaction = new PaymentTransaction();
    AmountsReq amountsReq = new AmountsReq();
    amountsReq.setRequestedAmount( BigDecimal.valueOf(17.5) );
    amountsReq.setCurrency("EUR");
    paymentTransaction.setAmountsReq(amountsReq);
    
    TransactionConditions transactionConditions = new TransactionConditions();
    transactionConditions.getForceEntryMode().add( ForceEntryModeType.KEYED );
    paymentTransaction.setTransactionConditions(transactionConditions);
    paymentRequest.setPaymentTransaction(paymentTransaction);
    
    SaleData saleData = new SaleData();
    saleData.setSaleToAcquirerData("");
    TransactionIdentification saleTransactionID = new TransactionIdentification();
    saleTransactionID.setTransactionID(transactionID);
    saleTransactionID.setTimeStamp(DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()));
    saleData.setSaleTransactionID(saleTransactionID);
    paymentRequest.setSaleData(saleData);
    saleToPOIRequest.setPaymentRequest(paymentRequest);
    terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);
  2. Na resposta, observe que PaymentResult inclui:
    • CapturedSignature: Pontos de coordenadas da assinatura desenhada no visor do terminal.
    • AuthenticationMethod: SignatureCapture
    • PaymentInstrumentData.CardData: Indica que EntryMode foi Keyed

Veja também