SAP Business ByDesign
Keep SAP Business ByDesign in step with your orders, stock and finance, with the right person approving every posting.
48 ways to read, 13 ways to write, each write switched on by you.
Quality checks
Built and tested with example responses.
- Ready to connect: doneEvery listed action is built in.
- Built and tested with example responses: doneEach action is built from the provider’s published API and tested against example responses, errors, rate limits and paging.
Connected, approved, proven.
The things teams do most with SAP Business ByDesign, an example flow with a person in the loop, and what Nexra keeps as proof.
Top actions
- Create customer quoteApproval by rule
- Create customerApproval by rule
- List bank statementsRead
Example flow
- SAP Business ByDesign · List bank statementsDone
- SAP Business ByDesign · Create customer quoteNeeds approval
- Nexra · Record the decision and result in the evidence chainProven
Example workflow. Routine runs go through on their own. Only a change your rules flag, such as one over a limit you set, waits for the right person, who sees the exact change and the rule before it reaches SAP Business ByDesign.
What gets logged
- Whether it ran on its own or who approved it, and under which rule
- A fingerprint of the exact request sent to SAP Business ByDesign
- SAP Business ByDesign's reply: what it created or changed
- One entry in the evidence chain, linked to the one before
Try this in the sandbox
Run the whole flow with test data in your sandbox, then connect your own account when you are ready to go live.
For developers
Technical detail
Customers, suppliers, materials, quotes, sales and purchase orders, invoices, deliveries, returns, CRM, projects, cost centres, payments, bank statements and employees via ByDesign OData.
SAP API docs- Source actions
- 48
- Destination actions
- 13
- Data types
- 28
What you can map
Reads are always available. Writes are off until you switch them on for a connection, and governed writes follow your policies.
Bank statements2
- Get bank statementSource
Reads one house bank statement by ObjectID.
- List bank statementsSource
Lists house bank statements with opening and closing balances and debit and credit totals, optionally from a statement date.
Cost centres2
- Get cost centreSource
Reads one cost centre by ObjectID with Name,Attributes,CurrentProfitCentreAssignment,CurrentCompanyAssignment.
- List cost centresSource
Lists cost centres from the khcostcentre OData service.
Customer invoice items1
- List customer invoice itemsSource
Lists the customer invoice items of a Customer invoice.
Customer invoice requests2
- Get customer invoice requestSource
Reads one customer invoice request by ObjectID with Item.
- List customer invoice requestsSourceIncremental
Lists customer invoice requests from the khcustomerinvoicerequest OData service.
Customer invoices2
- Get customer invoiceSource
Reads one customer invoice by ObjectID with BuyerParty,Item.
- List customer invoicesSourceIncremental
Lists customer invoices from the khcustomerinvoice OData service.
Customer quote items1
- List customer quote itemsSource
Lists the customer quote items of a Customer quote.
Customer quotes4
- Create customer quoteDestinationNot retried automaticallyApproval before production
Creates a sales quote with buyer, sales unit and items in one nested create; ByDesign determines prices. The quote is not submitted or released.
- Get customer quoteSource
Reads one customer quote by ObjectID with BuyerParty,Item.
- List customer quotesSource
Lists customer quotes from the khcustomerquote OData service.
- Update customer quoteDestinationProvider duplicate protectionApproval before production
Updates customer quote header fields by ObjectID.
Customer returns2
- Get customer returnSource
Reads one customer return by ObjectID with Item.
- List customer returnsSourceIncremental
Lists customer returns from the khcustomerreturn OData service.
Customers4
- Create customerDestinationNot retried automaticallyApproval before production
Creates an organisation or person customer with an optional address.
- Get customerSource
Reads one customer by ObjectID with AddressInformation/PostalAddress,AddressInformation/EMail,Role.
- List customersSourceIncremental
Lists customers from the khcustomer OData service.
- Update customerDestinationProvider duplicate protectionApproval before production
Updates customer header fields by ObjectID.
Employees2
- Get employeeSource
Reads one employee by ObjectID.
- List employeesSourceIncremental
Lists employees from the khemployee OData service.
Entity sets1
- List custom OData entity setSource
Reads any entity set of a custom OData service in your tenant (for example khoutbounddelivery/OutboundDeliveryCollection).
Inbound deliveries2
- Get inbound deliverySource
Reads one inbound delivery by ObjectID with Item.
- List inbound deliverysSourceIncremental
Lists inbound deliverys from the khinbounddelivery OData service.
Leads3
- Get leadSource
Reads one lead by ObjectID with ProspectParty.
- List leadsSourceIncremental
Lists leads from the khlead OData service.
- Update leadDestinationProvider duplicate protectionApproval before production
Updates lead header fields (description, qualification, source, category) by ObjectID.
Materials4
- Create materialDestinationNot retried automaticallyApproval before production
Creates a material with description and base unit; sales, purchasing and logistics data stay in ByDesign.
- Get materialSource
Reads one material by ObjectID.
- List materialsSourceIncremental
Lists materials from the vmumaterial OData service.
- Update materialDestinationProvider duplicate protectionApproval before production
Updates material header fields by ObjectID.
Opportunities3
- Get opportunitySource
Reads one opportunity by ObjectID with ProspectParty,Item.
- List opportunitysSourceIncremental
Lists opportunitys from the khopportunity OData service.
- Update opportunityDestinationProvider duplicate protectionApproval before production
Updates opportunity header fields (description, phase, probability, revenue) by ObjectID.
Outbound deliveries2
- Get outbound deliverySource
Reads one outbound delivery by ObjectID with Item.
- List outbound deliverysSourceIncremental
Lists outbound deliverys from the khoutbounddelivery OData service.
Outbound delivery items1
- List outbound delivery itemsSource
Lists the outbound delivery items of a Outbound delivery.
Payments2
- Get paymentSource
Reads one payment by ObjectID.
- List paymentsSourceIncremental
Lists payments from the khpayment OData service.
Project tasks1
- List project tasksSource
Lists the tasks of a project (khproject TaskCollection).
Projects3
- Create projectDestinationProvider duplicate protectionApproval before production
Creates a project in planning with its summary task and optional tasks in one nested create. The project is not released.
- Get projectSource
Reads one project by ObjectID with ProjectSummaryTask,Task.
- List projectsSource
Lists projects from the khproject OData service.
Purchase order items1
- List purchase order itemsSource
Lists the purchase order items of a Purchase order.
Purchase orders2
- Get purchase orderSource
Reads one purchase order by ObjectID with Supplier,Item.
- List purchase ordersSourceIncremental
Lists purchase orders from the khpurchaseorder OData service.
Sales order items1
- List sales order itemsSource
Lists the sales order items of a Sales order.
Sales orders4
- Create sales orderDestinationNot retried automaticallyApproval before production
Creates a sales order with buyer, sales unit, pricing terms and items in one nested create (not released).
- Get sales orderSource
Reads one sales order by ObjectID with BuyerParty,SalesUnitParty,PricingTerms,Item/ItemProduct,Item/ItemScheduleLine.
- List sales ordersSourceIncremental
Lists sales orders from the khsalesorder OData service.
- Update sales orderDestinationProvider duplicate protectionApproval before production
Updates sales order header fields by ObjectID.
Service orders2
- Get service orderSource
Reads one service order by ObjectID with BuyerParty,Item.
- List service ordersSourceIncremental
Lists service orders from the tmserviceorder OData service.
Supplier invoice items1
- List supplier invoice itemsSource
Lists the supplier invoice items of a Supplier invoice.
Supplier invoices2
- Get supplier invoiceSource
Reads one supplier invoice by ObjectID with SellerParty,Item.
- List supplier invoicesSourceIncremental
Lists supplier invoices from the khsupplierinvoice OData service.
Suppliers4
- Create supplierDestinationNot retried automaticallyApproval before production
Creates a supplier with the supplier role.
- Get supplierSource
Reads one supplier by ObjectID with Role,CurrentDefaultAddressInformation/CurrentDefaultPostalAddress.
- List suppliersSourceIncremental
Lists suppliers from the khsupplier OData service.
- Update supplierDestinationProvider duplicate protectionApproval before production
Updates supplier header fields by ObjectID.
Access and limits
- Authentication
- Business user (basic authentication) with CSRF token
- Plans and access
- SAP Business ByDesign subscription (no public trial). Each OData service must exist in the tenant (Application and User Management → OData Services) and be assigned to the user's work centres.
- Test environment
- Use a ByDesign test tenant or partner demo tenant.
- Rate limits
- Tenant fair-use limits; ByDesign answers HTTP 429 or 503 under load.
- Pagination
- $top/$skip (up to 1000 per page).
- Provider events
- ByDesign business event notifications (separate configuration). Flows run on demand, on a schedule, or when a scheduled check finds new or changed records.
Before you build a flow
- ByDesign has no SAP-delivered REST API for these objects; Nexra uses the SAP-published sample custom OData services, which must be uploaded with their original names and entity sets.
- Nexra fetches a CSRF token once per OData service per connection session before the first request, including reads.
- Lists are not explicitly ordered ($orderby is not sent); records changed during paging can shift between pages.
- Customer invoices are read only (created from invoice requests in ByDesign) and filter on CreationDateTime.
- Sales order release, invoice release, actions and deletes are not implemented. ByDesign answers updates with HTTP 204, so an update returns the ObjectID and the fields that were sent, not a re-read.
- Creates have no idempotency key and are not repeated automatically, except project creation, which is keyed by the unique Project ID.
- Writes are creates and header updates only: customers, suppliers, materials, sales orders, customer quotes and projects are created in preparation or planning; opportunities and leads are updated. Releasing, submitting, posting, approving, converting, cancelling and deleting are not implemented.
- Supplier invoices, customer invoice requests, customer returns, deliveries, payments and cost centres are read only; ByDesign posts and pays them through its own approval and posting runs.
- Employees return identity fields only (IDs, names, timestamps) through an OData $select; birth, nationality, gender, marital status and pay data are never requested.
- Bank transactions: the SAP sample house bank statement service (khhousebankstatement) exposes statement headers only (balances, debit and credit totals and line count), so bank_statements returns statements, not individual bank lines. It has no change timestamp and filters on the statement date instead.
- Credit notes: ByDesign keeps credit memos in the same customer invoice and supplier invoice business objects as invoices, so they are returned by customer_invoices.list and supplier_invoices.list (their type code marks them as credit memos); there is no separate credit note read.
- Customer and vendor payments are both returned by payments.list; PaymentTransactionCategoryCode tells incoming from outgoing payments.
- Journal entries: accounting (journal) entries have no SAP-published sample OData service, so there is no named operation; model a custom service on the Accounting Entry business object and read it with List custom OData entity set.
- Customer quotes, projects and cost centres expose no change timestamp in the sample services, so their lists are full reads without incremental filtering.
- $filter expressions are built only from validated inputs (equality on documented IDs and the change timestamp); free-form filters are not accepted.
- Customer quote, opportunity, lead and project payloads follow the SAP sample service definitions and Postman collections; opportunity and lead updates were not exercised against a live tenant.
Developer reference
- Create the SAP credentials described above with the narrowest permissions your flows need.
- In Nexra, open Connect, then Connections, then New connection, choose SAP Business ByDesign, enter its settings and credentials, and tick only the write actions you need. Connection guide
- Test the connection, then use its actions as flow sources and destinations. Flow guide
Machine-readable detail: GET /api/public/connect/connectors/sap-business-bydesign and the Connections API.