Payway · Almacor · Integración POS
Configuración validada

Pagos con Tarjetas Online

Cómo vincular ventas y cobros de cuenta corriente con los datos operativos de la tarjeta, su autorización y sus anulaciones, sin exponer información sensible.

Base: TipreRetailMedio: uId 6Tablas: dM_DMdeP · dE_DDMP · dE_CoPa · dE_CardsActualizado: 09/10/2026

Alcance

La configuración parte del maestro dM_DMdeP. Las ventas se registran en dE_DDMP, los cobros de cuenta corriente en dE_CoPa y el procesamiento común de tarjeta en dE_Cards. El RI permite obtener una relación 1:1 en ambos circuitos.

15medios habilitados en el maestro uId 6
2tablas de origen: venta y cuenta corriente
RIcorrelativo común almacenado en cComprobante
Regla operativa. dM_DMdeP.bDeshabil = 0 identifica un medio habilitado. Su estado debe mantenerse alineado con las bandas/BIN y el emisor disponible en UltraHost_EPS.
Recorrido de datos

Del origen a la autorización

01 · CONFIGURACIÓNdM_DMdePDefine la tarjeta online, su modo de autorización y rango.
uId = 6
→
02 · ORIGENdE_DDMP / dE_CoPaLa tabla de origen determina si se trata de una venta o un cobro de cuenta corriente.
cComprobante = RI
→
03 · TARJETAdE_CardsRegistra RI, cupón, trace, autorización, lote, terminal, host y tipo de operación.
iNroX_Card
Tabla origenOperaciónRelación principalUso de lTicket
dE_DDMPPago con tarjeta online de una ventacComprobante = iNroX_CardSí, como control adicional
dE_CoPaCobro de cuenta corriente con tarjeta onlinecComprobante = iNroX_CardNo: los valores no son equivalentes
dE_CardsPago o anulación de tarjetaiOpCode e iNroX_CardOriNo determina el origen
Criterio de origen. El tipo de operación comercial se determina por la tabla que origina el registro. iAutMode permanece como dato técnico de autorización y no se utiliza para distinguir venta de cuenta corriente.
Ventas normales

Relación entre dE_DDMP y dE_Cards

El RI identifica en forma unívoca la operación de tarjeta: se guarda en dE_DDMP.cComprobante y corresponde a dE_Cards.iNroX_Card. Los demás campos se utilizan como contexto y controles de consistencia.

dE_DDMP (m)
dE_Cards (t)
m.cComprobante
t.iNroX_Card · relación principal
m.iNroSuc
t.iNroSuc
m.iNroPos
t.iNroPos
m.iNroZ
t.iNroZ
m.lTicket
t.lTicket · control adicional
m.uId / m.uIdId
t.uId / t.uIdId
m.dImporte
t.dImporte · diferencia absoluta < 0,01
Cardinalidad esperada: 1 a 1. El RI evita ambigüedades cuando un ticket contiene dos pagos del mismo emisor y por el mismo importe. cDescripcion queda como dato informativo y no forma parte de la clave.
SQL Server

Consulta para ventas normales

El filtro del ejemplo identifica un ticket concreto. Cambiá sucursal, POS y cierre Z según el caso que necesites analizar.

Compatibilidad. El RI se compara como texto mediante LTRIM/RTRIM y CONVERT(varchar, ...). De esta manera la consulta funciona en versiones anteriores a SQL Server 2012 y no depende de TRY_CONVERT.
WITH PagosTarjetaOnline AS (
    SELECT *
    FROM dbo.dE_DDMP
    WHERE iNroSuc = 55
      AND iNroPos = 1
      AND iNroZ = 20260785
      AND uId = 6
)
SELECT
    m.iNroSuc,
    m.iNroPos,
    m.iNroZ,
    m.lTicket,
    m.cComprobante,
    m.cDescripcion,
    m.dImporte,
    m.cCliente,
    m.cBarCode,
    m.cPlan,
    t.cDocumento,
    t.cTelefono,
    t.iNroCupon,
    t.lTrace,
    t.cAutorizacion,
    t.iNroX_Card,
    t.iOpCode,
    t.iLote,
    t.cTerminal,
    t.cComercio,
    t.iEsAnulacion,
    t.iSqlId
FROM PagosTarjetaOnline m
LEFT JOIN dbo.dE_Cards t
  ON  m.iNroSuc = t.iNroSuc
  AND m.iNroPos = t.iNroPos
  AND m.iNroZ = t.iNroZ
  AND m.lTicket = t.lTicket
  AND m.uId = t.uId
  AND m.uIdId = t.uIdId
  AND LTRIM(RTRIM(m.cComprobante))
      = CONVERT(varchar(30), t.iNroX_Card)
  AND ABS(CAST(m.dImporte AS decimal(18,4))
      - CAST(t.dImporte AS decimal(18,4))) < 0.01
  AND t.iOpCode = 1
ORDER BY m.lTicket, m.iId;
Lectura práctica

Resultado explicado

El resultado verificado confirma la relación por RI. Para documentarlo se conservan únicamente datos operativos y se excluyen documento, teléfono y número de tarjeta.

AlcanceSuc. 55 · POS 1 · Z 20260785
Ticket destacado10742
Pagos en el ticket2
ResultadoRelacionados
TicketRIMedioImporteCupóniOpCode
10742655MASTERCARD35000.004771 · Pago
10742656MC-BANCOR27140.464781 · Pago
Comprobación del RI. En ambos registros, dE_DDMP.cComprobante coincide con dE_Cards.iNroX_Card. El resultado también confirma que un mismo ticket puede contener más de un pago y que cada operación se distingue por su propio RI. Como cComprobante puede incluir espacios de relleno, la consulta aplica LTRIM/RTRIM.
Fila sin autorización. Como se utiliza LEFT JOIN, si no existe coincidencia en dE_Cards el pago igualmente aparece y las columnas de autorización quedan en NULL. Esto facilita detectar operaciones incompletas o pendientes de análisis.
Cuenta corriente

Cobros de cuenta corriente con tarjeta online

En estos cobros, dE_CoPa.cComprobante contiene el RI de dE_Cards.iNroX_Card. lTicket no se utiliza porque los números internos de ambas tablas pueden ser distintos.

dE_CoPa (c)
dE_Cards (t)
c.cComprobante
t.iNroX_Card · relación principal
c.iNroSuc / c.iNroPos
t.iNroSuc / t.iNroPos
c.iNroZ
t.iNroZ
c.uId / c.uIdId
t.uId / t.uIdId
c.dImporte
t.dImporte · diferencia absoluta < 0,01
c.lStampTime
t.lStampTime · validación opcional
Caso validado y anonimizado. En una operación de sucursal 55, POS 2, el RI 684, el importe 35000 y la hora coincidieron; dE_CoPa.lTicket fue 300 y dE_Cards.lTicket fue 680. La autorización y iSqlId quedaron informados correctamente. Aunque el registro tenía iAutMode = 2, el origen se determinó por dE_CoPa.

La consulta utiliza el mismo patrón WITH y el mismo alcance operativo del ejemplo de ventas: sucursal 55, POS 1 y cierre Z 20260785.

WITH CobrosTarjetaOnline AS (
    SELECT *
    FROM dbo.dE_CoPa
    WHERE iNroSuc = 55
      AND iNroPos = 1
      AND iNroZ = 20260785
      AND uId = 6
)
SELECT
    c.iNroSuc, c.iNroPos, c.iNroZ, c.lTicket,
    c.cComprobante, c.cDescripcion, c.dImporte, c.lStampTime,
    t.iNroX_Card, t.lTicket AS lTicketCards,
    t.cAutorizacion, t.iSqlId, t.cRespuesta
FROM CobrosTarjetaOnline c
LEFT JOIN dbo.dE_Cards t
  ON  c.iNroSuc = t.iNroSuc
  AND c.iNroPos = t.iNroPos
  AND c.iNroZ = t.iNroZ
  AND c.uId = t.uId
  AND c.uIdId = t.uIdId
  AND LTRIM(RTRIM(c.cComprobante))
      = CONVERT(varchar(30), t.iNroX_Card)
  AND ABS(CAST(c.dImporte AS decimal(18,4))
      - CAST(t.dImporte AS decimal(18,4))) < 0.01
  AND t.iOpCode = 1
ORDER BY c.lStampTime, c.iId;
Reporte operativo

Selección de anulaciones

Las anulaciones se reportan directamente desde dE_Cards para cada sucursal, POS y cierre Z procesado, aun cuando la caja no tenga ventas normales en dE_DDMP. iOpCode = 1 identifica pagos y iOpCode = 3 anulaciones.

Vínculo con la operación original. anulacion.iNroX_CardOri = original.iNroX_Card, validando sucursal y POS. No se exige el mismo cierre Z porque la anulación puede ocurrir posteriormente. El RI original permite clasificar el origen consultando dE_DDMP.cComprobante o dE_CoPa.cComprobante.
SELECT
    a.iNroSuc, a.iNroPos, a.iNroZ,
    a.iNroX_Card AS RI_Anulacion,
    a.iNroX_CardOri AS RI_Original,
    a.dImporte, a.cAutorizacion, a.iSqlId,
    o.iNroZ AS Z_Original, o.lTicket AS Ticket_Original,
    CASE
      WHEN v.iId IS NOT NULL THEN 'VENTA'
      WHEN c.iId IS NOT NULL THEN 'CUENTA_CORRIENTE'
      ELSE 'ORIGEN_NO_ENCONTRADO'
    END AS OrigenOriginal
FROM dbo.dE_Cards a
LEFT JOIN dbo.dE_Cards o
  ON  o.iNroSuc = a.iNroSuc
  AND o.iNroPos = a.iNroPos
  AND o.iNroX_Card = a.iNroX_CardOri
  AND o.iOpCode = 1
LEFT JOIN dbo.dE_DDMP v
  ON  v.iNroSuc = o.iNroSuc AND v.iNroPos = o.iNroPos
  AND LTRIM(RTRIM(v.cComprobante)) = CONVERT(varchar(30), o.iNroX_Card)
  AND v.uId = o.uId AND v.uIdId = o.uIdId
  AND ABS(CAST(v.dImporte AS decimal(18,4)) - CAST(o.dImporte AS decimal(18,4))) < 0.01
LEFT JOIN dbo.dE_CoPa c
  ON  c.iNroSuc = o.iNroSuc AND c.iNroPos = o.iNroPos
  AND LTRIM(RTRIM(c.cComprobante)) = CONVERT(varchar(30), o.iNroX_Card)
  AND c.uId = o.uId AND c.uIdId = o.uIdId
  AND ABS(CAST(c.dImporte AS decimal(18,4)) - CAST(o.dImporte AS decimal(18,4))) < 0.01
WHERE a.iOpCode = 3
  AND a.iNroSuc = @Sucursal
  AND a.iNroPos = @POS
  AND a.iNroZ = @CierreZ
ORDER BY a.id;
Control de versión

Diferencias incorporadas

TemaCriterio anteriorCriterio vigente
Relación de ventaClave compuesta sin RIdE_DDMP.cComprobante = dE_Cards.iNroX_Card
Comparación de importeIgualdad exactaABS(origen - tarjeta) < 0.01
Cuenta corrienteNo documentadaOrigen dE_CoPa relacionado por RI
Ticket de cuenta corrienteSupuesto equivalenteNo participa de la relación
Tipo de operaciónPosible inferencia por iAutModeSe determina por la tabla de origen
Autorización de cuenta corrienteCampos sin valorcAutorizacion e iSqlId informados
AnulacionesSin reporte específicoReporte directo desde dE_Cards con iOpCode = 3
Payway | Almacor · Referencia técnica

Base dM_DMdeP - Tarjetas Online

Configuración final del POS alineada con emisores habilitados en UltraHost_EPS.

Proyecto: Implementación Pinpad Payway - AlmacorFuente principal: bases de POS y configuración en UltraHostAlcance: registros con uId = 6Fecha: 2 de septiembre de 2026

1. Resumen de la configuración

La tabla dM_DMdeP funciona como maestro de medios de pago del POS. El subconjunto uId = 6 corresponde a Tarjetas Online y relaciona cada tarjeta con sus parámetros de autorización, rango de identificación y comportamiento operativo.

15Habilitados
uId + uIdIdClave primaria
uId = 6Tarjetas Online

2. Criterio de habilitación

Regla operativa: bDeshabil = 0 indica medio habilitado; bDeshabil = 1 indica medio deshabilitado. Para evitar identificaciones inconsistentes, las bandas asociadas a medios deshabilitados también quedaron deshabilitadas en dm_banda.

3. Medios habilitados

uIdIdDescripciónEstadoiAutModeiIdRango
10VISAHabilitado2400
11NARANJAHabilitado2500
12MASTERCARDHabilitado2800
15CABALHabilitado21400
26MAESTROHabilitado42600
27MAESTRO BANCORHabilitado42500
33VISA DEBITOHabilitado5200
36SOLHabilitado22100
43MC-BANCORHabilitado2660
45NATIVA MCHabilitado22700
49BANCOR MC DEBITHabilitado53100
50MC DEBITHabilitado53200
56VISA BANCORHabilitado5190
71CABAL DEBITOHabilitado24400
72MAESTRO ANSES BANCORHabilitado22550

4. Diccionario de datos

La siguiente tabla documenta la estructura SQL suministrada y los valores observados para uId = 6. Cuando no se proporcionó una definición funcional adicional, el campo se describe como parámetro técnico de configuración.

CampoTipo SQLNULLValores observadosDescripción
uIdintNo6Identificador del grupo de medios de pago. En este documento representa Tarjetas Online.
uIdIdintNovalores únicosIdentificador de cada tarjeta o variante dentro del grupo uId=6.
cDescripcionchar(20)SídescripcionesNombre visible o descripción operativa del medio de pago.
uId_DialogsmallintSí482 / 486Identificador del diálogo de ingreso asociado.
uId_VDialogsmallintSí426Identificador del diálogo de validación asociado.
iTaxnumbersmallintSí0Parámetro técnico conservado en cero para este conjunto.
uIdBoletinsmallintSí0Identificador de boletín; no se utiliza en los registros analizados.
cBasechar(10)SídE_CardsBase o entidad lógica utilizada por el medio de pago.
bMultIngresobitSí0Indicador de ingreso múltiple; desactivado en todos los registros.
bDesdoblebitSí0Indicador de desdoblamiento; desactivado en todos los registros.
bDeshabilbitSí0/1Estado del medio: 0 habilitado, 1 deshabilitado.
bSupervisorbitSí0Requerimiento de supervisor; desactivado en este conjunto.
iVueltointSí0Parámetro de vuelto; configurado en cero.
bOfertasbitSí0Participación en ofertas; desactivada en los registros analizados.
idScriptsmallintSí1100Script funcional asociado a las tarjetas online.
iCliLoyaltysmallintSí0Parámetro de fidelización; configurado en cero.
iRecDescClismallintSí0Parámetro técnico de recargo/descuento de cliente; configurado en cero.
iSignoRecDessmallintSí0Signo del recargo/descuento; configurado en cero.
iAutModesmallintSí2/4/5Modo de autorización definido por la aplicación para cada tarjeta.
iIdRangosmallintSí83 valoresClave que relaciona el medio con bandas/BIN y planes.
iInputModesmallintSí0Modo de ingreso; configurado en cero en esta base.
bProcesadointSí0 al insertarCampo SQL con valor predeterminado 0; no forma parte del TXT de origen.

5. Detalle completo de registros uId = 6

El detalle se ordena por uIdId. La columna “Situación” distingue los medios activos, los deshabilitados durante la alineación con UltraHost y los que ya estaban deshabilitados previamente.

uIdIdDescripciónEstadoiAutModeiIdRangoSituación
10VISAHabilitado2400Activo en UltraHost
11NARANJAHabilitado2500Activo en UltraHost
12MASTERCARDHabilitado2800Activo en UltraHost
15CABALHabilitado21400Activo en UltraHost
26MAESTROHabilitado42600Activo en UltraHost
27MAESTRO BANCORHabilitado42500Activo en UltraHost
33VISA DEBITOHabilitado5200Activo en UltraHost
36SOLHabilitado22100Activo en UltraHost
43MC-BANCORHabilitado2660Activo en UltraHost
45NATIVA MCHabilitado22700Activo en UltraHost
49BANCOR MC DEBITHabilitado53100Activo en UltraHost
50MC DEBITHabilitado53200Activo en UltraHost
56VISA BANCORHabilitado5190Activo en UltraHost
71CABAL DEBITOHabilitado24400Activo en UltraHost
72MAESTRO ANSES BANCORHabilitado22550Activo en UltraHost

6. Relaciones con otras configuraciones

RelaciónUso
dM_DMdeP.uIdIdSe relaciona con mEmisor.iIdIdMdeP para identificar el mismo medio en UltraHost_EPS.
dM_DMdeP.iIdRangoSe utiliza para vincular el medio con sus bandas/BIN en dm_banda y con sus planes en dm_tarpl.
dM_DMdeP.bDeshabilDebe ser consistente con la habilitación de las bandas y con el emisor disponible en UltraHost.
bProcesadoSe inicializa en 0 durante la inserción SQL; no está incluido en el TXT fuente.

7. Controles recomendados

Sincronización: Mantener alineados bDeshabil en dM_DMdeP y bHabilitado en dm_banda.

Correspondencia: Validar que cada medio habilitado tenga un emisor habilitado y la misma relación uId/uIdId en UltraHost_EPS.

Estructuras SQL

Diccionarios de datos

Buscá por nombre, tipo o descripción. Los campos que forman la relación están marcados como Clave y los que requieren resguardo como Sensible.

dE_DDMP · Pago aplicado al ticket
CampoTipoUsoClasificación
dE_CoPa · Cobro de cuenta corriente
CampoTipoUsoClasificación
dE_Cards · Tarjeta y autorización
CampoTipoUsoClasificación
Tratamiento de información

Datos sensibles

No exponer en consultas, capturas ni documentación

Los campos de PAN, tracks, código de seguridad, PIN y criptogramas pueden contener datos de tarjeta o material criptográfico. Deben excluirse de resultados de soporte o mostrarse únicamente enmascarados.

GrupoCamposTratamiento recomendado
TarjetacNumeroCard, cVtoPAN enmascarado; no publicar vencimiento asociado.
BandacTrack1, cTrack2, cTC1_Track1, cTC1_Track2No consultar ni registrar en evidencias.
SeguridadcSecCode, cPinEncriptado, cCDS_CodDeSeguridadNo mostrar, incluso si el valor está cifrado.
EMVcEPT_DatosEncript, cCPG_CriptogramaEMV, cRCP_CriptogramaEMVRestringir a procesos técnicos autorizados.
PersonacNombre, cDocumento, cTelefonoAnonimizar en documentación y casos de soporte.
Esta guía no expone datos sensibles. Los ejemplos de visualización son ficticios y el caso validado de cuenta corriente se limita a identificadores técnicos necesarios para explicar la relación.