> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lehjah.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Data Connector

> Seamlessly integrate and pull data from your platform.

The Data connector feature in Lehjah allows you to seamlessly integrate and pull data from your platform into Lehjah by configuring headers, queries, request URLs, and mapping response data. This page will guide you through setting up data connectors for various data types, ensuring that your platform communicates effectively with Lehjah.

<Frame>
  ![data connector](https://s3.eu-west-2.amazonaws.com/cdn.lehjah.com/docs/images/data_connector.png)
</Frame>

## Configuration Overview

When setting up a data connector, you'll need to define the following components:

<Steps>
  <Step title="Headers">
    Key-value pairs that are included in the request, often used for authentication.
  </Step>

  <Step title="Query Parameters">
    URL parameters that customize the request (e.g., filtering, pagination).
  </Step>

  <Step title="Body">
    Optional data payload to send with the request (for POST/PUT requests).
  </Step>

  <Step title="Request URL">
    The endpoint where the data will be fetched from.
  </Step>

  <Step title="Response Mapping">
    Mapping the response data from your platform to the corresponding fields in Lehjah.
  </Step>
</Steps>

## Data Types and Request Samples

Lehjah supports various data types that can be pulled from your platform. Below are the available data types and their configuration requirements:

### 1. Business Profile

This data type pulls the business profile information from your platform.

<Note>**Business profile** data connection is mandatory for the widget embedding to work. As the user (i.e business) will be authorized based on your platform authorization token.</Note>

```bash
curl -X GET "https://api.yourplatform.com/businesses/{{businessId}}/profile" \
  -H "Authorization: Bearer {{sessionToken}}"
```

```javascript Business profile mapping keys
  [
      {
          label: 'Business name',
          value: 'business_name',
          required: true
      },
      {
          label: 'Phone number',
          value: 'phone',
          required: true
      },
      {
          label: 'Email address',
          value: 'email',
          required: true
      },
      {
          label: 'Country',
          value: 'country',
          required: true
      },
      {
          label: 'Currency',
          value: 'currency',
          required: true
      }
  ]
```

### 2. Wallets

This data type retrieves all wallets associated with a business.

```bash
curl -X GET "https://api.yourplatform.com/businesses/{{businessId}}/wallets" \
  -H "Authorization: Bearer {{sessionToken}}"
```

```javascript Wallet mapping keys
[
  {
    label: 'ID',
    value: 'id',
    required: true
  },
  {
    label: 'Name',
    value: 'name',
    required: true
  },
  {
    label: 'Currency',
    value: 'currency',
    required: true
  }
]
```

### 3. Invoices

This data type fetches invoices from your platform.

```bash
curl -X GET "https://api.yourplatform.com/businesses/{{businessId}}/invoices?from={{fromDate}}&to={{toDate}}&limit={{pageLimit}}&page={{pageNumber}}" \
  -H "Authorization: Bearer {{sessionToken}}"
```

<CodeGroup>
  ```javascript Invoice mapping keys
    [
        {
            label: 'Document number',
            value: 'document_number',
            required: true
        },
        {
            label: 'Title',
            value: 'title',
            required: true
        },
        {
            label: 'Amount paid',
            value: 'amount_paid',
            required: true
        },
        {
            label: 'Contact',
            value: 'contact',
            required: true
        },
        {
            label: 'Due date',
            value: 'due_date',
            required: false
        },
        {
            label: 'Tax',
            value: 'tax',
            required: false
        },
        {
            label: 'Discount',
            value: 'discount',
            required: false
        },
        {
            label: 'Shipping fee',
            value: 'shipping_fee',
            required: false
        }
    ]
  ```

  ```javascript Invoice items mapping keys
     [
         {
             label: 'Name',
             value: 'name',
             required: true
         },
         {
             label: 'Description',
             value: 'description',
             required: false
         },
         {
             label: 'Cost price',
             value: 'cost_price',
             required: true
         },
         {
             label: 'Selling price',
             value: 'selling_price',
             required: true
         },
         {
             label: 'SKU',
             value: 'sku',
             required: false
         }
     ]
  ```
</CodeGroup>

### 4. Bills

This data type retrieves bills for the business.

```bash
curl -X GET "https://api.yourplatform.com/businesses/{{businessId}}/bills?from={{fromDate}}&to={{toDate}}&limit={{pageLimit}}&page={{pageNumber}}" \
  -H "Authorization: Bearer {{sessionToken}}"
```

<CodeGroup>
  ```javascript Bill mapping keys
  [
    {
        label: 'Document number',
        value: 'document_number',
        required: true
    },
    {
        label: 'Title',
        value: 'title',
        required: true
    },
    {
        label: 'Amount paid',
        value: 'amount_paid',
        required: true
    },
    {
        label: 'Contact',
        value: 'contact',
        required: true
    },
    {
        label: 'Due date',
        value: 'due_date',
        required: false
    },
    {
        label: 'Tax',
        value: 'tax',
        required: false
    },
    {
        label: 'Discount',
        value: 'discount',
        required: false
    },
    {
        label: 'Shipping fee',
        value: 'shipping_fee',
        required: false
    }
  ]
  ```

  ```javascript Bill items mapping keys
     [
         {
             label: 'Name',
             value: 'name',
             required: true
         },
         {
             label: 'Description',
             value: 'description',
             required: false
         },
         {
             label: 'Cost price',
             value: 'cost_price',
             required: true
         },
         {
             label: 'Selling price',
             value: 'selling_price',
             required: true
         },
         {
             label: 'SKU',
             value: 'sku',
             required: false
         }
     ]
  ```
</CodeGroup>

### 5. Transactions (Bank or Wallet)

This data type pulls bank transactions that correspond to payments.

```bash
curl -X GET "https://api.yourplatform.com/businesses/{{businessId}}/transactions?from={{fromDate}}&to={{toDate}}&limit={{pageLimit}}&page={{pageNumber}}" \
  -H "Authorization: Bearer {{sessionToken}}"
```

```javascript Transaction keys
  [
      {
          label: 'Business name',
          value: 'business_name',
          required: true
      },
      {
          label: 'Phone number',
          value: 'phone',
          required: true
      },
      {
          label: 'Email address',
          value: 'email',
          required: true
      },
      {
          label: 'Country',
          value: 'country',
          required: true
      },
      {
          label: 'Currency',
          value: 'currency',
          required: true
      }
  ]
```

### 6. Inventory Items

This data type retrieves inventory items from your platform.

```bash
curl -X GET "https://api.yourplatform.com/businesses/{{businessId}}/inventory?limit={{pageLimit}}&page={{pageNumber}}" \
  -H "Authorization: Bearer {{sessionToken}}"
```

```javascript Inventory item keys
  [
     
      {
          label: 'Name',
          value: 'name',
          required: true
      },
      {
          label: 'Description',
          value: 'description',
          required: false
      },
      {
          label: 'SKU',
          value: 'sku',
          required: false
      },
      {
          label: 'Cost price',
          value: 'cost_price',
          required: true
      },
      {
          label: 'Selling price',
          value: 'default_sales_price',
          required: true
      },
      {
          label: 'Unit',
          value: 'unit',
          required: true
      }

  ]
```

### 7. Restock Records

This data type pulls restock records for inventory items.

```bash
curl -X GET "https://api.yourplatform.com/businesses/{{businessId}}/restocks?from={{fromDate}}&to={{toDate}}&limit={{pageLimit}}&page={{pageNumber}}" \
  -H "Authorization: Bearer {{sessionToken}}"
```

<CodeGroup>
  ```javascript Restock mapping keys
  [
    {
        label: 'Document number',
        value: 'document_number',
        required: true
    },
    {
        label: 'Title',
        value: 'title',
        required: true
    },
    {
        label: 'Amount paid',
        value: 'amount_paid',
        required: true
    },
    {
        label: 'Contact',
        value: 'contact',
        required: true
    },
    {
        label: 'Due date',
        value: 'due_date',
        required: false
    },
    {
        label: 'Tax',
        value: 'tax',
        required: false
    },
    {
        label: 'Discount',
        value: 'discount',
        required: false
    },
    {
        label: 'Shipping fee',
        value: 'shipping_fee',
        required: false
    }
  ]
  ```

  ```javascript Restock items mapping keys
     [
         {
             label: 'Name',
             value: 'name',
             required: true
         },
         {
             label: 'Description',
             value: 'description',
             required: false
         },
         {
             label: 'Cost price',
             value: 'cost_price',
             required: true
         },
         {
             label: 'Selling price',
             value: 'selling_price',
             required: true
         },
         {
             label: 'SKU',
             value: 'sku',
             required: false
         }
     ]
  ```
</CodeGroup>

## Testing Your Configuration

Once you've set up the data connectors, use the default variable values provided in the No-Code Administrator to test your configuration. Ensure that the response data is correctly mapped to Lehjah's expected fields for a seamless integration.

By accurately configuring these data connectors, you enable Lehjah to pull essential business data from your platform, providing a complete and integrated accounting experience.
