runQuickSale

Run a sale based on the credit card details of a previous transaction.

Description

This method allows you to run a new transaction using the payment data from a previous transaction. Simply pass the reference number ($RefNum) of the previous transaction and the gateway will automatically transfer the credit card or electronic check (ACH) information for use in the new transaction. Some credit card information, such as the card code and magnetic strip cannot be stored. This may cause the new transaction to come in at a higher rate than the original.

See also runTransaction, runSale, voidTransaction, runCredit

Syntax

TransactionResponse runQuickSale ( ueSecurityToken Token, string RefNum, TransactionDetail Details, boolean AuthOnly )

Arguments

Type Name Description
ueSecurityToken Token Merchant security token: used to identify merchant and validate transaction.
string RefNum Unique transaction reference number assigned by the gateway. You can also use TransKey in the RefNum field.
TransactionDetail Details Request transaction details, including transaction amount, invoice number, customer ID, PO number, and other transaction specific data.
boolean AuthOnly If true, the transaction will be authorized, but not be submitted for settlement.

Return Value

Type Description
TransactionResponse Returns a TransactionResponse object containing the results of the transaction and all relevant data.

Exceptions

The following exceptions (errors) are applicable to this method.

Code Message Advice
20002 Invalid Security Token. Supplied security token is invalid.
10105 Unable to find original transaction. The specified transaction RefNum did not match a eligible transaction or the transaction belongs to a different merchant.
10136 Original transaction not approved. QuickSale only allowed for transactions that were approved

Examples

PHP

For directions on how to set up the WSDL link, create "$token" and "$client", go to SOAP PHP How-to.

    <?php

    try {

      $refnum="1nfmkr4rsmtxhm5";
      $details=array(
        "Amount"=>4.00,
        "Invoice"=>1234,
        "Description"=>"Test Transaction",
        "PONum"=>"",
        "OrderID"=>1234,
        "Tax"=>0,
        "Tip"=>0,
        "NonTax"=>false,
        "Shipping"=>0,
        "Discount"=>0,
        "Subtotal"=>4.00
        );

      print_r($client->runQuickSale($token,$refnum, $details, true));

    }

    catch(SoapFault $e) {    
      echo $e->getMessage();
      echo "\n\nRequest: " . $client->__getLastRequest();
      echo "\n\nResponse: " . $client->__getLastResponse();

    }

    ?>

Java

This example uses the USAePay Java library. For directions on how to install the library and create the token/client objects, go to the Java JAX-WS Howto.

    try {

      //Set RefNum to the transaction refference number
      //you want to run a quick sale on
      BigInteger RefNum = new BigInteger("123456789");

      //populate transaction details
      TransactionDetail details = new TransactionDetail();
        details.setAmount(22.34);
        details.setDescription("QuickSale");
        details.setInvoice("119891");

      // Create response object
      TransactionResponse response;

      response = client.runQuickSale(token, RefNum, details, false);

      System.out.println("Response: " + response.getResult());
      System.out.println("RefNum: " + response.getRefNum());
    } catch (Exception e) {
        System.out.println("Soap Exception: " + e.getMessage());
    }

VB

For directions on how to set up the WSDL link and create the "token" and "client" variables, go to the Visual Basic .Net Soap How-to.

       Dim client As usaepay.usaepayService = New usaepay.usaepayService
            Dim token As usaepay.ueSecurityToken

            token = Me.CreateToken("714SSUxv1uohng2XkMJ7kLpETsu58G66", "1234")


            Dim refnum As Integer
            Dim details As usaepay.TransactionDetail = New usaepay.TransactionDetail
            Dim authonly As Boolean

            refnum = "46990567"
            details.Amount = "34.50"
            details.AmountSpecified = True
            details.Description = "Example QuickSale"
            details.Invoice = "123456"

            authonly = False

            Dim response As usaepay.TransactionResponse

            response = client.runQuickSale(token, refnum, details, authonly)

            If response.ResultCode = "A" Then
                MsgBox("Transaction Approved, Refernce Number: " & response.RefNum)
            ElseIf response.ResultCode = "D" Then
                MsgBox("Transaction Declined, Reason: " & response.Error)
            Else
                MsgBox("Transaction Error, Reason: " & response.Error)
            End If

.NET C

For directions on how to set up the WSDL link and create the "token" and "client" variables, go to the C Sharp .Net Soap How-to.

    usaepay.TransactionDetail details = new usaepay.TransactionDetail();

                string refnum;
                bool authonly;

                refnum = "46973415";
                authonly = false;

                details.Amount = 34.50;
                details.AmountSpecified = true;
                details.Description = "Example QuickSale";
                details.Invoice = "123456";

                usaepay.TransactionResponse response = new usaepay.TransactionResponse();

                try
                {
                    response = client.runQuickSale(token, refnum, details, authonly);

                    if (response.ResultCode == "A")
                    {
                        MessageBox.Show(string.Concat("Transaction Approved, RefNum: ",
                        response.RefNum));
                    }
                    else
                    {
                        MessageBox.Show(string.Concat("Transaction Failed: ",
                        response.Error));
                    }
                }
                catch (Exception err)
                {
                    MessageBox.Show(err.Message);

                }

XML

Request:

    <?xml version="1.0" encoding="UTF-8"?>
       <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:usaepay"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
       SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
          <SOAP-ENV:Body>
             <ns1:runQuickSale>
                <Token xsi:type="ns1:ueSecurityToken">
                   <ClientIP xsi:type="xsd:string">123.123.123.123</ClientIP>
                   <PinHash xsi:type="ns1:ueHash">
                      <HashValue xsi:type="xsd:string">c453ae7c15f208e6e30e81f9c9882ff9c0fa36d7</HashValue>
                      <Seed xsi:type="xsd:string">11794238107-test</Seed>
                      <Type xsi:type="xsd:string">sha1</Type>
                   </PinHash>
                   <SourceKey xsi:type="xsd:string">_B4P7C4K2w2ZCQQQXRqrxDj6agrS2NIT</SourceKey>
                </Token>
                <RefNum xsi:type="xsd:string">102161632</RefNum>
                <Details xsi:type="ns1:TransactionDetail">
                   <Amount xsi:type="xsd:double">22</Amount>
                   <Clerk xsi:type="xsd:string">John Doe</Clerk>
                   <Currency xsi:type="xsd:string">0</Currency>
                   <Description xsi:type="xsd:string">Example Transaction</Description>
                   <Discount xsi:type="xsd:double">10</Discount>
                   <Invoice xsi:type="xsd:string">44539</Invoice>
                   <OrderID xsi:type="xsd:string">12345</OrderID>
                   <PONum xsi:type="xsd:string">54321</PONum>
                   <Shipping xsi:type="xsd:double">2</Shipping>
                   <Subtotal xsi:type="xsd:double">12</Subtotal>
                   <Table xsi:type="xsd:string">1</Table>
                   <Tax xsi:type="xsd:double">10</Tax>
                   <Terminal xsi:type="xsd:string">15</Terminal>
                   <Tip xsi:type="xsd:double">8</Tip>
                </Details>
                <AuthOnly xsi:type="xsd:boolean">false</AuthOnly>
             </ns1:runQuickSale>
          </SOAP-ENV:Body>
       </SOAP-ENV:Envelope>

Response:

    <?xml version="1.0" encoding="utf-8"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="urn:usaepay"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
     SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
      <SOAP-ENV:Body>
        <ns1:runQuickSaleResponse>
          <runQuickSaleReturn xsi:type="ns1:TransactionResponse">
            <AcsUrl xsi:nil="true" />
            <AuthAmount xsi:type="xsd:double">22</AuthAmount>
            <AuthCode xsi:type="xsd:string">056852</AuthCode>
            <AvsResult xsi:type="xsd:string">Address: Match &amp; 5 Digit Zip: Match</AvsResult>
            <AvsResultCode xsi:type="xsd:string">YYY</AvsResultCode>
            <BatchNum xsi:type="xsd:string">198205</BatchNum>
            <BatchRefNum xsi:type="xsd:string">198205</BatchRefNum>
            <CardCodeResult xsi:type="xsd:string">Match</CardCodeResult>
            <CardCodeResultCode xsi:type="xsd:string">M</CardCodeResultCode>
            <CardLevelResult xsi:type="xsd:string">Visa Traditional</CardLevelResult>
            <CardLevelResultCode xsi:type="xsd:string">A</CardLevelResultCode>
            <ConversionRate xsi:type="xsd:double">0</ConversionRate>
            <ConvertedAmount xsi:type="xsd:double">0</ConvertedAmount>
            <ConvertedAmountCurrency xsi:nil="true" />
            <CustNum xsi:type="xsd:string">0</CustNum>
            <Error xsi:type="xsd:string">Approved</Error>
            <ErrorCode xsi:type="xsd:integer">0</ErrorCode>
            <isDuplicate xsi:type="xsd:boolean">false</isDuplicate>
            <Payload xsi:nil="true" />
            <RefNum xsi:type="xsd:string">102162016</RefNum>
            <Result xsi:type="xsd:string">Approved</Result>
            <ResultCode xsi:type="xsd:string">A</ResultCode>
            <Status xsi:type="xsd:string">Pending</Status>
            <StatusCode xsi:type="xsd:string">P</StatusCode>
            <VpasResultCode xsi:type="xsd:string"></VpasResultCode>
          </runQuickSaleReturn>
        </ns1:runQuickSaleResponse>
      </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

Change Log

Version Change
1.7 TransKey can be used in RefNum field.