Cybersource MPI

Validador de transacciones
Niubiz
POST /v1/validation/prepare
Preparar Validacion
POST /v1/validation/prepare

Esta api debe ser ejecutada por el partner, para inicializar la validacion de Cybersource con el método “Setup Payer Auth”. Devuelve la ruta que deberá acceder el partner para poder cargar el primer Iframe de Cybersource

Request body

Object
transactionId
string required

Identificador unico de todo el proceso de validacion de lado del partner, debe estar concatenado con el partnercode al inicio

Example:
0001-9534245234241
partnerCode
string required

Código de partner, lo entrega Niubiz al partner previamente

Example:
0001
card
Object required

Datos de la tarjeta

type
string required

Marca de la tarjeta

Enumeration:
001

VISA

002

MASTERCARD

003

AMEX

005

DINERS

expirationMonth
string required

Mes de expiracion (2 cifras)

Enumeration:
01

Enero

02

Febrero

03

Marzo

04

Abril

05

Mayo

06

Junio

07

Julio

08

Agosto

09

Setiembre

10

Octubre

11

Noviembre

12

Diciembre

expirationYear
string required

Año de expiracion

Example:
2025
number
string required

Número de tarjeta. Deberá enviarse encriptado con llave asimetrica y RSA 2048, la llave pública será entregada al partner por Vendemas

Example:
UmbRoVafKmTG6QLDCXfdz5Ch.................
sale
Object

Datos del tarjetahabiente

email
string required

Correo electrónico del tarjetahabiente.Deberá enviarse encriptado con llave asimetrica y RSA 2048, la llave pública será entregada al partner por Vendemas

Example:
UmbRoVafKmTG6QLDCXfdz5Ch.................
firstName
string required

Nombres del tarjetahabiente. Deberá enviarse encriptado con llave asimetrica y RSA 2048, la llave pública será entregada al partner por Vendemas

Example:
UmbRoVafKmTG6QLDCXfdz5Ch.................
lastName
string required

Apellidos del tarjetahabiente. Deberá enviarse encriptado con llave asimetrica y RSA 2048, la llave pública será entregada al partner por Vendemas

Example:
UmbRoVafKmTG6QLDCXfdz5Ch.................
amount
string required

Monto de la transacción, cadena de texto numérica

Example:
10.5
currency
string required

Código de la moneda

Enumeration:
PEN

Nuevos soles

USD

Dólares americanos

notificationUrl
string required

Ruta a la cual se ejecutará el servicio web de notificación del resultado de todo el proceso

Example:
https://geopagos.com/notification/423423523
redirectUrl
string required

Página del partner a la cual el validador deberá redireccionar (el partner se encargará de mostrar si fue “EXITO” o "ERROR)

Example:
https://geopagos.com/confirm/3234214214
Examples
{
    "transactionId": "0001-9534245234241",
    "partnerCode": "0001",
    "card": {
        "type": "003",
        "expirationMonth": "12",
        "expirationYear": "2025",
        "number": "UmbRoVafKmTG6QLDCXfdz5Ch................."
    },
    "sale": {
        "email": "UmbRoVafKmTG6QLDCXfdz5Ch.................",
        "firstName": "UmbRoVafKmTG6QLDCXfdz5Ch.................",
        "lastName": "UmbRoVafKmTG6QLDCXfdz5Ch.................",
        "amount": "10.5",
        "currency": "USD"
    },
    "notificationUrl": "https://geopagos.com/notification/423423523",
    "redirectUrl": "https://geopagos.com/confirm/3234214214"
}

Responses

200 OK

Correcto, o error interno del api

Body
Object
code
string required

Código de respuesta

Enumeration:
00

Correcto

10

Error Interno

message
string required

Mensaje de detalle de la operación

Example:
Operacion Exitosa
data
Object nullable
url
string

Ruta a la cual el partner deberá redireccionar para empezar la validación

Example:
https://web-mpi.dev.vmas.com.pe/v1/setup/eyJhbGciOiJIUzUxMiJ9.eyJkYXRlIjoiMjAyMjAzMjIyMzE2MDQ2NDEiLCJzdWIiOiJuaXViaXoiLCJleHAiOjE2NDc5OTE1NjQsImlhdCI6MTY0Nzk5MDk2NH0.xHPXjdX_wLgQXJHDvk4g4pwX4A8NJxwGuebFcmULLdJLFW6L1ScT27guGyhkZzdd7l6-QsE-hq6Is04chIGKLQ
Examples

Respusta correcta

{
    "code": "00",
    "message": "Operacion Exitosa",
    "data": {
        "url": "https://web-mpi.dev.vmas.com.pe/v1/setup/eyJhbGciOiJIUzUxMiJ9.eyJkYXRlIjoiMjAyMjAzMjIyMzE2MDQ2NDEiLCJzdWIiOiJuaXViaXoiLCJleHAiOjE2NDc5OTE1NjQsImlhdCI6MTY0Nzk5MDk2NH0.xHPXjdX_wLgQXJHDvk4g4pwX4A8NJxwGuebFcmULLdJLFW6L1ScT27guGyhkZzdd7l6-QsE-hq6Is04chIGKLQ"
    }
}

Error en procesamiento de la validación

{
    "code": "10",
    "message": "Error en procesamiento con Cybersource"
}
400 Bad Request

Trama no válida

Body
Object
code
string

Código identificador del error

Enumeration:
11

Trama incompleta

message
string

Descripción del error

Example:
Los campos de la solicitud no son válidos
errors
Array

Array que contiene uno o más detalles de error

string
Example:
sale.currency: must not be empty
string
Example:
transactionId: must not be empty
string
Example:
sale.amount: must not be empty
Examples

Trama con campos incompletos

{
    "code": "11",
    "message": "Los campos de la solicitud no son válidos",
    "errors": [
        "sale.currency: must not be empty",
        "transactionId: must not be empty",
        "sale.amount: must not be empty"
    ]
}
Partner
POST /v1/notification
Notificar
POST /v1/notification

Esta api debe exponerla el partner para notificarle del estado del proceso de la validación, la ruta es dinámica, depende como lo trabaje el partner

Request headers

Authorization
string optional

Token auth2 para autenticar, el token será el mismo hash devuelto en la api de “Niubiz-Preparar Validacion”

Example:
Bearer eyJhbGciOiJIUzUxMiJ9.eyJkYXRlIjoiMjAyMjAzMjMxNzU0MzA4MTYiLCJzdWIiOiJuaXViaXoiLCJleHAiOjE2NDgwNTg2NzAsImlhdCI6MTY0ODA1ODA3MH0.it49HPq3UgS5TzUX9LKpx7bV3wt8a4NV9wl8k6yg1H9IWaxj3jW3gYY-IPfI2tO7x42wcIrl10OYUzL3GPaJ4Q

Request body

Object
transactionId
string required

Identificador unico de todo el proceso de validacion de lado del partner, debe estar concatenado con el partnercode al inicio

Example:
0001-9534245234241
partnerCode
string required

Código de partner, lo entrega Niubiz al partner previamente

Example:
0001
xid
string

Valor para enviar en la autorizacion en las apis de comercio electrónico (solo si validación fue correcta)

Example:
6dfg3ds7658==
cavv
string

Valor para enviar en la autorizacion en las apis de comercio electrónico (solo si validación fue correcta)

Example:
6dfg3ds7658==
action
string required

Acción a grabar

Enumeration:
00

Validacion Exitosa

10

Error Interno

11

Trama a validar está incompleta

12

Validacion fallida

Examples

Validación exitosa con Cybersource

{
    "transactionId": "0001-9534245234241",
    "partnerCode": "0001",
    "xid": "6dfg3ds7658==",
    "cavv": "6dfg3ds7658==",
    "action": "00"
}

Validación fallida con Cybersource

{
    "transactionId": "0001-9534245234241",
    "partnerCode": "0001",
    "action": "10"
}

Responses

200 OK
Body
Object
code
string

Código de la respuesta

Enumeration:
00

Notificación recibida correctamente

10

Error interno

message
string

Detalle del resultado

Example:
Registro completado
Examples

Correcto

{
    "code": "00",
    "message": "Notificación recibida correctamente"
}

Fallido

{
    "code": "10",
    "message": "Error en registro de la notificación"
}
400 Bad request
Body
Object
code
string

Código de la respuesta

Enumeration:
11

Request inválido

message
string

Detalle del resultado

Example:
Trama incompleta
errors
Array

Listado de errores

string
Example:
transactionId: must not be empty
string
Example:
partnerCode: must not be empty