---
title: "Creating one or many Billing Milestones"
method: POST
path: "/billing_milestones"
tags: ["Billing Milestones"]
---

# Creating one or many Billing Milestones

`POST /billing_milestones`

## Request

- Base URL: `https://api.mavenlink.com/api/v1`
- URL: `https://api.mavenlink.com/api/v1/billing_milestones`
- Auth: none declared

Add a billing milestone to your Billing Schedule. Up to 100 billing milestones can be created in one request.

This endpoint returns structured Billing Milestones objects.
As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array
and will be indexed by ID in the `billing_milestones` top-level JSON key.
Please see our [Response Format](#section/Response-Format) section for more information.

## Query parameters

- `include` string

## Request body

- object
  - `billing_milestone` object
    - `title` string, required: The title of the billing milestone.
    - `amount_in_cents` integer, required: The billing milestone amount, in the subunits of the currency (e.g. cents for USD). Values can also be negative (e.g. `-10000`).
    - `date_to_invoice` string, date: The date that the billing milestone becomes invoiceable. The date must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.
    - `workspace_id` integer, required: The ID of the workspace associated with the billing milestone.
    - `story_id` integer: The ID of the story associated with the billing milestone. This field is required when the `billing_type` is set to `upon_completion`.
    - `billing_type` string: The billing type of the milestone. Can be 'fixed_date' or 'upon_completion'.
    - `external_reference` object: Typically populated programmatically by a third party system via an integration, this is an optional object that holds data from an external system. It connects objects in an external system with objects in Kantata OX (for example, to connect a Jira issue to a Kantata OX Project).
      - `service_name` string, required: The provider name of the integration. If you are adding multiple external references to the same object, the `service_name` must be unique.
      - `service_model` string, required: The object type of the external object this external reference belongs to.
      - `service_model_ref` string, required: The object ID of the external object this external reference belongs to.
      - `status` string: The status of the integration. Options are `successful`, `pending`, or `failed`.
      - `external_message` string: The message on the external object.
      - `external_link` string: The link to the external object.
      - `external_status` string: The status of the external object in the external system.
      - `locked` boolean: Whether the subject is locked.
  - `billing_milestones` object[]: Add multiple billing milestones and their attributes in an array.
    - `title` string, required: The title of the billing milestone.
    - `amount_in_cents` integer, required: The billing milestone amount, in the subunits of the currency (e.g. cents for USD). Values can also be negative (e.g. `-10000`).
    - `date_to_invoice` string, date: The date that the billing milestone becomes invoiceable. The date must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.
    - `workspace_id` integer, required: The ID of the workspace associated with the billing milestone.
    - `story_id` integer: The ID of the story associated with the billing milestone. This field is required when the `billing_type` is set to `upon_completion`.
    - `billing_type` string: The billing type of the milestone. Can be 'fixed_date' or 'upon_completion'.
    - `external_reference` object: Typically populated programmatically by a third party system via an integration, this is an optional object that holds data from an external system. It connects objects in an external system with objects in Kantata OX (for example, to connect a Jira issue to a Kantata OX Project).
      - `service_name` string, required: The provider name of the integration. If you are adding multiple external references to the same object, the `service_name` must be unique.
      - `service_model` string, required: The object type of the external object this external reference belongs to.
      - `service_model_ref` string, required: The object ID of the external object this external reference belongs to.
      - `status` string: The status of the integration. Options are `successful`, `pending`, or `failed`.
      - `external_message` string: The message on the external object.
      - `external_link` string: The link to the external object.
      - `external_status` string: The status of the external object in the external system.
      - `locked` boolean: Whether the subject is locked.

## Response `200`

Billing Milestones has been created.

- object
  - `count` integer
  - `meta` object
    - `count` integer
    - `page_count` integer
    - `page_number` integer
    - `page_size` integer
  - `results` object[]
    - `key` string
    - `id` string
  - `billing_milestones` object
  - `external_references` object
  - `workspaces` object
  - `stories` object
  - `invoices` object

## Other responses

- `400`: Bad Request
- `401`: Unauthorized request
- `403`: Forbidden request
- `404`: Page Not Found
- `422`: Unprocessable Entity
- `503`: Service is unavailable

---

[API](https://skmtc.dev/kantata/apis/kantata-ox-api-documentation.md) - [All operations](https://skmtc.dev/kantata/apis/kantata-ox-api-documentation/llms.txt) - [OpenAPI document](https://skmtc.dev/kantata/apis/kantata-ox-api-documentation/revisions/9d4ebed2fa98?raw)
