---
title: "Filter credit memos"
method: POST
path: "/credit-memos/filter"
tags: ["Credit Memos"]
---

# Filter credit memos

`POST /credit-memos/filter`

Search for credit memos using filter criteria.

## Common Filters

- By customer: `{ "filter": { "customerId": { "equalTo": "uuid" } } }`
- With balance: `{ "filter": { "hasRemainingBalance": true } }`
- Open credits: `{ "filter": { "status": { "in": ["OPEN", "PARTIALLY_APPLIED"] } } }`

## Request body

- CreditMemoFilterRequest
  - `filter` CreditMemoFilter
    - `id` UUIDFilter — Filter options for UUID fields (all operations)
      - `equalTo` string, uuid — Exact match
      - `notEqualTo` string, uuid — Not equal to
      - `in` string[] — Matches any UUID in the array
      - `notIn` string[] — Does not match any UUID in the array
      - `isNull` boolean — Field is null (true) or not null (false)
    - `customerId` UUIDFilter — Filter options for UUID fields (all operations)
      - `equalTo` string, uuid — Exact match
      - `notEqualTo` string, uuid — Not equal to
      - `in` string[] — Matches any UUID in the array
      - `notIn` string[] — Does not match any UUID in the array
      - `isNull` boolean — Field is null (true) or not null (false)
    - `status` CreditMemoStatusFilter
      - `equalTo` 'OPEN' | 'PARTIALLY_APPLIED' | 'APPLIED' | 'VOIDED' — Current status of the credit memo (derived from remaining balance). - `OPEN`: No applications, full balance available - `PARTIALLY_APPLIED`: Some amount applied, balance remains - `APPLIED`: Fully applied to invoices - `VOIDED`: Credit memo cancelled
      - `notEqualTo` 'OPEN' | 'PARTIALLY_APPLIED' | 'APPLIED' | 'VOIDED' — Current status of the credit memo (derived from remaining balance). - `OPEN`: No applications, full balance available - `PARTIALLY_APPLIED`: Some amount applied, balance remains - `APPLIED`: Fully applied to invoices - `VOIDED`: Credit memo cancelled
      - `in` CreditMemoStatus[]
    - `memoDate` DatetimeFilter — Filter options for datetime fields
      - `equalTo` string, date-time — Exact match
      - `notEqualTo` string, date-time — Not equal to
      - `lessThan` string, date-time — Before this datetime
      - `lessThanOrEqualTo` string, date-time — On or before this datetime
      - `greaterThan` string, date-time — After this datetime
      - `greaterThanOrEqualTo` string, date-time — On or after this datetime
      - `isNull` boolean — Field is null (true) or not null (false)
    - `amount` FloatFilter — Filter options for float/number fields
      - `equalTo` number, float — Exact match
      - `notEqualTo` number, float — Not equal to
      - `lessThan` number, float — Less than
      - `lessThanOrEqualTo` number, float — Less than or equal to
      - `greaterThan` number, float — Greater than
      - `greaterThanOrEqualTo` number, float — Greater than or equal to
      - `isNull` boolean — Field is null (true) or not null (false)
    - `remainingBalance` FloatFilter — Filter options for float/number fields
      - `equalTo` number, float — Exact match
      - `notEqualTo` number, float — Not equal to
      - `lessThan` number, float — Less than
      - `lessThanOrEqualTo` number, float — Less than or equal to
      - `greaterThan` number, float — Greater than
      - `greaterThanOrEqualTo` number, float — Greater than or equal to
      - `isNull` boolean — Field is null (true) or not null (false)
    - `hasRemainingBalance` boolean — Filter to credits with available balance
    - `sourcePaymentGroupId` UUIDFilter — Filter options for UUID fields (all operations)
      - `equalTo` string, uuid — Exact match
      - `notEqualTo` string, uuid — Not equal to
      - `in` string[] — Matches any UUID in the array
      - `notIn` string[] — Does not match any UUID in the array
      - `isNull` boolean — Field is null (true) or not null (false)
    - `createdAt` DatetimeFilter — Filter options for datetime fields
      - `equalTo` string, date-time — Exact match
      - `notEqualTo` string, date-time — Not equal to
      - `lessThan` string, date-time — Before this datetime
      - `lessThanOrEqualTo` string, date-time — On or before this datetime
      - `greaterThan` string, date-time — After this datetime
      - `greaterThanOrEqualTo` string, date-time — On or after this datetime
      - `isNull` boolean — Field is null (true) or not null (false)
    - `and` CreditMemoFilter[]
    - `or` CreditMemoFilter[]
    - `not` CreditMemoFilter — recursive
  - `pageSize` integer
  - `cursor` string

## Response `200`

Credit memos matching filter criteria

- object
  - `data` CreditMemo[], required
    - `id` string, uuid, required
    - `key` string, nullable — Client-defined key
    - `reference` string, nullable — Reference number
    - `customer` CustomerReference — Enhanced reference to a customer resource (returned in responses). Includes full customer details in addition to id/key. Note: Does NOT include nested references (paymentTerm, contacts, etc.) to prevent recursion. Maximum nesting depth: 1 level.
      - `id` string, uuid, required — Customer UUID
      - `key` string, nullable — Client-defined reference ID if set
      - `name` string, required — Customer company name
      - `friendlyId` string, required — Human-readable customer identifier
      - `status` 'NEW' | 'CONTACTED' | 'QUALIFIED' | 'QUOTED' | 'NURTURING' | 'PENDING' | 'ACTIVE' | 'INACTIVE' | 'BLOCKED' | 'CLOSED', required — Customer status
      - `phoneNumber` string, nullable — Primary phone number
      - `website` string, nullable — Customer website URL
      - `createdAt` string, date-time, required — When the customer was created
      - `updatedAt` string, date-time, required — When the customer was last updated
      - `deletedAt` string, date-time, nullable — When the customer was soft deleted (null if active)
    - `amount` number, required — Original credit amount
    - `appliedAmount` number — Total amount applied to invoices
    - `remainingBalance` number, required — Available balance
    - `currency` string, nullable — Currency code
    - `status` 'OPEN' | 'PARTIALLY_APPLIED' | 'APPLIED' | 'VOIDED', required — Current status of the credit memo (derived from remaining balance). - `OPEN`: No applications, full balance available - `PARTIALLY_APPLIED`: Some amount applied, balance remains - `APPLIED`: Fully applied to invoices - `VOIDED`: Credit memo cancelled
    - `memoDate` string, date, required — Credit memo date
    - `notes` string, nullable — Notes or description
    - `sourcePaymentGroupId` string, uuid, nullable — Payment that created this credit (if from overpayment)
    - `sourcePaymentKey` string, nullable
    - `applications` CreditMemoApplication[] — Invoices this credit is applied to
      - `id` string, uuid, required
      - `invoiceId` string, uuid, required
      - `invoiceFriendlyId` string, nullable
      - `paymentId` string, uuid — Payment through which this credit was applied
      - `paymentKey` string, nullable
      - `amount` number, required — Amount applied
      - `appliedAt` string, date-time
    - `qboId` string, nullable — QuickBooks Online credit memo ID
    - `createdAt` string, date-time, required
    - `updatedAt` string, date-time, nullable
    - `voidedAt` string, date-time, nullable
    - `voidReason` string, nullable
    - `createdBy` UserReference — Enhanced reference to a user resource (returned in responses). Includes full user details in addition to id/key. Note: Does NOT include nested references (teams, etc.) to prevent recursion. Maximum nesting depth: 1 level.
      - `id` string, uuid, required — User UUID
      - `key` string, nullable — Client-defined reference ID if set
      - `email` string, email, required — User's email address
      - `name` string, nullable — User's full name
      - `phone` string, nullable — User's phone number
      - `phoneExt` string, nullable — Phone extension
      - `status` 'PENDING' | 'ACTIVE' | 'INACTIVE', required — User account status
      - `avatarId` string, uuid, nullable — Profile avatar document ID
      - `createdAt` string, date-time, required — When the user was created
      - `updatedAt` string, date-time, required — When the user was last updated
      - `deletedAt` string, date-time, nullable — When the user was soft deleted (null if active)
  - `pagination` PaginationInfo, required
    - `pageSize` integer, required — Number of items per page
    - `hasNextPage` boolean, required — Whether there are more pages
    - `hasPreviousPage` boolean — Whether there are previous pages
    - `endCursor` string, nullable — Cursor for the next page (null if no next page)

## Other responses

- `400` — Bad request - invalid input
- `401` — Unauthorized - invalid or missing access token
- `422` — Validation error - invalid field values

---

[API](https://skmtc.dev/mvmnt/apis/mvmnt-api.md) · [All operations](https://skmtc.dev/mvmnt/apis/mvmnt-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/mvmnt/mvmnt-api/revisions/7af4e91459ca/schema)
