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

# Installing and Configuring the Subscribe Library

Vindicia provides libraries specific to several development environments. To build applications that employ Subscribe, first set up the library files, as described in the following subsections.

## PHP

The Subscribe client library for PHP contains a ZIP file with several PHP files in the directory `Vindicia/Soap`. Two of those files, `Vindicia.php` and `Const.php`, are included in your source code.

The PHP client libraries have been reworked so that the various Vindicia object classes are now in a separate namespace. For example, what was previously called `AutoBill` is now called `Vindicia\Soap\AutoBill`.

The old-style PHP client libraries, which do not use the namespaces, are still available for SOAP versions through 20.0.0 at: [https://secure.vindicia.com/docs/client\_library/](https://secure.vindicia.com/docs/client_library/)

The new PHP client libraries, with the namespaces, are available from the same page—below the other PHP libraries, in a separate section. They are available only for SOAP versions 19.0.0 and 20.0.0. If you are interested in having libraries that use the `Vindicia\Soap` namespace made for other SOAP versions, contact Vindicia Client Technical Support.

For any SOAP versions beyond release 20.0.0, we will only issue PHP libraries that use the `Vindicia\Soap` namespace.

Install the PHP client library:

1. Extract the zip archive, and install it into the proper location for operating system and PHP engine and distribution.

2. Type:

   ```

   require_once('Vindicia/Soap/Vindicia.php');
   require_once(‘Vindicia/Soap/const.php’);
   ```

   **Note:** You must add these `require_once` statements to every PHP source file which references the Subscribe API in any way.

3. Double check that you have downloaded the correct version for your site, and that the extraction of the archive was completed successfully.

## Perl

Install the Perl client library on Mac OS X:

1. Install the modules required by the Perl API client. Type:

   ```

   sudo perl -MCPAN -e 'install Crypt::SSLeay' 
   sudo perl -MCPAN -e 'install SOAP::Lite'
   ```

2. Install the API client.

   Obtain a current copy and place it in a directory.

   Navigate to that directory in a terminal, and type:

   ```

   sudo perl Makefile.PL 
   sudo make 
   sudo make install
   ```

   The Perl client is now installed on your Mac. The default location is `/Library/Perl/perl-version`, with `Vindicia.pm` and all the other modules in the Vindicia directory.

3. During development, import the Perl module into your source files. Type:

   ```

   use Vindicia; 
   use Vindicia::Soap::Vindicia; 
   ```

## Configuring the Perl API Client

The installation process above creates the file `/etc/vindicia_conf.xml`, a configuration file in XML format. Note that the path name assumes a Mac setup. Path names on Windows vary according to the configuration.

1. Edit the following fields in `vindicia_conf.xml`
   * `VIN_SOAP_Server`: The server’s host name. For example, the name of the Staging development server is `soap.staging.us-west.vindicia.com`.
   * `VIN_SOAP_Version`: The version of Subscribe you will call, for example, `4.2`.
   * `VIN_Server`: This value must be `0`, which means that this is a Vindicia Perl client, not a server.
   * `VIN_Client_Timeout_Usec`: The client timeout in milliseconds. For example, for 250 seconds, set the value to `250000`.
2. Create a temporary directory on your computer for the client, and then specify the directory’s full path as the value for the following fields:

| `VIN_Base_Dir` | `VIN_Soap_Cache_Dir` |
| - | - |
| `VIN_Var_Dir` | `VIN_Client_Var_Dir` |
| `VIN_Tmp_Dir` | `VIN_Log_Cache` |
| `VIN_Lock_Dir` | |

## Specifying the First Parameter in Perl

Certain methods in Perl take a first parameter that is not specified in other languages, because the first parameter is the invoking object, such as in the `fetchCreditHistory`method. For example:

In PHP (and similarly in Java and C#):

```

ab = AutoBillFactory::getObject();
ab->fetchCreditHistory($timestamp, $end_timestamp, $page,
page_size);
```

In Perl:

```

ab = Vindicia::Soap::AutoBill->new(...);
ab->fetchCreditHistory($ab, $timestamp, $end_timestamp, $page, 
page_size);
```

In Perl, the first parameter is the `AutoBill` object, but in other languages it is provided using the invoking parameter. This is true with any method where the first parameter is an object of the class in question.

## Java

The Subscribe client library for Java is in the Java archive file `vindicia.jar`, which bundles the Subscribe API and the underlying Apache Axis library for sending and receiving SOAP calls. The release contains two files: `vindicia_java_client_`*version*`.zip` and `vindicia_java_client_`*version*`.docs.zip`.

To set up the Java client library, unzip `vindicia_java_client_`*version*`.zip` and add `vindicia.jar` to your project’s `classpath`. Then, import the Vindicia classes to your source file. For example, for Subscribe 4.2:

```

import com.vindicia.client.ClassName;
import com.vindicia.soap.v4.2.Vindicia.ClassName;
```

If you will be running the Vindicia Java client library on a machine which can access a URL (such as a SOAP end point) outside of your company's firewall **only**through a proxy server, please configure the Java client library to identify the proxy server as follows

```

System.*setProperty*("https.proxyHost", "web-proxy.mycompany.com"); 
   // Use the address of your company's proxy server
System.*setProperty*("https.proxyPort", "8080"); 
   // Use the HTTPS port supported by your proxy server
```

**CAUTION:**

Some class names in the packages are identical. The class in the `com.vindicia.client` package is usually a child of a class with an identical class name in the `com.vindicia.soap.Vindicia` package. Vindicia recommends that you import classes with fully qualified package names, and identify the types similarly in your Java code.

## .NET With C\#

The Subscribe client library for .NET is in the DLL file `Vindicia.dll`, which bundles the Subscribe API and the underlying SOAP stubs.

To set up the .NET client library, add a reference to the `Vindicia.dll` file in your project. Then, import the Vindicia namespace to your source file:

```

using Vindicia;
```

**Parent topic:**[Support for Development](../topics/Support_for_Development)


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