List refunds

Operation ID: listRefunds

Group: Accounting › Refunds

Open in the interactive reference

GET /accounting/refunds

Read-only: Reads and returns; changes nothing.

Lists refunds. Each refund has the same fields as on GET accounting/refunds/:id.

This endpoint doesn't follow the standard rules in Pagination and querying. Page with pageSize and cursor, not page[size] and page[cursor]. The records are in data.items, and the next page's cursor is in data.pagination.nextCursor.

Filter with the plain query parameters listed below, such as status, not filter[field][op]. There is no sort or fields. Any query parameter the endpoint doesn't declare is ignored without an error, so a request that follows the standard rules gets the first page, unfiltered, every time.

To filter by several approval statuses at once, or by the refund's id, use POST accounting/refunds/search.

Parameters

Name In Type Required Description
Api-Version header string · 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.
status query string no Limits results to refunds in this approval state. Possible values: 'draft', 'pendingApproval', 'revise', 'approved', 'rejected'. Omit to return every state. Example: "approved".
paymentId query string no Limits results to refunds against this source payment. Omit to return every payment. See id on GET accounting/payments/:id.
customerId query string no Limits results to refunds for this customer. Omit to return every customer. See id on GET accounting/customers/:id. Example: "9c2a6a10-7d34-4c8e-9b21-5a0f3e6d81b7".
refundDateFrom query string no Limits results to refunds issued on or after this date, inclusive. Format YYYY-MM-DD.
refundDateTo query string no Limits results to refunds issued on or before this date, inclusive. Format YYYY-MM-DD.
modifiedFrom query string no Limits results to refunds changed at or after this time, inclusive. In UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ.
modifiedTo query string no Limits results to refunds changed at or before this time, inclusive. In UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ.
cursor query string no The cursor from the previous response's data.pagination.nextCursor. Omit for the first page.
pageSize query number no The number of refunds per page. Defaults to 50. A value above 200 is treated as 200, not rejected. Example: 50.

Response

200 Success

Under data (listRefundsOutput):

Field Type Required Description
items array<object> yes The refunds that match, most recently created first. An empty array when nothing matches. Example: [{"id":"3b7d5e9c-1a24-4f80-9c6d-2e8f70b13a45","refundNumber":"REF-1042","refundDate":"2026-08-01","approvalStatus":"approved","refundType":"ach","currency":"USD","amount":"150.00","unappliedAmount":"0.00","customerId":"9c2a6a10-7d34-4c8e-9b21-5a0f3e6d81b7","customerName":"Northwind Traders","entityId":"1a24d5e9-3b7d-4f80-9c6d-2e8f70b13a45","paymentId":"5a0f3e6d-81b7-4c8e-9b21-9c2a6a107d34","paymentNumber":"PMT-7781","lastModifiedDate":"2026-08-01T09:12:44.000Z"}].
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 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 decimal yes The refund amount, in the refund currency.
items[].unappliedAmount 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 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. Example: {"hasMore":false}.
pagination.nextCursor string no The cursor for the next page. Pass it as the cursor input. Absent on the last page.
pagination.hasMore boolean yes True when more refunds remain beyond this page.
{
  "data": {
    "items": [
      {
        "id": "3b7d5e9c-1a24-4f80-9c6d-2e8f70b13a45",
        "refundNumber": "REF-1042",
        "refundDate": "2026-08-01",
        "approvalStatus": "approved",
        "refundType": "ach",
        "currency": "USD",
        "amount": "150.00",
        "unappliedAmount": "0.00",
        "customerId": "9c2a6a10-7d34-4c8e-9b21-5a0f3e6d81b7",
        "customerName": "Northwind Traders",
        "entityId": "1a24d5e9-3b7d-4f80-9c6d-2e8f70b13a45",
        "paymentId": "5a0f3e6d-81b7-4c8e-9b21-9c2a6a107d34",
        "paymentNumber": "PMT-7781",
        "lastModifiedDate": "2026-08-01T09:12:44.000Z"
      }
    ],
    "pagination": {
      "hasMore": false
    }
  },
  "diagnostics": [
    {
      "code": "<code>",
      "message": "<message>",
      "severity": "error",
      "path": [
        "<path>"
      ],
      "details": "<details>"
    }
  ]
}

Statuses