El API PayGate PoS es una solución integral de procesamiento de pagos diseñada específicamente para implementaciones de Punto de Venta (PoS). Este API proporciona un conjunto completo de endpoints para manejar diversas operaciones de pago, incluyendo pagos, devoluciones, pre-autorizaciones y gestión de terminales.
URL Base: https://terminal-ip:8081/api/v1
Autenticación
La API utiliza autenticación mediante clave API para todas las solicitudes:
- Header:
X-API-Key
- Descripción: Clave API para autorizar las solicitudes
- Requerido: Sí. Será enviado por el punto de venta.
Adicionalmente, para operaciones específicas del terminal:
- Header:
X-Terminal-Serial
- Descripción: Número de serie del terminal para autorización
- Requerido: Para ciertas operaciones. Se calcula automáticamente.
Cabeceras Comunes
Todas las solicitudes de la API requieren el siguiente header:
- Idempotency-Key: Clave única para idempotencia (requerido)
Estructura Base de Solicitud
Todas las solicitudes siguen una estructura base común:
{
"object": "string", // Tipo de operación (init, payments, refunds, preauths, etc.)
"locale": "string", // Idioma para las respuestas (es_ES, en_US)
"print": false, // Opcional: Imprimir resultado en terminal (por defecto: false)
"metadata": { // Opcional: Pares clave-valor personalizados
"custom_field_1": "anyvalue",
"custom_field_n": "anyvalue"
}
}
Estructura Base de Respuesta
Todas las respuestas incluyen campos comunes:
{
"request_id": "string", // Identificador único de transacción
"object": "string", // Tipo de operación
"locale": "string" // Idioma de respuesta
}
Gestión de Errores
La API utiliza códigos de estado HTTP estándar:
- 200: Éxito - Operación procesada correctamente
- 400: Solicitud Incorrecta - Parámetros inválidos o campos requeridos faltantes
- 401: No Autorizado - Clave API inválida
- 402: Pago Fallido - Operación fallida o denegada
- 403: Prohibido - La clave API carece de permisos requeridos
- 404: No Encontrado - El recurso solicitado no existe
- 500: Error Interno del Servidor - Error del sistema
Formato de Respuesta de Error
{
"error": {
"code": "190", // Código de error específico
"message": "denegada por motivos diversos" // Descripción del error
}
}
Tipos de Datos
Códigos de Moneda
- Formato: ISO 4217 en minúsculas (ej.,
eur
,usd
) - Patrón:
^[a-z]{3}$
IDs de Pedido
- Formato: Alfanumérico con guiones
- Patrón:
^[a-zA-Z0-9-]{2,255}$
- Longitud: 2-255 caracteres
BIN de Tarjeta
- Formato: Número de 6-8 dígitos
- Patrón:
^[0-9]{6,8}
- Ejemplo:
543200
Modos de Autorización
D
: ONLINE - Autorización en línea con el bancoO
: OFFLINE - Autorización offline (cuando no hay conectividad)
Subtipos de Tarjeta
corporate
: Tarjeta corporativaconsumer
: Tarjeta de consumo
Tipos de Token
local
: Token local (almacenado en el terminal)scheme
: Token del esquema (Visa, Mastercard, etc.)
Acciones de Token
store
: Tokenizar tarjeta (guardar para uso futuro)pay
: Pagar con token (usar token existente)
Formatos de Firma
propietary
: Formato propietariobmp_type
: Formato tipo BMPjpg
: Formato JPEGtif
: Formato TIFFbmp
: Formato BMP
Mejores Prácticas
- Idempotencia: Siempre use headers Idempotency-Key únicos para prevenir transacciones duplicadas
- Manejo de Errores: Implemente manejo de errores apropiado para todos los códigos de respuesta
- Tokenización: Use tokens para pagos recurrentes para mejorar la seguridad
- Impresión: Configure
print: true
cuando desee impresión automática en el terminal - Callbacks: Use URLs de callback para recibir información en tiempo real del PIN pad
- Metadatos: Use campos de metadatos para almacenar información personalizada sobre las transacciones
- Validación: Valide siempre los importes y monedas antes de enviar las solicitudes
- Logging: Mantenga logs detallados de todas las transacciones para auditoría
Consideraciones de Seguridad
- Seguridad de Clave API: Mantenga las claves API seguras y rótelas regularmente
- HTTPS: Siempre use HTTPS para todas las comunicaciones de la API
- Cumplimiento PCI: Siga las directrices PCI DSS al manejar datos de tarjetas
- Almacenamiento de Tokens: Almacene tokens de forma segura y respete las fechas de expiración
- Logging de Auditoría: Mantenga logs de todas las interacciones de la API para cumplimiento
- Validación de Entrada: Valide siempre los datos de entrada antes de procesarlos
- Manejo de Errores: No exponga información sensible en los mensajes de error