---
title: "Updates a credit memo"
method: PUT
path: "/credit-memos/{credit_memo_id}"
tags: ["Credit Memos"]
---

# Updates a credit memo

`PUT /credit-memos/{credit_memo_id}`

## Request

- Base URL: `https://api.rillet.com`
- URL: `https://api.rillet.com/credit-memos/{credit_memo_id}`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/rillet/apis/rillet-accounting-api/docs/credit-memos/:credit_memo_id/put.ts> (a function with typed inputs; its response is checked against the schema)

IMPORTANT: This is a full-replace operation (PUT semantics). All fields must be
included in the request body — omitting any field will set it to null, wiping
existing data. Always call retrieve-a-credit-memo first to fetch the current record,
then include ALL existing fields in your update request along with your changes.

## Path parameters

- `credit_memo_id` string, required

## Request body

- UpdateCreditMemoRequest
  - `items` CreateCreditMemoItemRequest[], required
    - `description` string, required
    - `price` CreditMemoItemPriceRequest, required
      - `product_id` string, uuid, required
      - `quantity` number, required
      - `amount_per_unit` MonetaryAmount, required
        - `amount` string, required: Monetary amount in decimal format, using a period (.) as the decimal separator. (e.g. '1.01' in $ currency represents 1$ and 1 cent.)
        - `currency` string, required: Currency code following ISO-4217
    - `revenue` ItemRevenue
      - `period` CalendarPeriod
        - `start` string, date, required
        - `end` string, date, required
      - `pattern` 'DAILY' | 'EVEN_PERIOD' | 'PROGRESS': DAILY divides revenue equally per day. EVEN_PERIOD divides revenue equally per calendar month. PROGRESS uses a progress plan; the supported measure MILESTONES recognizes allocated revenue on milestone completion and requires a one-time price. FULL contract creation supports an explicit progress plan or snapshots the referenced product's template. Existing non-progress behavior is unchanged.
      - `account_code` string: The account code found in the Chart of Accounts
    - `tax_rate` TaxRateWithOptionalAmountAndCode
      - `percentage` string, number, required
      - `tax_amount` RoundedMonetaryAmount: A monetary amount that must be rounded to the currency's default decimal places (e.g., 2 decimal places for USD).
        - `amount` string, required: Monetary amount in decimal format, using a period (.) as the decimal separator. Must be rounded to the currency's default decimal places (e.g. '1.01' in USD represents 1 dollar and 1 cent).
        - `currency` string, required: Currency code following ISO-4217
      - `country` string, required: Two-letter country code (ISO 3166-1 alpha-2).
      - `type` 'VAT' | 'SALES_TAX', required
      - `description` string, required
    - `fields` object[]
      - `field_id` string, uuid, required
      - `field_value_id` string, uuid, required
  - `credit_memo_date` string, date, required
  - `external_references` ExternalReference[]
    - `type` string, required
    - `id` string, required
    - `url` string, uri

## Response `200`

OK

- CreditMemo
  - `id` string, uuid, required
  - `subsidiary_id` string, uuid, required
  - `credit_memo_number` string, required
  - `customer_id` string, uuid, required
  - `items` CreditMemoItem[], required
    - `id` string, uuid, required
    - `description` string, required
    - `revenue` ItemRevenue, required
      - `period` CalendarPeriod
        - `start` string, date, required
        - `end` string, date, required
      - `pattern` 'DAILY' | 'EVEN_PERIOD' | 'PROGRESS': DAILY divides revenue equally per day. EVEN_PERIOD divides revenue equally per calendar month. PROGRESS uses a progress plan; the supported measure MILESTONES recognizes allocated revenue on milestone completion and requires a one-time price. FULL contract creation supports an explicit progress plan or snapshots the referenced product's template. Existing non-progress behavior is unchanged.
      - `account_code` string: The account code found in the Chart of Accounts
    - `total_amount` RoundedMonetaryAmount, required: A monetary amount that must be rounded to the currency's default decimal places (e.g., 2 decimal places for USD).
      - `amount` string, required: Monetary amount in decimal format, using a period (.) as the decimal separator. Must be rounded to the currency's default decimal places (e.g. '1.01' in USD represents 1 dollar and 1 cent).
      - `currency` string, required: Currency code following ISO-4217
    - `taxed_amount` RoundedMonetaryAmount: A monetary amount that must be rounded to the currency's default decimal places (e.g., 2 decimal places for USD).
      - `amount` string, required: Monetary amount in decimal format, using a period (.) as the decimal separator. Must be rounded to the currency's default decimal places (e.g. '1.01' in USD represents 1 dollar and 1 cent).
      - `currency` string, required: Currency code following ISO-4217
    - `net_amount` RoundedMonetaryAmount, required: A monetary amount that must be rounded to the currency's default decimal places (e.g., 2 decimal places for USD).
      - `amount` string, required: Monetary amount in decimal format, using a period (.) as the decimal separator. Must be rounded to the currency's default decimal places (e.g. '1.01' in USD represents 1 dollar and 1 cent).
      - `currency` string, required: Currency code following ISO-4217
    - `quantity` string, number, required
    - `product_id` string, uuid, required
    - `fields` object[]
      - `field_id` string, uuid, required
      - `field_value_id` string, uuid, required
  - `credit_memo_date` string, date, required
  - `address` Address, required
    - `line1` string, required
    - `line2` string, nullable
    - `city` string, required
    - `state` string, nullable: State or province code. Required for United States addresses and optional where it does not apply.
    - `zip_code` string, required
    - `country` string, required: Two-letter country code (ISO 3166-1 alpha-2).
  - `status` 'UNAPPLIED' | 'PARTIALLY_APPLIED' | 'APPLIED' | 'REFUNDED', required
  - `net_amount` RoundedMonetaryAmount, required: A monetary amount that must be rounded to the currency's default decimal places (e.g., 2 decimal places for USD).
    - `amount` string, required: Monetary amount in decimal format, using a period (.) as the decimal separator. Must be rounded to the currency's default decimal places (e.g. '1.01' in USD represents 1 dollar and 1 cent).
    - `currency` string, required: Currency code following ISO-4217
  - `total` RoundedMonetaryAmount, required: A monetary amount that must be rounded to the currency's default decimal places (e.g., 2 decimal places for USD).
    - `amount` string, required: Monetary amount in decimal format, using a period (.) as the decimal separator. Must be rounded to the currency's default decimal places (e.g. '1.01' in USD represents 1 dollar and 1 cent).
    - `currency` string, required: Currency code following ISO-4217
  - `applied_amount` RoundedMonetaryAmount, required: A monetary amount that must be rounded to the currency's default decimal places (e.g., 2 decimal places for USD).
    - `amount` string, required: Monetary amount in decimal format, using a period (.) as the decimal separator. Must be rounded to the currency's default decimal places (e.g. '1.01' in USD represents 1 dollar and 1 cent).
    - `currency` string, required: Currency code following ISO-4217
  - `remaining_amount` RoundedMonetaryAmount, required: A monetary amount that must be rounded to the currency's default decimal places (e.g., 2 decimal places for USD).
    - `amount` string, required: Monetary amount in decimal format, using a period (.) as the decimal separator. Must be rounded to the currency's default decimal places (e.g. '1.01' in USD represents 1 dollar and 1 cent).
    - `currency` string, required: Currency code following ISO-4217
  - `applications` CreditMemoApplication[], required
    - `id` string, uuid, required
    - `credit_memo_id` string, uuid, required
    - `invoice_id` string, uuid, required
    - `invoice_number` string
    - `amount` RoundedMonetaryAmount, required: A monetary amount that must be rounded to the currency's default decimal places (e.g., 2 decimal places for USD).
      - `amount` string, required: Monetary amount in decimal format, using a period (.) as the decimal separator. Must be rounded to the currency's default decimal places (e.g. '1.01' in USD represents 1 dollar and 1 cent).
      - `currency` string, required: Currency code following ISO-4217
    - `application_date` string, date, required
  - `exchange_rate` ExchangeRate
    - `base` string, required: Currency code following ISO-4217
    - `target` string, required: Currency code following ISO-4217
    - `rate` string, required
    - `date` string, date, required
  - `taxed_amount` RoundedMonetaryAmount, required: A monetary amount that must be rounded to the currency's default decimal places (e.g., 2 decimal places for USD).
    - `amount` string, required: Monetary amount in decimal format, using a period (.) as the decimal separator. Must be rounded to the currency's default decimal places (e.g. '1.01' in USD represents 1 dollar and 1 cent).
    - `currency` string, required: Currency code following ISO-4217
  - `external_references` ExternalReference[]
    - `type` string, required
    - `id` string, required
    - `url` string, uri
  - `updated_at` string, date-time, required: ISO 8601 timestamp in UTC timezone (must end with 'Z')

## Other responses

- `default`: Error

## Changes

- **2026-11-03** `c393d0102005`: 6 breaking, 6 warning, 2 info
  - added `#/components/schemas/TaxRateWithOptionalAmount` to the `items/items/tax_rate` request property `allOf` list
  - the `items/items/tax_rate` request property type changed from `object` to no type
  - the response property `address/line2` became nullable for the status `200`
  - the response property `address/state` became nullable for the status `200`
  - …10 more

[Operation history](https://skmtc.dev/rillet/apis/rillet-accounting-api/changes/credit-memos/:credit_memo_id/put.md)

---

[API](https://skmtc.dev/rillet/apis/rillet-accounting-api.md) - [All operations](https://skmtc.dev/rillet/apis/rillet-accounting-api/llms.txt) - [OpenAPI document](https://skmtc.dev/rillet/apis/rillet-accounting-api/revisions/c393d0102005?raw)
