# Edit Expense

## Endpoint

<mark style="color:purple;">**`PUT`**</mark> `https://api.xtrakit.com/api/v1/expenses/{id}`

## Headers

`Authorization: Bearer API_KEY`

## **Path Parameters**

<table><thead><tr><th>Parameters</th><th width="100">Type</th><th>Description</th></tr></thead><tbody><tr><td><p>id </p><p><em><strong>int</strong></em></p></td><td>Required</td><td>The unique ID of the expense to edit a single expense. Should be passed through the URL</td></tr></tbody></table>

## **Body Parameters**

<table><thead><tr><th>Parameters</th><th width="100">Type</th><th>Description</th></tr></thead><tbody><tr><td><p>expense_type</p><p><em><strong>string</strong></em></p></td><td>Required</td><td>The type of the expense.</td></tr><tr><td><p>expense_description</p><p><em><strong>string</strong></em></p></td><td>Optional</td><td>A detailed description of the expense.</td></tr><tr><td><p>expense_amount</p><p><em><strong>decimal(10,2)</strong></em></p></td><td>Required</td><td>The amount of the expense  in this format: <code>10.00</code></td></tr><tr><td><p>payment_method</p><p><em><strong>string</strong></em></p></td><td>Required</td><td>The method used for payment.</td></tr><tr><td><p>expense_image</p><p><em><strong>string</strong></em></p></td><td>Optional</td><td>URL to an image or receipt associated with the expense.</td></tr><tr><td><p>created_by</p><p><em><strong>string</strong></em></p></td><td>Required</td><td>The user who created the record.</td></tr></tbody></table>

## Sample Requests <a href="#sample-requests" id="sample-requests"></a>

{% tabs %}
{% tab title="PHP" %}
{% code fullWidth="true" %}

```php
<?php
$id = 'YOUR_EXPENSE_ID'; // Replace 'YOUR_EXPENSE_ID' with your actual expense ID

$data = [
  'expense_type' => "Office Supplies",
  'expense_description' => 'Purchased new printer ink - Updated'
  'expense_amount' => "200.00", 
  'payment_method' => "MOMO", 
  'expense_image' => "https://url-to-image.com/updated_image.jpg", 
  'created_by' => "Edward" 
  ];

$url = 'https://api.xtrakit.com/api/v1/expenses/' . $id;

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => $url,
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'PUT',
  CURLOPT_POSTFIELDS => $data,
  CURLOPT_HTTPHEADER => array(
    'Authorization: Bearer API_KEY', // Replace 'API_KEY' with your actual API key
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

?>
```

{% endcode %}
{% endtab %}

{% tab title="NodeJS" %}

<pre class="language-javascript"><code class="lang-javascript">const axios = require('axios');

const id = 'YOUR_EXPENSE_ID'; // Replace 'YOUR_EXPENSE_ID' with your actual expense ID

const data = {
  'expense_type': "Office Supplies",
  'expense_description': 'Purchased new printer ink - Updated'
  'expense_amount': "200.00", 
  'payment_method': "MOMO", 
  'expense_image': "https://url-to-image.com/updated_image.jpg", 
  'created_by': "Edward" 
  };
  
<strong>const config = {
</strong>    method: 'put',
    url: `https://api.xtrakit.com/api/v1/expenses/{id}`,
    headers: {
        'Authorization': 'Bearer API_KEY' // Replace 'API_KEY' with your actual API key
    },
    data: data 
};

axios(config).then(function(response) {
    console.log(JSON.stringify(response.data));
}).catch(function(error) {
    console.error(error);
});

</code></pre>

{% endtab %}

{% tab title="Python" %}

```python
import requests

id = 'YOUR_EXPENSE_ID' # Replace 'YOUR_EXPENSE_ID' with your actual expense ID

data = {
  'expense_type': "Office Supplies",
  'expense_description': 'Purchased new printer ink - Updated'
  'expense_amount': "200.00", 
  'payment_method': "MOMO", 
  'expense_image': "https://url-to-image.com/updated_image.jpg", 
  'created_by': "Edward" 
  }
  
url = f'https://api.xtrakit.com/api/v1/expenses/{id}'

headers = {
    "Authorization": "Bearer API_KEY" # Replace 'API_KEY' with your actual API key
}

try:
    response = requests.put(url, headers=headers, json=data)
    print(response.json())
except requests.exceptions.RequestException as e:
    print(e)
```

{% endtab %}
{% endtabs %}

## Sample Response

{% tabs %}
{% tab title="Success" %}

<pre class="language-json"><code class="lang-json">{
    "status": 200,
    "message": "Expense updated successfully",
    "data": {
        "expenses": {
            "id": 2,
            "expense_type": "Office Supplies",
            "expense_description": "Purchased new printer ink - Updated",
            "expense_amount": "200.00",
            "payment_method": "MOMO",
            "expense_image": "https://url-to-image.com/updated_image.jpg",
            "created_by": "Edward",
            "created_at": "2024-08-04 08:23:45",
            "updated_at": "2024-08-04 02:00:43"
<strong>        }
</strong>    }
}
</code></pre>

{% endtab %}

{% tab title="Error" %}

```json
{
    "status": 401,
    "error": "Authentication invalid"
},

{
    "status": 401,
    "error": "Unauthorized: Invalid API Key"
}
```

{% endtab %}
{% endtabs %}
