NAV

API NATIVE

La API INESPAY NATIVE permite recibir cobros mediante transferencias bancarias utilizando las credenciales de la banca Online.

Ofrece una solución personalizada y completa para cualquier plataforma sin necesidad de saltar a otra plataforma diferente para realizar un pago.

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

Seguridad

Todas las APIS requieren un proceso de autenticación mediante una API-KEY y una API-TOKEN proporcionadas por INESPAY. Además utilizan el protocolo seguro HTTPS para el cifrado e intercambio de datos. Se utiliza el formato JSON para todas las respuestas propocionadas por la API.

Con el objetivo de facilitar la integración se distinguen dos entornos:

Cada entorno tiene asociadas una API-KEY y una API-TOKEN diferentes, además de una URL distinta. Durante la fase inicial de integración únicamente se proprocionan las credenciales de Sandbox.

La API INESPAY utiliza dos niveles de seguridad basados en la API KEY y la API TOKEN. Estas credenciales son de envío obligatorio y deben ser proporcionadas en la cabecera (Header) de cada petición.

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

Credenciales Sandbox

Personas físicas

Banco bankId userId userSecret userExtraField
Abanca abanca_natural 11111112L 2233 -
Bankia bankia_natural 11111112L 2233 -
Bankinter bankinter_natural 11111112L 2233 -
BBVA bbva_natural 11111112L 2233 -
CaixaBank caixa_natural 11111112L 2233 -
Ibercaja iberacaja_natural 11111112L 2233 -
ING ing_natural 11111112L 2233 01/01/1971
Kutxabank kutxabank_natural 11111112L 2233
Banco Popular popular_natural 11111112L 2233
Banco Sabadell sabadell_natural 11111112L 2233
Banco Santander santander_natural 11111112L 2233
Unicaja unicaja_natural 11111112L 2233

Personas jurídicas

Banco bankId userId userSecret userExtraField
Abanca abanca_natural 11111112L 2233 -
Bankia bankia_legal 0001 2233 1111111111111
Bankinter bankinter_natural 11111112L 2233 -
BBVA bbva_legal 11111112L 2233 11111111
CaixaBank caixa_legal 11111112L 223344 -
Ibercaja iberacaja_natural 11111112L 2233 -
ING ing_natural 11111112L 2233 01/01/1971
Kutxabank kutxabank_natural 11111112L 2233
Banco Popular popular_legal 11111112L 2233 -
Banco Sabadell sabadell_legal 11111112L 2233 -
Banco Santander santander_legal 11111112L 22334 L11111112
Unicaja unicaja_natural 11111112L 2233

Servicios

Bancos

Las peticiones a la API que permiten obtener información y realizar transferencias deben proporcionar siempre un parámetro en la URL que identifican al banco bankId sobre el que se desea operar.

A continuación se detalla el servicio que permite obtener en tiempo real el listado de bancos disponibles, su actual estado y su correspondiente bankId.

Petición

POST https://api.inespay.com/ENVIROMENT/banks/list

Body

No se requiere ningún parámetro.

Respuesta

Parámetro Tipo Descripción
listBanks Array (Banco) Listado de bancos disponibles
status String Código de éxito o error
description String Descripción del código status

Banco

Parámetro Tipo Descripción
bankId String Identificador único del banco
name String Nombre del banco
active boolean Estado del banco
order int Orden

Login

Acceso a la banca Online con las credenciales proporcionadas. Debe ser la primera petición antes de realizar el resto de peticiones a la API.

Petición

POST https://api.inespay.com/ENVIROMENT/login?bankId=<bankId>

Parámetros URL

Parámetro Requerido Descripción
bankId Si Identificador banco

Body

Parámetro Requerido Tipo Descripción
userId Si String Usuario banca Online
userSecret Si String Password banca Online
userExtraField No String Código de empresa / contrato / fecha nacimiento

Respuesta

Parámetro Tipo Descripción
sessionId String Sesión que se debe utilizar en las siguientes peticiones sobre el mismo banco con el mismo usuario
status String Código de éxito o error
descripción String Descripción del código status

Cuentas

Obtiene el listado de cuentas bancarias disponibles para realizar una transferencia. Requiere previamente realizar la llamada al servicio de Login.

Petición

POST https://api.inespay.com/ENVIROMENT/accounts/list?bankId=<bankId>

Parámetros URL

Parámetro Requerido Descripción
bankId Si Identificador banco

Body

Parámetro Requerido Tipo Descripción
sessionId Si String Sesión recibida en la petición de Login

Respuesta

Parámetro Tipo Descripción
sessionId String Sesión proporcionada por el Login
listAccounts Array (Cuenta) Listado de cuentas disponibles
status String Código de éxito o error
description String Descripción del código status

Cuenta

Parámetro Tipo Descripción
accountNumber String Cuenta bancaria formato IBAN
balanceReal Number Saldo real
balanceAvailable Number Saldo disponible

Transferencia - 1º paso

Inicia la transferencia bancaria, requiere previamente realizar la llamada al servicio de Login.

Petición

POST https://api.inespay.com/ENVIROMENT/transfer/init?bankId=<bankId>

Parámetros URL

Parámetro Requerido Descripción
bankId Si Identificador banco

Body

Parámetro Requerido Tipo Descripción
sessionId Si String Sesión proporcionada por el Login
holderOrigin Si String Nombre del titular de la cuenta origen
accountOrigin Si String Número de cuenta origen de la tranferencia (IBAN)
amount Si Number Importe del pago mutiplicado por 100 sin decimales
subject Si String Concepto
holderDestiny Si String Nombre del titular de la cuenta destino
accountDestiny Si String Número de cuenta destino de la transferencia (IBAN)

Respuesta

Parámetro Tipo Descripción
sessionId String Sesión proporcionada por el Login
transactionId String Identificador único de la operación
validations Array Listado de las posibles validaciones requeridas por el banco.
status String Código de éxito o error
description String Descripción del código status

ValidationBank object

Parámetro Tipo Descripción
type int Tipo de validación
value String En el caso de validación por COORDINATES y COORDINATES_BY_SMS indica la coordenada requerida por el banco
valueFromUser String Valor insertado por el usuario que realiza el pago
type Validación Descripción
0 SIGNATURE Requiere un código de firma para realizar la operación
1 SMS Se solicita un código de firma temporal recibido por SMS
2 COORDINATES Se solicita el valor de la posición de una tarjeta de coordenadas física
3 COORDINATES_BY_SMS Posición de la coordenada recibida por SMS para localizarlo en la tarjeta de coordenadas visualizada por pantalla
4 TOKEN Se solicita un token para validar la operación

Firma - 2º paso

Todos los bancos exigen siempre al menos una validación para autorizar la transferencia. Existen 5 tipos de validaciones que pueden ser solicitadas de forma simultánea o una después de otra.

Petición

POST https://api.inespay.com/ENVIROMENT/transfer/validate?bankId=<bankId>

Parámetros URL

Parámetero Requerido Descripción
bankId Si Identificador banco

Body

Parámetro Requerido Tipo Descripción
sessionId Si String Sesión para todas las operaciones sobre el mismo banco con el mismo usuario
validations Si Array Listado de los tipos de validación requeridas por el banco

Respuesta

Parámetro Tipo Descripción
sessionId String Sesión para todas las operaciones sobre el mismo banco con el mismo usuario
transactionId String Identificador único de la operación
validations Array Listado de las posibles validaciones requeridas por el banco, en el caso de que se requiera una validación adicional
status String Código de éxito o error
description String Descripción del código status

Códigos de respuesta

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

Código Descripción
200 Éxito petición
228 Requiere una validación adicional. La transferencia está pendiente de firmar por parte del usuario.
E300 Internal API error
E301 Parámetros incorrectos
B000 Error interno
B100 Credenciales bancarias inválidas
B101 Cuenta origen de la transferencia inválida
B102 Importe incorrecto
B103 Valor de tipo de validación inválido (SIGNATURE, SMS, COORDINATES, COORDINATES_BY_SMS, SIGNATURE_AND_TOKEN)