SAP S4HANA is SAP's flagship intelligent ERP suite, running on the in-memory HANA database. It powers finance, supply chain, procurement, sales, and manufacturing for organizations of every size, and exposes its business data through a broad catalog of OData services on SAP Business Technology Platform (BTP).
With SAP S4HANA, you can:
- Run core business processes: Manage finance, procurement, sales, logistics, inventory, and manufacturing on a single source of truth.
- Model master data at scale: Maintain business partners, customers, suppliers, products, and organizational structures across multiple company codes, sales organizations, and plants.
- Execute transactional flows end to end: Create and update sales orders, purchase requisitions, purchase orders, deliveries, billing documents, supplier invoices, and stock movements with full audit trails.
- Govern access cleanly: Use Communication Arrangements, Communication Systems, and Communication Scopes to scope OAuth client credentials to exactly the services each integration needs.
- Integrate via standard OData: Every entity supported here speaks OData v2 with consistent paging, filtering, expansion, and ETag-based optimistic concurrency.
In Aptlystar, the SAP S4HANA integration lets your agents read and write directly against your tenant's OData services using per-tenant OAuth 2.0 client credentials. Agents can list and fetch master data, create and update transactional documents, run stock and material document queries, and execute arbitrary OData v2 calls against any whitelisted Communication Scenario — all routed through a single internal proxy that handles token acquisition, CSRF fetch-and-retry, and OData error normalization. Use it to automate order-to-cash, procure-to-pay, and inventory workflows, keep SAP in sync with the rest of your stack, or trigger downstream agent logic from SAP business events.
Connect any SAP S4HANA tenant — Cloud Public Edition, Cloud Private Edition (RISE), or on-premise — and read or write business data through the official OData v2 services. Each tool routes through a single internal proxy that handles token acquisition, CSRF fetch-and-retry for write operations, and OData error normalization.
Pick the deployment that matches your tenant in the Deployment dropdown:
- S4HANA Cloud Public Edition — provide your BTP subaccount subdomain and region (e.g.,
eu10, us10). The host is derived automatically as {subdomain}-api.s4hana.ondemand.com, and OAuth tokens are fetched from the matching BTP UAA endpoint. Authentication is OAuth 2.0 client credentials configured in a Communication Arrangement.
- S4HANA Cloud Private Edition (RISE) — provide your OData Base URL (e.g.,
https://my-tenant.s4hana.cloud.sap). Authenticate with OAuth 2.0 client credentials (provide the tenant's UAA tokenUrl, clientId, clientSecret) or HTTP Basic with a Communication User (username, password).
- On-premise S4HANA — provide your OData Base URL (e.g.,
https://sap.internal.company.com:44300). Authenticate with OAuth 2.0 client credentials issued by your on-prem identity provider, or HTTP Basic with a service user.
Read and create business partners, customers, suppliers, sales orders, deliveries (inbound/outbound), billing documents, products, stock and material documents, purchase requisitions, purchase orders, and supplier invoices. Update business partners, customers, suppliers, products, sales orders, purchase orders, and purchase requisitions with PATCH. Run arbitrary OData v2 queries against any whitelisted Communication Scenario or registered service.
All update tools accept an optional ifMatch ETag. When omitted, If-Match defaults to a wildcard (unconditional). For safe concurrent updates, fetch the entity first, capture its ETag from the response, and pass it as ifMatch to detect lost updates.
Connect SAP S4HANA Cloud Public Edition with per-tenant OAuth 2.0 client credentials configured in your Communication Arrangements. Read and create business partners, customers, suppliers, sales orders, deliveries (inbound/outbound), billing documents, products, stock and material documents, purchase requisitions, purchase orders, and supplier invoices, or run arbitrary OData v2 queries against any whitelisted Communication Scenario.
List business partners from SAP S/4HANA Cloud (API_BUSINESS_PARTNER, A_BusinessPartner) with optional OData $filter, $top, $skip, $orderby, $select, $expand.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
filter | string | No | OData $filter expression (e.g., "BusinessPartnerCategory eq '1'") |
top | number | No | Maximum results to return ($top) |
skip | number | No | Number of results to skip ($skip) |
orderBy | string | No | OData $orderby expression |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand ($expand) |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Array of A_BusinessPartner entities |
Retrieve a single business partner by BusinessPartner key from SAP S/4HANA Cloud (API_BUSINESS_PARTNER, A_BusinessPartner).
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
businessPartner | string | Yes | BusinessPartner key (string, up to 10 characters) |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand ($expand) |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | A_BusinessPartner entity |
Create a business partner in SAP S/4HANA Cloud (API_BUSINESS_PARTNER, A_BusinessPartner). For Person category 1 provide FirstName and LastName. For Organization category 2 provide OrganizationBPName1.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
businessPartnerCategory | string | Yes | BusinessPartnerCategory: "1" Person, "2" Organization, "3" Group |
businessPartnerGrouping | string | Yes | BusinessPartnerGrouping (number range / role grouping configured in S/4HANA, e.g. "0001") |
firstName | string | No | FirstName (required for Person) |
lastName | string | No | LastName (required for Person) |
organizationBPName1 | string | No | OrganizationBPName1 (required for Organization) |
body | json | No | Optional additional A_BusinessPartner fields merged into the create payload |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Created A_BusinessPartner entity |
Update fields on an A_BusinessPartner entity in SAP S/4HANA Cloud (API_BUSINESS_PARTNER). PATCH only sends the fields you provide; existing values are preserved. If-Match defaults to a wildcard (unconditional) — for safe concurrent updates pass the ETag from a prior GET to avoid lost updates.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
businessPartner | string | Yes | BusinessPartner key to update (string, up to 10 characters) |
body | json | Yes | JSON object with A_BusinessPartner fields to update (e.g., {"FirstName":"Jane","SearchTerm1":"VIP"}) |
ifMatch | string | No | If-Match ETag for optimistic concurrency. Defaults to "*" (unconditional). |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP (204 on success) |
data | json | Null on 204 success, or updated A_BusinessPartner entity if SAP returns one |
List customers from SAP S/4HANA Cloud (API_BUSINESS_PARTNER, A_Customer) with optional OData $filter, $top, $skip, $orderby, $select, $expand.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
filter | string | No | OData $filter expression (e.g., "CustomerAccountGroup eq 'Z001'") |
top | number | No | Maximum results to return ($top) |
skip | number | No | Number of results to skip ($skip) |
orderBy | string | No | OData $orderby expression |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_CustomerCompany,to_CustomerSalesArea") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Array of A_Customer entities |
Retrieve a single customer by Customer key from SAP S/4HANA Cloud (API_BUSINESS_PARTNER, A_Customer).
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
customer | string | Yes | Customer key (string, up to 10 characters) |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_CustomerCompany,to_CustomerSalesArea") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | A_Customer entity |
Update fields on an A_Customer entity in SAP S/4HANA Cloud (API_BUSINESS_PARTNER). PATCH only sends the fields you provide; existing values are preserved. A_Customer PATCH is limited to modifiable fields such as OrderIsBlockedForCustomer, DeliveryIsBlock, BillingIsBlockedForCustomer, PostingIsBlocked, and DeletionIndicator. If-Match defaults to a wildcard - for safe concurrent updates pass the ETag from a prior GET to avoid lost updates.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
customer | string | Yes | Customer key to update (string, up to 10 characters) |
body | json | Yes | JSON object with A_Customer fields to update (e.g., {"OrderIsBlockedForCustomer":true,"DeletionIndicator":false}) |
ifMatch | string | No | If-Match ETag for optimistic concurrency. Defaults to "*" (unconditional). |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP (204 on success) |
data | json | Null on 204 success, or updated A_Customer entity if SAP returns one |
List suppliers from SAP S/4HANA Cloud (API_BUSINESS_PARTNER, A_Supplier) with optional OData $filter, $top, $skip, $orderby, $select, $expand.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
filter | string | No | OData $filter expression (e.g., "SupplierAccountGroup eq 'BP02'") |
top | number | No | Maximum results to return ($top) |
skip | number | No | Number of results to skip ($skip) |
orderBy | string | No | OData $orderby expression |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_SupplierCompany,to_SupplierPurchasingOrg") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Array of A_Supplier entities |
Retrieve a single supplier by Supplier key from SAP S/4HANA Cloud (API_BUSINESS_PARTNER, A_Supplier).
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
supplier | string | Yes | Supplier key (string, up to 10 characters) |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_SupplierCompany,to_SupplierPurchasingOrg") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | A_Supplier entity |
Update fields on an A_Supplier entity in SAP S/4HANA Cloud (API_BUSINESS_PARTNER). PATCH only sends the fields you provide; existing values are preserved. A_Supplier PATCH is limited to modifiable fields such as PostingIsBlocked, PurchasingIsBlocked, PaymentIsBlockedForSupplier, DeletionIndicator, and SupplierAccountGroup. If-Match defaults to a wildcard - for safe concurrent updates pass the ETag from a prior GET to avoid lost updates.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
supplier | string | Yes | Supplier key to update (string, up to 10 characters) |
body | json | Yes | JSON object with A_Supplier fields to update (e.g., {"PaymentIsBlockedForSupplier":true,"PostingIsBlocked":true}) |
ifMatch | string | No | If-Match ETag for optimistic concurrency. Defaults to "*" (unconditional). |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP (204 on success) |
data | json | Null on 204 success, or updated A_Supplier entity if SAP returns one |
List sales orders from SAP S/4HANA Cloud (API_SALES_ORDER_SRV, A_SalesOrder) with optional OData $filter, $top, $skip, $orderby, $select, $expand.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
filter | string | No | OData $filter expression (e.g., "SalesOrganization eq '1010'") |
top | number | No | Maximum results to return ($top) |
skip | number | No | Number of results to skip ($skip) |
orderBy | string | No | OData $orderby expression |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_Item,to_Partner") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Array of A_SalesOrder entities |
Retrieve a single sales order by SalesOrder key from SAP S/4HANA Cloud (API_SALES_ORDER_SRV, A_SalesOrder).
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
salesOrder | string | Yes | SalesOrder key (string, up to 10 characters) |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_Item") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | A_SalesOrder entity |
Create a sales order in SAP S/4HANA Cloud (API_SALES_ORDER_SRV, A_SalesOrder) with deep insert of sales order items via to_Item.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
salesOrderType | string | Yes | SalesOrderType (e.g., "OR" Standard Order) |
salesOrganization | string | Yes | SalesOrganization (4 chars, e.g., "1010") |
distributionChannel | string | Yes | DistributionChannel (2 chars, e.g., "10") |
organizationDivision | string | Yes | OrganizationDivision (2 chars, e.g., "00") |
soldToParty | string | Yes | SoldToParty business partner key (up to 10 chars) |
items | json | Yes | Array of sales order items for to_Item deep insert. Each item should include Material and RequestedQuantity (e.g., [{"Material":"TG11","RequestedQuantity":"1"}]). |
body | json | No | Optional additional A_SalesOrder fields merged into the create payload |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Created A_SalesOrder entity (with deep-inserted items if expanded by SAP) |
Update fields on an A_SalesOrder entity in SAP S/4HANA Cloud (API_SALES_ORDER_SRV). PATCH only sends the fields you provide; existing values are preserved. If-Match defaults to a wildcard (unconditional) — for safe concurrent updates pass the ETag from a prior GET to avoid lost updates.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
salesOrder | string | Yes | SalesOrder key to update (string, up to 10 characters) |
body | json | Yes | JSON object with A_SalesOrder fields to update (e.g., {"PurchaseOrderByCustomer":"PO-12345","HeaderBillingBlockReason":"01"}) |
ifMatch | string | No | If-Match ETag for optimistic concurrency. Defaults to "*" (unconditional). |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP (204 on success) |
data | json | Null on 204 success, or updated A_SalesOrder entity if SAP returns one |
Delete an A_SalesOrder entity in SAP S/4HANA Cloud (API_SALES_ORDER_SRV). Only orders without subsequent documents (deliveries, invoices) can be deleted; otherwise reject items via update instead.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
salesOrder | string | Yes | SalesOrder key to delete (string, up to 10 characters) |
ifMatch | string | No | If-Match ETag for optimistic concurrency. Defaults to "*" (unconditional). |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP (204 on success) |
data | json | Null on successful deletion |
List outbound deliveries from SAP S/4HANA Cloud (API_OUTBOUND_DELIVERY_SRV;v=0002, A_OutbDeliveryHeader) with optional OData $filter, $top, $skip, $orderby, $select, $expand.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
filter | string | No | OData $filter expression (e.g., "OverallDeliveryStatus eq 'C'") |
top | number | No | Maximum results to return ($top) |
skip | number | No | Number of results to skip ($skip) |
orderBy | string | No | OData $orderby expression |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_DeliveryDocumentItem") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Array of A_OutbDeliveryHeader entities |
Retrieve a single outbound delivery by DeliveryDocument key from SAP S/4HANA Cloud (API_OUTBOUND_DELIVERY_SRV;v=0002, A_OutbDeliveryHeader).
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
deliveryDocument | string | Yes | DeliveryDocument key (string, up to 10 characters) |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_DeliveryDocumentItem") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | A_OutbDeliveryHeader entity |
List inbound deliveries from SAP S/4HANA Cloud (API_INBOUND_DELIVERY_SRV;v=0002, A_InbDeliveryHeader) with optional OData $filter, $top, $skip, $orderby, $select, $expand.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
filter | string | No | OData $filter expression (e.g., "ReceivingPlant eq '1010'") |
top | number | No | Maximum results to return ($top) |
skip | number | No | Number of results to skip ($skip) |
orderBy | string | No | OData $orderby expression |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_DeliveryDocumentItem") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Array of A_InbDeliveryHeader entities |
Retrieve a single inbound delivery by DeliveryDocument key from SAP S/4HANA Cloud (API_INBOUND_DELIVERY_SRV;v=0002, A_InbDeliveryHeader).
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
deliveryDocument | string | Yes | DeliveryDocument key (string, up to 10 characters) |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_DeliveryDocumentItem") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | A_InbDeliveryHeader entity |
List billing documents (customer invoices) from SAP S/4HANA Cloud (API_BILLING_DOCUMENT_SRV, A_BillingDocument) with optional OData $filter, $top, $skip, $orderby, $select, $expand.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
filter | string | No | OData $filter expression (e.g., "SoldToParty eq '10100001'") |
top | number | No | Maximum results to return ($top) |
skip | number | No | Number of results to skip ($skip) |
orderBy | string | No | OData $orderby expression |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_Item,to_Partner") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Array of A_BillingDocument entities |
Retrieve a single billing document (customer invoice) by BillingDocument key from SAP S/4HANA Cloud (API_BILLING_DOCUMENT_SRV, A_BillingDocument).
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
billingDocument | string | Yes | BillingDocument key (string, up to 10 characters) |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_Item,to_Partner") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | A_BillingDocument entity |
List products (materials) from SAP S/4HANA Cloud (API_PRODUCT_SRV, A_Product) with optional OData $filter, $top, $skip, $orderby, $select, $expand.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
filter | string | No | OData $filter expression (e.g., "ProductType eq 'FERT'") |
top | number | No | Maximum results to return ($top) |
skip | number | No | Number of results to skip ($skip) |
orderBy | string | No | OData $orderby expression |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand ($expand) |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Array of A_Product entities |
Retrieve a single product (material) by Product key from SAP S/4HANA Cloud (API_PRODUCT_SRV, A_Product).
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
product | string | Yes | Product key (string, up to 40 characters) |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_Description") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | A_Product entity |
Update fields on an A_Product entity in SAP S/4HANA Cloud (API_PRODUCT_SRV). PATCH only sends the fields you provide; existing values are preserved. Flat scalar header fields only — deep/multi-entity updates across navigation properties are not supported by API_PRODUCT_SRV PATCH/PUT (see SAP KBA 2833338); update child entities (plant, valuation, sales data, etc.) via their own endpoints. If-Match defaults to a wildcard (unconditional) — for safe concurrent updates pass the ETag from a prior GET.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
product | string | Yes | Product key to update (string, up to 40 characters) |
body | json | Yes | JSON object with A_Product fields to update (e.g., {"ProductGroup":"L001","IsMarkedForDeletion":false}) |
ifMatch | string | No | If-Match ETag for optimistic concurrency. Defaults to "*" (unconditional). |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP (204 on success) |
data | json | Null on 204 success, or updated A_Product entity if SAP returns one |
List material stock quantities from SAP S/4HANA Cloud (API_MATERIAL_STOCK_SRV, A_MatlStkInAcctMod). The entity uses an 11-field composite key (Material, Plant, StorageLocation, Batch, Supplier, Customer, WBSElementInternalID, SDDocument, SDDocumentItem, InventorySpecialStockType, InventoryStockType) — query with $filter on these fields instead of a direct key lookup.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
filter | string | No | OData $filter expression (e.g., "Material eq 'TG10' and Plant eq '1010' and InventoryStockType eq '01'") |
top | number | No | Maximum results to return ($top) |
skip | number | No | Number of results to skip ($skip) |
orderBy | string | No | OData $orderby expression |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand ($expand) |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Array of A_MatlStkInAcctMod stock entries |
List material document headers (goods movements) from SAP S/4HANA Cloud (API_MATERIAL_DOCUMENT_SRV, A_MaterialDocumentHeader) with optional OData $filter, $top, $skip, $orderby, $select, $expand.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
filter | string | No | OData $filter expression (e.g., "MaterialDocumentYear eq '2024' and PostingDate ge datetime'2024-01-01T00:00:00'") |
top | number | No | Maximum results to return ($top) |
skip | number | No | Number of results to skip ($skip) |
orderBy | string | No | OData $orderby expression |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_MaterialDocumentItem") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Array of A_MaterialDocumentHeader entities |
Retrieve a single material document header by composite key (MaterialDocument + MaterialDocumentYear) from SAP S/4HANA Cloud (API_MATERIAL_DOCUMENT_SRV, A_MaterialDocumentHeader).
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
materialDocumentYear | string | Yes | MaterialDocumentYear (4-character year, e.g., "2024") |
materialDocument | string | Yes | MaterialDocument key (string, up to 10 characters) |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_MaterialDocumentItem") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | A_MaterialDocumentHeader entity |
List purchase requisitions from SAP S/4HANA Cloud (API_PURCHASEREQ_PROCESS_SRV, A_PurchaseRequisitionHeader) with optional OData $filter, $top, $skip, $orderby, $select, $expand. Note: API_PURCHASEREQ_PROCESS_SRV is deprecated since S/4HANA Cloud Public Edition 2402; the successor is API_PURCHASEREQUISITION_2 (OData v4). This tool still works against tenants where the legacy service is enabled.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
filter | string | No | OData $filter expression (e.g., "PurchaseRequisitionType eq 'NB'") |
top | number | No | Maximum results to return ($top) |
skip | number | No | Number of results to skip ($skip) |
orderBy | string | No | OData $orderby expression |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_PurchaseReqnItem") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Array of A_PurchaseRequisitionHeader entities |
Retrieve a single purchase requisition by PurchaseRequisition key from SAP S/4HANA Cloud (API_PURCHASEREQ_PROCESS_SRV, A_PurchaseRequisitionHeader). Note: API_PURCHASEREQ_PROCESS_SRV is deprecated since S/4HANA Cloud Public Edition 2402; the successor is API_PURCHASEREQUISITION_2 (OData v4). This tool still works against tenants where the legacy service is enabled.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
purchaseRequisition | string | Yes | PurchaseRequisition key (string, up to 10 characters) |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_PurchaseReqnItem") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | A_PurchaseRequisitionHeader entity |
Create a purchase requisition in SAP S/4HANA Cloud (API_PURCHASEREQ_PROCESS_SRV, A_PurchaseRequisitionHeader). PurchaseRequisition is auto-assigned by SAP from the document number range; provide line items via the to_PurchaseReqnItem deep-insert array. Note: API_PURCHASEREQ_PROCESS_SRV is deprecated since S/4HANA Cloud Public Edition 2402; the successor is API_PURCHASEREQUISITION_2 (OData v4). This tool still works against tenants where the legacy service is enabled.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
purchaseRequisitionType | string | Yes | PurchaseRequisitionType (e.g., "NB" Standard PR) |
items | json | Yes | to_PurchaseReqnItem deep-insert array (e.g., [{"PurchaseRequisitionItem":"10","Material":"TG11","RequestedQuantity":"5","Plant":"1010","BaseUnit":"PC","DeliveryDate":"/Date(1735689600000)/"}]) |
body | json | No | Additional A_PurchaseRequisitionHeader fields merged into the create payload (e.g., {"PurchaseRequisitionDescription":"Office supplies"}) |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Created A_PurchaseRequisitionHeader entity |
Update fields on an A_PurchaseRequisitionHeader entity in SAP S/4HANA Cloud (API_PURCHASEREQ_PROCESS_SRV; deprecated since S/4HANA 2402, successor is API_PURCHASEREQUISITION_2 OData v4). PATCH only sends the fields you provide; existing values are preserved. If-Match defaults to a wildcard - for safe concurrent updates pass the ETag from a prior GET to avoid lost updates.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
purchaseRequisition | string | Yes | PurchaseRequisition key to update (string, up to 10 characters) |
body | json | Yes | JSON object with A_PurchaseRequisitionHeader fields to update (e.g., {"PurchaseRequisitionType":"NB"}) |
ifMatch | string | No | If-Match ETag for optimistic concurrency. Defaults to "*" (unconditional). |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP (204 on success) |
data | json | Null on 204 success, or updated A_PurchaseRequisitionHeader entity if SAP returns one |
List purchase orders from SAP S/4HANA Cloud (API_PURCHASEORDER_PROCESS_SRV, A_PurchaseOrder) with optional OData $filter, $top, $skip, $orderby, $select, $expand.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
filter | string | No | OData $filter expression (e.g., "CompanyCode eq '1010'") |
top | number | No | Maximum results to return ($top) |
skip | number | No | Number of results to skip ($skip) |
orderBy | string | No | OData $orderby expression |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_PurchaseOrderItem") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Array of A_PurchaseOrder entities |
Retrieve a single purchase order by PurchaseOrder key from SAP S/4HANA Cloud (API_PURCHASEORDER_PROCESS_SRV, A_PurchaseOrder).
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
purchaseOrder | string | Yes | PurchaseOrder key (string, up to 10 characters) |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand (e.g., "to_PurchaseOrderItem") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | A_PurchaseOrder entity |
Create a purchase order in SAP S/4HANA Cloud (API_PURCHASEORDER_PROCESS_SRV, A_PurchaseOrder). PurchaseOrder is auto-assigned by SAP from the document number range; provide line items via the body parameter.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
purchaseOrderType | string | Yes | PurchaseOrderType (e.g., "NB" Standard PO) |
companyCode | string | Yes | CompanyCode (4 chars, e.g., "1010") |
purchasingOrganization | string | Yes | PurchasingOrganization (4 chars) |
purchasingGroup | string | Yes | PurchasingGroup (3 chars) |
supplier | string | Yes | Supplier business partner key (up to 10 chars) |
body | json | Yes | A_PurchaseOrder body containing to_PurchaseOrderItem deep-insert items (required by SAP) plus any additional header fields, e.g., {"to_PurchaseOrderItem":[{"PurchaseOrderItem":"10","Material":"TG11","OrderQuantity":"5","Plant":"1010","PurchaseOrderQuantityUnit":"PC","NetPriceAmount":"100.00","DocumentCurrency":"USD"}]}. |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Created A_PurchaseOrder entity |
Update fields on an A_PurchaseOrder entity in SAP S/4HANA Cloud (API_PURCHASEORDER_PROCESS_SRV). PATCH only sends the fields you provide; existing values are preserved. If-Match defaults to a wildcard (unconditional) — for safe concurrent updates pass the ETag from a prior GET to avoid lost updates.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
purchaseOrder | string | Yes | PurchaseOrder key to update (string, up to 10 characters) |
body | json | Yes | JSON object with A_PurchaseOrder fields to update (e.g., {"PurchasingGroup":"002","PurchaseOrderDate":"/Date(1735689600000)/"}) |
ifMatch | string | No | If-Match ETag for optimistic concurrency. Defaults to "*" (unconditional). |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP (204 on success) |
data | json | Null on 204 success, or updated A_PurchaseOrder entity if SAP returns one |
List supplier invoices from SAP S/4HANA Cloud (API_SUPPLIERINVOICE_PROCESS_SRV, A_SupplierInvoice) with optional OData $filter, $top, $skip, $orderby, $select, $expand.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
filter | string | No | OData $filter expression (e.g., "InvoicingParty eq '17300001'") |
top | number | No | Maximum results to return ($top) |
skip | number | No | Number of results to skip ($skip) |
orderBy | string | No | OData $orderby expression |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand ($expand) |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Array of A_SupplierInvoice entities |
Retrieve a single supplier invoice by composite key (SupplierInvoice + FiscalYear) from SAP S/4HANA Cloud (API_SUPPLIERINVOICE_PROCESS_SRV, A_SupplierInvoice).
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
supplierInvoice | string | Yes | SupplierInvoice key (string, up to 10 characters) |
fiscalYear | string | Yes | FiscalYear (4-character year, e.g., "2024") |
select | string | No | Comma-separated fields to return ($select) |
expand | string | No | Comma-separated navigation properties to expand ($expand) |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | A_SupplierInvoice entity |
Make an arbitrary OData v2 call against any SAP S/4HANA Cloud whitelisted Communication Scenario. Use when no dedicated tool exists for the entity. The proxy handles auth, CSRF, and OData unwrapping.
| Parameter | Type | Required | Description |
|---|
subdomain | string | Yes | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | Yes | BTP region (e.g. eu10, us10) |
clientId | string | Yes | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | Yes | OAuth client secret from the S/4HANA Communication Arrangement |
deploymentType | string | No | Deployment type: cloud_public (default), cloud_private, or on_premise |
authType | string | No | Authentication type: oauth_client_credentials (default) or basic |
baseUrl | string | No | Base URL of the S/4HANA host (Cloud Private / On-Premise) |
tokenUrl | string | No | OAuth token URL (Cloud Private / On-Premise + OAuth) |
username | string | No | Username for HTTP Basic auth |
password | string | No | Password for HTTP Basic auth |
service | string | Yes | OData service name (e.g., "API_BUSINESS_PARTNER", "API_SALES_ORDER_SRV") |
path | string | Yes | Path inside the service (e.g., "/A_BusinessPartner" or "/A_BusinessPartner('1000123')") |
method | string | No | HTTP method: GET (default), POST, PATCH, PUT, DELETE, MERGE |
query | json | No | OData query parameters as JSON object or query string (e.g., {"$filter":"BusinessPartnerCategory eq '1'","$top":10}). $format=json is added automatically when omitted. |
body | json | No | JSON request body for write operations |
ifMatch | string | No | ETag value for the If-Match header (required by SAP for PATCH/PUT/DELETE on existing entities) |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | Parsed OData payload (entity, collection, or null on 204) |