Merchantware 4.6

Important: Before you start your integration, read the Before You Begin section.
Note: Documentation for Merchantware 4.5 is available here.

Overview

You can use the Merchantware API to retrieve information about transactions that the merchant has run on their POS. By integrating with the Reporting endpoint, you can return a list of transactions within a date range or return detailed information about a specific transaction. The merchant can use this information for the following:

• Reconciling their accounts
• Defending themselves against a chargeback request
• Getting a token to run a refund, void, or capture
• Making sure a check transaction has cleared

Reporting endpoint

https://ps1.merchantware.net/Merchantware/ws/TransactionHistory/v46/Reporting.asmx

Reports

Look up the details of a transaction

To retrieve the details of a transaction, send a DetailedTransactionLookup request to the Reporting endpoint.

How it works

A DetailedTransactionLookup request must include a Token or a MerchantTransactionId to identify the transaction you want to view.

Request objects

  • MerchantCredentials
  • Request
MerchantCredentials
Parameter Description Type Size Optional?
MerchantName Name of the merchant or their business. String 1-160 Required
MerchantSiteId Identifier for the merchant's store or location. String 1-160 Required
MerchantKey Authentication key for the merchant's account. String 1-160 Required
Request
Parameter Description Type Size Optional?
Token Unique identifier that our gateway assigned to the transaction. 
Note: If you provide a Token in the request, do not provide a MerchantTransactionId.
String 0-100 Optional
MerchantTransactionId Unique identifier that the merchant assigned to the transaction. 
Note: If you provide a MerchantTransactionId in the request, do not provide a Token.
String 0-100 Optional

Response object

DetailedTransactionLookupResult
Parameter Description Type
ApprovalCode Approval code the processor returned for the transaction. String
ApprovalStatus Response from the processor that indicates the status of the transaction. String
AuthorizationAmount Dollar amount the processor authorized for the transaction. String
AvsResponse Result of an Address Verification Service (AVS) review. The merchant uses this to verify the address of the cardholder. For a list of possible values, see AVS Response Codes. String
BatchNumber Number of the batch that contains the transaction. String
Cardholder Name of the cardholder.
Note: We return this value only for card transactions.
String
CashbackAmount Dollar amount that the cardholder requested as cashback in the transaction. Cashback allows the cardholder to add a dollar amount to their purchase that they receive as cash. String
CardNumber Permanent account number (PAN) on the cardholder's payment card. We return a truncated card number for security reasons.
Note: If the transaction is a check transaction, this value is the number of the customer's bank account.
String
PaymentType Card type used in the transaction. For a list of possible values, see PaymentType. Integer
ConvenienceAmount Dollar amount that the merchant charged the cardholder for performing the transaction. String
CustomerId Unique identifier that the merchant assigned to the cardholder. String
CvvResponse A Card Verification Value (CVV). This is also known as the following:
• Card Security Code (CSC)
• Card Verification Data (CVD)
• Card Verification Number (CVN)
• Card Verification Code (CVC)
For a list of possible values, see CVV Response Codes.
String
DiscountAmount Dollar amount of discount the merchant gave to the cardholder. String
ErrorMessage If the transaction could not be processed, this message explains the reason for the error. String
ExpirationDate Date that the payment card expires in MMYY format. String
HostReference Unique identifier that the processor issued when it received the transaction. String
InvoiceNumber Invoice number for the transaction, which was created by the merchant. String
IsTransactionAdjusted Indicates if the transaction was adjusted from its original amount. The value is one of the following:
• True - Transaction has been adjusted.
• False - Transaction has not been adjusted.
Boolean
IsTransactionCaptured If the transaction is an authorization, this indicates if the merchant captured the transaction. The value is one of the following:
• True - Merchant captured the transaction.
• False - Merchant did not capture the transaction.
Note: If the transaction is not an authorization, we return a value of False
Boolean
IsTransactionVoided Indicates if the transaction was voided. The value is one of the following:
• True - Transaction voided.
• False - Transaction was not voided.
Boolean
IsTransactionSettled Indicates if the transaction was settled. The value is one of the following:
• True - Transaction settled.
• False - Transaction not settled.
Boolean
MerchantTransactionId Unique identifier that the merchant assigned to the transaction. String
OriginalToken Identifies the original transaction that was referenced by the current transaction. For example, the token for the original authorization that the merchant then captured. String
PostalCode ZIP code of the cardholder's address. String
PurchaseOrderNumber Purchase order number for the transaction, which was created by the cardholder. String
RegisterNumber Identifies the POS that processed the transaction. String
StreetAddress First line of the cardholder's address. String
SupportedActions Object that indicates the actions allowed for a transaction. See the SupportedActions data structure. Object
SurchargeAmount Dollar amount that the merchant charged the cardholder as a surcharge for paying using a credit card. 
Note: In certain states it is illegal to add a surcharge to a transaction.
String
TaxAmount Dollar amount of the transaction that was tax. String
TipAmount Dollar amount of the transaction that was tip.
Note: Only certain merchant types can accept tips. Contact your processor for more information.
String
Token Unique identifier for the transaction in our gateway. String
TotalAmount Total dollar amount of the transaction. String
TransactionDate Date in UTC that the merchant ran the transaction. The format is YYYY-MM-DDTHH:MM:SS, for example, 2020-02-01T09:00:00. DateTime
TransactionType Type of transaction. For a list of possible values, see TransactionType. Integer
UserName Username of the merchant that ran the transaction. String
HealthCareAmounts Object that contains the dollar amounts the cardholder spent on different types of healthcare. See the HealthCareAmounts data structure. Object
Emv Object that contains information about an EMV transaction. See the EMV data structure.
Note: We return this object only if the transaction is an EMV transaction.
Object
EntryMode Source of the transaction. For a list of possible values, see EntryMode. String
FsaCard Indicates if the cardholder used a Flexible Spending Account (FSA) card. The value is one of the following:
True - Cardholder used an FSA card.
• False - Cardholder did not use an FSA card.
Boolean
FraudScoring Object that contains the fraud-scoring details about the transaction. See the FraudScoring data structure.
Note: We return this object only if the merchant has subscribed to this service.
Object
EbtBasisType Indicates the type of EBT that the cardholder used to pay for the transaction. The value is one of the following:
- The value is reserved.
• - Cardholder used EBT food benefits.
• - Cardholder used EBT cash or a cash equivalent.
Note: We return this only for EBT transactions.
Integer
Rfmiq Requency-Frequency-Monetary IQ (RFMIQ) is an anonymized identifier representing the payment card used in the transaction.
Note: We return this value only if the merchant has subscribed to this service.
String
Invoice Object that contains the transaction's tax amounts and line-item details. See the Invoice data structure. Object
CustomerEmailAddress Cardholder's email address. String
MultipleClearing Object that contains information about multiple shipments. See the MultipleClearing data structure. Object
VaultToken Represents a cardholder's payment details that the merchant saved in the vault. String
CardBin Bank identification number (BIN) of the payment card, which is the first six digits printed on the front of the card. Our gateway returns the BIN only if the merchant is set up for this feature and the card number is valid. A card number is valid if it has the following:
  • Minimum of 15 digits
  • Numeric characters only
String
MerchantVaultTokenReference Reference that the merchant tagged to a cardholder's account. The merchant can add the reference to multiple accounts to allow them to group transactions. String
CheckData Object that contains information about the check transaction. See the CheckData data structure.
Note: We return this only for check transactions.
Object
CheckImages Object that indicates if the merchant sent check images in the transaction. See the CheckImages data structure.
Note: We return this only for check transactions.
Object
RecurringCheck Indicates if the check transaction is recurring. The value is one of the following:
• True - Transaction is recurring.
• False - Transaction is not recurring.
Note: We return this only for check transactions.
String
CheckStatus Response from the processor that describes the status of the check transaction.
Note: We return this only for check transactions.
String
FundingStatus Response from the processor that describes the funding status of the check transaction.
Note: We return this only for check transactions.
String
DepositDate Date in UTC of the deposit of the check or checking account transaction. The format is YYYY-MM-DDTHH:MM:SS, for example, 2020-02-01T09:00:00.
Note: We return this only for check transactions.
DateTime
AchChangeLog Object that contains processing information about the check transaction. See the AchChangeLog data structure.
Note: We return this only for check transactions.
Object

Example SOAP request

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
   <soap:Body>
    <DetailedTransactionLookup xmlns="http://schemas.merchantwarehouse.com/merchantware/46/Reports/">
      <Credentials>
        <MerchantName>Sample Merchant</MerchantName>
        <MerchantSiteId>XXXXXXXX</MerchantSiteId>
        <MerchantKey>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</MerchantKey>
      </Credentials>
      <Request>
        <MerchantTransactionId>TX-cffc2559</MerchantTransactionId>
      </Request>
    </DetailedTransactionLookup>
  </soap:Body>
</soap:Envelope>

Example SOAP response

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <DetailedTransactionLookupResponse xmlns="http://schemas.merchantwarehouse.com/merchantware/46/Reports/">
      <DetailedTransactionLookupResult>
        <ApprovalCode>OK0375</ApprovalCode>
        <ApprovalStatus>APPROVED</ApprovalStatus>
        <AuthorizationAmount>10.0000</AuthorizationAmount>
        <AvsResponse />
        <BatchNumber />
        <Cardholder>VISA ACQUIRER TEST/CARD 0</Cardholder>
        <CashBackAmount>0.0000</CashBackAmount>
        <CardNumber>************2222</CardNumber>
        <PaymentType>4</PaymentType>
        <ConvenienceAmount>0</ConvenienceAmount>
        <CustomerId />
        <CvvResponse />
        <DiscountAmount>0</DiscountAmount>
        <ErrorMessage />
        <ExpirationDate>1222</ExpirationDate>
        <HostReference>5000001009</HostReference>
        <InvoiceNumber>246684</InvoiceNumber>
        <IsTransactionAdjusted>false</IsTransactionAdjusted>
        <IsTransactionCaptured>false</IsTransactionCaptured>
        <IsTransactionVoided>false</IsTransactionVoided>
        <IsTransactionSettled>false</IsTransactionSettled>
        <MerchantTransactionId>TX-8bg7svFDEq1yiMF8wIOA</MerchantTransactionId>
        <OriginalToken />
        <PostalCode />
        <PurchaseOrderNumber>PO-903</PurchaseOrderNumber>
        <RegisterNumber>REG-C30</RegisterNumber>
        <StreetAddress />
        <SupportedActions>
          <AdjustmentToken />
          <CaptureToken />
          <RefundMaxAmount>0</RefundMaxAmount>
          <RefundToken />
          <VoidToken>5000001009</VoidToken>
        </SupportedActions>
        <SurchargeAmount>0.0000</SurchargeAmount>
        <TaxAmount>1.0000</TaxAmount>
        <TipAmount>0.0000</TipAmount>
        <Token>5000001009</Token>
        <TotalAmount>10.0000</TotalAmount>
        <TransactionDate>2020-02-13T20:43:34.92Z</TransactionDate>
        <TransactionType>1</TransactionType>
        <UserName>GWAPI3D1O6SAIX</UserName>
        <Emv>
          <ApplicationInformation>
            <Aid>A000000003101005</Aid>
            <ApplicationLabel>VISA CREDIT 3</ApplicationLabel>
            <ApplicationExpiryDate>XXXXXX</ApplicationExpiryDate>
            <ApplicationEffectiveDate>07/01/2009</ApplicationEffectiveDate>
            <ApplicationInterchangeProfile>5C00</ApplicationInterchangeProfile>
            <ApplicationVersionNumber>8C</ApplicationVersionNumber>
            <ApplicationTransactionCounter>883</ApplicationTransactionCounter>
            <ApplicationUsageControl>FF80</ApplicationUsageControl>
            <ApplicationPreferredName>²ØáÐ ºàÕÔØâ 3</ApplicationPreferredName>
            <ApplicationDisplayName>VISA CREDIT 3</ApplicationDisplayName>
          </ApplicationInformation>
          <ApplicationCryptogram>
            <CryptogramType>TC</CryptogramType>
            <Cryptogram>E3FAFFC383DB3208</Cryptogram>
          </ApplicationCryptogram>
          <CvmResults>410302</CvmResults>
          <IssuerApplicationData>06010A03A00000</IssuerApplicationData>
          <TerminalVerificationResults>0280008000</TerminalVerificationResults>
          <UnpredictableNumber>0A69C4F4</UnpredictableNumber>
          <PosEntryMode>05</PosEntryMode>
          <TerminalInformation>
            <TerminalType>22</TerminalType>
            <IfdSerialNumber>87654321</IfdSerialNumber>
            <TerminalCountryCode>0840</TerminalCountryCode>
            <TerminalID>12345678</TerminalID>
            <TerminalActionCodeDefault>DC4000A800</TerminalActionCodeDefault>
            <TerminalActionCodeDenial>0010000000</TerminalActionCodeDenial>
            <TerminalActionCodeOnline>DC4004F800</TerminalActionCodeOnline>
          </TerminalInformation>
          <TransactionInformation>
            <TransactionType>0</TransactionType>
            <TransactionCurrencyCode>840</TransactionCurrencyCode>
            <TransactionStatusInformation>E800</TransactionStatusInformation>
          </TransactionInformation>
          <CryptogramInformationData>40</CryptogramInformationData>
          <PinStatement>Verified by PIN</PinStatement>
          <CvmMethod>Some Verification Method</CvmMethod>
          <IssuerActionCodeDefault>FC40AC8000</IssuerActionCodeDefault>
          <IssuerActionCodeDenial>0010180000</IssuerActionCodeDenial>
          <IssuerActionCodeOnline>FC68BC9800</IssuerActionCodeOnline>
          <AuthorizationResponseCode>00</AuthorizationResponseCode>
        </Emv>
        <EntryMode>Contact</EntryMode>
        <Rfmiq>1000001APP</Rfmiq>
        <VaultToken />
        <CardBin/>
      </DetailedTransactionLookupResult>
    </DetailedTransactionLookupResponse>
  </soap:Body>
</soap:Envelope>

Look up transactions in a date range

To retrieve a list of transactions in a date range, send a TransactionsByDate request to the Reporting endpoint.

How it works

A TransactionsByDate request must include a StartDate and an EndDate. You can filter the transactions by providing at least one of the following parameters in the request:

  • InvoiceNumber
  • AuthorizationCode
  • RegisterNumber
  • VaultToken

Request objects

  • MerchantCredentials
  • Request
MerchantCredentials
Parameter Description Type Size Optional?
MerchantName Name of the merchant or their business. String 1-160 Required
MerchantSiteId Identifier for the merchant's store or location. String 8-160 Required
MerchantKey Authentication key for the merchant's account. String 1-160 Required
Request
Parameter Description Type Size Optional?
StartDate Start date in UTC of your report.The format is YYYY-MM-DDTHH:MM:SS, for example, 2020-02-01T09:00:00. DateTime 6-60 Required
EndDate End date in UTC of your report.The format is YYYY-MM-DDTHH:MM:SS, for example, 2020-03-01T09:00:00. DateTime 6-60 Required
InvoiceNumber Invoice number for the transaction, which was created by the merchant. String 0-100 Optional
AuthorizationCode Authorization code the processor returned for the transaction. String 0-100 Optional
RegisterNumber Identifies the POS that processed the transaction. String 0-100 Optional
VaultToken Represents a cardholder's payment details that the merchant saved in the vault. String 0-20 Optional

Response

TransactionReference
Parameter Description Type
Amount Dollar amount of the transaction. String
ApprovalStatus Response from the processor that indicates the status of the transaction. String
AuthorizationCode Authorization code the processor returned for the transaction. String
Cardholder Name of the cardholder.
Note: We return this value only for card transactions.
String
CardNumber Permanent account number (PAN) on the cardholder's payment card. We return a truncated card number for security reasons.
Note: If the transaction is a check transaction, this value is the number of the customer's bank account.
String
PaymentType Card type used in the transaction. For a list of possible values, see PaymentType. Integer
ErrorMessage If the transaction could not be processed, this message explains the reason for the error. String
InvoiceNumber Invoice number for the transaction, which was created by the merchant. String
MerchantTransactionId Unique identifier that the merchant assigned to the transaction. String
Token Unique identifier for the transaction in our gateway. String
TransactionDate Date in UTC that the merchant ran the transaction. The format is YYYY-MM-DDTHH:MM:SS, for example, 2020-02-01T09:31:22. DateTime
TransactionType Type of transaction. For a list of possible values, see TransactionType. Integer
BatchNumber Number of the batch that contains the transaction. String
EbtBasisType Indicates the type of EBT that the cardholder used to pay for the transaction. The value is one of the following:
• 0 - The value is reserved.
• - Cardholder used EBT food benefits.
• - Cardholder used EBT cash or a cash equivalent.
Note: We return this only for EBT transactions.
Integer
OriginalToken Identifies the original transaction that was referenced by the current transaction. For example, the token for the original authorization that the merchant then captured. String
VaultToken Represents a cardholder's payment details that the merchant saved in the vault. String
MerchantVaultTokenReference Reference that the merchant tagged to a cardholder's account. The merchant can add the reference to multiple accounts to allow them to group transactions. String
NameOnCheck Name of the customer as it appears on the check or checking account.
Note: We return this only for check transactions.
String
TransitNumber Routing number of the check or checking account.
Note: We return this only for check transactions.
String
AccountNumber Account number of the checking account.
Note: We return this only for check transactions.
String
CheckNumber Unique number of the check.
Note: We return this only for check transactions.
String
CheckStatus Response from the processor that describes the status of the check transaction.
Note: We return this only for check transactions.
String
FundingStatus Response from the processor that described the funding status of the check transaction.
Note: We return this only for check transactions.
String
DepositDate Date in UTC of the deposit of the check or checking account transaction. The format is YYYY-MM-DDTHH:MM:SS, for example, 2020-02-10T10:47:19. DateTime

Example SOAP request

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Body>
    <TransactionsByDate xmlns="http://schemas.merchantwarehouse.com/merchantware/46/Reports/">
      <Credentials>
        <MerchantName>Sample Merchant</MerchantName>
        <MerchantSiteId>XXXXXXXX</MerchantSiteId>
        <MerchantKey>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</MerchantKey>
      </Credentials>
      <Request>
        <StartDate>2020-01-28T22:58:59.6734179-05:00</StartDate>
        <EndDate>2020-01-28T23:04:59.6734179-05:00</EndDate>
      </Request>
    </TransactionsByDate>
  </soap:Body>
</soap:Envelope>

Example SOAP response

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <TransactionsByDateResponse xmlns="http://schemas.merchantwarehouse.com/merchantware/46/Reports/">
         <TransactionsByDateResult>
            <TransactionReference>
               <Amount>1.50</Amount>
               <ApprovalStatus>APPROVED</ApprovalStatus>
               <AuthorizationCode>AUTH NUM 272-172</AuthorizationCode>
               <Cardholder/>
               <CardNumber/>
               <PaymentType>18</PaymentType>
               <ErrorMessage/>
               <InvoiceNumber/>
               <MerchantTransactionId/>
               <Token>5000005124</Token>
               <TransactionDate>2020-02-13T21:38:08.797Z</TransactionDate>
               <TransactionType>1</TransactionType>
               <BatchNumber/>
               <OriginalToken>0</OriginalToken>
               <NameOnCheck>Test Sage</NameOnCheck>
               <TransitNumber>*****0018</TransitNumber>
               <AccountNumber>****5678</AccountNumber>
               <CheckNumber>5555</CheckNumber>
               <CheckStatus>APPROVED</CheckStatus>
               <FundingStatus>IN PROGRESS</FundingStatus>
            </TransactionReference>
            <TransactionReference>
               <Amount>0.00</Amount>
               <ApprovalStatus>APPROVED</ApprovalStatus>
               <AuthorizationCode>OK998C</AuthorizationCode>
               <Cardholder>Test</Cardholder>
               <CardNumber>************0026</CardNumber>
               <PaymentType>4</PaymentType>
               <ErrorMessage />
               <InvoiceNumber>123</InvoiceNumber>
               <MerchantTransactionId />
               <Token>600007861</Token>
               <TransactionDate>2020-01-29T03:59:00.53Z</TransactionDate>
               <TransactionType>5</TransactionType>
               <BatchNumber>0</BatchNumber>
               <OriginalToken>0</OriginalToken>
            </TransactionReference>
         </TransactionsByDateResult>
      </TransactionsByDateResponse>
   </soap:Body>
</soap:Envelope>

Look up check transactions in a date range

To retrieve a list of check transactions in a date range, send an AchReturnSearch request to the Reporting endpoint.

How it works

An AchReturnSeach request must include a StartDate and an EndDate. If the merchant has run any check transactions during the specified date range, we return the details of the check transactions.

Check transactions can take a few days to deposit into the merchant's account. The merchant can run this report to indicate if a check transaction has been processed or if a check has been returned by the Automated Clearing House (ACH).

Request objects

  • MerchantCredentials
  • Request
MerchantCredentials
Parameter Description Type Size Optional?
MerchantName Name of the merchant or their business. String 1-160 Required
MerchantSiteId Identifier for the merchant's store or location. String 8-160 Required
MerchantKey Authentication key for the merchant's account. String 1-160 Required
Request
Parameter Description Type Size Optional?
StartDate Start date in UTC of your report. The format is YYYY-MM-DDTHH:MM:SS, for example, 2020-01-01T09:00:00. DateTime 6-60 Required
EndDate End date in UTC of your report. The format is YYYY-MM-DDTHH:MM:SS, for example, 2020-02-01T09:00:00. DateTime 6-60 Required

Response

AchReturn
Parameter Description Type
ApprovalCode Approval code the processor returned for the transaction. String
ApprovalStatus Response from the processor that indicates the status of the transaction. String
ErrorMessage If the transaction could not be processed, this message explains the reason for the error. String
Token Unique identifier for the transaction in our gateway. String
OriginalToken Identifies the original transaction that was referenced by the current transaction. For example, the token for the original authorization that the merchant then captured. String
RegisterNumber Identifies the POS that processed the transaction. String
MerchantTransactionId Unique identifier that the merchant assigned to the transaction. String
InvoiceNumber Invoice number for the transaction, which was created by the merchant. String
CustomerCode Unique identifier that the merchant assigned to the cardholder. String
PurchaseOrderNumber Purchase order number for the transaction, which was created by the cardholder. String
EntryMode Source of the transaction. For a list of possible values, see EntryMode. String
TransactionDate Date in UTC that the merchant ran the check transaction. The format is YYYY-MM-DDTHH:MM:SS, for example, 2020-02-01T09:23:44. DateTime
TransactionType Type of transaction. For a list of possible values, see TransactionType. Integer
UserName Username of the merchant that ran the transaction. String
VaultToken Represents a cardholder's payment details that the merchant saved in the vault. String
MerchantVaultTokenReference Reference that the merchant tagged to a cardholder's account. The merchant can add the reference to multiple accounts to allow them to group transactions. String
CheckData Object that contains information about the check transaction. See the CheckData data structure. Object
RecurringCheck Indicates if the check transaction is recurring. The value is one of the following:
• True - Transaction is recurring.
• False - Transaction is not recurring.
String
CheckStatus Response from the processor that describes the status of the check transaction. String
FundingStatus Response from the processor that describes the funding status of the check transaction. String
DepositDate Date in UTC of the deposit of the check or checking account transaction. The format is YYYY-MM-DDTHH:MM:SS, for example, 2020-01-21T13:21:43. DateTime
AchChangeLog Object that contains processing information about the check transaction. See the AchChangeLog data structure. Object

Example SOAP request

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Body>
    <AchReturnSearch xmlns="http://schemas.merchantwarehouse.com/merchantware/46/Reports/">
      <Credentials>
        <MerchantName>Sample Merchant</MerchantName>
        <MerchantSiteId>XXXXXXXX</MerchantSiteId>
        <MerchantKey>XXXXX- XXXXX-XXXXX-XXXXX-XXXXX</MerchantKey>
      </Credentials>
      <Request>
        <StartDate>2020-01-27T00:39:17.8390096-05:00</StartDate>
        <EndDate>2020-01-31T00:39:17.8390096-05:00</EndDate>
      </Request>
    </AchReturnSearch>
  </soap:Body>
</soap:Envelope>

Example SOAP response

<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <AchReturnSearchResponse xmlns="http://schemas.merchantwarehouse.com/merchantware/46/Reports/">
      <AchReturnSearchResult>
        <AchReturn>
          <ApprovalCode>AUTH NUM 272-172</ApprovalCode>
          <ApprovalStatus>APPROVED</ApprovalStatus>
          <ErrorMessage />
          <Token>600012665</Token>
          <OriginalToken>0</OriginalToken>
          <MerchantTransactionId>c678cd46-d5d0-40f1-812b-adaeec1a2e2b</MerchantTransactionId>
          <EntryMode>Scanned</EntryMode>
          <TransactionDate>2020-01-29T05:39:16.96Z</TransactionDate>
          <TransactionType>1</TransactionType>
          <UserName>GWAPI3MATSEBQ2</UserName>
          <CheckData>
            <Check>
              <AccountType>CHECKING</AccountType>
              <CheckType>PERSONAL</CheckType>
              <NameOnCheck>Test Sage</NameOnCheck>
              <Amount>1.5000</Amount>
              <TransitNumber>*****0018</TransitNumber>
              <AccountNumber>****5678</AccountNumber>
              <CheckNumber>4444</CheckNumber>
            </Check>
          </CheckData>
          <CheckStatus>Debit Sent</CheckStatus>
          <FundingStatus>Credit Sent</FundingStatus>
          <DepositDate>2020-01-29T05:39:17.66Z</DepositDate>
          <AchChangeLog>
            <Change>
              <ChangeDate>2020-01-29T05:39:17.66Z</ChangeDate>
              <ChangeType>CheckStatus</ChangeType>
              <CurrentValue>Debit Sent</CurrentValue>
              <PreviousValue>APPROVED</PreviousValue>
            </Change>
            <Change>
              <ChangeDate>2020-01-29T05:39:17.41Z</ChangeDate>
              <ChangeType>CheckStatus</ChangeType>
              <CurrentValue>APPROVED</CurrentValue>
              <PreviousValue />
            </Change>
            <Change>
              <ChangeDate>2020-01-29T05:39:17.66Z</ChangeDate>
              <ChangeType>FundingStatus</ChangeType>
              <CurrentValue>Pending</CurrentValue>
              <PreviousValue>IN PROGRESS</PreviousValue>
            </Change>
            <Change>
              <ChangeDate>2020-01-29T05:39:17.66Z</ChangeDate>
              <ChangeType>FundingStatus</ChangeType>
              <CurrentValue>Credit Sent</CurrentValue>
              <PreviousValue>Pending</PreviousValue>
            </Change>
            <Change>
              <ChangeDate>2020-01-29T05:39:17.41Z</ChangeDate>
              <ChangeType>FundingStatus</ChangeType>
              <CurrentValue>IN PROGRESS</CurrentValue>
              <PreviousValue />
            </Change>
            <Change>
              <ChangeDate>2020-01-29T05:39:17.66Z</ChangeDate>
              <ChangeType>LastReturnCode</ChangeType>
              <CurrentValue>R01</CurrentValue>
              <PreviousValue>1030629142</PreviousValue>
            </Change>
          </AchChangeLog>
        </AchReturn>
      </AchReturnSearchResult>
    </AchReturnSearchResponse>
  </soap:Body>
</soap:Envelope>

Data Structures

AchChangeLog

Name Description Type
ChangeDate Date in UTC of the change to the check transaction's status. The format is MM/DD/YYYY HH:MM:SS TT, for example, 03/21/2019 04:32:38 AM. DateTime
ChangeType Indicates any changes to the status of a check transaction. The change is one of the following:
CheckStatus - Status of the check transaction, for example, "Approved" or "Declined".
• DepositDate - Date of the deposit of the check transaction.
• FundingStatus - Status of the funds, for example, "Pending" or "Debit sent".
• LastAdjustmentAmount - Dollar amount of the check transaction if you make a change to it.
• LastReturnCode - Processor returns this code when they process the transaction successfully or unsuccessfully.
Note: We return the change in CurrentValue.
String
CurrentValue Updated value for the ChangeType. String
PreviousValue Previous value for the ChangeType. String

ApplicationCryptogram

Parameter Description Type
CryptogramType Indicates the type of cryptogram that was generated by the Integrated Circuit Card (ICC), which is one of the following:
AAC – Card declined the transaction and generated an Application Authentication Cryptogram (AAC).
ARQC – Card requested an online authorization and generated an Authorization Request Cryptogram (ARQC).
TC – Card approved the transaction and generated a Transaction Certificate(TC).
Note: An ICC contains a chip and is commonly known as a "Chip and PIN" card.
String
Cryptogram Indicates the outcome returned by the Integrated Circuit Card (ICC), which is one of the following:
TC – Card approved the transaction and generated a Transaction Certificate (TC).
AAC – Card declined the transaction and generated an Application Authentication Cryptogram (AAC).
String

ApplicationInformation

Parameter Description Type
Aid Unique identifier for the application. String
ApplicationLabel Mnemonic associated with the Aid according to ISO/IEC 7816-5. String
ApplicationExpiryDate Expiration date of the application. String
ApplicationEffectiveDate Start date from when the application can be used. String
ApplicationInterchangeProfile Indicates the functions the card can use with the application. String
ApplicationVersionNumber Version number of the application. String
ApplicationTransactionCounter Counter maintained by the application in the Integrated Circuit Card (ICC). This is incremented by one for each transaction ran on the card.
Note: An ICC contains a chip and is commonly known as a "Chip and PIN" card.
String
ApplicationUsageControl Indicates the issuer's restrictions on the card, for example, whether the cardholder can use the card internationally or at an ATM. String
ApplicationPreferredName Preferred mnemonic associated with the AID. String
ApplicationDisplayName Application label as displayed to the customer.  String

Check

Parameter Description Type
AccountType Type of account the customer used for the check transaction. The value is one of the following:
• S - Savings account
• C - Checking account
String
CheckType Type of check the customer used for the check transaction. The value is one of the following:
• PE - Personal check
• CO - Company check
• PA - Payroll check
String
NameOnCheck Name of the customer as it appears on the check or the checking account. String
Amount Dollar amount of the check transaction. Decimal
TransitNumber Routing number of the checking account. String
AccountNumber Account number of the checking account. String
CheckNumber Unique number of the check. String
MICR Indicates if the check transaction contained MICR data. The value is one of the following:
• True - Transaction included MICR data.
• False - Transaction did not include MICR data.
Boolean

CheckData

Parameter Description Type
Check Object that contains information about the check transaction. See the Check data structure. Object
PersonalData Object that contains personal information about the customer using a check or checking account as a payment method. See the PersonalData data structure. Object
HomeAddress Object that contains the address of the customer using a check or checking account as a payment method. See the HomeAddress data structure. Object
DriverLicense Object that contains driver license information of the customer using a check or checking account as a payment method. See the DriverLicense data structure. Object

CheckImages

Parameter Description Type
Front Indicates if the check transaction contained an image of the front of the check. The value is one of the following:
• True - Transaction included an image of the front of the check.
• False - Transaction did not include an image of the front of the check.
Boolean
Back Indicates if the check transaction contained an image of the back of the check. The value is one of the following:
• True - Transaction included an image of the back of the check.
• False - Transaction did not include an image of the back of the check.
Boolean

DriverLicense

Parameter Description Type
PhoneNumber Customer's phone number. String
DateOfBirth Customer's date of birth. String
CourtesyCardNumber Indicates if the customer's courtesy-card number was supplied in the transaction. The value is one of the following:
• True - Transaction included a courtesy-card number.
• False - Transaction did not include a courtesy-card number.
Boolean

Emv

Parameter Description Type
ApplicationInformation Object that contains information about the application in EMV transactions. See the ApplicationInformation data structure. Object
ApplicationCryptogram Object that contains information about the application's cryptogram in EMV transactions. See the ApplicationCryptogram data structure. Object
CvmResults Indicates the result of the last cardholder verification method (CVM). The CVM indicates if the cardholder is genuine. String
IssuerApplicationData Proprietary application data for sending to the issuer in an online transaction. String
TerminalVerificationResults Indicates any issues that the terminal had while processing the transaction. String
UnpredicatableNumber Value to provide variability and uniqueness to generate the cryptogram. String
PosEntryMode Indicates how the merchant entered the PAN into the POS. Value comes from the chip data on the payment card. String
TerminalInformation Object that contains information about the terminal. See the TerminalInformation data structure. Object
TransactionInformation Object that contains information about the EMV transaction. See the TransactionInformation data structure. Object
CryptogramInformationData Indicates the type of cryptogram and the actions that were performed by the terminal. String
PinStatement Indicates if the PIN was verified or if the PIN was locked. String
CvmMethod Identifies the cardholder verification method (CVM) that the application supports. String
IssuerActionCodeDefault Indicates why the issuer rejected the transaction. String
IssuerActionCodeDenial Indicates why the issuer denied the transaction without trying to process it online. String
IssuerActionCodeOnline Indicates why the issuer allowed the transaction to be processed online. String
AuthorizationResponseCode Indicates if the transaction was authorized or declined by the entity that made the decision. String

FraudScoring

Parameter Description Type
ExternalReference Unique identifier for the transaction assigned by Kount. String
Recommendation Kount's recommendation for the transaction. The value is one of the following:
• Decline - Program the POS to refuse the order and void or refund the transaction.
• Approve - No further action required.
• Review - POS should prompt the merchant to review the transaction and choose to accept or decline the order.
• Escalate - POS should prompt the merchant to escalate the transaction within their organization.
String
Score Risk score between 1 and 99. A higher risk score means a greater risk of fraud. String
Status Indicates if Kount has successfully reviewed the transaction. The value is one of the following:
Success
Failure
String

HealthCareAmounts

Parameter Description Type
CopayAmount Dollar amount that is a copayment. String
ClinicalAmount Dollar amount that is clinical charges. String
DentalAmount Dollar amount that is dental charges. String
HealthCareTotalAmount Total dollar amount of the transaction that is eligible healthcare charges.  String
PrescriptionAmount Dollar amount that is prescription charges. String
VisionAmount Dollar amount that is vision charges. String

HomeAddress

Parameter Description Type
StreetAddress1 First line of the customer's address. String
StreetAddress2 Second line of the customer's address. String
City City of the customer's address. String
State State of the customer's address. String
PostalCode Zip code of the customer's address. String

Invoice

Parameter Description Type
TaxIndicator Indicates whether the dollar amount of the transaction includes tax. The value is one of the following:
NotProvided - Dollar amount does not include tax.
• Provided - Dollar amount includes tax.
• Exempt - Transaction is exempt from tax.
String
ProductDescription Describes the item the cardholder purchased. String
DiscountAmount Dollar amount that the merchant deducts as a discount from the cost of the item. String
ShippingAmount If the merchant needs to ship the item, this is the dollar amount that the cardholder pays for shipping. String
DutyAmount If the merchant needs to ship the item, this is the dollar amount that the cardholder pays as duty when the shipment enters the destination country. String
DestinationPostalCode If the merchant needs to ship the item, this is the zip code of the delivery address. String
DestinationCountryCode If the merchant needs to ship the item, this is the country code of the delivery address.
Note: For a list of country codes, see ISO standard 3166.
String
ShipFromPostalCode If the merchant needs to ship the item, this is the zip code of the location the merchant ships the item from. String
LineItem Object that contains information about the items in the transaction. See the LineItem data structure. Object

LineItem

Parameter Description Type
CommodityCode Commodity code of the line item.  String
Description Description of the line item. String
Upc Universal Product Code (UPC) of the line item. String
Quantity Number of units contained in the line item. Unit type for the line item is specified in the UnitOfMeasure field. String
UnitOfMeasure Unit measure for the contents of the line item. String
UnitCost Cost of a single unit from the line item. String
DiscountAmount Dollar amount that the merchant deducted as a discount from the cost of the item. String
TotalAmount Total dollar amount for the line item after the merchant deducted tax and discounts. String
TaxAmount Dollar amount of the line item that is tax. String
ExtendedAmount Extended dollar amount of the line item. String
DebitOrCreditIndicator Indicates whether the line item is credit or debit. The value is one of the following:
• Credit
• Debit
String
NetOrGrossIndicator Indicates whether the line item includes tax. The value is one of the following:
Net - Excludes tax.
• Gross - Includes tax.
String

MultipleClearing

Parameter Description Type
SequenceNumber Number of times that the merchant has ran a capture as part of a multiple clearing authorization. You must start with 1 and increment by 1 each time. The transaction finalizes when the SequenceNumber matches the SequenceCount. We accept values 1-99. 
Note: Do not pre-assign a SequenceNumber to shipments. This can cause out of order sequencing.
String
SequenceCount Number of times that a merchant needs to run a capture for the total dollar amount. We accept values 2-99. String

PersonalData

Parameter Description Type
PhoneNumber Customer's phone number. String
DateOfBirth Customer's date of birth. String
SocialSecurityNumber Indicates if the customer's social-security number was supplied in the transaction. The value is one of the following:
• True - Transaction included a social security number.
• False - Transaction did not include a social security number.
String

SupportedActions

Parameter Description Type
AdjustmentToken Reference token the merchant should use to perform a tip adjustment.
Note: A blank value or a value indicates that you cannot perform an adjustment on the transaction. 
String
CaptureToken Reference token the merchant should use to perform a capture on an authorization.
Note: A blank value or a 0 value indicates that you cannot perform a capture on the transaction.
String
RefundMaxAmount Maximum dollar amount that can be refunded for a sale transaction. String
RefundToken Reference token the merchant should use to refund the transaction.
Note: A blank value or a 0 value indicates that you cannot perform a refund on the transaction.
String
VoidToken Reference token that the merchant should use to void the transaction.
Note: A blank value or a 0 value indicates that you cannot perform a void on the transaction.
String

TerminalInformation

Parameter Description Type
TerminalType Indicates the environment of the terminal, its communications capability, and its operational control. String
IfdSerialNumber Unique and permanent serial number the manufacturer assigned to the interface. String
TerminalCountryCode Indicates the country where the terminal is located. String
TerminalId Identifies the unique location of the terminal. String
TerminalActionCodeDefault Indicates why the issuer rejected the transaction. String
TerminalActionCodeDenial Indicates why the issuer denied the transaction without trying to process it online. String
TerminalActionCodeOnline Indicates why the issuer allowed the transaction to be processed online. String

TransactionInformation

Parameter Description Type
TransactionType Type of transaction. The value comes from the chip data on the payment card. Integer
TransactionCurrencyCode Currency code for the transaction. The value comes from the chip data on the payment card. Integer
TransactionStatusInformation Indicates the functions performed in a transaction. String

Enumerations

AVS Response Codes

Note: For a complete list of AVS response codes, contact your processor.
Code Description
A Address matches but the ZIP code does not match.
N Both the address and the ZIP code do not match.
R Retry the AVS check.
S Issuer does not support AVS checks.
U AVS check unavailable.
W Nine-digit ZIP code matches but the address does not match.
X Exact match for address and nine-digit ZIP code.
Y Exact match for address and five-digit ZIP code.
Z Five-digit ZIP code matches but the address does not match.

AVS response codes for international transactions

Note: These codes apply to only VISA transactions.
Code Description
B Address matches but the ZIP code does not match.
C Address and ZIP code do not match.
D Exact match for address and ZIP code.
G AVS check unavailable for international transactions.
I Address information not verified in AVS check.
M Address and ZIP code match.
P ZIP code matches but the address does not match.

CVV Response Codes

Value Description
M Verification match.
Y Verification match.
N No verification match.
P Verification not processed.
S Merchant did not provide verification code, but card issuer expected a verification code.
U Issuer is not certified or issuer has not provided card brands with encryption keys.
X Service provider did not respond.

EntryMode

Value Description
0 Unknown
1 Manual
2 Swiped
3 ICC
4 Proximity
5 EMV contact
6 EMV contactless
7 Scanned
8 Keyed
9 Contactless mobile commerce
10 Vaulted payment details

PaymentType

Value Description
0 Unknown
1 American Express
2 Discover
3 Mastercard or Diner's Club
4 VISA
5 Debit
6 EBT
7 Gift card
8 Wright Express
9 Voyager
10 JCB
11 China Union Pay
17 Private label
18 Electronic check

TransactionType

Value Description
0 Unknown
1 Sale
2 Refund
3 Void
4 Force capture
5 Authorization
6 Capture
7 Adjustment
8 Repeat sale
9 Post-authorization