Alladdin

Work in progress

Site en construction

الموقع قيد الإنشاء

Alladdin
GET

List purchases

Scope: accounting:purchases.read https://api.alladdin.com/api/v2/purchases

Returns a paginated list of purchase invoices 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.
Payment status: a purchase with no payment recorded is pending, one paid in part is partial, and both still owe a balance. status=outstanding returns the two together; status=overdue narrows that set to purchases whose due date has passed.
Date parameters (start_date, end_date) filter by ISSUE date; due_date_start/due_date_end filter by DUE date; all are optional and unfiltered means the whole account. status=overdue is applied server-side across the whole account and matches pending and partially paid purchases whose due date has passed.

Parameters

Query parameters

limit integer optional = 50

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

cursor string optional

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

contact_id string optional

Filter by contact identifier

status string optional

Filter by payment status. "pending" matches purchases 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_date string<date-time> optional

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

end_date string<date-time> optional

Return only purchases issued on or before this date. Accepts ISO 8601 datetime or date only (YYYY-MM-DD). A date without a time (YYYY-MM-DD) includes that whole day; a value with a time is applied exactly as sent.

due_date_start string<date-time> optional

Return only purchases whose DUE date is on or after this date. Accepts ISO 8601 datetime or date only (YYYY-MM-DD).

due_date_end string<date-time> optional

Return only purchases whose DUE date is on or before this date. Combine with status=pending to list overdue purchases (set this to the cut-off date). Accepts ISO 8601 datetime or date only (YYYY-MM-DD). A date without a time (YYYY-MM-DD) includes that whole day; a value with a time is applied exactly as sent.

sort string optional

Sort field and direction. Prefix with - for descending order.

"date" "-date" "dueDate" "-dueDate" "total" "-total" approval_status string optional

Filter by approval status. Use "draft" for unapproved purchases, "approved" for approved ones.

"draft" "approved"

Request

python
import requests

url = "https://api.alladdin.com/api/v2/purchases?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": "...",
          "supplied": "..."
        }
      ],
      "payment_method_id": "string",
      "payments_total": "0",
      "payments_pending": "121.00",
      "deduction_date": "2026-01-31"
    }
  ],
  "has_more": false,
  "cursor": "string"
}

Success responses

200 List of purchases application/json object items[] object[] id string

Unique identifier of the document

document_number string | null

Sequential number assigned to the document

contact_id string | null

Identifier of the contact associated with this document

contact_name string | null

Name of the contact associated with this document

description string | null

Free-text description of the document

date string<date> | null

Issue date of the document in ISO 8601 format

due_date string<date> | null

Payment due date in ISO 8601 format

subtotal string

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

discount string

Total discount applied to the document, as a decimal string

total string

Final amount including taxes and discounts, as a decimal string

tax string

Total tax amount, as a decimal string

currency string

ISO 4217 currency code

status string

Current status of the document

Enum: failed completed pending partial cancelled tags[] string[]

List of tags attached to the document

lines[] object[]

Line items included in the document

payment_method_id string | null

Identifier of the default payment method for this purchase

payments_total string

Total amount already paid, as a decimal string

payments_pending string

Remaining amount to be paid, as a decimal string

deduction_date string<date> | null

Accounting date of the purchase ("Fecha contable" in Alladdin), which drives the tax deduction period. Null when not explicitly set on the document

has_more boolean cursor string | null

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

Error responses

401 Invalid or missing API key application/json 403 Insufficient permissions application/json 429 Rate limit exceeded application/json

← PreviousList purchase attachments →

Next →Get a purchase →