Skip to main content
Invoice List API
curl --request GET \
  --url https://api.pazy.io/v1.0/invoices

Documentation Index

Fetch the complete documentation index at: https://docs.pazy.io/llms.txt

Use this file to discover all available pages before exploring further.

Authentication

All requests require an API key in the request headers. Headers:
Authorization: Api-Key YOUR_API_KEY

Request

Content-Type: application/json

Query Parameters

ParameterTypeRequiredDescription
limitintegerNoNumber of records to return. Min 1, Max 100, Default 30.
cursorstringNoCursor for pagination. Default 0.
dateTypestringNoType of date to filter by. Default issued_date. Possible values: issued_date, due_date, payment_date, date_created, approved_date.
startDatestringNoStart date for filtering (ISO 8601 UTC format: YYYY-MM-DDTHH:mm:ssZ).
endDatestringNoEnd date for filtering (ISO 8601 UTC format: YYYY-MM-DDTHH:mm:ssZ).
statearrayNoArray of invoice states to filter by. Allowed values: DRAFTED, APPROVAL_PENDING, APPROVED, PAID, ARCHIVED. Currently supports exactly one state.
invoiceNumberstringNoInvoice number to filter by.
invoiceDatestringNoInvoice date to filter by (YYYY-MM-DD format).
vendorNamestringNoVendor name to filter by (partial match).
vendorIdstringNoVendor ID to filter by.
userIdstringNoID of the user associated with the invoice vendor.
tagIdintegerNoFilter invoices containing this organization tag id.
amountnumberNoFilter invoices with amount greater than or equal to this value.

Code Examples

curl -X GET "https://api.pazy.io/v1.0/invoices?limit=30&state=APPROVED" \
  -H "Authorization: Api-Key YOUR_API_KEY"

Success Response

HTTP Status: 200 OK Response Fields:
FieldTypeDescription
okbooleanIndicates whether the request was successful
dataobjectContains the invoice list response data
data.invoicesarrayList of invoices
data.invoices[].idstringUnique identifier for the invoice
data.invoices[].vendorIdstringUnique identifier for the vendor on the invoice
data.invoices[].vendorNamestringVendor display name (falls back to legal name)
data.invoices[].invoiceNumberstringInvoice number as specified on the invoice document
data.invoices[].sequenceNumberstringSystem-generated sequence number with organization prefix
data.invoices[].descriptionstringDescription or notes about the invoice
data.invoices[].invoiceDatestringDate when the invoice was issued (ISO 8601 format)
data.invoices[].dueDatestringDue date for invoice payment (ISO 8601 format)
data.invoices[].dateCreatedstringDate when the invoice was created in the system (ISO 8601 format)
data.invoices[].amountnumberTotal invoice amount
data.invoices[].currencystringCurrency code (e.g., INR, USD)
data.invoices[].remarksstringAdditional remarks or notes associated with the invoice
data.invoices[].statestringCurrent state of the invoice. Possible values: DRAFTED, APPROVAL_PENDING, APPROVED, PAID, DECLINED, ARCHIVED.
data.invoices[].syncStatestringSynchronization state with accounting system. Possible values: SYNCED, NOT_SYNCED, SYNCED_WITH_ERRORS, etc.
data.invoices[].sourcestringSource of invoice creation. Possible values: API, WEB, EMAIL, SLACK, WHATSAPP, APP, etc.
data.invoices[].selfUrlstringShareable URL for viewing the invoice in the web interface
data.contextobjectPagination metadata
data.context.countnumberNumber of invoices returned in this page
data.context.hasMorebooleanIndicates whether there are more invoices to fetch
data.context.nextCursorstringCursor to fetch the next page

Response Example

{
  "ok": true,
  "data": {
    "invoices": [
      {
        "id": "invoice_identifier",
        "vendorId": "vendor_identifier",
        "vendorName": "ABC Suppliers",
        "invoiceNumber": "INV-2026-001",
        "sequenceNumber": "PZY/2026-27/INV/0001",
        "description": "Monthly services invoice",
        "invoiceDate": "2026-01-15",
        "dueDate": "2026-02-15",
        "dateCreated": "2026-01-15T10:30:00Z",
        "amount": 50000.00,
        "currency": "INR",
        "remarks": "Payment due in 30 days",
        "state": "APPROVED",
        "syncState": "SYNCED",
        "source": "API",
        "selfUrl": "https://app.pazy.io/invoice/invoice_identifier"
      }
    ],
    "context": {
      "count": 100,
      "hasMore": true,
      "nextCursor": "30"
    }
  }
}

Error Responses

Validation Error

HTTP Status: 400 Bad Request
{
  "ok": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Validation failed: /query/state: must be equal to one of the allowed values"
  }
}

Access Denied

HTTP Status: 403 Forbidden
{
  "ok": false,
  "error": {
    "code": "ACCESS_DENIED",
    "message": "Access denied: You can only view vendors you own"
  }
}

Authentication Errors

HTTP Status: 401 Unauthorized
{
  "ok": false,
  "error": {
    "code": "MISSING_CREDENTIALS",
    "message": "Missing Credentials"
  }
}
{
  "ok": false,
  "error": {
    "code": "INVALID_API_KEY",
    "message": "Invalid API Key"
  }
}

Permission Errors

HTTP Status: 403 Forbidden
{
  "ok": false,
  "error": {
    "code": "INSUFFICIENT_PERMISSIONS",
    "message": "Permission check failed - PERMISSION_CHECK_FAILED"
  }
}

Internal Error

HTTP Status: 500 Internal Server Error
{
  "ok": false,
  "error": {
    "code": "INTERNAL_ERROR",
    "message": "Internal error"
  }
}

Best Practices

  • Use cursor and limit together to paginate; nextCursor in the response can be used as the cursor value for the next call
  • startDate and endDate are interpreted against the column specified by dateType — change dateType to filter by due, payment, created, or approval date instead of the issued date
  • Use the id from the response as the input to the Invoice Details API for full invoice information
  • The API returns at most 100 invoices per call regardless of the limit value