---
title: "Update existing bill."
method: PUT
path: "/v1/bills/{id}"
tags: ["bills"]
---

# Update existing bill.

`PUT /v1/bills/{id}`

## Request

- Base URL: `https://demo.firefly-iii.org/api`
- URL: `https://demo.firefly-iii.org/api/v1/bills/{id}`
- Auth: one of:
  - OAuth 2
    - Authorization code: `https://demo.firefly-iii.org/oauth/authorize`
    - Token URL: `https://demo.firefly-iii.org/oauth/token`
  - HTTP bearer

Update existing bill.

## Path parameters

- `id` string, required

## Headers

- `X-Trace-Id` string, uuid

## Request body

- BillUpdate
  - `currency_id` string, string: Use either currency_id or currency_code
  - `currency_code` string, string: Use either currency_id or currency_code
  - `name` string, string, required
  - `amount_min` string, amount
  - `amount_max` string, amount
  - `date` string, date-time
  - `end_date` string, date-time: The date after which this bill is no longer valid or applicable
  - `extension_date` string, date-time: The date before which the bill must be renewed (or cancelled)
  - `repeat_freq` 'weekly' | 'monthly' | 'quarterly' | 'half-year' | 'yearly', string: How often the bill must be paid.
  - `skip` integer: How often the bill must be skipped. 1 means a bi-monthly bill.
  - `active` boolean: If the bill is active.
  - `notes` string, string, nullable
  - `object_group_id` string, string, nullable: The group ID of the group this object is part of. NULL if no group.
  - `object_group_title` string, string, nullable: The name of the group. NULL if no group.

## Response `200`

Updated bill stored, result in response

- BillSingle
  - `data` BillRead, required
    - `type` string, string, required: Immutable value
    - `id` string, string, required
    - `attributes` BillProperties, required
      - `created_at` string, date-time
      - `updated_at` string, date-time
      - `name` string, string: The name of the subscription.
      - `object_has_currency_setting` boolean: Indicates whether the object has a currency setting. If false, the object uses the administration's primary currency.
      - `currency_id` string, string: The currency ID of the currency associated with this object.
      - `currency_name` string, string: The currency name of the currency associated with this object.
      - `currency_code` string, string: The currency code of the currency associated with this object.
      - `currency_symbol` string, string
      - `currency_decimal_places` integer
      - `primary_currency_id` string, string: The currency ID of the administration's primary currency.
      - `primary_currency_name` string, string: The currency name of the administration's primary currency.
      - `primary_currency_code` string, string: The currency code of the administration's primary currency.
      - `primary_currency_symbol` string, string: The currency symbol of the administration's primary currency.
      - `primary_currency_decimal_places` integer: The currency decimal places of the administration's primary currency.
      - `amount_min` string, amount: The minimum amount that is expected for this subscription in the subscription's currency.
      - `pc_amount_min` string, amount: The minimum amount that is expected for this subscription in the administration's primary currency.
      - `amount_max` string, amount: The maximum amount that is expected for this subscription in the subscription's currency.
      - `pc_amount_max` string, amount: The maximum amount that is expected for this subscription in the administration's primary currency.
      - `amount_avg` string, amount: The average amount that is expected for this subscription in the subscription's currency.
      - `pc_amount_avg` string, amount: The average amount that is expected for this subscription in the administration's primary currency.
      - `date` string, date-time
      - `end_date` string, date-time, nullable: The date after which this subscription is no longer valid or applicable
      - `extension_date` string, date-time, nullable: The date before which the subscription must be renewed (or cancelled)
      - `repeat_freq` 'weekly' | 'monthly' | 'quarterly' | 'half-year' | 'yearly', string: How often the bill must be paid.
      - `skip` integer: How often the subscription will be skipped. 1 means a bi-monthly subscription.
      - `active` boolean: If the subscription is active.
      - `order` integer: Order of the subscription.
      - `notes` string, string, nullable
      - `object_group_id` string, string, nullable: The group ID of the group this object is part of. NULL if no group.
      - `object_group_order` integer, nullable: The order of the group. At least 1, for the highest sorting.
      - `object_group_title` string, string, nullable: The name of the group. NULL if no group.
      - `paid_dates` object[]: Array of past transactions when the subscription was paid.
        - `transaction_group_id` string, string: Transaction group ID of the transaction linked to this subscription.
        - `transaction_journal_id` string, string: Transaction journal ID of the transaction linked to this subscription.
        - `date` string, date-time: Date the bill was paid.
        - `subscription_id` string, string: ID of this subscription.
        - `currency_id` string, string: The currency ID of the currency associated with this object.
        - `currency_name` string, string: The currency name of the currency associated with this object.
        - `currency_code` string, string: The currency code of the currency associated with this object.
        - `currency_symbol` string, string
        - `currency_decimal_places` integer
        - `primary_currency_id` string, string: The currency ID of the administration's primary currency.
        - `primary_currency_name` string, string: The currency name of the administration's primary currency.
        - `primary_currency_code` string, string: The currency code of the administration's primary currency.
        - `primary_currency_symbol` string, string: The currency symbol of the administration's primary currency.
        - `primary_currency_decimal_places` integer: The currency decimal places of the administration's primary currency.
        - `amount` string, amount: The amount that was paid for this subscription in the subscription's currency.
        - `pc_amount` string, amount: The amount that was paid for this subscription in the administration's primary currency.
        - `foreign_amount` string, amount: The foreign amount that was paid for this subscription in the subscription's currency.
        - `pc_foreign_amount` string, amount: The foreign amount that was paid for this subscription in the administration's primary currency.
      - `pay_dates` string[]: Array of future dates when the bill is expected to be paid. Autogenerated.
      - `next_expected_match` string, date-time, nullable: When the subscription is expected to be due.
      - `next_expected_match_diff` string, string, nullable: Formatted (locally) when the subscription is due.

## Other responses

- `400`: Bad request
- `401`: Unauthenticated
- `404`: Page not found
- `422`: Validation error. The body will have the exact details.
- `500`: Internal exception

---

[API](https://skmtc.dev/firefly-iii/apis/firefly-iii-api-v6-4-14.md) - [All operations](https://skmtc.dev/firefly-iii/apis/firefly-iii-api-v6-4-14/llms.txt) - [OpenAPI document](https://skmtc.dev/firefly-iii/apis/firefly-iii-api-v6-4-14/revisions/73f0baf3c408?raw)
