Common S/4HANA OData Services
Reference list of released S/4HANA OData APIs for document and invoice processing — API_SUPPLIERINVOICE_PROCESS_SRV, API_CV_ATTACHMENT_SRV, API_BILLING_DOCUMENT_SRV and more, with $metadata tips.
Common S/4HANA OData Services
S/4HANA (Cloud and on-premise) exposes released OData APIs per business object. If your goal is getting documents and attachments out of SAP, these are the services you'll meet most often. FileRelay consumes them as a client — no ABAP, no BTP DMS required. Setup guide: SAP OData Setup.
The services
| Service | Business object | Typical documents |
|---|---|---|
API_CV_ATTACHMENT_SRV |
Cross-application attachments | Any file attached to a business object via GOS / DMS — the workhorse for document extraction |
API_SUPPLIERINVOICE_PROCESS_SRV |
Supplier invoice | Incoming invoices and their attachments |
API_PURCHASEORDER_PROCESS_SRV |
Purchase order | POs, PO attachments |
API_SALES_ORDER_SRV |
Sales order | Sales orders and references |
API_BILLING_DOCUMENT_SRV |
Billing document | Customer invoices — including rendered PDFs |
API_OUTBOUND_DELIVERY_SRV |
Outbound delivery | Delivery notes |
API_MATERIAL_DOCUMENT_SRV |
Material document | Goods movements |
All of them live under the same root pattern:
https://<host>/sap/opu/odata/sap/<SERVICE_NAME>/
Inspecting a service with $metadata
Every OData service describes itself. Fetch the EDMX document to see entity sets, key fields, and navigation properties:
GET /sap/opu/odata/sap/API_SUPPLIERINVOICE_PROCESS_SRV/$metadata
Authorization: Basic … (or Bearer, depending on your setup)
Notes that save time:
$metadatarequires the same authentication as the service itself — a401here means your user or communication arrangement isn't set up, not that the service is missing.- A
403with valid credentials usually means the service isn't activated (on-premise:/IWFND/MAINT_SERVICE; Cloud: the API's communication scenario isn't in your Communication Arrangement). - Entity sets ending in
…AttachmentSetor exposing a$valuestream are where the actual file bytes live.
The attachment pattern
Most document extraction follows the same two-step shape regardless of service:
GET …/AttachmentContentSet?$filter=… # 1. list attachment metadata
GET …/AttachmentContentSet(…)/$value # 2. fetch the binary
FileRelay runs this loop for you on a poll interval (or triggered by an Event Mesh webhook), then routes each fetched document through your connections to SharePoint, S3, or any other destination.
Which service should I use?
- You want files attached to business objects →
API_CV_ATTACHMENT_SRVcovers most cases in one service. - You want the business documents themselves (e.g. rendered customer invoices) → use the object-specific service, like
API_BILLING_DOCUMENT_SRV. - You're on S/4HANA Cloud Public and the content lives in DMS → consider the CMIS source instead.
- Not sure which protocol fits at all? → Protocol comparison or the interactive picker.