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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 envelope \{ d: \{ results: \[...\], __count?, __next? \} \}. Properties listed below describe each element of data.d.results. |
Retrieve a single business partner by BusinessPartner key from SAP S/4HANA Cloud (API_BUSINESS_PARTNER, A_BusinessPartner).
| Parameter | Type | Required | Description |
|---|
subdomain | string | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 (under d in OData v2) |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 (201 on success) |
data | json | Created A_BusinessPartner entity (under d in OData v2) |
Update fields on an A_BusinessPartner entity in SAP S/4HANA Cloud (API_BUSINESS_PARTNER). Uses HTTP MERGE (OData v2 partial update) — only the fields you provide are written; 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. Deep updates on nested associations (e.g. to_BusinessPartnerAddress) are not supported by SAP (KBA 2833338) — use the dedicated child endpoints.
| Parameter | Type | Required | Description |
|---|
subdomain | string | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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, or \{ results, __count?, __next? \} when pagination metadata is present (proxy unwraps the OData v2 d envelope). Properties below describe each customer item. |
Retrieve a single customer by Customer key from SAP S/4HANA Cloud (API_BUSINESS_PARTNER, A_Customer).
| Parameter | Type | Required | Description |
|---|
subdomain | string | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | object | A_Customer entity |
Update fields on an A_Customer entity in SAP S/4HANA Cloud (API_BUSINESS_PARTNER). Uses HTTP MERGE (OData v2 partial update) — only the fields you provide are written; existing values are preserved. A_Customer is limited to modifiable fields such as OrderIsBlockedForCustomer, DeliveryIsBlocked, BillingIsBlockedForCustomer (Edm.String reason codes like "01"), PostingIsBlocked, and DeletionIndicator (Edm.Boolean). 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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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":"01","DeletionIndicator":false}). Block-reason fields are Edm.String codes, not booleans. |
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 | object | 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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; collection at output.data.d.results |
Retrieve a single supplier by Supplier key from SAP S/4HANA Cloud (API_BUSINESS_PARTNER, A_Supplier).
| Parameter | Type | Required | Description |
|---|
subdomain | string | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; entity at output.data.d |
Update fields on an A_Supplier entity in SAP S/4HANA Cloud (API_BUSINESS_PARTNER). Uses HTTP MERGE (OData v2 partial update) — only the fields you provide are written; existing values are preserved. A_Supplier is limited to modifiable fields such as PostingIsBlocked, PurchasingIsBlocked, PaymentIsBlockedForSupplier, DeletionIndicator, and SupplierAccountGroup; company-code/purchasing-org segments must be updated via the to_SupplierCompany / to_SupplierPurchasingOrg deep-update endpoints. 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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 OData v2 envelope with updated entity at output.data.d when SAP returns a representation |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; collection at output.data.d.results |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; entity at output.data.d |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 (201 on create) |
data | json | OData v2 response envelope; created entity at output.data.d |
Update fields on an A_SalesOrder header in SAP S/4HANA Cloud (API_SALES_ORDER_SRV). Uses HTTP MERGE (OData v2 partial update) — only the fields you provide are written; existing values are preserved. Header-only — deep updates to to_Item / to_Partner / to_PricingElement navigations are not supported (see SAP KBA 2833338); use A_SalesOrderItem operations for line-level changes. 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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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; otherwise OData v2 envelope with the updated entity at output.data.d |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 (SAP returns 204 No Content) |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; collection at output.data.d.results |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; entity at output.data.d |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; collection at output.data.d.results |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; entity at output.data.d |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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,to_PricingElement") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | OData v2 response envelope; collection at output.data.d.results |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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,to_PricingElement") |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | OData v2 response envelope; entity at output.data.d |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; collection at output.data.d.results |
Retrieve a single product (material) by Product key from SAP S/4HANA Cloud (API_PRODUCT_SRV, A_Product).
| Parameter | Type | Required | Description |
|---|
subdomain | string | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; entity at output.data.d |
Update fields on an A_Product entity in SAP S/4HANA Cloud (API_PRODUCT_SRV). Uses HTTP MERGE (OData v2 partial update) — only the fields you provide are written; existing values are preserved. Flat scalar header fields only — deep/multi-entity updates across navigation properties are not supported by API_PRODUCT_SRV MERGE/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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 OData v2 envelope with the updated A_Product entity at output.data.d |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData payload containing the 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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData payload containing the 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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData payload containing the A_MaterialDocumentHeader entity (and optionally to_MaterialDocumentItem when expanded) |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; collection at output.data.d.results |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; entity at output.data.d |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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., {"PurReqnDescription":"Office supplies"}) |
| Parameter | Type | Description |
|---|
status | number | HTTP status code returned by SAP |
data | json | OData v2 response envelope; created entity at output.data.d |
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). Uses HTTP MERGE (OData v2 partial update) — only the fields you provide are written; existing values are preserved. Header-only — deep updates across navigations are not supported (SAP KBA 2833338); use the A_PurchaseReqnItem entity directly to modify items. 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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 OData v2 envelope with updated A_PurchaseRequisitionHeader at output.data.d |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; collection at output.data.d.results |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; entity at output.data.d |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; created entity at output.data.d |
Update fields on an A_PurchaseOrder header in SAP S/4HANA Cloud (API_PURCHASEORDER_PROCESS_SRV). Uses HTTP MERGE (OData v2 partial update) — only the fields you provide are written; existing values are preserved. Header-only — line-item changes are not supported via deep update on the header (SAP KBA 2833338); use the A_PurchaseOrderItem entity directly to modify items. 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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 OData v2 envelope with updated A_PurchaseOrder at output.data.d |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; collection at output.data.d.results |
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 | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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 | OData v2 response envelope; entity at output.data.d |
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. For write operations (POST/PUT/PATCH/MERGE/DELETE), pass an If-Match ETag obtained from a prior GET to avoid lost updates; misuse will mutate production data.
| Parameter | Type | Required | Description |
|---|
subdomain | string | No | SAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host) |
region | string | No | BTP region (e.g. eu10, us10) |
clientId | string | No | OAuth client ID from the S/4HANA Communication Arrangement |
clientSecret | string | No | 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) |
- Category:
tools
- Type:
sap_s4hana