# Edit Customer

## Endpoint

<mark style="color:purple;">**`PUT`**</mark> `https://api.xtrakit.com/api/v1/customers/{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>string</strong></em></p></td><td>Required</td><td>The unique identifier of the customer. Should be passed through the URL</td></tr></tbody></table>

## Body Parameters

<table><thead><tr><th width="271">Parameters</th><th width="100">Type</th><th>Description</th></tr></thead><tbody><tr><td><p>customer_group_id</p><p><em><strong>int</strong></em></p></td><td>Optional</td><td>The ID of the group to which this customer belongs. </td></tr><tr><td><p>customer_name</p><p><em><strong>string</strong></em></p></td><td>Required</td><td>The full name of the customer, used for identification and personalization within the system.</td></tr><tr><td><p>customer_email</p><p><em><strong>string</strong></em></p></td><td>Optional</td><td>The email address of the customer, used for communications like receipts, notifications, or offers.</td></tr><tr><td><p>customer_phone</p><p><em><strong>string</strong></em></p></td><td>Required</td><td>The primary phone number for contacting the customer. It is useful for both communication and verification purposes.</td></tr><tr><td><p>customer_whatsapp</p><p><em><strong>string</strong></em></p></td><td>Optional</td><td>The customer's WhatsApp number. This is used for instant messaging or sending transactional notifications.</td></tr><tr><td><p>customer_country</p><p><em><strong>string</strong></em></p></td><td>Required</td><td>The country in which the customer resides. This is necessary for shipping, billing, or other region-specific activities.</td></tr><tr><td><p>customer_city</p><p><em><strong>string</strong></em></p></td><td>Required</td><td>The city where the customer is located. It helps in localizing deliveries, services, and communication.</td></tr><tr><td><p>customer_state</p><p><em><strong>string</strong></em></p></td><td>Required</td><td>The state or region where the customer is based. This is useful for regional identification within a country.</td></tr><tr><td><p>customer_zip</p><p><em><strong>string</strong></em></p></td><td>Optional</td><td><p>The postal code for the customer's location. It is generally used for mailing, shipping, and regional classification.</p><p><code>(eg: 00233)</code></p></td></tr><tr><td><p>address1</p><p>string</p></td><td>Required</td><td>The primary address of the customer, typically used for billing or shipping purposes. It can contain house numbers, street names, etc.</td></tr><tr><td><p>address2</p><p><em><strong>string</strong></em></p></td><td>Optional</td><td>The secondary address, such as apartment numbers or additional details not covered in address1. This is helpful when the customer's address is complex.</td></tr><tr><td><p>customer_profile</p><p>string</p></td><td>Optional</td><td>A URL or path to the customer's profile image, typically used for identification or personalization within the user interface.</td></tr><tr><td><p>created_by</p><p><em><strong>string</strong></em></p></td><td>Required</td><td>The identifier or username of the person who created this customer entry in the system. This helps in tracking changes and updates.</td></tr></tbody></table>

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

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

```php
<?php
$id = 'CUSTOMER_ID'; // Replace 'CUSTOMER_ID' with your actual customer ID


$data = [
  'customer_group_id' => 1, 
  'customer_name' => "Jane Doe", 
  'customer_email' => "jane.doe@example.com", 
  'customer_phone' => "+233244567890", 
  'customer_whatsapp' => "+233244567890", 
  'customer_country' => "Ghana", 
  'customer_city' => "Accra", 
  'customer_state' => "Greater Accra", 
  'customer_zip' => "00233", 
  'address1' => "123 Main Street", 
  'address2' => "Apt 4B, Downtown Complex", 
  'customer_profile' => "https://example.com/profiles/customer123.jpg",
  "created_by" => "Edward"
];

$url = 'https://api.xtrakit.com/api/v1/customers/' . $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" %}

```javascript
const axios = require('axios');

const id = 'CUSTOMER_ID'; // Replace 'CUSTOMER_ID' with your actual customer ID


const data = {
  'customer_group_id': 1, 
  'customer_name': "Jane Doe", 
  'customer_email': "jane.doe@example.com", 
  'customer_phone': "+233244567890", 
  'customer_whatsapp': "+233244567890", 
  'customer_country': "Ghana", 
  'customer_city': "Accra", 
  'customer_state': "Greater Accra", 
  'customer_zip': "00233", 
  'address1': "123 Main Street", 
  'address2': "Apt 4B, Downtown Complex", 
  'customer_profile': "https://example.com/profiles/customer123.jpg",
  "created_by": "Edward"
};

const config = {
    method: 'put',
    url: `https://api.xtrakit.com/api/v1/customers/{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);
});
```

{% endtab %}

{% tab title="Python" %}

```python
import requests

id = 'CUSTOMER_ID' # Replace 'CUSTOMER_ID' with your actual customer ID

data = {
  'customer_group_id': 1, 
  'customer_name': "Jane Doe", 
  'customer_email': "jane.doe@example.com", 
  'customer_phone': "+233244567890", 
  'customer_whatsapp': "+233244567890", 
  'customer_country': "Ghana", 
  'customer_city': "Accra", 
  'customer_state': "Greater Accra", 
  'customer_zip': "00233", 
  'address1': "123 Main Street", 
  'address2': "Apt 4B, Downtown Complex", 
  'customer_profile': "https://example.com/profiles/customer123.jpg",
  "created_by": "Edward"
}

url = f'https://api.xtrakit.com/api/v1/customers/{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" %}

```json
{
    "status": 200,
    "message": "Customer updated successfully",
    "data": {
        "customer": {
            "id": 1,
            "customer_group_id": 1,
            "customer_name": "Jane Doe",
            "customer_email": "jane.doe@example.com",
            "customer_phone": "+233244567890",
            "customer_whatsapp": "+233244567890",
            "customer_country": "Ghana",
            "customer_city": "Accra",
            "customer_state": "Greater Accra",
            "customer_zip": "00233",
            "address1": "123 Main Street",
            "address2": "Apt 4B, Downtown Complex",
            "customer_profile": "https://example.com/profiles/customer123.jpg",
            "created_by": "Edward",
            "created_at": "2024-08-04 08:23:45",
            "updated_at": "2024-08-04 02:00:43"        
        },
        "customer-group": [  
            {
                "id": 1,
                "group_name": "Premium Customers",
                "group_description": "Customers who have spent over $1000 and have been with the business for over a year.",
                "created_at": "2024-08-04 08:23:45",
                "updated_at": "2024-08-04 02:00:43"
            },
            ...
        ],
    }
}
```

{% endtab %}

{% tab title="Error" %}

```json
{
    "status": 401,
    "error": "Unauthorized: Missing Bearer Token"
},

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

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.xtrakit.com/overview/customers/edit-customer.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
