SAP Business One Connector
Description
SAP Business One is an integrated enterprise resource planning (ERP) solution designed for organizations to manage their entire operations.
This component allows you to manage business partners, sales orders, purchase orders, and inventory items within SAP Business One.
API Documentation
This component was built using the SAP Business One Service Layer API, supporting both V1 (/b1s/v1 - OData 3.0) and V2 (/b1s/v2 - OData 4.0) endpoints. You can configure the API version in your connection settings.
Additional resources:
Connections
SAP Business One Authentication
key: sap-business-one-authSAP Business One uses username and password authentication to connect to the Service Layer API. The Service Layer supports two API versions: v2 (OData 4.0, recommended for new integrations) and v1 (OData 3.0, the default for backwards compatibility).
For detailed information about the SAP Business One Service Layer API, refer to the Service Layer API Reference.
Prerequisites
- Access to a SAP Business One instance (cloud or on-premises)
- SAP Business One user account with API access permissions
- For cloud instances: Server address including hostname/IP and port
- For on-premises instances: Network access to the SAP Business One server via the on-premises agent
Setup Steps
Gather the following information from the SAP Business One administrator:
- Username and Password: SAP Business One user credentials with appropriate API permissions
- Server Address (for cloud/non-OnPrem instances):
- Format:
https://<Server Name/IP>:<Port> - Example:
https://sapb1-server.example.com:50000
- Format:
- Database Instance (optional):
- Format:
<DatabaseName>@<Host>:<Port> - Example:
C200@10.58.114.200:30013
- Format:
- Company Name (optional):
- The company database name to connect to
- Example:
SBODEMOUS
- API Version:
- v1 (OData 3.0) - Default, for backwards compatibility with existing integrations
- v2 (OData 4.0) - Recommended for new integrations with improved functionality
Configure the Connection
| Field | Required | Description |
|---|---|---|
| Username | Yes | The SAP Business One username for authentication |
| Password | Yes | The SAP Business One password for authentication |
| Server Address | No* | The URL of the SAP Business One Service Layer server, including the port. Required for non-OnPrem connections. Example: https://sapb1-server.example.com:50000 |
| Database Instance | No | The SAP HANA database instance in format DatabaseName@Host:Port. Example: C200@10.58.114.200:30013 |
| Company Name | No | The company database name to connect to in SAP Business One. Example: SBODEMOUS |
| API Version | No | The Service Layer API version to use. Defaults to v1 (OData 3.0). Select v2 (OData 4.0) for new integrations |
*Required for cloud deployments. For on-premises deployments, the Host and Port fields are automatically configured by the on-premises agent.
On-prem enabled: this connection can be configured to connect to an on-prem resource on a private network. Learn more.
| Input | Notes | Example |
|---|---|---|
| API Version | The Service Layer API version to use. v2 (OData 4.0) is recommended for new integrations and provides improved functionality. v1 (OData 3.0) is available for backwards compatibility with existing integrations. | v1 |
| Company Name | The company database name to connect to in SAP Business One. | SBODEMOUS |
| Database Instance | The SAP HANA database instance to connect to, in the format DatabaseName@Host:Port. | C200@10.58.114.200:30013 |
| Host | The IP address or hostname of your On-Prem server. | sapb1-onprem.example.io |
| Password | The SAP Business One password for authentication. | Password |
| Port | The port number of your On-Prem server. | 50000 |
| Server Address | The URL of the SAP Business One Service Layer server, including the port (e.g., https://sapb1-server.example.com:50000). Required for non-OnPrem connections. See SAP Business One Service Layer documentation for details. | https://sapb1-server.example.com:50000 |
| Username | The SAP Business One username for authentication. | TestUser |
Triggers
New and Updated Records
Retrieves existing and ongoing records for a specified SAP Business One resource type. Load history once, check for changes on a schedule, or both. | key: pollChangesTrigger
| Input | Notes | Example |
|---|---|---|
| Connection | The SAP Business One connection to use. | |
| Look-back Date | The date the initial sync starts from, in YYYY-MM-DD format. Cannot be a future date. Leave empty to start from the first recurrence with no backfill. When set, the initial sync seeds each record modified on or after this date once, ignoring the trigger's visibility filters. | 2026-01-01 |
| Resource Type | The SAP Business One resource type to poll for new or updated records. | |
| Show New Records | When true, newly created records will be included in the trigger output. | true |
| Show Updated Records | When true, records that were updated after the last poll will be included in the trigger output. | true |
The New and Updated Records trigger checks SAP Business One for new and updated records of a selected resource type on a configured schedule. The trigger queries the SAP Business One Service Layer using OData filters and categorizes results into newly created and updated records based on CreateDate and UpdateDate timestamps.
For details on the underlying API, refer to the SAP Business One Service Layer API Reference.
How It Works
The trigger maintains a lastPolledAt timestamp in polling state and uses it to fetch only records changed since the previous run.
- First Recurrence: With no stored position and no Look-back Date,
lastPolledAtis initialized to the current time so historical records are not flooded into the workflow. With a Look-back Date, an initial sync runs instead (see below). - Subsequent Polls: The trigger fetches records where
UpdateDate >= lastPolledAt(day-precision) using a server-side OData$filter. - Categorization: Records are split client-side into
created(whereCreateDate > lastPolledAt) andupdated(where onlyUpdateDate > lastPolledAt) buckets. - State Persistence: After each successful poll, the current timestamp is saved as the new
lastPolledAt.
Outside an initial sync, Show New Records and Show Updated Records each gate one of the two result arrays. If both are disabled, the trigger emits an empty payload and skips the API call.
Initial Sync
An initial sync seeds a complete starting state rather than a change feed, so inputs that narrow which changes are reported would leave gaps in it: Show New Records and Show Updated Records are ignored while it runs, and are the only inputs it ignores. It begins on the first recurrence, when the trigger has no stored position and a Look-back Date (YYYY-MM-DD) is set, and seeds every record dated on or after that day exactly once. Left empty, there is no sync and the trigger starts from its first recurrence.
The window has no fixed upper bound, so a record modified mid-fetch is swept into the sync rather than deferred to the schedule. The sync is fetched in full within one recurrence, whether or not batching is on. The trigger then stores the time that recurrence began as its position, the first incremental recurrence resumes from exactly there, and nothing in the payload marks the handoff. A stored position always takes precedence over the Look-back Date.
Resource Type still applies throughout. The trigger has no page-size or field-selection input, so nothing else is suppressed.
Batching
Batching is enabled per flow on this trigger: each changed record is dispatched as its own execution, or grouped by the configured batch size. Batch size and batch concurrency can both be overridden per instance. Raising concurrency increases the request volume sent to SAP Business One.
To turn it on, select the flow's trigger, open the Flow control tab, and switch on Enable Batching. Under Batch Size, keep Trigger default or choose Custom batch size. Batch Concurrency is optional; leave it blank for no batch-level limit.
With batching off a downstream step reads body.data.created and body.data.updated. With batching on those fields do not exist: each execution receives one { "changeType": ..., "record": ... } item, or an array of them when the batch size is greater than 1. Any step reading the older shape must be updated before batching is enabled, or it breaks the moment the switch is flipped. Because batching is enabled per flow, that change is scoped to the flow rather than to the component or to other flows using the same trigger.
Date Precision
SAP Business One Service Layer reports CreateDate and UpdateDate with day-only precision (YYYY-MM-DD). The trigger uses ge (greater-or-equal) instead of gt so records updated on the same day as the last poll are still detected. As a result, a record updated multiple times within a single calendar day is reported once per day.
Known Limitation
SAP Business One session cookies returned by the /Login endpoint expire server-side (default ~30 minutes). When Fetch All issues many parallel paged requests, a cookie that expires mid-fetch will cause remaining requests to fail. Cookie refresh is intentionally out of scope for this trigger; reduce the polling interval if this is encountered frequently.
Supported Resource Types
Available Resource Types (7)
| Resource Type | Service Layer Endpoint | Description |
|---|---|---|
BusinessPartners | /BusinessPartners | Customers, suppliers, and leads |
Items | /Items | Inventory items, services, labor, travel, and fixed assets |
Orders | /Orders | Sales orders |
Invoices | /Invoices | A/R invoices |
PurchaseOrders | /PurchaseOrders | Purchase orders |
Warehouses | /Warehouses | Warehouse master data |
PriceLists | /PriceLists | Price list definitions |
Returned Data
With batching off, the trigger returns a payload with separate arrays for newly created and updated records. Fields shown are representative. The full response object includes additional properties.
Example Payload
{
"data": {
"created": [
{
"CardCode": "C20000",
"CardName": "Acme Corporation",
"CardType": "cCustomer",
"CreateDate": "2026-04-23",
"UpdateDate": "2026-04-23",
"Phone1": "555-0100",
"EmailAddress": "contact@acme.example"
}
],
"updated": [
{
"CardCode": "C30000",
"CardName": "Globex Industries",
"CardType": "cCustomer",
"CreateDate": "2026-01-15",
"UpdateDate": "2026-04-25",
"Phone1": "555-0200",
"EmailAddress": "info@globex.example"
}
]
}
}
With batching on, each execution receives one record tagged with how it changed, or an array of such items when the batch size is greater than 1. The created and updated arrays are not part of this shape.
Batched Item
{
"changeType": "created",
"record": {
"CardCode": "C20000",
"CardName": "Acme Corporation",
"CardType": "cCustomer",
"CreateDate": "2026-04-23",
"UpdateDate": "2026-04-23",
"Phone1": "555-0100",
"EmailAddress": "contact@acme.example"
}
}
The exact fields returned depend on the resource type selected. Refer to the SAP Business One Service Layer API Reference for the full schema of each entity.
Best Practices
- Polling Frequency: Use intervals of at least 5–15 minutes. Polling more frequently than the API's date precision (one day) does not surface additional records sooner and only adds load.
- Resource-per-Trigger: Configure one trigger per resource type. Running multiple triggers for different resources lets each maintain its own
lastPolledAtcursor. - Session Cookie Awareness: Avoid extremely long polling intervals on high-volume tenants where the cookie may expire mid-poll. Shorter, more frequent polls reduce the chance of mid-fetch session expiry.
Data Sources
Select Business Partner
Select a Business Partner from a dropdown menu. | key: selectBusinessPartner | type: picklist
| Input | Notes | Example |
|---|---|---|
| Filter | An OData filter expression to apply to the request (e.g., startswith, eq, gt). See OData $filter documentation for filter syntax. | startswith(ItemCode, 'A001') |
| Connection | The SAP Business One connection to use. |
Example Payload for Select Business Partner⤓
Select Invoice
Select an Invoice from a dropdown menu. | key: selectInvoice | type: picklist
| Input | Notes | Example |
|---|---|---|
| Filter | An OData filter expression to apply to the request (e.g., startswith, eq, gt). See OData $filter documentation for filter syntax. | startswith(ItemCode, 'A001') |
| Connection | The SAP Business One connection to use. |
Example Payload for Select Invoice⤓
Select Order
Select an Order from a dropdown menu. | key: selectOrder | type: picklist
| Input | Notes | Example |
|---|---|---|
| Filter | An OData filter expression to apply to the request (e.g., startswith, eq, gt). See OData $filter documentation for filter syntax. | startswith(ItemCode, 'A001') |
| Connection | The SAP Business One connection to use. |
Example Payload for Select Order⤓
Select Purchase Order
Select an Purchase Order from a dropdown menu. | key: selectPurchaseOrder | type: picklist
| Input | Notes | Example |
|---|---|---|
| Filter | An OData filter expression to apply to the request (e.g., startswith, eq, gt). See OData $filter documentation for filter syntax. | startswith(ItemCode, 'A001') |
| Connection | The SAP Business One connection to use. |
Example Payload for Select Purchase Order⤓
Select Record
Select a Custom Record type from a dropdown menu. | key: selectRecord | type: picklist
| Input | Notes | Example |
|---|---|---|
| Filter | An OData filter expression to apply to the request (e.g., startswith, eq, gt). See OData $filter documentation for filter syntax. | startswith(ItemCode, 'A001') |
| Connection | The SAP Business One connection to use. | |
| Key Field | The field name to use as the value in dropdown options. | ItemCode |
| Label Field | The field name to use as the label text in dropdown options. | ItemName |
| Record Type | The type of record to use for the operation (e.g., JournalEntries, Activities, BusinessPartners). This corresponds to the Service Layer entity name. | JournalEntries |
Example Payload for Select Record⤓
Select Warehouse
Select a Warehouse from a dropdown menu. | key: selectWarehouse | type: picklist
| Input | Notes | Example |
|---|---|---|
| Filter | An OData filter expression to apply to the request (e.g., startswith, eq, gt). See OData $filter documentation for filter syntax. | startswith(ItemCode, 'A001') |
| Connection | The SAP Business One connection to use. |
Example Payload for Select Warehouse⤓
Actions
Close Invoice
Invoke the method Close. | key: closeInvoice
| Input | Notes | Example |
|---|---|---|
| Connection | The SAP Business One connection to use. | |
| Doc Entry | The document entry number (DocEntry) that uniquely identifies the invoice. This is an integer value. | 12345 |
Create Business Partner
Create an instance of Business Partners | key: createBusinessPartner
| Input | Notes | Example |
|---|---|---|
| Body Fields | Additional fields to include in the request body as a JSON object. These fields will be merged with the other input values. | |
| Card Code | The unique code identifying the business partner (customer or supplier). | C20000 |
| Card Name | The name of the business partner (customer or supplier). | Acme Corporation |
| Card Type | The type of the business partner: Customer (cCustomer), Supplier (cSupplier), or Lead (cLid). | |
| Connection | The SAP Business One connection to use. |
Example Payload for Create Business Partner⤓
Create Invoice
Create an instance of Invoices. | key: createInvoice
| Input | Notes | Example |
|---|---|---|
| Body Fields | Additional fields to include in the request body as a JSON object. These fields will be merged with the other input values. | |
| Card Code | The unique code identifying the business partner (customer or supplier). | C20000 |
| Connection | The SAP Business One connection to use. | |
| Doc Lines | The document lines containing item details for the order. Each line should include ItemCode, Quantity, and optionally UnitPrice and TaxCode. |
Create Item
Retrieve all or some selected properties from an instance of Items with the given id. | key: createItem
| Input | Notes | Example |
|---|---|---|
| Body Fields | Additional fields to include in the request body as a JSON object. These fields will be merged with the other input values. | |
| Connection | The SAP Business One connection to use. | |
| Item Code | The unique code identifying the item in the inventory. | A00001 |
| Item Name | The name of the item in the inventory. | Desktop Computer |
| Item Type | The type of the item: Items (itItems), Labor (itLabor), Travel (itTravel), or Fixed Assets (itFixedAssets). |
Create Order
Create an instance of Orders. | key: createOrder
| Input | Notes | Example |
|---|---|---|
| Body Fields | Additional fields to include in the request body as a JSON object. These fields will be merged with the other input values. | |
| Card Code | The business partner code associated with this order. | C20000 |
| Connection | The SAP Business One connection to use. | |
| Doc Due Date | The due date of the order in YYYY-MM-DD format. | 2026-12-31 |
| Doc Lines | The document lines containing item details for the order. Each line should include ItemCode, Quantity, and optionally UnitPrice and TaxCode. |
Create Price List
Create an instance of Price Lists | key: createPriceList
| Input | Notes | Example |
|---|---|---|
| Body Fields | Additional fields to include in the request body as a JSON object. These fields will be merged with the other input values. | |
| Connection | The SAP Business One connection to use. | |
| Price List Name | The name of the price list. | Retail Price List |
Example Payload for Create Price List⤓
Create Purchase Order
Create an instance of Purchase Orders. | key: createPurchaseOrder
| Input | Notes | Example |
|---|---|---|
| Body Fields | Additional fields to include in the request body as a JSON object. These fields will be merged with the other input values. | |
| Card Code | The unique code identifying the business partner (customer or supplier). | C20000 |
| Connection | The SAP Business One connection to use. | |
| Document Lines | The document lines containing item details for the order. Each line should include ItemCode, Quantity, and optionally UnitPrice and TaxCode. |
Create Record
Create a new record in SAP Business One. | key: createRecord
| Input | Notes | Example |
|---|---|---|
| Body Fields | Additional fields to include in the request body as a JSON object. These fields will be merged with the other input values. | |
| Connection | The SAP Business One connection to use. | |
| Record Type | The type of record to use for the operation (e.g., JournalEntries, Activities, BusinessPartners). This corresponds to the Service Layer entity name. | JournalEntries |
Create Warehouse
Create an instance of Warehouses. | key: createWarehouse
| Input | Notes | Example |
|---|---|---|
| Body Fields | Additional fields to include in the request body as a JSON object. These fields will be merged with the other input values. | |
| Connection | The SAP Business One connection to use. | |
| Warehouse Location ID | The unique identifier for the warehouse location. This is an integer value. | 1 |
| Warehouse Code | The unique code identifying the warehouse. | WH01 |
| Warehouse Name | The name of the warehouse. | Main Distribution Center |
Delete Business Partner
Delete an instance of BusinessPartners with the specified id. | key: deleteBusinessPartner
| Input | Notes | Example |
|---|---|---|
| Card Code | The unique code identifying the business partner (customer or supplier). | C20000 |
| Connection | The SAP Business One connection to use. |
Example Payload for Delete Business Partner⤓
Delete Item
Delete an instance of Items with the specified id. | key: deleteItem
| Input | Notes | Example |
|---|---|---|
| Connection | The SAP Business One connection to use. | |
| Item Code | The unique code identifying the item in the inventory. | A00001 |
Example Payload for Delete Item⤓
Delete Price List
Delete an instance of Items with the specified id. | key: deletePriceList
| Input | Notes | Example |
|---|---|---|
| Connection | The SAP Business One connection to use. | |
| Price List Number | The unique number identifying the price list. This is an integer value. | 1 |
Example Payload for Delete Price List⤓
Delete Record
Delete an existing record in SAP Business One. | key: deleteRecord
| Input | Notes | Example |
|---|---|---|
| Connection | The SAP Business One connection to use. | |
| Record ID | The unique identifier for the record. This is typically an integer value (DocEntry or similar). | 12345 |
| Record Type | The type of record to use for the operation (e.g., JournalEntries, Activities, BusinessPartners). This corresponds to the Service Layer entity name. | JournalEntries |
Example Payload for Delete Record⤓
Delete Warehouse
Delete an instance of Warehouses with the specified id. | key: deleteWarehouse
| Input | Notes | Example |
|---|---|---|
| Connection | The SAP Business One connection to use. | |
| Warehouse Code | The unique code identifying the warehouse. | WH01 |
Example Payload for Delete Warehouse⤓
Get Business Partner
Retrieve all or some selected properties from an instance of BusinessPartners with the given id. | key: getBusinessPartner
| Input | Notes | Example |
|---|---|---|
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Card Code | The unique code identifying the business partner (customer or supplier). | C20000 |
| Connection | The SAP Business One connection to use. |
Example Payload for Get Business Partner⤓
Get Invoice
Retrieve all or some selected properties from an instance of Warehouses with the given id. | key: getInvoice
| Input | Notes | Example |
|---|---|---|
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Connection | The SAP Business One connection to use. | |
| Doc Entry | The document entry number (DocEntry) that uniquely identifies the invoice. This is an integer value. | 12345 |
Get Item
Retrieve all or some selected properties from an instance of Items with the given id. | key: getItem
| Input | Notes | Example |
|---|---|---|
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Connection | The SAP Business One connection to use. | |
| Item Code | The unique code identifying the item in the inventory. | A00001 |
Get Order
Retrieve all or some selected properties from an instance of Orders with the given id. | key: getOrder
| Input | Notes | Example |
|---|---|---|
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Connection | The SAP Business One connection to use. | |
| Doc Entry | The document entry number (DocEntry) that uniquely identifies the order. This is an integer value. | 123 |
Get Price List
Retrieve all or some selected properties from an instance of PriceLists with the given id. | key: getPriceList
| Input | Notes | Example |
|---|---|---|
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Connection | The SAP Business One connection to use. | |
| Price List Number | The unique number identifying the price list. This is an integer value. | 1 |
Example Payload for Get Price List⤓
Get Purchase Order
Retrieve all or some selected properties from an instance of Purchase Orders with the given id. | key: getPurchaseOrder
| Input | Notes | Example |
|---|---|---|
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Connection | The SAP Business One connection to use. | |
| Purchase Order Document Entry | The document entry number (DocEntry) that uniquely identifies the purchase order. This is an integer value. | 12345 |
Get Record
Retrieve a single record from SAP Business One. | key: getRecord
| Input | Notes | Example |
|---|---|---|
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Connection | The SAP Business One connection to use. | |
| Record ID | The unique identifier for the record. This is typically an integer value (DocEntry or similar). | 12345 |
| Record Type | The type of record to use for the operation (e.g., JournalEntries, Activities, BusinessPartners). This corresponds to the Service Layer entity name. | JournalEntries |
Get Warehouse
Retrieve all or some selected properties from an instance of Warehouses with the given id. | key: getWarehouse
| Input | Notes | Example |
|---|---|---|
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Connection | The SAP Business One connection to use. | |
| Warehouse Code | The unique code identifying the warehouse. | WH01 |
Example Payload for Get Warehouse⤓
Get Warehouse Location
Retrieve all or some selected properties from an instance of Warehouse Location with the given id. | key: getWarehouseLocation
| Input | Notes | Example |
|---|---|---|
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Connection | The SAP Business One connection to use. | |
| Warehouse Location ID | The unique identifier for the warehouse location. This is an integer value. | 1 |
Example Payload for Get Warehouse Location⤓
List Business Partners
Retrieve a collection of Business Partners with all or some selected properties | key: listBusinessPartners
| Input | Notes | Example |
|---|---|---|
| Filter | An OData filter expression to apply to the request (e.g., startswith, eq, gt). See OData $filter documentation for filter syntax. | startswith(ItemCode, 'A001') |
| Order By | A comma-separated list of fields to sort by. Add 'asc' or 'desc' after field name for sort direction (e.g., ItemCode desc). | ItemCode asc |
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Skip | The number of items to skip before returning results. Used for pagination. | 20 |
| Top | The maximum number of items to return. Maximum value is 20. | 10 |
| Connection | The SAP Business One connection to use. | |
| Custom Query Params | Custom query parameters to include in the request, such as $expand for related entities. | $expand=value |
| Fetch All | When true, all records will be fetched automatically by paginating through results. When false, only the number of records specified in $top will be returned. | false |
Example Payload for List Business Partners⤓
List Invoices
Retrieve a collection of Invoices with all or some selected properties in the given order by specifying the given filter condition. | key: listInvoices
| Input | Notes | Example |
|---|---|---|
| Filter | An OData filter expression to apply to the request (e.g., startswith, eq, gt). See OData $filter documentation for filter syntax. | startswith(ItemCode, 'A001') |
| Order By | A comma-separated list of fields to sort by. Add 'asc' or 'desc' after field name for sort direction (e.g., ItemCode desc). | ItemCode asc |
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Skip | The number of items to skip before returning results. Used for pagination. | 20 |
| Top | The maximum number of items to return. Maximum value is 20. | 10 |
| Connection | The SAP Business One connection to use. | |
| Custom Query Params | Custom query parameters to include in the request, such as $expand for related entities. | $expand=value |
| Fetch All | When true, all records will be fetched automatically by paginating through results. When false, only the number of records specified in $top will be returned. | false |
List Items
Retrieve a collection of Items with all or some selected properties. | key: listItems
| Input | Notes | Example |
|---|---|---|
| Filter | An OData filter expression to apply to the request (e.g., startswith, eq, gt). See OData $filter documentation for filter syntax. | startswith(ItemCode, 'A001') |
| Order By | A comma-separated list of fields to sort by. Add 'asc' or 'desc' after field name for sort direction (e.g., ItemCode desc). | ItemCode asc |
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Skip | The number of items to skip before returning results. Used for pagination. | 20 |
| Top | The maximum number of items to return. Maximum value is 20. | 10 |
| Connection | The SAP Business One connection to use. | |
| Custom Query Params | Custom query parameters to include in the request, such as $expand for related entities. | $expand=value |
| Fetch All | When true, all records will be fetched automatically by paginating through results. When false, only the number of records specified in $top will be returned. | false |
List Orders
Retrieve a collection of Orders with all or some selected properties | key: listOrders
| Input | Notes | Example |
|---|---|---|
| Filter | An OData filter expression to apply to the request (e.g., startswith, eq, gt). See OData $filter documentation for filter syntax. | startswith(ItemCode, 'A001') |
| Order By | A comma-separated list of fields to sort by. Add 'asc' or 'desc' after field name for sort direction (e.g., ItemCode desc). | ItemCode asc |
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Skip | The number of items to skip before returning results. Used for pagination. | 20 |
| Top | The maximum number of items to return. Maximum value is 20. | 10 |
| Connection | The SAP Business One connection to use. | |
| Custom Query Params | Custom query parameters to include in the request, such as $expand for related entities. | $expand=value |
| Fetch All | When true, all records will be fetched automatically by paginating through results. When false, only the number of records specified in $top will be returned. | false |
List Price Lists
Retrieve a collection of PriceLists with all or some selected properties. | key: listPriceLists
| Input | Notes | Example |
|---|---|---|
| Filter | An OData filter expression to apply to the request (e.g., startswith, eq, gt). See OData $filter documentation for filter syntax. | startswith(ItemCode, 'A001') |
| Order By | A comma-separated list of fields to sort by. Add 'asc' or 'desc' after field name for sort direction (e.g., ItemCode desc). | ItemCode asc |
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Skip | The number of items to skip before returning results. Used for pagination. | 20 |
| Top | The maximum number of items to return. Maximum value is 20. | 10 |
| Connection | The SAP Business One connection to use. | |
| Custom Query Params | Custom query parameters to include in the request, such as $expand for related entities. | $expand=value |
| Fetch All | When true, all records will be fetched automatically by paginating through results. When false, only the number of records specified in $top will be returned. | false |
Example Payload for List Price Lists⤓
List Purchase Orders
Retrieve a collection of Purchase Orders with all or some selected properties. | key: listPurchaseOrders
| Input | Notes | Example |
|---|---|---|
| Filter | An OData filter expression to apply to the request (e.g., startswith, eq, gt). See OData $filter documentation for filter syntax. | startswith(ItemCode, 'A001') |
| Order By | A comma-separated list of fields to sort by. Add 'asc' or 'desc' after field name for sort direction (e.g., ItemCode desc). | ItemCode asc |
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Skip | The number of items to skip before returning results. Used for pagination. | 20 |
| Top | The maximum number of items to return. Maximum value is 20. | 10 |
| Connection | The SAP Business One connection to use. | |
| Custom Query Params | Custom query parameters to include in the request, such as $expand for related entities. | $expand=value |
| Fetch All | When true, all records will be fetched automatically by paginating through results. When false, only the number of records specified in $top will be returned. | false |
List Records
Retrieve a list of records from SAP Business One. | key: listRecords
| Input | Notes | Example |
|---|---|---|
| Filter | An OData filter expression to apply to the request (e.g., startswith, eq, gt). See OData $filter documentation for filter syntax. | startswith(ItemCode, 'A001') |
| Order By | A comma-separated list of fields to sort by. Add 'asc' or 'desc' after field name for sort direction (e.g., ItemCode desc). | ItemCode asc |
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Skip | The number of items to skip before returning results. Used for pagination. | 20 |
| Top | The maximum number of items to return. Maximum value is 20. | 10 |
| Connection | The SAP Business One connection to use. | |
| Custom Query Params | Custom query parameters to include in the request, such as $expand for related entities. | $expand=value |
| Fetch All | When true, all records will be fetched automatically by paginating through results. When false, only the number of records specified in $top will be returned. | false |
| Record Type | The type of record to use for the operation (e.g., JournalEntries, Activities, BusinessPartners). This corresponds to the Service Layer entity name. | JournalEntries |
List Warehouse Locations
Retrieve a collection of Warehouses Locations with all or some selected properties in the given order by specifying the given filter condition. | key: listWarehouseLocations
| Input | Notes | Example |
|---|---|---|
| Filter | An OData filter expression to apply to the request (e.g., startswith, eq, gt). See OData $filter documentation for filter syntax. | startswith(ItemCode, 'A001') |
| Order By | A comma-separated list of fields to sort by. Add 'asc' or 'desc' after field name for sort direction (e.g., ItemCode desc). | ItemCode asc |
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Skip | The number of items to skip before returning results. Used for pagination. | 20 |
| Top | The maximum number of items to return. Maximum value is 20. | 10 |
| Connection | The SAP Business One connection to use. | |
| Custom Query Params | Custom query parameters to include in the request, such as $expand for related entities. | $expand=value |
| Fetch All | When true, all records will be fetched automatically by paginating through results. When false, only the number of records specified in $top will be returned. | false |
Example Payload for List Warehouse Locations⤓
List Warehouses
Retrieve a collection of Warehouses with all or some selected properties in the given order by specifying the given filter condition. | key: listWarehouses
| Input | Notes | Example |
|---|---|---|
| Filter | An OData filter expression to apply to the request (e.g., startswith, eq, gt). See OData $filter documentation for filter syntax. | startswith(ItemCode, 'A001') |
| Order By | A comma-separated list of fields to sort by. Add 'asc' or 'desc' after field name for sort direction (e.g., ItemCode desc). | ItemCode asc |
| Select | A comma-separated list of fields to include in the response. If not provided, all fields will be returned and the query may be slower. See OData $select documentation for available fields. | ItemCode,ItemName,ForeignName |
| Skip | The number of items to skip before returning results. Used for pagination. | 20 |
| Top | The maximum number of items to return. Maximum value is 20. | 10 |
| Connection | The SAP Business One connection to use. | |
| Custom Query Params | Custom query parameters to include in the request, such as $expand for related entities. | $expand=value |
| Fetch All | When true, all records will be fetched automatically by paginating through results. When false, only the number of records specified in $top will be returned. | false |
Example Payload for List Warehouses⤓
Raw Request
Send raw HTTP request to the SAP Business One API | key: rawRequest
| Input | Notes | Example |
|---|---|---|
| Connection | The SAP Business One connection to use. | |
| Data | The HTTP body payload to send to the URL. | {"exampleKey": "Example Data"} |
| File Data | File Data to be sent as a multipart form upload. | [{key: "example.txt", value: "My File Contents"}] |
| File Data File Names | File names to apply to the file data inputs. Keys must match the file data keys above. | |
| Form Data | The Form Data to be sent as a multipart form upload. | [{"key": "Example Key", "value": new Buffer("Hello World")}] |
| Header | A list of headers to send with the request. | User-Agent: curl/7.64.1 |
| Max Retry Count | The maximum number of retries to attempt. Specify 0 for no retries. | 0 |
| Method | The HTTP method to use. | |
| Query Parameter | A list of query parameters to send with the request. This is the portion at the end of the URL similar to ?key1=value1&key2=value2. | |
| Response Type | The type of data you expect in the response. You can request json, text, or binary data. | json |
| Retry On All Errors | If true, retries on all erroneous responses regardless of type. This is helpful when retrying after HTTP 429 or other 3xx or 4xx errors. Otherwise, only retries on HTTP 5xx and network errors. | false |
| Retry Delay (ms) | The delay in milliseconds between retries. This is used when 'Use Exponential Backoff' is disabled. | 0 |
| Timeout | The maximum time that a client will await a response to its request | 2000 |
| URL | The API endpoint path only (e.g., Items, Orders, BusinessPartners). The base URL is automatically included based on your connection settings. For example, to access Items, enter 'Items' here and it will be appended to the base URL ( | Items |
| Use Exponential Backoff | Specifies whether to use a pre-defined exponential backoff strategy for retries. When enabled, 'Retry Delay (ms)' is ignored. | false |
Update Business Partner
Update an instance of Business Partners | key: updateBusinessPartner
| Input | Notes | Example |
|---|---|---|
| Body Fields | Additional fields to include in the request body as a JSON object. These fields will be merged with the other input values. | |
| Card Code | The unique code identifying the business partner (customer or supplier). | C20000 |
| Card Name | The name of the business partner (customer or supplier). | Acme Corporation |
| Card Type | The type of the business partner: Customer (cCustomer), Supplier (cSupplier), or Lead (cLid). | |
| Connection | The SAP Business One connection to use. |
Example Payload for Update Business Partner⤓
Update Invoice
Update an instance of Invoices. | key: updateInvoice
| Input | Notes | Example |
|---|---|---|
| Body Fields | Additional fields to include in the request body as a JSON object. These fields will be merged with the other input values. | |
| Comments | The comments to be added to the modified order. | new comments - modified by Service Layer |
| Connection | The SAP Business One connection to use. | |
| Doc Entry | The document entry number (DocEntry) that uniquely identifies the invoice. This is an integer value. | 12345 |
Example Payload for Update Invoice⤓
Update Item
Update an instance of Items | key: updateItem
| Input | Notes | Example |
|---|---|---|
| Body Fields | Additional fields to include in the request body as a JSON object. These fields will be merged with the other input values. | |
| Connection | The SAP Business One connection to use. | |
| Item Code | The unique code identifying the item in the inventory. | A00001 |
| Item Name | The name of the item in the inventory. | Desktop Computer |
| Item Type | The type of the item: Items (itItems), Labor (itLabor), Travel (itTravel), or Fixed Assets (itFixedAssets). |
Example Payload for Update Item⤓
Update Order
Update an instance of Orders. | key: updateOrder
| Input | Notes | Example |
|---|---|---|
| Body Fields | Additional fields to include in the request body as a JSON object. These fields will be merged with the other input values. | |
| Comments | The comments to be added to the modified order. | new comments - modified by Service Layer |
| Connection | The SAP Business One connection to use. | |
| Doc Entry | The document entry number (DocEntry) that uniquely identifies the order. This is an integer value. | 123 |
Example Payload for Update Order⤓
Update Price List
Update an instance of Price Lists. | key: updatePriceList
| Input | Notes | Example |
|---|---|---|
| Body Fields | Additional fields to include in the request body as a JSON object. These fields will be merged with the other input values. | |
| Connection | The SAP Business One connection to use. | |
| Price List Name | The name of the price list. | Retail Price List |
| Price List Number | The unique number identifying the price list. This is an integer value. | 1 |
Example Payload for Update Price List⤓
Update Purchase Order
Update an instance of Purchase Orders. | key: updatePurchaseOrder
| Input | Notes | Example |
|---|---|---|
| Body Fields | Additional fields to include in the request body as a JSON object. These fields will be merged with the other input values. | |
| Comments | The comments to be added to the modified order. | new comments - modified by Service Layer |
| Connection | The SAP Business One connection to use. | |
| Purchase Order Document Entry | The document entry number (DocEntry) that uniquely identifies the purchase order. This is an integer value. | 12345 |
Example Payload for Update Purchase Order⤓
Update Record
Update an existing record in SAP Business One. | key: updateRecord
| Input | Notes | Example |
|---|---|---|
| Body Fields | Additional fields to include in the request body as a JSON object. These fields will be merged with the other input values. | |
| Connection | The SAP Business One connection to use. | |
| Record ID | The unique identifier for the record. This is typically an integer value (DocEntry or similar). | 12345 |
| Record Type | The type of record to use for the operation (e.g., JournalEntries, Activities, BusinessPartners). This corresponds to the Service Layer entity name. | JournalEntries |
Example Payload for Update Record⤓
Update Warehouse
Update an instance of Warehouses. | key: updateWarehouse
| Input | Notes | Example |
|---|---|---|
| Body Fields | Additional fields to include in the request body as a JSON object. These fields will be merged with the other input values. | |
| Connection | The SAP Business One connection to use. | |
| Warehouse Location ID | The unique identifier for the warehouse location. This is an integer value. | 1 |
| Warehouse Code | The unique code identifying the warehouse. | WH01 |
| Warehouse Name | The name of the warehouse. | Main Distribution Center |
Example Payload for Update Warehouse⤓
Changelog
2026-10-13
Added batching and initial sync support to the New and Updated Records polling trigger:
- Added opt-in batching to the New and Updated Records trigger, dispatching each changed record individually or in configured batches; enabling it changes the shape a downstream step receives
- Added an optional Look-back Date input for performing an initial sync of records. The initial sync begins on the first recurrence and backfills every record modified on or after the specified date, seeding each once and ignoring the trigger's visibility filters; later recurrences are unaffected. Leave it empty to start from the first recurrence with no backfill
2026-05-05
Added New and Updated Records polling trigger that detects newly created and recently modified records across seven resource types: Business Partners, Items, Orders, Invoices, Purchase Orders, Warehouses, and Price Lists. Filtering is pushed to the SAP Business One Service Layer for efficient server-side queries, with date-based filtering reflecting the day-level precision of the underlying update timestamp
2026-04-30
Updated spectral version
2026-01-26
Added API Version selection to connection settings, allowing you to choose between v1 (OData 3.0) or v2 (OData 4.0) APIs. v2 is recommended for new integrations to access the latest OData 4.0 features and improved performance, while v1 remains available to ensure existing integrations continue working without modification.