Tablas
A continuación se detallan las tablas y columnas que pueden enviarse al servidor para almacenar sus registros.
No es obligatorio enviar todas las tablas.
Puede omitir aquellas que no utilice o enviarlas como un array vacío.
Tablas requeridas por módulo
Utilice la siguiente guía para identificar las tablas necesarias para el correcto funcionamiento de cada módulo:
-
Módulo Pedidos:
clientspayment_termspricesprices_listsproductsbrands[Recomendado - Opcional]categories[Recomendado - Opcional]groups[Recomendado - Opcional]sub_groups[Recomendado - Opcional]unit_typessales_agents
-
Módulo Cobranzas:
clientsclients_debtsbanks[Recomendado - Opcional]banks_accounts[Recomendado - Opcional]collections_agents
-
Módulo Nuevo cliente:
clientsprice_listszones[Recomendado - Opcional]localities[Recomendado - Opcional]states[Recomendado - Opcional]sales_agents
Tipos de datos flexibles
Cada columna debe cumplir con un tipo de dato específico. Sin embargo, el servidor admite cierta flexibilidad en los formatos aceptados para facilitar la integración:
- String: Cadenas de texto (
"texto"). - Integer: Números enteros (
100) o su versión en cadena ("100"). - Decimal: Números decimales (
100.00), enteros (100) o sus versiones en cadena ("100.00"o"100"). - Boolean: Valores booleanos (
trueofalse). - DateTime (ISO 8601): Cadenas con formato ISO 8601:
"2024-01-01T00:00:00Z"(zona horaria UTC)"2024-01-01T00:00:00-03:00"(zona horaria GMT-03:00 - Argentina)- Otros formatos válidos:
"01-01-2024""01/01/2024""2024-01-01"
- Time: Cadenas con formato "HH:MM" o "HH:MM:SS":
"12:30""12:30:00"
clients Table
Tabla de clientes.
Ejemplo JSON - [Expandir]
"clients": [
{
"client_id": 1,
"legal_name": "Cliente Test S.R.L",
"tax_condition_code": "iva_responsable_inscripto",
"identification": "30-11111111-5",
"payment_term_id": 1,
"address": "Calle 123",
"locality_id": 1,
"locality": "La Plata",
"postal_code": 1900,
"state_id": 1,
"state": "Buenos Aires",
"latitude": -34.92145,
"longitude": -57.95453,
"first_opening_time": "09:00",
"first_closing_time": "18:00",
"second_opening_time": null,
"second_closing_time": null,
"phone": "+54 011 555-555",
"email": "[email protected]",
"contact": "Juan Pérez",
"adjustment_type": "discount-percentage",
"adjustment_value": 10.00,
"zone_id": 1,
"sales_agent_id": 1,
"payment_collections_agent_id": 1,
"price_list_id": 1,
"ending_balance": 0.00,
"credit_limit": 50000.00,
"pending_clearance_amount": 0.00,
"last_sale_at": "2024-01-01T00:00:00-03:00",
"observations": "Oficinas en 1er piso",
},
{
// ...
},
],
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| client_id [Primary Key] | Integer | ID del cliente | No | No | - | |
| legal_name | String (100) | Razón social (o nombre completo) | No | No | - | |
| tax_condition_code | String:iva_responsable_inscripto,iva_responsable_monotributo,iva_sujeto_exento,consumidor_final | Código de condición fiscal | Sí | Sí | Null | |
| identification | String (50) | Identificación | Sí | Sí | Null | CUIT, DNI u otros |
| payment_term_id | Integer | ID de la condición de venta | Sí | Sí | Null | |
| address | String (100) | Dirección | No | No | - | |
| locality_id | Integer | ID de la localidad | Sí | Sí | Null | |
| locality | String (70) | Nombre de la localidad | Sí | Sí | Null | |
| postal_code | Integer | Código postal | Sí | Sí | Null | |
| state_id | Integer | ID de la provincia | Sí | Sí | Null | |
| state | String (60) | Nombre de la provincia | Sí | Sí | Null | |
| latitude | Decimal | Latitud | Sí | Sí | Null | |
| longitude | Decimal | Longitud | Sí | Sí | Null | |
| first_opening_time | Time | Primer horario de apertura | Sí | Sí | Null | |
| first_closing_time | Time | Primer horario de cierre | Sí | Sí | Null | |
| second_opening_time | Time | Segundo horario de apertura | Sí | Sí | Null | |
| second_closing_time | Time | Segundo horario de cierre | Sí | Sí | Null | |
| phone | String (50) | Teléfono | Sí | Sí | Null | |
| String (80) | Sí | Sí | Null | |||
| contact | String (50) | Contacto | Sí | Sí | Null | |
| adjustment_type | String:surcharge-percentage,discount-percentage | Tipo de ajuste: recargo o descuento | No | No | - | |
| adjustment_value | Decimal | Porcentaje de recargo o descuento | No | No | - | |
| zone_id | Integer | ID de la zona asignada | Sí | Sí | Null | |
| sales_agent_id | Integer | ID del vendedor asignado | Sí | Sí | Null | |
| payment_collections_agent_id | Integer | ID del cobrador asignado | Sí | Sí | Null | |
| price_list_id | Integer | ID de la lista de precios asignada | Sí | Sí | Null | |
| ending_balance | Decimal | Balance final | Sí | Sí | Null | |
| credit_limit | Decimal | Límite de crédito | Sí | Sí | Null | |
| pending_clearance_amount | Decimal | Monto pendiente de acreditación | Sí | No | 0.00 | |
| last_sale_at | DateTime (ISO 8601) | Fecha de última venta | Sí | Sí | Null | |
| observations | String (500) | Observaciones | Sí | Sí | Null |
clients_debts Table
Tabla de deudas de clientes.
Ejemplo JSON - [Expandir]
"clients_debts": [
{
"client_debt_id": 1,
"client_id": 1,
"invoice_code": "AA-0001",
"invoice_created_at": "2024-01-01T00:00:00.000Z",
"invoice_due_date": "2024-02-01T00:00:00.000Z",
"description": "Factura pendiente",
"total_amount": 1000.00,
"paid_amount": 500.00
},
{
// ...
},
],
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| client_debt_id [Primary Key] | Integer | ID de deuda del cliente | No | No | - | |
| client_id | Integer | ID del cliente | No | No | - | |
| invoice_code | String (100) | Código de la factura | No | No | - | |
| invoice_created_at | DateTime (ISO 8601) | Fecha y hora de creación de la factura | No | No | - | Formato de fecha ISO 8601 (tipos flexibles) |
| invoice_due_date | DateTime (ISO 8601) | Fecha y hora de vencimiento de la factura | Sí | Sí | Null | Formato de fecha ISO 8601 (tipos flexibles) |
| description | String (150) | Descripción | Sí | Sí | Null | |
| total_amount | Decimal | Monto total de la deuda | No | No | - | |
| paid_amount | Decimal | Monto pagado hasta el momento | No | No | - |
payment_terms Table
Tabla de condiciones de venta.
Ejemplo JSON - [Expandir]
"payment_terms": [
{
"payment_term_id": 1,
"description": "CTA. CTE. 30 días",
"adjustment_type": "surcharge-percentage",
"adjustment_value": 10.00,
"days_to_invoice_expiration": 30
},
{
// ...
},
],
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| payment_term_id [Primary Key] | Integer | ID de la condición de venta | No | No | - | |
| description | String (75) | Descripción | No | No | - | |
| adjustment_type | String:surcharge-percentage,discount-percentage | Tipo de ajuste: recargo o descuento | No | No | - | |
| adjustment_value | Decimal | Porcentaje de recargo o descuento | No | No | - | |
| days_to_invoice_expiration | Integer | Cantidad de días para la expiración de la factura | Si | Si | Null |
prices Table
Tabla de precios.
Ejemplo JSON - [Expandir]
"prices": [
{
"price_id": 1,
"product_id": 1,
"price_list_id": 1,
"price": 150.00
},
{
// ...
},
],
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| price_id [Primary Key] | Integer | ID del precio | No | No | - | |
| product_id | Integer | ID del producto asociado | No | No | - | |
| price_list_id | Integer | ID de la lista de precios asociada | No | No | - | |
| price | Decimal | Monto del precio | No | No | - |
price_lists Table
Tabla de listas de precios.
Ejemplo JSON - [Expandir]
"price_lists": [
{
"price_list_id": 1,
"name": "Lista 1",
"include_iva": true
},
{
// ...
},
],
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| price_list_id [Primary Key] | Integer | ID de la lista de precios | No | No | - | |
| name | String (50) | Nombre | No | No | - | |
| include_iva | Boolean | Indica si los precios incluyen IVA | No | No | - |
products Table
Tabla de productos.
Ejemplo JSON - [Expandir]
"products": [
{
"product_id": 1,
"description": "Producto 1",
"group_id": 1,
"sub_group_id": 1,
"iva": 21.00,
"barcode": "7790001000001",
"stock": 100.00,
"brand_id": 1,
"category_id": 1,
"unit_type_id": 1,
"quantity_per_unit": 1.00,
"weight": 0.00,
"minimum_quantity_to_select": 0.00,
"default_discount": 10.00,
"maximum_discount": 20.00,
"price_multiplier": 1.00
},
{
// ...
},
],
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| product_id [Primary Key] | Integer | ID del producto | No | No | - | |
| description | String (150) | Descripción | No | No | - | |
| brand_id | Integer | ID de la marca | Sí | Sí | Null | |
| category_id | Integer | ID de la categoría | Sí | Sí | Null | |
| group_id | Integer | ID del grupo | Sí | Sí | Null | |
| sub_group_id | Integer | ID del sub grupo | Sí | Sí | Null | |
| iva | Decimal | Porcentaje de IVA | No | No | - | |
| barcode | String (40) | Código de barras | Sí | Sí | Null | |
| stock | Decimal | Cantidad de stock disponible | Sí | Sí | Null | |
| unit_type_id | Integer | ID del tipo de unidad | Sí | Sí | Null | |
| quantity_per_unit | Decimal | Cantidad por tipo de unidad | Sí | Sí | Null | |
| weight | Decimal | Peso (Kilogramos) | Sí | Sí | Null | |
| minimum_quantity_to_select | Decimal | Cantidad mínima que puede ser seleccionada | Sí | Sí | Null | |
| default_discount | Decimal | Descuento por defecto | Sí | Sí | Null | |
| maximum_discount | Decimal | Descuento máximo que se puede aplicar | Sí | Sí | Null | |
| price_multiplier | Decimal | Multiplicador de precio | Sí | Sí | 1.00 |
brands Table
Tabla de marcas.
Ejemplo JSON - [Expandir]
"brands": [
{
"brand_id": 1,
"name": "Procenex"
},
{
// ...
},
],
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| brand_id [Primary Key] | Integer | ID de la marca | No | No | - | |
| name | String (45) | Nombre | No | No | - |
categories Table
Tabla de categorías.
Ejemplo JSON - [Expandir]
"categories": [
{
"category_id": 1,
"name": "Limpieza"
},
{
// ...
},
],
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| category_id [Primary Key] | Integer | ID de la categoría | No | No | - | |
| name | String (45) | Nombre | No | No | - |
groups Table
Tabla de grupos.
Ejemplo JSON - [Expandir]
"groups": [
{
"group_id": 1,
"name": "Grupo 1"
},
{
// ...
},
],
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| group_id [Primary Key] | Integer | ID del grupo | No | No | - | |
| name | String (45) | Nombre | No | No | - |
sub_groups Table
Tabla de sub grupos.
Ejemplo JSON - [Expandir]
"sub_groups": [
{
"sub_group_id": 1,
"group_id": 1,
"name": "Sub Grupo 1"
},
{
// ...
},
],
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| sub_group_id [Primary Key] | Integer | ID del sub grupo | No | No | - | |
| group_id | Integer | ID del grupo al que pertenece el sub grupo | No | No | - | |
| name | String (45) | Nombre | No | No | - |
unit_types Table
Tabla de tipos de unidad.
Ejemplo JSON - [Expandir]
"unit_types": [
{
"unit_type_id": 1,
"name": "Unidad"
},
{
// ...
},
],
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| unit_type_id [Primary Key] | Integer | ID del tipo de unidad | No | No | - | |
| name | String (50) | Nombre | No | No | - |
sales_agents Table
Tabla de vendedores.
Ejemplo JSON - [Expandir]
"sales_agents": [
{
"sales_agent_id": 1,
"name": "Vendedor 1"
},
{
// ...
},
],
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| sales_agent_id [Primary Key] | Integer | ID del vendedor | No | No | - | |
| name | String (45) | Nombre | No | No | - |
collections_agents Table
Tabla de cobradores.
Ejemplo JSON - [Expandir]
"collections_agents": [
{
"collections_agent_id": 1,
"name": "Cobrador 1"
},
{
// ...
},
],
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| collections_agent_id [Primary Key] | Integer | ID del cobrador | No | No | - | |
| name | String (45) | Nombre | No | No | - |
zones Table
Tabla de zonas.
Ejemplo JSON - [Expandir]
"zones": [
{
"zone_id": 1,
"name": "Zona Norte"
},
{
// ...
},
]
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| zone_id [Primary Key] | Integer | ID de la zona | No | No | - | |
| name | String (50) | Nombre | No | No | - |
states Table
Tabla de provincias.
Ejemplo JSON - [Expandir]
"states": [
{
"state_id": 1,
"name": "Buenos Aires"
},
{
// ...
},
],
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| state_id [Primary Key] | Integer | ID de la provincia | No | No | - | |
| name | String (60) | Nombre | No | No | - |
localities Table
Tabla de localidades.
Ejemplo JSON - [Expandir]
"localities": [
{
"locality_id": 1,
"name": "La Plata",
"state_id": 1,
"postal_code": "1900",
"phone_prefix": "221"
},
{
// ...
},
],
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| locality_id [Primary Key] | Integer | ID de la localidad | No | No | - | |
| name | String (70) | Nombre | No | No | - | |
| state_id | Integer | ID de la provincia a la que pertenece la localidad | No | No | - | |
| postal_code | String (15) | Código postal | Sí | Sí | Null | |
| phone_prefix | Integer | Prefijo telefónico | Sí | Sí | Null |
banks Table
Tabla de bancos.
Ejemplo JSON - [Expandir]
"banks": [
{
"bank_id": 1,
"name": "BBVA"
},
{
// ...
},
],
Obligatorio para realizar cobranzas mediante los métodos de pago: "Valores en cartera" o "Transferencia".
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| bank_id [Primary Key] | Integer | ID del banco | No | No | - | |
| name | String (60) | Nombre | No | No | - |
bank_accounts Table
Tabla de cuentas bancarias.
Ejemplo JSON - [Expandir]
"bank_accounts": [
{
"bank_account_id": 1,
"name": "Cuenta Principal"
},
{
// ...
},
],
Propósito:
Utilizada en el modulo de cobranzas.
La información de cuentas bancarias es obligatoria cuando se realizan cobranzas mediante los métodos de pago "Valores en cartera" o "Transferencia".
Si no se utilizan estos métodos de pago, su inclusión es opcional.
| Columna | Tipo | Descripción | Opcional | Nullable | Default | Observaciones |
|---|---|---|---|---|---|---|
| bank_account_id [Primary Key] | Integer | ID de la cuenta bancaria | No | No | - | |
| name | String (60) | Nombre | No | No | - |