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

Use Vindicia’s Hosted Order Automation (HOA) to create Subscribe objects that contain sensitive payment information, such as credit-card account numbers. Store credit card numbers directly on Vindicia’s servers after your customers have submitted their data through a specially designed Web order form accessed from your server. Because HOA bypasses your server altogether at form submission, you need not comply with PCI requirements. See Hosted Order Automation in the Subscribe Programming Guide for details on HOA.

You must create a `WebSession` object on Vindicia’s servers before serving an order form to your customer to track the form’s submission to Vindicia. (For details, see [The WebSession Object](The_WebSession_Object).) You may then call the `fetchByWebSessionVid` method to retrieve the `PaymentMethod` object created by HOA when a customer submits an order form, which results in a one-time or recurring bill.

The `WebSession` object’s VID serves as the tracking ID for the Web session, from serving the order form to a customer, to returning a success or failure page to that same customer. Use the `WebSession` object to program the success page (see the `WebSession` object’s `returnURL` attribute), to which HOA redirects the customer’s browser after successfully processing the data in the order form. On your success page, the `WebSession` object’s VID is available to you because HOA passes it during the redirection. In turn, you may pass that VID as the input parameter to this call and retrieve the `PaymentMethod` object created by HOA. Finally, extract the contents of the `PaymentMethod` object and include them, as appropriate, in the success page to be returned to the customer.

## 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 `WebSession` object’s Vindicia unique identifier for tracking the submission of the order form.

## Output

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

*PaymentMethod*: a `PaymentMethod` object, created by HOA as a result of an order form submitted by a customer.

## 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` | `Unable to find requested PaymentMethod: No matches.` |

## Example

```

// To use the fetchByWebSessionVid call on a success web page

$webSessionVid = …; //passed in by redirected page

$soap = new WebSession($soapLogin, $soapPwd);

$response = $soap->fetchByVID($webSessionVid);

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

   $fetchedWs = $response['data']->session;

   // check if the Subscribe API call made by HOA was successful
   $retCode = $fetchedWs->apiReturn->returnCode;
   if ($retCode == 200) {

      // Assuming HOA created a PaymentMethod object, fetch it

      $soapPm = new PaymentMethod($soapLogin, $soapPwd);
      $resp = $soapPm->fetchByWebSessionVid($webSessionVid);      
      if ($resp['returnCode'] == 200) {
         $createdPm = $resp['data']->paymentMethod;

         // Get PaymentMethod contents here to be included in
         // HTML returned to the customer.
      }
      else {
         // Return error message to customer
      }
   }   
   else {
      // return failure page to customer
   }
}
else {
   // Return error message to the customer 
}
```

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


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