I ran this xml request.
<Class sparse="true" xmlns="http://schema.intuit.com/finance/v3">
<Id>3000000000000249140</Id>
<SyncToken>0</SyncToken>
<Name>holy cow this is inactive</Name>
<Active>false</Active>
<FullyQualifiedName>holy cow this is inactive</FullyQualifiedName>
</Class>
I received Response Code 200
<IntuitResponse xmlns="http://schema.intuit.com/finance/v3"
time="2014-03 21T14:31:36.948-07:00">
<Class domain="QBO" sparse="false">
<Id>3000000000000249140</Id>
<SyncToken>0</SyncToken>
<MetaData>
<CreateTime>2014-03-21T13:44:17-07:00</CreateTime>
<LastUpdatedTime>2014-03-21T13:44:17-07:00</LastUpdatedTime>
</MetaData>
<Name>holy cow this is inactive</Name>
<SubClass>false</SubClass>
<FullyQualifiedName>holy cow this is inactive</FullyQualifiedName>
<Active>true</Active>
</Class>
</IntuitResponse>
I was expecting the response to return Active=false.
When I tried to update a record from QBO that is Active=false to Active=true I got this business error message.
I received Response Code 400
<Error code="6000" element="">
<Message>A business validation error has occurred while processing your request</Message>
<Detail>Business Validation Error: You cannot modify a list element that has been deleted.</Detail>
</Error>
To further clarify, the focus point is not during creation of an entity record. This was an example of what I think is a bug issue with QBO V3 API.
Based off the documentation, I should be able to push a soft delete on any List Name entity record like the example with a Class Entity record. This is achieved by setting the Active node value to false. Whether the record exists on QBO V3 or not the response that the API returns is Response Code 200 but the record is still set to Active = true and not the expected value of false. This is telling me that there is a bug with QBO V3 and it does not set the List Name entity record Active node to false.
On the other hand, when I try to set a record Active=true to an existing record on QBO V3 that is set to Active=false I get the Response Code 400 that throws a business rule.
In conclusion, I am not sure if the intention is to allow soft deletes or not? I would now have to come up with a work around to deal with soft deletes on my application.