Transacciones sin bandera

On Us API te permite procesar transacciones con tarjeta directamente a través de nuestra red, sin pasar por una marca (Visa, Mastercard, etc.).

Qué puedes hacer

Recurso Operaciones
Transacciones Autorizar, reversar por ID de transacción, reversar por ID externo
Presentaciones Enviar clearing, reversar una presentación

Idempotencia

Todos los endpoints de escritura requieren el header X-Idempotency-Key — un UUID v4 que generas por cada operación lógica.

X-Idempotency-Key: a1b2c3d4-e5f6-7890-abcd-ef1234567890

Si envias la misma clave mientras el request original todavía está procesándose, la API devuelve 409 Conflict. Una vez que el request original completa, reintentar con la misma clave devuelve la respuesta original.

Montos

Los valores monetarios se representan siempre como strings con hasta 2 decimales, acompañados de un código de moneda ISO 4217:

{ "amount": "1000.00", "currency": "ARS" }
{ "amount": "1000", "currency": "CLP" }

Cada request maneja tres contextos de monto:

Campo Significado
transaction Monto en la moneda de la transacción (ej. moneda local en el comercio)
settlement Monto en la moneda de liquidación entre Pomelo y el adquirente
details Desglose itemizado (monto base, comisiones, impuestos, etc.)

Instrumentos

Las transacciones se pueden iniciar con distintos tipos de instrumento según el endpoint:

Tipo Endpoint Descripción
ACCOUNT /transactions/authorize Referencia una cuenta Pomelo por ID
CARD_ID /transactions/authorize Referencia una tarjeta Pomelo por ID (sin datos crudos de tarjeta)

Presentaciones (clearing)

Las presentaciones se procesan de forma asíncrona. La API responde con 202 Accepted y un estado PENDING de inmediato. El resultado final se entrega por webhook.

Se soportan un tipo de presentación:

type Caso de uso
PRESENTMENT Clearing estándar único para una transacción

Formato de error

Todas las respuestas de error siguen un envelope unificado:

{
  "error": {
    "error_code": "BAD_REQUEST",
    "message": "El cuerpo del request contiene campos inválidos.",
    "details": [
      {
        "code": "REQUIRED_FIELD_MISSING",
        "message": "El campo 'transaction.type' es requerido."
      }
    ]
  }
}
HTTP code error_code Cuándo
400 BAD_REQUEST Sintaxis inválida o campo requerido faltante
401 INVALID_TOKEN Token ausente o expirado
403 FORBIDDEN Acceso denegado
409 IDEMPOTENCY_KEY_IN_USE La idempotency key está siendo procesada
500 INTERNAL_SERVER_ERROR Error inesperado del servidor

Estado de la transacción

Las respuestas de autorización y reversa son sincrónicas. El campo status indica el resultado:

status Significado
APPROVED La transacción fue aceptada
REJECTED La transacción fue rechazada — consulta status_detail y extra_detail para el motivo

Valores comunes de status_detail en rechazos: INSUFFICIENT_FUNDS, TRANSACTION_NOT_PERMITTED, INVALID_CARD, LIMIT_EXCEEDED.

Enlaces Relacionados

Pomelo AI

Asistente de inteligencia artificial para consultas sobre la API de Pomelo
¡Hola!¿Cómo puedo ayudarte hoy?