# AddTransaction

Add a transaction to the system

### Request Parameters

| Parameter | Type | Description | Required |
|  --- | --- | --- | --- |
| action | string | "AddTransaction" | Required |
| paymentmethod | string | The payment method of the transaction in system format | Required |
| userid | int | The ID of the user to apply the transaction to | Optional |
| invoiceid | int | The ID of the invoice the transaction is for | Optional |
| transid | string | The unique transaction id for this payment | Optional |
| date | string | The date of the transaction in your Localisation Format (eg DD/MM/YYYY) | Optional |
| currencyid | int | The currency id for the transaction if not associated with a user | Optional |
| description | string | The description of the transaction | Optional |
| amountin | float | The amount received by the payment | Optional |
| fees | float | The amount of fee charged on the transaction by the merchant - This can be negative | Optional |
| amountout | float | The amount paid out by the payment | Optional |
| rate | float | The exchange rate for the payment based on the default currency | Optional |
| credit | bool | Should the payment be applied to credit on the client account. Invoice ID must not be provided. | Optional |
| allowduplicatetransid | bool | Should an already existing transaction id be allowed. Defaults to false. | Optional |


### Response Parameters

| Parameter | Type | Description |
|  --- | --- | --- |
| result | string | The result of the operation: success or error |


### Example Request (CURL)

```
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://www.example.com/includes/api.php');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
    http_build_query(
        array(
            'action' => 'AddTransaction',
            // See https://developers.whmcs.com/api/authentication
            'username' => 'IDENTIFIER_OR_ADMIN_USERNAME',
            'password' => 'SECRET_OR_HASHED_PASSWORD',
            'paymentmethod' => 'paypal',
            'userid' => '1',
            'transid' => 'FJWEK32DWO329JFW',
            'date' => '01/01/2016',
            'description' => 'A sample API payment',
            'amountin' => '10.00',
            'fees' => '0.89',
            'rate' => '1.00000',
            'responsetype' => 'json',
        )
    )
);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
```

### Example Request (Local API)

```
$command = 'AddTransaction';
$postData = array(
    'paymentmethod' => 'paypal',
    'userid' => '1',
    'transid' => 'FJWEK32DWO329JFW',
    'date' => '01/01/2016',
    'description' => 'A sample API payment',
    'amountin' => '10.00',
    'fees' => '0.89',
    'rate' => '1.00000',
);
$adminUsername = 'ADMIN_USERNAME'; // Optional for WHMCS 7.2 and later

$results = localAPI($command, $postData, $adminUsername);
print_r($results);
```

### Example Response JSON

```
{
    "result": "success"
}
```

### Error Responses

Possible error condition responses include:

* Client ID Not Found
* Invoice ID Not Found
* User ID does not own the given Invoice ID
* Currency ID Not Found
* Currency ID does not match Client currency
* A Currency ID is required for non-customer related transactions
* Payment Method is required
* Transaction ID must be Unique


### Version History

| Version | Changelog |
|  --- | --- |
| 1.0 | Initial Version |