# Retrieve credit memos

Retrieves a list of credit memos.

Endpoint: GET /credit-memos
Version: latest
Security: SecretApiKey, JWT, ApplicationJWT

## Query parameters

- `filter` (string)
  Criteria for filtering collection items. This field requires a special format. Use `,` to specify multiple allowed values. Use `;` to specify multiple fields. For more information, see [Search filters](https://www.rebilly.com/docs/dev-docs/search-filters).
- `sort` (array)
  Sorts and orders the collection of items. To sort in descending order, prefix with `-`. Multiple fields can be sorted by separating each with `,`.
- `limit` (integer)
  Limit the number of collection items to be returned. Use `0` to return an empty collection and still receive the count of matching items in `Pagination-Total`.
- `offset` (integer)
  Specifies the starting point within the collection of items to be returned.
- `q` (string)
  Use this field to perform a partial search of text fields.
- `expand` (string)
  Expands a request to include embedded objects within the `_embedded` property of the response. This field accepts a comma-separated list of objects. For more information, see [Embedded resources](https://www.rebilly.com/docs/dev-docs/expand-embedded-resources).

## Response 200 fields

- `id` (string)
  ID of the credit memo.
  Example: crmm_0YVCNN22TWC3G8H82QNPNVZCHG
- `number` (integer)
  Auto-incrementing number based on the sequence of credit memos for any particular customer.
- `allocations` (object)
  Allocations reduce the unused amount of a credit memo.
- `allocations.transactions` (array)
  List of transactions (typically refunds, credits, and chargebacks) that are allocated to reduce the unused amount of a credit memo. - To delete transaction allocations, send an empty transaction allocation array in the request. - To modify transaction allocations, send a modified transaction allocation array in the request. - If you do not want to modify or delete transaction allocations, do not send a transaction allocation array in the request.
- `allocations.transactions.transactionId` (string)
  ID of the transaction.
  Example: txn_0YVDTQJ8YWDGQACV2N2N5SPWQ0
- `allocations.transactions.amount` (number)
  Amount of credit that is allocated from the credit memo to the transaction. If the `amount` value is not supplied or exceeds the unused amount of the credit memo or the transaction amount, the lesser of the following two values is used: - The unused amount of the credit memo. - The transaction amount.
- `allocations.transactions.currency` (string)
  Currency code in ISO 4217 format.
  Example: USD
- `allocations.transactions.status` (string)
  Resolution status of the transaction allocation.
  Enum: "pending", "approved"
- `allocations.transactions.createdTime` (string)
  Date and time when the resource is created. This value is set automatically when the resource is created.
- `allocations.transactions.updatedTime` (string)
  Date and time when the resource is updated. This value is set automatically when the resource is updated.
- `allocations.invoices` (array)
  List of invoices that the credit memo is allocated to. - To delete invoice allocations, send an empty invoice allocation array in the request. Only `unpaid`, `partially-paid`, and `past-due` invoices can be deleted. - To modify invoice allocations, send a modified invoice allocation array in the request. Only `unpaid`, `partially-paid`, and `past-due` invoices can be modified. - If you do not want to modify or delete invoice allocations, do not send an invoice allocation array in the request.
- `allocations.invoices.invoiceId` (string)
  ID of invoice to which the credit memo is allocated.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `allocations.invoices.amount` (number)
  Amount of credit that is allocated from the credit memo to the invoice. When a credit memo is updated, the specified `amount` replaces the existing allocation to the invoice. It is not added to the existing allocation. If the credit memo is already allocated to the invoice, the unused amount of the credit memo and the amount due on the invoice both include the existing allocation. If the `amount` value is not supplied or exceeds the unused amount of the credit memo or the invoice due amount, the lesser of the following two values is used: - The unused amount of the credit memo. - The invoice due amount.
- `allocations.invoices.createdTime` (string)
  Read-only timestamp in ISO 8601 date-time format.
- `items` (array)
  Items of the credit memo.
- `items.id` (string)
  ID of the credit memo item.
  Example: crmm_itm_01HXC7PK2C6F367VYCFXDRYMAQ
- `items.invoiceItemId` (string | null)
  ID of the invoice item to which the credit item is referenced.
  Example: ii_0YVFDEQS2KCFTBN9HXWJFY55GV
- `items.description` (string)
  Description of the credit memo item.
- `items.unitPrice` (number, required)
  Price of the credit memo item.
- `items.quantity` (integer, required)
  Quantity of the credit memo item.
- `items.price` (number)
  Total price of the credit memo item.
- `items.productId` (string | null)
  ID of the related product.
  Example: prod_0YV7DES3WPC5J8JD8QTVNZBZNZ
- `items.planId` (string | null)
  ID of the related plan.
  Example: plan_0YV7DENSVGDBW9S71XZNNYYQ0X
- `items.tax` (any)
  Credit memo item tax.
- `status` (string)
  Status of the credit memo.
  Enum: "draft", "quotation", "issued", "applied", "partially-applied", "voided"
- `reason` (string)
  Reason for the credit memo.
  Enum: "return", "product-unsatisfactory", "order-change", "order-cancellation", "chargeback", "write-off", "waiver", "customer-credit", "prepayment", "other"
- `description` (string)
  Public description, that is visible to customers, which describes the purpose of the credit memo.
- `shippingAmount` (number)
  Shipping amount of an invoice to credit.
- `taxAmount` (number)
  Sum of items tax amount of an invoice to credit.
- `totalAmount` (number)
  Total amount of all credits in the credit memo, including items, shipping, and tax.
- `unusedAmount` (number)
  Unused credit memo amount that has not been allocated.
- `revision` (integer)
  Number of times the credit memo has been modified.
- `customerId` (string, required)
  ID of the customer resource.
  Example: cus_0YV7DDSDD1C8DA64KHH2W33CPF
- `invoiceId` (string | null)
  ID of the invoice to which the credit memo is issued.
  Example: in_0YVF9605RKC62BP14NE2R7V2XT
- `quoteId` (string | null)
  ID of the related quote.
  Example: qt_0YVF9605RKC62BP14NE2R7V2XT
- `transactionId` (string | null)
  ID of the transaction associated with the credit memo. Associating a transaction does not change the unused amount of the credit memo. The transaction must be approved and associated with the same customer as the credit memo. Approved transactions of any type are accepted, including refunds and voided sales. If the transaction result changes later, the association is retained. If this field is omitted in an update request, this field retains its current value. To remove the transaction from the credit memo, set this field to `null`.
  Example: txn_0YVDTQJ8YKC82BP14NE2R7V2XT
- `_links` (array)
  Related links.
- `_links.href` (string)
  Link URL.
- `_links.rel` (string)
  Type of link.
  Enum: "self", "customer", "invoice"
- `_embedded` (object)
  Embedded objects that are requested by the `expand` query parameter.
- `_embedded.customer` (object)

## Response 401 fields

- `status` (integer)
  HTTP status code.
- `type` (string)
  Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
- `title` (string)
  Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.
- `detail` (string)
  Human-readable explanation that is specific to this occurrence of the problem.
- `instance` (string)
  URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.

## Response 403 fields

- `status` (integer)
  HTTP status code.
- `error` (string)
  Message that describes why the request is forbidden. Most responses use a descriptive message, such as `Not allowed to change security settings`. If the organization requires multi-factor authentication (MFA) and MFA verification has not been completed for the session, this value is `mfa_required`. If MFA verification has not been completed for the session and the operation requires a confirmed session, this value is `mfa_required_for_caller`. This includes turning on `requireMfa` and resetting MFA for a user. If the organization restricts access to a list of IP addresses and the request comes from an IP address that is not in the list, this value is `ip_not_allowed`.
- `organizationId` (string)
  Unique organization identifier. An organization is an entity that represents a company. For more information, see [Obtain an organization ID](https://www.rebilly.com/docs/settings/organizations-and-websites/#obtain-your-organization-id-and-website-id).
  Example: org_0YVDM8RC7GDADADSBSMW124JA8
- `type` (string)
  Problem type in the form of a [URI](https://tools.ietf.org/html/rfc3986) reference. It should provide human-readable documentation for the problem type. When this member is not present, its value is assumed to be "about:blank".
- `title` (string)
  Short, human-readable summary of the problem type. Other than for the purposes of localization, this should not change from occurrence to occurrence of the problem.
- `detail` (string)
  Human-readable explanation that is specific to this occurrence of the problem.
- `instance` (string)
  URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
