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

# Create Term

> Step 1 of the bill-run flow. Creates a billing term (period) for a pricing template and batch. The `termID` returned from Get Terms is required for all subsequent steps.



## OpenAPI

````yaml POST /billspree/terms/make-term
openapi: 3.1.0
info:
  title: Billspree API
  description: REST API for Billspree — billing, AR management, and workspace operations.
  version: 1.0.0
servers:
  - url: https://{workspace}.spreesuite.com
    variables:
      workspace:
        default: your-workspace
        description: Your organization's subdomain (e.g. demo → demo.spreesuite.com)
security:
  - apiKeyAuth: []
paths:
  /billspree/terms/make-term:
    post:
      tags:
        - Bill Run
      summary: Create Term
      description: >-
        Step 1 of the bill-run flow. Creates a billing term (period) for a
        pricing template and batch. The `termID` returned from Get Terms is
        required for all subsequent steps.
      operationId: makeTerm
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTermRequest'
            example:
              method: Create
              action: Create Bill Term
              apiVersion: v2
              operation: schedule
              data:
                serviceCode: DEMO-001
                batchCode: BATCH-001
                billingPeriodID: 1
                label: JUNE2026
                startDate: 01/06/2026
                endDate: 30/06/2026
                dueDate: 10/07/2026
                postType: Post Subscription
      responses:
        '200':
          description: Term created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericSuccessResponse'
              example:
                success: true
                statusCode: 200
                message: Request Succeeded.
                error: null
                data: {}
components:
  schemas:
    CreateTermRequest:
      type: object
      required:
        - method
        - action
        - apiVersion
        - operation
        - data
      properties:
        method:
          type: string
          description: Always `"Create"`
          example: Create
        action:
          type: string
          description: Always `"Create Bill Term"`
          example: Create Bill Term
        apiVersion:
          type: string
          example: v2
        operation:
          type: string
          description: Always `"schedule"`
          example: schedule
        data:
          type: object
          required:
            - label
            - startDate
            - endDate
            - dueDate
            - postType
          properties:
            serviceCode:
              type: string
              description: >-
                Pricing template code — omit only when using `billingPeriodID`
                alone
            batchCode:
              type: string
              description: Batch code — omit only when using `billingPeriodID` alone
            billingPeriodID:
              type: integer
              nullable: true
              description: >-
                If set and `serviceCode`/`batchCode` are omitted, term is
                created from the billing schedule
            label:
              type: string
              description: >-
                Term label — no spaces, min 5 characters. Used to identify the
                term (e.g. `"JUNE2026"`)
            startDate:
              type: string
              description: Period start in `dd/mm/yyyy`
            endDate:
              type: string
              description: Period end in `dd/mm/yyyy`
            dueDate:
              type: string
              description: Payment due date in `dd/mm/yyyy`
            postType:
              type: string
              description: '`"Post Subscription"` or `"Post Batch"`'
    GenericSuccessResponse:
      type: object
      properties:
        success:
          type: boolean
        statusCode:
          type: integer
        message:
          type: string
        error:
          nullable: true
        data:
          type: object
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: >-
        Auth token returned from the login endpoint. Send as: `Authorization:
        <token>` (no Bearer prefix)

````