Autentificación y cálculo de Signature
Autentificación
Para autenticarte, nuestra API de retiro utiliza API Keys en todos los requests. Las API Keys se pueden obtener en Configuración -> API -> Retiros.
Hay 3 credenciales que necesitara:
Tu usuario: API KEY
Tu contraseña: API Passphrase
Tu clave secreta para generar la signature: API Signature

La autenticación a la API es realizado mediante HTTP Basic Auth. Las API Keys deben estar en todos los requests como el username and password.
Tu usuario y password son enviadas como API KEY y API Passphrase respectivamente en el cuerpo del request.
Las API keys, como las IPs whitelisteadas, son formas de autenticarte, por ende, por favor no compartir las credenciales en ningún ámbito que sea público.
Encabezados
Encabezado
Formato
Obligatorio
Descripción
Payload-Signature
String
Si
HMAC256 del archivo JSON entero, utilizando su API signature
Content-Type
String
Si
application/json
User-Agent
String
Si
Server client user agent
Cálculo de Signature
Todos los requests a nuestra API de retiros deben tener el field Payload-Signature
para asegurar la integridad y autenticarse, ya que estarán utilizando su propia API signature (secret key) para generar y encriptar un hash.
Debe ser creado utilizando el encoding HMAC-SHA-256 (RFC 2104) y el payload se basa en toda la JSON Payload enviada en el body del request y notificaciones.
Utilize su API Signature para generar el Hash
El campo Payload-Signature
en el header del request contendrá el hash generado, que incluye todo el payload del JSON
Payload-Signature: HMAC256(jsonPayload)
Ejemplo:
Payload-Signature: 223a9dd4784726f1536c926da7dc69155a57612c5c3c1e1b429c367a5eee67cf
Ejemplo
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.net.util.Base64;
String json_payload = "{ \"login\": \"cashout_API_Key\", \"pass\": \"cashout_API_Passphrase\", \"external_id\": \"123456789\", \"document_id\": \"1234567899\", \"document_type\": \"\", \"cashout_type\": \"BANK\", \"beneficiary_name\": \"Test User\", \"beneficiary_lastname\": \"Test User\", \"country\": \"MX\", \"amount\": 2000, \"currency\": \"MXN\", \"email\": \"[email protected]\", \"notification_url\": \"http:\\/\\/tupaypagos.com\\/notification\", \"bank_code\": \"072\",\"bank_branch\": \"\", \"bank_account\": \"1234567890\", \"account_type\": \"C\", \"address\": \"\"}";
String secretKey = "cashout_secret_key";
Mac hasher = Mac.getInstance("HmacSHA256");
hasher.init(new SecretKeySpec(secretKey.getBytes(), "HmacSHA256"));
String payload_signature = Base64.encodeBase64String(hasher.doFina
Última actualización
¿Te fue útil?