runCheckCredit

Run a check credit transaction.

Description

This method uses ACH to sends funds to a customer, employee, vendor, etc. It can be used to "refund" a sale or make a payment to someone (ie payroll). This transaction type is "stand alone" and does not pull the account and routing number from a previous sale. You must provide the Routing and Account properties in the CheckData object. If you want to use the account data from a prior transaction by referencing the RefNum, use the refundTransaction or runQuickCredit methods.

This feature, sometimes referred as "Reverse ACH", "Check Credit" or "Disbursement", is not available with all check processors. For those processors that do support it, merchants must request that it is enabled for their account. Contact your merchant service provider for further information.

If this method is used to reverse or refund an electronic check transaction, please be aware that both the original transaction and the refund will appear as separate transactions on the customer's bank account statement. To reverse a sale without creating a new transaction, you must use the voidTransaction method. Please see the description of the voidTransaction method for more details on how to determine which of these methods is most appropriate.

See also runCheckSale, runQuickCredit, voidTransaction, refundTransaction

Syntax

TransactionResponse runCheckCredit ( ueSecurityToken Token, TransactionRequestObject Params )

Arguments

Type Name Description
ueSecurityToken Token Merchant security token: used to identify merchant and validate transaction.
TransactionRequestObject Params Request transaction details from all fields of the transaction form, including reference number, transaction amount, customer ID, currency, authorization code, and any other information entered at the time of the transaction.

Return Value

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

Examples

PHP

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

    <?php

    try {

      $Request=array(
        'AccountHolder' => 'Tester Jones',
        'Details' => array(
          'Description' => 'Example Transaction',
          'Amount' => '4.99',
          'Invoice' => '44539'
          ),
        'CheckData' => array(
          'CheckNumber' => '1234',
          'Routing' => '123456789',
          'Account' => '11111111',
          'AccountType' => 'Savings',
          'DriversLicense' => '34521343',
          'DriversLicenseState' => 'CA',
          'RecordType' => 'PPD'
          )
        );

      $res=$client->runCheckCredit($token, $Request);

    }  

    catch (SoapFault $e)  {
      echo $client->__getLastRequest();
      echo $client->__getLastResponse();
      die("runCheckCredit failed :" .$e->getMessage());
      }

    ?>

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 {

      TransactionRequestObject params = new TransactionRequestObject();

      //set account holder name
        params.setAccountHolder("Test Joe");

        // populate transaction details
        TransactionDetail details = new TransactionDetail();
          details.setAmount(22.34);
          details.setDescription("My Test Sale");
          details.setInvoice("119891");
        params.setDetails(details);

        // populate credit card data
        CheckData checkdata = new CheckData();
          checkdata.setRouting("123123123");
          checkdata.setAccount("321321");
        params.setCheckData(checkdata);


      // Create request object
      RunCheckCredit request = new RunCheckCredit();
        request.setToken(token);
        request.setParams(params);

      // Create response object
      TransactionResponse response;

      // run credit
      response = client.runCheckCredit(token, params);

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

### Visual Basic (.Net)
For directions on how to set up the WSDL link, create "token" and "client", go to [Visual Basic .Net Soap How-to](https://help.usaepay.info/developer/soap-api/howto/vb/).

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

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


    Dim transaction As usaepay.TransactionRequestObject = New usaepay.TransactionRequestObject

    transaction.CheckData = New usaepay.CheckData
    transaction.CheckData.Account = "1112223333"
    transaction.CheckData.Routing = "123456789"
    transaction.CheckData.DriversLicense = "D5555555"
    transaction.CheckData.DriversLicenseState = "CA"

    transaction.Details = New usaepay.TransactionDetail
    transaction.Details.Amount = "1.00"
    transaction.Details.AmountSpecified = True
    transaction.Details.Invoice = "55555"
    transaction.Details.Description = "Test Check Sale"

    transaction.AccountHolder = "Test Guy"

    Dim response As usaepay.TransactionResponse

    response = client.runCheckCredit(token, transaction)

    If response.ResultCode = "A" Then
        MsgBox("Transaction Approved, Reference 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.TransactionRequestObject tran = new usaepay.TransactionRequestObject();

                tran.Details = new usaepay.TransactionDetail();
                tran.Details.Amount = 1.00;
                tran.Details.AmountSpecified = true;
                tran.Details.Invoice = "1234";
                tran.Details.Description = "Sample Check Credit";

                tran.CheckData = new usaepay.CheckData();
                tran.CheckData.Account = "1112223333";
                tran.CheckData.Routing = "123456789";
                tran.CheckData.DriversLicense = "D5555555";
                tran.CheckData.DriversLicenseState = "CA";

                tran.AccountHolder = "Test Guy";

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

                try
                {
                    response = client.runCheckCredit(token, tran);

                    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:runCheckCredit>
                <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">58bdbfeb7c15078fa62291bd6a4473990dd50dd8</HashValue>
                      <Seed xsi:type="xsd:string">11139209200-test</Seed>
                      <Type xsi:type="xsd:string">sha1</Type>
                   </PinHash>
                   <SourceKey xsi:type="xsd:string">_B4P7C4K2w2ZCQQQXRqrxDj6agrS2NIT</SourceKey>
                </Token>
                <Params xsi:type="ns1:TransactionRequestObject">
                   <AccountHolder xsi:type="xsd:string">Tester Jones</AccountHolder>
                   <BillingAddress xsi:type="ns1:Address">
                      <City xsi:type="xsd:string">Albany</City>
                      <Company xsi:type="xsd:string">testing</Company>
                      <Country xsi:type="xsd:string">Un</Country>
                      <FirstName xsi:type="xsd:string">SoapAPI</FirstName>
                      <LastName xsi:type="xsd:string">Testor</LastName>
                      <Phone xsi:type="xsd:string">5183310981</Phone>
                      <State xsi:type="xsd:string">NY</State>
                      <Street xsi:type="xsd:string">180 State st</Street>
                      <Street2 xsi:type="xsd:string">133 Lancaster st</Street2>
                      <Zip xsi:type="xsd:string">12210</Zip>
                   </BillingAddress>
                   <CheckData xsi:type="ns1:CheckData">
                      <Account xsi:type="xsd:string">11111111</Account>
                      <AccountType xsi:type="xsd:string">Savings</AccountType>
                      <CheckNumber xsi:type="xsd:integer">1234</CheckNumber>
                      <DriversLicense xsi:type="xsd:string">34521343</DriversLicense>
                      <DriversLicenseState xsi:type="xsd:string">CA</DriversLicenseState>
                      <RecordType xsi:type="xsd:string">PPD</RecordType>
                      <Routing xsi:type="xsd:string">123456789</Routing>
                   </CheckData>
                   <ClientIP xsi:type="xsd:string">123.123.123.123</ClientIP>
                   <Command xsi:type="xsd:string">checkcredit</Command>
                   <CustomerID xsi:type="xsd:string">123456</CustomerID>
                   <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>
                   <LineItems SOAP-ENC:arrayType="ns1:LineItem[1]" xsi:type="ns1:LineItemArray">
                      <item xsi:type="ns1:LineItem">
                         <SKU xsi:type="xsd:string">1234</SKU>
                         <ProductName xsi:type="xsd:string">Test Example</ProductName>
                         <Description xsi:type="xsd:string">Test</Description>
                         <UnitPrice xsi:type="xsd:string">19.99</UnitPrice>
                         <Qty xsi:type="xsd:string">9</Qty>
                         <Taxable xsi:type="xsd:boolean">true</Taxable>
                      </item>
                   </LineItems>
                   <ShippingAddress xsi:type="ns1:Address">
                      <City xsi:type="xsd:string">Los Angeles</City>
                      <Company xsi:type="xsd:string">Location 2</Company>
                      <Country xsi:type="xsd:string">Un</Country>
                      <FirstName xsi:type="xsd:string">Ship</FirstName>
                      <LastName xsi:type="xsd:string">Tome</LastName>
                      <Phone xsi:type="xsd:string">3133129163</Phone>
                      <State xsi:type="xsd:string">CA</State>
                      <Street xsi:type="xsd:string">9999 s sycamore</Street>
                      <Street2 xsi:type="xsd:string">9999 Lancaster st</Street2>
                      <Zip xsi:type="xsd:string">90036</Zip>
                   </ShippingAddress>
                </Params>
             </ns1:runCheckCredit>
          </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: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:runCheckCreditResponse>
          <runCheckCreditReturn xsi:type="ns1:TransactionResponse">
            <AcsUrl xsi:type="xsd:string"></AcsUrl>
            <AuthAmount xsi:type="xsd:double">0</AuthAmount>
            <AuthCode xsi:type="xsd:string">TM6484</AuthCode>
          <AvsResult xsi:type="xsd:string">No AVS response (Typically no AVS data sent or swiped transaction)
          </AvsResult>
            <AvsResultCode xsi:type="xsd:string"></AvsResultCode>
            <BatchNum xsi:type="xsd:string">151117</BatchNum>
            <BatchRefNum xsi:type="xsd:string">0</BatchRefNum>
            <CardCodeResult xsi:type="xsd:string">No CVV2/CVC data available for transaction.</CardCodeResult>
            <CardCodeResultCode xsi:type="xsd:string"></CardCodeResultCode>
            <CardLevelResult xsi:type="xsd:string">Unknown Code</CardLevelResult>
            <CardLevelResultCode xsi:type="xsd:string"></CardLevelResultCode>
            <ConversionRate xsi:type="xsd:double">0</ConversionRate>
            <ConvertedAmount xsi:type="xsd:double">0</ConvertedAmount>
            <ConvertedAmountCurrency xsi:type="xsd:string">840</ConvertedAmountCurrency>
            <CustNum xsi:type="xsd:string">0</CustNum>
            <Error xsi:type="xsd:string"></Error>
            <ErrorCode xsi:type="xsd:integer">0</ErrorCode>
            <isDuplicate xsi:type="xsd:boolean">false</isDuplicate>
            <Payload xsi:type="xsd:string"></Payload>
            <RefNum xsi:type="xsd:string">102132826</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>
          </runCheckCreditReturn>
        </ns1:runCheckCreditResponse>
      </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>