Payment Methods
Payment with cardPost
https://sandbox-api.srpago.com/v1/payment/card
Para realizar un cobro a una tarjeta de débito o crédito es necesario que la petición viaje cifrada con las siguientes características:
- Genera una llave de 32 caracteres única por petición.
- Cifrar la llave única generada con el algoritmo RSA utilizando las llaves SRPAGO_RSA_PUBLIC_KEY que viene incluida en el código de los SDK’s. (Este valor generado se enviará en el parámetro KEY).
- Cifrar el JSON del request con el algoritmo AES256 utilizando la llave de 32 caracteres generada en el paso 1. (este valor generado se enviará en el parámetro DATA).
Nota: Al enviar el KEY y DATA deben codificarse en base64 para su correcto envío.
Más información sobre el Metadata
headers
AuthorizationBasic
Content-Typeapplication/json
Parameters
Key*<String>Llave RSA usada para encriptar el mensaje
data**<String> Mensaje encriptado con AES 256
Metadata (Obligatorio)<Metadata object>Metadata para aplicar reglas antifraude
body
{"key":"","data":"","metadata":{}}
Charge object
recurrent (Obligatorio)<String> Token de Sr. Pago
payment::external::transaction (Optional)<String> Identificador de transacción
payment::external::application_key (Obligatorio)<String>Llave de la aplicación
payment::total::amount (Obligatorio)<Double> Monto
payment::total::currency (Obligatorio)<String> MXN
payment::total::months (Optional)<Double>Número de MSI
payment::tip::amount (Optional)<Double> Monto de propina
payment::reference::number (Obligatorio)<String> Número de transferencia
payment::reference::description (Obligatorio)<String> Descripción de la transferencia
payment::affiliated::user (Optional)<String> Usuario de modalidad connect/join
payment::affiliated::total_fee (Optional)<String> Monto total para usuario de connect/join
Example Request
curl -X POST \
https://sandbox-api.srpago.com/v1/payment/card \
-H 'Content-Type: application/json' \
-H 'Authorization: Basic ' \
-H 'cache-control: no-cache' \
-d '{"key":"","data":"","metadata":{}}'
var settings = {
"async": true,
"crossDomain": true,
"url": "https://sandbox-api.srpago.com/v1/payment/card",
"method": "POST",
"headers": {
"Content-Type": "application/json",
"Authorization": "Basic "
},
"data": "{\"key\":\"\",\"data\":\"\",\"metadata\":{}}"
}
$.ajax(settings).done(function (response) {
console.log(response);
});
require 'uri'
require 'net/http'
url = URI("https://sandbox-api.srpago.com/v1/payment/card")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Authorization"] = 'Basic '
request.body = "{\"key\":\"\",\"data\":\"\",\"metadata\":{}}"
response = http.request(request)
puts response.read_body
import requests
url = "https://sandbox-api.srpago.com/v1/payment/card"
payload = "{\"key\":\"\",\"data\":\"\",\"metadata\":{}}"
headers = {
'Content-Type': "application/json",
'Authorization': "Basic "
}
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)
var http = require("https");
var options = {
"method": "POST",
"hostname": [
"sandbox-api",
"srpago",
"com"
],
"path": [
"v1",
"payment",
"card"
],
"headers": {
"Content-Type": "application/json",
"Authorization": "Basic "
}
};
var req = http.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function () {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.write("{\"key\":\"\",\"data\":\"\",\"metadata\":{}}");
req.end();
<?php
$request = new HttpRequest();
$request->setUrl('https://sandbox-api.srpago.com/v1/payment/card');
$request->setMethod(HTTP_METH_POST);
$request->setHeaders(array(
'Authorization' => 'Basic ',
'Content-Type' => 'application/json'
));
$request->setBody('{"key":"","data":"","metadata":{}}');
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
Example Response
{
"success": true,
"result": {
"total": 842,
"sales": "707305.04",
"transferences": "401.49",
"commissions": {
"amount": 162.54,
"currency": "MXN"
},
"operations": [
{
"transaction": "MjY2MzYyNQ==",
"timestamp": "2018-10-25T12:48:37-05:00",
"payment_method": "OXX",
"authorization_code": "4174B14B",
"status": "N",
"reference": {
"description": "-"
},
"card": {
"holder_name": "Banco pruebas",
"type": "OXXO",
"number": "0000",
"label": "",
"raw": "0000"
},
"total": {
"amount": "100.00",
"currency": "MXN"
},
"tip": {
"amount": "0.00",
"currency": "MXN"
},
"fee": {
"amount": "54.18",
"currency": "MXN"
},
"fee_details": [
{
"type": "fee",
"percentage": 3.6,
"amount": 4.18,
"description": ""
},
{
"type": "application_fee",
"percentage": 20,
"amount": 20,
"description": "CONTRACARGO DE 50mil"
},
{
"type": "application_fee",
"percentage": 30,
"amount": 30,
"description": "FINANCIAMIENTO 2"
}
],
"origin": {
"location": {
"latitude": "0.000000",
"longitude": "0.000000"
}
},
"affiliation": "0",
"url": "https://sandbox-connect.srpago.com/recipe/OTUzYjg4MmUtYzYyNS00YTEzLTg3NjQtOGRmZWY3N",
"hasDevolution": false,
"commission": {
"amount": "54.18",
"currency": "MXN"
}
},
{
"transaction": "MjY2MzYyNA==",
"timestamp": "2018-10-25T12:32:15-05:00",
"payment_method": "OXX",
"authorization_code": "417478AD",
"status": "N",
"reference": {
"description": "-"
},
"card": {
"holder_name": "Banco pruebas",
"type": "OXXO",
"number": "0000",
"label": "",
"raw": "0000"
},
"total": {
"amount": "100.00",
"currency": "MXN"
},
"tip": {
"amount": "0.00",
"currency": "MXN"
},
"fee": {
"amount": "54.18",
"currency": "MXN"
},
"fee_details": [
{
"type": "fee",
"percentage": 3.6,
"amount": 4.18,
"description": ""
},
{
"type": "application_fee",
"percentage": 20,
"amount": 20,
"description": "CONTRACARGO DE 50mil"
},
{
"type": "application_fee",
"percentage": 30,
"amount": 30,
"description": "FINANCIAMIENTO 2"
}
],
"origin": {
"location": {
"latitude": "0.000000",
"longitude": "0.000000"
}
},
"affiliation": "0",
"url": "https://sandbox-connect.srpago.com/recipe/ZDE4MTY3MDgtZjgxOC00ZmY1LTlkOGUtYTI1MDcwZGZhZjVl",
"hasDevolution": false,
"commission": {
"amount": "54.18",
"currency": "MXN"
}
}
]
}
}