---
title: "Update Bill Status"
method: PUT
path: "/organizations/{orgId}/bills/{id}/status"
tags: ["Bill"]
---

# Update Bill Status

`PUT /organizations/{orgId}/bills/{id}/status`

Updates the status of a specified Bill with the given Bill ID. 

This endpoint allows you to transition a Bill's status through various stages, such as from "Pending" to "Approved".

## Path parameters

- `orgId` string, required
- `id` string, required

## Request body

- UpdateBillStatusRequest
  - `status` 'PENDING' | 'APPROVED', required — Indicates whether the Bill has passed human/manual approval. * **Pending** - Bill has not yet been passed by a human reviewer. * **Approved** - Bill has been approved after manual review.

## Response `200`

Returns the updated Bill

- BillResponse
  - `lineItems` BillLineItem[] — An array of the Bill line items.
    - `id` string — The UUID for the line item.
    - `productId` string — The UUID of the Product for the line item.
    - `productName` string — The name of the Product for the line item.
    - `productCode` string
    - `accountingProductId` string
    - `accountingProductName` string
    - `accountingProductCode` string
    - `aggregationId` string — The Aggregation ID used for the line item.
    - `compoundAggregationId` string — The Compound Aggregation ID for the line item if a Compound Aggregation has been used.
    - `counterId` string
    - `chargeId` string
    - `segment` object — Applies only when segmented Aggregations have been used. The Segment to which the usage data in this line item belongs.
    - `group` object
    - `meterId` string — The UUID of the Meter used in the line item.
    - `planId` string — The ID of the Plan used for the line item.
    - `planGroupId` string — The UUID of the PlanGroup, provided the line item used a PlanGroup.
    - `commitmentId` string — If Commitments *(prepayments)* are used in the line item, this shows the Commitment UUID.
    - `balanceId` string
    - `description` string, required — Line item description.
    - `quantity` number, required — The amount of usage for the line item.
    - `units` number, required — The number of units used for the line item.
    - `unit` string, required — The unit for the usage data in thie line item. For example: **GB** of disk storage space.
    - `subtotal` number, required — The subtotal amount for the line item, before any currency conversions.
    - `currency` string, required — The currency code for the currency used in the line item. For example: USD, GBP, or EUR.
    - `conversionRate` number, required — The currency conversion rate if currency conversion is required for the line item.
    - `convertedSubtotal` number, required — The converted subtotal amount if currency conversions have been used.
    - `creditTypeId` string
    - `lineItemType` 'STANDING_CHARGE' | 'USAGE' | 'COUNTER_RUNNING_TOTAL_CHARGE' | 'COUNTER_ADJUSTMENT_DEBIT' | 'COUNTER_ADJUSTMENT_CREDIT' | 'USAGE_CREDIT' | 'MINIMUM_SPEND' | 'MINIMUM_SPEND_REFUND' | 'CREDIT_DEDUCTION' | 'MANUAL_ADJUSTMENT' | 'CREDIT_MEMO' | 'DEBIT_MEMO' | 'COMMITMENT_CONSUMED' | 'COMMITMENT_FEE' | 'OVERAGE_SURCHARGE' | 'OVERAGE_USAGE' | 'BALANCE_CONSUMED' | 'BALANCE_FEE' | 'AD_HOC', required — See [Bill Line Item Types](https://www.m3ter.com/docs/guides/running-viewing-and-managing-bills/bill-line-item-types) for more information.
    - `pricingId` string — The UUID of the Pricing used on the line item.
    - `childAccountId` string — If part of a Parent/Child account billing hierarchy, this is the child Account UUID.
    - `childAccountCode` string — If part of a Parent/Child account billing hierarchy, this is the code for the child Account.
    - `usagePerPricingBand` BillLineItemPricingBandUsage[] — Shows the usage by pricing band for tiered pricing structures.
      - `pricingBandId` string — The UUID for the pricing band.
      - `lowerLimit` number, double — The lower limit *(start)* of the pricing band.
      - `fixedPrice` number — Fixed price is a charge entered for certain pricing types such as Stairstep, Custom Tiered, and Custom Volume. It is a set price and not dependent on usage.
      - `unitSubtotal` number — The subtotal of the unit usage.
      - `unitPrice` number — The price per unit in the band.
      - `bandUnits` number — The number of units used within the band.
      - `bandQuantity` number — Usage amount within the band.
      - `bandSubtotal` number — Subtotal amount for the band.
      - `creditTypeId` string — The UUID of the credit type.
      - `convertedBandSubtotal` number
    - `servicePeriodStartDate` string, date-time — The starting date *(inclusive)* for the service period *(in ISO 8601 format)*.
    - `servicePeriodEndDate` string, date-time — The ending date *(exclusive)* for the service period *(in ISO 8601 format)*.
    - `referencedBillId` string
    - `referencedLineItemId` string
    - `reasonId` string
    - `contractId` string — The UUID for the Contract used in the line item.
    - `averageUnitPrice` number, required — The average unit price across all tiers / pricing bands.
    - `sequenceNumber` integer — The number used for sequential invoices.
    - `additional` object
  - `purchaseOrderNumber` string — Purchase Order number linked to the Account the Bill is for.
  - `externalInvoiceReference` string — The reference ID to use for external invoice.
  - `externalInvoiceDate` string, date — For accounting purposes, the date set at Organization level to use for external invoicing with respect to billing periods - two options: * `FIRST_DAY_OF_NEXT_PERIOD` *(Default)*. * `LAST_DAY_OF_ARREARS` For example, if the retrieved Bill was on a monthly billing frequency and the billing period for the Bill is September 2023 and the *External invoice date* is set at `FIRST_DAY_OF_NEXT_PERIOD`, then the `externalInvoiceDate` will be `"2023-10-01"`. **NOTE:** To change the `externalInvoiceDate` setting for your Organization, you can use the [Update OrganizationConfig](https://www.m3ter.com/docs/api#tag/OrganizationConfig/operation/GetOrganizationConfig) call.
  - `jsonStatementGenerated` boolean — Flag to indicate that the statement in JSON format has been generated for the Bill. * **TRUE** - JSON statement has been generated. * **FALSE** - no JSON statement generated.
  - `csvStatementGenerated` boolean — Flag to indicate that the statement in CSV format has been generated for the Bill. * **TRUE** - CSV statement has been generated. * **FALSE** - no CSV statement generated.
  - `statementStale` boolean — True if the existing bill statement (JSON or CSV) is marked as stale/outdated.
  - `billTotal` number — The sum total for the Bill.
  - `sequentialInvoiceNumber` string — The sequential invoice number of the Bill. **NOTE:** If you have not defined a `billPrefix` for your Organization, a `sequentialInvoiceNumber` is not returned in the response. See [Update OrganizationConfig](https://www.m3ter.com/docs/api#tag/OrganizationConfig/operation/UpdateOrganizationConfig)
  - `dtCreated` string, date-time — The date and time *(in ISO 8601 format)* when the Bill was first created.
  - `dtLastModified` string, date-time — The date and time *(in ISO 8601 format)* when the Bill was last modified.
  - `createdBy` string — The unique identifier (UUID) for the user who created the Bill.
  - `lastModifiedBy` string — The unique identifier (UUID) for the user who last modified this Bill.
  - `dtApproved` string, date-time — The DateTime when the bill was approved.
  - `approvedBy` string — The id of the user who approved this bill.
  - `dtLocked` string, date-time — The DateTime when the bill was locked.
  - `lockedBy` string — The id of the user who locked this bill.
  - `id` string, required — The UUID of the entity.
  - `version` integer — The version number: - **Create:** On initial Create to insert a new entity, the version is set at 1 in the response. - **Update:** On successful Update, the version is incremented by 1 in the response.
  - `accountId` string
  - `accountCode` string
  - `startDate` string, date
  - `endDate` string, date
  - `startDateTimeUTC` string, date-time
  - `endDateTimeUTC` string, date-time
  - `billDate` string, date
  - `dueDate` string, date
  - `billingFrequency` 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'ANNUALLY' | 'AD_HOC' | 'MIXED' — Defines how often Bills are generated. * **Daily**. Starting at midnight each day, covering a twenty-four hour period following. * **Weekly**. Starting at midnight on a Monday morning covering the seven-day period following. * **Monthly**. Starting at midnight on the morning of the first day of each month covering the entire calendar month following. * **Annually**. Starting at midnight on the morning of the first day of each year covering the entire calendar year following. * **Ad_Hoc**. Use this setting when a custom billing schedule is used for billing an Account, such as for billing of Prepayment/Commitment fees using a custom billing schedule.
  - `billFrequencyInterval` integer
  - `timezone` string
  - `currency` string
  - `locked` boolean
  - `createdDate` string, date-time
  - `status` 'PENDING' | 'APPROVED' — Indicates whether the Bill has passed human/manual approval. * **Pending** - Bill has not yet been passed by a human reviewer. * **Approved** - Bill has been approved after manual review.
  - `billJobId` string
  - `currencyConversions` CurrencyConversion[]
    - `from` string, required — Currency to convert from. For example: GBP.
    - `to` string, required — Currency to convert to. For example: USD.
    - `multiplier` number, double — Conversion rate between currencies.
  - `lastCalculatedDate` string, date-time

## Other responses

- `4XX` — Error message
- `5XX` — Error message

---

[API](https://skmtc.net/m3ter-com/apis/m3ter-api.md) · [All operations](https://skmtc.net/m3ter-com/apis/m3ter-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/m3ter-com/m3ter-api/versions/ac93d1a9e6d9/schema)
