> For the complete documentation index, see [llms.txt](https://photon-commerce.gitbook.io/photon-commerce-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://photon-commerce.gitbook.io/photon-commerce-api/update-doc-v4/update-line-items.md).

# Update Line Items

To update an existing line item, submit a PUT request with the data to be updated as a string of dictionary and specify the line item ID to which these updates must be applied.

## Update existing line item

<mark style="color:orange;">`PUT`</mark> `https://api.photoncommerce.com/api/v4/update/line-items/<line_item_id>`

This method can be used to update line item values for one specific line item at a time. The line item keys whose values can be updated are listed in the code block after the following API method block.

#### Path Parameters

| Name           | Type   | Description                                                    |
| -------------- | ------ | -------------------------------------------------------------- |
| line\_item\_id | string | <p>The ID of the line item that needs to be <br>updated</p>    |
| photon\_key    | string | <p>Photon Key of the JSON file that needs to<br>be updated</p> |

#### Headers

| Name          | Type   | Description                                                                                 |
| ------------- | ------ | ------------------------------------------------------------------------------------------- |
| CLIENT-ID     | string | <p>Unique client-id provided during user<br>registration</p>                                |
| AUTHORIZATION | string | Pass your username and unique API Key in the form 'apikey \<your-username>:\<your-api-key>' |
| SECRET-KEY    | string | Your secret key as a string                                                                 |
| PASSWORD      | string | Password used during user registration                                                      |
| Content-Type  | string | Set to "application/json"                                                                   |

#### Request Body

| Name | Type   | Description                                                                                                           |
| ---- | ------ | --------------------------------------------------------------------------------------------------------------------- |
| data | string | <p>String of dictionary containing fields to be <br>updated with their corresponding values<br>e.g {'SKU': '003'}</p> |

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

```
{"message":"Updated line item successfully","status":"success"}
```

{% endtab %}
{% endtabs %}

Line item keys that can be updated:

```
"SKU":                 <string- parsed SKU code>,
"Description":         <string- raw item description>,
"Date":                <date of the line item as a string "YYYY-MM-DD">,
"Order":               <integer - Order of the item>,
"Reference":           <string- Reference ID for the item>,
"QTY":                 <decimal number of units>,
"Unit":                <unit of measure>,
"Price":               <decimal unit price>,
"Amount":              <decimal total pricing>,
"Discount":            <decimal line item discount amount>,
"Tax_Rate":            <the tax rate levied>,
"Tax",                 <decimal line item tax amount>,
"Type"                 <inferred product or service string>
```

The syntax for sending an update request:

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

```
curl -X PUT -H 'Content-Type: application/json' -H "CLIENT-ID:<client-id>" -H "AUTHORIZATION:apikey <username>:<api-key>" -H 'PASSWORD:<password>' -H "SECRET-KEY:<secret-key>" -d '{"SKU": "0004", "Total": 80}' "https://api.photoncommerce.com/api/v4/update/line-items/<line-item-id>?photon_key=<mention-the-photon-key-here>"
```

{% endtab %}

{% tab title="Python" %}

```
import requests

headers = {
    'Content-Type': 'application/json',
    'CLIENT-ID': '<client-id>',
    'AUTHORIZATION': 'apikey <username>:<api-key>',
    'PASSWORD': '<password>',
    'SECRET-KEY': '<secret-key>',
}

params = (
    ('photon_key', '<mention-the-photon-key-here>'),
)

data = '{"SKU": "0004"}'

response = requests.put('https://api.photoncommerce.com/api/v4/update/line-items/<line-item-id>', headers=headers, params=params, data=data)
```

{% endtab %}

{% tab title="NodeJS" %}

```
var request = require('request');

var headers = {
    'Content-Type': 'application/json',
    'CLIENT-ID': '<client-id>',
    'AUTHORIZATION': 'apikey <username>:<api-key>',
    'PASSWORD': '<password>',
    'SECRET-KEY': '<secret-key>'
};

var dataString = '{"SKU": "0004", "Total": 80}';

var options = {
    url: 'https://api.photoncommerce.com/api/v4/update/line-items/<line-item-id>?photon_key=<mention-the-photon-key-here>',
    method: 'PUT',
    headers: headers,
    body: dataString
};

function callback(error, response, body) {
    if (!error && response.statusCode == 200) {
        console.log(body);
    }
}

request(options, callback);
```

{% endtab %}

{% tab title="Java" %}

```
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;

class Main {

	public static void main(String[] args) throws IOException {
		URL url = new URL("https://api.photoncommerce.com/api/v4/update/line-items/<line-item-id>?photon_key=<mention-the-photon-key-here>");
		HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
		httpConn.setRequestMethod("PUT");

		httpConn.setRequestProperty("Content-Type", "application/json");
		httpConn.setRequestProperty("CLIENT-ID", "<client-id>");
		httpConn.setRequestProperty("AUTHORIZATION", "apikey <username>:<api-key>");
		httpConn.setRequestProperty("PASSWORD", "<password>");
		httpConn.setRequestProperty("SECRET-KEY", "<secret-key>");

		httpConn.setDoOutput(true);
		OutputStreamWriter writer = new OutputStreamWriter(httpConn.getOutputStream());
		writer.write("{\"SKU\": \"0004\", \"Total\": 80}");
		writer.flush();
		writer.close();
		httpConn.getOutputStream().close();

		InputStream responseStream = httpConn.getResponseCode() / 100 == 2
				? httpConn.getInputStream()
				: httpConn.getErrorStream();
		Scanner s = new Scanner(responseStream).useDelimiter("\\A");
		String response = s.hasNext() ? s.next() : "";
		System.out.println(response);
	}
}
```

{% endtab %}
{% endtabs %}
