• Documentación Paysepro
    • Paysepro
    • Métodos de pago
      • Métodos de pago
      • Internacional
      • Europa
      • América
      • África
      • Asia
      • Oceanía
  • Paysepro Sandbox
  • API de pagos
    • API
    • Clase Paysepro para PHP
  • Notificaciones de pago
  • Checkout
  • Plugins
    • Plugins
    • Script
    • Woocommerce
    • WHMCS
API de pagos

La API de Paysepro es un servicio que otorga a los desarrolladores acceso a toda la información sobre un módulo de pago, desde su propio servidor.

Con dicha información es posible crear una UI personalizada con todos los métodos de pago disponibles en el módulo, para poder vender un producto o servicio directamente desde un sitio web.

Lo primero que debes hacer es llamar a la API a través de una URL que obtendrás del apartado API de Pagos, lo cual deberás realizar con la siguiente autenticación.

Autenticación

La autenticación de los accesos a la API se debe realizar creando una firma de la solicitud con los siguientes parámetros:

Parámetro Tipo Descripción
uid integer Valor que identifica la cuenta de usuario
mid integer Valor que identifica el módulo referenciado en el proceso
country string Código de país (ISO 3166-2)
email string Email registrado en la cuenta de usuario

Obtener información acerca de los métodos disponibles

El método getData nos ayuda a obtener toda la información de los métodos disponibles en un determinado país así como también obtener la URL de procesamiento de pagos.

Parámetro Requerido Tipo Descripción
uid integer identificador de cuenta de usuario
mid integer identificador de módulo de usuario
cc string código de país (ISO 3166-2)

Ejemplo de acceso GetData
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<?php
    $uid=12345;
    $mid=54321;
    $country="es";
    $email="[email protected]";
    $apikey="CTIEP80XO8ZKMQOX";
    
    $url="https://api.paysepro.com/getData.php?uid=$uid&mid=$mid&cc=$country";

    $string=$uid.$mid.$country.$email;
    $signature=hash_hmac("sha256",$string,$apikey);

    $result=callUrl($url,$signature);
    print_r(json_decode($result,true));
    echo "\n";

    function callUrl($url,$signature)
    {
        $defaults = array(
            CURLOPT_POST => 1,
            CURLOPT_URL => $url,
            CURLOPT_RETURNTRANSFER => 1,
            CURLOPT_FOLLOWLOCATION => true,
        );
        $ch = curl_init();
        curl_setopt_array($ch, $defaults);
        $signature=Array("signature: $signature");
        curl_setopt($ch, CURLOPT_HTTPHEADER, $signature);
        if( ! $result = curl_exec($ch)) trigger_error(curl_error($ch));
        curl_close($ch);
        return($result);
    }
?>

Ejemplo de resultado
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
Array
(
    [error] => 0
    [message] => API response -> successful request.
    [data] => Array
        (
            [error] => 0
            [sites] => Array
                (
                    [status] => enabled
                    [url] => https://test.com/
                )

            [modules] => Array
                (
                    [price] => 12.00
                    [status] => enabled
                    [currency] => USD
                    [country] => es
                    [api_ip] => 167.57.38.174
                    [methods] => Array
                        (
                            [neosurf] => Array
                                (
                                    [0] => Array
                                        (
                                            [method] => neosurf
                                            [country] => es
                                            [price] => 12.00
                                            [pmin] => 1.00
                                            [pmax] => 1000.00
                                        )

                                )

                            [3esteleingreso] => Array
                                (
                                    [0] => Array
                                        (
                                            [method] => 3esteleingreso
                                            [country] => es
                                            [price] => 12.00
                                            [pmin] => 1.00
                                            [pmax] => 1000.00
                                        )

                                )

                            [sofort] => Array
                                (
                                    [0] => Array
                                        (
                                            [method] => sofort
                                            [country] => es
                                            [price] => 0.000
                                            [pmin] => 2.00
                                            [pmax] => 500.00
                                        )

                                )

                            [bitcoin] => Array
                                (
                                    [0] => Array
                                        (
                                            [method] => bitcoin
                                            [country] => 
                                            [price] => 0.000
                                            [pmin] => 1.00
                                            [pmax] => 1000.00
                                        )

                                )


                        )

                )

            [gateway] => Array
                (
                    [url] => https://api.paysepro.com/createCode.php
                )

        )

)

Referencia de parámetros de respuesta
Parámetro JSON Descripción
error Código de error de API
message Mensaje de respuesta
data Objeto con la información del pago
gateway Objeto con la información del pago
url URL para procesar el pago
sites Objeto con la información del sitio
status Estatus del sitio web
url URL del sitio web
modules Objeto con la información del módulo de pagos
price Precio del módulo de pagos
status Estatus del módulo de pagos
currency Moneda definida en el módulo
country Código de país de acceso
api_ip Dirección de IP desde la que se puede acceder a la API
methods Objeto con la información de los métodos de pago
creditcard Objeto con la información acerca del método de pago de tarjetas de crédito
method Nombre del método de pago
price Monto de la transacción
pmin mínimo de una transacción
pmax máximo de una transacción

Referencia de códigos de error
Código Descripción
0 Respuesta correcta
05 MID desconocido
06 UID desconocido
19 Sitio web desconocido
22 API KE incorrecta
31 No hay datos para mostrar
32 Código de país desconocido
40 Firma incorrecta

Para ordenar un pago

Se accede mediante el parámetro GATEWAY->URL devuelto en el método getData y permite iniciar un proceso de pago para generar un código de acceso a un producto o servicio específico. Esta clave de acceso quedará inhabilitada hasta que el cliente complete el proceso de pago con el proveedor correspondiente.

Una vez completado el pago, el código quedará habilitado para ser utilizado en la URL que se configuró como URL DE ACCESO en el módulo de pago.

Crear un código de pago

Para cada cliente que recibe un servicio y paga por él, se debe crear un código de pago único con la configuración del precio, país y método.

Se debe utilizar la siguiente URL para crear el código e iniciar el proceso de pago:

Parámeter Requerido Tipo Descripción
uid numeric identificador de cuenta de usuario
mid numeric identificador de módulo de usuario
type text método de pago
cc text código de país (ISO 3166-2)
price numeric precio
name no text nombre de la persona que usa el servicio
email no email email de la persona que usa el servicio

Ejemplo de uso de createCode
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<?php
    $uid=12345;
    $mid=54321;
    $country="ar";
    $email="[email protected]";
    $apikey="CTIEP80XO8ZKMQOX";

    //Payment array
    $data=Array(
        "uid"=>$uid, //USER ID -Value type: integer
        "mid"=>$mid, //PAYMENT MODULE ID -Value type: integer
        "type"=>"1arciti", //PAYMENT METHOD -Value type: string
        "cc"=>$country, //COUNTRY CODE -Value format: ISO 3166-2 format
        "price"=>2.99, //PRODUCT/SERVICE PRICE -Value type: float
        "ucode"=>"ABC", //PRODUCT/SERVICE CODE -Value type: string
        "name"=>"Jack Dalton", //CUSTOMER NAME -Value type: string
        "email"=>"[email protected]", //CUSTOMER EMAIL
    );

    $string=$uid.$mid.$country.$email;
    $signature=hash_hmac("sha256",$string,$apikey);
    
    $fields=http_build_query($data);
    $ch=curl_init();
    curl_setopt($ch,CURLOPT_URL,"https://api.paysepro.com/createCode.php");
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
    curl_setopt($ch,CURLOPT_POST,1);
    curl_setopt($ch,CURLOPT_POSTFIELDS,$fields);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);

    $signature=Array("signature: $signature");
    curl_setopt($ch, CURLOPT_HTTPHEADER, $signature);
    
    $result=curl_exec($ch);
    curl_close($ch);
    if($result)
    {
        // Decode JSON data
        $data=json_decode($result);
        // Convert PHP object to PHP array
        if(is_object($data)) $data=(array)$data;
        if(is_array($data)&&count($data))
        {
            if(!$data["error"]&&isset($data["url"]))
            {
                // Redirect to Payment Provider FORM
                header("Location: {$data["url"]}");
                exit;
            }
            // Print Error code -view Error Codes reference
            die("Error: {$data["error"]}");
        }
    }
    // Print Error message
    die("Error");
?>

Ejemplo de respuesta JSON
1
2
3
4
5
6
{
    'code':"AABBCCDDEEFF",
    'price':2.99,
    'error':0,
    'url':"https://api.paysepro.com/pay.php?uid=1&mid=1&method=paypal&country=uy&code=AABBCCDDEEFF"
}
Ejemplo de respuesta de error
1
2
3
{
    "error":"02",
}

Referencia de códigos de error
Código Descripción
0 Respuesta correcta
01 Método de pago desconocido
02 Email vacío
03 UID vacío
04 MID vacío
05 MID desconocido
06 UID desconocido
07 Cuenta deshabiltiada
08 Error interno
09 No hay métodos de pago habilitados
10 El método de pago está deshabilitado
11 Información de acceso incorrecta
12 Dinero insuficiente
16 Método de pago desconocido por la API
17 Error de procesamiento interno
18 Error de configuración de la cuenta
19 Sitio web desconocido
20 No tiene comisión configurada
22 API KEY incorrecta
26 Referer incorrecto
27 IP deshabilitada
28 Módulo de pago deshabilitado
29 Sitio web deshabilitado
40 Firma incorrecta