NAV

API INESPAY

La API INESPAY proporciona un servicio de pasarela de pago por transferencia bancaria basado en la normativa europea PSD2 (Payment Service Directive 2). A diferencia de las pasarelas de pago por tarjeta bancaria, el comprador/pagador no necesita introducir la numeración de su tarjeta para iniciar un pago, sino simplementa seleccionar la entidad financiera donde dispone de una cuenta corriente e introducir las mismas credenciales que utiliza en su banca online.

La API INESPAY se puede integrar tanto como checkout en un eCommerce (botón de pago en un carrito de compra), como boton de pago por transferencia en plataformas online de solicitud de pedidos, áreas de clientes, etc. Asimismo puede integrarse como un servicio de recepción de enlaces o URLs de pago que se pueden adjuntar posteriormente a facturas o emails. En este último caso (URLs de pago), la API INESPAY envía al cliente/integrador los enlaces de pago que posteriormente podrá enviar al comprador/pagador para abrir la pasarela de pago INESPAY para iniciar el pago.

La API INESPAY está construida como un servicio REST, por lo que puede ser integrada en cualquier plataforma, independientemente del lenguaje de programación utilizado.

Estructura Payflow

Seguridad

La API INESPAY requiere un proceso de autenticación mediante una API-KEY y una API-TOKEN, que pueden ser obtenidas desde el Dashboard INESPAY. Estas claves son de envío obligatorio en cada llamada y deben ser proporcionadas en la cabecera (Header) de cada petición. Para acceder al Dashboard INESPAY, el cliente/integrador debe de registrarse previamente: Registro INESPAY

Se utiliza el protocolo seguro HTTPS para el cifrado e intercambio de datos y el formato JSON para todas las peticiones y respuestas de la API.

NOTA: Nunca se deben exponer las claves de INESPAY en sitios públicos o en lenguajes de lado cliente, ya que supone un riesgo de seguridad.

Entornos

Con el objetivo de facilitar el desarrollo, se facilita un entorno de SANDBOX idéntico al REAL que permitirá al cliente/integrador confirmar la correcta integración del servicio. Las claves del entorno de SANDBOX se proporcionan automáticamente en el Dashboard INESPAY. Sin embargo, para acceder a las claves del entorno REAL es necesario ponerse en contacto con el equipo de Soporte de INESPAY, solicitando el pase a Producción: soporte@inespay.com. Al tratarse de 2 entornos idénticos, para pasar del entorno de SANDBOX al REAL (o viceversa), simplemente se deben cambiar las credenciales API-KEY y API-TOKEN del entorno que se desee. Características:

En caso de que la entidad financiera solicite algún campo adicional en el proceso de Login, utilice el valor user1. Para finalizar el pago, la entidad financiera le solicitará una clave adicional. Utilice cualquier combinación de caraceteres numéricos o alfanuméricos. El resultado OK se muestra con una página que le indicará “Transacción realizada correctamente”.

Servicios

Bancos

Este servicio permite consultar el listado de bancos disponibles en la plataforma Inespay.

Petición

Entorno Tipo Url
SANDBOX (Pruebas) GET https://apiflow.inespay.com/san/banks
REAL (Producción) GET https://apiflow.inespay.com/pro/banks
Parámetro Descripción
X-Api-Key API-KEY proporcionada por INESPAY
Authorization API-TOKEN proporcionado por INESPAY
Content-Type application/json

Respuesta

Parámetro Tipo Descripción
total Integer Número de elementos devueltos en data
data Array (Bank) Array de bancos
status String Código de éxito (200) o error
description String Descripción del código status

Bank

Parámetro Tipo Descripción
bankId String Identificador único del banco asignado por INESPAY
name String Nombre de la entidad
bankCodes Array (String) Array que contiene los códigos que identifican las cuentas bancarias de la entidad
country String País
enabled Integer Indica si el banco se encuentra activado (1) / desactivado(0) en la pasarela de INESPAY
enabledPeriodicPayment Integer Indica si el banco permite el uso de pagos periódicos (1)
frequencyPeriodicPayment Array(String) Parámetros admitidos para el parámetro frequency en caso de que el banco admita pagos periódicos
bankGroupId Integer Identificador del grupo en caso de que el banco pertenezca a un grupo bancario
bankGroupName String Nombre del grupo bancario al que pertenece el banco

Es posible realizar consultas filtradas sobre el listado de bancos, a continuación se describen los filtros disponibles:

Bancos activos por país

Consulta de los bancos activos por país.

Entorno Tipo Url
SANDBOX (Pruebas) GET https://apiflow.inespay.com/san/banks?enabled=1&country=ES
REAL (Producción) GET https://apiflow.inespay.com/pro/banks?enabled=1&country=ES

Bancos con pagos periódicos activo por país

Consulta de los bancos que tienen habilitado el servicio pagos períodicos por país.

Entorno Tipo Url
SANDBOX (Pruebas) GET https://apiflow.inespay.com/san/banks?enabledPeriodicPayment=1&country=ES
REAL (Producción) GET https://apiflow.inespay.com/pro/banks?enabledPeriodicPayment=1&country=ES

Pagos simples

Este servicio permite generar órdenes de pago únicas que incorporarán los datos necesarios para iniciar una transferencia ordinaria: Nombre del beneficiario, IBAN de destino, Importe y Concepto. Este servicio puede ser integrado como un botón de pago en cualquier tipo plataforma de acceso a compradores/pagadores o como un servicio de generación de URLs para adjuntar a facturas o emails. En todos los casos el comprador/pagador debería acceder a la pasarela de pago INESPAY para seleccionar su entidad financiera y completar el pago.

Orientada a las siguientes plataformas/sistemas:

Petición

Entorno Tipo Url
SANDBOX (Pruebas) POST https://apiflow.inespay.com/san/url/signer
REAL (Producción) POST https://apiflow.inespay.com/pro/url/signer
Parámetro Descripción
X-Api-Key API-KEY proporcionada por INESPAY
Authorization API-TOKEN proporcionado por INESPAY
Content-Type application/json

Body

Parámetro Requerido Tipo Descripción
subject String Concepto que aparecerá en el detalle del pago y en el extracto bancario
amount Number Importe del pago mutiplicado por 100, sin decimales. Por ejemplo: 355,98 Euros = 35598
reference String Identificador interno del pago del cliente/integrador, con el que puede identificar una orden de pago
customRecipient No String Campo informativo personalizable que permite incorporar los datos de un beneficiario. Este campo se utiliza por plataformas de facturación o similares que necesitan informar un destinatario diferente en cada pago. Dentro de este parámetro se pueden informar, por ejemplo, los siguientes datos del beneficiario del pago: nombre comercial; razón social; dirección … Se utiliza el caracter “;” para indicar saltos de línea. Una vez completado el pago, INESPAY devolverá esta información al cliente/integrador vía urlNotif
holderDestiny No String Nombre completo del titular de la cuenta destino (beneficiario)
accountDestiny No String Número de cuenta del beneficiario de la transferencia (formato IBAN). Cualquier IBAN informado en este parámetro debe estar previamente validado en el Dashboard INESPAY. En caso contrario, se producirá un error al realizar la llamada
expireMinutes No Number Tiempo de validez del pago generado. En caso de no informarse, la validez del pago será de 30 minutos. El máximo tiempo posible será de 259200 minutos (180 días)
customData No String Campo personalizable que puede ser utilizado para persistir cualquier tipo de dato que se requiera. Si se utiliza el formato JSON serializado como tipo String, todos los campos son procesados y visibles desde el Dashboard INESPAY
urlOk No String URL de retorno (URL Redirect) donde vuelve el comprador/pagador cuando el pago se ha realizado con éxito. Este dato es esencial cuando el comprador/pagador proviene de una tienda online o cualquier otro tipo de plataforma o ERP y debe volver al mismo entorno del que procede, donde se le muestra el estado de su pedido/compra/factura
urlError No String URL de retorno (URL Redirect) donde se redirige al comprador/pagador cuando el pago no se ha podido completar. Es recomendable facilitar la misma URL de retorno que la urlOk, pero en este caso el pago no se habrá completado con éxito, por lo que el comprador/pagador puede reintentarlo nuevamente o seleccionar otro método de pago
urlNotif No String URL donde se notifica el resultado de la transacción, sin repercusión para el comprador/pagador. Debe tenerse en cuenta que, tanto para el entorno de SANDBOX como para el REAL se debe informar una urlNotif de un entorno diferente al Local. En caso contrario, la notificación no se podrá realizar y se generará un error
partnerId No String Identificador único de partner facilitado por INESPAY. Sólo disponible para integradores específicos que hayan establecido previamente esta relación con INESPAY
bankIdSelected No String Identificador del banco que aparecerá preseleccionado en la pasarela INESPAY, dicho identificador se puede obtener consultando el servicio Bancos que permite obtener el listado de bancos disponibles en INESPAY.

A continuación mostramos un ejemplo de uso del campo customData en formato JSON serialiazado como String

customData = {“name”:“Bruce Wayne”, “numDoc”:“11111112L”}

Respuesta

Parámetro Tipo Descripción
url String URL firmada de acceso a la pasarela de pagos INESPAY
status String Código de éxito (200) o error
description String Descripción del código status

Pagos periódicos

Este servicio permite generar órdenes de pago que se repetirán durante un periodo de tiempo concreto. Este servicio es ideal para la venta de productos/servicios en forma de suscripción o como pago aplazado, lo cual posibilita al comprador/pagador validar un único pago y dejar la orden firmada para futuros pagos. El funcionamiento de este servicio puede ser integrado como un botón de pago en un ERP o plataforma online o como un servicio de recepción de URLs para adjuntar a facturas o emails. En todos los casos el comprador/pagador accederá directamente a la interfaz de su entidad financiera para que autorice la operación periódica.

Orientado a las siguientes plataformas/sistemas:

Petición

Entorno Tipo Url
SANDBOX (Pruebas) POST https://apiflow.inespay.com/san/url/periodic-payment-signer
REAL (Producción) POST https://apiflow.inespay.com/pro/url/periodic-payment-signer
Parámetro Descripción
X-Api-Key API-KEY proporcionada por INESPAY
Authorization API-TOKEN proporcionado por INESPAY
Content-Type application/json

Body

Parámetro Requerido Tipo Descripción
subject String Concepto que aparecerá en el detalle del pago
amount Number Importe del pago mutiplicado por 100, sin decimales. Por ejemplo: 355,98 Euros = 35598
reference String Identificador interno del pago del cliente/integrador, con el que puede identificar una orden de pago
frequency String Periodicidad de ejecución del pago periódico, es necesario consultar el parámetro frequencyPeriodicPayment del servicio Bancos para obtener los posibles valores que admite cada banco.
debtorAccount String IBAN del comprador/pagador que va a aceptar el cargo recurrente del pago
startDate String Fecha a partir de la cual se inician los pagos periódicos (YYYY-MM-DD). El día informado en este parámetro se considerará como “día de ejecución”. Por tanto, si se informa como fecha de inicio de pago 2021-01-18 significará que el primer pago se llevará a cabo el 18 de enero de 2021 y a partir de ahí se repetirá con la periodicidad informada en el campo frequency. En el caso de que la frecuencia informada fuera Monthly, el siguiente pago se ejecutaría el 18 de febrero de 2021
endDate No String Fecha final de los pagos periódicos (YYYY-MM-DD). Si no viene informado este parámetro se considerará un pago indefinido en el tiempo
urlOk No String URL de retorno (URL Redirect) donde vuelve el comprador/pagador cuando el pago se ha realizado con éxito. Este dato es esencial cuando el comprador/pagador proviene de una tienda online o cualquier otro tipo de plataforma o ERP y debe volver al mismo entorno del que procede, donde se le muestra el estado de su pedido/compra/factura
urlError No String URL de retorno (URL Redirect) donde se redirige al comprador/pagador cuando el pago no se ha podido completar. Es recomendable facilitar la misma URL de retorno que la urlOk, pero en este caso el pago no se habrá completado con éxito, por lo que el comprador/pagador puede reintentarlo nuevamente o seleccionar otro método de pago
urlNotif No String URL donde se notifica el resultado de la transacción, sin repercusión para el comprador/pagador. Debe tenerse en cuenta que, tanto para el entorno de SANDBOX como para el REAL se debe informar una urlNotif de un entorno diferente al Local. En caso contrario, la notificación no se podrá realizar y se generará un error
customRecipient No String Campo informativo personalizable que permite incorporar los datos de un beneficiario. Este campo se utiliza por plataformas de facturación o similares que necesitan informar un destinatario diferente en cada pago. Dentro de este parámetro se pueden informar, por ejemplo, los siguientes datos del beneficiario del pago: nombre comercial; razón social; dirección … Se utiliza el caracter “;” para indicar saltos de línea. Una vez completado el pago, INESPAY devolverá esta información al cliente/integrador vía urlNotif
holderDestiny No String Nombre completo del titular de la cuenta destino (beneficiario)
accountDestiny No String Número de cuenta del beneficiario de la transferencia (IBAN). Cualquier IBAN informado en este parámetro debe estar previamente validado en el Dashboard INESPAY. En caso contrario, se producirá un error al realizar la llamada
expireMinutes No Number Tiempo de validez de la URL generada. En caso de no informarse, la validez de la URL será de 30 minutos. El máximo tiempo posible será de 259200 minutos (180 días)
customData No String Campo personalizable que puede ser utilizado para persistir cualquier tipo de dato que se requiera. Si se utiliza el formato JSON serializado como tipo String, todos los campos son procesados y visibles desde el Dashboard INESPAY.
partnerId No String Identificador único de partner facilitado por INESPAY. Sólo disponible para integradores específicos que hayan establecido previamente esta relación con INESPAY

Respuesta

Parámetro Tipo Descripción
url String URL firmada de acceso a la pasarela de de pagos
status String Código de éxito (200) o error
description String Descripción del código status

Para iniciar un pago periódico en el entorno de Sandbox, se debe realizar la llamada informando en el parámetro debtorAccount una de las siguientes cuentas origen de prueba:

Consulta pagos generados

Este servicio permite obtener la información detallada de los pagos previamente generados. Su integración es opcional.

Petición

Entorno Tipo Url
SANDBOX (Pruebas) POST https://apiflow.inespay.com/san/info/debts
REAL (Producción) POST https://apiflow.inespay.com/pro/info/debts
Parámetro Descripción
X-Api-Key API-KEY proporcionada por INESPAY
Authorization API-TOKEN proporcionada por INESPAY
Content-Type application/json

Body

Parámetro Requerido Tipo Descripción
dateFrom String Fecha en formato milisegundos
dateTo No Number Fecha en formato milisegundos. Si no se específica la búsqueda se realiza hasta la fecha actual
pageRequest String Número de página solicitada. La primera página es siempre la número 1
pageSize No String Número máximo de elementos devueltos por página. Si no se especifica el tamaño de página por defecto, es de 50 elementos.
orderAsc No Boolean Tipo de ordenación por fecha de creación, true=ASC o false=DESC

Respuesta

Parámetro Tipo Descripción
itemsReturned Number Número de elementos (Debts) devueltos en la página actual
currentPage Number Número de página actual
totalItems Number Número total de elementos (Debts), es la suma de todos los elementos de todas las páginas
totalPages Number Número total de páginas existentes
listDebts Array (Debt) Array de elementos (Debts)
status String Código de éxito (200) o error
description String Descripción del código status

Debt

Parámetro Tipo Descripción
debtLongId String Identificador único de la deuda
createAt Number Fecha de creación en formato milisegundos
updateAt Number Fecha de actualización en formato milisegundos
expireAt Number Fecha de caducidad en formato milisegundos
enabled Boolean Indica si la deuda se encuentra activa
partialsEnabled Boolean Indica si se permiten pagos parciales, sólo disponible para determinados tipos de clientes.
amount Number Importe de la deuda mutiplicado por 100 sin decimales
subject String Concepto
customRecipient String Campo informativo personalizable que permite incorporar los datos del beneficiario del pago.
customReference String Identificador interno del pago
holderDestiny String Nombre del titular de la cuenta destino (beneficiario)
accountDestiny String Número de cuenta destino de la transferencia (formato IBAN)
customData String Campo personalizable que puede ser utilizado para persistir cualquier tipo de dato que se requiera.
urlLong String URL firmada y segura de INESPAY
listUrlShort Array (UrlShort) Listado de URLs cortas, que redirigen de forma automática la URL larga (urlLong)
listTransactions Array (Transaction) Listado de transacciones asociadas a la deuda.

UrlShort

Parámetro Tipo Descripción
urlShortName String Identificador, necesario para construir URL corta completa = https://secure.inespay.com/ENV/?s=URL_SHORT_NAME",
clicks Number Número de clicks realizados en la URL corta
createAt Number Fecha de creación en formato milisegundos
updateAt Number Fecha de actualización en formato milisegundos

Transaction

Parámetro Tipo Descripción
transactionLongId String Identificador único de la transacción asociada a la deuda
typeTransaction Number Tipo de transacción: 1=Transferencia bancaria por Inespay, 2=TPV externo
amount Number Importe de la transacción
holderOrigin String Titular de la transacción sólo disponible para typeTransaction=1
accountOrigin String Cuenta origen de la transacción sólo disponible para typeTransaction=1
reference String Referencia de la transacción
subject String Concepto banca Online sólo disponible para typeTransaction=1
codStatus String Código del estado de la transacción. 200=Éxito, resto de códigos Error
descStatus String Descripción del código de la transacción
createAt Number Fecha de creación en formato milisegundos
updateAt Number Fecha de actualización en formato milisegundos

Activar/Desactivar URLs

Este servicio permite desactivar/activar pagos previamente generados. Su integración es opcional.

Petición

Entorno Tipo Url
SANDBOX (Pruebas) POST https://apiflow.inespay.com/san/update/enable-disable-url
REAL (Producción) POST https://apiflow.inespay.com/pro/update/enable-disable-url
Parámetro Descripción
X-Api-Key API-KEY proporcionada por INESPAY
Authorization API-TOKEN proporcionada por INESPAY
Content-Type application/json

Body

Parámetro Requerido Tipo Descripción
idInespay String Identificador de la URL de INESPAY devuelto por el servicio signer
enable Boolean true = URL activada, false = URL desactivada

Respuesta

Parámetro Tipo Descripción
status String Código de éxito (200) o error
description String Descripción del código status

Resultado transacción

Todas las transacciones de pago, ya sean de éxito o de error, cuenta con dos posibilidades para informar a la plataforma que realiza la integración:

En ambos casos la petición que se realiza a las URLs informadas es de tipo POST HTTP, con los siguientes parámetros descritos a continuación:

Parámetro Tipo Descripción
dataReturn String (JSON) Contiene los parámetros del pago:
    status String Código de éxito (200) o código de error
    description String Descripción del código status
    transactionId String Identificador del pago INESPAY
    amount Number Importe del pago mutiplicado por 100 sin decimales
    reference String Identificador interno del pago (personalizable por la plataforma)
    dateInitPayment number Timestamp en ms zona horaria UTC
    accountDestiny String IBAN de la cuenta destino donde se ha transferido el dinero del pago
signatureDataReturn String Firma de dataReturn calculada con el algoritmo HmacSHA256, utilizando como clave la APIKEY proporcionada por INESPAY y codificada en base64.

Verificación respuesta (Firma)

Siempre debemos calcular la firma de los datos devueltos en dataReturn y compararla con la firma devuelta por INESPAY en signatureDataReturn. De esta forma se asegura que la respuesta procede de INESPAY. A continuación detallamos el proceso para realizar el cálculo de la firma:

  1. Aplicamos el algoritmo HmacSHA256 directamente sobre dataReturn que se encuentra codificado en Base64, utilizando como clave la API-KEY proporcionada por INESPAY. De esta forma obtenemos el hash de dataReturn
  2. Convertimos el hash obtenido en una cadena de texto hexadecimal en minúsculas.
  3. Codificamos el resultado del punto anterior en Base64 y obtenemos la firma calculada.
  4. Comparamos la firma calculada con el parámetro signatureDataReturn devuelto en la respuesta del resultado del pago:
    • Si firma calculada == signatureDataReturn, aseguramos que la respuesta procede de INESPAY (OK).
    • Si firma calculada != signatureDataReturn, los datos han sido alterados por un tercero y no son válidos (KO).

Códigos de respuesta

Listado de códigos de estado y error devuelto por la API INESPAY.

Código Descripción Información
200 OK_DEFAULT Éxito petición API (OK)
E300 ERROR_DEFAULT Error genérico (KO)
E301 INVALID_PARAMS Error parámetros incorrectos

Librerías API (SDK)

Con el objetivo de facilitar la integración de la API INESPAY PAYFLOW, se proporciona una librería que facilita y simplifica la integración de la misma, de forma que solo es necesario copiar y pegar unas sencillas líneas de código.

PHP

Descargar SDK PHP API PAYFLOW v1.0.5

Pago simple, ejemplo 1

Pago simple, ejemplo 1
----------------------------------
<?php
require_once('payflow_sdk_php_vXXXX/InespayApiPublic.php');

$environmentApiInespay = InespayApiPublic::ENV_SAN; //Sandbox pagos ficticios
//$environmentApiInespay = InespayApiPublic::ENV_PRO; //Producción pagos reales
$apiKeyInespay = 'APIKEY API INESPAY';
$tokenInespay = 'TOKEN API INESPAY';

$apiInespay = new InespayApiPublic();
$apiInespay->setEnvironmentInespay($environmentApiInespay);
$apiInespay->setApiKeyInespay($apiKeyInespay);
$apiInespay->setTokenInespay($tokenInespay);
$apiInespay->setTypeClient('1');

//Campos a rellenar dinámicamente
$apiInespay->setSubject('Prueba INESPAY');   //Concepto del pago
$apiInespay->setAmount(1.10);                //Importe 2 decimales separados por .
$apiInespay->setReference('ID_2020_AX');     //Identificador interno del pago           
$apiInespay->setUrlOk('https://www.example.com/ok.php'); //Url retorno éxito
$apiInespay->setUrlError('https://www.example.com/error.php'); //Url retorno error
$apiInespay->setUrlNotif('https://www.example.com/notif.php'); //Url notificación

$response = $apiInespay->createUrlSigned(); //Llamada síncrona API Inespay

if ( $response->getStatusCode() == InespayApiPublic::STATUS_CODE_SUCCESS){
    //Éxito generación url de pago firmada
echo $response->getUrlSigned();
}else{
    //Error generación url
}
?>

Permite generar pagos en tiempo real con una cuenta bancaria de destino fija asociada al cliente de la API, informada y validada en el panel de control de Inespay. El enlace de pago emitido tiene una validez de 30 minutos desde que es generado.

Pago simple, ejemplo 2:

Pago simple, ejemplo 2
-------------------------------
<?php
require_once('payflow_sdk_php_vXXXX/InespayApiPublic.php');

$environmentApiInespay = InespayApiPublic::ENV_SAN; //Sandbox pagos ficticios
//$environmentApiInespay = InespayApiPublic::ENV_PRO; //Producción pagos reales
$apiKeyInespay = 'APIKEY API INESPAY';
$tokenInespay = 'TOKEN API INESPAY';

$apiInespay = new InespayApiPublic();
$apiInespay->setEnvironmentInespay($environmentApiInespay);
$apiInespay->setApiKeyInespay($apiKeyInespay);
$apiInespay->setTokenInespay($tokenInespay);
$apiInespay->setTypeClient('2');

//Campos a rellenar dinámicamente
$apiInespay->setSubject('Prueba INESPAY');   //Concepto del pago
$apiInespay->setAmount(1.10);                //Importe 2 decimales separados por .
$apiInespay->setReference('ID_2020_AX');     //Identificador interno del pago           
$apiInespay->setUrlOk('https://www.example.com/ok.php'); //Url retorno éxito
$apiInespay->setUrlError('https://www.example.com/error.php'); //Url retorno error
$apiInespay->setUrlNotif('https://www.example.com/notif.php'); //Url notificación
$apiInespay->setCustomRecipient('Nombre comercial');
$apiInespay->setHolderDestiny('TITULAR CUENTA');
$apiInespay->setAccountDestiny('ES9121000418450200051332');
$apiInespay->setExpireMinutes('60');    //Caducidad 1 hora

$response = $apiInespay->createUrlSigned(); //Llamada síncrona API INESPAY

if ( $response->getStatusCode() == InespayApiPublic::STATUS_CODE_SUCCESS){
    //Éxito generación URL de pago firmada
echo $response->getUrlSigned();
}else{
    //Error generación URL
}
?>

Permite generar URLs de pago simple en tiempo real con una cuenta bancaria destino personalizable en cada petición. Además, permite establecer el tiempo de validez del pago hasta un máximo de 180 días.

URL retorno segura y autentificada mediante firma

Verificación de la firma de los datos enviados por HTTP POST para asegurar que la respuesta procede de INESPAY. Esta verificación se debe realizar siempre por el integrador de la API en su lado de servidor.

URL retorno segura y autentificada
--------------------------------
<?php
require_once('InespayApiPublic_vXXXX/InespayApiPublic.php');

$apiKeyInespay = 'APIKEY API INESPAY';
$apiInespay = new InespayApiPublic();
$apiInespay->setApiKeyInespay($apiKeyInespay);

//Params received in POST    
if (!empty( $_POST )) {

       $apiInespay->setDataReturn($_POST['dataReturn']);
       $apiInespay->setSignatureDataReturn($_POST['signatureDataReturn']);

        //Firma OK, la respuesta ha sido enviada por INESPAY
        if ($apiInespay->isDataReturnValid()){
          echo "<p>FIRMA OK, realizar tareas en el Cliente Final</p>";
            echo "<p>status=".$apiInespay->getStatusFromDataReturn()."</p>";
                echo "<p>description=".$apiInespay->getDescriptionFromDataReturn()."</p>";
                echo "<p>amount=".$apiInespay->getAmountFromDataReturn()."</p>";
          echo "<p>reference=".$apiInespay->getReferenceFromDataReturn()."</p>";
                echo "<p>transactionId=".$apiInespay->getTransactionIdFromDataReturn()."</p>";

        } else {
            echo "<p>FIRMA KO, firma inválida revise los parámetros</p>";
        }
    }
?>