Transacciones sin marca
Procesa transacciones directamente sobre las cuentas y tarjetas de tus usuarios sin pasar por redes externas, con control total sobre autorización, clearing y liquidación.
Introducción
Cuando operas como adquirente, enrutar cada transacción por una red externa implica costos de intercambio y menor control sobre la experiencia de tu usuario.
Transacciones sin marca (también conocido como On Us Processing) te permite procesar esas transacciones directamente dentro de Pomelo, actuando como adquirente y emisor al mismo tiempo. Así reduces el costo operativo, aumentas la velocidad de autorización y ganas visibilidad completa sobre el ciclo de vida de cada operación.
Con este módulo puedes autorizar compras, retiros, transferencias entre cuentas, pagos con QR y otros tipos de movimiento, sin que la transacción viaje por Visa o Mastercard.
Alcance
Transacciones sin marca (On Us Processing) está disponible en todos los países donde operamos. En esta versión:
- Solo procesamos transacciones domésticas. Incorporaremos las operaciones internacionales en versiones futuras.
- Admitimos tarjetas virtuales y físicas bajo BIN.
- Tú gestionas los settlements por fuera.
- No soportamos cuotas financiadas por el comercio (Multiclearing).
- Solo soportamos transacciones iniciadas desde una tarjeta. Incorporaremos otros instrumentos (cuenta, línea de crédito, usuario) en versiones futuras.
Cómo funciona
El flujo de una transacción On Us tiene tres etapas:
- Transacción: tu sistema envía la solicitud a nuestra API actuando como adquirente. Validamos el instrumento, evaluamos las configuraciones de fraude, corremos validaciones y enrutamos la transacción al emisor para la decisión de aprobación o rechazo. En el modelo on-us, emisor y adquirente son el mismo actor: actuamos como el canal que conecta ambos roles y te reenviamos la respuesta.
- Presentación (clearing): una vez que completaste la transacción del lado adquirente, la registras mediante un segundo llamado a nuestra API de presentaciones. Esto cierra el ciclo, cruza los montos autorizados con los efectivamente procesados y ejecuta ajustes si hay diferencias.
- Purgado: omitimos automáticamente las autorizaciones que no reciben una presentación dentro del plazo configurado, liberando los fondos retenidos.
Tipos de transacción soportados
| Tipo | Descripción | Disponibilidad |
|---|---|---|
| PURCHASE | Compra en comercio (POS o e-commerce) | MVP |
| WITHDRAWAL | Retiro de efectivo en cajero u oficina | MVP |
| REFUND / REFUND_PARTIAL | Devolución de una compra | MVP |
| REVERSAL / REVERSAL_PARTIAL | Reversa de una compra | MVP |
| ACCOUNT_DEBIT | Débito de cuenta (transferencia saliente) | Versión futura |
| ACCOUNT_CREDIT | Crédito en cuenta (transferencia entrante) | Versión futura |
| BILL_PAYMENT | Pago de servicios o facturas | MVP |
Instrumentos de pago
Cada transacción "On Us" requiere identificar el instrumento del usuario. Los tipos disponibles son:
| Tipo | Descripción | Disponibilidad |
|---|---|---|
| CARD | ID de tarjeta Pomelo | MVP |
| ACCOUNT | ID de cuenta Pomelo | Versión futura |
| CREDIT_LINE | ID de línea de crédito Pomelo | Versión futura |
| USER | ID de usuario Pomelo | Versión futura |
| PCI (datos sensibles) | Datos sensibles del instrumento | Versión futura |
Operaciones disponibles
Puedes consultar la firma completa de cada endpoint en nuestra API Reference de Transacciones sin marca.
Autorizar una transacción
Envía la solicitud de autorización indicando el tipo de transacción, el instrumento de pago y los montos. Enrutamos la transacción al emisor y te reenviamos su respuesta. El resultado es sincrónico: APPROVED o REJECTED.
Si rechazamos la transacción, el campo status_detail indica el motivo, por ejemplo INSUFFICIENT_FUNDS o TRANSACTION_NOT_PERMITTED.
Reversar una transacción
Puedes reversar una autorización en dos situaciones:
- Por timeout: si no recibiste respuesta nuestra, puedes reversar usando el
external_idque enviaste en la autorización original. - Por cancelación: si necesitas cancelar el total de una autorización pendiente, puedes reversar por el ID de transacción Pomelo.
Refunds
El flujo de Refund Online en Tiempo Real te permite acreditar al usuario en el momento del refund, sin esperar el clearing. Para identificar la transacción original, esperamos recibir el original_transaction_id; si no lo envías, activamos el flujo de matching para resolverlo. Con esas señales, el emisor decide si aprueba o rechaza en tiempo real.
Si el emisor aprueba, el usuario recibe el crédito de forma inmediata. Cuando llega el clearing, lo conciliamos contra esa acreditación previa sin generar un segundo crédito.
| Escenario | Resultado |
|---|---|
| Refund on-us con transacción original válida | Crédito inmediato al usuario |
| Refund on-us sin transacción original encontrada | REJECTED — no se deja en HELD |
| Emisor rechaza / fraude adverso / timeout | Operación declinada, sin acreditación |
HELD en on-us. Si no podemos identificar la transacción original, rechazamos el refund con un código explícito. Esto simplifica la conciliación y evita créditos duplicados. Presentar una transacción (clearing)
Una vez que registres la transacción como completada del lado adquirente, la presentas. Procesamos las presentaciones de forma asíncrona: la API responde con estado PENDING de inmediato, y te notificamos el resultado final por webhook.
Si hay diferencias entre el monto autorizado y el presentado, ajustamos el saldo del usuario automáticamente. Solo soportamos Single Clearing por transacción en esta versión.
Reversar una presentación
Si necesitas anular una presentación ya enviada, puedes hacerlo referenciando el ID de la presentación original.
Ajustes manuales
Puedes aplicar ajustes de débito o crédito sobre autorizaciones On Us en cualquier momento, tanto totales como parciales. Puedes hacer esta operación desde el Dashboard.
Reportes
Generamos dos reportes específicos para On Us, disponibles a día vencido. Puedes recibirlos vía SFTP según la configuración de tu cuenta.
Reporte de transacciones
Nombre del archivo: transaction_YYYY-MM-DD_<cliente>_<pais>.csv
Es el mismo reporte de transacciones que ya recibes para tus operaciones de red. Las transacciones "On Us" aparecen dentro de él identificadas con PRODUCT_PROVIDER = ON_US, por lo que puedes filtrar y consolidar tu operación completa desde una sola fuente.
| Campo | Descripción | Ejemplo |
|---|---|---|
| TRANSACTION_ID | Identificador único de la transacción en Pomelo. | ctx-1znYO6Hr5MVzcayCCqvA0SL0vTD |
| EXTERNAL_ID | Identificador único de la transacción asignado por el integrador. | external-ctx-123 |
| LOCAL_TRANSACTION_DATE_TIME | Fecha y hora local de la transacción según el integrador. | 2025-09-12T14:15:22 |
| CREATED_AT | Fecha y hora en que registramos la transacción en Pomelo. | 2025-09-12T18:24:00.835Z |
| TRANSACTION_TYPE | Tipo de operación. Valores posibles: PURCHASE, WITHDRAWAL, REFUND, REVERSAL, ACCOUNT_DEBIT, ACCOUNT_CREDIT, BILL_PAYMENT. | PURCHASE |
| PRODUCT_TYPE | Tipo de producto de tarjeta asociado. | PREPAID |
| PRODUCT_PROVIDER | Red que procesó la transacción. Siempre ON_US para este flujo (equivale a MASTERCARD o VISA en operaciones de red). | ON_US |
| AFFINITY_GROUP_ID | Identificador del grupo de afinidad de la tarjeta. | afg-2EUsW7fqKtCjQrIh5IEuNx0JghL |
| USER_ID | Identificador del usuario en Pomelo. | usr-2YHh6VWcO8E9zjKr8BmkPmJU75o |
| INSTRUMENT_TYPE | Tipo de instrumento utilizado en la transacción. | CARD |
| INSTRUMENT_ID | Identificador del instrumento (tarjeta) utilizado. | crd-12345678 |
| BIN | BIN de la tarjeta utilizada. | 547555 |
| LAST_FOUR | Últimos cuatro dígitos de la tarjeta. | 1573 |
| ORIGIN | Origen geográfico de la transacción: DOMESTIC o INTERNATIONAL. En el MVP siempre es DOMESTIC. | DOMESTIC |
| MERCHANT_ID | Identificador del comercio según el integrador. | 4102535 |
| MERCHANT_MCC | Código de categoría del comercio (MCC). | 5499 |
| MERCHANT_NAME | Nombre del comercio. | OXXOLOMAS DEL SALTO |
| LOCAL_AMOUNT | Monto en la moneda local del punto de venta. | 1000.00 |
| LOCAL_CURRENCY | Moneda local del punto de venta en formato ISO 4217. | ARS |
| TRANSACTION_AMOUNT | Monto en la moneda de la transacción. En el MVP coincide con LOCAL_AMOUNT. | 1000.00 |
| TRANSACTION_CURRENCY | Moneda de la transacción en formato ISO 4217. | ARS |
| SETTLEMENT_AMOUNT | Monto de liquidación en la moneda de settlement. | 149.51 |
| SETTLEMENT_CURRENCY | Moneda de liquidación en formato ISO 4217. | MXN |
| AMOUNT_DETAILS | Desglose de montos en formato JSON. Incluye base, impuestos, comisiones y otros conceptos itemizados. | [{"type":"GRATUITY","currency":"ARS","amount":"50.00"}] |
| ENTRY_MODE | Modo de ingreso de la tarjeta. Valores posibles: MANUAL, CHIP, CONTACTLESS, QR. | CHIP |
| POINT_TYPE | Tipo de punto de venta: POS o ECOMMERCE. | POS |
| STATUS | Estado final de la transacción: APPROVED o REJECTED. | APPROVED |
| STATUS_DETAIL | Detalle del estado. En rechazos indica el motivo: INSUFFICIENT_FUNDS, TRANSACTION_NOT_PERMITTED, INVALID_CARD, LIMIT_EXCEEDED. | APPROVED |
| SOURCE | Origen del registro: ONLINE para transacciones por autorización; CLEARING para transacciones ingresadas directamente por clearing sin autorización previa. | ONLINE |
| ORIGINAL_TRANSACTION_ID | ID de la transacción original en Pomelo. Presente únicamente en refunds y reversas. | ctx-1 |
| COUNTRY_CODE | País del comercio en formato ISO 3166-1 alfa-3. | MEX |
| CLIENT_COUNTRY_CODE | País del cliente emisor en formato ISO 3166-1 alfa-3. | ARG |
| USD_AMOUNT | Monto equivalente en dólares estadounidenses. | 1.08 |
Reporte de presentaciones
Nombre del archivo: on_us_presentment_YYYY-MM-DD_<cliente>_<pais>.csv
A diferencia del reporte de transacciones, este reporte tiene un schema propio diseñado para el flujo On Us. No incluye columnas de red sin equivalente en operaciones close loop, como INTERCHANGE_FEE, BANKNET_REF_NUMBER o ICA_ACQUIRER. Obtenemos los campos que no viajan en el payload de presentación por join con la transacción original usando ORIGINAL_TRANSACTION_ID.
| Campo | Descripción | Ejemplo |
|---|---|---|
| PUBLIC_ID | Identificador único de la presentación del lado de Pomelo. | cpr-2gxSB260ekE5kBJyS5Pn70OPwoQ |
| EXTERNAL_ID | Identificador único de la presentación asignado por el integrador. | external-cpr-123 |
| TRANSACTION_DATE_TIME | Fecha y hora de la transacción original. Obtenido por join. | 2024-05-24T01:01:01 |
| TRANSACTION_CREATED_AT | Fecha y hora en que registramos la transacción original en Pomelo. Obtenido por join. | 2024-05-24T01:05:00.000Z |
| TRANSACTION_TYPE | Tipo de operación, derivado del type y subtype del presentment. Valores posibles: PURCHASE, WITHDRAWAL, REFUND, REVERSAL, BILL_PAYMENT. | PURCHASE |
| PRODUCT_TYPE | Tipo de producto de tarjeta. Obtenido por join. | CREDIT |
| PROVIDER | Red que procesó la transacción. Siempre ON_US. | ON_US |
| USER_ID | Identificador del usuario en Pomelo. | usr-2YHh6VWcO8E9zjKr8BmkPmJU75o |
| INSTRUMENT_TYPE | Tipo de instrumento utilizado. | CARD |
| INSTRUMENT_ID | Identificador del instrumento (tarjeta). | crd-12345678 |
| LAST_FOUR | Últimos cuatro dígitos de la tarjeta. Obtenido por join. | 1573 |
| AFFINITY_GROUP_ID | Identificador del grupo de afinidad. Obtenido por join. | afg-2EUsW7fqKtCjQrIh5IEuNx0JghL |
| ORIGIN | Origen geográfico: DOMESTIC o INTERNATIONAL. En el MVP siempre es DOMESTIC. | DOMESTIC |
| MERCHANT_ID | Identificador del comercio. Obtenido por join. | 08847749 |
| MERCHANT_MCC | Código de categoría del comercio. Obtenido por join. | 5399 |
| MERCHANT_NAME | Nombre del comercio. Obtenido por join. | MERPAGO*MER PAGO 2 |
| DEBT_AMOUNT | Monto de la deuda que impacta en el balance del usuario luego del clearing. Puede diferir del monto de transacción si hubo ajustes o pagos parciales. | 149.51 |
| DEBT_CURRENCY | Moneda del DEBT_AMOUNT en formato ISO 4217. | MXN |
| TRANSACTION_AMOUNT | Monto de la transacción según el presentment. | 149.51 |
| TRANSACTION_CURRENCY | Moneda de la transacción en formato ISO 4217. | MXN |
| SETTLEMENT_AMOUNT | Monto de liquidación confirmado en el clearing. | 149.51 |
| SETTLEMENT_CURRENCY | Moneda de liquidación en formato ISO 4217. | MXN |
| USD_AMOUNT | Monto equivalente en dólares estadounidenses. | 149.51 |
| RECONCILIATION_DATE | Fecha de conciliación informada por el integrador al enviar el presentment. | 2024-05-25T00:00:00 |
| REVERSE_PRESENTMENT | Indica si el registro es una reversa de presentación. Valores: true o false. | false |
| POINT_TYPE | Tipo de punto de venta. Obtenido por join. | POS |
| ENTRY_MODE | Modo de ingreso de la tarjeta. Obtenido por join. | QR |
| ASSOCIATED_TRANSACTIONS | IDs de las transacciones vinculadas a esta presentación (inclusiones, ajustes, reversas). Lista separada por comas. | ctx-inc1,ctx-inc2,ctx-adj1 |
| MESSAGE_REASON_CODE | Código de razón del mensaje de presentación enviado por el integrador. Indica el tipo de clearing, por ejemplo MULTICLEARING_PARTIAL para pagos parciales en cuotas. | MULTICLEARING_PARTIAL |
Webhooks
Recibirás notificaciones para autorizaciones y presentaciones de "On us" en el mismo formato de webhooks que ya usas. El cuerpo incluye el campo instrument con el tipo e ID del instrumento utilizado, manteniendo retrocompatibilidad con los campos existentes.
Preguntas frecuentes
¿On Us aplica a tarjetas físicas y virtuales?
Sí. El módulo soporta ambas modalidades.
¿Las transacciones "On Us" pasan por el motor de fraude?
Sí. Las transacciones sin marca siempre pasan por el módulo de fraude. Las validaciones que se aplican dependen de la configuración que tengas activa dentro del módulo. Si quieres ajustarla, ponte en contacto con nuestro equipo.
¿Qué pasa si no presento una transacción dentro del plazo?
El purgador automático revierte la autorización al vencimiento del plazo configurado, liberando los fondos retenidos.
¿Puedo procesar transacciones internacionales con "On Us"?
No en esta versión. Planificamos incorporar las transacciones internacionales, incluyendo conversión de moneda y cálculo de impuestos, en versiones futuras.
¿Los webhooks son los mismos que ya tengo configurados?
Sí. Reutilizamos los mismos eventos que existen hoy y enriquecemos el cuerpo con el campo instrument y el external_id de la transacción, sin romper los contratos actuales.
¿Las transacciones sin marca soportan cuotas por emisor?
No en esta versión. Planificamos el Multiclearing para una versión futura del módulo.