AptlyStar

SAP S4HANA

Read and write SAP S4HANA Cloud business data via OData

SAP S4HANA is SAP's flagship intelligent ERP suite, running on the in-memory HANA database. It powers finance, supply chain, procurement, sales, and manufacturing for organizations of every size, and exposes its business data through a broad catalog of OData services on SAP Business Technology Platform (BTP).

With SAP S4HANA, you can:

  • Run core business processes: Manage finance, procurement, sales, logistics, inventory, and manufacturing on a single source of truth.
  • Model master data at scale: Maintain business partners, customers, suppliers, products, and organizational structures across multiple company codes, sales organizations, and plants.
  • Execute transactional flows end to end: Create and update sales orders, purchase requisitions, purchase orders, deliveries, billing documents, supplier invoices, and stock movements with full audit trails.
  • Govern access cleanly: Use Communication Arrangements, Communication Systems, and Communication Scopes to scope OAuth client credentials to exactly the services each integration needs.
  • Integrate via standard OData: Every entity supported here speaks OData v2 with consistent paging, filtering, expansion, and ETag-based optimistic concurrency.

In Aptlystar, the SAP S4HANA integration lets your agents read and write directly against your tenant's OData services using per-tenant OAuth 2.0 client credentials. Agents can list and fetch master data, create and update transactional documents, run stock and material document queries, and execute arbitrary OData v2 calls against any whitelisted Communication Scenario — all routed through a single internal proxy that handles token acquisition, CSRF fetch-and-retry, and OData error normalization. Use it to automate order-to-cash, procure-to-pay, and inventory workflows, keep SAP in sync with the rest of your stack, or trigger downstream agent logic from SAP business events.

Usage Instructions

Connect any SAP S4HANA tenant — Cloud Public Edition, Cloud Private Edition (RISE), or on-premise — and read or write business data through the official OData v2 services. Each tool routes through a single internal proxy that handles token acquisition, CSRF fetch-and-retry for write operations, and OData error normalization.

Deployment modes

Pick the deployment that matches your tenant in the Deployment dropdown:

  • S4HANA Cloud Public Edition — provide your BTP subaccount subdomain and region (e.g., eu10, us10). The host is derived automatically as {subdomain}-api.s4hana.ondemand.com, and OAuth tokens are fetched from the matching BTP UAA endpoint. Authentication is OAuth 2.0 client credentials configured in a Communication Arrangement.
  • S4HANA Cloud Private Edition (RISE) — provide your OData Base URL (e.g., https://my-tenant.s4hana.cloud.sap). Authenticate with OAuth 2.0 client credentials (provide the tenant's UAA tokenUrl, clientId, clientSecret) or HTTP Basic with a Communication User (username, password).
  • On-premise S4HANA — provide your OData Base URL (e.g., https://sap.internal.company.com:44300). Authenticate with OAuth 2.0 client credentials issued by your on-prem identity provider, or HTTP Basic with a service user.

What you can do

Read and create business partners, customers, suppliers, sales orders, deliveries (inbound/outbound), billing documents, products, stock and material documents, purchase requisitions, purchase orders, and supplier invoices. Update business partners, customers, suppliers, products, sales orders, purchase orders, and purchase requisitions with PATCH. Run arbitrary OData v2 queries against any whitelisted Communication Scenario or registered service.

Optimistic concurrency

All update tools accept an optional ifMatch ETag. When omitted, If-Match defaults to a wildcard (unconditional). For safe concurrent updates, fetch the entity first, capture its ETag from the response, and pass it as ifMatch to detect lost updates.

Connect SAP S4HANA Cloud Public Edition with per-tenant OAuth 2.0 client credentials configured in your Communication Arrangements. Read and create business partners, customers, suppliers, sales orders, deliveries (inbound/outbound), billing documents, products, stock and material documents, purchase requisitions, purchase orders, and supplier invoices, or run arbitrary OData v2 queries against any whitelisted Communication Scenario.

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonArray of A_BusinessPartner entities

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonCreated A_BusinessPartner entity

sap_s4hana_update_business_partner

Update fields on an A_BusinessPartner entity in SAP S/4HANA Cloud (API_BUSINESS_PARTNER). PATCH only sends the fields you provide; existing values are preserved. If-Match defaults to a wildcard (unconditional) — for safe concurrent updates pass the ETag from a prior GET to avoid lost updates.

Input

ParameterTypeRequiredDescription
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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

sap_s4hana_get_customer

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

Input

ParameterTypeRequiredDescription
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonA_Customer entity

sap_s4hana_update_customer

Update fields on an A_Customer entity in SAP S/4HANA Cloud (API_BUSINESS_PARTNER). PATCH only sends the fields you provide; existing values are preserved. A_Customer PATCH is limited to modifiable fields such as OrderIsBlockedForCustomer, DeliveryIsBlock, BillingIsBlockedForCustomer, PostingIsBlocked, and DeletionIndicator. If-Match defaults to a wildcard - for safe concurrent updates pass the ETag from a prior GET to avoid lost updates.

Input

ParameterTypeRequiredDescription
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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":true,"DeletionIndicator":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 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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonArray of A_Supplier entities

sap_s4hana_get_supplier

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

Input

ParameterTypeRequiredDescription
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonA_Supplier entity

sap_s4hana_update_supplier

Update fields on an A_Supplier entity in SAP S/4HANA Cloud (API_BUSINESS_PARTNER). PATCH only sends the fields you provide; existing values are preserved. A_Supplier PATCH is limited to modifiable fields such as PostingIsBlocked, PurchasingIsBlocked, PaymentIsBlockedForSupplier, DeletionIndicator, and SupplierAccountGroup. If-Match defaults to a wildcard - for safe concurrent updates pass the ETag from a prior GET to avoid lost updates.

Input

ParameterTypeRequiredDescription
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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 updated A_Supplier entity if SAP returns one

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonArray of A_SalesOrder entities

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonA_SalesOrder entity

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonCreated A_SalesOrder entity (with deep-inserted items if expanded by SAP)

sap_s4hana_update_sales_order

Update fields on an A_SalesOrder entity in SAP S/4HANA Cloud (API_SALES_ORDER_SRV). PATCH only sends the fields you provide; existing values are preserved. If-Match defaults to a wildcard (unconditional) — for safe concurrent updates pass the ETag from a prior GET to avoid lost updates.

Input

ParameterTypeRequiredDescription
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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, or updated A_SalesOrder entity if SAP returns one

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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_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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonArray of A_OutbDeliveryHeader entities

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonA_OutbDeliveryHeader entity

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonArray of A_InbDeliveryHeader entities

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonA_InbDeliveryHeader entity

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonArray of A_BillingDocument entities

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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")

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonA_BillingDocument entity

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonArray of A_Product entities

sap_s4hana_get_product

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

Input

ParameterTypeRequiredDescription
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonA_Product entity

sap_s4hana_update_product

Update fields on an A_Product entity in SAP S/4HANA Cloud (API_PRODUCT_SRV). PATCH only sends the fields you provide; existing values are preserved. Flat scalar header fields only — deep/multi-entity updates across navigation properties are not supported by API_PRODUCT_SRV PATCH/PUT (see SAP KBA 2833338); update child entities (plant, valuation, sales data, etc.) via their own endpoints. If-Match defaults to a wildcard (unconditional) — for safe concurrent updates pass the ETag from a prior GET.

Input

ParameterTypeRequiredDescription
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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 updated A_Product entity if SAP returns one

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonArray 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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonArray 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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonA_MaterialDocumentHeader entity

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonArray of A_PurchaseRequisitionHeader entities

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonA_PurchaseRequisitionHeader entity

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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., {"PurchaseRequisitionDescription":"Office supplies"})

Output

ParameterTypeDescription
statusnumberHTTP status code returned by SAP
datajsonCreated A_PurchaseRequisitionHeader entity

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). PATCH only sends the fields you provide; existing values are preserved. If-Match defaults to a wildcard - for safe concurrent updates pass the ETag from a prior GET to avoid lost updates.

Input

ParameterTypeRequiredDescription
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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 updated A_PurchaseRequisitionHeader entity if SAP returns one

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonArray of A_PurchaseOrder entities

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonA_PurchaseOrder entity

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonCreated A_PurchaseOrder entity

sap_s4hana_update_purchase_order

Update fields on an A_PurchaseOrder entity in SAP S/4HANA Cloud (API_PURCHASEORDER_PROCESS_SRV). PATCH only sends the fields you provide; existing values are preserved. If-Match defaults to a wildcard (unconditional) — for safe concurrent updates pass the ETag from a prior GET to avoid lost updates.

Input

ParameterTypeRequiredDescription
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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 updated A_PurchaseOrder entity if SAP returns one

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonArray of A_SupplierInvoice entities

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
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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
datajsonA_SupplierInvoice entity

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.

Input

ParameterTypeRequiredDescription
subdomainstringYesSAP BTP subaccount subdomain (technical name of your subaccount, not the S/4HANA host)
regionstringYesBTP region (e.g. eu10, us10)
clientIdstringYesOAuth client ID from the S/4HANA Communication Arrangement
clientSecretstringYesOAuth 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)

On this page

Usage Instructions
Deployment modes
What you can do
Optimistic concurrency
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