Integración con API

Caribe
Chile
Colombia
México
Panamá

Los comercios o los adquirentes bancarios pueden probar la API RESTful para probar DCC en su propio sitio web, software o terminal. Cada solicitud consta del encabezado seguido del cuerpo de la solicitud.

Get Rate API

Esta API proporciona el tipo de cambio basado en la configuración de la jerarquía de comercios en la plataforma OpenFX 2.0. Utiliza la moneda de origen, el ID de referencia del cliente y el ID de referencia del comercio y el BIN para determinar el tipo de cambio.

Get BINs by Currency

Esta API proporcionará la lista de BIN disponibles en OpenFX para el código de moneda dado.

Environments

FX Solution cuenta con diferentes entornos que permiten el consumo de nuestras APIs RESTful para el desarrollo. Para facilitar su uso, solo el entorno de prueba estará disponible una vez que esté en contacto con nuestro equipo comercial con un contrato firmado.

Sandbox

https://int.api.fiservapps.com

  • Utiliza credenciales de Sandbox.
  • Prueba las API antes de certificar para producción
  • Ver el formato de respuesta de una API específica.
  • Experimenta, desarrolla código y corrija errores.

Autenticación

Las llaves API se utilizan para autenticar solicitudes. Para solicitar las llaves API TEST, contacte a su equipo de ventas de Fiserv o de productos de FX Solutions.

Mantenga seguras las llaves API de TEST, ya que le pertenecen. No compartas tus llaves de API secretas en sitios web de acceso público. Todas las solicitudes de API deben realizarse a través de HTTPS: las llamadas realizadas mediante HTTP fallarán.

Acceda a las API de FX Solution

Siga los pasos a continuación para obtener acceso a las API de FX Solutions.

  1. Obtén tu llave de la API de TEST.
  2. Es posible que necesites un MID (ID de comercio) para construir una solicitud de API para usar las API de tipo de cambio en el entorno TEST.
  3. Utiliza las APIs GET Rate y GET BINs by Currency.

Endpoints

AmbienteHost
Pruebas de integraciónhttps://int.api.firstdata.com

Request Header

La API RESTful de FX Solution (DCC) cuenta con una estructura de Header consistente para para solicitar un llamado consideranto parámetros específicos. Para crear un Header, es necesario proporcionar los siguientes valores:

Header NameValueDescription
Api-KeyLlaves para autenticar (Llaves API)
TimestampSolicitud de inicio de marca de tiempo UTC, con formato de hora de época. El valor se expresa en milisegundos. El formato del valor de muestra es: 1499961987232
AuthorizationHMAC {{signature}}
`Client-Request-IdContiene un identificador único generado por el cliente que se utiliza para aplicar la idempotencia en las acciones POST.
Content-Typeapplication/json`

Generar HMAC Signature JAVA

private static Mac sha256HMAC = null;

private String generateHmac(final String apiKey, final String clientSecret, final String time, final String clientRequestId, final String payload) throws NoSuchAlgorithmException, InvalidKeyException, JsonProcessingException {

    final StringBuilder rawSignature = new StringBuilder();
    rawSignature.append(apiKey);
    rawSignature.append(clientRequestId);
    rawSignature.append(time);
    rawSignature.append(payload);

    Mac mac = getSha256HMAC();
    SecretKeySpec secretKeySpec = new SecretKeySpec(clientSecret.getBytes(), "HmacSHA256");
    mac.init(secretKeySpec);

    byte[] finalHmac = mac.doFinal(rawSignature.toString().getBytes());

    return Base64.encodeBase64String(finalHmac);
}

private static Mac getSha256HMAC() throws NoSuchAlgorithmException {
    if (sha256HMAC == null) {
        sha256HMAC = Mac.getInstance("HmacSHA256");
    }

    return sha256HMAC;
}

Postman HMAC

var key = postman.getEnvironmentVariable('clientId'); 
var secret = postman.getEnvironmentVariable('clientSecret'); 
 
var time = new Date().getTime(); 
var method = request.method; 
var ClientRequestId = Math.floor((Math.random() * 10000000) + 1); 
var requestBody = request.data; 
 
var rawSignature = key + ClientRequestId + time + requestBody; 
var computedHash = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, secret.toString()); 
computedHash.update(rawSignature); 
computedHash = computedHash.finalize(); 
 
var computedHmac = CryptoJS.enc.Base64.stringify(computedHash); 
 
postman.setEnvironmentVariable('ClientRequestId', ClientRequestId); 
postman.setEnvironmentVariable('time', time); 
postman.setEnvironmentVariable('signature', computedHmac); 
postman.setEnvironmentVariable('key', key); 

Códigos de Error HTTP

FX Solution utiliza códigos de respuesta HTTP para indicar el éxito o el fracaso de una solicitud de API. A alto nivel, el código 200 indica éxito, el código 4xx indica un error derivado de la información proporcionada, el código 5xx indica un error con los servidores.

Acompañando a los códigos 4xx habrá mensajes con detalles sobre el parámetro que causa el error.

Mensajes de Error/Códigos

HTTP StatusResponse CodeReasonMessage
OK[Eligible = Y]200RateSupplied
OK[Eligible = D]200SourceAndTargetCannotBeSame
OK[Eligible = N]200CardBrandNotSupported
BAD_REQUEST400NoLocationInfoCliente inválido: {CLIENTID}{LOCATION_ID}
BAD_REQUEST400TargetCurrencyInExclusionMoneda de destino no permitida para el cliente
BAD_REQUEST400TargetCurrencyNotSupported InvalidSourceAmount
NOT_FOUND404SourceCurrencyInExclusion SourceCurrencyNotSupported NoRatesAvailableNo hay tarifa disponible
NOT_FOUND404NoSourceCurrencySpecifiedError del campo: rateRequest.source.

El campo es limitado a 3 caracteres referentes a la moneda en código ISO-4217.
NOT_FOUND404NoBinInfoAvailable BinNotSupportedBIN o coincidencia más cercana no encontrada
NOT_FOUND404CountryNotSupported NoPricingTypeSpecified PricingTypeNotSupported
INTERNAL_SERVER_ERROR504
INTERNAL_SERVER_ERROR 500Unhandled Exception