---
title: Common S/4HANA OData Services
seo_title: "Common S/4HANA OData Services for Documents & Invoices | FileRelay"
description: "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](/docs/sources/odata).

## 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:

```http
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:

```http
GET /sap/opu/odata/sap/API_SUPPLIERINVOICE_PROCESS_SRV/$metadata
Authorization: Basic … (or Bearer, depending on your setup)
```

Notes that save time:

- `$metadata` requires the **same authentication** as the service itself — a `401` here means your user or communication arrangement isn't set up, not that the service is missing.
- A `403` with 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 `…AttachmentSet` or exposing a `$value` stream are where the actual file bytes live.

## The attachment pattern

Most document extraction follows the same two-step shape regardless of service:

```http
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](/docs/connections/overview) to SharePoint, S3, or any other destination.

## Which service should I use?

- **You want files attached to business objects** → `API_CV_ATTACHMENT_SRV` covers 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](/docs/sources/cmis) instead.
- **Not sure which protocol fits at all?** → [Protocol comparison](/docs/sources/protocol-comparison) or the [interactive picker](/which-protocol).
