Integración con API
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.
- Obtén tu llave de la API de TEST.
- 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.
- Utiliza las APIs GET Rate y GET BINs by Currency.
Endpoints
Ambiente | Host |
---|---|
Pruebas de integración | https://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 Name | Value | Description |
---|---|---|
Api-Key | Sí | Llaves para autenticar (Llaves API) |
Timestamp | Sí | Solicitud 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 |
Authorization | Sí | HMAC {{signature}} |
`Client-Request-Id | Sí | Contiene un identificador único generado por el cliente que se utiliza para aplicar la idempotencia en las acciones POST. |
Content-Type | Sí | application/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 Status | Response Code | Reason | Message |
---|---|---|---|
OK[Eligible = Y] | 200 | RateSupplied | |
OK[Eligible = D] | 200 | SourceAndTargetCannotBeSame | |
OK[Eligible = N] | 200 | CardBrandNotSupported | |
BAD_REQUEST | 400 | NoLocationInfo | Cliente inválido: {CLIENTID}{LOCATION_ID} |
BAD_REQUEST | 400 | TargetCurrencyInExclusion | Moneda de destino no permitida para el cliente |
BAD_REQUEST | 400 | TargetCurrencyNotSupported InvalidSourceAmount | |
NOT_FOUND | 404 | SourceCurrencyInExclusion SourceCurrencyNotSupported NoRatesAvailable | No hay tarifa disponible |
NOT_FOUND | 404 | NoSourceCurrencySpecified | Error del campo: rateRequest.source. El campo es limitado a 3 caracteres referentes a la moneda en código ISO-4217. |
NOT_FOUND | 404 | NoBinInfoAvailable BinNotSupported | BIN o coincidencia más cercana no encontrada |
NOT_FOUND | 404 | CountryNotSupported NoPricingTypeSpecified PricingTypeNotSupported | |
INTERNAL_SERVER_ERROR | 504 | ||
INTERNAL_SERVER_ERROR 500 | Unhandled Exception |
Updated 4 months ago