Mandala
Tools

SAP S4HANA

Read and write SAP S4HANA Cloud business data via OData

Usage Instructions

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.

Tools

sap_s4hana_list_business_partners

List business partners from SAP S/4HANA Cloud (API_BUSINESS_PARTNER, A_BusinessPartner) with optional OData $filter, $top, $skip, $orderby, $select, $expand.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
filterstringNoOData $filter expression (e.g., "BusinessPartnerCategory eq '1'")
topnumberNoMaximum results to return ($top)
skipnumberNoNumber of results to skip ($skip)
orderBystringNoOData $orderby expression
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand ($expand)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 envelope \{ d: \{ results: \[...\], __count?, __next? \} \}. Properties listed below describe each element of data.d.results.

sap_s4hana_get_business_partner

Retrieve a single business partner by BusinessPartner key from SAP S/4HANA Cloud (API_BUSINESS_PARTNER, A_BusinessPartner).

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
businessPartnerstringYesBusinessPartner key (string, up to 10 characters)
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand ($expand)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonA_BusinessPartner entity (under d in OData v2)

sap_s4hana_create_business_partner

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
businessPartnerCategorystringYesBusinessPartnerCategory: "1" Person, "2" Organization, "3" Group
businessPartnerGroupingstringYesBusinessPartnerGrouping (number range / role grouping configured in S/4HANA, e.g. "0001")
firstNamestringNoFirstName (required for Person)
lastNamestringNoLastName (required for Person)
organizationBPName1stringNoOrganizationBPName1 (required for Organization)
bodyjsonNoOptional additional A_BusinessPartner fields merged into the create payload

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP (201 on success)
datajsonCreated A_BusinessPartner entity (under d in OData v2)

sap_s4hana_update_business_partner

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
businessPartnerstringYesBusinessPartner key to update (string, up to 10 characters)
bodyjsonYesJSON object with A_BusinessPartner fields to update (e.g., {"FirstName":"Jane","SearchTerm1":"VIP"})
ifMatchstringNoIf-Match ETag for optimistic concurrency. Defaults to "*" (unconditional).

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP (204 on success)
datajsonNull on 204 success, or updated A_BusinessPartner entity if SAP returns one

sap_s4hana_list_customers

List customers from SAP S/4HANA Cloud (API_BUSINESS_PARTNER, A_Customer) with optional OData $filter, $top, $skip, $orderby, $select, $expand.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
filterstringNoOData $filter expression (e.g., "CustomerAccountGroup eq 'Z001'")
topnumberNoMaximum results to return ($top)
skipnumberNoNumber of results to skip ($skip)
orderBystringNoOData $orderby expression
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_CustomerCompany,to_CustomerSalesArea")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonArray 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.

sap_s4hana_get_customer

Retrieve a single customer by Customer key from SAP S/4HANA Cloud (API_BUSINESS_PARTNER, A_Customer).

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
customerstringYesCustomer key (string, up to 10 characters)
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_CustomerCompany,to_CustomerSalesArea")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
dataobjectA_Customer entity

sap_s4hana_update_customer

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
customerstringYesCustomer key to update (string, up to 10 characters)
bodyjsonYesJSON object with A_Customer fields to update (e.g., {"OrderIsBlockedForCustomer":"01","DeletionIndicator":false}). Block-reason fields are Edm.String codes, not booleans.
ifMatchstringNoIf-Match ETag for optimistic concurrency. Defaults to "*" (unconditional).

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP (204 on success)
dataobjectNull on 204 success, or updated A_Customer entity if SAP returns one

sap_s4hana_list_suppliers

List suppliers from SAP S/4HANA Cloud (API_BUSINESS_PARTNER, A_Supplier) with optional OData $filter, $top, $skip, $orderby, $select, $expand.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
filterstringNoOData $filter expression (e.g., "SupplierAccountGroup eq 'BP02'")
topnumberNoMaximum results to return ($top)
skipnumberNoNumber of results to skip ($skip)
orderBystringNoOData $orderby expression
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_SupplierCompany,to_SupplierPurchasingOrg")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; collection at output.data.d.results

sap_s4hana_get_supplier

Retrieve a single supplier by Supplier key from SAP S/4HANA Cloud (API_BUSINESS_PARTNER, A_Supplier).

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
supplierstringYesSupplier key (string, up to 10 characters)
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_SupplierCompany,to_SupplierPurchasingOrg")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; entity at output.data.d

sap_s4hana_update_supplier

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
supplierstringYesSupplier key to update (string, up to 10 characters)
bodyjsonYesJSON object with A_Supplier fields to update (e.g., {"PaymentIsBlockedForSupplier":true,"PostingIsBlocked":true})
ifMatchstringNoIf-Match ETag for optimistic concurrency. Defaults to "*" (unconditional).

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP (204 on success)
datajsonNull on 204 success, or OData v2 envelope with updated entity at output.data.d when SAP returns a representation

sap_s4hana_list_sales_orders

List sales orders from SAP S/4HANA Cloud (API_SALES_ORDER_SRV, A_SalesOrder) with optional OData $filter, $top, $skip, $orderby, $select, $expand.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
filterstringNoOData $filter expression (e.g., "SalesOrganization eq '1010'")
topnumberNoMaximum results to return ($top)
skipnumberNoNumber of results to skip ($skip)
orderBystringNoOData $orderby expression
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_Item,to_Partner")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; collection at output.data.d.results

sap_s4hana_get_sales_order

Retrieve a single sales order by SalesOrder key from SAP S/4HANA Cloud (API_SALES_ORDER_SRV, A_SalesOrder).

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
salesOrderstringYesSalesOrder key (string, up to 10 characters)
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_Item")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; entity at output.data.d

sap_s4hana_create_sales_order

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
salesOrderTypestringYesSalesOrderType (e.g., "OR" Standard Order)
salesOrganizationstringYesSalesOrganization (4 chars, e.g., "1010")
distributionChannelstringYesDistributionChannel (2 chars, e.g., "10")
organizationDivisionstringYesOrganizationDivision (2 chars, e.g., "00")
soldToPartystringYesSoldToParty business partner key (up to 10 chars)
itemsjsonYesArray of sales order items for to_Item deep insert. Each item should include Material and RequestedQuantity (e.g., [{"Material":"TG11","RequestedQuantity":"1"}]).
bodyjsonNoOptional additional A_SalesOrder fields merged into the create payload

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP (201 on create)
datajsonOData v2 response envelope; created entity at output.data.d

sap_s4hana_update_sales_order

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
salesOrderstringYesSalesOrder key to update (string, up to 10 characters)
bodyjsonYesJSON object with A_SalesOrder fields to update (e.g., {"PurchaseOrderByCustomer":"PO-12345","HeaderBillingBlockReason":"01"})
ifMatchstringNoIf-Match ETag for optimistic concurrency. Defaults to "*" (unconditional).

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP (204 on success)
datajsonNull on 204 success; otherwise OData v2 envelope with the updated entity at output.data.d

sap_s4hana_delete_sales_order

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
salesOrderstringYesSalesOrder key to delete (string, up to 10 characters)
ifMatchstringNoIf-Match ETag for optimistic concurrency. Defaults to "*" (unconditional).

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP (204 on success)
datajsonNull on successful deletion (SAP returns 204 No Content)

sap_s4hana_list_outbound_deliveries

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
filterstringNoOData $filter expression (e.g., "OverallDeliveryStatus eq 'C'")
topnumberNoMaximum results to return ($top)
skipnumberNoNumber of results to skip ($skip)
orderBystringNoOData $orderby expression
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_DeliveryDocumentItem")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; collection at output.data.d.results

sap_s4hana_get_outbound_delivery

Retrieve a single outbound delivery by DeliveryDocument key from SAP S/4HANA Cloud (API_OUTBOUND_DELIVERY_SRV;v=0002, A_OutbDeliveryHeader).

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
deliveryDocumentstringYesDeliveryDocument key (string, up to 10 characters)
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_DeliveryDocumentItem")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; entity at output.data.d

sap_s4hana_list_inbound_deliveries

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
filterstringNoOData $filter expression (e.g., "ReceivingPlant eq '1010'")
topnumberNoMaximum results to return ($top)
skipnumberNoNumber of results to skip ($skip)
orderBystringNoOData $orderby expression
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_DeliveryDocumentItem")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; collection at output.data.d.results

sap_s4hana_get_inbound_delivery

Retrieve a single inbound delivery by DeliveryDocument key from SAP S/4HANA Cloud (API_INBOUND_DELIVERY_SRV;v=0002, A_InbDeliveryHeader).

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
deliveryDocumentstringYesDeliveryDocument key (string, up to 10 characters)
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_DeliveryDocumentItem")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; entity at output.data.d

sap_s4hana_list_billing_documents

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
filterstringNoOData $filter expression (e.g., "SoldToParty eq '10100001'")
topnumberNoMaximum results to return ($top)
skipnumberNoNumber of results to skip ($skip)
orderBystringNoOData $orderby expression
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_Item,to_Partner,to_PricingElement")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; collection at output.data.d.results

sap_s4hana_get_billing_document

Retrieve a single billing document (customer invoice) by BillingDocument key from SAP S/4HANA Cloud (API_BILLING_DOCUMENT_SRV, A_BillingDocument).

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
billingDocumentstringYesBillingDocument key (string, up to 10 characters)
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_Item,to_Partner,to_PricingElement")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; entity at output.data.d

sap_s4hana_list_products

List products (materials) from SAP S/4HANA Cloud (API_PRODUCT_SRV, A_Product) with optional OData $filter, $top, $skip, $orderby, $select, $expand.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
filterstringNoOData $filter expression (e.g., "ProductType eq 'FERT'")
topnumberNoMaximum results to return ($top)
skipnumberNoNumber of results to skip ($skip)
orderBystringNoOData $orderby expression
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand ($expand)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; collection at output.data.d.results

sap_s4hana_get_product

Retrieve a single product (material) by Product key from SAP S/4HANA Cloud (API_PRODUCT_SRV, A_Product).

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
productstringYesProduct key (string, up to 40 characters)
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_Description")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; entity at output.data.d

sap_s4hana_update_product

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
productstringYesProduct key to update (string, up to 40 characters)
bodyjsonYesJSON object with A_Product fields to update (e.g., {"ProductGroup":"L001","IsMarkedForDeletion":false})
ifMatchstringNoIf-Match ETag for optimistic concurrency. Defaults to "*" (unconditional).

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP (204 on success)
datajsonNull on 204 success, or OData v2 envelope with the updated A_Product entity at output.data.d

sap_s4hana_list_material_stock

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
filterstringNoOData $filter expression (e.g., "Material eq 'TG10' and Plant eq '1010' and InventoryStockType eq '01'")
topnumberNoMaximum results to return ($top)
skipnumberNoNumber of results to skip ($skip)
orderBystringNoOData $orderby expression
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand ($expand)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData payload containing the array of A_MatlStkInAcctMod stock entries

sap_s4hana_list_material_documents

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
filterstringNoOData $filter expression (e.g., "MaterialDocumentYear eq '2024' and PostingDate ge datetime'2024-01-01T00:00:00'")
topnumberNoMaximum results to return ($top)
skipnumberNoNumber of results to skip ($skip)
orderBystringNoOData $orderby expression
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_MaterialDocumentItem")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData payload containing the array of A_MaterialDocumentHeader entities

sap_s4hana_get_material_document

Retrieve a single material document header by composite key (MaterialDocument + MaterialDocumentYear) from SAP S/4HANA Cloud (API_MATERIAL_DOCUMENT_SRV, A_MaterialDocumentHeader).

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
materialDocumentYearstringYesMaterialDocumentYear (4-character year, e.g., "2024")
materialDocumentstringYesMaterialDocument key (string, up to 10 characters)
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_MaterialDocumentItem")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData payload containing the A_MaterialDocumentHeader entity (and optionally to_MaterialDocumentItem when expanded)

sap_s4hana_list_purchase_requisitions

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
filterstringNoOData $filter expression (e.g., "PurchaseRequisitionType eq 'NB'")
topnumberNoMaximum results to return ($top)
skipnumberNoNumber of results to skip ($skip)
orderBystringNoOData $orderby expression
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_PurchaseReqnItem")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; collection at output.data.d.results

sap_s4hana_get_purchase_requisition

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
purchaseRequisitionstringYesPurchaseRequisition key (string, up to 10 characters)
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_PurchaseReqnItem")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; entity at output.data.d

sap_s4hana_create_purchase_requisition

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
purchaseRequisitionTypestringYesPurchaseRequisitionType (e.g., "NB" Standard PR)
itemsjsonYesto_PurchaseReqnItem deep-insert array (e.g., [{"PurchaseRequisitionItem":"10","Material":"TG11","RequestedQuantity":"5","Plant":"1010","BaseUnit":"PC","DeliveryDate":"/Date(1735689600000)/"}])
bodyjsonNoAdditional A_PurchaseRequisitionHeader fields merged into the create payload (e.g., {"PurReqnDescription":"Office supplies"})

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; created entity at output.data.d

sap_s4hana_update_purchase_requisition

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
purchaseRequisitionstringYesPurchaseRequisition key to update (string, up to 10 characters)
bodyjsonYesJSON object with A_PurchaseRequisitionHeader fields to update (e.g., {"PurchaseRequisitionType":"NB"})
ifMatchstringNoIf-Match ETag for optimistic concurrency. Defaults to "*" (unconditional).

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP (204 on success)
datajsonNull on 204 success, or OData v2 envelope with updated A_PurchaseRequisitionHeader at output.data.d

sap_s4hana_list_purchase_orders

List purchase orders from SAP S/4HANA Cloud (API_PURCHASEORDER_PROCESS_SRV, A_PurchaseOrder) with optional OData $filter, $top, $skip, $orderby, $select, $expand.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
filterstringNoOData $filter expression (e.g., "CompanyCode eq '1010'")
topnumberNoMaximum results to return ($top)
skipnumberNoNumber of results to skip ($skip)
orderBystringNoOData $orderby expression
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_PurchaseOrderItem")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; collection at output.data.d.results

sap_s4hana_get_purchase_order

Retrieve a single purchase order by PurchaseOrder key from SAP S/4HANA Cloud (API_PURCHASEORDER_PROCESS_SRV, A_PurchaseOrder).

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
purchaseOrderstringYesPurchaseOrder key (string, up to 10 characters)
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand (e.g., "to_PurchaseOrderItem")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; entity at output.data.d

sap_s4hana_create_purchase_order

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
purchaseOrderTypestringYesPurchaseOrderType (e.g., "NB" Standard PO)
companyCodestringYesCompanyCode (4 chars, e.g., "1010")
purchasingOrganizationstringYesPurchasingOrganization (4 chars)
purchasingGroupstringYesPurchasingGroup (3 chars)
supplierstringYesSupplier business partner key (up to 10 chars)
bodyjsonYesA_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"}]}.

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; created entity at output.data.d

sap_s4hana_update_purchase_order

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
purchaseOrderstringYesPurchaseOrder key to update (string, up to 10 characters)
bodyjsonYesJSON object with A_PurchaseOrder fields to update (e.g., {"PurchasingGroup":"002","PurchaseOrderDate":"/Date(1735689600000)/"})
ifMatchstringNoIf-Match ETag for optimistic concurrency. Defaults to "*" (unconditional).

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP (204 on success)
datajsonNull on 204 success, or OData v2 envelope with updated A_PurchaseOrder at output.data.d

sap_s4hana_list_supplier_invoices

List supplier invoices from SAP S/4HANA Cloud (API_SUPPLIERINVOICE_PROCESS_SRV, A_SupplierInvoice) with optional OData $filter, $top, $skip, $orderby, $select, $expand.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
filterstringNoOData $filter expression (e.g., "InvoicingParty eq '17300001'")
topnumberNoMaximum results to return ($top)
skipnumberNoNumber of results to skip ($skip)
orderBystringNoOData $orderby expression
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand ($expand)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; collection at output.data.d.results

sap_s4hana_get_supplier_invoice

Retrieve a single supplier invoice by composite key (SupplierInvoice + FiscalYear) from SAP S/4HANA Cloud (API_SUPPLIERINVOICE_PROCESS_SRV, A_SupplierInvoice).

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
supplierInvoicestringYesSupplierInvoice key (string, up to 10 characters)
fiscalYearstringYesFiscalYear (4-character year, e.g., "2024")
selectstringNoComma-separated fields to return ($select)
expandstringNoComma-separated navigation properties to expand ($expand)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonOData v2 response envelope; entity at output.data.d

sap_s4hana_odata_query

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.

Input

ParameterTypeRequiredDescription
subdomainstringNoSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringNoBTP region (e.g. eu10, us10)
clientIdstringNoOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringNoOAuth client secret from the S/4HANA Communication Arrangement
deploymentTypestringNoDeployment type: cloud_public (default), cloud_private, or on_premise
authTypestringNoAuthentication type: oauth_client_credentials (default) or basic
baseUrlstringNoBase URL of the S/4HANA host (Cloud Private / On-Premise)
tokenUrlstringNoOAuth token URL (Cloud Private / On-Premise + OAuth)
usernamestringNoUsername for HTTP Basic auth
passwordstringNoPassword for HTTP Basic auth
servicestringYesOData service name (e.g., "API_BUSINESS_PARTNER", "API_SALES_ORDER_SRV")
pathstringYesPath inside the service (e.g., "/A_BusinessPartner" or "/A_BusinessPartner('1000123')")
methodstringNoHTTP method: GET (default), POST, PATCH, PUT, DELETE, MERGE
queryjsonNoOData query parameters as JSON object or query string (e.g., {"$filter":"BusinessPartnerCategory eq '1'","$top":10}). $format=json is added automatically when omitted.
bodyjsonNoJSON request body for write operations
ifMatchstringNoETag value for the If-Match header (required by SAP for PATCH/PUT/DELETE on existing entities)

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonParsed OData payload (entity, collection, or null on 204)

Notes

  • Category: tools
  • Type: sap_s4hana
On this page

On this page

Usage Instructions
Tools
sap_s4hana_list_business_partners
Input
Output
sap_s4hana_get_business_partner
Input
Output
sap_s4hana_create_business_partner
Input
Output
sap_s4hana_update_business_partner
Input
Output
sap_s4hana_list_customers
Input
Output
sap_s4hana_get_customer
Input
Output
sap_s4hana_update_customer
Input
Output
sap_s4hana_list_suppliers
Input
Output
sap_s4hana_get_supplier
Input
Output
sap_s4hana_update_supplier
Input
Output
sap_s4hana_list_sales_orders
Input
Output
sap_s4hana_get_sales_order
Input
Output
sap_s4hana_create_sales_order
Input
Output
sap_s4hana_update_sales_order
Input
Output
sap_s4hana_delete_sales_order
Input
Output
sap_s4hana_list_outbound_deliveries
Input
Output
sap_s4hana_get_outbound_delivery
Input
Output
sap_s4hana_list_inbound_deliveries
Input
Output
sap_s4hana_get_inbound_delivery
Input
Output
sap_s4hana_list_billing_documents
Input
Output
sap_s4hana_get_billing_document
Input
Output
sap_s4hana_list_products
Input
Output
sap_s4hana_get_product
Input
Output
sap_s4hana_update_product
Input
Output
sap_s4hana_list_material_stock
Input
Output
sap_s4hana_list_material_documents
Input
Output
sap_s4hana_get_material_document
Input
Output
sap_s4hana_list_purchase_requisitions
Input
Output
sap_s4hana_get_purchase_requisition
Input
Output
sap_s4hana_create_purchase_requisition
Input
Output
sap_s4hana_update_purchase_requisition
Input
Output
sap_s4hana_list_purchase_orders
Input
Output
sap_s4hana_get_purchase_order
Input
Output
sap_s4hana_create_purchase_order
Input
Output
sap_s4hana_update_purchase_order
Input
Output
sap_s4hana_list_supplier_invoices
Input
Output
sap_s4hana_get_supplier_invoice
Input
Output
sap_s4hana_odata_query
Input
Output
Notes
SAP S4HANA