Integra en tu negocio la opción de generar referencias para pagos SPEI. El siguiente diagrama ilustra el proceso de pago.
Pasos
1. El sistema del cliente deberá solicitar la referencia a través de API.
2. El API de Sr. Pago creará una referencia con la información proporcionada.
3. Tu cliente se redirige a su app bancaria.
4. Realiza la transferencia con la CLABE interbancaria proporcionada.
5. Sr. Pago procesa y te notifica el estatus de la transacción.
Pre-requisitos
Antes de iniciar con el desarrollo, debes registrar tu aplicación en nuestra plataforma y obtener las credenciales. Entra aquí si tienes dudas del proceso.
Proceso
1. Generar referencia a través del API Sr.Pago
Para generar la referencia es necesario que la petición cuente con 3 los valores principales de entrada:
Description: Es la descripción que tendrá la referencia y con la que podrás identificar el pago en tu sistema.
Total: Importe de la referencia.
https://sandbox-api.srpago.com/v1/payment/spei
headers
body
{ "payment":{ "reference":{ "description":"-" } }, "total":100 }
Example Request
curl --location --request POST "https://sandbox-api.srpago.com/v1/payment/spei" \ --header "Content-Type: application/json" \ --header "Authorization: Basic " \ --data "{ \"payment\":{ \"reference\":{ \"description\":\"-\" } }, \"total\":100 }"
var settings = { "url": "https://sandbox-api.srpago.com/v1/payment/spei", "method": "POST", "timeout": 0, "headers": { "Content-Type": "application/json", "Authorization": "Basic " }, "data": "{\n\t\"payment\":{\n\t\t\"reference\":{\n\t\t\t\"description\":\"-\"\n\t\t}\n\t},\n\t\"total\":100 \n}", }; $.ajax(settings).done(function (response) { console.log(response); });
require "uri" require "net/http" url = URI("https://sandbox-api.srpago.com/v1/payment/spei") http = Net::HTTP.new(url.host, url.port) request = Net::HTTP::Post.new(url) request["Content-Type"] = "application/json" request.body = "{\n\t\"payment\":{\n\t\t\"reference\":{\n\t\t\t\"description\":\"-\"\n\t\t}\n\t},\n\t\"total\":100 \n}" response = http.request(request) puts response.read_body
import requests url = 'https://sandbox-api.srpago.com/v1/payment/spei' payload = "{\n\t\"payment\":{\n\t\t\"reference\":{\n\t\t\t\"description\":\"-\"\n\t\t}\n\t},\n\t\"total\":100 \n}" headers = { 'Content-Type': 'application/json', 'Authorization': 'Basic ' } response = requests.request('POST', url, headers = headers, data = payload, allow_redirects=False, timeout=undefined, allow_redirects=false) print(response.text)
var https = require('https'); var options = { 'method': 'POST', 'hostname': 'https://sandbox-api.srpago.com', 'path': '/v1/payment/spei', 'headers': { 'Content-Type': 'application/json', 'Authorization': 'Basic ' } }; var req = https.request(options, function (res) { var chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function (chunk) { var body = Buffer.concat(chunks); console.log(body.toString()); }); res.on("error", function (error) { console.error(error); }); }); var postData = "{\n\t\"payment\":{\n\t\t\"reference\":{\n\t\t\t\"description\":\"-\"\n\t\t}\n\t},\n\t\"total\":100 \n}"; req.write(postData); req.end();
<?php $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => "https://sandbox-api.srpago.com/v1/payment/spei", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 0, CURLOPT_FOLLOWLOCATION => false, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS =>"{\n\t\"payment\":{\n\t\t\"reference\":{\n\t\t\t\"description\":\"-\"\n\t\t}\n\t},\n\t\"total\":100 \n}", CURLOPT_HTTPHEADER => array( "Content-Type: application/json", "Authorization: Basic " ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } ?>
package main import ( "fmt" "strings" "os" "path/filepath" "net/http" "io/ioutil" ) func main() { url := "https://sandbox-api.srpago.com/v1/payment/spei" method := "POST" payload := strings.NewReader("{\n \"payment\":{\n \"reference\":{\n \"description\":\"-\"\n }\n },\n \"total\":100 \n}") client := &http.Client { CheckRedirect: func(req *http.Request, via []*http.Request) error { return http.ErrUseLastResponse }, } req, err := http.NewRequest(method, url, payload) if err != nil { fmt.Println(err) } req.Header.Add("Content-Type", "application/json") req.Header.Add("Authorization", "Basic ") res, err := client.Do(req) defer res.Body.Close() body, err := ioutil.ReadAll(res.Body) fmt.Println(string(body)) }
2. El API de Sr. Pago creará la referencia de pago
Example Response
{ "success": true, "result": { "transaction": "5e2c91fb-f9a3-4c7d-a9bc-bf2c354f01aa", "store": { "name": "SPEI", "short_name": "SPEI" }, "bank_account_number": "646180125500134554", "bank_name": "STP", "payment_id": "spei_5bd201e889a02", "reference": { "description": "-" }, "total": { "amount": "100.00", "currency": "MXN" }, "url": "https://sandbox-connect.srpago.com/voucher/c3BlaV81YmQyMDeeeeFlODg5YTAy", "timestamp": "2018-10-25T12:48:24-05:00", "expiration_date": "2018-10-26T00:00:00-05:00", "status": 2, "status_code": "pending" } }
3. Ingresar a la app bancaria y realizar el pago de la referencia
1.- Tu cliente debe dirigirse a su app bancaria.
2.- Seleccionar la opción «Transferir».
3.- Colocar en Banco Destino «STP».
4.- Tu CLABE interbancaria será la que aparezca como «bank_account_number».
5. El importe de la transacción será el que se exponga como «amount» este importe debe ser exactamente igual al de la referencia, de lo cotrario la transacción será cobrada por STP y luego devuelta por no coincidir con el valor establecido
4. Transacción procesada y notificada al merchant
Una vez realizado el pago, el monto se verá reflejado en tu cuenta Sr. Pago de forma inmediata.
Puedes consultarlo desde tu sesión en https://my.srpago.com/.