Search vendor credits

Operation ID: searchVendorCredit

Group: Accounting › Vendor Credits

Open in the interactive reference

POST /accounting/vendor-credits/search

Read-only: A read that takes its filters in the body. Changes nothing, and ignores Idempotency-Key.

Searches vendor credits. Each match is the same full record that GET accounting/vendor-credits/:id returns, with its line items and their amortization schedules.

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.

Request body

Required, application/json: searchVendorCreditInput.

Field Type Required Description
filters object no The filters to apply. A vendor credit must match every filter you send. Omit to return all vendor credits. Example: {"status":"unapplied"}.
filters.id string no Limits results to the vendor credit with this identifier.
filters.vendorCreditNumber string no Limits results to the vendor credit with this number.
filters.referenceNumber string no Limits results to credits with this vendor reference number. It is not unique, so this can match several credits.
filters.vendorId string no Limits results to credits from this vendor. See id on GET accounting/vendors/:id.
filters.entityId string no Limits results to credits booked under this legal entity. See id on GET base/entities.
filters.vendorName string no Limits results to credits from a vendor with this name.
filters.entityName string no Limits results to credits booked under a legal entity with this name.
filters.status string no Limits results to credits in this application status. Values include 'unapplied', 'partiallyApplied' and 'applied'. Any other value matches no credit.
filters.externalId string no Limits results to credits with this upstream identifier. It is not unique, so this can match several credits.
page object no Pagination controls. Omit for the first page. Example: {"size":50}.
page.cursor string no The cursor from the previous response's pagination.nextCursor. Omit for the first request.
page.size number no The number of vendor credits per page. Defaults to 50. A value above 200 is treated as 200, not rejected.
{
  "filters": {
    "status": "unapplied"
  },
  "page": {
    "size": 50
  }
}

Response

200 Success

Under data (searchVendorCreditOutput):

Field Type Required Description
items array<object> yes The vendor credits that match, most recently created first. An empty array when nothing matches.
items[].id string yes The unique identifier for the vendor credit.
items[].vendorCreditNumber string no The vendor credit number. Absent until a number has been assigned.
items[].referenceNumber string yes The vendor's credit memo reference number, as printed on the vendor's document.
items[].creditDate date yes The date on the vendor's credit memo. Format YYYY-MM-DD.
items[].currency string yes The currency the credit is denominated in. Format ISO 4217, for example 'USD'. Governs totalAmount and every line amount.
items[].status string no The application status, how much of the credit has been set against vendor bills. Values include 'unapplied', 'partiallyApplied' and 'applied'.
items[].totalAmount decimal no The total credit amount, in currency.
items[].externalId string no The identifier this credit has in the upstream system that produced it. It is not unique.
items[].vendorId string no The vendor this credit is from. See id on GET accounting/vendors/:id.
items[].vendorName string no The name of the vendor this credit is from.
items[].entityId string no The legal entity this credit is booked under. See id on GET base/entities.
items[].entityName string no The name of the legal entity this credit is booked under.
items[].lastModifiedDate date-time yes The date and time the vendor credit last changed, in UTC. Format YYYY-MM-DDTHH:mm:ss.sssZ.
items[].origin string no The source system this record came from, as free-form text. Absent when none was supplied.
items[].lines array<object> no The credit line items, in their order on the credit. An empty array when the credit has none.
items[].lines[].id string yes The unique identifier for the line item.
items[].lines[].lineNumber string no The line item number.
items[].lines[].description string no A description of the credit line item.
items[].lines[].lineType string no The type of line item. Possible values: 'expense', 'prepaid'.
items[].lines[].amount decimal no The line credit amount, in the credit currency.
items[].lines[].currency string no The currency for the line. It always matches the credit currency. Format ISO 4217, for example 'USD'.
items[].lines[].netAmount decimal no The line amount excluding VAT, in the credit currency.
items[].lines[].vatAmount decimal no The computed VAT amount on the line, in the credit currency.
items[].lines[].vatPercentage decimal no The VAT rate applied, as a percentage. 19 means 19%, not 0.19.
items[].lines[].accountId string no The general ledger account this line credits. See id on GET accounting/accounts/:id.
items[].lines[].departmentId string no The department this line is allocated to. See id on GET people/departments/:id.
items[].lines[].amortizationSchedules array<object> no The amortization schedules this line is deferred over, one per accounting book. Absent when the line is not amortized, which is every line whose lineType is not 'prepaid'. Read the scheduled installments with GET accounting/amortization-schedule-lines, filtering on amortizationScheduleHeaderId.
items[].lines[].amortizationSchedules[].id string yes The unique identifier for the amortization schedule. Pass it as amortizationScheduleHeaderId to GET accounting/amortization-schedule-lines to read its installments.
items[].lines[].amortizationSchedules[].bookId string no The accounting book this schedule posts into. It is what distinguishes the entries of this array. See id on GET accounting/books/:id.
items[].lines[].amortizationSchedules[].bookName string no The name of the accounting book this schedule posts into.
items[].lines[].amortizationSchedules[].status string no How far the schedule has progressed. Values include 'notStarted', 'inProgress', 'completed' and 'voided'. A schedule created alongside an unposted credit reads 'notStarted' until the credit posts.
items[].lines[].amortizationSchedules[].amortizationMethod string no How the schedule spreads its total. Values include 'exactDays', 'pointInTime', 'straightLine', 'straightLineProRateFirstLast' and 'usageBased'.
items[].lines[].amortizationSchedules[].amortizationStartDate date no The first day the schedule amortizes over. Format YYYY-MM-DD.
items[].lines[].amortizationSchedules[].amortizationEndDate date no The last day the schedule amortizes over, inclusive. Format YYYY-MM-DD.
items[].lines[].amortizationSchedules[].term decimal no The number of months the schedule spreads over. A count, not an amount, so it carries no currency.
items[].lines[].amortizationSchedules[].description string no The note recorded against the schedule, where one was given.
items[].lines[].amortizationSchedules[].deferredAccountId string no The general ledger account the deferred balance sits on until it is recognized. See id on GET accounting/accounts/:id.
items[].lines[].amortizationSchedules[].recognitionAccountId string no The general ledger account each installment recognizes the expense into. See id on GET accounting/accounts/:id. It is taken from the schedule's installments, so it is absent on a schedule that has none yet.
items[].lines[].amortizationSchedules[].totalRecognized decimal no The amount recognized so far across the schedule's posted installments, in the credit currency. Zero until the first installment posts.
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 credits remain beyond this page.
{
  "data": {
    "items": [
      {
        "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "vendorCreditNumber": "<vendorCreditNumber>",
        "referenceNumber": "<referenceNumber>",
        "creditDate": "2026-01-15",
        "currency": "<currency>",
        "status": "<status>",
        "totalAmount": "19.99",
        "externalId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "vendorId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "vendorName": "<vendorName>",
        "entityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
        "entityName": "<entityName>",
        "lastModifiedDate": "2026-01-15T09:30:00.000Z",
        "origin": "<origin>",
        "lines": [
          {
            "id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "lineNumber": "<lineNumber>",
            "description": "<description>",
            "lineType": "<lineType>",
            "amount": "19.99",
            "currency": "<currency>",
            "netAmount": "19.99",
            "vatAmount": "19.99",
            "vatPercentage": "19.99",
            "accountId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "departmentId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
            "amortizationSchedules": [
              null
            ]
          }
        ]
      }
    ],
    "pagination": {
      "nextCursor": "<nextCursor>",
      "hasMore": true
    }
  },
  "diagnostics": [
    {
      "code": "<code>",
      "message": "<message>",
      "severity": "error",
      "path": [
        "<path>"
      ],
      "details": "<details>"
    }
  ]
}

Statuses