Skip to main content

Chift

Chift is a unified API platform that connects SaaS products to accounting, invoicing, POS, banking, payment, and eCommerce software through a single integration. Primarily serving the European market, Chift standardizes access to more than 90 financial tools—including Odoo, Sage, Shopify, PrestaShop, Square, and Stripe—so that you can read and write data across multiple back-office systems without maintaining a separate integration for each one.

Chift icon

Power end-to-end data operations for your Chift API with Nexla. Our bi-directional Chift connector is purpose-built for Chift, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Chift or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Chift workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

Chift authenticates API requests using a JWT Bearer token. You do not call the Chift API with your API key directly—instead, Nexla exchanges your Client ID, Client Secret, and Account ID for a short-lived access token, then automatically attaches that token to every request. The token is valid for 30 minutes, and Nexla refreshes it as needed.

Before creating a credential, generate an API key in the Chift dashboard to obtain the Account ID, Client ID, and Client Secret values that the credential requires.

Generate a Chift API Key

A Chift API key is the bundle of values—Account ID, Client ID, and Client Secret—used to generate the Bearer token. Each key is tied to a single environment, so a key created in the sandbox environment works only against sandbox data, and a key created in production works only against production data.

  1. Sign in to the Chift dashboard at https://app.chift.eu.

  2. Open the developer area and navigate to the API Keys section.

  3. Select the environment for which the key will be used:

    • Sandbox: Use this environment to build and test your integration against test data.

    • Production: Use this environment once you are ready to work with live customer data. A new key must be created in production—sandbox keys do not carry over.

  4. Click Create API Key (or the equivalent New API Key action) to generate a new key.

  5. Copy the Account ID, Client ID, and Client Secret values shown for the new key.

    Copy your credentials immediately

    The Client Secret is shown only once at creation time. Copy and store the Account ID, Client ID, and Client Secret in a secure location before leaving the page, as the secret cannot be retrieved again afterward.

For complete, current instructions on creating an API key, see the official Chift guide at Authenticate with Chift API.

Identify the Consumer ID

Most Chift endpoints are scoped to a single consumer—the entity in Chift that represents one of your end customers and holds that customer's connections to their accounting, invoicing, POS, banking, or eCommerce software. Per-consumer requests are made against the /consumers/{consumer_id}/... path, so a Consumer ID is required to read from or write to those endpoints.

  1. In the Chift dashboard, open the Consumers section to view the consumers associated with your account.

  2. Select the consumer whose data you want to access, and copy its Consumer ID.

A consumer must have at least one active connection to a downstream tool (for example, an accounting or eCommerce platform) before its accounting, invoicing, commerce, banking, or payment endpoints will return data. New consumers and their connections can be created from the Chift dashboard or via the API.

Authenticate

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Chift uses client credentials authentication. Nexla submits your Client ID, Client Secret, and Account ID to the Chift token endpoint, receives a Bearer access token, and includes that token on each subsequent API call automatically. Enter your Chift Client ID in the Client ID field. This value identifies your API key and is obtained from the Chift dashboard.

  4. Enter your Chift Client Secret in the Client Secret field. This value is paired with the Client ID to authenticate your API key and should be kept secure.

  5. Enter your Chift Account ID in the Account ID field. This is the UUID of your Chift account associated with the API key.

  6. Optionally, enter a Marketplace ID in the Marketplace ID field. This UUID is required only when you need a marketplace-scoped token; leave it blank for standard account-scoped access.

  7. Enter the Consumer ID in the Consumer ID field. This is the unique identifier of the consumer whose data will be accessed, and it is required for all per-consumer API endpoints.

    The Consumer ID is reused across data sources and destinations created with this credential. To work with multiple consumers, create a separate credential for each consumer, or override the consumer scope when configuring individual flows.

  8. Click the Save button at the bottom of the overlay to save the configured credential. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation and can be selected for use with a new data source or destination.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. 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.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Chift endpoints. 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.

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.

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.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Chift data sources can also be manually configured to ingest data from any valid Chift API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

Chift read endpoints use the GET method and are hosted at https://api.chift.eu; most are scoped to a consumer—for example, https://api.chift.eu/consumers/{'{consumer_id}'}/accounting/clients. Date parameters (date_from, date_to, updated_after) use the yyyy-MM-dd format. Chift list endpoints nest records under a named array—for example, invoices are returned under invoices and orders under data—so the path to data for invoices would be entered as $.invoices[*]. An optional X-Idempotency-Key header can be supplied on certain endpoints to make repeated requests safe to retry; you do not need to add the Bearer token Authorization header, which Nexla attaches automatically based on your credential configuration.

Once all of the relevant settings have been configured, 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.

Use as a destination

Click the + icon on the Nexset that will be sent to the Chift destination, and select the Send to Destination option from the menu. Select the Chift connector from the list of available destination connectors, then select the credential that will be used to connect to the Chift account, and click Next; or, create a new Chift credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure destinations to send data to common Chift endpoints. Select the endpoint to which data will be sent from the Endpoint pulldown menu. Then, click on the template in the list below to expand it, and follow the instructions to configure additional endpoint settings.

All write endpoints below use the POST method and send each Nexset record as a JSON request body. Most endpoints are scoped to the Consumer ID configured in your credential, so the Nexset data must conform to the schema expected by the connected downstream tool for that consumer.

Create a financial entry

Creates a new financial entry in the connected accounting system, including its journal, currency, and optional items. Use this endpoint to push accounting entries from Nexla into your consumer's accounting software.

  • Map your Nexset so that each record represents one financial entry containing the journal, currency, and any line items required by the target accounting platform.
  • Each record is sent as the JSON body to the consumer's accounting financial-entries endpoint.

The required fields for a financial entry depend on the downstream accounting tool connected for the consumer. Review the Chift accounting API reference for the exact payload schema.

Create an invoice payment

Creates a payment for one or more invoices with a specified date, method, and currency. Use this endpoint to record invoice payments in the connected accounting system.

  • Map your Nexset so that each record identifies the invoice or invoices being paid, along with the payment date, method, and currency.
  • Each record is sent as the JSON body to the consumer's accounting invoice-payments endpoint.

Ensure the invoice identifiers referenced in the payment exist in the connected accounting software for the consumer.

Create Consumer

Creates a new consumer in Chift with the provided details. Use this endpoint to provision consumers in bulk from records managed elsewhere.

  • Map your Nexset so that each record contains the consumer details required by Chift, such as the consumer name and internal reference.
  • Each record is sent as the JSON body to the account-level consumers endpoint, so this endpoint does not require a Consumer ID scope.

After a consumer is created, a connection to a downstream tool must still be established before per-consumer data endpoints will return data.

Create Sync

Creates a sync for the configured consumer and returns the resulting sync URL. Use this endpoint to initiate a synchronization for a consumer.

  • Map your Nexset so that each record contains the parameters required to create the sync for the consumer.
  • Each record is sent as the JSON body to the consumer's syncs endpoint, and the response includes the sync URL.

To capture the returned sync URL, enable the response webhook option in the manual configuration so the API response is processed as a Nexla webhook source.

Create Order

Creates a new commerce order for the consumer with the specified details. Use this endpoint to push order records into the connected eCommerce or POS platform.

  • Map your Nexset so that each record represents one order, including its line items, customer, and totals as expected by the target commerce platform.
  • Each record is sent as the JSON body to the consumer's commerce orders endpoint.

The required order fields depend on the downstream commerce tool connected for the consumer.

Create Product

Creates a new product in the invoicing module for the consumer account. Use this endpoint to push product catalog records into the connected invoicing software.

  • Map your Nexset so that each record represents one product, including its name, price, and any tax or category attributes required by the target tool.
  • Each record is sent as the JSON body to the consumer's invoicing products endpoint.

This endpoint targets the invoicing module specifically. To create commerce products, use the appropriate commerce endpoint.

Create Invoice

Creates a new invoice in the invoicing module for the consumer account. Use this endpoint to generate invoices in the connected invoicing software from Nexla data.

  • Map your Nexset so that each record represents one invoice, including the customer, line items, currency, and dates required by the target tool.
  • Each record is sent as the JSON body to the consumer's invoicing invoices endpoint.

The required invoice fields depend on the downstream invoicing tool connected for the consumer. Review the Chift invoicing API reference for the exact payload schema.

Manual configuration

Chift destinations can be manually configured to send data to any valid Chift API endpoint. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, data format, endpoint URL, request headers, attribute exclusions, record batching, and response webhooks.

Chift write endpoints use the POST method and accept application/json. Endpoints are hosted at https://api.chift.eu, and most write endpoints are scoped to a consumer—for example, https://api.chift.eu/consumers/{'{consumer_id}'}/invoicing/invoices. For update operations, include the ID of the object to be updated at the end of the URL.

An optional X-Idempotency-Key header can be supplied to make repeated create requests safe to retry; you do not need to add the Bearer token Authorization header, which Nexla attaches automatically. Chift's create endpoints generally accept one resource per request, so confirm the target endpoint supports batched payloads before enabling record batching. Nexla can automatically send the response received from the Chift API after each call to a new Nexla webhook data source—useful for capturing identifiers or sync URLs returned by create operations, such as the sync URL returned by the Create Sync endpoint.

Save & activate

Once all endpoint settings have been configured, click the Done button in the upper right corner of the screen to save and create the destination. To send the data to the configured Chift endpoint, open the destination resource menu, and select Activate.

The Nexset data will not be sent to Chift until the destination is activated. Destinations can be activated immediately or at a later time, providing full control over data movement.