Temas Avanzados
Esta guía cubre funcionalidades avanzadas del SDK de Retorna para Java.
Configuración Avanzada
Base URL Personalizada
Si necesitas usar una URL base diferente:
RetornaClient client = RetornaClient.create(
RetornaClientOptions.builder()
.environment(Environment.DEVELOP)
.baseUrl("https://api-custom.retorna.com")
// ... otras configuraciones
.build()
);
Token Inicial
Si ya tienes un token válido:
RetornaClient client = RetornaClient.create(
RetornaClientOptions.builder()
.initialAccessToken("tu-token-existente")
// ... otras configuraciones
.build()
);
Thread Safety
El RetornaClient es thread-safe. Puedes compartirlo entre múltiples threads:
public class ThreadSafeService {
private static final RetornaClient client = RetornaClient.create(
RetornaClientOptions.builder()
// ... configuración
.build()
);
public void processInParallel() {
ExecutorService executor = Executors.newFixedThreadPool(10);
for (int i = 0; i < 100; i++) {
executor.submit(() -> {
try {
BalanceResponse balance = client.account.getBalance();
// Procesar balance
} catch (Exception e) {
// Manejar error
}
});
}
}
}
Logging Avanzado
El SDK incluye un sistema de logging estructurado:
RetornaClient client = RetornaClient.create(
RetornaClientOptions.builder()
.loggingLevel(LoggingLevel.DEBUG)
// ... otras configuraciones
.build()
);
// El logger está disponible
SdkLogger logger = client.getLogger();
logger.debug("Mensaje de debug");
logger.info("Mensaje informativo");
logger.warn("Advertencia");
logger.error("Error");
Validación por País
El SDK valida automáticamente según la plataforma:
- Argentina: Valida CUIT, CBU
- Colombia: Valida cédula, cuenta bancaria
- Perú: Valida DNI, cuenta interbancaria
- España: Valida NIE/NIF, IBAN
- USA: Valida SSN, cuenta bancaria
- Venezuela: Valida cédula, cuenta bancaria
Manejo de Errores Avanzado
El SDK categoriza errores:
try {
OrderResponse order = client.order.createPayoutOrder(input);
} catch (RuntimeException e) {
// El SDK puede proporcionar información estructurada del error
// RetornaErrorReport errorReport = parseError(e);
// RetornaErrorCategory category = errorReport.getCategory();
}
Mejores Prácticas
- Reutilizar el cliente: Crea una instancia y reutilízala
- Manejo de errores: Siempre maneja excepciones apropiadamente
- Logging: Usa niveles apropiados de logging
- Validación: Valida datos antes de enviarlos
- Thread safety: El cliente es thread-safe, úsalo en paralelo



