Update Purchase Order
Request
PUT:/{accountBookId}/purchaseOrder
Request Parameters
Parameter | Description | Type | |
---|---|---|---|
docNo | Document number of record. | string | required |
Request Body
object: Purchase Order Input Model
Example Request Body
Omitting the field in the request body will maintain the original value of the field while leaving the field value blank will remove the existing value of the field in the document.
Update specific fields in master data
Example: Update description
field in master data.
{
"master": {
"description": "Clothes purchase"
},
"details": [{}]
}
Number of array elements:
When updating document detail data, adding fewer array elements than the number of elements originally held by the details array into the request body will result in removal of detail data rows.If document detail data is to remain the same, include a `details` array in request body with empty elements corresponding to the number of existing detail data records.
Example: given there are currently 4 detail data records, the request body would look like this:
"details": [{ }, { }, { }, { }]
Add a detail data row
To add a detail data row, add an additional array element at the end of the details
array of the request body.
Example: Add a new detail data row for "Long Pants", making use of auto fill options.
{
"master": {},
"details": [
{},
{
"productCode": "P-00002",
"description": "Long Pants",
"qty": 1,
"unitPrice": 450
}
],
"autoFillOption": {
"taxCode": true
},
"saveApprove": null
}
Sequence of the array elements:
When updating document detail data, the sequence of the detail data array matters as the detail data rows are indexed records.When updating a specific detail data row, remember to double check the request body before submitting the request to ensure detail data rows are not unintentionally overwritten.
Update fields in detail data
Example: Update description
field in detail data rows to "Short Pants".
{
"master": {},
"details": [
{
"description": "Short Pants"
},
{
"description": "Short Pants"
}
]
}
In order to carry out the following:
- Add a detail data record to a specific row position
- Delete a specific detail data row
The details
input array needs to be re-entered with the intended data.
Add a detail data record to a specific row position
Example: Add a new detail data row for "Long Pants" with a quantity of "2" to the first row of the detail data records.
Re-enter all data in the details
field with the new record as the first element in the array.
{
"master": {},
"details": [
{
"productCode": "P-00002",
"accNo": "700-1010",
"description": "Long Pants",
"qty": 2,
"unit": "20000",
"unitPrice": 450
},
{
"productCode": "P-00003",
"productVariant": null,
"description": "Coat",
"furtherDescription": "",
"qty": 1,
"unit": "3000",
"unitPrice": 300,
"discount": null,
"taxCode": "P-5",
"taxAdjustment": 0,
"localTaxAdjustment": 0,
"deptNo": null
},
{
"productCode": "P-00002",
"description": "Long Pants",
"qty": 1,
"unitPrice": 450
}
],
"autoFillOption": {
"taxCode": true
},
"saveApprove": null
}
Delete a specific detail data row
Example Data
Given the document contains 3 detail data rows:
{
"master": {...},
"details": [
{
"docKey": 103,
"dtlKey": 231,
"seq": 0,
"productId": 542,
"productCode": "P-00003",
"productVariantId": null,
"productVariant1Option": null,
"productVariant2Option": null,
"description": "Coat",
"furtherDescription": "",
"qty": 1.00000000,
"unit": "3000",
"unitPrice": 300.00000000,
"taxCode": null,
"taxRate": null,
"taxAdjustment": 0.00,
"localTaxAdjustment": 0.00,
"discount": null,
"discountAmt": 0.00,
"subTotalExTax": 300.00,
"localSubTotalExTax": 300.00,
"tax": 0.00,
"localTax": 0.00,
"subTotal": 300.00,
"localSubTotal": 300.00,
"taxCurrencyTax": 0.00,
"taxCurrencySubTotalExTax": 300.00,
"deptNo": null
},
{
"docKey": 103,
"dtlKey": 234,
"seq": 1,
"productId": 5,
"productCode": "P-00001",
"productVariantId": null,
"productVariant1Option": null,
"productVariant2Option": null,
"description": "Shirt",
"furtherDescription": "",
"qty": 1.00000000,
"unit": "50000",
"unitPrice": 200.00000000,
"taxCode": "P-5",
"taxRate": 5.000000,
"taxAdjustment": 0.00,
"localTaxAdjustment": 0.00,
"discount": null,
"discountAmt": 0.00,
"subTotalExTax": 200.00,
"localSubTotalExTax": 200.00,
"tax": 10.00,
"localTax": 10.00,
"subTotal": 200.00,
"localSubTotal": 200.00,
"taxCurrencyTax": 10.00,
"taxCurrencySubTotalExTax": 200.00,
"deptNo": null
},
{
"docKey": 103,
"dtlKey": 232,
"seq": 2,
"productId": 11,
"productCode": "P-00002",
"productVariantId": null,
"productVariant1Option": null,
"productVariant2Option": null,
"description": "Long Pants",
"furtherDescription": "",
"qty": 1.00000000,
"unit": "3000",
"unitPrice": 450.00000000,
"taxCode": null,
"taxRate": null,
"taxAdjustment": 0.00,
"localTaxAdjustment": 0.00,
"discount": null,
"discountAmt": 0.00,
"subTotalExTax": 450.00,
"localSubTotalExTax": 450.00,
"tax": 0.00,
"localTax": 0.00,
"subTotal": 450.00,
"localSubTotal": 450.00,
"taxCurrencyTax": 0.00,
"taxCurrencySubTotalExTax": 450.00,
"deptNo": null
}
]
}
Example: Remove the second row of detail data records (record with description
field value of "Shirt").
Re-enter all data in the details
field without the second array element.
{
"master": {},
"details": [
{
"productCode": "P-00003",
"productVariant": null,
"description": "Coat",
"furtherDescription": "",
"qty": 1,
"unit": "3000",
"unitPrice": 300,
"discount": null,
"taxCode": "P-5",
"taxAdjustment": 0,
"localTaxAdjustment": 0,
"deptNo": null
},
{
"productCode": "P-00002",
"description": "Long Pants",
"qty": 1,
"unitPrice": 450
}
],
"autoFillOption": {
"taxCode": true
},
"saveApprove": null
}
Example Request URL:
Parameters:accountBookId
= 1 docNo
= PO-000001 URL:
PUT: https://accounting-api.autocountcloud.com/1/purchaseorder?docNo=PO-000001
Response
Success Response
Code: 204
Error Response
Response Body
object: Error Response Model
Example Error Response Body
{
"statusCode": 401,
"message": "401 Unauthorized."
}