Create a Purchase Order with Tax Parameters Overridden

If you are using the contract-based REST API to integrate MYOB Acumatica with an external system, this external system can create purchase orders. In the orders, these systems can override the tax details that are calculated by the system.

Testing of the Request

Before you test the code below, you need to do the following to configure your client application and the MYOB Acumatica instance to be used:
  1. Deploy a new MYOB Acumatica instance with the U100 dataset. For details on deploying an instance, see To Deploy an MYOB Acumatica Instance.
  2. On the Enable/Disable Features (CS100000) form, make sure that the Inventory and Order Management feature is enabled.
  3. If you use Postman as the client application for testing, in the IntegrationDevelopmentGuide.postman_collection.json collection (which is located in the IntegrationDevelopment\Help folder of the Help-and-Training-Examples repository on GitHub), make sure the collection variables have the proper values.
  4. To sign in to the instance in the client application, use the tenant name (which you specified when you created the instance) and the HEADOFFICE branch.

Request

Tip: In the request example below, <MYOB Acumatica instance URL> is the URL of the MYOB Acumatica instance (such as https://my.acumatica.com/MyInstance). You can omit the instance name in the URL (that is, you can use https://my.acumatica.com) if the instance is installed in the root of the website.
You can use the following example of an HTTP request to create a purchase order and set the amount of the NYSTATETAX tax to 0.
PUT ?$expand=Details,TaxDetails HTTP/1.1
Host: [<MYOB Acumatica instance URL>]/entity/Default/23.200.001/PurchaseOrder
Accept: application/json
Content-Type: application/json

{
    "Branch": { "value": "HEADOFFICE" },
    "Details": [
        {
            "BranchID": { "value": "HEADOFFICE" },
            "InventoryID": { "value": "APPLES" },
            "LineType": { "value": "Goods for IN" },
            "OrderQty": { "value": 20 },
            "OrderType": { "value": "RO" },
            "TaxCategory": { "value": "TAXABLE" },
            "UnitCost": { "value": 2.29 },
            "UOM": { "value": "LB" },
            "WarehouseID": { "value": "WHOLESALE" }
        }
    ],
    "Hold": { "value": true },
    "IsTaxValid":  { "value": true },
    "Location": { "value": "MAIN" },
    "TaxDetails": [
        {
            "TaxableAmount": { "value": 45.8 },
            "TaxAmount": { "value": 0 },
            "TaxID": { "value": "NYSTATETAX" },
            "TaxRate": { "value": 0 }
        }
    ],
    "Terms": { "value": "30D" },
    "Type": { "value": "Normal" },
    "VendorID": { "value": "ALLFRUITS" },
    "VendorTaxZone": { "value": "NYZONE" }
}

Usage Notes

If the IsTaxValid field is specified in the request body, its value is set to true, and an external tax zone is specified, then the tax details from the request body are used without modification, and no other taxes are applied.

If the IsTaxValid field is specified in the request body, its value is set to true, and an internal tax zone is specified, then the tax details from the request body are compared to those calculated by the system. If the taxes specified in the request body are present among those calculated by the system, then the tax details from the request body are used without modification and no other taxes are applied.

If the IsTaxValid field is not specified in the request body or its value is not set to true, tax calculation is performed by the system.