Skip to main content
GET

List purchase refunds

Scope:accounting:purchases.read
https://api.holded.com/api/v2/purchase-refunds

Returns a paginated list of purchase refunds in your account. Results are cursor-paginated: the response includes a `cursor` value and a `has_more` boolean. Pass the `cursor` to the next request to fetch the following page. Results are ordered by creation time, newest first.

Parameters

Query parameters

limitintegeroptional= 50

Maximum number of purchase refunds to return per page. Defaults to 50, maximum 200.

cursorstringoptional

Pagination cursor returned by the previous response. Omit to start from the first page.

contact_idstringoptional

Filter by contact identifier

statusstringoptional

Filter by payment status. "pending" matches purchase refunds with no payment recorded and "partial" those paid in part; both still owe a balance. "outstanding" returns the two together, "overdue" narrows that set to a due date already past, and "completed" returns the settled ones.

"pending""completed""partial""cancelled""failed""overdue""outstanding"
start_datestring<date-time>optional

Return only purchase refunds issued on or after this date. Accepts ISO 8601 datetime or date only (YYYY-MM-DD)

end_datestring<date-time>optional

Return only purchase refunds issued on or before this date. Accepts ISO 8601 datetime or date only (YYYY-MM-DD)

Request

python
import requests

url = "https://api.holded.com/api/v2/purchase-refunds?limit=50&cursor=value&contact_id=value"
headers = {
    "Authorization": "Bearer YOUR_API_KEY",
    "Accept": "application/json",
}

response = requests.get(url, headers=headers)
print(response.json())

Responses

Response

json
{
  "items": [
    {
      "id": "507f1f77bcf86cd799439011",
      "document_number": "INV-0001",
      "contact_id": "507f1f77bcf86cd799439011",
      "contact_name": "Acme Corp",
      "description": "string",
      "date": "2024-01-15",
      "due_date": "2024-02-15",
      "subtotal": "100.00",
      "discount": "0",
      "total": "121.00",
      "tax": "21.00",
      "currency": "EUR",
      "status": "pending",
      "tags": [
        "string"
      ],
      "lines": [
        {
          "line_id": "...",
          "name": "...",
          "description": "...",
          "price": "...",
          "units": "...",
          "discount": "...",
          "tax": "...",
          "taxes": "...",
          "tags": "...",
          "product_id": "...",
          "variant_id": "...",
          "service_id": "...",
          "sku": "...",
          "weight": "...",
          "cost_price": "...",
          "account": "...",
          "project_id": "...",
          "retention": "...",
          "unit_type": "..."
        }
      ]
    }
  ],
  "has_more": false,
  "cursor": "string"
}

Success responses

200List of purchase refundsapplication/json
object
items[]object[]
idstring

Unique identifier of the document

document_numberstring | null

Sequential number assigned to the document

contact_idstring | null

Identifier of the contact associated with this document

contact_namestring | null

Name of the contact associated with this document

descriptionstring | null

Free-text description of the document

datestring<date> | null

Issue date of the document in ISO 8601 format

due_datestring<date> | null

Payment due date in ISO 8601 format

subtotalstring

Sum of all line amounts before tax and discounts, as a decimal string

discountstring

Total discount applied to the document, as a decimal string

totalstring

Final amount including taxes and discounts, as a decimal string

taxstring

Total tax amount, as a decimal string

currencystring

ISO 4217 currency code

statusstring

Current status of the document

Enum:failedcompletedpendingpartialcancelled
tags[]string[]

List of tags attached to the document

lines[]object[]

Line items included in the document

has_moreboolean
cursorstring | null

Opaque cursor to pass as ?cursor= to fetch the next page. Null on the last page.

Error responses

401Invalid or missing API keyapplication/json
403Insufficient permissionsapplication/json
429Rate limit exceededapplication/json