API Transferencia Bancaria PSD2
Introducción
La API Transferencia Bancaria PSD2 está basada en arquitectura de desarrollo web REST y, al ser independiente del tipo de sintaxis o lenguaje utilizado, puede ser integrada en cualquier plataforma online.
Esta API proporciona al desarrollador un conjunto de definiciones técnicas y procesos para integrar el servicio de pago Transferencia Bancaria PSD2. Las peticiones API de inicio de pagos proporcionan al Cliente-Integrador URLs o enlaces cifrados que le permitirá utilizarlos según el caso de uso:
Botón de pago para plataformas online basadas en web o app que requieren integrar métodos de pago alternativos a las tarjetas para el pago de carritos de compra, pago de pedidos/facturas en plataformas online de clientes, etc.
Enlaces de requerimiento de pagos para adjuntar a documentos físicos o digitales y enviar posteriormente a clientes o deudores por cualquier canal (Facturas, emails, SMS, etc.).
La pulsación sobre el enlace (ya sea en formato botón de pago o como enlace de pago) redireccionan al Cliente-Pagador a la aplicación web Transferencia Bancaria PSD2, en la que le es mostrado un selector de entidades financieras. Una vez seleccionada la entidad desde la que desea pagar, el Cliente-Pagador es redirigido al portal bancario específico creado exclusivamente por su entidad financiera para autorizar el pago en 3 simples pasos:
- Identificación (login) con las mismas claves de su banca online
- Selección de cuenta corriente
- Autorización del pago a través del procedimiento habitual establecido por su entidad financiera
Cuando la operación ha sido finalizada con éxito, el servicio notificará al Cliente-Integrador, vía API en tiempo real, el resultado junto a los datos asociados al pago. El Cliente-Pagador será redirigido a una página de éxito de la aplicación Transferencia Bancaria PSD2 o del propio Cliente-Integrador.
El servicio Transferencia Bancaria PSD2 está basado en el servicio regulado de Iniciación de pagos (Real Decreto Ley 19/2018, de 23 de noviembre 2018 - PSD2) y es prestado directamente por la Entidad de Pago INESPAY FINANCIAL TECHNOLOGIES E.P., autorizada por Banco de España con el número de entidad 6902.
NOTA: Debido a las restricciones de seguridad impuestas por las entidades financieras, este servicio no puede integrarse como iframe en otras aplicaciones web o App.

Seguridad
La API Transferencia Bancaria PSD2 requiere un proceso de autenticación mediante claves API-KEY y API-TOKEN. Estas claves deben ser enviadas en la cabecera (Header) de cada llamada API. Para obtenerlas, el Cliente-Integrador debe registrarse previamente en el Dashboard INESPAY mediante una dirección de email y una contraseña: Acceder al Registro
Se utiliza el protocolo seguro HTTPS para el cifrado e intercambio de datos y el formato JSON para todas las peticiones y respuestas API.
Entornos
Con el objetivo de facilitar la integración, se ha habilitado un entorno SANDBOX que simula las acciones del entorno de PRODUCCIÓN, lo cual permitirá al Cliente-Integrador confirmar el correcto funcionamiento del servicio antes de ser expuesto al Cliente-Pagador.
Para realizar peticiones a uno u otro entorno (SANDBOX o PRODUCCIÓN), simplemente se deben utilizar las claves API-KEY y API-TOKEN y llamar a la URL base correspondiente a cada entorno. Las claves para realizar peticiones API al entorno SANDBOX se proporcionan automáticamente en el Dashboard INESPAY (Acceder al Registro sección Configuración/Claves API). Sin embargo, para obtener las claves API del entorno de PRODUCCIÓN es necesario formalizar el contrato de prestación del servicio. Para ello, puede ponerse en contacto con su gestor personal o enviar un email a la dirección sales@inespay.com.
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | POST | https://apiflow.inespay.com/san/url/signer |
| PRODUCCIÓN | POST | https://apiflow.inespay.com/pro/url/signer |
SANDBOX : Las peticiones a este entorno permiten iniciar pagos ficticios para comprobar la correcta integración del servicio Transferencia Bancaria PSD2. Debe realizar una petición API de inicio de pago a la URL de SANDBOX utilizando sus claves API. Esta acción le abrirá la aplicación web Transferencia Bancaria PSD2, en la que se mostrará un selector con una pequeña muestra de entidades financieras.
Para comprobar el flujo de pago que experimentará un Cliente-Pagador, puede seleccionar cualquiera de los bancos comerciales que aparecen en el selector. Sin embargo, para realizar pruebas de integración controladas recomendamos utilizar el banco SIMULADOR, que le permitirá simular distintas acciones informando un valor diferente en el campo Usuario:
- Pago OK: Usuario: user1 // Contraseña: 1234
- Pago KO: Usuario: user2 // Contraseña: 1234
- Pago pendiente de más firmas (firma mancomunada): Usuario: user3 // Contraseña: 1234
Por favor, complete diferentes pagos y experimente las respuestas que obtiene. Cuando finalice un pago con éxito asegúrese de visualizar la página de confirmación con el texto Orden de pago completada.
Para una adecuada integración, es recomendable comprobar las siguientes acciones:
a) Redirección del Cliente-Pagador a la URL de éxito de la plataforma del Cliente-Integrador. Para comprobar esta acción se requiere informar el parámetro successLinkRedirect en la llamada API de inicio de pago y finalizar un pago con éxito.
b) Redirección a la URL de KO de la plataforma del Cliente-Integrador. Para comprobar esta acción se requiere informar el parámetro urlError en la llamada API de inicio de pago y pulsar el botón SALIR que aparecerá en un pago KO.
c) Notificación electrónica de un pago a la plataforma del Cliente-Integrador. Para comprobar esta acción se requiere informar el parámetro notifUrl y completar un pago con éxito. Por favor, consulte la sección Notificación de pagos (Callback).
PRODUCCIÓN : En el entorno PRODUCCIÓN todos los pagos realizados serán reales. Previo a la exposición del servicio de pago al Cliente-Pagador, se recomienda al Cliente-Integrador realizar un pago real por sí mismo, con el fin de comprobar que la integración ha sido llevada a cabo correctamente. Para ello, el Cliente-Integrador debe iniciar un pago real, acceder a la aplicación web Transferencia Bancaria PSD2 y finalizarlo con éxito. Asegúrese de recibir correctamente la notificación de pago (Callback) así como de comprobar que es redirigido al parámetro successLinkRedirect, en el caso de haberse informado en la petición API.
Soporte Técnico
Para cualquier duda relacionada con asuntos técnicos o con la integración del servicio, INESPAY pone a disposición del Cliente-Integrador la dirección de email support@inespay.com.
Iniciación de Pagos
El servicio de iniciación de pagos Transferencia Bancaria PSD2 dispone de dos modalidades de pago:
- Pago simple (unitario) (Modalidad estándar) Para pagos puntuales o específicos de compras o facturas. Siempre requiere la interacción del Cliente-Pagador para autorizar cada pago.
- Pago periódico o recurrente Para pagos por suscripción o compras fraccionadas. El Cliente-Pagador interactúa con el servicio Transferencia Bancaria PSD2 una sola vez para autorizar el alta de una orden de pago con periodicidad, importe y concepto preestablecidos, no modificables a posteriori.
Pagos Simples
El servicio de iniciación de pagos simples proporciona al Cliente-Integrador un enlace de pago que incorporará los datos necesarios para abrir la aplicación web Transferencia Bancaria PSD2, donde se mostrará al Cliente-Pagador un selector de bancos, junto a los detalles de la transacción y las Condiciones Generales del servicio. El listado de bancos accesibles al Cliente-Pagador puede consultarse en cualquier momento desde el Dashboard INESPAY (sección Configuración/Bancos).
Petición de inicio de pago simple
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | POST | https://apiflow.inespay.com/san/v2/payins/simple/init |
| PRODUCCIÓN | POST | https://apiflow.inespay.com/pro/v2/payins/simple/init |
Header
| 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 |
|---|---|---|---|
| description | Sí | String | Concepto de la transferencia bancaria que aparecerá en el extracto bancario tanto del Cliente-Pagador como del Cliente-Integrador. Tamaño máximo: 140 caracteres. Se recomienda utilizar un concepto específico que permita identificar inequívocamente la transacción para procesos de conciliación contable basados en extractos bancarios (Norma CSB43, etc.). Por favor, evite introducir en este campo cualquier información personal o sensible |
| amount | Sí | Number | Importe del pago mutiplicado por 100, sin decimales. Por ejemplo: 35598 = 355,98 Euros |
| reference | Sí | String | Identificador único de la orden de pago o del pedido informado por el Cliente-Integrador, gracias al cual se puede identificar una orden de pago en sus propios sistemas. Este valor permitirá al Cliente-Integrador matchear el pedido o la orden de pago que ha salido de su plataforma con la información que le devuelva INESPAY a través del parámetro notifUrl (ver Notificación de pagos). Tamaño máximo: 100 caracteres |
| successLinkRedirect | No | String | URL de retorno a la que se redirigirá al Cliente-Pagador cuando el pago se ha realizado con éxito. Este parámetro es esencial cuando el Cliente-Pagador proviene de una tienda o cualquier otro tipo de plataforma online. En caso de no informarse, INESPAY presentará al Cliente-Pagador una página de éxito, desde la que podrá descargar un justificante del pago |
| successLinkRedirectMethod | No | String | Método HTTP utilizado para redirigir al Cliente-Pagador a la successLinkRedirect. Valores posibles: GET o POST. En caso de no informarse, el valor será POST |
| abortLinkRedirect | No | String | URL de retorno a la que se redirigirá al Cliente-Pagador si decide abandonar el proceso de pago sin completarlo. En caso de no informarse, INESPAY presentará al Cliente-Pagador una página estática de Cancelación |
| abortLinkRedirectMethod | No | String | Método HTTP utilizado para redirigir al Cliente-Pagador a la abortLinkRedirect. Valores posibles: GET o POST. En caso de no informarse, el valor será POST |
| notifUrl | No | String | URL a la que se notifica la información de una orden de pago finalizada con éxito (ver Notificación de pagos). Debe tenerse en cuenta que, tanto para el entorno de SANDBOX como para el de PRODUCCIÓN se debe informar una notifUrl de un entorno diferente al Local. En caso contrario, el proceso de notificación no se podrá llevar a cabo, ya que la URL informada debe ser accesible por INESPAY. |
| notifUrlContentType | No | String | Formato de la notificación realizada por INESPAY a la URL informada en el parámetro notifUrl. Los valores posibles son : x-www-form-urlencoded o json. En caso de no informarse, el valor por defecto es x-www-form-urlencoded. |
| expiration | No | Number | Tiempo en minutos de la validez del enlace de pago. En caso de no informarse, la validez será de 30 minutos. El máximo tiempo posible será de 259200 minutos (180 días) |
| creditorAccount | No | String | IBAN de destino de la orden de pago. Sólo es necesario informar este parámetro en caso de que el Cliente-Integrador necesite destinar el importe de cada orden de pago a un IBAN concreto. En caso de que el Cliente-Integrador disponga de un solo IBAN o tenga activado el servicio de Balanceo de bancos (consultar a INESPAY), no es necesario informar este parámetro. Cualquier IBAN informado en este parámetro debe estar previamente validado en el proyecto, a través del Dashboard INESPAY (sección Configuración/Bancos). En caso de enviarse un IBAN no validado en el proyecto, la API devolverá un error. Para realizar peticiones de inicio de pago en modo SANDBOX, por favor, consulte los IBAN de prueba informados al final de esta sección. |
| customData | No | String | Campo personalizable que puede ser utilizado por el Cliente-Integrador para persistir cualquier tipo de dato que requiera recibir posteriormente a través del parámetro notifUrl (ver Notificación de pagos). Tamaño máximo: 4000 caracteres |
| customBeneficiary | No | String | Campo personalizable que permite mostrar al Cliente-Pagador un nombre diferente del proyecto en la aplicación web Transferencia Bancaria PSD2 (nombre comercial de la web, nombre de la plataforma online, etc...). En caso de no informarse este parámetro, el nombre que se mostrará en la aplicación web Transferencia Bancaria PSD2 al Cliente-Pagador será el nombre comercial del Cliente-Integrador |
Respuesta a la petición de inicio de pago simple
| Parámetro | Tipo | Descripción |
|---|---|---|
| simplePayinId | String | Identificador único de la orden de pago. |
| url | String | Enlace de pago que permitirá al Cliente-Pagador acceder a la aplicación web Transferencia Bancaria PSD2. |
| status | String | Código de éxito (200) o código de error. |
| statusDesc | String | Descripción del código status. |
- BBVA: ES2501822200160201933547 (Predeterminado)
- Arquia: ES5031831357110123456789
Notificación/Callback de un pago simple enviada a la url informada en notifUrl
| Parámetro | Tipo | Descripción |
|---|---|---|
| dataReturn | String (JSON) | Se encuentra codificado en Base64 y contiene los parámetros del pago: |
| simplePayinId | String | Identificador único del pago simple en los sistemas INESPAY |
| codStatus | String | Código de estado, valores posibles "OK" o "SETTLED" (El valor SETTLED solo está disponible para clientes con el servicio de Collecting) |
| description | String | Concepto del pago |
| amount | Number | Importe del pago mutiplicado por 100, sin decimales |
| reference | String | Identificador único de la orden de pago o del pedido asignado por el Cliente-Integrador |
| date | Number | Timestamp en milisegundos. Zona horaria UTC |
| creditorAccount | String | IBAN de destino al que se han transferido los fondos de la orden de pago. |
| debtorName | String | Titular del IBAN desde el que se ha ejecutado el pago (nombre del ordenante del pago). En caso de que la entidad bancaría no proporcione puntualmente dicha información este parámetro presentará el valor null. Dependiendo de la entidad financiera, el valor de este parámetro puede tener el formato: Nombre Apellido1 Apellido2 o Apellido1 Apellido2 Nombre |
| debtorAccount | String | IBAN del Cliente-Pagador desde el que se ha realizado el pago (número IBAN del ordenante del pago). En caso de que la entidad bancaría no proporcione puntualmente dicha información este parámetro presentará el valor null |
| customData | String | Datos devueltos por INESPAY al Cliente-Integrador que han sido previamente informados en la llamada API de inicio de pago |
| signatureDataReturn | String | Firma de dataReturn calculada con el algoritmo HmacSHA256, utilizando como clave la APIKEY proporcionada por INESPAY y codificada en base64 |
Consulta pago simple
Servicio que permite consultar el estado de un pago simple.
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | GET | https://apiflow.inespay.com/san/v2/payins/simple/{simplePayinId} |
| PRODUCCIÓN | GET | https://apiflow.inespay.com/pro/v2/payins/simple/{simplePayinId} |
Header
| Parámetro | Descripción |
|---|---|
| X-Api-Key | API-KEY proporcionada por INESPAY |
| Authorization | API-TOKEN proporcionado por INESPAY |
| Content-Type | application/json |
Parámetros url
| Parámetro | Requerido | Tipo | Descripción |
|---|---|---|---|
| simplePayinId | Sí | String | Identificador único de la orden de pago simple. |
Respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
| simplePayinId | String | Identificador único de la orden de pago simple. |
| amount | Number | importe de la orden de de pago multiplicado por 100, sin decimales. |
| description | String | Concepto de la orden de pago. |
| reference | String | Identificador interno de la orden de pago asignado inicialmente por el Cliente-Integrador. |
| enabled | Boolean | Indica si el enlace de pago se encuentra activo (puede utilizarse por el Cliente-Pagador) o inactivo (ya no puede utilizarse). Puede activar o desactivar enlaces de pago en cualquier momento. |
| creditorAccount | String | Número IBAN destino de la transferencia. |
| creditorName | String | Titular del IBAN de destino (beneficiario) |
| debtorName | String | Titular del IBAN de la cuenta origen del pago. |
| debtorAccount | String | Número de IBAN de la cuenta origen del pago. |
| customBeneficiary | String | Nombre del beneficiario del pago que se mostrará al Cliente-Pagador en la aplicación web Transferencia Bancaria PSD2. |
| customData | String | Campo personalizable informado por el Cliente-Integrador en la llamada API de inicio de pago. |
| urlLong | String | Enlace de pago |
| urlShort | String | Enlace de pago recortado |
| urlShortClicks | String | Número de pulsaciones (clics) realizados sobre sobre el enlace de pago (urlShort). |
| successLinkRedirect | String | URL de retorno a la que se redirigirá al Cliente-Pagador cuando el pago se ha realizado con éxito. |
| successLinkRedirectMethod | String | Método HTTP utilizado para redirigir al Cliente-Pagador a la successLinkRedirect. |
| abortLinkRedirect | String | URL de retorno a la que se redirigirá al Cliente-Pagador si decide abandonar el proceso de pago sin completarlo. |
| abortLinkRedirectMethod | String | Método HTTP utilizado para redirigir al Cliente-Pagador a la abortLinkRedirect. |
| codStatus | String | Código del estado de la orden de pago. |
| refunds | Array(Refund) | Devoluciones ejecutadas sobre la orden de pago. Solo disponible para clientes con el servicio de Collecting. |
| refundedAmount | Number | Suma total de la devoluciones multiplicado por 100, sin decimales. Solo disponible para clientes con el servicio de Collecting. |
| createdAt | Number | Fecha de creación de la orden de pago, en formato milisegundos. |
| updatedAt | Number | Fecha de actualización de la orden de pago, en formato milisegundos. |
| expiredAt | Number | Fecha de caducidad de la orden de pago, en formato milisegundos. |
| status | String | Código de éxito (200) o código de error |
| statusDesc | String | Descripción del código status |
Estructura Refund
| Propiedad | Tipo | Descripción |
|---|---|---|
| refundId | String | Identificador único de la devolución. |
| simplePayinId | String | Identificador único de la orden de pago. |
| amount | Number | importe de la devolución multiplicado por 100, sin decimales. |
| description | String | Concepto de la devolución. |
| collectingIBAN | String | IBAN origen emisor de la devolución. |
| payeeIBAN | String | IBAN de destino del importe ordenado en el payOut. |
| payeeName | String | Titular del IBAN de destino del importe ordenado en el devolución. |
| okNotifUrl | String | URL a la que se notifica la información de la devolución finalizada con éxito. |
| errorNotifUrl | String | URL a la que se notifica la información de una devolución que no ha podido ser procesada, con el fin de que el Cliente-Integrador pueda lanzar nuevamente el proceso de devolución. |
| codStatus | String | Código del estado de la devolución. |
Estados pagos simples (codStatus)
| Código | Descripción |
|---|---|
| OK | La ejecución de la orden de pago ha sido confirmada por la entidad financiera. |
| CREATED | La orden de pago ha sido generada vía API, pero el cliente no ha accedido a la pasarela para iniciar el proceso de pago. |
| OPENED | El cliente ha accedido a la pasarela, pero no ha seleccionado ninguna entidad para iniciar el proceso de pago. |
| BANK_SELECTED | El cliente ha seleccionado una entidad financiera y ha sido redirigido a la interfaz de su banco, pero no ha llegado a iniciar el proceso. |
| INITIATED | El cliente ha iniciado la orden de pago y se encuentra en trámite. |
| PENDING | El cliente ha iniciado la orden de pago pero se encuentra pendiente de autorización. |
| UNFINISHED (Generación de enlaces) | La orden de pago no ha sido finalizada por el cliente. |
| ABORTED (Generación de enlaces) | El cliente ha abandonado la pasarela sin completar la orden de pago. |
| REJECTED | La orden de pago ha sido rechazada por la entidad financiera del cliente. |
| CANCELLED | La orden de pago ha sido cancelada por el cliente en la interfaz de su entidad financiera. |
| PARTIALLY_ACCEPTED | La orden de pago ha sido autorizada por el cliente, pero existen autorizaciones pendientes de otros apoderados. |
| FAILED | El cliente inició la orden de pago, pero la entidad financiera no ha informado ningún estado válido del mismo. |
| SETTLED | El pago se ha realizado con éxito y los fondos han sido recibidos en la cuenta destino. Solo disponible para clientes con el servicio de Collecting. |
| PART_REFUNDED | Parte de la orden de pago original ha sido devuelta. Solo disponible para clientes con el servicio de Collecting. |
| REFUNDED | La totalidad de la orden de pago original ha sido devuelta. Solo disponible para clientes con el servicio de Collecting. |
Pagos Periódicos
El servicio de iniciación de pagos periódicos está basado en dos subservicios: Alta y Cancelación. Un pago periódico no puede modificarse por lo que, en caso de requerir la modificacion de algún dato, será necesario cancelar la orden periódica original y generar una nueva.
Alta de un Pago Periódico
Este servicio proporciona al Cliente-Integrador un enlace de pago que incorporará los datos necesarios para permitir al Cliente-Pagador iniciar una orden de pago periódico de un mismo importe y una frecuencia establecida (mensual, trimestral, etc.). El Cliente-Pagador accederá directamente al portal PSD2 de su entidad financiera para autorizar la orden.
ATENCIÓN: A diferencia del pago simple, el servicio de Alta de un Pago Periódico requiere informar el IBAN del Cliente-Pagador en cada llamada de inicio de pago (parámetro debtorAccount). En próximas fechas el flujo de pago del pago periódico será idéntico al del pago simple, permitiendo al Cliente-Pagador seleccionar el IBAN desde el que desea dar de alta la orden de pago periódico. Una vez se confirme este desarrollo por parte de las entidades financieras, no será necesario utilizar el parámetro debtorAccount.
Previo a la petición de inicio de pago, el Cliente-Integrador debe realizar una primera petición a la API Transferencia Bancaria PSD2 para obtener tanto el listado de bancos que ofrecen este servicio como las frecuencias admitidas por cada uno. Una vez obtenida esta información, el Cliente-Integrador puede presentar al Cliente-Pagador el listado de bancos o enviar directamente la llamada de inicio de pago informando los parámetros necesarios para dar de alta la orden.
Petición del listado de bancos
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | GET | https://apiflow.inespay.com/san/banks |
| PRODUCCIÓN | GET | https://apiflow.inespay.com/pro/banks |
Header
| Parámetro | Descripción |
|---|---|
| X-Api-Key | API-KEY proporcionada por INESPAY |
| Authorization | API-TOKEN proporcionado por INESPAY |
| Content-Type | application/json |
Respuesta a la petición del listado de bancos
| 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 |
Array (Bank)
| Parámetro | Tipo | Descripción |
|---|---|---|
| bankId | String | Identificador único de la entidad financiera asignado por INESPAY |
| name | String | Nombre de la entidad financiera |
| bankCodes | Array (String) | Array que contiene el/los código/s de la entidad financiera |
| country | String | País al que pertenece la entidad financiera |
| enabled | Integer | Indica si el banco se encuentra activado (valor = 1) o desactivado (valor = 0) en la aplicación web Transferencia Bancaria PSD2. En caso de que la entidad financiera se encuentre desactivada (0) significa que, por razones técnicas o puntuales, no se encuentra operativa en el momento de realizar la petición API |
| enabledPeriodicPayment | Integer | Indica si el banco dispone del servicio de pagos periódicos (valor = 1) o no (valor = 0) |
| frequencyPeriodicPayment | Array(String) | Frecuencias de pago admitidas (parámetro frequency) en caso de que el banco admita pagos periódicos |
| bankGroupId | Integer | Identificador del grupo en caso de que el banco se pueda agrupar en un nivel superior. En caso de presentar al Cliente-Pagador el listado de bancos se recomienda mostrar el nombre del Grupo y, una vez seleccionado, presentar un nuevo selector con las entidades financieras que lo conforman |
| bankGroupName | String | Nombre del grupo bancario, en caso de que el banco se pueda agrupar (P. Ej: Ruralvía) |
NOTA: La utilización del parámetro bankGroupId permite reducir considerablemente el listado de bancos para presentar al Cliente-Pagador en un primer selector. En lugar de mostrar el nombre de todas las entidades financieras que se reciben en la petición del listado de bancos, se recomienda agrupar aquellas que vengan informadas con el parámetro bankGroupId y mostrarlas agrupadas con el nombre del mismo (bankGroupName).
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 |
| PRODUCCIÓN | GET | https://apiflow.inespay.com/pro/banks?enabled=1&country=ES |
Bancos con la funcionalidad activa de pago periódico por país
Consulta de los bancos que tienen habilitado el servicio pagos periódicos por país:
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | GET | https://apiflow.inespay.com/san/banks?enabledPeriodicPayment=1&country=ES |
| PRODUCCIÓN | GET | https://apiflow.inespay.com/pro/banks?enabledPeriodicPayment=1&country=ES |
Petición de inicio de pago periódico
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | POST | https://apiflow.inespay.com/san/v2/payins/periodic/init |
| PRODUCCIÓN | POST | https://apiflow.inespay.com/pro/v2/payins/periodic/init |
Header
| 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 |
|---|---|---|---|
| description | Sí | String | Concepto de la transferencia bancaria que aparecerá en el extracto bancario tanto del Cliente-Pagador como del Cliente-Integrador. Tamaño máximo: 140 caracteres. Se recomienda utilizar un concepto específico que permita identificar inequívocamente la transacción para procesos de conciliación contable basados en extractos bancarios (Norma CSB43, etc.). Por favor, evite introducir en este campo cualquier información personal o sensible |
| amount | Sí | Number | Importe del pago mutiplicado por 100, sin decimales. Por ejemplo: 35598 = 355,98 Euros |
| reference | Sí | String | Identificador único de la orden de pago o del pedido informado por el Cliente-Integrador, gracias al cual se puede identificar una orden de pago en sus propios sistemas. Este valor permitirá al Cliente-Integrador matchear el pedido o la orden de pago que ha salido de su plataforma con la información que le devuelva INESPAY a través del parámetro notifUrl (ver Notificación de pagos). Tamaño máximo: 100 caracteres. |
| frequency | Sí | String | Periodicidad de ejecución del pago periódico. La frecuencia informada debe de estar admitida por el banco seleccionado por el Cliente-Pagador. |
| debtorAccount | Sí | String | IBAN del Cliente-Pagador que va a autorizar la orden periódica de pago (IBAN del ordenante). Para inicios de pago en SANDBOX, utilice los IBAN de prueba informados al final de esta sección. |
| startDate | Sí | String | Fecha a partir de la cual se inician los pagos periódicos en formato YYYY-MM-DD. La fecha informada en este parámetro debe ser siempre posterior a la fecha presente de la petición API. En caso de venir informado una frecuencia Monthly o superior, el día del mes informado en este parámetro se considerará como "día de ejecución". Ejemplo: El valor 2021-10-18 significará que el primer pago se llevará a cabo el 18 de octubre de 2021 y los siguientes pagos se llevarán a cabo los días 18 de los sucesivos periodos |
| endDate | No | String | Fecha final de la orden del pago periódico en formato YYYY-MM-DD. En caso de no informarse se considerará un pago periódico indefinido en el tiempo |
| successLinkRedirect | No | String | URL de retorno a la que se redirigirá al Cliente-Pagador cuando el pago se ha realizado con éxito. Este parámetro es esencial cuando el Cliente-Pagador proviene de una tienda o cualquier otro tipo de plataforma online. En caso de no informarse, INESPAY presentará al Cliente-Pagador una página de éxito, desde la que podrá descargar un justificante del pago |
| successLinkRedirectMethod | No | String | Método HTTP utilizado para redirigir al Cliente-Pagador a la successLinkRedirect. Valores posibles: GET o POST. En caso de no informarse, el valor será POST |
| abortLinkRedirect | No | String | URL de retorno a la que se redirigirá al Cliente-Pagador si decide abandonar el proceso de pago sin completarlo. En caso de no informarse, INESPAY presentará al Cliente-Pagador una página estática de Cancelación |
| abortLinkRedirectMethod | No | String | Método HTTP utilizado para redirigir al Cliente-Pagador a la abortLinkRedirect. Valores posibles: GET o POST. En caso de no informarse, el valor será POST |
| notifUrl | No | String | URL a la que se notifica la información de una orden de pago finalizada con éxito (ver Notificación de pagos). Debe tenerse en cuenta que, tanto para el entorno de SANDBOX como para el de PRODUCCIÓN se debe informar una notifUrl de un entorno diferente al Local. En caso contrario, el proceso de notificación no se podrá llevar a cabo, ya que la URL informada debe ser accesible por INESPAY |
| notifUrlContentType | No | String | Formato de la notificación realizada por INESPAY a la URL informada en el parámetro notifUrl. Los valores posibles son : x-www-form-urlencoded o json. En caso de no informarse, el valor por defecto es x-www-form-urlencoded. |
| expiration | No | Number | Tiempo de validez del enlace de pago. En caso de no informarse, la validez será de 30 minutos. El máximo tiempo posible será de 259200 minutos (180 días) |
| creditorAccount | No | String | IBAN de destino de la orden de pago. Sólo es necesario informar este parámetro en caso de que el Cliente-Integrador necesite destinar el importe de cada orden de pago a un IBAN concreto. En caso de que el Cliente-Integrador disponga de un solo IBAN o tenga activado el servicio de Balanceo de bancos (consultar a INESPAY), no es necesario informar este parámetro. Cualquier IBAN informado en este parámetro debe estar previamente validado en el proyecto, a través del Dashboard INESPAY (sección Configuración/Bancos). En caso de enviarse un IBAN no validado en el proyecto, la API devolverá un error. Para realizar peticiones de inicio de pago en modo SANDBOX, por favor, consulte los IBAN de prueba informados al final de esta sección |
| customData | No | String | Campo personalizable que puede ser utilizado por el Cliente-Integrador para persistir cualquier tipo de dato que requiera recibir posteriormente a través del parámetro notifUrl (ver Notificación de pagos). Tamaño máximo: 4000 caracteres. |
| customBeneficiary | No | String | Campo personalizable que permite mostrar al Cliente-Pagador un nombre diferente del proyecto en la aplicación web Transferencia Bancaria PSD2 (nombre comercial de la web, nombre de la plataforma online, etc...). En caso de no informarse este parámetro, el nombre que se mostrará en la aplicación web Transferencia Bancaria PSD2 al Cliente-Pagador será el nombre comercial del Cliente-Integrador |
Respuesta a la petición de inicio de pago periódico
| Parámetro | Tipo | Descripción |
|---|---|---|
| periodicPayinId | String | Identificador único de la orden de pago periódica |
| url | String | Enlace del pago periódico que accederá directamente al portal bancario, según el IBAN informado en el parámetro debtorAccount |
| status | String | Código de éxito (200) o error |
| statusDesc | String | Descripción del código status |
- BBVA: ES2501822200160201933547 (Predeterminado)
- Arquia: ES5031831357110123456789
Notificación/Callback de un pago periódico enviada a la url informada en notifUrl
| Parámetro | Tipo | Descripción |
|---|---|---|
| dataReturn | String (JSON) | Se encuentra codificado en Base64 y contiene los parámetros del pago: |
| periodicPayinId | String | Identificador único del pago periódico en los sistemas INESPAY |
| codStatus | String | Código de estado, valores posibles "OK" o "SETTLED" (El valor SETTLED solo está disponible para clientes con el servicio de Collecting) |
| description | String | Concepto del pago |
| amount | Number | Importe del pago mutiplicado por 100, sin decimales |
| reference | String | Identificador único de la orden de pago o del pedido asignado por el Cliente-Integrador |
| date | Number | Timestamp en milisegundos. Zona horaria UTC |
| creditorAccount | String | IBAN de destino al que se han transferido los fondos de la orden de pago. |
| debtorName | String | Titular del IBAN desde el que se ha ejecutado el pago (nombre del ordenante del pago). En caso de que la entidad bancaría no proporcione puntualmente dicha información este parámetro presentará el valor null. Dependiendo de la entidad financiera, el valor de este parámetro puede tener el formato: Nombre Apellido1 Apellido2 o Apellido1 Apellido2 Nombre |
| debtorAccount | String | IBAN del Cliente-Pagador desde el que se ha realizado el pago (número IBAN del ordenante del pago). En caso de que la entidad bancaría no proporcione puntualmente dicha información este parámetro presentará el valor null |
| customData | String | Datos devueltos por INESPAY al Cliente-Integrador que han sido previamente informados en la llamada API de inicio de pago |
| startDate | Number | Fecha a partir de la cual se inician los pagos periódicos, en formato milisegundos UTC. |
| endDate | Number | Fecha final de la orden del pago periódico, en formato milisegundos UTC. |
| frequency | String | Periodicidad de ejecución del pago periódico |
| signatureDataReturn | String | Firma de dataReturn calculada con el algoritmo HmacSHA256, utilizando como clave la APIKEY proporcionada por INESPAY y codificada en base64 |
Consulta pago periódico
Servicio que permite consultar el estado de un pago periódico.
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | GET | https://apiflow.inespay.com/san/v2/payins/periodic/{periodicPayinId} |
| PRODUCCIÓN | GET | https://apiflow.inespay.com/pro/v2/payins/periodic/{periodicPayinId} |
Header
| Parámetro | Descripción |
|---|---|
| X-Api-Key | API-KEY proporcionada por INESPAY |
| Authorization | API-TOKEN proporcionado por INESPAY |
| Content-Type | application/json |
Parámetros url
| Parámetro | Requerido | Tipo | Descripción |
|---|---|---|---|
| periodicPayinId | Sí | String | Identificador único de la orden de pago periódica. |
Respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
| periodicPayinId | String | Identificador único de la orden de pago periódica. |
| amount | Number | importe de la orden de de pago multiplicado por 100, sin decimales. |
| description | String | Concepto de la orden de pago. |
| reference | String | Identificador interno de la orden de pago asignado inicialmente por el Cliente-Integrador. |
| enabled | Boolean | Indica si el enlace de pago se encuentra activo (puede utilizarse por el Cliente-Pagador) o inactivo (ya no puede utilizarse). Puede activar o desactivar enlaces de pago en cualquier momento. |
| creditorAccount | String | Número IBAN destino de la transferencia. |
| creditorName | String | Titular del IBAN de destino (beneficiario) |
| debtorName | String | Titular del IBAN de la cuenta origen del pago. |
| debtorAccount | String | Número de IBAN de la cuenta origen del pago. |
| customData | String | Campo personalizable informado por el Cliente-Integrador en la llamada API de inicio de pago. |
| urlLong | String | Enlace de pago |
| urlShort | String | Enlace de pago recortado |
| urlShortClicks | String | Número de pulsaciones (clics) realizados sobre sobre el enlace de pago (urlShort). |
| successLinkRedirect | String | URL de retorno a la que se redirigirá al Cliente-Pagador cuando el pago se ha realizado con éxito. |
| successLinkRedirectMethod | String | Método HTTP utilizado para redirigir al Cliente-Pagador a la successLinkRedirect. |
| abortLinkRedirect | String | URL de retorno a la que se redirigirá al Cliente-Pagador si decide abandonar el proceso de pago sin completarlo. |
| abortLinkRedirectMethod | String | Método HTTP utilizado para redirigir al Cliente-Pagador a la abortLinkRedirect. |
| codStatus | String | Código del estado de la orden de pago periódica. |
| frequency | String | Frecuencia de ejecución del pago periódico, en caso de haberse solicitado el inicio de un pago periódico. |
| startDate | String | Fecha de inicio del pago, en caso de haberse solicitado el inicio de un pago periódico |
| endDate | String | Fecha final del pago, en caso de haberse solicitado el inicio de un pago periódico |
| createdAt | Number | Fecha de creación de la orden de pago, en formato milisegundos. |
| updatedAt | Number | Fecha de actualización de la orden de pago, en formato milisegundos. |
| expiredAt | Number | Fecha de caducidad de la orden de pago, en formato milisegundos. |
| status | String | Código de éxito (200) o código de error |
| statusDesc | String | Descripción del código status |
Estados pagos periódicos (codStatus)
| Código | Descripción |
|---|---|
| PENDING | Orden de pago no completada por el Cliente-Pagador. |
| PARTIALLY_ACCEPTED | Orden de pago pendiente de autorización por otro Cliente-Pagador (firma mancomunada). |
| OK | El pago periódico se ha ordenado con éxito. |
| CANCELLED | El pago periódico se ha cancelado con éxito. |
Cancelación de un pago periódico
Este servicio proporciona al Cliente-Integrador un enlace de pago que incorporará los datos necesarios para cancelar una orden periódica de pago previamente autorizada por el Cliente-Pagador. Al realizar esta llamada API, el Cliente-Pagador accederá directamente a su portal bancario para autorizar la cancelación de la orden periódica de pago. Debe tenerse en cuenta que un pago periódico no puede modificarse por lo que, en caso de requerir la modificacion de algún dato, es necesario cancelar la orden periódica original y generar una nueva.
Petición de cancelación de pago periódico
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | POST | https://apiflow.inespay.com/san/v2/payins/periodic/cancel |
| PRODUCCIÓN | POST | https://apiflow.inespay.com/pro/v2/payins/periodic/cancel |
Header
| 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 |
|---|---|---|---|
| periodicPayinId | Sí | String | Identificador único de la orden de pago periódico que se desea cancelar. |
| reference | Sí | String | Identificador interno del pago del Cliente-Integrador con el que puede identificar la orden de cancelación de pago. Tamaño máximo: 100 caracteres. |
| successLinkRedirect | No | String | URL de retorno a la que se redirigirá al Cliente-Pagador cuando la cancelación del pago se ha realizado con éxito. Este parámetro es esencial cuando el Cliente-Pagador proviene de una tienda o cualquier otro tipo de plataforma online. En caso de no informarse, INESPAY presentará al Cliente-Pagador una página de éxito, desde la que podrá descargar un justificante de la cancelación del pago. |
| successLinkRedirectMethod | No | String | Método HTTP utilizado para redirigir al Cliente-Pagador a la successLinkRedirect. Valores posibles: GET o POST. En caso de no informarse, el valor será POST. |
| abortLinkRedirect | No | String | URL de retorno a la que se redirigirá al Cliente-Pagador si decide abandonar el proceso de cancelación del pago periódico sin completarlo. En caso de no informarse, INESPAY presentará al Cliente-Pagador una página estática de Cancelación. |
| abortLinkRedirectMethod | No | String | Método HTTP utilizado para redirigir al Cliente-Pagador a la abortLinkRedirect. Valores posibles: GET o POST. En caso de no informarse, el valor será POST |
| notifUrl | No | String | URL a la que se notifica el éxito de la cancelación del pago periódico (ver Notificación de pagos). Debe tenerse en cuenta que, tanto para el entorno de SANDBOX como para el de PRODUCCIÓN se debe informar una notifUrl de un entorno diferente al Local. En caso contrario, el proceso de notificación no se podrá llevar a cabo |
| notifUrlContentType | No | String | Formato de la notificación realizada por INESPAY a la URL informada en el parámetro notifUrl. Los valores posibles son: x-www-form-urlencoded o json. En caso de no informarse, el valor por defecto es x-www-form-urlencoded. |
| expiration | No | Number | Tiempo en minutos de la validez del enlace de pago. En caso de no informarse, la validez del enlace 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 por el Cliente-Integrador para persistir cualquier tipo de dato que requiera recibir posteriormente a través del parámetro notifUrl (ver Notificación de pagos) (P. Ej: {"name":"Bruce Wayne", "numDoc":"11111112L"}). Tamaño máximo: 4000 caracteres. |
Respuesta a la petición de cancelación de pago periódico
| Parámetro | Tipo | Descripción |
|---|---|---|
| periodicCancelId | String | Identificador único de la orden de cancelación del pago periódico |
| url | String | Enlace de cancelación del pago periódico que accederá directamente al portal bancario |
| status | String | Código de éxito (200) o error |
| statusDesc | String | Descripción del código status |
Notificación de una cancelación de pago periódico OK enviada a la url informada en notifUrl
| Parámetro | Tipo | Descripción |
|---|---|---|
| dataReturn | String (JSON) | Se encuentra codificado en Base64 y contiene los parámetros del pago: |
| periodicCancelId | String | Identificador único de la cancelación del pago periódico en los sistemas INESPAY |
| periodicPayinId | String | Identificador único del pago periódico en los sistemas INESPAY |
| codStatus | String | Código de estado, valores posibles "OK" |
| description | String | Concepto del pago |
| amount | Number | Importe del pago mutiplicado por 100, sin decimales |
| reference | String | Identificador único de la orden de pago o del pedido asignado por el Cliente-Integrador |
| date | Number | Timestamp en milisegundos. Zona horaria UTC |
| customData | String | Datos devueltos por INESPAY al Cliente-Integrador que han sido previamente informados en la llamada API de inicio de pago |
| signatureDataReturn | String | Firma de dataReturn calculada con el algoritmo HmacSHA256, utilizando como clave la APIKEY proporcionada por INESPAY y codificada en base64 |
Notificación de pagos (Callback)
INESPAY realiza la notificación de un pago (Callback) en el preciso instante en el que un Cliente-Pagador ha ejecutado con éxito una orden de pago. Esta notificación o Callback se realiza mediante una petición de tipo x-www-form-urlencoded o JSON a la URL informada en el parámetro notifUrl, en función del valor establecido en el parámetro notifUrlContentType. Esta petición es invisible e independiente de las acciones que pueda llevar a cabo el Cliente-Pagador en la aplicación web Transferencia Bancaria PSD2.
Tanto para el entorno de SANDBOX como para el de PRODUCCIÓN se debe informar un parámetro notifUrl de un entorno diferente al Local. En caso contrario, el proceso de notificación no se podrá llevar a cabo, ya que la URL informada debe ser accesible.
Las transacciones no finalizadas con éxito o los abandonos por parte del Cliente-Pagador no se notifican nunca a través de este parámetro notifUrl. En caso de que el Cliente-Pagador abandone voluntariamente el proceso de pago a través del botón Salir que aparece en la aplicación web Transferencia Bancaria PSD2, INESPAY lo redirigirá al parámetro urlError. En caso de no existir este parámetro, INESPAY redirigirá al Cliente-Pagador a una página estática de Cancelación.
ADVERTENCIA: El parámetro opcional successLinkRedirect no debe ser utilizado como Callback. INESPAY recomienda utilizar el parámetro successLinkRedirect únicamente para recibir al Cliente-Pagador en una página de éxito propia del Cliente-Integrador, confirmándole la gestión del pedido o del pago.
Para evitar duplicidades en la notificación de los pagos, el proceso de Callback se realiza solamente una vez. A pesar de nuestros múltiples controles, recomendamos al Cliente-Integrador bloquear la gestión del pago o del pedido al recibir la primera notificación procedente de INESPAY. De esta manera, en el hipotético caso de que recibiese más de una notificación de una misma referencia de pago, se evitará la duplicidad de un pedido o de un pago.
NOTA: En caso de que el proceso de notificación no se llegue a ejecutar con éxito, el Cliente-Integrador recibirá un email advirtiéndole de un Error en Notificación, con el fin de que pueda acceder al Dashboard de INESPAY, localizar la transacción incidentada y lanzar manualmente la notificación. Es importante que el Cliente-Integrador informe como mínimo una dirección de email para recibir estos avisos, a través ldel dashboard INESPAY, sección Configuración/Notificaciones.
IP La dirección IP fija del sistema notificaciones de INESPAY es 52.209.221.251.
Verificación respuesta (Firma)
Por motivos de seguridad, es obligatorio calcular la firma de los datos devueltos en dataReturn y compararla con la firma devuelta por INESPAY en signatureDataReturn. Al calcular la firma de los datos devueltos por INESPAY verificamos la integridad y la autenticidad de los datos. En caso de que la firma calculada coincida con signatureDataReturn, garantizamos que los datos no han sido manipulados ni alterados o proceden de otras fuentes. Para el cálculo de la firma se debe utilizar la API-KEY proporcionada por INESPAY.
A continuación detallamos el proceso para realizar el cálculo de la firma:
- Aplicamos el algoritmo HmacSHA256 directamente sobre dataReturn codificado en Base64, utilizando como clave la API-KEY proporcionada por INESPAY. De esta forma obtenemos el hash de dataReturn
- Convertimos a minúsculas el hash obtenido en una cadena de texto hexadecimal
- Codificamos el resultado del punto anterior en Base64 y obtenemos la firma calculada
- Comparamos la firma calculada con el parámetro signatureDataReturn devuelto en el Callback:
- Si firma calculada == signatureDataReturn, nos 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)
Gestión de pagos
Para la prestación de los servicios contemplados en esta sección se requiere contratar previamente con INESPAY el servicio de Gestión de Pagos, el cual permitirá al Cliente-Integrador disponer de una Cuenta de pago para automatizar devoluciones de ingresos, pagos a proveedores, etc. Esta Cuenta de pago, cuya titularidad corresponderá al Cliente-Integrador, será un IBAN español emitido por entidad financiera autorizada y supervisada por la Autoridad Nacional Competente. Gracias a la Cuenta de pago, INESPAY podrá ofrecer al Cliente-Integrador los servicios API que se relacionan a continuación.
Devolución de órdenes de iniciación de pagos
El servicio de devoluciones permite enviar una petición API para solicitar a INESPAY la devolución de un ingreso recibido por el servicio de Iniciación de Pagos. Esta acción generará una salida de fondos desde la Cuenta de pago del Cliente-Integrador al IBAN del Cliente-Pagador de la orden de pago original. Para ello, el Cliente-Integrador deberá utilizar el parámetro simplePayinId que INESPAY transmitió inicialmente como identificador de la orden de pago mediante el parámetro notifUrl.
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | POST | https://apiflow.inespay.com/san/v2/refunds/init |
| PRODUCCIÓN | POST | https://apiflow.inespay.com/pro/v2/refunds/init |
Header
| 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 |
|---|---|---|---|
| simplePayinId | Sí | String | Identificador único de la orden de pago. Se corresponde con el parámetro transactionId de la transacción original devuelto por el servicio de Notificación de pagos (Callback) |
| amount | No | Number | Importe de la orden de devolución multiplicado por 100, sin decimales. Por ejemplo: 35598 = 355,98 Euros. En caso de no indicarse, se realizará la devolución por el importe íntegro de la orden de pago. Este importe no puede ser superior al de la orden de pago original |
| description | No | String | Concepto de la transferencia (P. Ej: Devolución factura…). Tamaño máximo: 140 caracteres. En caso de no indicarse se utilizará el concepto original de la orden de pago con el prefijo Refund |
| reference | No | String | Identificador único de la devolución informado por el Cliente-Integrador, gracias al cual se puede identificar una orden de pago en sus propios sistemas. |
| collectingIBAN | No | String | IBAN origen emisor de la devolución, en caso de que se dispongan de múltiples cuentas. |
| okNotifUrl | No | String | URL a la que se notifica la información de la devolución finalizada con éxito. Debe tenerse en cuenta que, tanto para el entorno de SANDBOX como para el de PRODUCCIÓN se debe informar un parámetro okNotifUrl de un entorno diferente al Local. En caso contrario, el proceso de notificación no se podrá llevar a cabo, ya que la URL informada debe ser accesible por INESPAY. |
| okNotifUrlContentType | No | String | Formato de la notificación realizada por INESPAY a la URL informada en el parámetro okNotifUrl. Los valores posibles son : x-www-form-urlencoded o json. En caso de no informarse, el valor por defecto es x-www-form-urlencoded. |
| errorNotifUrl | No | String | URL a la que se notifica la información de devolución que no ha podido ser procesada, con el fin de que el Cliente-Integrador pueda lanzar nuevamente el proceso de devolución. |
| errorNotifUrlContentType | No | String | Formato de la notificación realizada por INESPAY a la URL informada en el parámetro errorNotifUrl. Los valores posibles son : x-www-form-urlencoded o json. En caso de no informarse, el valor por defecto es x-www-form-urlencoded. |
Respuesta a la petición de devolución de orden de pago
| Parámetro | Tipo | Descripción |
|---|---|---|
| refundId | String | Identificador único de la devolución de la orden de pago |
| status | String | Código de éxito (200) o código de error |
| statusDesc | String | Descripción del código status |
Notificación de una devolución a las urls informadas en okNotifUrl y errorNotifUrl
| Parámetro | Tipo | Descripción |
|---|---|---|
| dataReturn | String (JSON) | Se encuentra codificado en Base64 y contiene los parámetros del pago: |
| refundId | String | Identificador único de la devolución en los sistemas INESPAY |
| simplePayinId | String | Identificador único de la orden de pago simple sobre la que se ejecuta la devolución |
| codStatus | String | Código de estado, consultad los posibles valores de estado |
| description | String | Concepto de la devolución. |
| amount | Number | Importe de la devolución mutiplicado por 100, sin decimales |
| reference | String | Identificador único de la orden de pago o del pedido asignado por el Cliente-Integrador |
| signatureDataReturn | String | Firma de dataReturn calculada con el algoritmo HmacSHA256, utilizando como clave la APIKEY proporcionada por INESPAY y codificada en base64 |
Payouts
El servicio de payOuts permite enviar una petición API para solicitar a INESPAY la emisión de una transferencia bancaria, generando una salida de fondos desde la Cuenta de pago del Cliente-Integrador.
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | POST | https://apiflow.inespay.com/san/v2/payouts/init |
| PRODUCCIÓN | POST | https://apiflow.inespay.com/pro/v2/payouts/init |
Header
| 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 |
|---|---|---|---|
| payeeIBAN | Sí | String | IBAN de destino del importe ordenado en el payOut. |
| payeeName | Sí | String | Titular del IBAN de destino del importe ordenado en el payOut. |
| amount | Sí | Number | Importe del payOut multiplicado por 100, sin decimales. Por ejemplo, 35598 = 355,98 Euros. |
| description | Sí | String | Concepto del payOut. Tamaño máximo: 140 caracteres. |
| reference | No | String | Identificador único del payouts informado por el Cliente-Integrador, gracias al cual se puede identificar una orden de pago en sus propios sistemas. |
| collectingIBAN | No | String | IBAN origen emisor del payOut, en caso de que se dispongan de múltiples cuentas. |
| okNotifUrl | No | String | URL a la que se notifica la información de un payOut finalizado con éxito. Debe tenerse en cuenta que, tanto para el entorno de SANDBOX como para el de PRODUCCIÓN se debe informar un parámetro okNotifUrl de un entorno diferente al Local. En caso contrario, el proceso de notificación no se podrá llevar a cabo, ya que la URL informada debe ser accesible por INESPAY. |
| okNotifUrlContentType | No | String | Formato de la notificación realizada por INESPAY a la URL informada en el parámetro okNotifUrl. Los valores posibles son : x-www-form-urlencoded o json. En caso de no informarse, el valor por defecto es x-www-form-urlencoded. |
| errorNotifUrl | No | String | URL a la que se notifica la información de un payOut que no ha podido ser procesado, con el fin de que el Cliente-Integrador pueda lanzar nuevamente el proceso de payOut. |
| errorNotifUrlContentType | No | String | Formato de la notificación realizada por INESPAY a la URL informada en el parámetro errorNotifUrl. Los valores posibles son : x-www-form-urlencoded o json. En caso de no informarse, el valor por defecto es x-www-form-urlencoded. |
Respuesta a la petición de payout
| Parámetro | Tipo | Descripción |
|---|---|---|
| payoutId | String | Identificador único |
| status | String | Código de éxito (200) o código de error |
| statusDesc | String | Descripción del código status |
Notificación de un Payout a las urls informadas en okNotifUrl y errorNotifUrl
| Parámetro | Tipo | Descripción |
|---|---|---|
| dataReturn | String (JSON) | Se encuentra codificado en Base64 y contiene los parámetros del pago: |
| payoutId | String | Identificador único del Payout en los sistemas INESPAY |
| codStatus | String | Código de estado, consultad los posibles valores de estado |
| description | String | Concepto del Payout. |
| amount | Number | Importe del Payout mutiplicado por 100, sin decimales |
| reference | String | Identificador único del Payout asignado por el Cliente-Integrador |
| signatureDataReturn | String | Firma de dataReturn calculada con el algoritmo HmacSHA256, utilizando como clave la APIKEY proporcionada por INESPAY y codificada en base64 |
Consulta devoluciones
Servicio que permite consultar el estado de una devolución.
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | GET | https://apiflow.inespay.com/san/v2/refunds/{refundId} |
| PRODUCCIÓN | GET | https://apiflow.inespay.com/pro/v2/refunds/{refundId} |
Header
| Parámetro | Descripción |
|---|---|
| X-Api-Key | API-KEY proporcionada por INESPAY |
| Authorization | API-TOKEN proporcionado por INESPAY |
| Content-Type | application/json |
Parámetros url
| Parámetro | Requerido | Tipo | Descripción |
|---|---|---|---|
| refundId | Sí | String | Identificador único de la devolución. |
Respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
| refundId | String | Identificador único de la devolución |
| simplePayinId | String | Identificador único de la orden de pago |
| amount | Number | importe de la orden de devolución multiplicado por 100, sin decimales. |
| description | String | Concepto de la devolución |
| collectingIBAN | String | Cuenta de collecting emisora de la devolución |
| payeeIBAN | String | IBAN destino de la devolución |
| payeeName | String | Nombre del beneficiario de la cuenta destino de la devolución |
| okNotifUrl | String | URL a la que se notifica la información de la devolución finalizada con éxito. |
| errorNotifUrl | String | URL a la que se notifica la información de devolución que no ha podido ser procesada. |
| codStatus | String | Código del estado de la devolución. Los posibles estados se pueden consultar aquí |
| status | String | Código de éxito (200) o código de error |
| statusDesc | String | Descripción del código status |
Consulta Payouts
Servicio que permite consultar el estado de un Payout.
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | GET | https://apiflow.inespay.com/san/v2/payouts/{payoutId} |
| PRODUCCIÓN | GET | https://apiflow.inespay.com/pro/v2/payouts/{payoutId} |
Header
| Parámetro | Descripción |
|---|---|
| X-Api-Key | API-KEY proporcionada por INESPAY |
| Authorization | API-TOKEN proporcionado por INESPAY |
| Content-Type | application/json |
Parámetros url
| Parámetro | Requerido | Tipo | Descripción |
|---|---|---|---|
| payoutId | Sí | String | Identificador único del Payout. |
Respuesta
| Parámetro | Tipo | Descripción |
|---|---|---|
| payoutId | String | Identificador único del Payout |
| amount | Number | importe de la orden de devolución multiplicado por 100, sin decimales. |
| description | String | Concepto de la devolución |
| collectingIBAN | String | Cuenta de collecting emisora de la devolución |
| payeeIBAN | String | IBAN destino de la devolución |
| payeeName | String | Nombre del beneficiario de la cuenta destino de la devolución |
| okNotifUrl | String | URL a la que se notifica la información de la devolución finalizada con éxito. |
| errorNotifUrl | String | URL a la que se notifica la información de devolución que no ha podido ser procesada. |
| codStatus | String | Código del estado de la devolución. Los posibles estados se pueden consultar aquí |
| status | String | Código de éxito (200) o código de error |
| statusDesc | String | Descripción del código status |
Consulta de cuentas
El servicio de Consulta de Cuentas de Pago permite enviar una petición API para solicitar a INESPAY la información de la citada cuenta en tiempo real: número de IBAN, saldo disponible y divisa.
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | GET | https://apiflow.inespay.com/san/v2/collecting/accounts |
| PRODUCCIÓN | GET | https://apiflow.inespay.com/pro/v2/collecting/accounts |
Header
| Parámetro | Descripción |
|---|---|
| X-Api-Key | API-KEY proporcionada por INESPAY |
| Authorization | API-TOKEN proporcionado por INESPAY |
| Content-Type | application/json |
Respuesta a la petición de devolución de orden de pago
| Parámetro | Tipo | Descripción |
|---|---|---|
| accounts | array | Array de cuentas |
| name | String | Nombre de la cuenta |
| accountNumber | String | Número de cuenta (IBAN) |
| amount | Number | Saldo disponible mutiplicado por 100, sin decimales. Por ejemplo: 35598 = 355,98 Euros |
| currency | String | Moneda |
| status | String | Código de éxito (200) o código de error |
| statusDesc | String | Descripción del código status |
Estados Refunds/Payouts
| Código | Descripción |
|---|---|
| PENDING | Pendiente de ser procesado por la entidad bancaria, es el estado inicial. |
| CONFIRMED | El pago se ha enviado correctamente a la entidad bancaria |
| REJECTED | El pago ha sido rechazado |
| DENIED | El pago ha sido denegado |
| REVERSED | El pago ha sido revertido |
| ERROR | Pago con error |
Códigos de error payouts/refunds
| Código | Descripción |
|---|---|
| R300 | Las credenciales del proveedor de collecting son inválidas |
| R301 | La orden de pago informada no existe |
| R302 | El IBAN de la cuenta origen de la orden pago original no existe o es inválido |
| R303 | El importe de la devolución es mayor que el importe de la orden de pago original |
| R304 | La orden de pago informada no ha sido pagada |
| R305 | El importe total de las devoluciones excede el importe de la orden de pago original |
| R306 | Saldo insuficiente en la cuenta de collecting |
Servicios Adicionales
Consulta de órdenes de pago
Este servicio opcional se utiliza como consulta de los enlaces de pago generados. Puede utilizarse por aquellos clientes/integradores que deseen recibir el estado y la información de una orden de pago en cualquier momento.
Petición de consulta de una orden de pago por Identificador
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | POST | https://apiflow.inespay.com/san/info/payment-order |
| PRODUCCIÓN | POST | https://apiflow.inespay.com/pro/info/payment-order |
Header
| 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 |
|---|---|---|---|
| idDebt | Sí | String | Identificador único de la orden de pago devuelto por INESPAY en la petición API de inicio de pago (idDebt) o en el callback (transactionId) |
Respuesta a la petición de consulta de una orden de pago por Identificador
| Parámetro | Tipo | Descripción |
|---|---|---|
| paymentOrders | Array (PaymentOrder) | Array de elementos PaymentOrder, devolverá 1 elemento si existe la orden de pago o un array vacío [] si no existe. |
| status | String | Código de éxito (200) o error |
| description | String | Descripción del código status |
| Parámetro | Tipo | Descripción |
|---|---|---|
| idDebt | String | Identificador único de la orden de pago |
| enabled | Boolean | Indica si el enlace de pago se encuentra activo (puede utilizarse por el Cliente-Pagador) o inactivo (ya no puede utilizarse). Puede activar o desactivar enlaces de pago en cualquier momento utiliza el servicio Activar/Desactivar órdenes de pago. |
| amount | Number | Importe de la orden de pago mutiplicado por 100, sin decimales |
| subject | String | Concepto de la orden de pago |
| reference | String | Identificador interno de la orden de pago asignado inicialmente por el Cliente-Integrador |
| holderDestiny | String | Titular del IBAN de destino (beneficiario) |
| accountDestiny | String | Número IBAN destino de la transferencia |
| customBeneficiary | String | Nombre del beneficiario del pago que se mostrará al Cliente-Pagador en la aplicación web Transferencia Bancaria PSD2 |
| customData | String | Campo personalizable informado por el Cliente-Integrador en la llamada API de inicio de pago |
| urlLong | String | Enlace de pago |
| urlShort | String | Enlace de pago recortado |
| urlShortClicks | Number | Número de pulsaciones (clics) realizados sobre sobre el enlace de pago (urlShort) |
| codStatus | String | Código del estado de la orden de pago. Valores posibles: OK=Éxito, PENDING=Orden de pago no completada por el Cliente-Pagador, PARTIALLY_ACCEPTED = Orden de pago pendiente de autorización por otro Cliente-Pagador (firma mancomunada) |
| periodicOriginAccount | String | IBAN del Cliente-Pagador, en caso de haberse solicitado el inicio de un pago periódico |
| periodicFrequency | String | Frecuencia de ejecución del pago periódico, en caso de haberse solicitado el inicio de un pago periódico |
| periodicStartDate | String | Fecha de inicio del pago, en caso de haberse solicitado el inicio de un pago periódico |
| periodicEndDate | String | Fecha final del pago, en caso de haberse solicitado el inicio de un pago periódico |
| periodicExecutionRule | String | Regla de ejecución del pago, en caso de haberse solicitado el inicio de un pago periódico. Valor por defecto: following |
| periodicDayOfExecution | String | Día de ejecución del pago, en caso de haberse solicitado el inicio de un pago periódico. Este valor se recoge del mismo día informado en periodicStartDate |
| createAt | Number | Fecha de creación del enlace de pago, en formato milisegundos |
| updateAt | Number | Fecha de actualización del enlace de pago, en formato milisegundos |
| expireAt | Number | Fecha de caducidad del enlace de pago, en formato milisegundos |
Petición de consulta de órdenes de pago por fecha
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | POST | https://apiflow.inespay.com/san/info/payment-orders |
| PRODUCCIÓN | POST | https://apiflow.inespay.com/pro/info/payment-orders |
Header
| 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 | Sí | String | Fecha en formato milisegundos UTC |
| dateTo | No | Number | Fecha en formato milisegundos UTC. Si no se especifica, se realiza la búsqueda hasta la fecha actual |
| pageRequest | Sí | 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. El máximo valor admitido es 300 |
| orderAsc | No | Boolean | Tipo de ordenación por fecha de creación: true=ASC o false=DESC |
Respuesta a la petición de consulta de órdenes de pago por fecha
| Parámetro | Tipo | Descripción |
|---|---|---|
| itemsReturned | Number | Número de elementos (paymentOrders) devueltos en la página actual |
| currentPage | Number | Número de página actual |
| totalItems | Number | Número total de elementos (paymentOrders). Es la suma de los elementos de todas las páginas |
| totalPages | Number | Número total de páginas existentes |
| paymentOrders | Array (PaymentOrder) | Array de elementos PaymentOrder |
| status | String | Código de éxito (200) o error |
| description | String | Descripción del código status |
Activar/Desactivar enlaces de pago
Este servicio opcional permite al Cliente-Integrador activar o desactivar enlaces de pago, permitiendo al Cliente-Pagador hacer uso de los mismos o no.
Petición de activación/desactivación de enlaces de pago
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | POST | https://apiflow.inespay.com/san/update/enable-disable-payment-order |
| PRODUCCIÓN | POST | https://apiflow.inespay.com/pro/update/enable-disable-payment-order |
Header
| 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 |
|---|---|---|---|
| idDebt | Sí | String | Identificador único de la orden de pago devuelto por INESPAY en la petición API de inicio de pago (idDebt) o en el callback (transactionId) |
| enable | Sí | Boolean | true = enlace de pago activado, false = enlace de pago desactivado |
Respuesta a la petición de activación/desactivación de órdenes de pago
| Parámetro | Tipo | Descripción |
|---|---|---|
| status | String | Código de éxito (200) o error |
| description | String | Descripción del código status |
Generación de fichero de devoluciones
Este servicio permite generar un fichero de transferencias (formato CSB34) que podrá tramitar a través de su Entidad Financiera para devolver órdenes de pago procesadas por INESPAY, permitiendo informar un importe y concepto diferentes. Una vez generado el fichero, puede proceder a su envío a través de su banca online. En función de la entidad financiera con la que trabaje, es posible que le requiera la contratación del servicio de tramitación de ficheros de pagos o transferencias SEPA (CSB34), informándole de un código de Emisor/Presentador (generalmente coincidente con el NIF/CIF) y un sufijo (generalmente 000).
| Entorno | Tipo | URL |
|---|---|---|
| SANDBOX (Pruebas) | POST | https://apiflow.inespay.com/san/refund/sepa-xml |
| PRODUCCIÓN | POST | https://apiflow.inespay.com/pro/refund/sepa-xml |
Header
| 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 |
|---|---|---|---|
| debtorIdFromBank | Sí | String | Código de Emisor/Presentador (generalmente coincide con el NIF/CIF) y un sufijo (generalmente 000) facilitado por la entidad bancaria. (P. Ej: B99999999001) |
| debtorBic | Sí | String | BIC correspondiente a la entidad financiera del Cliente-Integrador |
| debtorIban | Sí | String | IBAN del Cliente-Integrador en la que se realizará el cargo de las transferencias |
| debtorName | Sí | String | Nombre del Cliente-Integrador (Ordenante) |
| paymentOrders | Sí | Array (PaymentOrder) | Array de órdenes de pago a transferir |
| batchBooking | No | Boolean | Identificador de cargo único en la cuenta bancaria: Cargo único = true; múltiples cargos individuales = false. En caso de no informarse, u valor por defecto es false |
Array (PaymentOrder)
| Parámetro | Tipo | Descripción |
|---|---|---|
| idDebt | String | Identificador único de la orden de pago devuelto por INESPAY en la petición API de inicio de pago (idDebt) o en el callback (transactionId) |
| amount | String | Importe de la devolución mutiplicado por 100, sin decimales. Puede ser inferior al importe original de la orden de pago pero no puede ser superior |
| subject | String | Concepto de la transferencia (P. Ej: Devolución factura). Tamaño máximo: 140 caracteres |
Respuesta a la petición
| Parámetro | Tipo | Descripción |
|---|---|---|
| xml | String | XML en formato SEPA (CSB34). Las comillas dobles (") se encuentran escapadas mediante la barra invertida (\) |
| status | String | Código de éxito (200) o error |
| description | String | Descripción del código status |
Códigos de respuesta
Listado de códigos de estado y error devuelto por la API Transferencia Bancaria PSD2.
| 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 Transferencia Bancaria PSD2, se proporciona una librería que facilita y simplifica la integración de la misma, de forma que sólo es necesario copiar y pegar unas sencillas líneas de código.
PHP
Descargar SDK PHP API PAYFLOW v1.0.8
Pago simple
Permite generar pagos en tiempo real con una cuenta bancaria de destino fija asociada al Cliente-Integrador, informada y validada en el Dashboard de Inespay. El enlace de pago emitido tiene una validez de 30 minutos desde que es generado.
Pago simple
------------
<?php
require_once('InespayApiPublic.php');
$environmentApiInespay = InespayApiPublic::ENV_SAN; //Sandbox (pagos fictícios)
//$environmentApiInespay = InespayApiPublic::ENV_PRO; //Producción (pagos reales)
$apiKeyInespay = 'APIKEY API Transferencia Bancaria PSD2';
$tokenInespay = 'TOKEN API Transferencia Bancaria PSD2';
$apiInespay = new InespayApiPublic();
$apiInespay->setEnvironmentInespay($environmentApiInespay);
$apiInespay->setApiKeyInespay($apiKeyInespay);
$apiInespay->setTokenInespay($tokenInespay);
//Campos a rellenar dinámicamente
$apiInespay->setSubject('Prueba pago simple INESPAY'); //Concepto del pago
$apiInespay->setAmount(1.99); //Importe con 2 decimales separados por un punto
$apiInespay->setReference('ID_2022_AP'); //Identificador interno del pago personalizable por el Cliente-Integrador
//Opcionales
$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 (Callback)
$apiInespay->setCustomData("Custom data personalizado");
$response = $apiInespay->generateSimplePaymentUrl(); //Llamada síncrona API Transferencia Bancaria PSD2
if ( $response->getStatusCode() == InespayApiPublic::STATUS_CODE_SUCCESS){
//Éxito generación URL de pago firmada
echo $response->getUrlSigned();
}else{
//Error generación URL
}
?>
Notificación del Estado de la Transacción (Callback)
Verificación de la firma de los datos enviados por INESPAY para asegurar que la respuesta procede de INESPAY y no han sido alterados. Esta verificación se debe realizar siempre por el Cliente-Integrador de la API en su lado de servidor.
Notificación del Estado de la Transacción (Callback)
-----------------------------------------------------
<?php
require_once('InespayApiPublic.php');
$apiKeyInespay = 'APIKEY API Transferencia Bancaria PSD2';
$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>";
echo "<p>customData=".$apiInespay->getCustomDataFromDataReturn()."</p>";
} else {
echo "<p>FIRMA KO, firma inválida revise los parámetros</p>";
}
}
?>
Pago periódico
Permite generar órdenes de pago periódicas. El enlace de pago emitido tiene una validez de 30 minutos desde que es generado.
Pago periódico
---------------
<?php
require_once('InespayApiPublic.php');
$environmentApiInespay = InespayApiPublic::ENV_SAN; //Sandbox (pagos fictícios)
//$environmentApiInespay = InespayApiPublic::ENV_PRO; //Producción (pagos reales)
$apiKeyInespay = 'APIKEY API Transferencia Bancaria PSD2';
$tokenInespay = 'TOKEN API Transferencia Bancaria PSD2';
$apiInespay = new InespayApiPublic();
$apiInespay->setEnvironmentInespay($environmentApiInespay);
$apiInespay->setApiKeyInespay($apiKeyInespay);
$apiInespay->setTokenInespay($tokenInespay);
//Campos a rellenar dinámicamente
$apiInespay->setSubject('Prueba pago periódico INESPAY'); //Concepto del pago
$apiInespay->setAmount(1.10); //Importe con 2 decimales separados por un punto
$apiInespay->setReference('PE_2021_FO'); //Identificador interno del pago personalizable por el Cliente-Integrador
$apiInespay->setFrequency('Monthly');
$apiInespay->setDebtorAccount('ES2501822200160201933547'); //Sanbox debtorAccount
$apiInespay->setStartDate('2021-12-01');
//Opcionales
$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 (Callback)
$apiInespay->setCustomData("Custom data personalizado");
$apiInespay->setEndDate('2022-12-01');
$response = $apiInespay->generatePeriodicPaymentUrl(); //Llamada síncrona API Transferencia Bancaria PSD2
if ( $response->getStatusCode() == InespayApiPublic::STATUS_CODE_SUCCESS){
//Éxito generación url de pago firmada
echo $response->getUrlSigned();
}else{
//Error generación url
}
?>
Cancelación pago periódico
Permite cancelar órdenes de pago periódicas que se han generado previamente con el servicio de Alta de Pagos Periódicos.
Cancelación pago periódico
---------------------------
<?php
require_once('InespayApiPublic.php');
$environmentApiInespay = InespayApiPublic::ENV_SAN; //Sandbox (pagos fictícios)
//$environmentApiInespay = InespayApiPublic::ENV_PRO; //Producción (pagos reales)
$apiKeyInespay = 'APIKEY API Transferencia Bancaria PSD2';
$tokenInespay = 'TOKEN API Transferencia Bancaria PSD2';
$apiInespay = new InespayApiPublic();
$apiInespay->setEnvironmentInespay($environmentApiInespay);
$apiInespay->setApiKeyInespay($apiKeyInespay);
$apiInespay->setTokenInespay($tokenInespay);
//Campos a rellenar dinámicamente
$apiInespay->setDebtId('XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX');
$apiInespay->setReference('CP_2021_CANCEL');
$response = $this->apiInespay->generateCancelPeriodicPaymentUrl(); //Llamada síncrona API Transferencia Bancaria PSD2
//Opcionales
$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->setCustomData("Custom data personalizado");
$response = $apiInespay->generateCancelPeriodicPaymentUrl(); //Llamada síncrona API Transferencia Bancaria PSD2
if ( $response->getStatusCode() == InespayApiPublic::STATUS_CODE_SUCCESS){
//Éxito generación url de pago firmada
echo $response->getUrlSigned();
}else{
//Error generación url
}
?>