> ## Documentation Index
> Fetch the complete documentation index at: https://docs.slm.m1amdocs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Transaction.fetchByPaymentMethod

The `fetchByPaymentMethod` returns all `Transaction` objects that use the specified payment method. For example, call this method to search for all `Transactions` that use a certain credit-card number.

This method supports paging to limit the number of records returned per call. Returning a large number of records in one call may swamp buffers, and might cause a failure. Vindicia recommends that you call this method in a loop, incrementing the page for each loop iteration with an optimal page size (number of records returned in one call) until the page contains a number of records that is less than the given page size.

## Input

*srd*: sparse response description, a SOAP string (which must be a JSON object), in which you specify the elements you want returned.This parameter enables the calling system to constrain a `method` call to return only components you specify. This gives you greater control over returned content, and improves response time within the Vindicia platform by reducing the processing needed for the call.

Some fields are required, either practically or in the WSDL, and will be returned regardless of the *srd*. A null *srd* returns the complete response.

*paymentMethod*: the `Transaction` object’s payment method, which serves as the search criterion. Identify the payment method with its VID, your payment method ID (`merchantPaymentMethodId`), or one of the following:

* The account number for a credit card. Be certain to set the type attribute of the input PaymentMethod object to CreditCard. This call does not support wildcards in the account number.
* The account number-bank routing number combination for ACH and ECP. Be certain to set the type attribute of the input PaymentMethod object to ECP.
* The fiscal number for a Boleto. Be certain to set the type attribute of the input PaymentMethod object to Boleto.
* The PaypalEmail for PayPal.

  **Note:** If you use SOAP releases prior to 3.5, you will not be able to search accounts using the PayPal payment method. SOAP release 3.6.0 and later allows you to search accounts and transactions by the PaypalEmail.

*page*: the page number, starting at 0, for which to return the results. For example, if the total number of results is 85 and *pageSize* is 10:

* Specifying 0 for *page* gets the results from 1 through 10.
* Specifying 2 for *page* gets the results from 21 through 30.

*pageSize*: the number of records to display per page per call. This value must be greater than 0.

## Output

*return*: an object of type `Return` that indicates the success or failure of the call.

*transactions*: an array of one or more `Transaction` objects that were conducted with the payment method specified in the input.

## Returns

In addition to those listed in [The Return Object](The_Return_Object), this call returns:

| Return Code | Return String |
| - | - |
| `400` | One of the following: - `Payment method type is credit card, but credit card information is incomplete.` - `Payment method type is ECP, but ECP account and routing information is incomplete.` - `Payment method type is Boleto, but Boleto payment information is incomplete.` - `Payment method type is currently not supported.` - `Must specify a PaymentMethod object, a non-negative page number, and a page size greater than 0.` |
| `404` | `No matching transactions.` |

## Example

```

$pm = new PaymentMethod();
$pm->setType('CreditCard');
$cc = new CreditCard();
 
// this is the card number we want to search by
$cc->setAccount('4111111111111111'); 
$cc->setExpirationDate('201208');
$pm->setCreditCard($cc);
 
$soap_tx = new Transaction();
$page = 0;
$pageSize = 10; // max 10 records per page
 
do {
   $response = $soap_tx->fetchByPaymentMethod($pm, 
      $page, $pageSize); 
 
   if($response['returnCode']==200) {
      $txns = $response['data']->transactions;
      if ($txns != null) {
         $count = count($txns);
         foreach ($txns as $fetchedTx) {
         // process each transaction found here
         print "Found transaction with id: ";
         print $fetchedTx->getMerchantTransactionId() . "\n";
         }
      }
      else {
         $count = 0;
      }
   }
   else {
      $count = 0;
   }
   $page++
} while ($count > 0);
```

**Parent topic:**[Transaction Methods](../topics/Transaction_Methods)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.