{"ok":true,"commandType":"create-cash-purchase","module":"Purchase","mode":"write","summary":"Create a cash purchase.","payloadSchema":{"creditorCode":"required AutoCount creditor/supplier code","docDate":"required or optional YYYY-MM-DD document date depending on account-book numbering rules","supplierInvoiceNo":"optional supplier invoice number","project":"optional project code","projNo":"project code alias","projectNo":"project code alias","department":"optional department code","deptNo":"department code alias","items":"optional alias for lines","accountNo":"optional document-level fallback GL posting account for purchase invoice/cash purchase lines when item/account mapping is not enough","payments":"optional array for cash purchase style documents; send multiple payment rows for AutoCount Multi Payment. cash purchase void/delete remains guarded because linked payment/cash-book reversal needs module-specific proof","creditorName":"optional supplier display name; AutoCount creditor name is used when omitted","docNo":"optional AutoCount document number; omit to let AutoCount numbering generate it","displayTerm":"optional credit term such as C.O.D. or 30 DAYS","dueDate":"optional YYYY-MM-DD due date","branchCode":"optional creditor branch code/name where the customer uses branches","purchaseLocation":"optional exact active AutoCount purchase/stock location code such as HQ-RETAIL; call read-locations first. It fills only lines that omit lines[].location; an explicit line location always wins","purchaseAgent":"optional Purchase Agent Maintenance code","attention":"optional attention/contact person","contact":"optional contact person alias for attention","phone1":"optional phone number printed on document","phone":"optional phone alias for phone1","phone2":"optional secondary phone/mobile number","fax1":"optional fax number printed on document","fax":"optional fax alias for fax1","address1":"optional supplier address line 1","address2":"optional supplier address line 2","address3":"optional supplier address line 3","address4":"optional supplier address line 4","description":"optional document description/narration","ref":"optional reference","supplierDONo":"optional supplier delivery order number","currencyCode":"optional currency code such as MYR","currencyRate":"optional exchange rate","inclusiveTax":"optional boolean; true when line prices include tax","taxDate":"optional YYYY-MM-DD tax date","taxEntityID":"optional numeric Tax Entity Maintenance ID for the document header/e-Invoice party","lines":"required array of stock item rows or account/service rows; items is also accepted as a compatibility alias","postingAccountRule":"For create-purchase-invoice and create-cash-purchase, pass lines[].accountNo / accNo / glAccount / postingAccountNo when AutoCount has no default purchase account. Use read-default-accounts.purchaseAccNo or choose a valid purchase/expense account from read-chart-accounts. For create-ap-invoice, if accountNo is omitted the connector also tries the same creditor's recent AP invoice detail account.","userDefinedFields":"optional object of AutoCount user-defined fields; use the AutoCount UDF field name without the UDF_ column prefix, for example { APITEST: value }"},"examplePayload":{"creditorCode":"400-S001","supplierInvoiceNo":"SUP-INV-1001","docDate":"2026-06-24","project":"PRJAPI","projNo":"PRJAPI","department":"HQ","items":[{"itemCode":"ITEM001","qty":1,"unitPrice":100,"accountNo":"610-0000","project":"PRJAPI","projNo":"PRJAPI"}],"payments":[{"paymentMethod":"CASH","paymentBy":"Cash","paymentAmount":100,"chequeNo":"","bankCharge":0,"paymentAccountNo":"110-0010","bankChargeAccountNo":"810-0000","creditCardApprovalCode":""},{"paymentMethod":"BANK","paymentBy":"Bank Transfer","paymentAmount":60,"chequeNo":"","bankCharge":0,"paymentAccountNo":"110-0010","bankChargeAccountNo":"810-0000","creditCardApprovalCode":""}],"displayTerm":"30 DAYS","branchCode":"MAIN","purchaseLocation":"HQ","purchaseAgent":"PA01","attention":"Supplier Sales Department","contact":"Supplier Sales Department","phone":"03-33333333","address1":"No. 2 Jalan Supplier","address2":"Supplier Park","address3":"Petaling Jaya","address4":"Malaysia","description":"Purchase document created through API","currencyCode":"MYR","inclusiveTax":false,"taxEntityID":1,"lines":[{"itemCode":"ITEM001","description":"API purchase item line 1","description2":"Line second description","furtherDescription":"Optional longer line note","barCode":"9550000000011","qty":2,"uom":"UNIT","unitPrice":80,"discount":"0","taxType":"P-0","taxRate":0,"taxAmount":0,"amount":160,"accountNo":"610-0000","postingAccountNo":"610-0000","location":"HQ","batchNo":"BATCH-001","serialNo":"SN-0001","project":"PRJAPI","projNo":"PRJAPI","department":"HQ","deptNo":"HQ","classification":"022","userDefinedFields":{"APITEST":"Blue"}},{"accountNo":"610-0000","description":"Service/account line without itemCode","qty":1,"unitPrice":80,"taxType":"P-0","location":"HQ","project":"PRJAPI","department":"HQ"}],"userDefinedFields":{"APITEST":"API"}},"examples":[],"payloadEnums":{},"requiredPayloadFields":[],"conditionalPayloadRules":{},"notes":"Creates cash purchase when the installed AutoCount SDK exposes the command. If default account is missing, call read-default-accounts and use purchaseAccNo, or choose a valid purchase/expense GL account from read-chart-accounts. Use read-payment-methods first; payments[].paymentMethod must match an active AutoCount Payment Method code, and paymentAmount totals should equal the document total. Line-level project overrides top-level project. Direct void/delete stay guarded until linked payment/cash-book reversal is proven. Full payload example is for human/Postman reference. For stock-item lines, send itemCode/uom/location and call read-locations for the exact active location code. For account/service lines, omit itemCode and send accountNo / accNo / glAccount / postingAccountNo; many account books still require lines[].location even without itemCode. purchaseLocation is copied to lines that omit location; lines[].location wins. The connector verifies AutoCount accepted the requested detail location before save instead of silently using a default. For purchase invoice/cash purchase, line accountNo is a GL posting account. If AutoCount says no default account or AI does not know the account, first call read-default-accounts and use purchaseAccNo, or list read-chart-accounts and choose a valid purchase/expense account. For AP invoice, if accountNo is omitted the connector tries payload/default purchase account first, then recent AP invoice history for the same creditor. For cash purchase, create/list/get are supported where AutoCount exposes the command; direct void/delete stay guarded until the linked payment/cash-book reversal workflow is proven.","nativePayload":{"supported":true,"sections":[{"name":"Master","fields":[{"name":"DocNo","type":"string","description":"Purchase invoice document number.","aliases":["docNo"]},{"name":"DocDate","type":"date","description":"Document date.","aliases":["docDate"]},{"name":"CreditorCode","type":"string","description":"Supplier/creditor code.","aliases":["creditorCode"]},{"name":"CreditorName","type":"string","description":"Supplier display name.","aliases":["creditorName"]},{"name":"Agent","type":"string","description":"Purchase agent.","aliases":["purchaseAgent","agent"]},{"name":"PurchaseLocation","type":"string","description":"Purchase stock location.","aliases":["purchaseLocation","location"]},{"name":"Ref","type":"string","description":"Reference.","aliases":["ref"]},{"name":"Description","type":"string","description":"Header description.","aliases":["description"]},{"name":"DisplayTerm","type":"string","description":"Credit term.","aliases":["displayTerm","term"]},{"name":"InvAddr1","type":"string","description":"Invoice address line 1.","aliases":["address1","invAddr1"]},{"name":"Phone1","type":"string","description":"Phone.","aliases":["phone1","phone"]},{"name":"Attention","type":"string","description":"Attention/contact.","aliases":["attention","contact"]},{"name":"BranchCode","type":"string","description":"Branch code.","aliases":["branchCode"]},{"name":"CurrencyCode","type":"string","description":"Currency code.","aliases":["currencyCode"]},{"name":"CurrencyRate","type":"number","description":"Currency rate.","aliases":["currencyRate"]},{"name":"Note","type":"string","description":"Note.","aliases":["note"]},{"name":"Remark1","type":"string","description":"Remark 1.","aliases":["remark1"]},{"name":"Remark2","type":"string","description":"Remark 2.","aliases":["remark2"]},{"name":"Remark3","type":"string","description":"Remark 3.","aliases":["remark3"]},{"name":"Remark4","type":"string","description":"Remark 4.","aliases":["remark4"]},{"name":"RefDocNo","type":"string","description":"Reference document number.","aliases":["refDocNo"]},{"name":"ShipVia","type":"string","description":"Shipping method.","aliases":["shipVia"]},{"name":"ShipInfo","type":"string","description":"Shipping info.","aliases":["shipInfo"]},{"name":"SupplierDONo","type":"string","description":"Supplier delivery order number.","aliases":["supplierDONo"]},{"name":"SupplierInvoiceNo","type":"string","description":"Supplier invoice number.","aliases":["supplierInvoiceNo"]}]},{"name":"Details","fields":[{"name":"DtlKey","type":"number","description":"Existing detail key for updates.","aliases":["dtlKey"]},{"name":"AccNo","type":"string","description":"Posting GL account.","aliases":["accNo","accountNo"]},{"name":"ItemCode","type":"string","description":"Stock item code.","aliases":["itemCode"]},{"name":"UOM","type":"string","description":"Unit of measure.","aliases":["uom"]},{"name":"Location","type":"string","description":"Stock location.","aliases":["location"]},{"name":"Description","type":"string","description":"Line description.","aliases":["description"]},{"name":"Desc2","type":"string","description":"Line description 2.","aliases":["desc2"]},{"name":"FurtherDescription","type":"string","description":"Further description.","aliases":["furtherDescription"]},{"name":"ProjNo","type":"string","description":"Project code.","aliases":["projNo","project"]},{"name":"DeptNo","type":"string","description":"Department code.","aliases":["deptNo","department"]},{"name":"Qty","type":"number","description":"Quantity.","aliases":["qty"]},{"name":"FOCQty","type":"number","description":"FOC quantity.","aliases":["focQty"]},{"name":"UnitPrice","type":"number","description":"Unit price.","aliases":["unitPrice"]},{"name":"Discount","type":"string","description":"Discount.","aliases":["discount"]},{"name":"TaxCode","type":"string","description":"Tax code.","aliases":["taxCode"]},{"name":"TaxRate","type":"number","description":"Tax rate.","aliases":["taxRate"]},{"name":"TaxAdjustment","type":"number","description":"Tax adjustment.","aliases":["taxAdjustment"]},{"name":"BatchNo","type":"string","description":"Batch number.","aliases":["batchNo"]},{"name":"SerialNo","type":"string","description":"Serial number where supported.","aliases":["serialNo","serialNumbers"]},{"name":"DeliveryDate","type":"date","description":"Delivery date.","aliases":["deliveryDate"]},{"name":"SalesExemptionNo","type":"string","description":"Sales exemption number.","aliases":["salesExemptionNo"]}]},{"name":"KnockOffDetails","fields":[]},{"name":"TransferDetails","fields":[{"name":"DocType","type":"string","description":"Source document type such as PO or GRN.","aliases":["docType"]},{"name":"DocNo","type":"string","description":"Source document number.","aliases":["docNo","fromDocNo"]}]},{"name":"PaymentDetails","fields":[]},{"name":"Options","fields":[{"name":"DocNoFormatName","type":"string","description":"Document number format.","aliases":["docNoFormatName"]},{"name":"SaveAsDraft","type":"boolean","description":"Draft/save option.","aliases":["saveAsDraft"]}]}]}}