> ## 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.

# PaymentMethod.fetchByVid

The `fetchByVid` method returns a `PaymentMethod` object whose VID matches the input.

VID is Vindicia’s unique identifier for a `PaymentMethod` object. While creating a `PaymentMethod` object, do not specify a VID for it yourself. When Subscribe receives a `PaymentMethod` object in a call, such as `PaymentMethod.update()` or `Transaction.AuthCapture()`, if no VID or `merchantPaymentMethodId` exists inside the object, Subscribe creates a new `PaymentMethod` object and assigns it a VID. Retrieve this VID from the `PaymentMethod` object Subscribe returns to you in response to your call. Then, you may identify the object with the VID, and retrieve it by calling this method.

## 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.

*vid*: the `PaymentMethod` object’s Vindicia identifier, which serves as the search criterion.

## Output

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

*paymentMethod*: the `PaymentMethod` object whose VID matches the input.

## Returns

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

| Return Code | Return String |
| - | - |
| `400` | `Missing required parameter 'vid'.` |
| `404` | One of the following: - `Unable to find requested PaymentMethod: *error-description*.` - `Unable to find requested PaymentMethod: No matches.` |

## Example

```

$merchantId = '12345';

// Create a payment method object to make the call
$paymentMethod = new PaymentMethod();

$vid = '6d46cb877cc9b0a458d61e0771e740ad8b531ec9';

$response = $paymentMethod->fetchByVid($vid);

if($response['returnCode'] == 200) {

   $fetchedPm = $response['data']->paymentMethod;
   if($fetchedPm != null) { 

      // process the fetched payment method object here
      $accountHolder = $fetchedPm->getAccountHolderName();
      if ($fetchedPm->getType() == "CreditCard") {
         $cc = $fetchedPm->getCreditCard();
         // process other credit card attributes here
      }
      else if($fetchedPm->getType() == "ECP") {
         $ecp = $fetchedPm->getEcp();
         // process other ecp attributes here
      }
   }
}
```

**Parent topic:**[PaymentMethod Methods](../topics/PaymentMethod_Methods)


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