API / Reference / Invoice Receivables
Update invoice line
PATCH
https://api.light.inc/v1/invoice-receivables/{invoiceReceivableId}/lines/{lineId}
Updates an invoice line item
Only while the invoice is DRAFT. null clears accountId, taxCodeId, discount, priceOverwrite, productNameOverwrite, avataxCode, billingStart, billingEnd and the accrual fields, but leaves productId, quantity and taxAmountOverwrite unchanged. Changing productId resets priceOverwrite to the new product's price unless you send one in the same request. taxAmountOverwrite is not persisted: a later update that changes quantity, priceOverwrite, discount or productId without it recalculates tax from the tax code. A discount that would make the line negative is silently dropped.
Authorization
Send one of these on every request. See Authentication for how to get credentials.
- API key
Basic authentication header of the form Basic <api_key>, where <api_key> is your api key.
- Bearer token
Path parameters
-
invoiceReceivableIdstring · uuidrequired -
lineIdstring · uuidrequired
Request body
application/json;charset=UTF-8
-
productIdstring · uuidID of the product
-
quantitynumberQuantity of the product
-
accountIdstring · uuidID of the ledger account for this line
-
taxCodeIdstring · uuidID of the tax code to apply to this line
-
discountobjectDiscount to apply to this line (can be percentage or amount-based)
-
typestring⚠️ This enum is not exhaustive; new values may be added in the future.
One of
PERCENTAGEAMOUNT
-
-
priceOverwriteinteger · int64Price overwrite in smallest denomination. If not provided, the product's default price will be used
-
productNameOverwritestringProduct name overwrite. If not provided, the product's default name will be used
-
taxAmountOverwriteinteger · int64Tax amount override in smallest denomination. Bypasses tax calculation and sets the exact tax amount for this line.
Requirements: The line must have a valid amount (product price or priceOverwrite must be set).
The taxAmount field in the response will reflect this override value.
Amounts use smallest denomination. Examples: GBP 42.15 = 4215, JPY 12345 = 12345, BHD 7.321 = 7321.
Applied once and not stored. Re-send it with any later update that changes
quantity,priceOverwrite,discountorproductId, or the tax is recalculated from the tax code. -
avataxCodestringAvalara tax code. Used when the invoice tax engine is AVATAX
-
billingStartstring · dateStart of the billing period for this line
-
billingEndstring · dateEnd of the billing period for this line
-
customPropertiesarray of objectList of custom properties to set on the invoice or line
-
groupIdstring · uuidID of the custom property group.
-
valueIdsarray of string · uuidIDs of the selected custom property values. It behaves as a PUT operation, so if empty the existing ones will be effectively deleted.
Catalogue value ids for this group. Required; send
[](with an emptyinlineValues) to clear the group.SINGLE_SELECTandMULTI_SELECTgroups accept nothing else. See Custom properties on writes. -
inlineValuesarray of stringInline custom property values (used for TEXT/NUMERIC/DATE/etc. groups). It behaves as a PUT operation, so if empty or null the existing ones will be effectively deleted.
Literal values for
TEXT,NUMERIC,BOOLEANandDATEgroups, as strings (yyyy-MM-ddfor dates). Rejected on select groups withCUSTOM_PROPERTY_VALUE_TYPE_MISMATCH. See Custom properties on writes.
-
-
accrualTemplateIdstring · uuidID of the accrual/amortization template to apply to this line
-
accrualStartDatestring · dateStart date for accrual/amortization
-
accrualEndDatestring · dateEnd date for accrual/amortization
Response
-
idstring · uuidUnique identifier for the object
-
companyIdstring · uuidID of the company
-
invoiceReceivableIdstring · uuidID of the invoice receivable this line belongs to
-
productIdstring · uuidID of the product
-
quantitynumberQuantity of the product
-
taxCodeIdstring · uuidID of the tax code
-
accountIdstring · uuidID of the ledger account
-
discountobjectDiscount to apply to this line (can be percentage or amount-based)
Discount applied to the line, by percentage or by amount.
-
typestring⚠️ This enum is not exhaustive; new values may be added in the future.
One of
PERCENTAGEAMOUNT
-
-
discountAmountinteger · int64Discount amount in smallest denomination
-
netAmountinteger · int64Net amount in smallest denomination after discount but before tax
Signed: credit-side lines are positive, debit-side lines (a negative
priceOverwrite) are negative.discountAmountis unsigned. -
taxAmountinteger · int64Tax amount in smallest denomination
Signed the same way as
netAmount: negative on a debit-side line. -
avataxCodestringAvalara tax code. Used when the invoice tax engine is
AVATAX -
billingStartstring · dateStart of the billing period
-
billingEndstring · dateEnd of the billing period
-
priceOverwriteinteger · int64Custom product price in smallest denomination. This overrides the default product's price
-
productNameOverwritestringCustom product name. This overrides the default product's name
-
createdAtstring · date-timeTimestamp when the line was created
-
updatedAtstring · date-timeTimestamp when the line was last updated
-
accrualTemplateIdstring · uuidID of the accrual template
-
accrualStartDatestring · dateStart date for accrual
-
accrualEndDatestring · dateEnd date for accrual
-
customPropertiesarray of objectList of custom properties associated with the line
-
groupIdstring · uuidID of the custom property group
-
groupInternalNamestringInternal name of the custom property group
-
valuesarray of objectList of values. Note that this will be a single value unless the group input type supports multiple values
-
idstring · uuidUnique identifier for the object
-
groupIdstring · uuidID of the custom property group
-
groupInternalNamestringInternal name of the custom property group
-
companyIdstring · uuidID of the company
-
internalNamestringInternal name of the custom property value
-
labelstringLabel of the custom property value
-
contextstringContext/description of the custom property value
-
createdAtstring · date-timeTimestamp when the custom property value was created
-
updatedAtstring · date-timeTimestamp when the custom property value was last updated
-
-