You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Emulador de APIs de terceros construido para apoyar el desarrollo mobile y pruebas de integración. Expone endpoints REST que replican el comportamiento de servicios de pago, tokenización, autenticación y gestión de tarjetas, y persiste transacciones, tarjetas, usuarios y configuraciones en MySQL.
Tecnologías
Componente
Versión
Java
21
Spring Boot
4.0.5
MySQL Connector
8.0.33
Lombok
1.18.38
BouncyCastle
1.70
Apache HttpClient
4.5.14
Log4j2
2.21.0
JUnit
4.13.1
Maven
3.9
Arquitectura
Proyecto Maven multi-módulo:
Módulo
Responsabilidad
server.app
Aplicación Spring Boot. Controllers REST y punto de entrada (Application.java).
server.services
Lógica de negocio, configuración, seguridad, criptografía y utilidades.
server.dao
Repositorios Spring Data JPA.
server.domain
Entidades JPA (Card, Transaction, User, Device, Configuration) y enums.
server.json
DTOs de request/response y serialización Jackson.
java.server/
├── server.app/ # Controllers y bootstrap Spring Boot
├── server.services/ # Servicios, configuración y utilidades
├── server.dao/ # Repositorios JPA
├── server.domain/ # Entidades y enums
├── server.json/ # DTOs
├── Dockerfile
├── docker-compose.yml
└── pom.xml # POM raíz
Endpoints
Base path: ${CONTEXT} (por defecto /emulator). Todos los ejemplos omiten el context path.
Configuración dinámica — /config
Método
Path
Request
Response
Descripción
POST
/config/create
AppConfigurationRequestDTO
String
Crea configuración para un endpoint.
POST
/config/update
AppConfigurationRequestDTO
String
Actualiza configuración existente.
POST
/config/save
AppConfigurationRequestDTO
String
Persiste la configuración.
GET
/config/list
—
AppListConfigurationDTOResponse
Lista todas las configuraciones.
Pagos y Tokens (TecApi) — CetipaController
Método
Path
Request
Response
Descripción
POST
/pay/ptm/v1/authorizations
EdrPayAuthorizeRequestDTO
IEmulator
Autoriza una transacción de pago.
POST
/pay/ptm/v1/voids
EdrPaymentReverseRequestDTO
IEmulator
Reversa o anula una transacción autorizada.
POST
/tsp/ttm/v1/enrollments
EdrTokenEnrollmentRequestDTO
IEmulator
Enrola un dispositivo o tarjeta.
POST
/tsp/ttm/v1/par/search
EdrTokenGetDigitalPanRequestDTO
IEmulator
Búsqueda de tarjeta digital (PAR).
GET
/tsp/ttm/v1/tokens/{token}
—
IEmulator
Obtiene el detalle del token.
POST
/tsp/ttm/v1/tokens/{token}/acquired
—
String
Notifica que el token fue adquirido.
POST
/tsp/ttm/v1/tokens/{token}/cryptograms
EdrPaymentCreateCryptogramRequestDTO
IEmulator
Genera criptograma para el token.
POST
/pay/prm/v1/requestors/{requestor}/logon
EdrPaymentLogonRequestDTO
IEmulator
Logon PRM (Payment Requestor). Retorna access_token en header.
POST
/tsp/trm/v1/requestors/{requestor}/logon
EdrTokenLogonRequestDTO
IEmulator
Logon TRM (Token Requestor). Retorna access_token en header.
Commerce — /commerceapps
Método
Path
Request
Response
Descripción
POST
/commerceapps/sendMail
Body crudo
CommerceMailResponseDTO
Simula envío de email desde Commerce.
POST
/commerceapps/getToken
MultiValueMap (headers)
CommerceTokenResponseDTO
Emite token de acceso emulado.
CXP (proxy ChileExpress) — /cxp
Método
Path
Request
Response
Descripción
POST
/cxp/**
HttpServletRequest
ICxpResponse
Reenvía POST al backend CXP configurado dinámicamente.
GET
/cxp/**
HttpServletRequest
String
Reenvía GET al backend CXP configurado dinámicamente.
Logon externos — /edr
Método
Path
Request
Response
Descripción
POST
/edr/login/tickettest
MultiValueMap (headers)
String
Logon de prueba (EDR).
POST
/edr/login/ticket
MultiValueMap (headers)
String
Logon EDR.
POST
/edr/login/beanuj
MultiValueMap (headers)
String
Logon JUNAEB.
EDR-EGD Foods
Método
Path
Request
Response
Descripción
ANY
/api/v1/foods/cards/**
HttpServletRequest
IEmulator
Búsqueda y procesamiento de tarjetas.
Página personal — /page
Método
Path
Request
Response
Descripción
POST
/page/users/save
MultiValueMap (form-urlencoded)
IEmulator
Registra un usuario nuevo (CORS).
GET
/page/users
—
IEmulator
Lista los usuarios (CORS).
Configuración
La aplicación selecciona su perfil activo mediante la variable ENV (local, dev, prod).
docker build -t java-server:v1 .
docker-compose up -d
docker-compose.yml publica el puerto 8089 y lee las variables desde ../envs/java_server.env. El Dockerfile usa build multi-stage con Maven 3.9 y Eclipse Temurin 25 como runtime.
Seguridad
Consulta SECURITY.md para la política de reporte de vulnerabilidades.