Purchases

Purchases

Goods received from a supplier. Receiving a GRN creates cost layers, which is what returns later reverse against.

GET/purchases/orders/

List purchase orders — what you have asked a supplier for.

Filters

supplierstatuspayment_statusdate_fromdate_toposearch

Combine any of these as query parameters. Also accepts cursor and page_size.

Fields on each result

id
integer
po_no
string
supplier
integer
supplier_name
string
warehouse
integer
warehouse_name
string
order_date
string
expected_date
string
status
string
subtotal
decimal
tax
decimal
total
decimal
notes
string
created_by
integer
created_at
datetime
updated_at
datetime

Errors

401The access token is missing or has expired. Refresh and retry.
403Your role lacks permission, or X-Shop-Id is a shop you cannot access.
429Rate limited. Wait for Retry-After seconds.
Request
curl https://api.tajirpoint.com/api/v1/purchases/orders/ \
  -H "Authorization: Bearer $TAJIR_TOKEN" \
  -H "X-Shop-Id: 8f1c2d3e-4b5a-6c7d-8e9f-0a1b2c3d4e5f"
Response · 200 · 2 more fields below
{
  "next": "https://api.tajirpoint.com/api/v1/purchases/orders/?cursor=cD0yMDI2LTA3LTExVDA5MTQyMlomcD00Mg",
  "previous": null,
  "results": [
    {
      "id": 42,
      "po_no": "DOC-00001",
      "supplier": 1,
      "supplier_name": "Metro Cash & Carry",
      "warehouse": 1,
      "warehouse_name": "Main Store",
      "order_date": "2026-07-11T09:14:22Z",
      "expected_date": "2026-07-11T09:14:22Z",
      "status": "active",
      "subtotal": "2100.00",
      "tax": "0.00",
      "total": "2450.00",
      "notes": "",
      "created_by": 1
    }
  ]
}
Response · error
{
  "error": {
    "code": 400,
    "message": "Validation failed.",
    "details": {
      "quantity": ["Must be greater than zero."]
    }
  }
}
POST/purchases/orders/

Raise a purchase order.

Body parameters

supplierRequired
integer
warehouseRequired
integer
order_dateRequired
string
expected_dateOptional
string
notesOptional
string
itemsRequired
array of object

Response fields

supplier
integer
warehouse
integer
order_date
string
expected_date
string
notes
string
items
array of object

Errors

400Validation failed. `details` names the offending fields.
401The access token is missing or has expired. Refresh and retry.
403Your role lacks permission, or X-Shop-Id is a shop you cannot access.
429Rate limited. Wait for Retry-After seconds.
Request
curl -X POST https://api.tajirpoint.com/api/v1/purchases/orders/ \
  -H "Authorization: Bearer $TAJIR_TOKEN" \
  -H "X-Shop-Id: 8f1c2d3e-4b5a-6c7d-8e9f-0a1b2c3d4e5f" \
  -H "Content-Type: application/json" \
  -d '{
    "supplier": 1,
    "warehouse": 1,
    "order_date": "2026-07-11T09:14:22Z",
    "items": [],
    "expected_date": "2026-07-11T09:14:22Z",
    "notes": ""
  }'
Response · 200
{
  "supplier": 1,
  "warehouse": 1,
  "order_date": "2026-07-11T09:14:22Z",
  "expected_date": "2026-07-11T09:14:22Z",
  "notes": "",
  "items": []
}
Response · error
{
  "error": {
    "code": 400,
    "message": "Validation failed.",
    "details": {
      "quantity": ["Must be greater than zero."]
    }
  }
}
GET/purchases/purchases/

List goods-received notes — what actually arrived.

Filters

supplierstatuspayment_statusdate_fromdate_toposearch

Combine any of these as query parameters. Also accepts cursor and page_size.

Fields on each result

id
integer
purchase_no
string
status
string
received_at
datetime
po
integer
po_no
string
supplier
integer
supplier_name
string
warehouse
integer
warehouse_name
string
purchase_date
string
supplier_invoice_no
string
currency_code
string
exchange_rate
decimal
subtotal
decimal
tax
decimal
discount
decimal
shipping
decimal
total
decimal
paid_amount
decimal
balance_due
decimal
payment_status
string
notes
string
created_by
integer
created_at
datetime
updated_at
datetime

Errors

401The access token is missing or has expired. Refresh and retry.
403Your role lacks permission, or X-Shop-Id is a shop you cannot access.
429Rate limited. Wait for Retry-After seconds.
Request
curl https://api.tajirpoint.com/api/v1/purchases/purchases/ \
  -H "Authorization: Bearer $TAJIR_TOKEN" \
  -H "X-Shop-Id: 8f1c2d3e-4b5a-6c7d-8e9f-0a1b2c3d4e5f"
Response · 200 · 12 more fields below
{
  "next": "https://api.tajirpoint.com/api/v1/purchases/purchases/?cursor=cD0yMDI2LTA3LTExVDA5MTQyMlomcD00Mg",
  "previous": null,
  "results": [
    {
      "id": 42,
      "purchase_no": "PUR-00019",
      "status": "active",
      "received_at": "2026-07-11T09:14:22Z",
      "po": 1,
      "po_no": "DOC-00001",
      "supplier": 1,
      "supplier_name": "Metro Cash & Carry",
      "warehouse": 1,
      "warehouse_name": "Main Store",
      "purchase_date": "2026-07-11T09:14:22Z",
      "supplier_invoice_no": "DOC-00001",
      "currency_code": "PKR",
      "exchange_rate": "1.000000"
    }
  ]
}
Response · error
{
  "error": {
    "code": 400,
    "message": "Validation failed.",
    "details": {
      "quantity": ["Must be greater than zero."]
    }
  }
}
POST/purchases/purchases/

Receive goods into stock. This creates the cost layers that later sales consume and that returns reverse against, so the unit cost you send here is the cost that follows the item through its whole life.

Body parameters

poOptional
integer
supplierRequired
integer
warehouseRequired
integer
purchase_dateRequired
string
supplier_invoice_noOptional
string
currency_codeOptional
string
exchange_rateOptional
decimal
subtotalOptional
decimal
taxOptional
decimal
discountOptional
decimal
shippingOptional
decimal
totalOptional
decimal
paid_amountOptional
decimal
notesOptional
string
itemsRequired
array of object

Response fields

po
integer
supplier
integer
warehouse
integer
purchase_date
string
supplier_invoice_no
string
currency_code
string
exchange_rate
decimal
subtotal
decimal
tax
decimal
discount
decimal
shipping
decimal
total
decimal
paid_amount
decimal
notes
string
items
array of object

Errors

400Validation failed. `details` names the offending fields.
401The access token is missing or has expired. Refresh and retry.
403Your role lacks permission, or X-Shop-Id is a shop you cannot access.
429Rate limited. Wait for Retry-After seconds.
Request
curl -X POST https://api.tajirpoint.com/api/v1/purchases/purchases/ \
  -H "Authorization: Bearer $TAJIR_TOKEN" \
  -H "X-Shop-Id: 8f1c2d3e-4b5a-6c7d-8e9f-0a1b2c3d4e5f" \
  -H "Content-Type: application/json" \
  -d '{
    "supplier": 1,
    "warehouse": 1,
    "purchase_date": "2026-07-11T09:14:22Z",
    "items": [],
    "po": 1,
    "supplier_invoice_no": "DOC-00001",
    "currency_code": "PKR",
    "exchange_rate": "1.000000",
    "subtotal": "2100.00",
    "tax": "0.00"
  }'
Response · 200 · 1 more fields below
{
  "po": 1,
  "supplier": 1,
  "warehouse": 1,
  "purchase_date": "2026-07-11T09:14:22Z",
  "supplier_invoice_no": "DOC-00001",
  "currency_code": "PKR",
  "exchange_rate": "1.000000",
  "subtotal": "2100.00",
  "tax": "0.00",
  "discount": "0.00",
  "shipping": "0.00",
  "total": "2450.00",
  "paid_amount": "2450.00",
  "notes": ""
}
Response · error
{
  "error": {
    "code": 400,
    "message": "Validation failed.",
    "details": {
      "quantity": ["Must be greater than zero."]
    }
  }
}