Assets

Fixed assets.

The object#

FieldTypeDescription
idread-onlyintegerNolaPro id.
namestring(255)Asset name.
descriptiontextDescription. Stored as text, no practical length limit.
notestextNotes. Stored as text, no practical length limit.
assetcategoryidintegerAssetcategoryid. Id only.
manufacturervendoridintegerReference to vendors, by id. Write either this or manufacturervendor.
manufacturervendorstring(30)The vendorcode of the referenced vendors, instead of the id. Send this or manufacturervendorid, not both unless they agree.
inventorylocationidintegerInventorylocationid. Id only.
inventorylocationstring(20)The locationcode of the referenced inventorylocations, instead of the id. Send this or inventorylocationid, not both unless they agree.
itemidintegerReference to items, by id. Write either this or item.
itemstring(255)The sku of the referenced items, instead of the id. Send this or itemid, not both unless they agree.
customeridintegerReference to customers, by id. Write either this or customer.
customerstring(30)Code for the referenced customer, instead of the id.
entrydateread-onlystringWhen the record was created.
lastchangedateread-onlystringLast modification. Drives modifiedsince.
cancelbooleanCancelled. NolaPro cancels rather than deletes, so a cancelled row is still readable.
costmoneystring(6dp)Stored as decimal(19,6).
currencystring(10)Currency the asset was purchased in.
purchasedatestringDate the asset was purchased.
disposeddatestringDate the asset was disposed of.
serialnumberstring(255)Serial number of the asset.
manufacturedatestringDate the asset was manufactured.
shiptoidintegerShiptoid. Id only.
ownertypeintegerWho owns the asset: 0 = company, 1 = customer, 2 = vendor. Only company-owned fixed assets depreciate.
vendoridintegerReference to vendors, by id. Write either this or vendor.
vendorstring(30)Code for the referenced vendor, instead of the id.
modelnumberstring(255)Model number of the asset.
assettypeintegerAsset class: 0 = fixed asset, 1 = current asset, 2 = intangible asset, 3 = investment. Only fixed assets depreciate.
salvagevaluemoneystring(6dp)Stored as decimal(19,6).
usefullifeinyearsmoneystring(6dp)Stored as decimal(19,6).
assetglaccountidintegerReference to glaccounts, by id. Write either this or assetglaccount.
assetglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or assetglaccountid, not both unless they agree.
accumulateddepreciationglaccountidintegerReference to glaccounts, by id. Write either this or accumulateddepreciationglaccount.
accumulateddepreciationglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or accumulateddepreciationglaccountid, not both unless they agree.
expenseglaccountidintegerReference to glaccounts, by id. Write either this or expenseglaccount.
expenseglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or expenseglaccountid, not both unless they agree.
parentassetidintegerParentassetid. Id only.
invpoidintegerInvpoid. Id only.
invpodetailidintegerInvpodetailid. Id only.
apbillidintegerApbillid. Id only.
apbilldetailidintegerApbilldetailid. Id only.
arinvoiceidintegerArinvoiceid. Id only.
arinvoicestring(30)The invoicenumber of the referenced invoices, instead of the id. Send this or arinvoiceid, not both unless they agree.
arinvoicedetailidintegerArinvoicedetailid. Id only.
arorderidintegerArorderid. Id only.
arorderdetailidintegerArorderdetailid. Id only.
clonedfromassetidintegerClonedfromassetid. Id only.
invreceiveitemtransactionidintegerInvreceiveitemtransactionid. Id only.
assetitemtransactionidintegerAssetitemtransactionid. Id only.
returnassetitemtransactionidintegerReturnassetitemtransactionid. Id only.
jobidintegerJobid. Id only.
costcodeidintegerCost code.
costcodestring(20)Code for the referenced costcode, instead of the id.
glcategoryidintegerGlcategoryid. Id only.
glcategorystring(20)The code of the referenced glcategories, instead of the id. Send this or glcategoryid, not both unless they agree.
depreciationcalculationmethodintegerDepreciation method: 0 = straight line, 1 = double declining balance, 2 = units of production.
depreciationcalculatedasofread-onlystringDate depreciation has been calculated through. Maintained by the depreciation run, so it cannot be written through the API.
usefullifeinproductionunitsmoneystring(6dp)Stored as decimal(18,6).
inventoryglaccountidintegerReference to glaccounts, by id. Write either this or inventoryglaccount.
inventoryglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or inventoryglaccountid, not both unless they agree.
expensedepreciationglaccountidintegerReference to glaccounts, by id. Write either this or expensedepreciationglaccount.
expensedepreciationglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or expensedepreciationglaccountid, not both unless they agree.
assetvoucheridintegerAssetvoucherid. Id only.
assetvoucherstring(50)The voucher of the referenced gltransactions, instead of the id. Send this or assetvoucherid, not both unless they agree.
manufacturerstring(255)Manufacturer of the asset.
externalidstring(100)Your own key. Scoped to your company.

Endpoints#

POST/assets/batch 207

Create many.

Requires scope assets:write.

Parameters
NameInTypeNotes
Idempotency-KeyheaderstringMakes the write safely retryable. Any unique string per logical operation; a UUID is fine. The failure this prevents is specific: the request succeeds, the response is lost to a timeout, you retry, and the customer is billed twice. With a key, the retry returns the original response - same status, same body, same id - and creates nothing. The body is part of the key's identity. Reusing a key with a different body is a bug on your side, not a retry, and answers 409 idempotency_replay rather than silently handing back the old response. Keys are remembered for 24 hours.
Body array
FieldTypeDescription
idread-onlyintegerNolaPro id.
namestring(255)Asset name.
descriptiontextDescription. Stored as text, no practical length limit.
notestextNotes. Stored as text, no practical length limit.
assetcategoryidintegerAssetcategoryid. Id only.
manufacturervendoridintegerReference to vendors, by id. Write either this or manufacturervendor.
manufacturervendorstring(30)The vendorcode of the referenced vendors, instead of the id. Send this or manufacturervendorid, not both unless they agree.
inventorylocationidintegerInventorylocationid. Id only.
inventorylocationstring(20)The locationcode of the referenced inventorylocations, instead of the id. Send this or inventorylocationid, not both unless they agree.
itemidintegerReference to items, by id. Write either this or item.
itemstring(255)The sku of the referenced items, instead of the id. Send this or itemid, not both unless they agree.
customeridintegerReference to customers, by id. Write either this or customer.
customerstring(30)Code for the referenced customer, instead of the id.
entrydateread-onlystringWhen the record was created.
lastchangedateread-onlystringLast modification. Drives modifiedsince.
cancelbooleanCancelled. NolaPro cancels rather than deletes, so a cancelled row is still readable.
costmoneystring(6dp)Stored as decimal(19,6).
currencystring(10)Currency the asset was purchased in.
purchasedatestringDate the asset was purchased.
disposeddatestringDate the asset was disposed of.
serialnumberstring(255)Serial number of the asset.
manufacturedatestringDate the asset was manufactured.
shiptoidintegerShiptoid. Id only.
ownertypeintegerWho owns the asset: 0 = company, 1 = customer, 2 = vendor. Only company-owned fixed assets depreciate.
vendoridintegerReference to vendors, by id. Write either this or vendor.
vendorstring(30)Code for the referenced vendor, instead of the id.
modelnumberstring(255)Model number of the asset.
assettypeintegerAsset class: 0 = fixed asset, 1 = current asset, 2 = intangible asset, 3 = investment. Only fixed assets depreciate.
salvagevaluemoneystring(6dp)Stored as decimal(19,6).
usefullifeinyearsmoneystring(6dp)Stored as decimal(19,6).
assetglaccountidintegerReference to glaccounts, by id. Write either this or assetglaccount.
assetglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or assetglaccountid, not both unless they agree.
accumulateddepreciationglaccountidintegerReference to glaccounts, by id. Write either this or accumulateddepreciationglaccount.
accumulateddepreciationglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or accumulateddepreciationglaccountid, not both unless they agree.
expenseglaccountidintegerReference to glaccounts, by id. Write either this or expenseglaccount.
expenseglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or expenseglaccountid, not both unless they agree.
parentassetidintegerParentassetid. Id only.
invpoidintegerInvpoid. Id only.
invpodetailidintegerInvpodetailid. Id only.
apbillidintegerApbillid. Id only.
apbilldetailidintegerApbilldetailid. Id only.
arinvoiceidintegerArinvoiceid. Id only.
arinvoicestring(30)The invoicenumber of the referenced invoices, instead of the id. Send this or arinvoiceid, not both unless they agree.
arinvoicedetailidintegerArinvoicedetailid. Id only.
arorderidintegerArorderid. Id only.
arorderdetailidintegerArorderdetailid. Id only.
clonedfromassetidintegerClonedfromassetid. Id only.
invreceiveitemtransactionidintegerInvreceiveitemtransactionid. Id only.
assetitemtransactionidintegerAssetitemtransactionid. Id only.
returnassetitemtransactionidintegerReturnassetitemtransactionid. Id only.
jobidintegerJobid. Id only.
costcodeidintegerCost code.
costcodestring(20)Code for the referenced costcode, instead of the id.
glcategoryidintegerGlcategoryid. Id only.
glcategorystring(20)The code of the referenced glcategories, instead of the id. Send this or glcategoryid, not both unless they agree.
depreciationcalculationmethodintegerDepreciation method: 0 = straight line, 1 = double declining balance, 2 = units of production.
depreciationcalculatedasofread-onlystringDate depreciation has been calculated through. Maintained by the depreciation run, so it cannot be written through the API.
usefullifeinproductionunitsmoneystring(6dp)Stored as decimal(18,6).
inventoryglaccountidintegerReference to glaccounts, by id. Write either this or inventoryglaccount.
inventoryglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or inventoryglaccountid, not both unless they agree.
expensedepreciationglaccountidintegerReference to glaccounts, by id. Write either this or expensedepreciationglaccount.
expensedepreciationglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or expensedepreciationglaccountid, not both unless they agree.
assetvoucheridintegerAssetvoucherid. Id only.
assetvoucherstring(50)The voucher of the referenced gltransactions, instead of the id. Send this or assetvoucherid, not both unless they agree.
manufacturerstring(255)Manufacturer of the asset.
externalidstring(100)Your own key. Scoped to your company.
curl -X POST \
  'https://acme.nolapro.com/!/api/v2/assets/batch' \
  -H 'Authorization: Bearer $NP_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: your-unique-key' \
  -d '[
    {
        "name": "Example name",
        "description": "Example description",
        "notes": "Example notes",
        "assetcategoryid": 104,
        "manufacturervendorid": 104,
        "manufacturervendor": "Example manufacturervendor"
    }
]'
GET/assets 200403

List assets.

Requires scope assets:read.

Parameters
NameInTypeNotes
customeridquerystringRestrict to one customerid.
vendoridquerystringRestrict to one vendorid.
itemidquerystringRestrict to one itemid.
inventorylocationidquerystringRestrict to one inventorylocationid.
jobidquerystringRestrict to one jobid.
arinvoiceidquerystringRestrict to one arinvoiceid.
invpoidquerystringRestrict to one invpoid.
namequerystringname. Partial match, case-insensitive.
descriptionquerystringdescription. Partial match, case-insensitive.
cancelquerystringDefaults to false. Pass true or any.
externalidquerystringExact match on your own key.
includequerystringComma-separated extras to embed. Only custom_fields is available: the extra fields this install has defined on the record. Off by default, and an unrecognised value is refused rather than ignored. See Conventions.
When it fails
StatusCodeMeaning
403insufficient_scopeToken lacks read scope.
curl \
  'https://acme.nolapro.com/!/api/v2/assets' \
  -H 'Authorization: Bearer $NP_TOKEN'
POST/assets 201400

Create.

Requires scope assets:write.

Parameters
NameInTypeNotes
Idempotency-KeyheaderstringMakes the write safely retryable. Any unique string per logical operation; a UUID is fine. The failure this prevents is specific: the request succeeds, the response is lost to a timeout, you retry, and the customer is billed twice. With a key, the retry returns the original response - same status, same body, same id - and creates nothing. The body is part of the key's identity. Reusing a key with a different body is a bug on your side, not a retry, and answers 409 idempotency_replay rather than silently handing back the old response. Keys are remembered for 24 hours.
Body
FieldTypeDescription
idread-onlyintegerNolaPro id.
namestring(255)Asset name.
descriptiontextDescription. Stored as text, no practical length limit.
notestextNotes. Stored as text, no practical length limit.
assetcategoryidintegerAssetcategoryid. Id only.
manufacturervendoridintegerReference to vendors, by id. Write either this or manufacturervendor.
manufacturervendorstring(30)The vendorcode of the referenced vendors, instead of the id. Send this or manufacturervendorid, not both unless they agree.
inventorylocationidintegerInventorylocationid. Id only.
inventorylocationstring(20)The locationcode of the referenced inventorylocations, instead of the id. Send this or inventorylocationid, not both unless they agree.
itemidintegerReference to items, by id. Write either this or item.
itemstring(255)The sku of the referenced items, instead of the id. Send this or itemid, not both unless they agree.
customeridintegerReference to customers, by id. Write either this or customer.
customerstring(30)Code for the referenced customer, instead of the id.
entrydateread-onlystringWhen the record was created.
lastchangedateread-onlystringLast modification. Drives modifiedsince.
cancelbooleanCancelled. NolaPro cancels rather than deletes, so a cancelled row is still readable.
costmoneystring(6dp)Stored as decimal(19,6).
currencystring(10)Currency the asset was purchased in.
purchasedatestringDate the asset was purchased.
disposeddatestringDate the asset was disposed of.
serialnumberstring(255)Serial number of the asset.
manufacturedatestringDate the asset was manufactured.
shiptoidintegerShiptoid. Id only.
ownertypeintegerWho owns the asset: 0 = company, 1 = customer, 2 = vendor. Only company-owned fixed assets depreciate.
vendoridintegerReference to vendors, by id. Write either this or vendor.
vendorstring(30)Code for the referenced vendor, instead of the id.
modelnumberstring(255)Model number of the asset.
assettypeintegerAsset class: 0 = fixed asset, 1 = current asset, 2 = intangible asset, 3 = investment. Only fixed assets depreciate.
salvagevaluemoneystring(6dp)Stored as decimal(19,6).
usefullifeinyearsmoneystring(6dp)Stored as decimal(19,6).
assetglaccountidintegerReference to glaccounts, by id. Write either this or assetglaccount.
assetglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or assetglaccountid, not both unless they agree.
accumulateddepreciationglaccountidintegerReference to glaccounts, by id. Write either this or accumulateddepreciationglaccount.
accumulateddepreciationglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or accumulateddepreciationglaccountid, not both unless they agree.
expenseglaccountidintegerReference to glaccounts, by id. Write either this or expenseglaccount.
expenseglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or expenseglaccountid, not both unless they agree.
parentassetidintegerParentassetid. Id only.
invpoidintegerInvpoid. Id only.
invpodetailidintegerInvpodetailid. Id only.
apbillidintegerApbillid. Id only.
apbilldetailidintegerApbilldetailid. Id only.
arinvoiceidintegerArinvoiceid. Id only.
arinvoicestring(30)The invoicenumber of the referenced invoices, instead of the id. Send this or arinvoiceid, not both unless they agree.
arinvoicedetailidintegerArinvoicedetailid. Id only.
arorderidintegerArorderid. Id only.
arorderdetailidintegerArorderdetailid. Id only.
clonedfromassetidintegerClonedfromassetid. Id only.
invreceiveitemtransactionidintegerInvreceiveitemtransactionid. Id only.
assetitemtransactionidintegerAssetitemtransactionid. Id only.
returnassetitemtransactionidintegerReturnassetitemtransactionid. Id only.
jobidintegerJobid. Id only.
costcodeidintegerCost code.
costcodestring(20)Code for the referenced costcode, instead of the id.
glcategoryidintegerGlcategoryid. Id only.
glcategorystring(20)The code of the referenced glcategories, instead of the id. Send this or glcategoryid, not both unless they agree.
depreciationcalculationmethodintegerDepreciation method: 0 = straight line, 1 = double declining balance, 2 = units of production.
depreciationcalculatedasofread-onlystringDate depreciation has been calculated through. Maintained by the depreciation run, so it cannot be written through the API.
usefullifeinproductionunitsmoneystring(6dp)Stored as decimal(18,6).
inventoryglaccountidintegerReference to glaccounts, by id. Write either this or inventoryglaccount.
inventoryglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or inventoryglaccountid, not both unless they agree.
expensedepreciationglaccountidintegerReference to glaccounts, by id. Write either this or expensedepreciationglaccount.
expensedepreciationglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or expensedepreciationglaccountid, not both unless they agree.
assetvoucheridintegerAssetvoucherid. Id only.
assetvoucherstring(50)The voucher of the referenced gltransactions, instead of the id. Send this or assetvoucherid, not both unless they agree.
manufacturerstring(255)Manufacturer of the asset.
externalidstring(100)Your own key. Scoped to your company.
When it fails
StatusCodeMeaning
400invalid_requestA required field was missing.
curl -X POST \
  'https://acme.nolapro.com/!/api/v2/assets' \
  -H 'Authorization: Bearer $NP_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: your-unique-key' \
  -d '{
    "name": "Example name",
    "description": "Example description",
    "notes": "Example notes",
    "assetcategoryid": 104,
    "manufacturervendorid": 104,
    "manufacturervendor": "Example manufacturervendor"
}'
Response 201
{
    "name": "Example name",
    "description": "Example description",
    "notes": "Example notes",
    "assetcategoryid": 104,
    "manufacturervendorid": 104,
    "manufacturervendor": "Example manufacturervendor"
}
GET/assets/{id} 200404

Retrieve one record.

Requires scope assets:read.

Parameters
NameInTypeNotes
idrequiredpathintegerThe record id.
includequerystringComma-separated extras to embed. Only custom_fields is available: the extra fields this install has defined on the record. Off by default, and an unrecognised value is refused rather than ignored. See Conventions.
When it fails
StatusCodeMeaning
404not_foundNo record with that id.
curl \
  'https://acme.nolapro.com/!/api/v2/assets/104' \
  -H 'Authorization: Bearer $NP_TOKEN'
Response 200
{
    "name": "Example name",
    "description": "Example description",
    "notes": "Example notes",
    "assetcategoryid": 104,
    "manufacturervendorid": 104,
    "manufacturervendor": "Example manufacturervendor"
}
PATCH/assets/{id} 200404

Update.

Requires scope assets:write.

Parameters
NameInTypeNotes
idrequiredpathintegerThe record id.
Idempotency-KeyheaderstringMakes the write safely retryable. Any unique string per logical operation; a UUID is fine. The failure this prevents is specific: the request succeeds, the response is lost to a timeout, you retry, and the customer is billed twice. With a key, the retry returns the original response - same status, same body, same id - and creates nothing. The body is part of the key's identity. Reusing a key with a different body is a bug on your side, not a retry, and answers 409 idempotency_replay rather than silently handing back the old response. Keys are remembered for 24 hours.
Body
FieldTypeDescription
idread-onlyintegerNolaPro id.
namestring(255)Asset name.
descriptiontextDescription. Stored as text, no practical length limit.
notestextNotes. Stored as text, no practical length limit.
assetcategoryidintegerAssetcategoryid. Id only.
manufacturervendoridintegerReference to vendors, by id. Write either this or manufacturervendor.
manufacturervendorstring(30)The vendorcode of the referenced vendors, instead of the id. Send this or manufacturervendorid, not both unless they agree.
inventorylocationidintegerInventorylocationid. Id only.
inventorylocationstring(20)The locationcode of the referenced inventorylocations, instead of the id. Send this or inventorylocationid, not both unless they agree.
itemidintegerReference to items, by id. Write either this or item.
itemstring(255)The sku of the referenced items, instead of the id. Send this or itemid, not both unless they agree.
customeridintegerReference to customers, by id. Write either this or customer.
customerstring(30)Code for the referenced customer, instead of the id.
entrydateread-onlystringWhen the record was created.
lastchangedateread-onlystringLast modification. Drives modifiedsince.
cancelbooleanCancelled. NolaPro cancels rather than deletes, so a cancelled row is still readable.
costmoneystring(6dp)Stored as decimal(19,6).
currencystring(10)Currency the asset was purchased in.
purchasedatestringDate the asset was purchased.
disposeddatestringDate the asset was disposed of.
serialnumberstring(255)Serial number of the asset.
manufacturedatestringDate the asset was manufactured.
shiptoidintegerShiptoid. Id only.
ownertypeintegerWho owns the asset: 0 = company, 1 = customer, 2 = vendor. Only company-owned fixed assets depreciate.
vendoridintegerReference to vendors, by id. Write either this or vendor.
vendorstring(30)Code for the referenced vendor, instead of the id.
modelnumberstring(255)Model number of the asset.
assettypeintegerAsset class: 0 = fixed asset, 1 = current asset, 2 = intangible asset, 3 = investment. Only fixed assets depreciate.
salvagevaluemoneystring(6dp)Stored as decimal(19,6).
usefullifeinyearsmoneystring(6dp)Stored as decimal(19,6).
assetglaccountidintegerReference to glaccounts, by id. Write either this or assetglaccount.
assetglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or assetglaccountid, not both unless they agree.
accumulateddepreciationglaccountidintegerReference to glaccounts, by id. Write either this or accumulateddepreciationglaccount.
accumulateddepreciationglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or accumulateddepreciationglaccountid, not both unless they agree.
expenseglaccountidintegerReference to glaccounts, by id. Write either this or expenseglaccount.
expenseglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or expenseglaccountid, not both unless they agree.
parentassetidintegerParentassetid. Id only.
invpoidintegerInvpoid. Id only.
invpodetailidintegerInvpodetailid. Id only.
apbillidintegerApbillid. Id only.
apbilldetailidintegerApbilldetailid. Id only.
arinvoiceidintegerArinvoiceid. Id only.
arinvoicestring(30)The invoicenumber of the referenced invoices, instead of the id. Send this or arinvoiceid, not both unless they agree.
arinvoicedetailidintegerArinvoicedetailid. Id only.
arorderidintegerArorderid. Id only.
arorderdetailidintegerArorderdetailid. Id only.
clonedfromassetidintegerClonedfromassetid. Id only.
invreceiveitemtransactionidintegerInvreceiveitemtransactionid. Id only.
assetitemtransactionidintegerAssetitemtransactionid. Id only.
returnassetitemtransactionidintegerReturnassetitemtransactionid. Id only.
jobidintegerJobid. Id only.
costcodeidintegerCost code.
costcodestring(20)Code for the referenced costcode, instead of the id.
glcategoryidintegerGlcategoryid. Id only.
glcategorystring(20)The code of the referenced glcategories, instead of the id. Send this or glcategoryid, not both unless they agree.
depreciationcalculationmethodintegerDepreciation method: 0 = straight line, 1 = double declining balance, 2 = units of production.
depreciationcalculatedasofread-onlystringDate depreciation has been calculated through. Maintained by the depreciation run, so it cannot be written through the API.
usefullifeinproductionunitsmoneystring(6dp)Stored as decimal(18,6).
inventoryglaccountidintegerReference to glaccounts, by id. Write either this or inventoryglaccount.
inventoryglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or inventoryglaccountid, not both unless they agree.
expensedepreciationglaccountidintegerReference to glaccounts, by id. Write either this or expensedepreciationglaccount.
expensedepreciationglaccountstring(20)The name of the referenced glaccounts, instead of the id. Send this or expensedepreciationglaccountid, not both unless they agree.
assetvoucheridintegerAssetvoucherid. Id only.
assetvoucherstring(50)The voucher of the referenced gltransactions, instead of the id. Send this or assetvoucherid, not both unless they agree.
manufacturerstring(255)Manufacturer of the asset.
externalidstring(100)Your own key. Scoped to your company.
When it fails
StatusCodeMeaning
404not_foundNo record with that id.
curl -X PATCH \
  'https://acme.nolapro.com/!/api/v2/assets/104' \
  -H 'Authorization: Bearer $NP_TOKEN' \
  -H 'Content-Type: application/json' \
  -H 'Idempotency-Key: your-unique-key' \
  -d '{
    "name": "Example name",
    "description": "Example description",
    "notes": "Example notes",
    "assetcategoryid": 104,
    "manufacturervendorid": 104,
    "manufacturervendor": "Example manufacturervendor"
}'
Response 200
{
    "name": "Example name",
    "description": "Example description",
    "notes": "Example notes",
    "assetcategoryid": 104,
    "manufacturervendorid": 104,
    "manufacturervendor": "Example manufacturervendor"
}
DELETE/assets/{id} 200404

Cancel.

Requires scope assets:cancel.

Parameters
NameInTypeNotes
idrequiredpathintegerThe record id.
Idempotency-KeyheaderstringMakes the write safely retryable. Any unique string per logical operation; a UUID is fine. The failure this prevents is specific: the request succeeds, the response is lost to a timeout, you retry, and the customer is billed twice. With a key, the retry returns the original response - same status, same body, same id - and creates nothing. The body is part of the key's identity. Reusing a key with a different body is a bug on your side, not a retry, and answers 409 idempotency_replay rather than silently handing back the old response. Keys are remembered for 24 hours.
When it fails
StatusCodeMeaning
404not_foundNo record with that id.
curl -X DELETE \
  'https://acme.nolapro.com/!/api/v2/assets/104' \
  -H 'Authorization: Bearer $NP_TOKEN'
Response 200
{
    "name": "Example name",
    "description": "Example description",
    "notes": "Example notes",
    "assetcategoryid": 104,
    "manufacturervendorid": 104,
    "manufacturervendor": "Example manufacturervendor"
}
GET/assets/{id}/attachments 200404

List files attached to an asset.

The attachments on this asset, newest first. Accepted filedefinitionid values: 63 (default 63). Metadata only - each file's bytes are at GET /attachments/{id}/content.

Requires scope assets:read.

Parameters
NameInTypeNotes
idrequiredpathintegerThe asset id.
filedefinitionidqueryintegerOnly files in this list. Accepted filedefinitionid values: 63 (default 63).
filecategoryidqueryintegerOnly files filed under this category.
filenamequerystringPartial match on the file name, case insensitive.
When it fails
StatusCodeMeaning
404not_foundNo asset with that id in this company.
curl \
  'https://acme.nolapro.com/!/api/v2/assets/104/attachments' \
  -H 'Authorization: Bearer $NP_TOKEN'
POST/assets/{id}/attachments 201400404409413415422

Attach a file to an asset.

multipart/form-data with one file part; see the AttachmentUpload schema for the other parts. Accepted filedefinitionid values: 63 (default 63). Answers 201 with the attachment's metadata and Location: /attachments/{id}. Check _meta.warnings for datatype_truncated and stored_under_parent_company.

Requires scope assets:write.

Parameters
NameInTypeNotes
idrequiredpathintegerThe asset id.
Idempotency-KeyheaderstringMakes the write safely retryable. Any unique string per logical operation; a UUID is fine. The failure this prevents is specific: the request succeeds, the response is lost to a timeout, you retry, and the customer is billed twice. With a key, the retry returns the original response - same status, same body, same id - and creates nothing. The body is part of the key's identity. Reusing a key with a different body is a bug on your side, not a retry, and answers 409 idempotency_replay rather than silently handing back the old response. Keys are remembered for 24 hours.
Body multipart/form-data
FieldTypeDescription
filerequiredstringThe file. Exactly one part named file; a second one, or file[], is 400 invalid_request so an idempotent retry can never half-succeed. Empty is refused. Over the cap (the smaller of APIV2_MAX_UPLOAD_BYTES, 64 MB by default, and PHP's upload_max_filesize / post_max_size) is 413 payload_too_large naming the limit that applied.
filenamestring(255)Overrides the part's file name.
notestextFree text shown beside the file.
filedefinitionidintegerOnly when the parent accepts more than one list. Anything the parent does not accept is 422 unknown_value naming the accepted ids.
filecategoryidintegerCategory by id.
filecategorystring(255)Category by name. Sent with filecategoryid and disagreeing is 422 conflicting_reference.
When it fails
StatusCodeMeaning
400unknown_parameterA form field that is not on the AttachmentUpload schema.
400invalid_typefiledefinitionid or filecategoryid that is not an integer.
404not_foundNo asset with that id in this company.
409upload_limit_reachedThis file list allows a fixed number of files on an asset and it is full. Remove one first.
413payload_too_largeThe file is over the cap. The body names the limit that applied.
415multipart_requiredThe body was not multipart/form-data.
422unknown_valuefiledefinitionid is not one this asset accepts, or the category does not exist in this company.
curl -X POST \
  'https://acme.nolapro.com/!/api/v2/assets/104/attachments' \
  -H 'Authorization: Bearer $NP_TOKEN' \
  -H 'Idempotency-Key: your-unique-key' \
  -F 'file=@grant-letter-signed.pdf' \
  -F 'filename=grant-letter-signed.pdf' \
  -F 'notes=Signed copy received 21 Sep' \
  -F 'filedefinitionid=8' \
  -F 'filecategory=Receipts'