Light APIv1.0.0

API / Reference / Products

Create product

POST https://api.light.inc/v1/products

Creates a new product

name must be unique among catalogue products of the company, case-sensitively, and an archived product still holds its name (PRODUCT_NAME_CONFLICT, returned as 400). pricings needs at least one entry and at most one per currency; amounts are in minor units of that currency. defaultTaxId and defaultLedgerAccountId must exist (PRODUCT_TAX_NOT_FOUND, PRODUCT_LEDGER_ACCOUNT_NOT_FOUND). The default tax is only applied to invoice lines when Light's own tax engine is in force.

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

Headers

  • X-Idempotency-Key string

Request body

application/json;charset=UTF-8

  • name string

  • pricingType string

    • FIXED - The product has a single price per unit
    • PACKAGE - The product is sold in packages with a fixed quantity

    ⚠️ This enum is not exhaustive; new values may be added in the future.

    One of FIXED PACKAGE

  • billingRecurrence string

    • ONE_TIME - The product is billed once
    • MONTHLY - The product is billed every month
    • QUARTERLY - The product is billed every three months
    • HALF_YEARLY - The product is billed every six months
    • YEARLY - The product is billed every year

    ⚠️ This enum is not exhaustive; new values may be added in the future.

    One of ONE_TIME MONTHLY QUARTERLY HALF_YEARLY YEARLY

  • pricings array of object

    • currency string

    • amount integer · int64

      Price in cents

  • defaultAvataxCode string

  • defaultTaxId string · uuid

  • defaultLedgerAccountId string · uuid

  • 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

    Unique identifier for the object

  • companyId string · uuid

    ID of the company

  • name string

    Name of the product

  • pricingType string

    Pricing type of the product

    • FIXED - The product has a single price per unit
    • PACKAGE - The product is sold in packages with a fixed quantity

    ⚠️ This enum is not exhaustive; new values may be added in the future.

    One of FIXED PACKAGE

  • billingRecurrence string

    Billing frequency for the product. Used in contracts

    • ONE_TIME - The product is billed once
    • MONTHLY - The product is billed every month
    • QUARTERLY - The product is billed every three months
    • HALF_YEARLY - The product is billed every six months
    • YEARLY - The product is billed every year

    ⚠️ This enum is not exhaustive; new values may be added in the future.

    One of ONE_TIME MONTHLY QUARTERLY HALF_YEARLY YEARLY

  • pricings array of object

    List of product price per currency

    • currency string

    • amount integer · int64

      Price in cents

  • state string

    Product state

    • ACTIVE - The product is active and can be used in invoices and contracts
    • ARCHIVED - The product is archived and cannot be used in new invoices or contracts

    ⚠️ This enum is not exhaustive; new values may be added in the future.

    One of ACTIVE ARCHIVED

  • defaultTaxId string · uuid

    ID of the default tax code for this product. Will be assigned to invoice lines when creating a line with this product

  • defaultAvataxCode string

    Default Avalara tax code. Used when the invoice tax engine is AVATAX. Will be assigned to invoice lines when creating a line with this product

  • defaultLedgerAccountId string · uuid

    ID of the default ledger account for this product. Will be assigned to invoice lines when creating a line with this product

  • externalSource object

    The external system where this product was synced from

    • name string

      The name of the external source

      • CHARGEBEE - Data synced from Chargebee
      • HUBSPOT - Data synced from HubSpot
      • SALESFORCE - Data synced from Salesforce
      • STRIPE - Data synced from Stripe

      ⚠️ This enum is not exhaustive; new values may be added in the future.

      One of CHARGEBEE HUBSPOT SALESFORCE STRIPE

    • externalId string

      The ID of the object in the external source system

  • createdAt string · date-time

    Timestamp when the product was created

  • updatedAt string · date-time

    Timestamp when the product was last updated

  • customProperties array of object

    List of custom properties associated with the product

    • 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