Light APIv1.0.0

API / Reference / Purchase Orders

Batch update purchase order lines

PUT https://api.light.inc/v1/purchase-orders/{purchaseOrderId}/lines/bulk

Updates multiple purchase order line items

Not a replace-all, and not a merge either. Only the lines whose lineId you list are touched (unknown id: PURCHASE_ORDER_LINE_NOT_RECOGNIZED; the same id twice: PURCHASE_ORDER_LINE_DUPLICATE_UPDATE), but for each listed line every scalar field is overwritten with what you send, so an omitted description, costCenterId, accountId, taxCodeId, quantity or unitPrice becomes null. customProperties is the one field null leaves unchanged. The single-line PATCH uses the usual omit-to-keep rule instead.

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

  • purchaseOrderId string · uuidrequired

Request body

application/json;charset=UTF-8

  • lineId string · uuid

  • description string

    Overwritten with whatever you send, so an omitted value becomes null. The same applies to costCenterId, accountId, taxCodeId, quantity and unitPrice in this batch body; only customProperties keeps its value on null.

  • costCenterId string · uuid

  • accountId string · uuid

  • taxCodeId string · uuid

  • quantity number

  • unitPrice integer · int64

  • customProperties array of object

    • groupId string · uuid

      ID of the custom property group.

    • valueIds array of string · uuid

      IDs 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 empty inlineValues) to clear the group. SINGLE_SELECT and MULTI_SELECT groups accept nothing else. See Custom properties on writes.

    • inlineValues array of string

      Inline 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, BOOLEAN and DATE groups, as strings (yyyy-MM-dd for dates). Rejected on select groups with CUSTOM_PROPERTY_VALUE_TYPE_MISMATCH. See Custom properties on writes.

Response

  • id string · uuid

  • companyId string · uuid

  • purchaseOrderId string · uuid

  • description string

  • costCenterId string · uuid

  • accountId string · uuid

  • taxCodeId string · uuid

  • quantity number

  • unitPrice integer · int64

  • amount integer · int64

  • netAmount integer · int64

  • createdAt string · date-time

  • updatedAt string · date-time

  • customProperties array of object

    • groupId string · uuid

      ID of the custom property group

    • groupInternalName string

      Internal name of the custom property group

    • values array of object

      List of values. Note that this will be a single value unless the group input type supports multiple values

      • id string · uuid

        Unique identifier for the object

      • groupId string · uuid

        ID of the custom property group

      • groupInternalName string

        Internal name of the custom property group

      • companyId string · uuid

        ID of the company

      • internalName string

        Internal name of the custom property value

      • label string

        Label of the custom property value

      • context string

        Context/description of the custom property value

      • createdAt string · date-time

        Timestamp when the custom property value was created

      • updatedAt string · date-time

        Timestamp when the custom property value was last updated