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_toposearchCombine any of these as query parameters. Also accepts cursor and page_size.
Fields on each result
FieldType & description
idinteger
po_nostring
supplierinteger
supplier_namestring
warehouseinteger
warehouse_namestring
order_datestring
expected_datestring
statusstring
subtotaldecimal
taxdecimal
totaldecimal
notesstring
created_byinteger
created_atdatetime
updated_atdatetime
Errors
CodeWhen it happens
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
FieldType & description
supplierRequiredinteger
warehouseRequiredinteger
order_dateRequiredstring
expected_dateOptionalstring
notesOptionalstring
itemsRequiredarray of object
Response fields
FieldType & description
supplierinteger
warehouseinteger
order_datestring
expected_datestring
notesstring
itemsarray of object
Errors
CodeWhen it happens
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_toposearchCombine any of these as query parameters. Also accepts cursor and page_size.
Fields on each result
FieldType & description
idinteger
purchase_nostring
statusstring
received_atdatetime
pointeger
po_nostring
supplierinteger
supplier_namestring
warehouseinteger
warehouse_namestring
purchase_datestring
supplier_invoice_nostring
currency_codestring
exchange_ratedecimal
subtotaldecimal
taxdecimal
discountdecimal
shippingdecimal
totaldecimal
paid_amountdecimal
balance_duedecimal
payment_statusstring
notesstring
created_byinteger
created_atdatetime
updated_atdatetime
Errors
CodeWhen it happens
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
FieldType & description
poOptionalinteger
supplierRequiredinteger
warehouseRequiredinteger
purchase_dateRequiredstring
supplier_invoice_noOptionalstring
currency_codeOptionalstring
exchange_rateOptionaldecimal
subtotalOptionaldecimal
taxOptionaldecimal
discountOptionaldecimal
shippingOptionaldecimal
totalOptionaldecimal
paid_amountOptionaldecimal
notesOptionalstring
itemsRequiredarray of object
Response fields
FieldType & description
pointeger
supplierinteger
warehouseinteger
purchase_datestring
supplier_invoice_nostring
currency_codestring
exchange_ratedecimal
subtotaldecimal
taxdecimal
discountdecimal
shippingdecimal
totaldecimal
paid_amountdecimal
notesstring
itemsarray of object
Errors
CodeWhen it happens
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."]
}
}
}