Como integrarse con Punto de Venta Item

1. Descripción General

Documento publico PuntoVenta que contiene un schema genérico que permite enviar tickets para ser procesados posteriormente por el trabajo Resumen Punto de Venta v2

Componentes Principales:

  • Documento público “PuntoVenta” en la plataforma Deals

  • Método POST público “PuntoVentaItemPost”

  • Método GET público “PuntoVentaItemPost”

2. Esquema del Documento

{
  "IdentificacionExterna": "referencia del sistema externo",
  "Fecha": "String - Fecha de emisión del comprobante (AAAA-MM-DD)",
  "SucursalCodigo": "String - Código identificador de la sucursal emisora",
  "CondicionPagoCodigo": "String - Código de la condición de venta (Ej: Contado, Cuenta Corriente)",
  "NumeroDocumento": "String - Número legal del comprobante (Punto de venta y número)",
  "MonedaCodigo": "String - Código de la moneda (Ej: PES, USD)",
  "ComprobanteTipoImpositivoCodigo": "String - Código fiscal del tipo de comprobante (Ej: 001)",
  "TipoDocumento": "String -Código de Tipo de documento",
  "ListaPrecioCodigo": "String - Código de la lista de precios",
  "VendedorCodigo": "String - Código del vendedor",
  "Descripcion": "String - Observaciones generales del comprobante",
  "Cae": "String - Código de Autorización Electrónico (otorgado por ente fiscal)",
  "FechaCae": "String - Fecha de vencimiento del CAE",
  "ImporteTotal": "Number/Decimal - Monto total final del comprobante",
  "Cliente": {
    "CodigoCliente": "String - Código de cliente ",
    "IdentificacionCliente": "String - Número de documento o CUIT del cliente",
    "TipoIdentificacionTributaria": "String - Tipo de ID (Ej: DNI, CUIT, PAS)",
    "Nombre": "String - Nombre comercial o nombre del cliente",
    "RazonSocial": "String - Razón social legal del cliente",
    "CategoriaFiscalCodigo": "String - Condición frente al IVA (Ej: RI, CF, EX)"
  },
  "ItemsProductos": [
    {
      "ProductoCodigo": "String - Código SKU o identificador del producto",
      "Cantidad": "Number - Cantidad de unidades vendidas",
      "Precio": "Number/Decimal - Precio unitario del producto",
      "ImporteExento": "Number/Decimal - Monto del ítem no sujeto a impuestos",
      "Descripcion": "String - Nombre o descripción detallada del producto",
      "DepositoCodigo": "String - Código del depósito de donde egresa el stock",
      "ItemsProductosConceptos": [
        {
          "CodigoTasaImpositiva": "String - Código de Conceptos o Impuesto Interno Calculado (Ej: VENTA_IVA 21)",
          "ImporteDeIVA": "Number/Decimal - Monto calculado del impuesto",
          "IVAImporteGravado": "Number/Decimal - Base imponible sobre la cual se calcula el IVA",
          "PorcentajeTasaImpositiva": "Number/Decimal - Porcentaje de la alícuota (Ej: 21.00)"
        }
      ]
    }
  ],
  "Cobro": [
    {
      "ImporteACobrar": "Number/Decimal - Monto parcial o total abonado en este medio",
      "MonedaCobroCodigo": "String - Código de Moneda",
      "CUIT": "String - CUIT relacionado a la tarjeta o medio de pago",
      "NumeroTarjeta": "String - Números de la tarjeta",
      "FormaPago": "String - Código del medio de pago (EF, BANCO, TARJ, CTACTE)",
      "MetodoPago": "String - Cuenta contable si corresponde a CTACTE o EF, o Código de Operación Bancaria si la forma de pago es TARJ o BANCO.",
      "BancoCodigo": "String - Código del banco emisor",
      "FechaVencimiento": "String - Vencimiento del medio de pago o cupón",
      "NumeroAutorizacionCupon": "String - Código de autorización de la transacción",
      "NumeroCupon": "String - Número de comprobante del posnet/transacción",
      "NumeroLote": "String - Número de lote del cierre de terminal",
      "Titular": "String - Nombre del dueño de la tarjeta o cheque",
      "Beneficiario": "String - Nombre a quien se emite el pago (si aplica)",
      "Descripcion": "String - Nota adicional sobre el cobro",
      "FechaCupon": "String - Fecha en que se realizó la transacción de cobro",
      "DocumentoTitular": "String - DNI del titular del medio de pago"
    }
  ],
  "Percepciones": [
    {
      "Numero": "Number - Número de certificado de percepción/retención",
      "RetencionCodigo": "String - Código del tipo de percepción aplicada",
      "Fecha": "String - Fecha de aplicación del impuesto",
      "Importe": "Number/Decimal - Monto de la percepción",
      "IsarAcumulado": "Number/Decimal - Valor acumulado de seguridad social/impuesto específico",
      "Isar": "Number/Decimal - Valor actual del impuesto específico"
    }
  ],
  "ImporteTotalCobranza": "Number/Decimal - Sumatoria total de los montos en el array de Cobro",
  "ImporteTotalCtaCte": "Number/Decimal - Monto remanente que queda como deuda en cuenta corriente"
}

Configuración Necesaria

Ir a menú → Deals–> Publicaciones -->Publicaciones Propias, agregar un nuevo método de publicaciones. Seleccionar documento “PuntoVenta” y método de publicación “PuntoVentaItemPost”

Ir a menú → Deals–> Descargas → Mis descargas, agregar un nuevo método de Descargar. Seleccionar documento “PuntoVenta” y método de descarga “PuntoVentaSendToERP”

Luego activar el check “Activar Webhook” e ir a “orígenes permitidos”

En “orígenes permitidos” Seleccionar la opción PuntoVentaItemPost*.*

Parámetros Públicos:

Los siguientes parámetros son opcionales:

  • cuentaContableCliente: código de cuenta contable para crear un cliente
  • conceptoCliente: código de concepto para crear un cliente
  • moneda: código de moneda para las ventas ingresen siempre con la moneda designada.

4.2 Configuración de Sinónimos

Campos Sinonimizables:

  1. TipoIdentificacionTributaria - Ejemplo cuit = CUIT
  2. CategoriaFiscal - Ejemplo 1 = RI
  3. CodigoTasaImpositiva - Ejemplo 21 =VENTA_IVA 21
  4. TipoDocumento - Ejemplo factura b fiscal = FACTVEN
  5. ComprobanteTipoImpositivoCodigo - Ejemplo b fiscal = 006
  6. SucursalCodigo - Ejemplo 21482-1 = EMPRE01
  7. MetodoPago - Ejemplo EFECTIVO = CE

Estos campos sinonimizables nos permiten mapear información del sistemas externo que no puede resolver con los códigos de Finnegans.

Consideraciones:

La API esta preparada para crear clientes si es necesario:

"Cliente": [

{

"CodigoCliente: "5"

"IdentificacionCliente": "40571936",

"TipoIdentificacionTributaria": "DNI",

"Nombre": "Martín Saba",

"RazonSocial": "Martín Saba",

"CategoriaFiscalCodigo": "CF"

}

]

Manejo de Formas de cobro:

  1. Si el campo FormaPago tiene el valor “EF”, la información a enviar el campo MetodoPago debe ser un código de cuenta contable

  2. Si el campo FormaPago tiene el valor “BANCO”, la información a enviar el campo MetodoPago debe ser un código de operación bancaria.

  3. Si el campo FormaPago tiene el valor “TARJ”, la información a enviar el campo MetodoPago debe ser un código de operación bancaria.

  4. Si el campo FormaPago tiene el valor “CTACTE”, la información a enviar el campo MetodoPago debe ser un código de cuenta contable

:backhand_index_pointing_right: Nota: La operación bancaria debe tener configurada una cuenta contable default.

Para transformar los tickets en Facturas y recibos de cobranzas, se debe configurar el Trabajo Generación Resumen Punto de Venta.