== subscription.list ==
==== Description ====
Return List of subscriptions
==== Input Parameters ====
<table>
<tr><th>Name</th><th>Type</th><th>Required</th><th>Description</th></tr>
<tr><td>page</td><td>Int</td><td>No</td><td>Page</td></tr>
<tr><td>limit</td><td>Int</td><td>No</td><td>Limit to certain number of records (default 100)</td></tr>
<tr><td>order_field</td><td>string</td><td>No</td><td>Order by which field (default tran_id)</td></tr>
<tr><td>order_dir</td><td>String</td><td>No</td><td>(asc|desc)</td></tr>
<tr><td>on_date</td><td>Date</td><td>No</td><td>On Date (YYYY-MM-DD)</td></tr>
<tr><td>from_date</td><td>Date</td><td>No</td><td>From Date (YYYY-MM-DD)</td></tr>
<tr><td>to_date</td><td>Date</td><td>No</td><td>To date (YYYY-MM-DD)</td></tr>
<tr><td>from_id</td><td>Int</td><td>No</td><td>Return only tran_id's > from_id</td></tr>
<tr><td>to_id</td><td>Int</td><td>No</td><td>Return only tran_id's < to_id</td></tr>
<tr><td>flname</td><td>Int</td><td>No</td><td>First/Last name string (i.e. John*) to get only those starting with that</td></tr>
<tr><td>email</td><td>Int</td><td>No</td><td>Email</td></tr>
<tr><td>ccnum</td><td>String</td><td>No</td><td>Credit Card Number</td></tr>
<tr><td>hour</td><td>Int</td><td>No</td><td>Filter to specific hour (0-23). I.e. 8 will return only transactions between 8 and 9</td></tr>
<tr><td>type</td><td>String</td><td>No</td><td>Transaction Type (signup|rebill|refund)</td></tr>
<tr><td>nocache</td><td>Int</td><td>No</td><td>Whether to get cached result (default is 0 and 1 should be used only for debugging purposes)</td></tr>
<tr><td>tracking_tag</td><td>mixed</td><td>No</td><td>Tracking Tag (can be sent as int or as array so you send more at once</td></tr>
<tr><td>currency</td><td>mixed</td><td>No</td><td>Currency (can be sent as String or as array so you send more at once)</td></tr>
<tr><td>tracking_user</td><td>mixed</td><td>No</td><td>Tracking User (can be sent as Int or as array so you send more at once)</td></tr>
<tr><td>sub_id</td><td>mixed</td><td>No</td><td>sub_id (can be sent as int or as array so you send more at once)</td></tr>
<tr><td>order_id</td><td>mixed</td><td>No</td><td>order_id (can be sent as int or as array so you send more at once)</td></tr>
<tr><td>tran_id</td><td>mixed</td><td>No</td><td>tran_id (can be sent as int or as array so you send more at once)</td></tr>
<tr><td>status</td><td>mixed</td><td>No</td><td>Transaction Status (successful|failed|init) (can be sent as string or as array so you send more at once)</td></tr>
<tr><td>pp_type</td><td>mixed</td><td>No</td><td>PP Type (NB|RG|PO|...)(can be sent as string or as array so you send more at once)</td></tr>
<tr><td>item_id</td><td>mixed</td><td>No</td><td>Item ID (can be sent as Int or as array so you send more at once)</td></tr>
<tr><td>refunded_tran_id</td><td>mixed</td><td>No</td><td>refunded_tran_id (can be sent as Int or as array so you send more at once)</td></tr>
</table>
Return
<table>
<tr><th>Name</th><th>Type</th><th>Description</th></tr>
<tr><td>tran_id</td><td>int</td><td>PV2 Transaction ID</td></tr>
<tr><td>date</td><td>int</td><td>Transaction Date (unix timestamp)</td></tr>
<tr><td>status</td><td>String</td><td>Status (successful|failed|init)</td></tr>
<tr><td>description</td><td>String</td><td>Transaction Description</td></tr>
<tr><td>amount</td><td>float</td><td>Transaction Amount</td></tr>
<tr><td>transaction_type</td><td>String</td><td>Transaction Type ('S' for sale, 'A' for auth, 'R' for refund)</td></tr>
<tr><td>origin</td><td>int</td><td>Origin (Direct or System)</td></tr>
<tr><td>ppac_id</td><td>int</td><td>PV2 PP Account ID</td></tr>
<tr><td>ccdt_id</td><td>int</td><td>PV2 Credit Card ID</td></tr>
<tr><td>refunded_tran_id</td><td>int</td><td>Refunded transaction ID (if transaction is refund)</td></tr>
<tr><td>currency</td><td>int</td><td>Transaction currency</td></tr>
<tr><td>payment_code</td><td>int</td><td>Payment Code</td></tr>
<tr><td>order_id</td><td>int</td><td>PV2 Order ID</td></tr>
<tr><td>pp_id</td><td>int</td><td>PV2 PP ID</td></tr>
<tr><td>tracking_tag</td><td>int</td><td>Tracking Tag</td></tr>
<tr><td>hash</td><td>String</td><td>Hash generated during order</td></tr>
<tr><td>user_id</td><td>int</td><td>PV2 user id</td></tr>
<tr><td>refunded</td><td>int</td><td>Is transaction refunded</td></tr>
<tr><td>refunded_amount</td><td>float</td><td>Refunded Amount</td></tr>
<tr><td>type</td><td>string</td><td>Type (i.e. signup)</td></tr>
<tr><td>processor</td><td>String</td><td>Payment Processor short name (NB, RG ...)</td></tr>
<tr><td>processor_name</td><td>String</td><td>Payment Processor full name (NetBilling, Rocket Gate, ...)</td></tr>
<tr><td>details</td><td>array</td><td>Transaction Details (different for each payment processor)</td></tr>
<tr><td>status_message</td><td>string</td><td>Status message</td></tr>
<tr><td>pay_status</td><td>string</td><td>Payment status (i.e. Approved by CS guys)</td></tr>
<tr><td>status_severity</td><td>int</td><td>status_severity</td></tr>
<tr><td>ccnum</td><td>string</td><td>Credit Card Number</td></tr>
<tr><td>ccname</td><td>string</td><td>Credit Card Name</td></tr>
<tr><td>ccxpdate</td><td>string</td><td>Credit Card Expired Date</td></tr>
<tr><td>cctype</td><td>string</td><td>Credit Card Type (I.e. visa)</td></tr>
<tr><td>ccaddress</td><td>string</td><td>Credit Card Address</td></tr>
<tr><td>cczip</td><td>string</td><td>Credit Card ZIPCode</td></tr>
<tr><td>ccstatus</td><td>string</td><td>Credit Card status</td></tr>
<tr><td>cccountry</td><td>string</td><td>Credit Card Country</td></tr>
<tr><td>items</td><td>array</td><td>items</td></tr>
<tr><td>item_id</td><td>int</td><td>PV2 Item ID</td></tr>
<tr><td>sub_id</td><td>string</td><td>PV2 Subscription ID</td></tr>
<tr><td>tracking_user</td><td>string</td><td>Tracking User</td></tr>
<tr><td>email</td><td>string</td><td>e-mail</td></tr>
<tr><td>card_type</td><td>string</td><td>card_type</td></tr>
<tr><td>card_category</td><td>string</td><td>card_category</td></tr>
<tr><td>bank_name</td><td>string</td><td>bank_name</td></tr>
<tr><td>bank_country_code</td><td>string</td><td>bank_country_code</td></tr>
<tr><td>bank_site</td><td>string</td><td>bank_site</td></tr>
<tr><td>bank_phone</td><td>string</td><td>bank_phone</td></tr>
</table>
==== Usage Example ====
```
<?php
$curl = new \Dinke\CurlHttpClient;
//setup payment url and timeout
$payment_url = 'https://dev-payment.datingvip.com/api.json';
$timeout = 30;
$curl->setCredentials('some-token', 'some-pass');
$post_data = array(
'cmd' => 'subscription.list',
'data' => array('limit' => 1)
);
$response = $curl->sendPostData($payment_url, $post_data, null, $timeout);
if($response === false)
{
//handle errors
}
//decode json to get array
$response = json_decode($response, true);
var_dump($response);
```
Excepted output after running this script should be:
```
array (size=1)
'result' =>
array (size=8)
'code' => int 700
'status' => string 'Action completed succesfully' (length=28)
'command' => string 'subscription.list' (length=17)
'result' =>
array (size=1)
0 =>
array (size=48)
'sub_id' => string '258' (length=3)
'next_rebill_shcedule' => string '0' (length=1)
'rebill_count' => string '0' (length=1)
'status' => string 'trial' (length=5)
'date' => string '1429201466' (length=10)
'end_date' => string '0' (length=1)
'next_rebill_amount' => string '0.00' (length=4)
'item_id' => string '20544' (length=5)
'order_id' => string '545' (length=3)
'amount' => string '39.99' (length=5)
'trial_amount' => string '39.99' (length=5)
'trial_unit' => string 'day' (length=3)
'trial_period' => string '90' (length=2)
'rebill_unit' => string 'day' (length=3)
'rebill_period' => string '90' (length=2)
'max_rebill_count' => string '-1' (length=2)
'description' => string '3 месяца - $13.33USD/месяц||7882' (length=43)
'tracking_item' => string '0' (length=1)
'uprc_id' => string '0' (length=1)
'ptnr_id' => string '55' (length=2)
'user_id' => string '435' (length=3)
'pp_id' => string '6' (length=1)
'ppac_id' => string '109' (length=3)
'force_mid' => string '' (length=0)
'ccdt_id' => string '393' (length=3)
'tracking_order' => string '0' (length=1)
'tracking_tag' => string '512' (length=3)
'first_name' => string 'Nerty' (length=5)
'last_name' => string 'Ben' (length=3)
'street' => string '' (length=0)
'city' => string '' (length=0)
'state' => string 'dev' (length=3)
'zipcode' => string '10001' (length=5)
'country' => string 'US' (length=2)
'email' => string 'yuliapaid@gmail.com' (length=19)
'ip' => string '66.154.2.78' (length=11)
'host' => string '66.154.2.78' (length=11)
'currency' => string 'USD' (length=3)
'hash' => string '14292014665482f2015ee30f487cf670' (length=32)
'rebill_transaction_id' => string '1980' (length=4)
'order_status' => string 'completed' (length=9)
'ts' => string '1429201466' (length=10)
'type' => string 'basic' (length=5)
'step_down' => string '0' (length=1)
'tax_rate' => string '0.00' (length=4)
'tax_amount' => string '0.00' (length=4)
'tracking_user' => string '10166584' (length=8)
'processor' => string 'RG' (length=2)
'request' =>
array (size=4)
'cmd' => string 'subscription.list' (length=17)
'data' =>
array (size=1)
'limit' => string '1' (length=1)
'token' => string 'some-token' (length=26)
'pass' => string 'some-pass' (length=32)
'ts' => int 1429562553
'origin_ip' => string '93.87.220.184' (length=13)
'errors' => null
```