Pesquisar

Are you looking for test card numbers?

Would you like to contact support?

Point-of-sale icon

Reembolsar um cartão vale presente

Faça um reembolso não referenciado para um cartão vale presente em seu terminal.

Se você quiser devolver fundos ao cartão vale presente de um cliente, você poderá fazer uma solicitação de reversão ou reembolso:

  • Estorno: Se você quiser estornar um pagamento feito com o cartão vale presente, faça uma solicitação de estorno com referência ao pagamento original. É o que chamamos de "reembolso referenciado" e é descrito em Reembolsar um pagamento. Você também pode fazer (múltiplos) reembolsos parciais usando solicitações de estorno.

  • Reembolso: Se você não puder vincular o reembolso a um pagamento feito com o cartão vale presente, por exemplo, no caso de uma "devolução de mercadoria" , quando o cliente devolver um presente indesejado, faça uma solicitação de reembolso. É o que descrevemos aqui nesta página.

Quando a solicitação foi processada, você receberá um resultado indicando se o reembolso foi bem sucedido.

Se você quiser devolver o saldo de um cartão vale presente a um cliente em dinheiro, você deverá realizar uma solicitação de cashback .

Antes de começar

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

Etapa 1: faça uma solicitação de reembolso

Para emitir um reembolso para 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: 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 reembolso deve incluir:

      • SaleData.SaleTransactionID.TransactionID: Sua referência exclusiva para esta solicitação de reembolso.
      • SaleData.SaleTransactionID.TimeStamp: Data e hora da solicitação de pagamento, no formato UTC.
      • SaleData.SaleReferenceID: Sua referência ao pedido pelo qual você deseja fazer um reembolso. Na Customer Area, este aparecerá como o Merchant Order para a transação.
      • PaymentTransaction.AmountsReq: The Currency e RequestedAmount sendo reembolsados no cartão vale presente.
      • PaymentData.PaymentType: Refund
      • 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 vale presente.
          Swipe or MKE
          • EntryMode: MagStripe
          • StoredValueID: xxxxxxxxxxxxxxxxxxx.
          • Não inclua o ExpiryDate parâmetro.

    O exemplo abaixo mostra como você emitiria um reembolso de 30.00 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":"9268",
             "SaleID":"POSSystem",
             "POIID":"V400m-324688179"
          },
          "PaymentRequest":{
             "SaleData":{
                "SaleTransactionID":{
                   "TransactionID":"44741",
                   "TimeStamp":"2019-06-22T12:20:27+00:00"
                },
                "SaleReferenceID":"YOUR_ORDER_REFERENCE"
             },
             "PaymentTransaction":{
                "AmountsReq":{
                   "Currency":"GBP",
                   "RequestedAmount":30
                }
             },
             "PaymentData":{
                "PaymentType":"Refund",
                "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");
    paymentRequest.setSaleData(saleData);
    
    PaymentTransaction paymentTransaction = new PaymentTransaction();
    AmountsReq amountsReq = new AmountsReq();
    amountsReq.setCurrency("GBP");
    amountsReq.setRequestedAmount( BigDecimal.valueOf(30) );
    paymentTransaction.setAmountsReq(amountsReq);
    paymentRequest.setPaymentTransaction(paymentTransaction);
    
    PaymentData paymentData = new PaymentData();
    paymentData.setPaymentType( PaymentType.REFUND );
    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 reembolso é enviada à plataforma de pagamentos da Adyen para processamento.

Etapa 2: recebendo o resultado do reembolso

Depois de processada, sua integração recebe 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 reembolso for bem-sucedida:

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

    O exemplo abaixo indica que o reembolso de 30,00 GBP foi emitido com sucesso para o cartão vale 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:20:31.000Z",
                        "TransactionID":"u6W7001529670031000.9815296700362966"
                    }
                },
                "SaleData":{
                    "SaleTransactionID":{
                        "TimeStamp":"2019-06-22T12:20:27.000Z",
                        "TransactionID":"44741"
                    },
                    "SaleReferenceID":"SalesRefABC"
                },
                "PaymentReceipt":[...],
                "PaymentResult":{
                    "PaymentAcquirerData":{
                        "AcquirerPOIID":"V400m-324688179",
                        "AcquirerTransactionID":{
                            "TimeStamp":"2019-06-22T12:20:31.000Z",
                            "TransactionID":"9815296700362966"
                        },
                        "MerchantID":"TestMerchantPOS"
                    },
                    "PaymentInstrumentData":{
                        "StoredValueAccountID":{
                            "IdentificationType":"PAN",
                            "EntryMode":[
                                "MagStripe"
                            ],
                            "StoredValueID":"603628173862001915498",
                            "StoredValueAccountType":"GiftCard",
                            "StoredValueProvider":"givex",
                            "ExpiryDate":"1249"
                        },
                        "PaymentInstrumentType":"StoredValue"
                    },
                    "AmountsResp":{
                        "AuthorizedAmount":30.00,
                        "Currency":"GBP"
                    },
                    "PaymentType":"Refund"
                },
                "Response":{
                    "Result":"Success",
                    "AdditionalResponse":"..."
                }
            },
            "MessageHeader":{
                "ProtocolVersion":"3.0",
                "SaleID":"POSSystem",
                "MessageClass":"Service",
                "MessageCategory":"Payment",
                "ServiceID":"9268",
                "POIID":"V400m-324688179",
                "MessageType":"Response"
            }
        }
    }

Próximos passos

See also