Saltar al contenido principal

Tablas

A continuación se detallan las tablas y columnas que pueden enviarse al servidor para almacenar sus registros.

tip

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:

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 (true o false).
  • 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",
},

{
// ...
},
],
ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
client_id
[Primary Key]
IntegerID del clienteNoNo-
legal_nameString (100)Razón social
(o nombre completo)
NoNo-
tax_condition_codeString:
iva_responsable_inscripto,
iva_responsable_monotributo,
iva_sujeto_exento,
consumidor_final
Código de condición fiscalSíSíNull
identificationString (50)IdentificaciónSíSíNullCUIT, DNI u otros
payment_term_idIntegerID de la condición de ventaSíSíNull
addressString (100)DirecciónNoNo-
locality_idIntegerID de la localidadSíSíNull
localityString (70)Nombre de la localidadSíSíNull
postal_codeIntegerCódigo postalSíSíNull
state_idIntegerID de la provinciaSíSíNull
stateString (60)Nombre de la provinciaSíSíNull
latitudeDecimalLatitudSíSíNull
longitudeDecimalLongitudSíSíNull
first_opening_timeTimePrimer horario de aperturaSíSíNull
first_closing_timeTimePrimer horario de cierreSíSíNull
second_opening_timeTimeSegundo horario de aperturaSíSíNull
second_closing_timeTimeSegundo horario de cierreSíSíNull
phoneString (50)TeléfonoSíSíNull
emailString (80)EmailSíSíNull
contactString (50)ContactoSíSíNull
adjustment_typeString:
surcharge-percentage,
discount-percentage
Tipo de ajuste: recargo o descuentoNoNo-
adjustment_valueDecimalPorcentaje de recargo o descuentoNoNo-
zone_idIntegerID de la zona asignadaSíSíNull
sales_agent_idIntegerID del vendedor asignadoSíSíNull
payment_collections_agent_idIntegerID del cobrador asignadoSíSíNull
price_list_idIntegerID de la lista de precios asignadaSíSíNull
ending_balanceDecimalBalance finalSíSíNull
credit_limitDecimalLímite de créditoSíSíNull
pending_clearance_amountDecimalMonto pendiente de acreditaciónSíNo0.00
last_sale_atDateTime
(ISO 8601)
Fecha de última ventaSíSíNull
observationsString (500)ObservacionesSí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
},

{
// ...
},
],
ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
client_debt_id
[Primary Key]
IntegerID de deuda del clienteNoNo-
client_idIntegerID del clienteNoNo-
invoice_codeString (100)Código de la facturaNoNo-
invoice_created_atDateTime
(ISO 8601)
Fecha y hora de creación de la facturaNoNo-Formato de fecha ISO 8601 (tipos flexibles)
invoice_due_dateDateTime
(ISO 8601)
Fecha y hora de vencimiento de la facturaSíSíNullFormato de fecha ISO 8601 (tipos flexibles)
descriptionString (150)DescripciónSíSíNull
total_amountDecimalMonto total de la deudaNoNo-
paid_amountDecimalMonto pagado hasta el momentoNoNo-

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
},

{
// ...
},
],
ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
payment_term_id
[Primary Key]
IntegerID de la condición de ventaNoNo-
descriptionString (75)DescripciónNoNo-
adjustment_typeString:
surcharge-percentage,
discount-percentage
Tipo de ajuste: recargo o descuentoNoNo-
adjustment_valueDecimalPorcentaje de recargo o descuentoNoNo-
days_to_invoice_expirationIntegerCantidad de días para la expiración de la facturaSiSiNull

prices Table​

Tabla de precios.

Ejemplo JSON - [Expandir]
"prices": [
{
"price_id": 1,
"product_id": 1,
"price_list_id": 1,
"price": 150.00
},

{
// ...
},
],
ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
price_id
[Primary Key]
IntegerID del precioNoNo-
product_idIntegerID del producto asociadoNoNo-
price_list_idIntegerID de la lista de precios asociadaNoNo-
priceDecimalMonto del precioNoNo-

price_lists Table​

Tabla de listas de precios.

Ejemplo JSON - [Expandir]
"price_lists": [
{
"price_list_id": 1,
"name": "Lista 1",
"include_iva": true
},

{
// ...
},
],
ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
price_list_id
[Primary Key]
IntegerID de la lista de preciosNoNo-
nameString (50)NombreNoNo-
include_ivaBooleanIndica si los precios incluyen IVANoNo-

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
},

{
// ...
},
],
ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
product_id
[Primary Key]
IntegerID del productoNoNo-
descriptionString (150)DescripciónNoNo-
brand_idIntegerID de la marcaSíSíNull
category_idIntegerID de la categoríaSíSíNull
group_idIntegerID del grupoSíSíNull
sub_group_idIntegerID del sub grupoSíSíNull
ivaDecimalPorcentaje de IVANoNo-
barcodeString (40)Código de barrasSíSíNull
stockDecimalCantidad de stock disponibleSíSíNull
unit_type_idIntegerID del tipo de unidadSíSíNull
quantity_per_unitDecimalCantidad por tipo de unidadSíSíNull
weightDecimalPeso
(Kilogramos)
SíSíNull
minimum_quantity_to_selectDecimalCantidad mínima que puede ser seleccionadaSíSíNull
default_discountDecimalDescuento por defectoSíSíNull
maximum_discountDecimalDescuento máximo que se puede aplicarSíSíNull
price_multiplierDecimalMultiplicador de precioSíSí1.00

brands Table​

Tabla de marcas.

Ejemplo JSON - [Expandir]
"brands": [
{
"brand_id": 1,
"name": "Procenex"
},

{
// ...
},
],
ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
brand_id
[Primary Key]
IntegerID de la marcaNoNo-
nameString (45)NombreNoNo-

categories Table​

Tabla de categorías.

Ejemplo JSON - [Expandir]
"categories": [
{
"category_id": 1,
"name": "Limpieza"
},

{
// ...
},
],
ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
category_id
[Primary Key]
IntegerID de la categoríaNoNo-
nameString (45)NombreNoNo-

groups Table​

Tabla de grupos.

Ejemplo JSON - [Expandir]
"groups": [
{
"group_id": 1,
"name": "Grupo 1"
},

{
// ...
},
],
ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
group_id
[Primary Key]
IntegerID del grupoNoNo-
nameString (45)NombreNoNo-

sub_groups Table​

Tabla de sub grupos.

Ejemplo JSON - [Expandir]
"sub_groups": [
{
"sub_group_id": 1,
"group_id": 1,
"name": "Sub Grupo 1"
},

{
// ...
},
],
ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
sub_group_id
[Primary Key]
IntegerID del sub grupoNoNo-
group_idIntegerID del grupo al que pertenece el sub grupoNoNo-
nameString (45)NombreNoNo-

unit_types Table​

Tabla de tipos de unidad.

Ejemplo JSON - [Expandir]
"unit_types": [
{
"unit_type_id": 1,
"name": "Unidad"
},

{
// ...
},
],
ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
unit_type_id
[Primary Key]
IntegerID del tipo de unidadNoNo-
nameString (50)NombreNoNo-

sales_agents Table​

Tabla de vendedores.

Ejemplo JSON - [Expandir]
"sales_agents": [
{
"sales_agent_id": 1,
"name": "Vendedor 1"
},

{
// ...
},
],
ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
sales_agent_id
[Primary Key]
IntegerID del vendedorNoNo-
nameString (45)NombreNoNo-

collections_agents Table​

Tabla de cobradores.

Ejemplo JSON - [Expandir]
"collections_agents": [
{
"collections_agent_id": 1,
"name": "Cobrador 1"
},

{
// ...
},
],
ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
collections_agent_id
[Primary Key]
IntegerID del cobradorNoNo-
nameString (45)NombreNoNo-

zones Table​

Tabla de zonas.

Ejemplo JSON - [Expandir]
"zones": [
{
"zone_id": 1,
"name": "Zona Norte"
},

{
// ...
},
]
ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
zone_id
[Primary Key]
IntegerID de la zonaNoNo-
nameString (50)NombreNoNo-

states Table​

Tabla de provincias.

Ejemplo JSON - [Expandir]
"states": [
{
"state_id": 1,
"name": "Buenos Aires"
},

{
// ...
},
],
ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
state_id
[Primary Key]
IntegerID de la provinciaNoNo-
nameString (60)NombreNoNo-

localities Table​

Tabla de localidades.

Ejemplo JSON - [Expandir]
"localities": [
{
"locality_id": 1,
"name": "La Plata",
"state_id": 1,
"postal_code": "1900",
"phone_prefix": "221"
},

{
// ...
},
],
ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
locality_id
[Primary Key]
IntegerID de la localidadNoNo-
nameString (70)NombreNoNo-
state_idIntegerID de la provincia a la que pertenece la localidadNoNo-
postal_codeString (15)Código postalSíSíNull
phone_prefixIntegerPrefijo telefónicoSí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".

ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
bank_id
[Primary Key]
IntegerID del bancoNoNo-
nameString (60)NombreNoNo-

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.

Requerimientos

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.

ColumnaTipoDescripciónOpcionalNullableDefaultObservaciones
bank_account_id
[Primary Key]
IntegerID de la cuenta bancariaNoNo-
nameString (60)NombreNoNo-