Hi, OData isn't "inbound only" it's synchronous and caller-initiated, in both directions:
External system can POST/PATCH to write data into D365FO (like your example)
External system can also GET to pull data out of D365FO
What OData can't do is let D365FO push data out on its own when something happens. For that, you need:
Business Events real-time, event-driven push (order created → notify subscriber instantly)
DMF scheduled/bulk file-based export
Middleware (Power Automate, Logic Apps) usually sits on top of the above to route data further
So the better distinction is: OData = pull-based, external system decides when to call. Business Events = push-based, D365FO decides when to notify.
Your example flow is correct. Two small fixes:
Sales order numer is normally auto-generated by a number sequence you'd read it back from the response rather than pass it in
Check the entity's actual field names via GET…/data/$metadata before finalizing your payload (e.g. delivery date may not literally be Deliver date)
Thanks,