Skip to main content

Data Source

Follow the instructions below to create a new data flow that ingests data from a Bexio source in Nexla.
bexio_api.png

Bexio

Create a New Data Flow

  1. To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Then, select the desired flow type from the list, and click the Create button.

  2. Select the Bexio connector tile from the list of available connectors. Then, select the credential that will be used to connect to the Bexio instance, and click Next; or, create a new Bexio credential for use in this flow.

  3. In Nexla, Bexio data sources can be created using pre-built endpoint templates, which expedite source setup for common Bexio endpoints. Each template is designed specifically for the corresponding Bexio endpoint, making source configuration easy and efficient.
    • To configure this source using a template, follow the instructions in Configure Using a Template.

    Bexio sources can also be configured manually, allowing you to ingest data from Bexio endpoints not included in the pre-built templates or apply further customizations to exactly suit your needs.
    • To configure this source manually, follow the instructions in Configure Manually.

Configure Using a Template

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Bexio endpoints. Each template is designed specifically for the corresponding Bexio endpoint, making data source setup easy and efficient.

Endpoint Settings

  • Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below. Click on an endpoint to see more information about it and how to configure your data source for this endpoint.

    Fetch a list of resources

    This endpoint retrieves a list of resources of a selected type from your Bexio account. Use this endpoint when you need to access accounts, contacts, invoices, orders, bills, expenses, or other resource types from your Bexio account.

    • Select the API version from the Version Number dropdown menu. Available options are:

      • 2.0: Bexio API v2.0 (default)
      • 3.0: Bexio API v3.0
      • 4.0: Bexio API v4.0

      The default value is 2.0 if not specified. You can also add custom version numbers if needed.

    • Select the resource type you want to retrieve from the Resource Type dropdown menu. Available options include:

      • accounts: Accounts
      • account_groups: Account groups
      • bills: Bills (purchase/bills)
      • expenses: Expenses
      • journals: Journals (accounting/journal)
      • banking accounts: Banking accounts (banking/accounts)
      • payments: Banking payments (banking/payments)
      • contact: Contacts
      • quotes: Quotes (kb_offer)
      • orders: Orders (kb_order)
      • deliveries: Deliveries (kb_delivery)
      • invoices: Invoices (kb_invoice)

      You can also add custom resource types if needed.

    • The endpoint uses GET requests to https://api.bexio.com/{'{version}'}/{'{resource_type}'} where {version} is the API version and {resource_type} is the selected resource type. The endpoint URL is automatically constructed based on the version and resource type you select.
    • The endpoint uses offset-based pagination, automatically fetching additional pages as needed using the offset and limit query parameters. The endpoint starts from offset 0 and continues fetching pages until all available resources have been retrieved. By default, the endpoint retrieves up to 500 items per page.
    • The endpoint will return all resources of the selected type. The response data is extracted from the root-level array in the API response ($[*]), with each resource record processed individually.

    This endpoint supports pagination through offset and limit query parameters. Nexla automatically handles pagination to retrieve all available records by incrementing the offset until no more data is returned. The endpoint uses offset-based pagination (iteration.type: paging.incrementing.offset), starting from offset 0. By default, the endpoint retrieves up to 500 items per page (page.expected.rows: 500). The response data path is $[*], which extracts all items from the root-level array in the API response. You can add custom API versions and resource types if needed. For detailed information about available resource types, retrieving resources, and API usage, see the Bexio API documentation.

    Fetch a resource

    This endpoint retrieves detailed information for a specific resource by its ID from your Bexio account. Use this endpoint when you need to access detailed information about a specific contact, invoice, order, bill, expense, or other resource.

    • Select the API version from the Version Number dropdown menu. Available options are:

      • 2.0: Bexio API v2.0 (default)
      • 3.0: Bexio API v3.0
      • 4.0: Bexio API v4.0

      The default value is 2.0 if not specified. You can also add custom version numbers if needed.

    • Select the resource type you want to retrieve from the Resource Type dropdown menu. Available options include:

      • contact: Fetch a contact
      • quote: Fetch a quote (kb_offer)
      • order: Fetch an order (kb_order, default)
      • delivery: Fetch a delivery (kb_delivery)
      • invoice: Fetch an invoice (kb_invoice)
      • bill: Fetch a bill (purchase/bills)
      • expense: Fetch an expense
      • banking account: Fetch a banking account (banking/accounts)
      • item: Fetch an item (article)

      The default value is order if not specified. You can also add custom resource types if needed.

    • Enter the unique identifier of the resource in the Resource ID field. This is the ID of the specific resource you want to retrieve detailed information for.

    • The endpoint uses GET requests to https://api.bexio.com/{'{version}'}/{'{resource_type}'}/{'{resource_id}'} where {version} is the API version, {resource_type} is the selected resource type, and {resource_id} is the resource ID. The endpoint URL is automatically constructed based on the version, resource type, and resource ID you provide.
    • The endpoint will return detailed information for the specified resource. The response data is extracted from the root-level array in the API response ($[*]), and Nexla will process the entire response structure.
    • The endpoint does not use pagination and returns the complete resource details in a single request.

    Resource IDs can be obtained from the "Fetch a list of resources" endpoint, which returns all resources of a selected type with their corresponding IDs. The endpoint uses a static URL (iteration.type: static.url) and does not require pagination. The response data path is $[*], which extracts all items from the root-level array in the API response. You can add custom API versions and resource types if needed. For detailed information about retrieving resource details, including available resource types and response formats, see the Bexio API documentation.

Endpoint Testing

Once the selected endpoint template has been configured, Nexla can retrieve a sample of the data that will be fetched according to the current settings. This allows users to verify that the source is configured correctly before saving.

  • To test the current endpoint configuration, click the Test button to the right of the endpoint selection menu. Sample data will be fetched & displayed in the Endpoint Test Result panel on the right.

  • If the sample data is not as expected, review the selected endpoint and associated settings, and make any necessary adjustments. Then, click the Test button again, and check the sample data to ensure that the correct information is displayed.

Configure Manually

Bexio data sources can be manually configured to ingest data from any valid Bexio API endpoint. Manual configuration provides maximum flexibility for accessing endpoints not covered by pre-built templates or when you need custom API configurations.

With manual configuration, you can also create more complex Bexio sources, such as sources that use chained API calls to fetch data from multiple endpoints or sources that require custom authentication headers or request parameters.

API Method

  1. To manually configure this source, select the Advanced tab at the top of the configuration screen.

  2. Select the API method that will be used for calls to the Bexio API from the Method pulldown menu. The most common methods are:

    • GET: For retrieving data from the API
    • POST: For sending data to the API or triggering actions
    • PUT: For updating existing data
    • PATCH: For partial updates to existing data
    • DELETE: For removing data

API Endpoint URL

  1. Enter the URL of the Bexio API endpoint from which this source will fetch data in the Set API URL field. This should be the complete URL including the protocol (https://) and any required path parameters. Bexio API endpoints typically follow the pattern https://api.bexio.com/{'{version}'}/{'{resource_type}'} for listing resources or https://api.bexio.com/{'{version}'}/{'{resource_type}'}/{'{resource_id}'} for retrieving specific resources.

Ensure the API endpoint URL is correct and accessible with your current credentials. You can test the endpoint using the Test button after configuring the URL. The endpoint requires Bearer token authentication in the Authorization header, which is handled automatically by your credential configuration. For detailed information about Bexio API endpoints and available APIs, see the Bexio API documentation.

Path to Data

  1. Enter the JSON path that identifies the location of the relevant data within the API response in the Path to Data field. JSON paths use dot notation to navigate through nested JSON structures.

    • For example, if your API response has the structure {"data": {"items": [...]}}, you would enter $.data.items[*] to extract all items from the items array.
    • Use $[*] to extract all items from a root-level array.
    • Use $ to extract the entire root-level object.

JSON paths are case-sensitive and must match the exact structure of your API response. Use the Test button to verify that your JSON path correctly extracts the desired data from the API response.

Save the Data Source

  1. Once all configuration steps have been completed, click the Save button to save your data source configuration.

  2. The data source will now be available in your data flow and will begin ingesting data according to the configured schedule and endpoint settings.