Search Refunds

POST /accounting/refunds/search

Group: Accounting › Refunds · Operation ID: searchRefunds

Returns the refunds that match the given filters. Unlike the collection, it matches multiple approval statuses and takes its filters in a request body.

GET accounting/refunds takes one status. This endpoint takes a list, combining with AND across criteria and OR within status. The item schema here is the same as GET accounting/refunds and GET accounting/refunds/:id.

Open in the interactive reference

Parameters

Name In Type Required Description
Api-Version header "v1" yes The API version this request targets, named by its public identifier. Required on every request; omitting it, or naming a version this company does not have, is answered with 400. This document describes version v1.

Request body

Required, application/json: searchRefundsInput.

Field Type Required Description
id string no Limits results to the refund with this identifier.
status array of string, one of "draft", "pendingApproval", "revise", "approved", "rejected" no Limits results to refunds in any of these approval states. Omit or pass an empty array to return every state.
paymentId string no Limits results to refunds against this source payment. See id on GET accounting/payments/:id.
customerId string no Limits results to refunds for this customer. See id on GET accounting/customers/:id.
refundDate object no Limits results to refunds whose refundDate falls in this range. Both bounds are inclusive. Omit either bound to leave that side open.
refundDate.start string (date) no The earliest refundDate to include, inclusive. Format YYYY-MM-DD.
refundDate.end string (date) no The latest refundDate to include, inclusive. Format YYYY-MM-DD.
lastModifiedDate object no Limits results to refunds whose lastModifiedDate falls in this range, in UTC. Both bounds are inclusive. Omit either bound to leave that side open. Format YYYY-MM-DDTHH:mm:ss.sssZ.
lastModifiedDate.start string no The earliest change time to include, inclusive.
lastModifiedDate.end string no The latest change time to include, inclusive.
page object no The pagination controls. Omit for the first page.
page.cursor string no The cursor from the previous response's pagination.nextCursor. Omit for the first page.
page.size number no The number of refunds per page. Defaults to 50. A value above 200 is treated as 200, not rejected.

Example:

{
  "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "status": [
    "pendingApproval",
    "revise"
  ],
  "paymentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
  "customerId": "9c2a6a10-7d34-4c8e-9b21-5a0f3e6d81b7",
  "refundDate": {
    "start": "2026-01-15",
    "end": "2026-01-15"
  },
  "lastModifiedDate": {
    "start": "<start>",
    "end": "<end>"
  },
  "page": {
    "size": 50
  }
}

Response

200 Success

Under data (searchRefundsOutput):

Field Type Required Description
items array of object yes The refunds that match, most recently created first. An empty array when nothing matches.
items[].id string yes The unique identifier for the refund.
items[].refundNumber string no The refund number, unique within the tenant, for example 'REF-1042'.
items[].refundDate string (date) yes The date the refund was issued. Format YYYY-MM-DD.
items[].approvalStatus string no The approval status. Possible values: 'draft', 'pendingApproval', 'revise', 'approved', 'rejected'.
items[].refundType string yes The payment method used for the refund. Possible values: 'check', 'ach', 'wire', 'creditCard', 'directDebit', 'sepaCreditTransfer'.
items[].currency string yes The currency of the refund. Every amount on it is in this currency. Format ISO 4217, for example 'USD'.
items[].amount string (decimal) yes The refund amount, in the refund currency.
items[].unappliedAmount string (decimal) no The unapplied balance remaining on the source payment, in the refund currency.
items[].refundNote string no A free-form note attached to the refund. Absent when none was set.
items[].customerId string yes The customer receiving the refund. See id on GET accounting/customers/:id.
items[].customerName string no The name of the customer receiving the refund.
items[].entityId string yes The legal entity issuing the refund. See id on GET base/entities.
items[].paymentId string yes The source payment being refunded. See id on GET accounting/payments/:id.
items[].paymentNumber string no The number of the source payment being refunded.
items[].lastModifiedDate string (date-time) yes The date and time the refund last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ.
pagination object yes The pagination cursor for this page.
pagination.nextCursor string no The cursor for the next page. Pass it as page.cursor. Absent on the last page.
pagination.hasMore boolean yes True when more matches remain beyond this page.

Statuses