Pagos SPEI

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

AuthorizationBasic
Content-Typeapplication/json

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/.

¿Te resultó útil este artículo? Si 3 No 3