Save Purchases
The SavePurchaseAsync() method is used to approve or reject purchases made by a business from suppliers.
This ensures that only valid and authorized purchase records are reflected in the inventory.
Approved purchases must then be processed into stock using the appropriate inventory APIs.
SavePurchaseAsync() method
This method is used to submit and confirm purchase records.
The request includes supplier details, purchase type, payment details, item list, and tax breakdowns.
Request Parameters
| Parameter | Type | Description |
|---|---|---|
| TPIN | string | Taxpayer Identification Number of the business |
| BhfId | string | Branch ID of the taxpayer |
| CisInvcNo | string | Internal purchase invoice number |
| OrgInvcNo | string | Original invoice number (nullable) |
| SupplrTpin | string | Supplier’s TPIN |
| SupplrNm | string | Supplier’s business name |
| SupplrBhfId | string | Supplier branch ID |
| SupplrInvcNo | string | Supplier invoice number |
| RegTyCd | string | Registration type code |
| PchsTyCd | string | Purchase type code |
| RcptTyCd | string | Receipt type code |
| PmtTyCd | string | Payment type code |
| PchsSttsCd | string | Purchase status code |
| CfmDt | string | Confirmation date (format: yyyyMMddHHmmss) |
| PchsDt | string | Purchase date (format: yyyyMMdd) |
| TotItemCnt | int | Total number of items |
| TotTaxblAmt | decimal | Total taxable amount |
| TotTaxAmt | decimal | Total tax amount |
| TotAmt | decimal | Total purchase amount (tax inclusive) |
| Remark | string | Notes or description of the purchase |
| ItemList | array | List of purchase item details |
Each ItemList entry includes:
- ItemSeq: Item sequence number
- ItemCd: Item code
- ItemClsCd: Item classification code (UNSPSC)
- ItemNm: Item name
- Qty: Quantity purchased
- Prc: Unit price
- TaxblAmt: Taxable amount
- TaxAmt: Tax amount
- VatCatCd: VAT category code
Usage Example

Response
{
"success": true,
"code": "000",
"message": "Operation completed successfully",
"timestamp": "2025-09-19 16:33:36",
"data": null,
"error": null
}