Developer ToolsFree generatorPDF, Excel, Word exportAcumatica

Acumatica Sales Order REST JSON Template

Creating a sales order through Acumatica's contract-based REST API is a PUT to the SalesOrder entity with every field wrapped as a value object. This generator builds the URL and body so you can test it in Postman or code.

Fill in

Leave blank for cloud sites that have no virtual directory.

Check the endpoint list in Web Service Endpoints (SM207060) for your version.

Generated code
Download:

Request

PUT https://yourcompany.acumatica.com/[Site / instance name]/entity/Default/24.200.001/SalesOrder
Content-Type: application/json
Accept: application/json
Cookie: .ASPXAUTH=<session cookie from login>

JSON body

{
  "OrderType": { "value": "SO" },
  "CustomerID": { "value": "ABCHOLDING" },
  "CustomerOrder": { "value": "PO-77412" },
  "Description": { "value": "Web order via integration" },
  "Details": [
    {
      "InventoryID": { "value": "AALEGO500" },
      "OrderQty": { "value": 10 },
      "WarehouseID": { "value": "MAIN" }
    },
    {
      "InventoryID": { "value": "CONGRILL" },
      "OrderQty": { "value": 4 },
      "WarehouseID": { "value": "MAIN" }
    }
  ]
}

Login (before the PUT)

POST https://yourcompany.acumatica.com/[Site / instance name]/entity/auth/login
Content-Type: application/json

{
  "name": "<api user>",
  "password": "<password>",
  "company": "<company/tenant>"
}

Logout (after the PUT)

POST https://yourcompany.acumatica.com/[Site / instance name]/entity/auth/logout

Verify field names against your endpoint version in Web Service Endpoints and test in a non-production tenant. If the instance name is blank, remove the double slash from the URL. For OAuth 2.0 connected applications, use a bearer token instead of the login cookie. Always release API sessions with logout, as concurrent API session limits apply.

Get an integration design review

Share your integration flow for a review of error handling, retries and approvals.

Optional. The tool and every export work without this. No spam.

How to use it

Enter your instance URL, endpoint version, order type, customer and up to two lines. Copy the login call, the PUT and the logout call into your REST client in that order. A successful PUT returns the created order with its number and defaulted fields. If the response carries validation errors, they refer to the field names in the body, which makes mapping problems easy to find.

  • Authenticate first, then call the entity
  • Send quantities as numbers, not strings
  • Log out when finished to free the API session
  • Test in a sandbox tenant before production

How the contract-based API works

Acumatica exposes entities through web service endpoints. The Default endpoint ships with versioned contracts such as 24.200.001, and you can extend it or define your own in Web Service Endpoints. Each field is sent as an object with a value property, and detail lines are an array under Details. A PUT creates the record or updates it if the key fields match. Related actions such as releasing or confirming shipment are separate action endpoints.

Reading the response

The response echoes the saved order with identifiers such as OrderNbr and calculated fields like totals and status. Check the status and any approval hold, because a new order can land On Hold or Pending Approval depending on the order type configuration. Custom fields appear only if they are included in the endpoint definition. Use the expand parameter when you need related entities in the response.

Common mistakes

Forgetting the value wrapper is the top error. Others include using the wrong endpoint version for the site, sending an inventory ID with the wrong segment format, leaving sessions open until the concurrent limit is reached, and creating orders for customers on credit hold. Also be careful with retries: repeating a PUT without a unique customer order check can duplicate orders.

Frequently Asked Questions

Which endpoint version should I use?

Use the version listed in Web Service Endpoints for your Acumatica release. The version in the URL must match an existing endpoint on the site. If you built a custom endpoint, use its name and version in the path instead of Default.

How do I authenticate?

Either a cookie based login through the auth login endpoint or an OAuth 2.0 connected application with a bearer token. OAuth is preferred for production integrations because credentials are not sent with every session.

Can I add more than two lines?

Yes. Add more objects to the Details array following the same pattern. The generator provides two to show the structure. For large orders, consider batching and check the response times in your tenant.

Does this release the order or create a shipment?

No. This creates the order only. Further steps such as creating a shipment or releasing are separate actions on the relevant entities and depend on your order type setup.

If you are building integrations for web orders, EDI or quoting tools, we can help design and test them, with human approval on any write-back.