PagosPagos presenciales

Conciliación

Cómo se ingieren, deduplican, atribuyen y exponen como transacciones las ventas de terminal con tarjeta presente — incluidas anulaciones, reembolsos y metadata de punto de venta.

Las ventas con tarjeta presente se originan en la terminal, así que Vecnet las ingiere en lugar de iniciarlas. La conciliación es por capas para que ninguna venta se pierda: una ruta en tiempo real y un barrido periódico convergen en la misma transacción, con el mismo ID determinista.

Rutas de ingestión

RutaQué hace
Tiempo realCada venta llega a Vecnet conforme ocurre. Es la ruta rápida.
Proceso de conciliaciónUn trabajo programado revisa periódicamente las ventas recientes e inserta lo que la ruta en tiempo real haya omitido. Es la red de seguridad.
Sincronización manualDesde el panel se puede disparar una conciliación bajo demanda para un comercio.

Como todas las rutas insertan por el mismo ID de transacción determinista, una venta que llega dos veces (una en tiempo real y otra por el proceso periódico) se registra una sola vez. La ingestión es idempotente.

El registro de la transacción

Una venta de terminal se convierte en una fila de transactions en el riel inperson_cp:

{
  "id": "txn_9f3c2a71",
  "rail": "inperson_cp",
  "terminal_id": "trm_6b5a49c2",
  "merchant_id": "mrc_3f9a2c1b",
  "payment_method": "card",
  "status": "approved",
  "amount_cents": 39000,
  "currency": "MXN",
  "card": { "brand": "visa", "last4": "4242" },
  "metadata": {
    "terminal_serial": "TRM-DEMO-0001",
    "ticket_id": "T-000842",
    "authorization_code": "A1B2C3",
    "operation_type": "PAYMENT",
    "input_mode": "contactless",
    "installments": 1,
    "operator_email": "cajero@tienda.example.com",
    "local_datetime": "2026-06-22T08:30:00"
  },
  "created_at": "2026-06-22T14:30:00.000Z"
}

Los números de tarjeta y los CVV nunca se guardan. Solo se conservan la marca y los últimos cuatro dígitos, junto con metadata de punto de venta no sensible.

Metadata de punto de venta

El objeto metadata lleva el detalle de punto de venta que solo existe en ventas con tarjeta presente, útil para cruzarlo con los reportes de tu propio sistema de caja:

CampoDescripción
terminal_serialEl número de serie del dispositivo.
ticket_idEl número de ticket o recibo del punto de venta.
authorization_codeEl código de autorización de la venta.
operation_typePAYMENT, REFUND, ANNULMENT, etcétera.
input_modeCómo se leyó la tarjeta (chip, contactless, banda).
installmentsNúmero de meses sin intereses (MSI), si aplica.
operator_emailEl cajero u operador que realizó la venta.
local_datetimeLa hora local que mostraba la terminal.

Leer transacciones de terminal

Filtra la lista de transacciones por riel y, opcionalmente, por terminal:

# Todas las ventas presenciales de un comercio
curl "https://api.vecnet.io/api/transactions?rail=inperson_cp&order=created_at&dir=desc" \
  -H "Authorization: Token vk_live_1a2b3c4d5e6f7a8b9c0d"

# Solo una terminal
curl "https://api.vecnet.io/api/transactions?rail=inperson_cp&terminal_id=trm_6b5a49c2" \
  -H "Authorization: Token vk_live_1a2b3c4d5e6f7a8b9c0d"

Anulaciones y reembolsos

Una venta que se anula o se reembolsa en la terminal produce un segundo registro que comparte la identidad de la venta original. Vecnet resuelve el estado final con una precedencia simple, para que la transacción nunca muestre un resultado más débil que el que alcanzó:

chargeback  >  refunded  =  cancelled  >  declined  >  approved  >  pending

Así, una venta aprobada y después anulada se concilia en una sola transacción cuyo estado refleja la anulación, no la aprobación original.

Recibir notificaciones

Suscríbete a webhooks para reaccionar a las ventas de terminal conforme se registran: payment.approved, payment.declined, payment.cancelled, payment.failed y payment.refunded. El webhook lleva la misma forma de transacción mostrada arriba.

Si una venta esperada nunca aparece, la causa más común es que la terminal no quedó configurada por completo, así que la venta nunca se notificó. El proceso de conciliación y una sincronización manual desde el panel son las rutas de recuperación.

¿Te fue útil esta página?

En esta página