Comparing API contract versions (5.30.001, 6.00.001, 17.200.001) in MYOB Acumatica 2018 release

This page is for MYOB Acumatica consultants

Check all changes in a test environment before taking them live. Make sure all related features still work as expected and that your data is unaffected.

MYOB Acumatica 2018.1 release supports three versions of system contracts. Below are the main differences between the contract versions.

Characteristic Contract version 1 Contract version 2 Contract version 3

The system endpoint that has this contract version is included in MYOB Advanced Business. 

Yes (Endpoint Version default/5.30.001) Yes (Endpoint Version default/6.00.001) Yes (Endpoint Version default/17.200.001)

The SOAP API is supported for the endpoints with this contract version.

Yes Yes Yes
The REST API is supported for the endpoints with this contract version. No Yes Yes
You can specify particular fields of the entity to be returned from the system. No Yes Yes
By default, the system returns all fields of the entity (including fields of the linked and detail entities defined within the entity). Yes

For the SOAP API: Yes
For the REST API: No

No
By default, the system returns only the fields of the entity itself (without the fields of the linked and detail entities defined within the entity). No

For the SOAP API: No
For the REST API: Yes

Yes
Through the endpoint, you can work with the elements that were added to the MYOB Advanced Business form in a customization project. Yes Yes Yes
Through the endpoint, you can work with the predefined elements on an MYOB Advanced form that are not included in the entity definition. No Yes Yes
When optimization for speed of the retrieval of the list of records fails, the system behaves as follows. The system retrieves data in an unoptimized way (slow). The system retrieves data in an unoptimized way (slow). The system returns an error.
Custom endpoints created from scratch have this contract version. No No Yes

Using endpoints with contract version 3

When multiple records are retrieved from MYOB Acumatica through an endpoint with contract version 3, the system tries to optimise the retrieval of the records and obtain all needed records in one request to the database (instead of requesting the records one by one). If the optimisation fails, the system returns an error, which specifies the entities or fields that caused the failure of the optimised request. To prevent the error from occurring, you can do any of the following:

  • If you don't need to retrieve the entities or fields that caused the failure, you can exclude these entities or fields from the request as follows:
    • Exclude the entities from the entities specified in the $expand parameter.
    • Explicitly specify the other fields to be returned (while excluding the fields that caused the failure) by using the $select parameter.
  • If you need to retrieve the entities or fields that caused the failure, you can retrieve the needed records one by one either by key fields or IDs.