> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bizzyco.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create invoice line item

> Add a line item to a draft invoice.



## OpenAPI

````yaml /api-reference/openapi.json post /v1/invoices/{id}/line-items
openapi: 3.1.0
info:
  title: Bizzy API
  version: 1.0.0
  description: Bizzy API for managing businesses, customers, contacts, and more.
servers:
  - url: https://api.bizzyco.ai
    description: Production
security: []
tags:
  - name: Automations
    description: Manage workflow automation rules
    x-group: Automations
  - name: Automation Executions
    description: View automation execution history
    x-group: Automations
  - name: Businesses
    description: Manage business profiles
    x-group: Businesses
  - name: Business Offerings
    description: Manage products and services offered by businesses
    x-group: Businesses
  - name: Business Online Presences
    description: Manage websites and social media links
    x-group: Businesses
  - name: Business Physical Presences
    description: Manage physical locations and addresses
    x-group: Businesses
  - name: Business Profile
    description: View and update business profile details
    x-group: Businesses
  - name: Contacts
    description: Manage contact records
    x-group: Contacts
  - name: Contact Addresses
    description: Manage mailing addresses for contacts
    x-group: Contacts
  - name: Contact Emails
    description: Manage email addresses for contacts
    x-group: Contacts
  - name: Contact Phone Numbers
    description: Manage phone numbers for contacts
    x-group: Contacts
  - name: Customers
    description: Manage customer records
    x-group: Customers
  - name: Customer Transactions
    description: View customer transaction history
    x-group: Customers
  - name: Domains
    description: Manage domain names
    x-group: Domains
  - name: Domain Contacts
    description: Manage contacts associated with domains
    x-group: Domains
  - name: Domain Registrations
    description: Manage domain registration records
    x-group: Domains
  - name: Email Templates
    description: Manage reusable email templates
    x-group: Email Templates
  - name: Files
    description: Manage file uploads and downloads
    x-group: Files
  - name: File Access Links
    description: Manage shareable file access links
    x-group: Files
  - name: Folders
    description: Organize files into folders
    x-group: Files
  - name: Messages
    description: Manage email messages
    x-group: Messages
  - name: Message Attachments
    description: Access message file attachments
    x-group: Messages
  - name: Message Contacts
    description: View contacts associated with messages
    x-group: Messages
  - name: Tasks
    description: Manage task records
    x-group: Tasks
  - name: Task Assignees
    description: Manage user assignments to tasks
    x-group: Tasks
  - name: Task Activity
    description: View task activity and change history
    x-group: Tasks
paths:
  /v1/invoices/{id}/line-items:
    post:
      tags:
        - Invoice Line Items
      summary: Create invoice line item
      description: Add a line item to a draft invoice.
      operationId: createInvoiceLineItem
      parameters:
        - schema:
            type: string
            format: uuid
            description: Invoice UUID
            example: 123e4567-e89b-12d3-a456-426614174000
          required: true
          description: Invoice UUID
          name: id
          in: path
        - schema:
            type: string
            minLength: 1
            maxLength: 255
            description: >-
              Key that makes this request safe to retry. Reuse the same value
              when retrying a request that may already have succeeded — the
              original response is replayed with an `Idempotency-Replay: true`
              header. Use a new value for a new operation.
            example: 9f8c2b1a-4d3e-4a6b-8c1d-2e3f4a5b6c7d
          required: false
          description: >-
            Key that makes this request safe to retry. Reuse the same value when
            retrying a request that may already have succeeded — the original
            response is replayed with an `Idempotency-Replay: true` header. Use
            a new value for a new operation.
          name: idempotency-key
          in: header
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InvoiceLineItemCreate'
      responses:
        '201':
          description: Invoice line item created successfully
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Maximum burst of requests the tier allows per minute
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests remaining in the current window after this request
            X-RateLimit-Reset:
              schema:
                type: integer
              description: Seconds until the allowance is fully replenished
            Idempotency-Replay:
              schema:
                type: boolean
              description: >-
                Present and `true` when this response is a replay of an earlier
                request with the same Idempotency-Key
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/InvoiceLineItem'
                  meta:
                    type: object
                    properties:
                      pagination:
                        type: object
                        properties:
                          total:
                            type: number
                          limit:
                            type: number
                          offset:
                            type: number
                          hasMore:
                            type: boolean
                        required:
                          - limit
                          - offset
                          - hasMore
                required:
                  - data
        '400':
          description: Invalid input
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: Insufficient permissions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: Resource not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '409':
          description: >-
            The invoice is no longer editable (error code INVOICE_NOT_EDITABLE),
            or a request with the same Idempotency-Key is still in progress
            (error code IDEMPOTENCY_KEY_IN_FLIGHT)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '422':
          description: >-
            This Idempotency-Key was already used for a different request (error
            code IDEMPOTENCY_KEY_REUSED)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: Rate limit exceeded for the account tier (error code RATE_LIMITED)
          headers:
            X-RateLimit-Limit:
              schema:
                type: integer
              description: Maximum burst of requests the tier allows per minute
            X-RateLimit-Remaining:
              schema:
                type: integer
              description: Requests remaining in the current window after this request
            X-RateLimit-Reset:
              schema:
                type: integer
              description: Seconds until the allowance is fully replenished
            Retry-After:
              schema:
                type: integer
              description: Seconds to wait before the next request will be accepted
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      security:
        - bearerAuth: []
components:
  schemas:
    InvoiceLineItemCreate:
      type: object
      properties:
        description:
          type: string
          minLength: 1
        quantity:
          type: string
          pattern: ^-?(?!0{1,9}(?:\.0{1,4})?$)\d{1,9}(?:\.\d{1,4})?$
        unitAmountCents:
          type: integer
          minimum: -2147483648
          maximum: 2147483647
        position:
          type: integer
          minimum: 0
          maximum: 2147483647
          description: >-
            Zero-based display position. A position after the current end
            appends the line item.
      required:
        - description
        - quantity
        - unitAmountCents
      additionalProperties: false
    InvoiceLineItem:
      type: object
      properties:
        id:
          type: string
          format: uuid
        createdAt:
          type: string
          format: date-time
        updatedAt:
          type: string
          format: date-time
        deletedAt:
          type:
            - string
            - 'null'
          format: date-time
        organizationId:
          type: string
          format: uuid
        invoiceId:
          type: string
          format: uuid
        description:
          type: string
        quantity:
          type: string
        unitAmountCents:
          type: integer
        amountCents:
          type: integer
        currency:
          type: string
        position:
          type: integer
          minimum: 0
          maximum: 2147483647
      required:
        - id
        - createdAt
        - updatedAt
        - deletedAt
        - organizationId
        - invoiceId
        - description
        - quantity
        - unitAmountCents
        - amountCents
        - currency
        - position
    ApiError:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
            code:
              type: string
            details: {}
          required:
            - message
            - code
      required:
        - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key authentication via Bearer token

````