Conekta Developer's Hub

Bienvenido al Conekta Developer's Hub. Aquí encontrarás la más robusta documentación del API Conekta y todos los tutoriales que te ayudarán a comenzar a recibir pagos de la manera más rápida, sencilla y segura.

Pagos vía SPEI Recurrente

Transferencias Bancarias Recurrentes vía SPEI

¿Qué es?

Es una solución para que los merchants puedan recibir pagos por grandes montos de manera recurrente mediante la asignación de una referencia única a sus clientes o proveedores.

¿Qué ventajas ofrece la solución?

  • Transacciones interbancarias recurrentes por grandes montos.
  • Asignación de una referencia única a los usuarios del merchant.
  • Permite a los usuarios del merchant realizar pagos 24/7 las veces que desee.
  • Facilita al merchant la identificación y conciliación de operaciones.
  • Permite visualizar y recibir notificaciones de los pagos en tiempo real.

📘

Primeros pasos

  • Es necesario contar con conocimiento de APIs.
  • Es preferible ser desarrollador fullstack (frontend + backend).
  • Instalar e incluir una de las librerías disponibles de Conekta.
  • Contar con tus API Keys (llave personal) de pruebas.

Paso 1 - Añade tu llave privada y versión del API

Necesitarás tu llave privada de pruebas. Si aún no cuentas con ella, puedes obtenerla en tu panel Conekta.

# N/A
require_once("/path/to/lib/Conekta.php");
\Conekta\Conekta::setApiKey("key_eYvWV7gSDkNYXsmr");
\Conekta\Conekta::setApiVersion("2.0.0");
require "conekta"
Conekta.api_key = "key_eYvWV7gSDkNYXsmr"
Conekta.api_version = "2.0.0"
import conekta
conekta.api_key = "key_eYvWV7gSDkNYXsmr"
conekta.api_version = "2.0.0"
var conekta = require('conekta');
conekta.api_key = 'key_eYvWV7gSDkNYXsmr';
conekta.api_version = '2.0.0';
import com.conekta;
Conekta.setApiKey("key_eYvWV7gSDkNYXsmr");
com.conekta.Conekta.apiVersion = "2.0.0"
using conekta;
conekta.Api.apiKey = "key_eYvWV7gSDkNYXsmr";
conekta.Api.version = "2.0.0";
import (
    conekta "github.com/conekta/conekta-go"
)
conekta.APIKey = "key_pMcnDF4zFyWKyLG15LuqwA"

Paso 2 - Crea tu SPEI Recurrente

Con esto tus clientes estarán listos para pagar con una referencia personalizada.

curl --request POST \
  --url https://api.conekta.io/customers \
  --header 'accept: application/vnd.conekta-v2.0.0+json' \
  -u key_eYvWV7gSDkNYXsmr: \
  --header 'content-type: application/json' \
  --data '{
      "name": "Fulanito",
      "email": "[email protected]",
      "phone": "+5218181818181",
      "payment_method": {
        "type": "spei_recurrent"
      }
  }'

#Respuesta de API
{
   "livemode":false,
   "name":"Fulanito",
   "email":"[email protected]",
   "phone":"+5215555555555",
   "id":"cus_2nNW3ZFwnaeicFygP",
   "object":"customer",
   "created_at":1587510139,
   "corporate":false,
   "custom_reference":"",
   "payment_sources":{
      "object":"list",
      "has_more":false,
      "total":1,
      "data":[{
         "id":"off_ref_2nZpKdaweaacDUz6W",
         "object":"payment_source",
         "type":"spei_recurrent",
         "reference":"646180111812345678",
         "created_at":1587510139,
         "parent_id":"cus_2nNW3ZFwnaeicFygP"
      }]
   }
}
try{
    $customer = \Conekta\Customer::create(
      array(
          'name'  => "fulanito",
          'email' => "[email protected]",
          'phone' => "+5218181818181",
          'payment_sources' => array(
                array(
                'type' => "spei_recurrent"
                )
            )
      )
    );
    var_dump(json_encode($customer));
  } catch (\Conekta\ProcessingError $error){
    echo $error->getMessage();
  } catch (\Conekta\ParameterValidationError $error){
    echo $error->getMessage();
  } catch (\Conekta\Handler $error){
    echo $error->getMessage();
  }

#Respuesta de API
{
   "livemode":false,
   "name":"Fulanito",
   "email":"[email protected]",
   "phone":"+5215555555555",
   "id":"cus_2nNW3ZFwnaeicFygP",
   "object":"customer",
   "created_at":1587510139,
   "corporate":false,
   "custom_reference":"",
   "payment_sources":{
      "object":"list",
      "has_more":false,
      "total":1,
      "data":[{
         "id":"off_ref_2nZpKdaweaacDUz6W",
         "object":"payment_source",
         "type":"spei_recurrent",
         "reference":"646180111812345678",
         "created_at":1587510139,
         "parent_id":"cus_2nNW3ZFwnaeicFygP"
      }]
   }
}
begin
  customer = Conekta::Customer.create({
        name: "Fulanito",
        email: "[email protected]",
        phone: "+5218181818181",
        payment_method: {
            type: "spei_recurrent"
        }
  })
rescue Conekta::Error => error
  for error_detail in error.details do
    puts error_detail.message
  end
end
try:
  customer = conekta.Customer.create({
      "name": "Fulanito",
      "email": "[email protected]",
      "phone": "+5218181818181",
      "payment_method": {
        "type": "spei_recurrent"
      }
  })
except conekta.ConektaError as e:
  print e.message

#Respuesta de API
{
   "livemode":false,
   "name":"Fulanito",
   "email":"[email protected]",
   "phone":"+5215555555555",
   "id":"cus_2nNW3ZFwnaeicFygP",
   "object":"customer",
   "created_at":1587510139,
   "corporate":false,
   "custom_reference":"",
   "payment_sources":{
      "object":"list",
      "has_more":false,
      "total":1,
      "data":[{
         "id":"off_ref_2nZpKdaweaacDUz6W",
         "object":"payment_source",
         "type":"spei_recurrent",
         "reference":"646180111812345678",
         "created_at":1587510139,
         "parent_id":"cus_2nNW3ZFwnaeicFygP"
      }]
   }
}
customer = conekta.Customer.create({
    "name": "Fulanito",
    "email": "[email protected]",
    "phone": "+5218181818181",
    "payment_method": {
      "type": "spei_recurrent"
    }
}, function(err, res) {
    console.log(res.toObject());
});

//Respuesta de API
{
   "livemode":false,
   "name":"Fulanito",
   "email":"[email protected]",
   "phone":"+5215555555555",
   "id":"cus_2nNW3ZFwnaeicFygP",
   "object":"customer",
   "created_at":1587510139,
   "corporate":false,
   "custom_reference":"",
   "payment_sources":{
      "object":"list",
      "has_more":false,
      "total":1,
      "data":[{
         "id":"off_ref_2nZpKdaweaacDUz6W",
         "object":"payment_source",
         "type":"spei_recurrent",
         "reference":"646180111812345678",
         "created_at":1587510139,
         "parent_id":"cus_2nNW3ZFwnaeicFygP"
      }]
   }
}
try{
  Customer customer = Customer.create(
    new JSONObject("{"
        + "'name': 'Fulanito',"
        + "'email': '[email protected]',"
        + "'phone': '+5218181818181',"
        + "'payment_method': {"
          + "'type': 'spei_recurrent',"
        + "}"
    + "}"
    )
  );
}catch (Conekta::Error e) {
   System.out.println(e.details.get(0).message);
}

//Respuesta de API
{
   "livemode":false,
   "name":"Fulanito",
   "email":"[email protected]",
   "phone":"+5215555555555",
   "id":"cus_2nNW3ZFwnaeicFygP",
   "object":"customer",
   "created_at":1587510139,
   "corporate":false,
   "custom_reference":"",
   "payment_sources":{
      "object":"list",
      "has_more":false,
      "total":1,
      "data":[{
         "id":"off_ref_2nZpKdaweaacDUz6W",
         "object":"payment_source",
         "type":"spei_recurrent",
         "reference":"646180111812345678",
         "created_at":1587510139,
         "parent_id":"cus_2nNW3ZFwnaeicFygP"
      }]
   }
}
try{
  conekta.Customer customer = new conekta.Customer ().create(@"{
      ""name"": ""Fulanito"",
      ""email"": ""[email protected]"",
      ""phone"": ""+5218181818181"",
      ""payment_method"": {
        ""type"": ""spei_recurrent"",
      }
  }");
} catch (ConektaException e) {
  foreach (JObject obj in e.details) {
    System.Console.WriteLine("\n [ERROR]:\n");
    System.Console.WriteLine("message:\t" + obj.GetValue("message"));
    System.Console.WriteLine("debug:\t" + obj.GetValue("debug_message"));
    System.Console.WriteLine("code:\t" + obj.GetValue("code"));
  }
}

//Respuesta de API
{
   "livemode":false,
   "name":"Fulanito",
   "email":"[email protected]",
   "phone":"+5215555555555",
   "id":"cus_2nNW3ZFwnaeicFygP",
   "object":"customer",
   "created_at":1587510139,
   "corporate":false,
   "custom_reference":"",
   "payment_sources":{
      "object":"list",
      "has_more":false,
      "total":1,
      "data":[{
         "id":"off_ref_2nZpKdaweaacDUz6W",
         "object":"payment_source",
         "type":"spei_recurrent",
         "reference":"646180111812345678",
         "created_at":1587510139,
         "parent_id":"cus_2nNW3ZFwnaeicFygP"
      }]
   }
}
payment := &conekta.PaymentSourceCreateParams{
    PaymentType: "spei_recurrent",
}

cus := &conekta.CustomerParams{}
cus.Name = "Mario Lopez Perez"
cus.Email = "[email protected]"
cus.Phone = "+5215555555555"
cus.PaymentSources = append(cus.PaymentSources, payment)

res, err := customer.Create(cus)

//Respuesta de API
{
   "livemode":false,
   "name":"Fulanito",
   "email":"[email protected]",
   "phone":"+5215555555555",
   "id":"cus_2nNW3ZFwnaeicFygP",
   "object":"customer",
   "created_at":1587510139,
   "corporate":false,
   "custom_reference":"",
   "payment_sources":{
      "object":"list",
      "has_more":false,
      "total":1,
      "data":[{
         "id":"off_ref_2nZpKdaweaacDUz6W",
         "object":"payment_source",
         "type":"spei_recurrent",
         "reference":"646180111812345678",
         "created_at":1587510139,
         "parent_id":"cus_2nNW3ZFwnaeicFygP"
      }]
   }
}

Paso 3 - Crear un Webhook

Nuestra plataforma debe estar en constante comunicación contigo a través de Webhooks para:

1)​ Validar que la referencia del usuario sea correcta y pueda hacer pagos.

2)​ Aprobar la cantidad que el usuario quiere abonar.

3)​ Notificar un pago.

Un Webhook es un sistema de notificaciones, donde tu plataforma web debe definir una URL, para que nuestra API mande peticiones HTTP y pueda notificarte de los distintos eventos que posteriormente vamos a especificar. Por ello, deberás crear un Webhook desde tu Admin. De esta forma estarás activando la notificación de eventos. En el Admin. abre el menú principal de tu cuenta, ubicado en la esquina superior derecha, y selecciona la sección ​Webhooks​.

Después de crear una referencia para tus clientes y añadir un ​Webhook​ a tu ​Admin Conekta, estarás listo para recibir pagos.

Si lo deseas, puedes ver más información de eventos y configuración de webhook.

Con todo esto configurado ahora podrás utilizar SPEI Recurrente para tus clientes.