Skip to main content

Chift Data Source

The Chift connector enables you to ingest standardized accounting, invoicing, commerce, banking, and payment data from the financial tools your customers have connected through Chift's Unified APIs. This connector is particularly useful for consolidating data such as invoices, journal entries, orders, products, and transactions from many different back-office systems into a single, normalized format. Follow the instructions below to create a new data flow that ingests data from a Chift source in Nexla.
chift_api.png

Chift

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 Chift connector tile from the list of available connectors. Then, select the credential that will be used to connect to the Chift instance, and click Next; or, create a new Chift credential for use in this flow.

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

    Chift sources can also be configured manually, allowing you to ingest data from Chift 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 Chift endpoints. Each template is designed specifically for the corresponding Chift endpoint, making data source setup easy and efficient.

Most Chift source endpoints operate within the scope of the Consumer ID configured in your credential and are organized by Unified API category—Accounting, Banking, Commerce, Invoicing, and Payment. Date and ID parameters listed below are optional unless noted otherwise. Date filters use the yyyy-MM-dd format, and boolean filters accept true or false.

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.

    List clients

    Returns a paginated list of clients from the connected accounting software for the configured consumer. Use this endpoint to synchronize your customer's client records into Nexla.

    • Optionally, enter a folder identifier in the Folder ID field to limit results to a specific accounting folder.
    • Optionally, enter a term in the Search field to filter clients by name or identifier.
    • Optionally, enter a date in the Updated After field to return only clients updated on or after that date, which is useful for incremental ingestion.

    Results are returned from the $.clients array. This endpoint paginates automatically, so no additional pagination configuration is required.

    List outstanding items

    Returns a paginated list of unpaid invoices and outstanding amounts owed by clients and suppliers. Use this endpoint for accounts receivable and accounts payable reporting.

    • Optionally, enter a folder identifier in the Folder ID field to limit results to a specific accounting folder.
    • Optionally, enter a value in the Type field to filter by outstanding type, such as client or supplier.
    • Optionally, set the Unposted Allowed field to true to include unposted items in the results.

    Results are returned from the $.outstandings array.

    List employees

    Returns a paginated list of employees recorded in the connected accounting system.

    • Optionally, enter a folder identifier in the Folder ID field to limit results to a specific accounting folder.

    Results are returned from the $.employees array.

    List invoices by type

    Returns a paginated list of sale or purchase invoices with extensive optional filtering. Use this endpoint to ingest invoice records from the connected accounting software.

    • Enter the invoice type—sale or purchase—in the Invoice Type field. This field is required.
    • Optionally, enter a folder identifier in the Folder ID field to limit results to a specific accounting folder.
    • Optionally, set the Date From and Date To fields to bound the invoice date range.
    • Optionally, enter one or more journal identifiers in the Journal IDs field to restrict results to specific journals.
    • Optionally, set the Payment Status field (for example, paid or unpaid) and the Updated After field to support incremental ingestion.
    • Optionally, set the following boolean fields to true to enrich the response:

      • Include Payments: Adds payment information to each invoice.
      • Include Invoice Lines: Adds detailed line items to each invoice.
      • Include Partner Info: Adds client or supplier information to each invoice.

    Results are returned from the $.invoices array. Enabling the include options increases response size, so enable only the fields your flow requires.

    List invoices by type (Multiple Analytic Plans)

    Returns a paginated list of sale or purchase invoices with support for multiple analytic plans. Use this endpoint when the connected accounting software organizes analytic accounting across more than one plan.

    • Enter the invoice type—sale or purchase—in the Invoice Type field. This field is required.
    • Optionally, configure the Folder ID, Date From, Date To, Journal IDs, Payment Status, and Updated After fields as described for the standard invoice endpoint.
    • Optionally, set the following boolean fields to true to enrich the response:

      • Include Payments: Adds payment information to each invoice.
      • Include Invoice Lines: Adds detailed line items to each invoice.
      • Include Partner Info: Adds client or supplier information to each invoice.

    Results are returned from the $.invoices array. Use this endpoint instead of List invoices by type when you need analytic data spanning multiple plans.

    List journal entries

    Returns a paginated list of journal entries from the connected accounting software. Use this endpoint to ingest general-ledger activity for reconciliation or reporting.

    • Optionally, enter a folder identifier in the Folder ID field to limit results to a specific accounting folder.
    • Optionally, enter a value in the Journal ID field to restrict results to a single journal.
    • Optionally, set the Date From, Date To, and Updated After fields to bound the date range or support incremental ingestion.
    • Optionally, enter a value in the Partner ID field to filter entries by a specific partner or client.
    • Optionally, set the Unposted Allowed field to true to include unposted entries.

    Results are returned from the $.entries array.

    List journal entries (Multiple Analytic Plans)

    Returns a paginated list of journal entries with support for multiple analytic plans. Use this endpoint when analytic accounting spans more than one plan in the connected software.

    • Optionally, configure the Folder ID, Journal ID, Date From, Date To, Updated After, Partner ID, and Unposted Allowed fields as described for the standard journal entries endpoint.

    Results are returned from the $.entries array.

    List account counterparts

    Returns a paginated list of aggregated account counterparts found in banking transactions within a date range. Use this endpoint to analyze the entities a consumer transacts with.

    • Optionally, enter a value in the Account ID field to limit results to a specific bank account.
    • Optionally, set the Date From and Date To fields to bound the range of transactions analyzed.

    Results are returned from the $.counterparts array.

    List Banking Accounts

    Returns a paginated list of banking accounts for the configured consumer. Use this endpoint to discover the account identifiers needed by other banking endpoints.

    • This endpoint requires no additional parameters beyond selecting the template. All banking accounts available to the consumer are returned.

    Results are returned from the $.accounts array. The account identifiers returned here can be used in the Account ID field of the List Financial Transactions and List account counterparts endpoints.

    List Financial Transactions

    Returns a paginated list of banking transactions for the consumer, optionally filtered by account and date range.

    • Optionally, enter a value in the Account ID field to limit results to a specific banking account.
    • Optionally, set the Date From and Date To fields to bound the transaction date range.
    • Optionally, enter a value in the Date Type field to choose which date the filter applies to, such as booking date or value date.
    • Optionally, set the Updated After field to return only transactions updated after the given timestamp.

    Results are returned from the $.transactions array.

    List Connections

    Returns the list of connections for the configured consumer. Use this endpoint to see which downstream tools the consumer has linked and to obtain connection identifiers.

    • This endpoint requires no additional parameters beyond selecting the template.

    Results are returned from the $.connections array. Connection identifiers retrieved here are used in the Get Transaction Information endpoint.

    Get Transaction Information

    Returns transaction information for a specific connection associated with the consumer.

    • Enter the connection identifier in the Connection ID field. This field is required and can be obtained from the List Connections endpoint.
    • Optionally, enter a value in the Client Request ID field to set an idempotency key for the request.

    Results are returned from the $.transactions array.

    List Consumers

    Returns the list of consumers in your account, optionally filtered by search term or internal reference. Use this endpoint to discover Consumer IDs for use in other flows.

    • Optionally, enter a term in the Search field to filter consumers by name or email.
    • Optionally, enter a value in the Internal Reference field to filter consumers by their internal reference identifier.

    Results are returned from the $.consumers array. This endpoint operates at the account level rather than within a single consumer scope.

    Get Consumer

    Returns the details of the consumer configured in your credential.

    • This endpoint requires no additional parameters beyond selecting the template. It returns the full consumer object.

    The full response object is returned as the record. The consumer scope is taken from the Consumer ID in your credential.

    Get Datastore Execution Data

    Retrieves execution data for a specific datastore belonging to the consumer, optionally filtered by date range or execution ID.

    • Enter the datastore identifier in the Datastore ID field. This field is required.
    • Optionally, enter a value in the Execution ID field to retrieve data from a single execution.
    • Optionally, set the Date From and Date To fields to bound the data range.

    Results are returned from the $.data array.

    List Customers

    Returns a paginated list of all commerce customers for the consumer account. Use this endpoint to ingest customer records from the connected eCommerce or POS platform.

    • This endpoint requires no additional parameters beyond selecting the template.

    Results are returned from the $.data array.

    List Orders

    Returns a paginated list of all commerce orders for the consumer account with optional filtering and detail options.

    • Optionally, set the Date From, Date To, and Updated After fields to bound the order date range or support incremental ingestion.
    • Optionally, set the following boolean fields to true to enrich the response:

      • Include Detailed Refunds: Adds detailed refund information to each order.
      • Include Product Categories: Adds product category data for the items in each order.
      • Include Customer Details: Adds detailed customer information to each order.

    Results are returned from the $.data array.

    Get Order

    Returns the details of a single commerce order by its identifier.

    • Enter the order identifier in the Order ID field. This field is required.
    • Optionally, set the Include Product Categories field to true to add product category data for the items in the order.

    The full response object is returned as the record.

    List Product Categories

    Returns a paginated list of all commerce product categories for the consumer account.

    • Optionally, set the Only Parents field to true to return only parent categories and exclude subcategories.

    Results are returned from the $.data array.

    List Products

    Returns a paginated list of all commerce products for the consumer account with optional filtering.

    • Optionally, set the Updated After field to return only products updated after the given date.
    • Optionally, enter a value in the SKU field to filter products by stock keeping unit code.

    Results are returned from the $.data array.

    Get Product

    Returns the details of a single commerce product by its identifier.

    • Enter the product identifier in the Product ID field. This field is required.

    The full response object is returned as the record.

    Get Product Variant

    Returns the details of a single commerce product variant by its identifier.

    • Enter the variant identifier in the Variant ID field. This field is required.

    The full response object is returned as the record.

    List Opportunities

    Returns a paginated list of all opportunities in the invoicing module for the consumer account.

    • This endpoint requires no additional parameters beyond selecting the template.

    Results are returned from the $.data array.

    List Invoicing Payments

    Returns a paginated list of all payments from the invoicing system for the consumer.

    • Optionally, set the Date From and Date To fields to bound the payment date range.

    Results are returned from the $.payments array.

    Get Invoice

    Returns a single invoice from the invoicing module by its identifier, with optional PDF and analytic account details.

    • Enter the invoice identifier in the Invoice ID field. This field is required.
    • Optionally, set the Include PDF field to true to include the PDF document in the response.
    • Optionally, set the Include Analytic Accounts field to true to include analytic account information.

    The full response object is returned as the record.

    List Issues

    Returns a list of integration issues filtered by creation date, status, error code, and severity level. Use this endpoint to monitor the health of your consumers' connections.

    • Optionally, set the Created On and Last Seen On fields to filter issues by date.
    • Optionally, enter a value in the Error Code field to filter by a specific error code.
    • Optionally, enter a value in the Status field (for example, open, closed, or resolved).
    • Optionally, enter a value in the Level field to filter by severity (for example, critical, warning, or info).

    Results are returned from the $.issues array. This endpoint operates at the account level rather than within a single consumer scope.

    List Payment Balances

    Returns a paginated list of all payment balances for the consumer.

    • This endpoint requires no additional parameters beyond selecting the template.

    Results are returned from the $.balances array. Balance identifiers retrieved here can be used in the Balance ID field of the List Transactions endpoint.

    List Payments

    Returns a paginated list of all payments for the consumer from the payment module, with optional date filtering.

    • Optionally, set the Date From and Date To fields to bound the payment date range.

    Results are returned from the $.payments array.

    List Transactions

    Returns a paginated list of all payment-module transactions for the consumer, with filtering by category, date, and balance.

    • Optionally, enter a value in the Accounting Category field to filter transactions by category.
    • Optionally, enter a value in the Starting From field to filter from a specific transaction ID or timestamp.
    • Optionally, enter a value in the Balance ID field to filter transactions for a specific balance account.
    • Optionally, set the Date From and Date To fields to bound the transaction date range.

    Results are returned from the $.transactions array.

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

Chift data sources can be manually configured to ingest data from any valid Chift 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 Chift sources, such as sources that use chained API calls to fetch data from multiple endpoints or sources that require custom 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 Chift API from the Method pulldown menu. Chift read endpoints use the GET method:

    • 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 Chift 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. Chift endpoints are hosted at https://api.chift.eu, and most read endpoints are scoped to a consumer—for example, https://api.chift.eu/consumers/{'{consumer_id}'}/accounting/clients.

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.

Date/Time Macros (API URL)

Optional

Optionally, the API URL can be customized using macros—all macros added to the API URL will be converted into values when Nexla executes the API call. Macros are dynamic placeholders that allow you to create flexible API endpoints that can adapt to different time periods or data requirements. For Chift, these are especially useful for populating the many date_from, date_to, and updated_after query parameters to ingest only recently changed records on each run.

Macros are particularly useful for APIs that require date ranges, pagination parameters, or other dynamic values that change between data ingestion runs.

  1. To add a macro, type { at the appropriate position in the API URL (within the Set API URL field), and select the desired macro from the dropdown list.

    • {now} – The current datetime
    • {now-1} – The datetime one time unit before the current datetime
    • {now+1} – The datetime one time unit after the current datetime
    • custom – Datetime macros can reference any number of time units before or after the current datetime—for example, enter (now-4) to indicate the datetime four time units before the current datetime
  2. Select the format that will be applied to datetime macros from the Date Format for Date/Time Macro pulldown menu. This format will be applied to the base datetime value of the macro—i.e., the value of {now} in {now-1}. Chift date parameters use the yyyy-MM-dd format.

  3. Select the datetime unit that will be used to perform mathematical operations in the included macro(s) from the Time Unit for Operations pulldown menu—for example, for the macro {now-1}, when Day is selected, {now-1} will be converted to the datetime one day before the current datetime.

Lookup-Based Macros (API URL)

Optional

Column values from existing lookups can also be included as macros in the API URL. Lookup-based macros allow you to reference data from previously configured data sources or lookups, enabling dynamic API endpoints that can adapt based on existing data. For Chift, this is useful for iterating over connection, account, or order identifiers retrieved from a prior source.

Lookup-based macros are useful when you need to create API endpoints that reference specific IDs, values, or parameters from other data sources in your Nexla environment.

  1. To include a lookup column value macro, select the relevant lookup from the Add Lookups to Supported Macros pulldown menu.

  2. Type { at the appropriate position in the API URL, and select the lookup column-based macro from the dropdown list. Lookup-based macros are automatically populated into the macro list when a lookup is selected in the Add Lookups to Supported Macros pulldown menu.

Path to Data

Optional

If only a subset of the data that will be returned by API endpoint is needed, you can designate the part(s) of the response that should be included in the Nexset(s) produced from this source by specifying the path to the relevant data within the response. This is particularly useful when API responses contain metadata, pagination information, or other data that you don't need for your analysis.

For example, when a request call is used to fetch a list of items, the API will typically return an array of records, along with metadata, in the response. By entering the path to the relevant data, you can configure Nexla to treat each element of the returned array as a record.

Path to Data is essential when API responses have nested structures. Without specifying the correct path, Nexla might not be able to properly parse and organize your data into usable records.

  • To specify which data should be treated as relevant in responses from this source, enter the path to the relevant data in the Set Path to Data in Response field.

    • For responses in JSON format enter the JSON path that points to the object or array that should be treated as relevant data. JSON paths use dot notation (e.g., $.data.items[*] to access an array of items within a data object).

    • For responses in XML format, enter the XPath that points to the object/array containing relevant data. XPath uses slash notation (e.g., /response/data/item to access item elements within a data element).

    Path to Data Example:

    Chift list endpoints nest records under a named array—for example, invoices are returned under invoices and orders under data. To treat each invoice as a record, the path to data would be entered as $.invoices[*].

Autogenerate Path Suggestions

Nexla can also autogenerate data path suggestions based on the response from the API endpoint. These suggested paths can be used as-is or modified to exactly suit your needs.

  • To use this feature, click the Test button next to the Set API URL field to fetch a sample response from the API endpoint. Suggested data paths generated based on the content & format of the response will be displayed in the Suggestions box below the Set Path to Data in Response field.

  • Click on a suggestion to automatically populate the Set Path to Data in Response field with the corresponding path. The populated path can be modified directly within the field if further customization is needed.

    PathSuggestions.png

Metadata

If metadata is included in the response but is located outside of the defined path to relevant data, you can configure Nexla to include this data as common metadata in each record. This is useful when you want to preserve important contextual information that applies to all records but isn't part of the main data array.

For example, when a request call is used to fetch a list of items, the API response will typically include an array of records along with metadata such as total count, pagination information, or request timestamps. In this case, if you have specified the path to the relevant data but metadata of interest is located in a different part of the response, you can specify a path to this metadata to include it with each record in the generated Nexset(s).

Metadata paths are particularly useful for preserving API response context like request IDs, timestamps, or summary statistics that apply to all records in the response.

  • To specify the location of metadata that should be included with each record, enter the path to the relevant metadata in the Path to Metadata in Response field.

    • For responses in JSON format, enter the JSON path to the object or array that contains the metadata, and for responses in XML format, enter the XPath.

Request Headers

Optional
  • If Nexla should include any additional request headers in API calls to this source, enter the headers & corresponding values as comma-separated pairs in the Request Headers field (e.g., header1:value1,header2:value2). For Chift, an optional X-Idempotency-Key header can be supplied on certain endpoints to make repeated requests safe to retry.

    You do not need to include any headers already present in the credentials. The Bearer token Authorization header is added automatically by Nexla based on your credential configuration.

Endpoint Testing

After configuring all settings for the selected endpoint, Nexla can retrieve a sample of the data that will be fetched according to the current configuration. 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.

Save & Activate the Source

  1. Once all of the relevant steps in the above sections have been completed, click the Create button in the upper right corner of the screen to save and create the new Chift data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.