NAV Navbar
Logo
shell java php

Introducción

¡Bienvenido a Payvalida! familiarízate con nuestro API, la forma más sencilla de registrar tus órdenes de compra y recibir el pago de tus productos y servicios a través de todos los medios de recaudo que podemos ofrecerte.

Tenemos códigos de ejemplo en shell, php y Java.

Para completar un pago con Payvalida:

  1. Registra una orden de compra usando nuestro API, módulo administrativo o nuestros Plugins
  2. Redirige a tu comprador a nuestro CHECKOUT (la URL de checkout la obtienes del registro)
  3. Recibe la notificacion de tu pago (prepara tu URL de Webhook e indicanos cual es)

Puedes tambien consultar los datos de una orden desde nuestro API, o bien modificarla y/o eliminarla

Para más información visita Payvalida.

Ordenes de compra

Registrar

  curl -i -X POST \
   -H "Content-Type:application/json" \
   -d \
'{
  "country":343,
  "email":"[email protected]",
  "merchant":"testmerchant_co",
  "order":"p0000101",
  "reference":"989898101",
  "money":"COP",
  "amount":"45000",
  "description":"Test RESTfull Purchase Order POST",
  "language":"es",
  "recurrent":false,
  "expiration":"30/08/2017",
  "method":"baloto",
  "iva":"0.02",
  "checksum":"71ff0ca3ffa49f0d13c7de5c661c6f8fddcab38004a195718e3d89d330005ee34623959e93893cc2ff5f451b89b43dcc514c5767a2415066578adecbd4ef8242"
}' \
 'https://api-test.payvalida.com/api/v3/porders'
        try {
            // Sandbox
            String urlAPI = "https://api-test.payvalida.com/api/v3/porders/";
            // Production
            // String urlAPI = "https://api.payvalida.com/api/v3/porders/";

            URL url = new URL(urlAPI);


            String data = "{\"country\":343,\"email\":\"[email protected]\",\"merchant\":\"testmerchant_co\",\"order\":\"p0000101\",\"reference\":\"989898001\",\"money\":\"COP\",\"amount\":\"45000\",\"description\":\"Test RESTfull service\",\"language\":\"es\",\"recurrent\":false,\"expiration\":\"30/08/2017\",\"method\":\"baloto\",\"iva\":\"0.02\",\"checksum\":\"71ff0ca3ffa49f0d13c7de5c661c6f8fddcab38004a195718e3d89d330005ee34623959e93893cc2ff5f451b89b43dcc514c5767a2415066578adecbd4ef8242\"}";

            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setDoOutput(true);
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Content-Type", "application/json");
            conn.setRequestProperty("Content-Length", Integer.toString(data.length()));
            conn.setRequestProperty("Accept", "application/json");

            try {
                OutputStream out = conn.getOutputStream();
                out.write(data.getBytes());
                out.flush();
                out.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }

            if (conn.getResponseCode() != 200) {
                throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
            }

            BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));

            String output;
            System.out.println("Output from Server .... \n");
            while ((output = br.readLine()) != null) {
                System.out.println(output);
            }

            conn.disconnect();

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    <?php
    /**
        You need activarte curl support in your PHP
        If you're on Windows:
            Go to your php.ini file and remove the ; mark from the beginning of the following line:
            ;extension=php_curl.dll
            After you have saved the file you must restart your HTTP server software (e.g. Apache) before this can take effect.
        If you're on Linux:
            In a terminal type the following to install it and do not forgot to restart server.
            sudo apt-get install php-curl
    **/

    // Sandbox
    $urlAPI = "https://api-test.payvalida.com/api/v3/porders/";

    // Production
    //$service_url = "https://api.payvalida.com/api/v3/porders/";

    $data = "{\"country\":343,\"email\":\"[email protected]\",\"merchant\":\"testmerchant_co\",\"order\":\"p0000101\",\"reference\":\"989898001\",\"money\":\"COP\",\"amount\":\"45000\",\"description\":\"Test RESTfull service\",\"language\":\"es\",\"recurrent\":false,\"expiration\":\"30/08/2017\",\"method\":\"baloto\","iva":"0.02",\"checksum\":\"71ff0ca3ffa49f0d13c7de5c661c6f8fddcab38004a195718e3d89d330005ee34623959e93893cc2ff5f451b89b43dcc514c5767a2415066578adecbd4ef8242\"}";

    $service_url = $urlAPI;

    $curl = curl_init($service_url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type:application/json']); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_POST, true);
    $curl_response = curl_exec($curl);
    curl_close($curl);

    var_dump($curl_response);

    ?>

La ejecución, retorna un JSON estructurado de esta manera:

{  
   "CODE":"0000",
   "DATA":{  
      "OrdenID":"p0000101",
      "Monto":"45000.0",
      "PVordenID":"95601",
      "Referencia":"989898101",
      "Operacion":"CREADA",
       "checkout":"checkout.payvalida.com/?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJNRVJDSEFOVF9DRUwiOiIzMTc2ODI3MzQxIiwiT1JERVJfTUVUSE9EIjoiZWZlY3R5IiwiTUVSQ0hBTlRfQ09ERSI6MjU0LCJNRVJDSEFOVF9FTUFJTCI6ImhyZXN0cmVwb0BwYXl2YWxpZGEuY29tIiwiaXNzIjoiYXV0aDAiLCJNRVJDSEFOVF9MT0dPIjoiaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL3ZhbGlkZGF3ZWIvZXZlbnRvcy9mZW5hbGNvYnJhLnBuZyIsIk1FUkNIQU5UX1VSTF9SRVRVUk4iOiJ3d3cucGludmFsaWRkYS5jb20uY28iLCJNRVJDSEFOVF9OQU1FIjoiSGVybmFuIFJwbyAoQ09MKSIsIk9SREVSX0JSSUVGIjoiVGVzdCBSRVNUZnVsbCBQdXJjaGFzZSBPcmRlciBQT1NUIiwiTUVSQ0hBTlRfVEVMIjoiMjg4MDUzOSIsIk9SREVSX0NVUlJFTkNZIjoiQ09QIiwiT1JERVJfQU1PVVQiOiIxMCwwMDAuMDAiLCJleHAiOjE1MzA0MDE1MzgsIk9SREVSX1JFRkVSRU5DRSI6IjQyMzEzIn0.QVsZwm-2BIkK-5RgrAX2NuwGqmHSNHD_zw91i1hcSc8"
   },
   "DESC":"OK"
}

Registra un orden, para permitir al comprador hacer un pago. El parametro “checkout” indica la URL desde donde el comprador puede completar el pago

HTTP Request

Sandbox:
POST https://api-test.payvalida.com/api/v3/porders
Producción:
POST https://api.payvalida.com/api/v3/porders

Parametros POST (en formato JSON)

Nombre Requerido Descripción Tipo Longitud
merchant si Identificacion del comercio en Payvalida Alfanumérico 50 caracteres
email si Email del comprador Email 100 caracteres
country si Código del país Numérico 3 caracteres
order si Codigo alfanumérico correspondiente al número de la orden generada por le comercio Alfanumérico 200 caracteres
reference no Número de referencia de pago, utilizada por el cliente para hacer el pago de la Orden de Compra Numérico 25 caracteres
money si Código de moneda de la transacción Alfabético 3 caracteres
amount si Monto de la operación Numérico N/A
description si Breve descripción de la Orden de Compra Alfanumérico 500 caracteres
method no Método seleccionado por el cliente para realizar el pago Alfanumérico 25 caracteres
language no Lenguaje de respuestas y mensajes Alfabético 2 caracteres
recurrent si Indica si la Orden de Compra es recurrente o no Booleano N/A
expiration si Fecha de expiracion de la Orden de Compra, en formato DD/MM/AAAA Fecha N/A
iva si Monto porcentual del IVA correspondiente a la orden Numérico N/A
checksum si Cadena de comprobación calculada con SHA512(email + country + order + money + amount + FIXED_HASH) Alfanumérico 512 caracteres
user_di no Número de identificación del cliente Numérico 15 caracteres
user_type_di no Tipo de identificación del cliente (CC, CE, PA, NIT) Alfanumérico 3 caracteres
user_name no Nombre del usuario Alfanumérico 25 caracteres
redirect_timeout no Tiempo de espera de redirección en milisegundos Numérico 5 caracteres

Detalles

Consultar

  curl -i -X GET \
 'https://api-test.payvalida.com/api/v3/porders/1496953766724?merchant=testmerchant_co&checksum=eef0c07f779252b735c67df2c1945b68ca93f72100ece73dac778964aca909184cbcb16bd698527ee5738a88e809202284fec8df640a9e12e90f11f4ddb4f3a8'
  try {
            // Sandbox
            String urlAPI = "https://api-test.payvalida.com/api/v3/porders/";
            // Production
            // String urlAPI = "https://api.payvalida.com/api/v3/porders/";

            //Change orderID by you order
            String orderID = "1500037122481";

            //Change merchantID by you merchant
            String merchantID = "testmerchant_co";

            //Calculate checksum = SHA512(order + merchant + FIXED_HASH)
            String checksum = "547c85b4575b2a9188e0677d38147941aab3be14d45b87393f4339ffd415017bf2af78653968f920d546c2e67e6ae8d40601dba82019349109b4e0ae0603b592";

            URL url = new URL(urlAPI + orderID + "?merchant=" + merchantID + "&checksum=" + checksum);

            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            if (conn.getResponseCode() != 200) {
                throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
            }

            BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));

            String output;
            System.out.println("Output from Server .... \n");
            while ((output = br.readLine()) != null) {
                System.out.println(output);
            }

            conn.disconnect();

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

<?php

    /**
        You need activarte curl support in your PHP
        If you're on Windows:
            Go to your php.ini file and remove the ; mark from the beginning of the following line:
            ;extension=php_curl.dll
            After you have saved the file you must restart your HTTP server software (e.g. Apache) before this can take effect.
        If you're on Linux:
            In a terminal type the following to install it and do not forgot to restart server.
            sudo apt-get install php-curl
    **/

    // Sandbox
    $urlAPI = "https://api-test.payvalida.com/api/v3/porders/";

    // Production
    //$service_url = "https://api.payvalida.com/api/v3/porders/";

    //Change orderID by you order
    $orderID = "1500037122481";

    //You must change merchantID by you merchant
    $merchantId = "testmerchant_co";

    //Calculate checksum = SHA512(order + merchant + FIXED_HASH)
    $checksum  = "eef0c07f779252b735c67df2c1945b68ca93f72100ece73dac778964aca909184cbcb16bd698527ee5738a88e809202284fec8df640a9e12e90f11f4ddb4f3a8";

    $service_url = $urlAPI.$orderID."?merchant=".$merchantId."&checksum=".$checksum;

    $curl = curl_init($service_url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, ["Content-Type:application/json"]);  
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    $curl_response = curl_exec($curl);
    curl_close($curl);

    var_dump($curl_response);
    ?>

La ejecución, retorna un JSON estructurado de esta manera:

{  
   "CODE":"0000",
   "DATA":[  
      {  
         "CURRENCY":"COP",
         "NOTIFICATION_RESPONSE":"Notificacion no enviada al comercio: URL de Notificacion en NULL",
         "UPDATE_DATE":"2017-07-22 12:18:26",
         "CREATION_DATE":"2017-07-14 08:35:32",
         "STATE":"VENCIDA",
         "PAYMENT_METHOD":"tc",
         "EMAIL":"[email protected]_co.com",
         "LIFETIME":"200h",
         "RECURRENCY":false,
         "ORDER":"1500039330728",
         "CODE":95124,
         "AMOUNT":"20,000.00",
         "DESCRIPTION":"Prueba Link de Pago",
         "REFERENCE":"1500037122481",
         "checkout":"checkout.payvalida.com/?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJNRVJDSEFOVF9DRUwiOiIzMTc2ODI3MzQxIiwiT1JERVJfTUVUSE9EIjoiZWZlY3R5IiwiTUVSQ0hBTlRfQ09ERSI6MjU0LCJNRVJDSEFOVF9FTUFJTCI6ImhyZXN0cmVwb0BwYXl2YWxpZGEuY29tIiwiaXNzIjoiYXV0aDAiLCJNRVJDSEFOVF9MT0dPIjoiaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL3ZhbGlkZGF3ZWIvZXZlbnRvcy9mZW5hbGNvYnJhLnBuZyIsIk1FUkNIQU5UX1VSTF9SRVRVUk4iOiJ3d3cucGludmFsaWRkYS5jb20uY28iLCJNRVJDSEFOVF9OQU1FIjoiSGVybmFuIFJwbyAoQ09MKSIsIk9SREVSX0JSSUVGIjoiVGVzdCBSRVNUZnVsbCBQdXJjaGFzZSBPcmRlciBQT1NUIiwiTUVSQ0hBTlRfVEVMIjoiMjg4MDUzOSIsIk9SREVSX0NVUlJFTkNZIjoiQ09QIiwiT1JERVJfQU1PVVQiOiIxMCwwMDAuMDAiLCJleHAiOjE1MzA0MDE1MzgsIk9SREVSX1JFRkVSRU5DRSI6IjQyMzEzIn0.QVsZwm-2BIkK-5RgrAX2NuwGqmHSNHD_zw91i1hcSc8"
      }
   ],
   "DESC":"Resultado exitoso"
}

Consuta los detalles de una orden registrada

HTTP Request

Sandbox:
GET https://api-test.payvalida.com/api/v3/porders/<order>
Producción:
GET https://api.payvalida.com/api/v3/porders/<order>

Parametros Query

Nombre Requerido Descripción Tipo Longitud
merchant si Identificacion del comercio en Payvalida Alfanummérico 50 caracteres
checksum si Cadena de comprobación calculada con SHA512(order + merchant + FIXED_HASH) Alfanumérico 512 caracteres

Parametro PATH

Nombre Requerido Descripción Tipo Longitud
order si Número de la orden Alfanumérico 200 caracteres

Actualizar

  curl -i -X PATCH \
   -H "Content-Type:application/json" \
   -d \
'{
  "country":343,
  "email":"[email protected]",
  "merchant":"testmerchant_co",
  "order":"p0000101",
  "reference":"989898101",
  "money":"COP",
  "amount":"55000",
  "description":"Test RESTfull Orden de Compra POST",
  "language":"es",
  "recurrent":false,
  "expiration":"30/08/2017",
  "method":"baloto",
  "iva":"0.03",
  "checksum":"721875a77986f35f6a22017e8e8410233c79816e4646dc5ec8e94e0593ea6e2e0ba7d32adc0384064d6659021519574f3cabf7f58ab56571da7a4b8bad1ecab0"
}' \
 'https://api-test.payvalida.com/api/v3/porders'
        try {
            // Sandbox
            String urlAPI = "https://api-test.payvalida.com/api/v3/porders/";
            // Production
            // String urlAPI = "https://api.payvalida.com/api/v3/porders/";

            URL url = new URL(urlAPI);

            String data = "{\"country\":343,\"email\":\"[email protected]\",\"merchant\":\"testmerchant_co\",\"order\":\"p0000201\",\"reference\":\"989898001\",\"money\":\"COP\",\"amount\":\"55000\",\"description\":\"Test RESTfull service\",\"language\":\"es\",\"recurrent\":false,\"expiration\":\"30/08/2017\",\"method\":\"baloto\",\"iva\":\"0.03\",\"checksum\":\"adf64b3ed1107943588a6f37fd6faea38689dec1927e53831494d1751854acfd511fd1a7d3b5a31936153edb7c862e7fe7e5b326882e627f0088a3a32d785441\"}";

            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setDoOutput(true);
        //Java don`t accept method PATCH, use PUT
        conn.setRequestMethod("PUT");
        conn.setRequestProperty("Content-Type", "application/json");
            conn.setRequestProperty("Accept", "application/json");

            try {
                OutputStream out = conn.getOutputStream();
                out.write(data.getBytes());
                out.flush();
                out.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }

            if (conn.getResponseCode() != 200) {
                throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
            }

            BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));

            String output;
            System.out.println("Output from Server .... \n");
            while ((output = br.readLine()) != null) {
                System.out.println(output);
            }

            conn.disconnect();

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    <?php
    /**
        You need activarte curl support in your PHP
        If you're on Windows:
            Go to your php.ini file and remove the ; mark from the beginning of the following line:
            ;extension=php_curl.dll
            After you have saved the file you must restart your HTTP server software (e.g. Apache) before this can take effect.
        If you're on Linux:
            In a terminal type the following to install it and do not forgot to restart server.
            sudo apt-get install php-curl
    **/

    // Sandbox
    $service_url = "https://api-test.payvalida.com/api/v3/porders/";

    // Production
    //$service_url = "https://api.payvalida.com/api/v3/porders/";

    $data = "{\"country\":343,\"email\":\"[email protected]\",\"merchant\":\"testmerchant_co\",\"order\":\"p0000101\",\"reference\":\"989898001\",\"money\":\"COP\",\"amount\":\"45000\",\"description\":\"Test RESTfull service\",\"language\":\"es\",\"recurrent\":false,\"expiration\":\"30/08/2017\",\"method\":\"baloto\",\"iva\":\"0.03\",\"checksum\":\"71ff0ca3ffa49f0d13c7de5c661c6f8fddcab38004a195718e3d89d330005ee34623959e93893cc2ff5f451b89b43dcc514c5767a2415066578adecbd4ef8242\"}";

    $curl = curl_init($service_url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type:application/json']); 
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
    $curl_response = curl_exec($curl);
    curl_close($curl);

    var_dump($curl_response);
    ?>

La ejecución, retorna un JSON estructurado de esta manera:

{  
   "CODE":"0000",
   "DATA":{  
      "OrdenID":"p0000201",
      "Monto":"55000.0",
      "PVordenID":"95601",
      "Referencia":"989898101",
      "Operacion":"ACTUALIZADO",
      "checkout":"checkout.payvalida.com/?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJNRVJDSEFOVF9DRUwiOiIzMTc2ODI3MzQxIiwiT1JERVJfTUVUSE9EIjoiZWZlY3R5IiwiTUVSQ0hBTlRfQ09ERSI6MjU0LCJNRVJDSEFOVF9FTUFJTCI6ImhyZXN0cmVwb0BwYXl2YWxpZGEuY29tIiwiaXNzIjoiYXV0aDAiLCJNRVJDSEFOVF9MT0dPIjoiaHR0cHM6Ly9zMy5hbWF6b25hd3MuY29tL3ZhbGlkZGF3ZWIvZXZlbnRvcy9mZW5hbGNvYnJhLnBuZyIsIk1FUkNIQU5UX1VSTF9SRVRVUk4iOiJ3d3cucGludmFsaWRkYS5jb20uY28iLCJNRVJDSEFOVF9OQU1FIjoiSGVybmFuIFJwbyAoQ09MKSIsIk9SREVSX0JSSUVGIjoiVGVzdCBSRVNUZnVsbCBQdXJjaGFzZSBPcmRlciBQT1NUIiwiTUVSQ0hBTlRfVEVMIjoiMjg4MDUzOSIsIk9SREVSX0NVUlJFTkNZIjoiQ09QIiwiT1JERVJfQU1PVVQiOiIxMCwwMDAuMDAiLCJleHAiOjE1MzA0MDE1MzgsIk9SREVSX1JFRkVSRU5DRSI6IjQyMzEzIn0.QVsZwm-2BIkK-5RgrAX2NuwGqmHSNHD_zw91i1hcSc8"
   },
   "DESC":"OK"
}

Permite modificar los datos de ésta de una orden, así es posible ampliar la vida de la orden (fecha de expiración), monto, descripcion, referencia de pago, etc.

HTTP Request

Sandbox:
PATCH https://api-test.payvalida.com/api/v3/porders
Producción:
PATCH https://api.payvalida.com/api/v3/porders

Parametros PATCH (en formato JSON)

Nombre Requerido Descripción Tipo Longitud
merchant si Identificacion del comercio en Payvalida Alfanumérico 50 caracteres
email no Email del comprador para enviar notification de recaudo Email 100 caracteres
country si Código del país Numérico 3 caracteres
order si Codigo alfanumérico correspondiente al número de la Orden generada por le comercio Alfanumérico 200 caracteres
reference no Número de referencia de pago, utilizada por el cliente para hacer el pago de la Orden de Compra Numérico 25 caracteres
money si Código de moneda de la transacción Alfabético 3 caracteres
amount si Monto de la operación Numérico N/A
description si Breve descripción de la Orden de Compra Alfanumérico 500 caracteres
method no Método seleccionado por el cliente para realizar el pago Alfanumérico 25 caracteres
language no Lenguaje de respuestas y mensajes Alfabético 2 caracteres
recurrent si Indica si la Orden de Compra es recurrente o no Booleano N/A
expiration si Fecha de expiracion de la Orden de Compra, en formato DD/MM/AAAA Fecha N/A
iva si Monto porcentual del IVA correspondiente a la orden Numérico N/A
checksum si Cadena de comprobación calculada con SHA512(email + country + order + money + amount + FIXED_HASH) Alfanumérico 512 caracteres

Eliminar

Esta acción cambia el estado de la Orden de PENDIENTE a CANCELADA, en este caso no se envían notificaciones de cambio de estado. Una vez eliminada (cancelada) la orden no puede pagarse

    curl -i -X DELETE \
    'https://api-test.payvalida.com/api/v3/porders/1496953766724_6?merchant=testmerchant_co&checksum=eef0c07f779252b735c67df2c1945b68ca93f72100ece73dac778964aca909184cbcb16bd698527ee5738a88e809202284fec8df640a9e12e90f11f4ddb4f3a8'
  try {
            // Sandbox
            String urlAPI = "https://api-test.payvalida.com/api/v3/porders/";
            // Production
            // String urlAPI = "https://api.payvalida.com/api/v3/porders/";

            //Change orderID by you order
            String orderID = "1496953766724_6";

            //Change merchantID by you merchant
            String merchantID = "testmerchant_co";

            //Calculate checksum = SHA512(order + merchant + FIXED_HASH)
            String checksum = "547c85b4575b2a9188e0677d38147941aab3be14d45b87393f4339ffd415017bf2af78653968f920d546c2e67e6ae8d40601dba82019349109b4e0ae0603b592";

            URL url = new URL(urlAPI + orderID + "?merchant=" + merchantID + "&checksum=" + checksum);

            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("DELETE");
            if (conn.getResponseCode() != 200) {
                throw new RuntimeException("Failed : HTTP error code : " + conn.getResponseCode());
            }

            BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));

            String output;
            System.out.println("Output from Server .... \n");
            while ((output = br.readLine()) != null) {
                System.out.println(output);
            }

            conn.disconnect();

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }

    <?php
    /**
        You need activarte curl support in your PHP
        If you're on Windows:
            Go to your php.ini file and remove the ; mark from the beginning of the following line:
            ;extension=php_curl.dll
            After you have saved the file you must restart your HTTP server software (e.g. Apache) before this can take effect.
        If you're on Linux:
            In a terminal type the following to install it and do not forgot to restart server.
            sudo apt-get install php-curl
    **/

    // Sandbox
    $service_url = "https://api-test.payvalida.com/api/v3/porders/";

    // Production
    //$service_url = "https://api.payvalida.com/api/v3/porders/";

    //Change orderID by you order
    $orderID = "1496953766724_6";

    //Change merchantID by you merchant

    $merchantId = "testmerchant_co";

    //Calculate checksum = SHA512(merchant + FIXED_HASH)

    $checksum = "eef0c07f779252b735c67df2c1945b68ca93f72100ece73dac778964aca909184cbcb16bd698527ee5738a88e809202284fec8df640a9e12e90f11f4ddb4f3a8";

    $service_url = $urlAPI.$orderID."?merchant=".$merchantId."&checksum=".$checksum;

    $curl = curl_init($service_url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type:application/json']); 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "DELETE");
    $curl_response = curl_exec($curl);
    curl_close($curl);

    var_dump($curl_response);
    ?>

La ejecución, retorna un JSON estructurado de esta manera:

{  
   "CODE":"0000",
   "DATA":{  
      "Reference":"3102292330",
      "Amount":"0.0",
      "Operation":"DELETED",
      "OrderID":"1496953766724_6",
      "PVOrderID":"95585"
   },
   "DESC":"OK"
}

HTTP Request

Sandbox:
DELETE https://api-test.payvalida.com/api/v3/porders/<order>
Producción:
DELETE https://api.payvalida.com/api/v3/porders/<order>

Parametros Query

Nombre Requerido Descripción Tipo Longitud
merchant si Identificacion del comercio en Payvalida Alfanummérico 50 caracteres
checksum si Cadena de comprobación calculada con SHA512(order + merchant + FIXED_HASH) Alfanumérico 512 caracteres

Parametro PATH

Nombre Requerido Descripción Tipo Longitud
order si Número de la Orden Alfanumérico 200 caracteres

Notificación

El proceso de notificación, consiste en reportar al comercio aquellas órdenes que han cambiado de estado, es decir, notificar las órdenes que se han modificado, bien porque Payvalida ha recibido el pago, bien porque ha vencido o por algun otro proceso.

Al momento de registrar una orden, ésta se crea en estado PENDIENTE. La orden puede cambiar de estado por diversas razones:

  1. Se ha recibido el pago correspondiente -> Cambia de PENDIENTE a APROBADA y se notifica con estatus “approved”
  2. No se ha recibido el pago correspondiente antes de la fecha de vencimiento -> Cambia de PENDIENTE a VENCIDA y se notifica con estatus “cancelled”
  3. El comercio elimina la orden (usando el API) -> Cambia de PENDIENTE a CANCELADA. No se notifica
  4. El cliente realiza un reclamo de devolución del pago realizado -> Cambia de APROBADA a ANULADA y se notifica con estatus “cancelled”
  5. El comercio solicita devolución del pago de un cliente -> Cambia de APROBADA a ANULADA, no se notifica

Nuestro sistema notifica al comercio los cambios de estado de cada orden, para ello se requiere del comercio, registrar una URL que permita recibir peticiones POST desde nuestro sistema (webhook). Cada notificación envía los valores asociados a los siguientes parámetros:

Parámetros POST

Nombre Descripción
pv_po_id Identificación del Payment en Payvalida
po_id Corresponde al valor “order” registrado en el Payment
status Estado actual del Payment
pv_checksum Cadena de comprobación calculada con SHA256(po_id + status + FIXED_HASH_NOTIFICACION)
amount Monto del Payment
iso_currency Moneda de registro del Payment
pv_payment Medio de pago del Payment

El sistema notifica de forma automática en el momento del cambio de estado de la orden, pero es posible que exista mas de una notificación de la misma orden. Es reponsabilidad del comercio evitar entregar mas de una vez el producto adquirido por el cliente en caso de que haya mas de una notificación.

El sistema registra la respuesta obtenida al momento de la notificación, por ello es recomendable enviar como respuesta un texto adecuado al proceso de notificación, por ejemplo un “OK” en caso afirmativo y “ERROR” en caso contrario, tambien se recomienda acompañar la respuesta de una breve descripción, como por ejemplo: “OK. Pago registrado”, “ERROR. Orden no reconocida”.

Paises/Monedas

Los países soportados con sus respectivos códigos y monedas son:

Código Moneda País
343 COP Colombia
345 USD Ecuador
348 PEN Perú
314 CRC Costa Rica

Métodos de pago

Estos son los métodos de pago que puedes usar con Payvalida en los diferentes países en los que operamos:

Colombia

Nombre Comercial Método
Apostar apostar
Baloto baloto
Bancolombia bancolombia
Bevalida Colombia bevalida
Dimonex efecty
Efecty efecty
GANA gana
Nequi nequi
PSE PSE
PuntoRed puntored
RedServi redservi
SuRed sured
SuSuerte susuerte
Tarteja de Crédito tc

Costa Rica

Nombre Comercial Método
Banco de Costa Rica bcr
Banco Nacional bncr
Bevalida Costa Rica bevalida

Ecuador

Nombre Comercial Método
Banco Pichincha pinchincha
Bevalida Ecuador bevalida

Perú

Nombre Comercial Método
BBVA Continental bbva
BCP bcp
Bevalida Perú bevalida
Caja Arequipa arequipa
Caja Cusco cusco
Caja Huancayo huancayo
Caja ICA ica
Caja Piura piura
Caja Tacna tacna
Caja Trujillo trujillo
Interbank interbank
ScotiaBank scotiabank
Western Union wu