I've just been testing serialisation of entities using the following code:
SellableItem si = new SellableItem();
var blah = si.Deflate();
and it appears to produce the following json:
{
"$type": "Sitecore.Commerce.Plugin.Catalog.SellableItem, Sitecore.Commerce.Plugin.Catalog",
"Description": "",
"ProductId": "",
"Brand": "",
"Manufacturer": "",
"TypeOfGood": "",
"Tags": {
"$type": "System.Collections.Generic.List`1[[Sitecore.Commerce.Core.Tag, Sitecore.Commerce.Core]], mscorlib",
"$values": [
]
},
"SitecoreId": "b3eb2ddc-03a8-4188-9ef6-b7e7e8807ed3",
"Components": {
"$type": "System.Collections.Generic.List`1[[Sitecore.Commerce.Core.Component, Sitecore.Commerce.Core]], mscorlib",
"$values": [
]
},
"DateCreated": "2018-03-02T12:56:06.4532853+00:00",
"DateUpdated": "2018-03-02T12:56:06.4532853+00:00",
"DisplayName": "",
"Id": "5ae99f3c30e94c529f387997de592958",
"Version": 0,
"IsPersisted": false,
"Name": "",
"Policies": {
"$type": "System.Collections.Generic.List`1[[Sitecore.Commerce.Core.Policy, Sitecore.Commerce.Core]], mscorlib",
"$values": [
]
}
}
which in theory should be enough for you to generate your json payload.