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

# Irroba as a data source

> Bring data from your Irroba e-commerce store to your Lakehouse.

Irroba is a Brazilian e-commerce platform for building and running online stores, with catalog, checkout, payments, shipping and marketplace integrations in one place. Its REST API exposes the store's orders, customers, products, categories, coupons and invoices.

<img height="50" src="https://mintcdn.com/nekt/sbwRFwi4VUhUFUJC/assets/logo/logo-irroba.svg?fit=max&auto=format&n=sbwRFwi4VUhUFUJC&q=85&s=5097e27a182f62e2288316ebf834bc7d" data-path="assets/logo/logo-irroba.svg" />

## Configuring Irroba as a Source

In the [Sources](https://app.nekt.ai/sources) tab, click on the "Add source" button located on the top right of your screen. Then, select the Irroba option from the list of connectors.

Click **Next** and you'll be prompted to add your access.

### 1. Add account access

Irroba authenticates integrations with the credentials of an **API user** of the store. To create one:

1. Log in to your Irroba store admin panel.
2. Open **APS**, then **Usuários**, then **Usuário API**, and click to add a new API user.
3. Save it and copy the generated **username** and **password**.

Paste both into the connector. The connector exchanges them for a short-lived access token on every run and renews it automatically; the password is never sent with data requests.

<Tip>
  Create a dedicated API user for Nekt. Irroba keeps one active token per API user, so sharing a user with another integration makes both of them log in again and again.
</Tip>

The following configurations are also available:

* **Start date**: The earliest date from which orders, customers and invoices will be synced (store local time). Catalog tables such as products and categories are always read in full. If not provided, the connector starts at 2015-01-01.
* **Requests per minute**: The request quota of your Irroba plan: Bronze 30, Silver 60, Gold 90, Premium 120. The connector paces itself to never exceed it. The default of 30 works for every plan; raise it to match your plan and speed up the first sync.
* **Window size (days)**: How many days each request window covers when reading orders and customers by date range (default 30). Lower it if Irroba rejects large ranges.

Once you're done, click **Next**.

### 2. Select streams

Choose which data streams you want to sync. For faster extractions, select only the streams that are relevant to your analysis. You can select entire groups of streams or pick specific ones.

> Tip: The stream can be found more easily by typing its name.

Select the streams and click **Next**.

### 3. Configure data streams

Customize how you want your data to appear in your catalog. Select the desired layer where the data will be placed, a folder to organize it inside the layer, a name for each table (which will effectively contain the fetched data) and the type of sync.

* **Layer**: choose between the existing layers on your catalog. This is where you will find your new extracted tables as the extraction runs successfully.
* **Folder**: a folder can be created inside the selected layer to group all tables being created from this new data source.
* **Table name**: we suggest a name, but feel free to customize it. You have the option to add a **prefix** to all tables at once and make this process faster!
* **Sync Type**: you can choose between INCREMENTAL and FULL\_TABLE.
  * Incremental: every time the extraction happens, we'll get only the new data - which is good if, for example, you want to keep every record ever fetched.
  * Full table: every time the extraction happens, we'll get the current state of the data - which is good if, for example, you don't want to have deleted data in your catalog.

Once you are done configuring, click **Next**.

### 4. Configure data source

Describe your data source for easy identification within your organization, not exceeding 140 characters.

To define your [Trigger](https://docs.nekt.com/runs/scheduling-and-triggers), consider how often you want data to be extracted from this source. This decision usually depends on how frequently you need the new table data updated (every day, once a week, or only at specific times).

Optionally, you can define some additional settings:

* Configure Delta Log Retention and determine for how long we should store old states of this table as it gets updated. Read more about this resource [here](https://docs.nekt.com/get-started/core-concepts/resource-control).
* Determine when to execute an **Additional [Full Sync](https://docs.nekt.com/get-started/core-concepts/types-of-sync#additional-full-sync)**. This will complement the incremental data extractions, ensuring that your data is completely synchronized with your source every once in a while.

Once you are ready, click **Next** to finalize the setup.

### 5. Check your new source

You can view your new source on the [Sources](https://app.nekt.ai/sources) page. If needed, manually trigger the source extraction by clicking on the arrow button. Once executed, your data will appear in your Catalog.

<Warning>For you to be able to see it on your [Catalog](https://app.nekt.ai/catalog), you need at least one successful source run.</Warning>

## How the extraction works

* **Orders and customers** are read through Irroba's date-range endpoints, which return records created *or* modified in the requested period. Each run starts from the day of the last synced record and walks to today in windows of the configured size, so orders whose status changed are picked up again and updated.
* **Invoices** are read from the invoice list filtered by issue date, starting at the last synced invoice.
* **Products, categories, manufacturers, options, coupons, banners, affiliates, customer groups, abandoned carts and order statuses** have no date filter in the API and are read in full on every run.
* **Order Products** and **Order History** are derived from each order's payload, so they cost no extra requests.
* **Timestamps** are returned by Irroba in the store's local time without a time zone. The connector reads them as America/Sao\_Paulo and stores them as UTC. Calendar dates (birthdays, coupon validity) are kept as dates.
* **Numbers** that Irroba serializes as text (prices, quantities, flags) are converted to numeric columns; empty values become null. Nested structures such as order line items, addresses and product options are stored as JSON text columns.
* **Rate limits**: the connector never exceeds the configured requests per minute and retries with a growing wait when Irroba answers "too many requests".

<Note>
  Irroba caches order queries for the same period for about 30 minutes, so an order placed a moment ago may only appear on the following run.
</Note>

# Streams and Fields

## Available streams

| Stream          | Slug              | Replication | Description                                                                                         |
| --------------- | ----------------- | ----------- | --------------------------------------------------------------------------------------------------- |
| Orders          | `orders`          | Incremental | Orders with customer, payment, shipping, totals and current status; nested details as JSON columns. |
| Order Products  | `order_products`  | Incremental | One row per order line item (product, quantity, prices, options).                                   |
| Order History   | `order_history`   | Incremental | One row per status change of an order.                                                              |
| Customers       | `customers`       | Incremental | Registered customers with group and addresses.                                                      |
| Invoices        | `invoices`        | Incremental | Invoices (NF-e) issued through Irroba.                                                              |
| Products        | `products`        | Full table  | Product catalog with prices, descriptions, categories, promotions and stock options.                |
| Categories      | `categories`      | Full table  | Product categories and hierarchy.                                                                   |
| Manufacturers   | `manufacturers`   | Full table  | Manufacturers and brands.                                                                           |
| Options         | `options`         | Full table  | Stock option definitions (size, color) and their values.                                            |
| Coupons         | `coupons`         | Full table  | Discount coupons and their rules.                                                                   |
| Banners         | `banners`         | Full table  | Storefront banners.                                                                                 |
| Affiliates      | `affiliates`      | Full table  | Affiliate partners.                                                                                 |
| Customer Groups | `customer_groups` | Full table  | Customer groups of the store.                                                                       |
| Abandoned Carts | `abandoned_carts` | Full table  | Carts left behind and their products.                                                               |
| Order Statuses  | `order_statuses`  | Full table  | Reference table of order status ids and names.                                                      |

## Fields by stream

Below you'll find all available data streams from Irroba and their corresponding fields:

<AccordionGroup>
  <Accordion title="Orders">
    One row per order with customer, payment, shipping, totals and the current status. Line items, status history, totals breakdown, coupon and invoices travel as JSON columns and are also exposed row by row in the Order Products and Order History streams.

    **Slug:** `orders`\
    **Primary key:** `order_id`\
    **Replication:** Incremental (`date_modified`)

    **Fields:**

    * `order_id` - Unique identifier of the order
    * `marketplace_order_id` - Identifier of the order inside the marketplace it came from, when applicable
    * `marketplace` - Name of the marketplace the order came from (empty for the store's own site)
    * `store_url` - URL of the store that received the order
    * `customer_id` - Identifier of the customer who placed the order
    * `customer_group_id` - Identifier of the customer's group (8 is the default group)
    * `customer_group_name` - Name of the customer's group
    * `return_id` - Identifier of the exchange/return request linked to the order, 0 when none
    * `return_details` - Exchange/return details: return\_id, return\_reason, tracking code and link (JSON object)
    * `nsu` - Unique sequential number (NSU) generated by the Rede card acquirer, when available
    * `cv` - Transaction identifier generated by the payment acquirer
    * `type_person` - Whether the buyer is an individual (F) or a company (J)
    * `firstname` - Buyer's first name (full name or company name)
    * `lastname` - Buyer's last name (trade name for companies)
    * `email` - Buyer's e-mail address
    * `telephone` - Buyer's landline phone, formatting may vary
    * `cellphone` - Buyer's mobile phone, formatting may vary
    * `cpf_cnpj` - Buyer's CPF or CNPJ (Brazilian tax id), formatting may vary
    * `rg_ie` - Buyer's RG or state registration (IE), formatting may vary
    * `customer_sex` - Buyer's gender as registered (M/F)
    * `cnpj_contact` - Contact person name for company buyers
    * `customer_custom_field` - Custom fields filled by the customer at checkout (JSON object)
    * `number_parcel` - Number of installments of the payment
    * `payment_firstname` - Name of the person responsible for the payment
    * `payment_address_1` - Billing street address
    * `payment_number_home` - Billing address number
    * `payment_neighborhood` - Billing address neighborhood
    * `payment_address_2` - Billing address complement
    * `payment_city` - Billing city
    * `payment_postcode` - Billing postal code (CEP), formatting may vary
    * `payment_country` - Billing country name
    * `payment_zone` - Billing state name
    * `payment_zone_id` - Identifier of the billing state (Irroba zone id, 440-466 for Brazilian states)
    * `payment_method` - Display name of the payment method (not a stable identifier)
    * `payment_code` - Code of the payment method, the stable identifier (e.g. paypal, pagseguro\_billet)
    * `payment_condition` - Payment condition, only for invoice/billing payments
    * `payment_details` - Gateway details: NSU, transaction\_id, authorization\_code, boleto line/number/due date (JSON object)
    * `shipping_firstname` - First name of the person receiving the order
    * `shipping_lastname` - Last name of the person receiving the order
    * `shipping_address_1` - Shipping street address
    * `shipping_number_home` - Shipping address number
    * `shipping_neighborhood` - Shipping address neighborhood
    * `shipping_address_2` - Shipping address complement
    * `shipping_city` - Shipping city
    * `shipping_postcode` - Shipping postal code (CEP), formatting may vary
    * `shipping_country` - Shipping country name
    * `shipping_zone` - Shipping state name
    * `shipping_zone_id` - Identifier of the shipping state (Irroba zone id)
    * `shipping_custom_field` - Custom field of the shipping address (JSON string)
    * `shipping_method` - Display name of the shipping method (see Irroba's shipping methods table)
    * `shipping_code` - Code of the shipping method, the stable identifier (e.g. sedex.sedex)
    * `shipping_delivery_time` - Estimated delivery time in days
    * `melhor_envio_service` - Melhor Envio service id, only when shipped through Melhor Envio
    * `smart_envios_service` - SmartEnvios service id, only when shipped through SmartEnvios
    * `data_frete_id_table` - Data Frete table id, only when shipped through Data Frete
    * `intelipost_delivery_id` - Intelipost delivery method id, only when shipped through Intelipost
    * `comment` - Comment left by the customer on the order
    * `total` - Total amount of the order
    * `interest` - Interest amount charged on the order
    * `order_status_id` - Identifier of the current status of the order (see the order\_statuses stream)
    * `order_status_name` - Name of the current status, taken from the matching status history entry
    * `tracking` - Shipping tracking code, when the order has been shipped
    * `code_tracking` - Tracking code as returned by the details endpoint
    * `date_added` - When the order was placed (store local time, no timezone)
    * `date_modified` - When the order was last changed (store local time); falls back to date\_added when never modified. Used as the incremental replication key
    * `attacked_status` - Whether the order was closed under wholesale (atacado) pricing
    * `pickup_address` - Store pickup address, when the order is picked up in store
    * `user_seller` - Name of the seller responsible for the order
    * `user_seller_id` - Identifier of the seller responsible for the order
    * `external_reference` - External reference, typically the order id in the store's ERP
    * `gift` - Gift (brinde) attached to the order: product id, name, sku, price, quantity (JSON object)
    * `is_mirrored` - Whether the order is mirrored from another store
    * `affiliate_id` - Identifier of the affiliate responsible for the order, when any
    * `affiliate_firstname` - First name of the affiliate responsible for the order
    * `affiliate_lastname` - Last name of the affiliate responsible for the order
    * `intermediary_name` - Name of the payment intermediary
    * `intermediary_cnpj` - CNPJ of the payment intermediary
    * `intermediary_operation_name` - Name of the operation intermediary
    * `intermediary_operation_cnpj` - CNPJ of the operation intermediary
    * `order_history` - Full status history of the order, last entry is the current status (JSON array); also available row by row in the order\_history stream
    * `order_product` - Line items of the order with options, dimensions and attributes (JSON array); also available row by row in the order\_products stream
    * `order_total` - Order totals breakdown: sub\_total, shipping, discounts, interest, total (JSON array of code/title/value)
    * `order_coupon` - Coupon applied to the order: type, models, gift model, discount (JSON object)
    * `invoices` - Invoices (NF-e) linked to the order: quantity and items with number, series, key, status, XML/DANFE links (JSON object)
    * `nfe_details` - Legacy invoice structure kept by Irroba during the transition to 'invoices' (JSON); scheduled for removal on 2026-09-15
  </Accordion>

  <Accordion title="Order Products">
    One row per line item of an order (product, quantity, prices, selected options, dimensions), derived from the Orders stream without extra requests.

    **Slug:** `order_products`\
    **Primary key:** `order_id`, `order_product_id`\
    **Replication:** Incremental (`order_date_modified`)

    **Fields:**

    * `order_id` - Identifier of the order this line item belongs to
    * `order_product_id` - Identifier of the line item inside the order
    * `product_id` - Identifier of the product sold
    * `name` - Product name at the time of the sale
    * `model` - Product code (model/SKU) at the time of the sale
    * `quantity` - Quantity purchased
    * `price` - Unit price at the time of the sale
    * `price_attacked` - Unit wholesale (atacado) price at the time of the sale
    * `total` - Line total (unit price times quantity)
    * `total_attacked` - Line total at wholesale price
    * `present` - Whether the item was marked as a gift (1) or not (0)
    * `present_value` - Gift-wrapping value charged for the item
    * `shipping` - Shipping flag of the item as returned by Irroba
    * `shipping_date` - Shipping date of the item, when shipped separately (store local time)
    * `shipping_method` - Shipping method of the item, when shipped separately
    * `shipping_value` - Shipping value of the item, when shipped separately
    * `delivery_method_id` - Delivery method identifier of the item, when shipped separately
    * `seller_id` - Identifier of the seller of the item (marketplace/multi-seller stores)
    * `status_id` - Status identifier of the item, when tracked per item
    * `manufacturer_id` - Identifier of the product's manufacturer/brand
    * `date_modified` - When the line item was last changed (store local time)
    * `link_xml_nfe` - Link to the NF-e XML of the item, when issued per item
    * `chave_nota` - NF-e access key of the item, when issued per item
    * `free_product_coupon` - Whether the item was given for free through a coupon
    * `options_summary` - Selected product options as 'Option: value' pairs separated by '; ' (e.g. 'Tamanho: 42; Cor: Preto')
    * `options` - Selected product options with the stock option values (JSON array)
    * `weight_class_id` - Weight unit class of the product (1 = kilogram)
    * `weight` - Product weight
    * `length` - Product length
    * `width` - Product width
    * `height` - Product height
    * `product_attribute` - Product attributes at the time of the sale (JSON array)
    * `order_date_added` - When the parent order was placed (store local time)
    * `order_date_modified` - When the parent order was last changed (store local time); used as the incremental replication key
  </Accordion>

  <Accordion title="Order History">
    One row per status change of an order, derived from the Orders stream without extra requests.

    **Slug:** `order_history`\
    **Primary key:** `order_id`, `order_history_id`\
    **Replication:** Incremental (`order_date_modified`)

    **Fields:**

    * `order_id` - Identifier of the order
    * `order_history_id` - Unique identifier of the status change
    * `order_status_id` - Identifier of the status set by this change (see the order\_statuses stream)
    * `order_status_name` - Name of the status set by this change
    * `notify` - Whether the customer was notified of this change (1) or not (0)
    * `comment` - Comment recorded with the status change
    * `user_log` - User or integration that made the change (e.g. lojista, paypal)
    * `date_added` - When the status change happened (store local time)
    * `order_date_added` - When the parent order was placed (store local time)
    * `order_date_modified` - When the parent order was last changed (store local time); used as the incremental replication key
  </Accordion>

  <Accordion title="Customers">
    Registered customers with their group and all addresses (as a JSON column).

    **Slug:** `customers`\
    **Primary key:** `customer_id`\
    **Replication:** Incremental (`date_modified`)

    **Fields:**

    * `customer_id` - Unique identifier of the customer
    * `type_person` - Whether the customer is an individual (F) or a company (J)
    * `firstname` - First name (full name for individuals, company name for companies)
    * `lastname` - Last name (trade name for companies; may be empty when included in firstname)
    * `cnpj_contact` - Contact person name for company customers
    * `email` - E-mail address
    * `birthday` - Date of birth
    * `sex` - Gender as registered (M/F)
    * `telephone` - Landline phone, formatting may vary
    * `cellphone` - Mobile phone, formatting may vary
    * `mobile_operator` - Mobile carrier
    * `cpf_cnpj` - CPF or CNPJ (Brazilian tax id), formatting may vary
    * `rg_ie` - RG or state registration (IE), formatting may vary
    * `limit_credit` - Credit limit granted to the customer
    * `newsletter` - Whether the customer accepts the newsletter (1) or not (0)
    * `address_id` - Identifier of the customer's default address
    * `status` - Status of the customer in the store (1 = active, 0 = inactive)
    * `approved` - Whether the customer registration is approved (1) or pending (0)
    * `affiliate_tracking_code` - Tracking code of the affiliate linked to the customer's registration
    * `customer_group_id` - Identifier of the customer's group (8 is the default group)
    * `customer_group_name` - Name of the customer's group
    * `date_added` - When the customer registered (store local time, no timezone)
    * `date_modified` - When the customer was last changed (store local time); falls back to date\_added when never modified. Used as the incremental replication key
    * `address` - All addresses registered by the customer: address\_id, names, street, number, complement, neighborhood, city, postcode, country\_id, zone\_id (JSON array)
    * `custom_fields` - Custom registration fields configured by the store (JSON array)
    * `upload` - Files uploaded by the customer during registration (JSON array)
  </Accordion>

  <Accordion title="Customer Groups">
    Customer groups of the store (pricing and visibility tiers).

    **Slug:** `customer_groups`\
    **Primary key:** `customer_group_id`\
    **Replication:** Full table

    **Fields:**

    * `customer_group_id` - Unique identifier of the customer group
    * `name` - Name of the customer group
    * `description` - Description of the customer group
    * `sort_order` - Display order in the store (lower first)
    * `buying_minimum_value` - Minimum order value required for customers of this group to buy
    * `minimum_quantity_of_products` - Minimum quantity of products required for customers of this group to buy
    * `minimum_quantity_per` - Whether the minimum quantity counts products (P) or items (I)
  </Accordion>

  <Accordion title="Abandoned Carts">
    Carts left behind by customers and the products they contained.

    **Slug:** `abandoned_carts`\
    **Primary key:** `customer_cart_id`\
    **Replication:** Full table

    **Fields:**

    * `customer_cart_id` - Unique identifier of the abandoned cart
    * `firstname` - Customer's first name
    * `lastname` - Customer's last name
    * `email` - Customer's e-mail address
    * `product_info` - Products left in the cart: product\_id, model, name, image and selected stock options with quantities (JSON array)
  </Accordion>

  <Accordion title="Products">
    Product catalog with prices, descriptions, categories, promotions, quantity discounts and stock options (variants).

    **Slug:** `products`\
    **Primary key:** `product_id`\
    **Replication:** Full table

    **Fields:**

    * `product_id` - Unique identifier of the product
    * `model` - Product code (model), the store's own reference
    * `name` - Product name (from the first product description entry)
    * `external_reference` - External reference, such as the manufacturer's code or the ERP id
    * `stock_status_id` - Identifier of the manufacturing/stock lead-time status
    * `manufacturer_id` - Identifier of the manufacturer/brand (see the manufacturers stream)
    * `image` - Main product image (internal path or URL)
    * `price` - Regular selling price
    * `cost_price` - Cost price
    * `price_sale` - Sale price
    * `price_pos` - Point-of-sale (POS) price
    * `price_attacked` - Wholesale (atacado) price
    * `weight` - Weight
    * `length` - Length
    * `width` - Width
    * `height` - Height
    * `subtract` - Whether stock is controlled for the product (1) or not (0)
    * `sku` - SKU, usually the EAN/barcode
    * `quantity` - Stock quantity of the product, when not tracked per option
    * `minimum` - Minimum purchase quantity
    * `multiple_sales_quantity` - Purchase quantity multiple
    * `status` - Whether the product is enabled (1) or disabled (0)
    * `criticized` - Whether the product was flagged (criticized) by the platform (1) or not (0)
    * `criticized_message` - Message explaining why the product was flagged
    * `approval_certificate` - Approval certificate (CA) for personal protective equipment products
    * `url` - URL slug of the product page
    * `user_log` - User who made the last change
    * `date_added` - When the product was created (store local time, no timezone)
    * `date_modified` - When the product was last changed (store local time)
    * `ncm_name` - Name of the product's NCM (Mercosur tax classification)
    * `ncm_number` - NCM code of the product
    * `product_description` - Descriptions per language: name, description, tag, meta title/description/keywords, summary (JSON array)
    * `product_image` - Secondary product images (JSON array)
    * `product_to_category` - Categories the product belongs to: category\_id and name (JSON array)
    * `product_special` - Promotions configured for the product: customer group, priority, quantity, price, dates (JSON array)
    * `product_discount` - Quantity discounts configured for the product: customer group, quantity, priority, price, dates (JSON array)
    * `product_option` - Stock options (variants) with per-option quantity and price/weight adjustments (JSON array)
    * `product_like` - Identifiers of similar products (JSON array)
  </Accordion>

  <Accordion title="Categories">
    Product categories and their hierarchy.

    **Slug:** `categories`\
    **Primary key:** `category_id`\
    **Replication:** Full table

    **Fields:**

    * `category_id` - Unique identifier of the category
    * `name` - Category name (from the first description entry)
    * `parent_id` - Identifier of the parent category, 0 for top-level categories
    * `image` - Category image
    * `image_icon` - Category icon image
    * `sort_order` - Display order in the store (lower first)
    * `status` - Whether the category is enabled (1) or disabled (0)
    * `date_added` - When the category was created (store local time, no timezone)
    * `category_description` - Descriptions per language: name, description (may contain HTML), meta title/description/keywords (JSON array)
  </Accordion>

  <Accordion title="Manufacturers">
    Manufacturers and brands.

    **Slug:** `manufacturers`\
    **Primary key:** `manufacturer_id`\
    **Replication:** Full table

    **Fields:**

    * `manufacturer_id` - Unique identifier of the manufacturer/brand
    * `name` - Manufacturer name
    * `image` - Manufacturer logo image URL
    * `banner` - Manufacturer banner image URL
    * `meta_title` - Meta title for search engines
    * `meta_description` - Meta description for search engines
    * `description` - Manufacturer description
    * `sort_order` - Display order relative to other manufacturers (lower first)
    * `date_added` - When the manufacturer was created (store local time, no timezone)
    * `date_modified` - When the manufacturer was last changed (store local time)
    * `user_log` - User who made the last change
  </Accordion>

  <Accordion title="Options">
    Stock option definitions (size, color, and the like) and their values.

    **Slug:** `options`\
    **Primary key:** `option_id`\
    **Replication:** Full table

    **Fields:**

    * `option_id` - Unique identifier of the option
    * `name` - Option name (e.g. Tamanho, Cor)
    * `type` - Option input type: select, select\_list, grid, radio, checkbox, text, textarea, datetime
    * `sort_order` - Display order in the store (lower first)
    * `status` - Whether the option is enabled (1) or disabled (0)
    * `option_info` - Values of the option: option\_value\_id, name, sort\_order, allow\_delete (JSON array)
  </Accordion>

  <Accordion title="Coupons">
    Discount coupons with validity, limits and applicability rules.

    **Slug:** `coupons`\
    **Primary key:** `coupon_id`\
    **Replication:** Full table

    **Fields:**

    * `coupon_id` - Unique identifier of the coupon
    * `name` - Coupon name
    * `code` - Code typed by the customer at checkout
    * `type` - Discount type: P = percentage, F = fixed value
    * `product_id` - Product the coupon is bound to, 0 when not product-specific
    * `discount` - Discount value (percentage or amount, according to type)
    * `free_shipping` - Whether the coupon grants free shipping (1) or not (0)
    * `free_shipping_methods` - Shipping methods covered by the free shipping
    * `logged` - Whether the coupon is only visible to logged-in customers (1) or to everyone (0)
    * `total` - Minimum order total required before the coupon is valid
    * `discount_disabled` - Whether the cash-payment discount is disabled when this coupon is used (1) or not (0)
    * `date_start` - First day the coupon is valid
    * `date_end` - Last day the coupon is valid
    * `uses_total` - Maximum number of uses of the coupon, 0 for unlimited
    * `uses_customer` - Maximum number of uses per customer
    * `status` - Whether the coupon is enabled (1) or disabled (0)
    * `retail_or_attacked` - Whether the coupon applies to retail, wholesale or both
    * `user_log` - User who made the last change
    * `coupon_product` - Products the coupon applies to (JSON array of product\_id)
    * `coupon_category` - Categories the coupon applies to (JSON array of category\_id)
    * `coupon_manufacturer` - Manufacturers the coupon applies to (JSON array of manufacturer\_id)
  </Accordion>

  <Accordion title="Banners">
    Storefront banners and their display window.

    **Slug:** `banners`\
    **Primary key:** `banner_new_id`\
    **Replication:** Full table

    **Fields:**

    * `banner_new_id` - Unique identifier of the banner
    * `name_banner` - Banner name
    * `link_banner` - URL the banner links to
    * `link_image` - Banner image file
    * `position` - Banner placement: banner\_full, banner\_full\_side, banner\_targe, banner\_side, banner\_mini
    * `status` - Whether the banner is enabled (1) or disabled (0)
    * `date_start` - First day the banner is shown
    * `date_end` - Last day the banner is shown
    * `sort_order` - Display order in the store (lower first)
    * `date_added` - When the banner was created (store local time, no timezone)
  </Accordion>

  <Accordion title="Affiliates">
    Affiliate partners registered in the store.

    **Slug:** `affiliates`\
    **Primary key:** `affiliate_id`\
    **Replication:** Full table

    **Fields:**

    * `affiliate_id` - Unique identifier of the affiliate
    * `firstname` - Affiliate's first name
    * `lastname` - Affiliate's last name
    * `email` - Affiliate's e-mail address
    * `telephone` - Affiliate's landline phone
    * `cellphone` - Affiliate's mobile phone
    * `address_1` - Street address
    * `neighborhood` - Neighborhood
    * `city` - City
    * `postcode` - Postal code (CEP)
    * `zone_id` - Identifier of the state (Irroba zone id, 440-466 for Brazilian states)
    * `code` - Affiliate tracking code used in links
    * `cpf_cnpj` - CPF or CNPJ (Brazilian tax id)
    * `status` - Whether the affiliate is active (1) or inactive (0)
    * `approved` - Whether the affiliate is approved (1) or pending (0)
  </Accordion>

  <Accordion title="Order Statuses">
    Reference table with the id and name of every order status of the store.

    **Slug:** `order_statuses`\
    **Primary key:** `order_status_id`\
    **Replication:** Full table

    **Fields:**

    * `order_status_id` - Unique identifier of the order status
    * `name` - Status name as shown in the store (e.g. Pagamento Aprovado, Pedido Entregue)
  </Accordion>

  <Accordion title="Invoices">
    Invoices (NF-e) issued through Irroba, with number, series, access key, status and document links.

    **Slug:** `invoices`\
    **Primary key:** `id`\
    **Replication:** Incremental (`issue_date`)

    **Fields:**

    * `id` - Unique identifier of the invoice
    * `series` - Invoice series
    * `number` - Invoice number
    * `type` - Operation type of the invoice (e.g. saida, entrada, sale, return)
    * `order_id` - Identifier of the order the invoice belongs to
    * `key` - NF-e access key (44 digits)
    * `issue_date` - When the invoice was issued (store local time); used as the incremental replication key
    * `status_code` - Numeric status code of the invoice
    * `status` - Status description (e.g. Autorizada, Cancelada)
    * `status_reason` - Reason attached to the status, when any
    * `link_xml` - URL of the invoice XML file
    * `link_danfe` - URL of the DANFE (printable invoice)
    * `products` - Products covered by the invoice (JSON array)
  </Accordion>
</AccordionGroup>
