# SAP S/4HANA Cloud — Accounting API: overview

> Canonical URL: https://developers.apideck.com/apis/accounting/sap-s4hana-cloud/overview

SAP S/4HANA Cloud is SAP's intelligent cloud ERP suite covering finance, procurement, sales, and more, exposed via OData v2/v4 APIs through the SAP API Business Hub.
- Status: beta
- Authentication: basic

- **account type required:** SAP S/4HANA Cloud Public Edition tenant
- **apideck credentials available:** false
- **apideck credentials note:** There is no OAuth app model; each consumer provides their own Communication User credentials.
- **authentication note:** A dedicated SAP Communication User; not OAuth (several of the OData services used by this connector reject OAuth).
- **beta:** true
- **consumer access level:** An SAP administrator must provision API access for the tenant
- **costs:** No separate API pricing published by SAP; API access is part of the consumer's SAP S/4HANA Cloud subscription
- **difficulty:** highly_complex
- **difficulty reason:** Custom Auth + Manual Per-Consumer SAP Admin Setup
- **environment notes:**   - **description:** A connection always targets a specific tenant, identified by its tenant ID. Connect a test or quality tenant using its ID and a Communication User created on it. The read-only public sandbox on the SAP Business Accelerator Hub (free API key) exercises SAP’s own OData APIs against a hosted mock and cannot host an Apideck connection, and the 30-day sap.com trial runs on a shared tenant whose restricted admin functions cannot activate Communication Arrangements — so neither is usable for connector testing.
  - **environment:** Testing
  - **description:** Be cautious when connecting a production tenant — the connector supports writes, so test writes belong on a test or quality tenant.
  - **environment:** Production
- **important to know:** The API host is derived from each consumer's tenant ID as <tenant_id>-api.s4hana.cloud.sap, so Private Edition and on-premise S/4HANA deployments cannot be connected — those consumers need a Public Edition tenant.
Provisioning is per-resource, not one-and-done: the consumer's SAP administrator must activate up to ten separate Communication Arrangements depending on which resources you need, alongside the Communication User the connection runs on.
Posted accounting documents are immutable: invoices, credit notes, journal entries, payments and bill payments are create-only, and SAP's correction path is a reversal, not an edit. Customers and suppliers accept updates and a soft-block delete; five resources are read-only.
Communication User passwords have no fixed lifetime — expiry follows each consumer's own SAP tenant password policy, so an integration cannot assume one. Rotation sits with the consumer's SAP administrator, who supplies the new password to restore the connection.
SAP_COM_0164 (stock quantity on invoice items) and SAP_COM_0120 (item-level invoice lines) are optional: without them the connection still works, but `quantity` is null and invoice lines stay G/L account lines, and each response carries a warning instead of failing.
- **partnership note:** SAP PartnerEdge Build is optional: membership gives portal and documentation access, while test and demo tenants need a separate, paid SAP development licence.
- **partnership required:** false
- **rate limits:** No universal published limit; SAP publishes per-API guidance only (e.g. 15 parallel synchronous Journal Entry Post calls); confirm tenant limits with SAP
- **responsibility matrix:**   - **apideck:** Docs provided
  - **area:** Enable Connector & Configure Vault
  - **customer:** ✓
  - **apideck:** Instructions provided
  - **area:** Create Communication Arrangement(s)
  - **consumer:** ✓ (SAP administrator)
  - **apideck:** Instructions provided
  - **area:** Create Communication User
  - **consumer:** ✓ (SAP administrator)
  - **apideck:** Secure connection form
  - **area:** Provide Credentials
  - **consumer:** ✓ Tenant ID, user ID, password
  - **apideck:** Maintains connector
  - **area:** Build via Unified API
  - **customer:** ✓
  - **apideck:** Logs & alerts
  - **area:** Monitor Connections
  - **consumer:** ✓ Can deactivate the Communication User
  - **customer:** ✓ Via Apideck Dashboard
- **sandbox available:** false
- **sandbox note:** A connection always targets a specific S/4HANA Cloud tenant; use a test or quality tenant.
- **supported resource categories:**   - **name:** Core Financial
  - **resources:** ledger-accounts
journal-entries
  - **name:** Accounts Receivable
  - **resources:** invoices
credit-notes
invoice-items
customers
payments
  - **name:** Accounts Payable
  - **resources:** bills
bill-payments
suppliers
purchase-orders
  - **name:** Organizational
  - **resources:** subsidiaries
departments
- **webhooks:** No webhooks — no native SAP events for these services and no virtual webhook support for this connector.

## Supported resources

[Accounting data model](/guides/accounting-data-model.md)

- **custom field support:** false
- **downstream id:** business-partner-customers
- **downstream name:** Business Partner Customers
- **id:** customers
- **name:** Customers
- **status:** live
- **custom field support:** false
- **downstream id:** business-partner-suppliers
- **downstream name:** Business Partner Suppliers
- **id:** suppliers
- **name:** Suppliers
- **status:** live
- **custom field support:** false
- **downstream id:** bills
- **downstream name:** Bills
- **id:** bills
- **name:** Bills
- **status:** live
- **custom field support:** false
- **downstream id:** bill-credit-notes
- **downstream name:** Bill Credit Notes
- **id:** bill-credit-notes
- **name:** Bill Credit Notes
- **status:** beta
- **custom field support:** false
- **downstream id:** purchase-orders
- **downstream name:** Purchase Orders
- **id:** purchase-orders
- **name:** Purchase Orders
- **status:** live
- **custom field support:** false
- **downstream id:** goods-receipts
- **downstream name:** Goods Receipts
- **id:** goods-receipts
- **name:** Goods Receipts
- **status:** beta
- **custom field support:** false
- **downstream id:** invoices
- **downstream name:** Invoices
- **id:** invoices
- **name:** Invoices
- **status:** live
- **custom field support:** false
- **downstream id:** credit-notes
- **downstream name:** Credit Notes
- **id:** credit-notes
- **name:** Credit Notes
- **status:** live
- **custom field support:** false
- **downstream id:** journal-entries
- **downstream name:** Journal Entries
- **id:** journal-entries
- **name:** Journal Entries
- **status:** live
- **custom field support:** false
- **downstream id:** payments
- **downstream name:** Payments
- **id:** payments
- **name:** Payments
- **status:** live
- **custom field support:** false
- **downstream id:** bill-payments
- **downstream name:** Bill Payments
- **id:** bill-payments
- **name:** Bill Payments
- **status:** live
- **custom field support:** false
- **downstream id:** invoice-items
- **downstream name:** Invoice Items
- **id:** invoice-items
- **name:** Invoice Items
- **status:** live
- **custom field support:** false
- **downstream id:** ledger-accounts
- **downstream name:** Ledger Accounts
- **id:** ledger-accounts
- **name:** Ledger Accounts
- **status:** live
- **custom field support:** false
- **downstream id:** subsidiaries
- **downstream name:** Subsidiaries
- **id:** subsidiaries
- **name:** Subsidiaries
- **status:** live
- **custom field support:** false
- **downstream id:** departments
- **downstream name:** Departments
- **id:** departments
- **name:** Departments
- **status:** live

An omitted operation list does not establish operation support. Verify the selected operation in the coverage matrix.

[API reference](https://developers.apideck.com/apis/accounting/reference.md) · [Coverage matrix](https://developers.apideck.com/apis/accounting/coverage)
