Pesquisar

Are you looking for test card numbers?

Would you like to contact support?

Point-of-sale icon

Desativar ou sacar o saldo do cartão vale presente

Desative ou saque o saldo existente de um cartão vale presente em seu terminal.

Quando o saldo de um cartão vale presente estiver abaixo de um determinado valor ou quando houver suspeita de fraude, convém interromper o uso do cartão. Neste caso, você pode:

  • Fazer um pedido de cashback para retirar fundos do cartão vale presente e devolver a quantia ao cliente em dinheiro. Se você sacar o saldo total, o cartão não estará mais ativo e não poderá ser usado novamente.
  • • Faça uma solicitação de desativação para desativar o cartão sem realizar o saque do valor total. Você só pode fazer isso em cartão vale presente fornecidos pela Givex.

Antes de começar

Antes de realizar transações com cartão vale presente, certifique-se de:

  • Ler e entender nossos fundamentos da API de terminais.
  • Criar uma integração que pode efetuar um pagamento.
  • Concluir o processo de integração com seu provedor de cartão vale presente.
  • Adicionado o método de pagamento escolhido à sua conta Adyen .
  • Cashback para um cartão vale presente

    Suas opções com uma solicitação de cashback dependem do fornecedor do cartão vale presente, das regras da bandeira e da lei aplicável. Se os cashbacks forem permitidos, normalmente você poderá sacar apenas o valor total restante no cartão. Mas se ocartão vale presente foi fornecido pela Givex, é possível, em alguns casos, dar o cashback de um valor parcial.

Os fundos retirados do cartão vale presente podem ser devolvidos ao cliente em dinheiro ou transferidos para seu cartão de crédito ou débito, mediante um cashback não referenciado.

Etapa 1: realizando uma solicitação de cashback

Para reembolsar um cartão vale presente:

  1. Verifique o saldo restante no cartão vale presente.
  2. Faça uma solicitação POST para o endpoint da API de terminais , especificando:

    • MessageHeader: Segue a estrutura da MessageHeader padrão, explicada nos fundamentos da API de terminais, que incluem:

      • ProtocolVersion: 3.0
      • MessageCategory: Payment
      • MessageType: Request
      • SaleID: Seu ID exclusivo para a caixa registradora.
      • ServiceID: Seu ID exclusivo para esta tentativa de transação. Este precisa ser único nas últimas 48 horas
      • POIID: ID exclusivo do terminal. Isso indica para qual terminal a transação será roteada.
    • PaymentRequest: O corpo da solicitação para a solicitação de cashback deve incluir:

      • SaleData.SaleTransactionID.TimeStamp: Data e hora da solicitação de cashback, no formato UTC.
      • SaleData.SaleTransactionID.TransactionID: Sua referência exclusiva para esta solicitação de cashback.
      • SaleData.SaleReferenceID: Parâmetro opcional para fornecer o número do seu pedido. Você pode usar isso para conectar transações de diferentes cartão vale presente ao mesmo pedido. Em sua Customer Area, este aparecerá como Merchant Order para a transação.
      • SaleData.SaleToAcquirerData: redemptionType=cashback
      • PaymentTransaction.AmountsReq: A Currency e o RequestedAmount que serão devolvidos ao cliente. Para sacar o valor total, você pode especificar esse valor exato ou especificar um valor zero (0).
      • PaymentData.PaymentType: Normal
      • PaymentData.PaymentInstrumentData.PaymentInstrumentType: StoredValue
      • PaymentData.PaymentInstrumentData.StoredValueAccountID: Os detalhes do cartão vale presente:

        • StoredValueAccountType: GiftCard
        • StoredValueProvider: O emissor do cartão vale presente: givex, svs, ou valuelink
        • IdentificationType: PAN
        • EntryMode, StoredValueID e ExpiryDate: Esses parâmetros dependem do metodo de leitura do cartão que você está usando.

          Leitura do cartão Parâmetros
          Scan
          • EntryMode: Scanned
          • StoredValueID: Número do cartão vale presente.
          • ExpiryDate: Data de validade do cartão presente.
          Swipe or MKE
          • EntryMode: MagStripe
          • StoredValueID: xxxxxxxxxxxxxxxxxxx.
          • Não inclua o ExpiryDate parâmetro.

    O exemplo abaixo mostra como você iniciaria uma solicitação de cashback de 4.50 GBP para um cartão vale presente que já teve suas informações digitalizadas.

    Para obter mais informações sobre a estrutura de solicitação da API de terminais, consulte os fundamentos da API de terminais.

    {
      "SaleToPOIRequest": {
        "MessageHeader": {
          "ProtocolVersion": "3.0",
          "MessageClass": "Service",
          "MessageCategory": "Payment",
          "MessageType": "Request",
          "ServiceID": "9269",
          "SaleID": "POSTerminal",
          "POIID": "V400m-324688179"
        },
        "PaymentRequest": {
          "SaleData": {
            "SaleTransactionID": {
              "TransactionID": "44750",
              "TimeStamp": "2019-06-22T12:55:20+00:00"
            },
            "SaleReferenceID": "YOUR_ORDER_REFERENCE",
            "SaleToAcquirerData": "redemptionType=cashback"
          },
          "PaymentTransaction": {
            "AmountsReq": {
              "Currency": "GBP",
              "RequestedAmount": 4.50
            }
          },
          "PaymentData": {
            "PaymentType": "Normal",
            "PaymentInstrumentData": {
              "PaymentInstrumentType": "StoredValue",
              "StoredValueAccountID": {
                "StoredValueAccountType": "GiftCard",
                "StoredValueProvider": "svs",
                "IdentificationType": "PAN",
                "EntryMode": [
                  "Scanned
                ],
                "StoredValueID": "6006491260550218066",
                "ExpiryDate": "1122"
              }
            }
          }
        }
      }
    }
    String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
    String saleID = "YOUR_CASH_REGISTER_ID";
    String POIID = "YOUR_TERMINAL_ID";
    String transactionID = "YOUR_UNIQUE_TRANSACTION_ID";
    
    SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
    MessageHeader messageHeader = new MessageHeader();
    messageHeader.setProtocolVersion("3.0");
    messageHeader.setMessageClass( MessageClassType.SERVICE );
    messageHeader.setMessageCategory( MessageCategoryType.PAYMENT );
    messageHeader.setMessageType( MessageType.REQUEST );
    messageHeader.setServiceID(serviceID);
    messageHeader.setSaleID(saleID);
    messageHeader.setPOIID(POIID);
    saleToPOIRequest.setMessageHeader(messageHeader);
    
    PaymentRequest paymentRequest = new PaymentRequest();
    SaleData saleData = new SaleData();
    TransactionIdentification saleTransactionID = new TransactionIdentification();
    saleTransactionID.setTransactionID(transactionID);
    saleTransactionID.setTimeStamp(DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()));
    saleData.setSaleTransactionID(saleTransactionID);
    saleData.setSaleReferenceID("YOUR_ORDER_REFERENCE");
    saleData.setSaleToAcquirerData("redemptionType=cashback");
    paymentRequest.setSaleData(saleData);
    
    PaymentTransaction paymentTransaction = new PaymentTransaction();
    AmountsReq amountsReq = new AmountsReq();
    amountsReq.setCurrency("GBP");
    amountsReq.setRequestedAmount( BigDecimal.valueOf(4.50) );
    paymentTransaction.setAmountsReq(amountsReq);
    paymentRequest.setPaymentTransaction(paymentTransaction);
    
    PaymentData paymentData = new PaymentData();
    paymentData.setPaymentType( PaymentType.NORMAL );
    PaymentInstrumentData paymentInstrumentData = new PaymentInstrumentData();
    paymentInstrumentData.setPaymentInstrumentType( PaymentInstrumentType.STORED_VALUE );
    StoredValueAccountID storedValueAccountID = new StoredValueAccountID();
    storedValueAccountID.setStoredValueAccountType( StoredValueAccountType.GIFT_CARD );
    storedValueAccountID.setStoredValueProvider("svs");
    storedValueAccountID.setIdentificationType( IdentificationType.PAN );
    storedValueAccountID.getEntryMode().add( EntryModeType.SCANNED );
    storedValueAccountID.setStoredValueID("6006491260550218066");
    storedValueAccountID.setExpiryDate("1122");
    paymentInstrumentData.setStoredValueAccountID(storedValueAccountID);
    paymentData.setPaymentInstrumentData(paymentInstrumentData);
    paymentRequest.setPaymentData(paymentData);
    saleToPOIRequest.setPaymentRequest(paymentRequest);
    terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);

A solicitação de cashback é enviada à plataforma de pagamentos da Adyen para processamento. Depois de processada, sua integração receberá o resultado do cashback.

Etapa 2: recebendo o resultado do cashback

Depois de processada, sua integração recebe uma resposta contendo o resultado do reembolso. Este é fornecido em uma resposta de API síncrona, a menos que sua integração use comunicações em nuvem assíncronas.

Se sua integração usar comunicações em nuvem assíncronas, você receberá o resultado em uma notificação de exibição TENDER_FINAL

Se a solicitação de cashback for bem-sucedida:

  • Você recebe uma resposta com um objeto PaymentResponse que inclui:

    O exemplo abaixo indica uma solicitação de cashback bem-sucedida, onde 4.50 GBP foram removidos do saldo do cartão presente.

    Para obter mais informações sobre a estrutura de solicitação da API de terminais, consulte os fundamentos da API de terminais.

    {
        "SaleToPOIResponse":{
            "PaymentResponse":{
                "POIData":{
                    "POITransactionID":{
                        "TimeStamp":"2019-06-22T12:55:24.000Z",
                        "TransactionID":"u6W7001529672124004.9815296721273135"
                    }
                },
                "SaleData":{
                    "SaleTransactionID":{
                        "TimeStamp":"2019-06-22T12:55:20.000Z",
                        "TransactionID":"44742"
                    },
                    "SaleReferenceID":"YOUR_ORDER_REFERENCE"
                },
                "PaymentReceipt":[...],
                "PaymentResult":{
                    "PaymentAcquirerData":{
                        "AcquirerPOIID":"V400m-324688179",
                        "AcquirerTransactionID":{
                            "TimeStamp":"2019-06-22T12:55:24.000Z",
                            "TransactionID":"44750"
                        },
                        "MerchantID":"TestMerchantPOS"
                    },
                    "PaymentInstrumentData":{
                        "StoredValueAccountID":{
                            "IdentificationType":"PAN",
                            "EntryMode":[
                                "MagStripe"
                            ],
                            "StoredValueID":"9826150911219687",
                            "StoredValueAccountType":"GiftCard",
                            "StoredValueProvider":"svs",
                            "ExpiryDate":"1122"
                        },
                        "PaymentInstrumentType":"StoredValue"
                    },
                    "AmountsResp":{
                        "AuthorizedAmount":4.50,
                        "Currency":"GBP"
                    },
                    "PaymentType":"Normal"
                },
                "Response":{
                    "Result":"Success",
                    "AdditionalResponse":"..."
                }
            },
            "MessageHeader":{
                "ProtocolVersion":"3.0",
                "SaleID":"POSTerminal",
                "MessageClass":"Service",
                "MessageCategory":"Payment",
                "ServiceID":"9269",
                "POIID":"V400m-324688179",
                "MessageType":"Response"
            }
        }
    }

A equipe da loja pode entregar os fundos retirados do cartão ao cliente em dinheiro.

Desativando o cartão vale presente

Se o cartão vale presente foi emitido pela Givex, você pode fazer uma solicitar a desativação do cartão.

Etapa 1: fazendo a solicitação de desativação

Para desativar um cartão vale presente:

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

    • MessageHeader: Segue a estrutura da MessageHeader padrão, explicada nos fundamentos da API de terminais, que incluem:

      • ProtocolVersion: 3.0
      • MessageCategory: StoredValue
      • MessageType: Request
      • SaleID: Seu ID exclusivo para a caixa registradora.
      • ServiceID: Seu ID exclusivo para esta tentativa de transação. Este precisa ser único nas últimas 48 horas
      • POIID: ID exclusivo do terminal. Isso indica para qual terminal a transação será roteada.
    • StoredValueRequest: O corpo da solicitação para a solicitação de desativação deve incluir

      • SaleData.SaleTransactionID.TransactionID: Sua referência exclusiva para esta solicitação de desativação.
      • SaleData.SaleTransactionID.TimeStamp: Data e hora da solicitação de desativação, no formato UTC.
      • StoredValueData.StoredValueTransactionType: Unload
      • StoredValueData.StoredValue.StoredValueAccountID: Os detalhes do cartão vale presente:

        • StoredValueAccountType: GiftCard
        • StoredValueProvider: O emissor do cartão vale presente: givex, svs, ou valuelink
        • IdentificationType: PAN
        • EntryMode, StoredValueID e ExpiryDate: Esses parâmetros dependem do metodo de leitura do cartão que você está usando.

          Leitura do cartão Parâmetros
          Scan
          • EntryMode: Scanned
          • StoredValueID: Número do cartão vale presente.
          • ExpiryDate: Data de validade do cartão vale presente.
          Swipe or MKE
          • EntryMode: MagStripe
          • StoredValueID: xxxxxxxxxxxxxxxxxxx.
          • Não inclua o ExpiryDate parâmetro.
        • ItemCount: 0
        • Currency: Moeda escolhida para o cartão vale presente.

    O exemplo abaixo mostra como você solicitaria a desativação de um cartão que já teve suas informações digitalizadas.

    Para obter mais informações sobre a estrutura de solicitação da API de terminais, consulte os fundamentos da API de terminais.

    {
      "SaleToPOIRequest": {
        "MessageHeader": {
          "ProtocolVersion": "3.0",
          "MessageClass": "Service",
          "MessageCategory": "StoredValue",
          "MessageType": "Request",
          "ServiceID": "9270",
          "SaleID": "POSSystemID12345",
          "POIID": "P400Plus-275008713"
        },
        "StoredValueRequest": {
          "SaleData": {
            "SaleTransactionID": {
              "TransactionID": "44743",
              "TimeStamp": "2019-05-17T14:13:03+00:00"
            }
          },
          "StoredValueData": [
            {
              "StoredValueTransactionType": "Unload",
              "StoredValueAccountID": {
                "StoredValueAccountType": "GiftCard",
                "StoredValueProvider": "svs",
                "IdentificationType": "PAN",
                "EntryMode": [
                  "Scanned"
                ],
                "StoredValueID": "6006491260550218066",
                "ExpiryDate": "1122"
              },
              "ItemAmount": 0,
              "Currency": "GBP"
            }
          ]
        }
      }
    }
    String serviceID = "YOUR_UNIQUE_ATTEMPT_ID";
    String saleID = "YOUR_CASH_REGISTER_ID";
    String POIID = "YOUR_TERMINAL_ID";
    String transactionID = "YOUR_UNIQUE_TRANSACTION_ID";
    
    SaleToPOIRequest saleToPOIRequest = new SaleToPOIRequest();
    MessageHeader messageHeader = new MessageHeader();
    messageHeader.setProtocolVersion("3.0");
    messageHeader.setMessageClass( MessageClassType.SERVICE );
    messageHeader.setMessageCategory( MessageCategoryType.STORED_VALUE );
    messageHeader.setMessageType( MessageType.REQUEST );
    messageHeader.setServiceID(serviceID);
    messageHeader.setSaleID(saleID);
    messageHeader.setPOIID(POIID);
    saleToPOIRequest.setMessageHeader(messageHeader);
    
    StoredValueRequest storedValueRequest = new StoredValueRequest();
    SaleData saleData = new SaleData();
    TransactionIdentification saleTransactionID = new TransactionIdentification();
    saleTransactionID.setTransactionID(transactionID);
    saleTransactionID.setTimeStamp(DatatypeFactory.newInstance().newXMLGregorianCalendar(new GregorianCalendar()));
    saleData.setSaleTransactionID(saleTransactionID);
    storedValueRequest.setSaleData(saleData);
    
    StoredValueData storedValueData = new StoredValueData();
    storedValueData.setStoredValueTransactionType( StoredValueTransactionType.UNLOAD );
    StoredValueAccountID storedValueAccountID = new StoredValueAccountID();
    storedValueAccountID.setStoredValueAccountType( StoredValueAccountType.GIFT_CARD );
    storedValueAccountID.setStoredValueProvider("svs");
    storedValueAccountID.setIdentificationType( IdentificationType.PAN );
    storedValueAccountID.getEntryMode().add( EntryModeType.SCANNED );
    storedValueAccountID.setStoredValueID("6006491260550218066");
    storedValueAccountID.setExpiryDate("1122");
    storedValueData.setStoredValueAccountID(storedValueAccountID);
    storedValueData.setItemAmount( BigDecimal.valueOf(0) );
    storedValueData.setCurrency("GBP");
    storedValueRequest.setStoredValueData(storedValueData);
    saleToPOIRequest.setStoredValueRequest(storedValueRequest);
    terminalAPIRequest.setSaleToPOIRequest(saleToPOIRequest);

A solicitação de desativação é enviada à plataforma de pagamentos da Adyen para processamento. Depois de processada, sua integração receberá uma resposta indicando se o cartão vale presente foi desativado.

Etapa 2: Recebendo resposta de desativação

Depois de processada, sua integração recebe uma resposta contendo o resultado da solicitação. Isso é fornecido em uma resposta de API síncrona, a menos que sua integração use comunicações em nuvem assíncronas.

Se sua integração usar comunicações em nuvem assíncronas, você receberá o resultado em uma notificação de exibição TENDER_FINAL

Se o cartão estiver desativado:

  • Você receberá uma resposta com um objeto StoredValueResponse que inclui:

    • POIData.POITransactionID.TransactionID: Identificador de transação for the deactivation.
    • StoredValueResult

      • StoredValueTransactionType: Unload
      • StoredValueAccountStatus.CurrentBalance: Saldo atual no cartão vale presente, que é 0 porque o cartão foi desativado.

    • Response.Result: Success

    O exemplo abaixo indica que a solicitação de desativação foi bem-sucedida e o cartão 6006491260550218157 foi desativado. Agora este cartão tem um saldo de 0 GBP.

    Para obter mais informações sobre a estrutura de solicitação da API de terminais, consulte os fundamentos da API de terminais.

    {
      "SaleToPOIResponse":{
        "StoredValueResponse":{
          "POIData":{
            "POITransactionID":{
              "TimeStamp":"2019-05-17T14:13:03.000Z",
              "TransactionID":"oLkO001526566383000.9815265664093834"
            }
          },
          ...
          "StoredValueResult":[
            {
              "StoredValueTransactionType":"Unload",
              "ItemAmount":0,
              "StoredValueAccountStatus":{
                "StoredValueAccountID":{
                  "IdentificationType":"PAN",
                  "EntryMode":[
                    "MagStripe"
                  ],
                  "StoredValueID":"6006491260550218157",
                  "StoredValueAccountType":"GiftCard",
                  "ExpiryDate":"1122"
                },
                "CurrentBalance":0
              },
              "Currency":"GBP"
            }
          ],
          "Response":{
            "Result":"Success",
            "AdditionalResponse":"..."
          }
        },
        "MessageHeader":{
          "ProtocolVersion":"3.0",
          "SaleID":"POSSystemID12345",
          "MessageClass":"Service",
          "MessageCategory":"StoredValue",
          "ServiceID":"9270",
          "POIID":"V400m-324688179",
          "MessageType":"Response"
        }
      }
    }

    See also